Oracle EBS作为Oracle公司的ERP产品,这个产品是十分庞大的,它可以对企业的各方面进行非常强大的管理,一般的大型企业都用到它的相关部分模块,根据公司的性质不同,选择的模块也会有所不同。
对于生产型企业,所采购的模块中都会包括产品及价格等管理模块。
ERP属于大型系统,能选择Oracle ERP的企业,规模一般也不会太小,所以在IT方面,除了ERP产品本身,一般还会有其它一些小型的专有业务系统来支撑,这些系统有些是在ERP上线之前就在一直使用的,并不能简单的用ERP产品来全部替换他们。
根据实际情况来看,少不了要在各个系统与EBS之间,实现部分信息的同步,特别是产品信息,一般将会选择在ERP系统中维护,而其它系统可以直接引用ERP系统中的信息,这样保证产品信息只有一套,不会出现冗余,也不会出现歧义。
我们公司在以前与ERP进行接口的时候,用到了很多的办法,其中最常用的就是直接从ERP里读取信息,然后直接写入业务系统,或者由业务系统发起,直接向ERP中写入信息。对于简单的信息,这种做法还基本能行的通,但是对于更复杂的业务逻辑,这种做法风险是不能小看的。
因为根据使用Oracle EBS的经验来看,EBS的设计非常的复杂,表结构与套用关系也是错综复杂,有时感觉修改一个表就够了,但是在真正使用的时候,或用过一段时间之后,才发现ERP的数据一致性已经被破坏,有时甚至会造成ERP系统出现问题,并且有时候已经很难恢复,所以这种做法并不可取。
EBS本身提供了一系列的接口表,所以向EBS写入数据的过程,Oracle公司都建议使用接口表,在临时数据写入接口表之后,OracleEBS的产品中会有相应的接口程序来实现对接口表的描述及导入生产表,这样会尽量维持EBS的数据完整性。当然从本质上来说,还是对数据库表的操作,但是这种做法已经安全了很多。
以上所说的一般都是指应用系统与ERP系统都处于公司的同一个网段,这种情况下才有可能用数据库连接的方式来集成,但是对于有些应用系统位于不同的地理位置,甚至位于海外的时候,这种方式就显得力不从心了,因为从其它数据中心发起的请求是无法直接到达ERP的数据库的。
其实很多系统的集成需求抽象出来,有很大的相似性,但是如果由各个厂商自己来制定标准,可能对Oracle EBS的影响比较大。出于此种情况,可以考虑将EBS的接口进行规范化。
在对EBS接口进行规范化的时候,需要考虑几点问题
数据的安全性
接口只能开放相关系统需要的部分,不能让更多的业务数据向外开放;
相关应用系统只能通过合法的手段进行接口验证,未授权的系统不能使用该接口。
数据的一致性
EBS系统的结构相当复杂,在数据写入的时候,一定要注意数据的完整性和一致性,如果系统中存在多个表的冗余,一定要把所有相关的表全部同时处理,如果所处理的表不全面,会造成EBS致命的错误。为了实现这个一致性,应该尽可能使用Oracle EBS自身的接口表系统,然后由EBS自身的标准请求来处理后续的工作。
系统的通用性
此接口系统需要考虑对目前需要接入的几个系统的通用性支持,即此接口系统尽量要做到与业务系统无关,通过简单的配置即可实现对不同的系统的支持;
另一个需要考虑的因素就是接入EBS的第三方系统,有些位于企业总部,可以直接连接到Oracle EBS的数据库服务器,而有些系统位于海外,没有能力直接与EBS的数据库相连,为了实现这个通用性,考虑使用WebService的方式来处理,即发布一个公网的WebService,让它与EBS的数据库相连接,这样就可以实现不同地理位置的系统的连接。
在下一期中,我们将讨论一下实现集成的架构。