企业系统集成接口开发时容易忽视的4个关键要点
首先,让我们简要探讨系统集成中接口开发应用的典型场景。例如,在以ERP系统(涵盖财务、供应链、生产等领域)为核心的系统集成中,可能包括主数据管理、报销管理、资金管理、办公自动化(OA)、人力资源(HR)、客户关系管理(CRM)、制造执行系统(MES)、产品生命周期管理(PLM)等系统。在处理多个系统时,企业服务总线(ESB)或接口管理平台可更好地管理数据包的传输与接收。从技术层面来看,系统之间通过接口传递数据以实现协同工作,多个系统协同完成完整功能与业务。
具体而言,主数据管理系统可将客户、项目、成本中心等主数据传递至ERP等系统,ERP系统则利用接收到的数据生成相应的档案数据以供后续业务处理。又如,报销系统在填写报销单、经过业务和财务审批后,会根据规则生成财务记账凭证数据包并传送给ERP系统。ERP系统在接收到凭证数据包后,成功完成过账,生成正式的财务记账凭证,并将凭证号等信息反馈给报销系统。
无论采用异步还是同步接口方式,系统之间的双向数据传递在设计、开发、管理和运维等方面都变得相当复杂。对于集团企业而言,在同时进行多系统集成的情况下,还需跨越多个组织进行系统集成。例如,集团总部建立的系统需要与多家子公司异构系统集成,这不仅涉及功能需求,还需要实现整个集团范围内的一体化控制(如在全集团范围内管理财务规则、数据标准等),这进一步增加了集成的复杂性。
如果在接口设计、开发和管理方面存在缺失,导致接口数据未能正确传递,将引发系统间业务异常。频繁或集中出现的接口问题直接影响系统使用和业务,甚至可能导致项目失败。
以下将详细介绍系统集成时常被忽视却至关重要的4个要点:
1、接口数据的持久化
数据从源系统发送到目标系统并进行处理的过程中,可能因网络中断、企业服务总线异常、目标系统服务异常或目标系统服务器宕机等原因,数据包未能成功传递到目标系统。在日常维护基础设施可用性的基础上,接口开发时需要注意什么呢?首要之处在于接口数据包的持久化。
以往的经验表明,经验不足的厂商可能仅在源系统中的某些功能点编写代码,将数据包直接传递给目标系统的接口程序。然而,若目标系统未能正确接收到数据包,问题就会浮出水面。源系统将难以分析接口异常原因,无法确定在何时、出于何种业务原因传递了哪些数据。对于目标系统而言,尽管已接收数据包并开始处理,但由于数据包不符合标准等原因,可能导致异常,既无法完成业务处理,也无法将错误信息反馈给源系统,进而无法分析接口问题。
此外,当处理大批量接口数据时,系统通常会有缓冲机制。但是,在数据量巨大的情况下,若数据包的发送和接收调度或负载均衡功能失效,源系统和目标系统可能因接口负载过重而发生异常,甚至可能导致数据包丢失。
所以,接口数据应首先进行持久化。即在源系统发送数据包之前,在本地进行存储,然后有序地发送。目标系统接收到数据包后,也应先在本地存储,然后有序地进行业务处理。总之,通过数据包的持久化,随时可了解源系统发送了哪些数据,目标系统接收到了哪些数据。
关于数据包持久化,有两个要点需要注意。首先,生成接口数据包的业务逻辑应有明确的规划和实现。例如,如果在业务功能代码中随意编写大段生成接口数据包的代码,一旦接口需求变化,需要对散布在各处的接口数据生成代码进行调整,这将带来灾难。所以,生成接口数据包的业务逻辑需要规划和固化,以明确了解在何种条件下应调用接口,避免将如此严谨的任务随意委托给代码片段。
其次,仍然强调接口业务逻辑的严谨性,即确保存在唯一编号来识别接口数据包及其对应的业务。例如,对于业务表单,应有唯一编号,尤其是某些表单在经过多个业务处理环节后可能会生成多种接口数据包。所以,必须确保通过唯一编号能够追溯数据包生成到处理完成的整个过程。
2、接口数据的监控与重发操作
监控是建立在接口数据持久化的基础上的。通过监控功能,源系统能够了解发送了哪些数据以及数据的状态。例如,某一时刻源系统发送了100条数据,但监控界面上显示所有数据包的状态仍为“发送中”,未收到目标系统的任何反馈。此时,可能存在数据包未能成功送达目标系统的情况,管理员可及时发现并处理系统或基础设施问题。
对于源系统的数据包,一旦通过接口监控或用户反馈发现数据包发送异常,重发功能变得尤为重要。按正常逻辑,一项业务在源系统达到一定状态(如单据审批完成)后,才会将数据发送至目标系统。此时,不能要求业务重新开始,或通过修改业务流程来重新发送数据包。因此,在接口监控功能中,运维人员可调用当时的数据包进行重新发送操作。当然,此类重新发送操作必须经过充分确认和一定审批才能执行,以免推送重复数据。
对于接收系统的数据包,如前所述,有时数据包已成功接收并持久化,但在处理业务时出现异常。例如,调用ERP系统的标准API进行财务记账时,由于某些原因,凭证过账所需的某档案数据不存在(如系统中缺少某供应商档案数据),导致过账失败。通过监控功能,可以查看此类异常信息,运维人员可解决问题后(如输入或获取缺失的供应商档案),通过监控功能的重新处理操作,再次进行过账,直至成功。
所以,缺乏接口监控和重发操作功能,很难及时发现接口异常,严重影响业务。此外,没有监控功能,通常也难以排查问题,导致数据包一旦发送后就无法追踪。同时,缺乏重发操作功能,问题出现后很难补救,或者需要更多时间和成本来进行补救。
3、准确的接口状态定义至关重要
借助接口监控功能,并通过合理定义接口数据状态,可以有效描述业务流程的状态,帮助用户及时发现问题。例如,报销系统向资金管理、资金库存、银企直连等系统推送付款申请。若报销系统在推送数据后即将接口状态改为“付款中”,这是不准确的。因为数据包可能因多种原因未被成功送达目标系统。此时,用户看到“付款中”状态,可能会认为支付正在处理中。然而,经过一段时间后,才发现对方未收到付款,经检查发现数据包根本未送达目标系统。这种不准确的状态定义会影响业务。
在这种场景中,推送数据包后,状态应显示为“已发送”而非“付款中”。目标系统在成功接收数据包后,首先向源系统反馈“已接收”信息,源系统在收到信息后,才将接口状态改为“付款中”。如果用户或源系统管理员发现数据长时间处于“已发送”状态,就表明数据包传递可能存在问题,从而可以及时干预,确保业务连续性。
4、统一的封装标准接口
成熟的商业软件通常提供丰富的原厂API以支持用户的定制需求。直接调用API进行系统对接存在风险,因此用户基本上需要对API进行封装,形成企业独有的API集合,并包含一系列验证措施。在集团企业中,例如,A企业的记账凭证数据包仅能过账至集团总部的ERP系统中属于A企业的账套。
在集团层面,至少应对通用业务和数据标准进行规范。面对复杂的业务和系统,只有通过一定的标准化,才能实现业务和数据的有效交流。标准化和管理相辅相成。在接口开发方面,要求在集团范围内,一种业务应仅有一套接口。例如,向集团总部的ERP系统推送记账凭证、项目档案或报账单的接口等,都应由集团总部设计和开发,各所属企业只需调用。
综上所述,实际上,许多功能应该作为软件原厂功能的一部分。若原厂未提供相关功能,那么在系统集成项目中就应该实现这些功能。在缺乏相关支持功能的情况下,难以有效确保接口正常运行。一旦问题出现,就可能成为业务和运维方面的灾难,因此需引起高度重视。
SAP ERP大中华区金牌实施厂商-TransInfo
TransInfo主营SAP ERP系统的咨询、实施、运维及开发,是SAP大中华区的金牌合作伙伴。国内做得较早的SAP ERP实施商之一,10余年来,TransInfo已持续为绿地控股(酒店管理集团)、顺丰控股、卡拉宝饮料、逸仙电商(彩妆品牌:完美日记)、上海仪电集团(国家智能智造示范单位)、圣德华星化工集团、高美清洁设备、汇东实业(迪士尼玩具供应商)、丰亮照明等超过600家企业客户提供全方位的信息化咨询与实施服务。
面向本地企业:
斯凯普斯服务网络遍布华东华南和华北,在上海、广州、深圳、无锡、成都、长沙、北京等国内重点地区与城市皆设有分支机构或服务团队支持,支撑本地企业实现数字化转型,提供最迅速的本地服务,多年来,斯凯普斯的客户已遍布全国各地,并持续提供支持,如有相关需求,欢迎咨询交流。