一般而言,目前PDM有两种不同的集成解决方案,第一种是数据级系统集成方案;第二种是互操作级系统集成方案。
1. 数据级系统集成方案
数据级系统集成方案,是在PDM系统和ERP系统中利用中间表(中间数据库)或者中间文件来存储临时数据,PDM系统和ERP系统事先约定中间格式,PDM和ERP分别开发脚本将各自输出到对方的数据整理成约定的中间表或中间文件格式,定时调度侦听程序(Listener)处理中间表或中间文件里的数据。
这种方式PDM和ERP两侧开发量都比较大,并且依赖于两系统集成时的技术状态,一旦任何一方系统发生更改,集成工作需要进行相应修改,此外如果其中一方数据需要调整,另外一方也要跟进调整,系统维护工作量相当大。
另外,由于这种方式使用了侦听程序,还会消耗PDM和ERP两侧的硬件资源。同时由于侦听程序有固定的扫描周期,所以不能很好保证系统间数据交互的实时性。
由于很多国内、外PDM与ERP系统没有提供完备的API函数或集成接口,采用基于中间文件交换的集成技术可以实现最简单的PDM与ERP系统的集成。
但数据级的系统集成方案的最大的问题在于系统(PDM/ERP)的数据库表直接暴露给了其他系统(ERP/PDM),其他系统直接写入的数据无法经过系统的业务逻辑校验,容易造成错误的数据,从而诱发系统内部发生未知错误,增大了系统调试和维护的难度。
数据级系统集成方案缺点:
不符合未来企业应用集成的趋势,扩展性差
缺乏灵活性,用户无法可自行配置、调整需要传输的数据及范围
无法实时传递数据
数据安全型低
不能通过业务逻辑检校,会出现违反业务逻辑的数据进入系统
维护不方便
升级困难
2 互操作级系统集成方案
类似于PDM和CAD的集成,互操作级集成方案是在本系统(PDM/ERP)里定制专门的菜单,来完成对外系统(ERP/PDM)的数据的读取和写入操作。用户点击了PDM客户端的相应菜单,会触发系统执行相应的程序,脚本程序调用ERP提供的接口函数,传递相应的数据参数。ERP系统接收到接口函数发出的指令,调用内部的程序生成物料主数据、物料清单等ERP内部的业务对象。ERP的数据生成过程是由ERP内部程序完成的,数据生成之前会经过ERP设定的业务逻辑规则校验。
利用这种集成方式,无须运行额外的侦听程序,利用PDM、ERP自身提供的服务器-客户端通讯机制即可接收到来自外系统的操作指令。
利用这种集成方式,外系统相当于本系统的一个普通客户端,用户通过外系统和接口函数向本系统传递生成业务数据的参数,完全等价于在本系统客户端创建一个业务数据。
由于互操作级系统集成存在很深的技术含量,因此,如果ERP和PDM不是隶属于同一厂商,很难实现此层面的系统集成。
3.集成的要点
一.首先要考虑数据的流向,一般数据是从PDM流向ERP,所以数据源头在PDM,如果还有CAPP系统的话,数据流向一般是(PDM->CAPP,PDM->ERP),然后(CAPP->ERP),从CAPP中到ERP的数据主要是工艺路由,如果稍微复杂点的话可能会有PBOM.
二.另外需要考虑的是业务对象的编码,这个是ERP集成的一个重点,在PDM系统中生成的编码可能是"流水号",也可能是"流水号+业务规则码",这就是EBOM,然后数据流向CAPP后,可能会根据CAPP的业务规则生成相应的PBOM;数据流向ERP后,可能会根据ERP的业务规则生成相应的MBOM;CAPP中的工艺路由会跟ERP中相应的BOM联系起来.由此所有的数据由ERP统一起来,相关人员根据ERP中的BOM清单,对产品需要的零部件或制造或购买或从已有的库存中取.
三.事实上,由于国内ERP/PDM厂商大小林立,并且国外的PDM挟技术优势而来,两个市场竞争都比较激烈.由此ERP和PDM集成也成了一个老大难问题(由于各自的实现方式/开发语言和环境/接口等不同),所以目前要真正做到互操作级的集成相对来说比较困难.
本人做过一些的ERP和PDM集成,经验说不上丰富,但就个人经验认为:
如果ERP(有用VB的,delphi的,C#或JAVA开发的,基本上各种语言都有)和PDM(比较常见用JAVA和C#开发)采用不同的开发环境/语言/数据库,则需要购买相应的中间件才能完成集成(或是自己开发类似中间件的功能,这个难度颇大,需要有相当深厚功力的团队的开发),但是中间件价格不菲,有的价格甚至比一般的PDM系统还要贵,这让不少中小型企业望而却步(当然有钱烧的国企/大企可以很开心的使用中间件,只需少量的开发和配置即可完成集成,方便又省事,银子而已);
一般来说既做PDM又做ERP的毕竟很少,据我所知,国内还有几家,国外的也不多,但是有的PDM不是原创(从外面买的系统,不是自己开发的)或是ERP不是原创,所以集成起来也费力,而且还有一个历史原因就是国内的制造业一般是先上的ERP,然后再上的PDM(一般有几年的间隔时间),所以大部分目前要上的PDM系统的企业,要与原有的ERP集成,要真正做到理想的互操作级的/无缝的集成,可以说是不可能完成的任务??
4.比较理想的解决方案(不包括既有ERP又有PDM的厂商,如果ERP和PDM都是原创的话,个人估计集成应该是省事又省力的)
首先声明,这个是个人认为的,如果各位有什么意见的话,欢迎用砖头拍我.
对于广大中小型的制造业务企业(可以把中间件的银子省下来,投入到把中国建设成为强大的制造业大国的行动中去)而言,可以采用优化后的第一种方案.
第一种方案又包括如下两种应用场景:
一.中间文件的方式
中间文件可以采用excle表格或是文本文件的形式,这样可以在ERP和PDM两端做相应开发即可,无须做监听(因为是导入导出),但是在数据进入ERP端之前(数据进入PDM是否要做校检,可以根据企业需求来定),建议要做数据校检(这个可以调用ERP系统种相应的API完成).
二.数据库中间表的方式
数据库中间表的方式的话原理和中间数据类似,但是省去了手工导入导出的麻烦,增加的相应的苦恼是需要做监听(如果数据双向流动的话,可能两端都要做.这样对系统性能有一定的损耗),当然进入ERP的数据也是需要做校检的,与第一种方式类似.
综合而言,银子多的话,而且技术力量够深厚,可以采用互操作级系统集成,对一般中小型企业而言建议采用优化后的数据集成.达到花少银子办成事的效果.