这里的系统是指对于一个大系统(如供应链系统)来说划分成的若干小的项目包(如销售管理、采购管理、生产管理)。系统间的接口要讨论的是有关项目包间如何传递数据、数据传递的方式、接口程序及调用方式等问题。
2. 原则
保持各项目包间的高度独立性,包括设计的独立性和运行的独立性。项目包间接口只允许数据接口,不允许系统间直接引用程序。
3. 方案
对于“需要其它子系统提供数据”的系统,要设计一个单据录入模块和一个单据生成模块。单据录入模块用于在没有其它子系统为其提供数据时能够人工录入数据,保持系统的独立性。单据生成模块利用缓存中的数据成批快速地生成单据,需要对已处理的缓存中的数据置“已处理”标记。
接口程序应独立于数据的需求和提供方系统进行设计,它只关心双方的数据结构,将不同结构的数据按数据项的对应关系进行转换。对于转换(处理)过的数据,应在源数据中做标记。
接口程序的运行时机可采用定时、数据提供方或数据需求方调用的方式。采用何种方式,根据系统的运行要求。
4. 举例
当【销售管理】项目包生成发票时,同时将【应收管理】所需的发票数据放入发票数据缓存中,然后调用发票接口程序,将数据存入【应收管理】的发票数据缓存。【应收管理】将财务生成凭证所需的发票数据放入发票数据缓存中,然后调用发票接口程序,将数据存入【总帐管理】的发票数据缓存,系统的销售凭证生成模块利用新的发票数据生成对应的销售凭证。
如果没有【销售管理】项目包,则销售凭证通过凭证录入模块人工录入。
当【应收管理】发生回款时,记录回款的同时将回款数据放入缓存中,然后调用回款接口程序,将数据存入【销售管理】项目包的回款数据中。资信计算程序利用回款数据计算客户资信。
如果没有【应收管理】,则回款数据通过回款录入模块由人工录入。