PLM 与 ERP 系统中具有重叠的 BOM 数据。通过研究 PLM 与 ERP 的集成方法,分析了基于生效日管理的 PLM 的 MBOM 与 ERP 的 BOM 差异性,提出了集成程序处理异构 BOM 在不同情景下的转换逻辑,定义了集成机制的三层架构各自功能及整体运作。基于该方法和策略,实现了 PLM Windchill 通过 Web method 集成程序与 ERP 系统集成。
一 集成的意义
PLM 系统管理全生命周期中的产品信息,主要包括 CAD / CAM / CAE 设计数据管理、产品零件以及 BOM 管理、工作流管理的任务,其中可能涉及零件和产品的创建与审查管理、产品类别维护及重用、工程材料清单 (EBOM) 与制造材料清单 (MBOM) 、采购与制造属性、生效日管理、零件或产成品的工厂视图创建、跨部门沟通工作流程等。
ERP 系统对企业资源进行管理,主要包括制造模块、采购模块、财务模块、物流模块、售后模块与销售模块。不同的模块在各自领域承担着从客户数据、采购下单、生产订单计划、材料清单、库存管理、出货、成本统计等重要环节。
虽然这两个系统所管理的领域不同,但在管理数据中有重叠部分,即零件信息与制造清单 (MBOM) 信息。零件信息与制造清单是 PLM 系统的输出信息,同时又是 ERP 系统的输入信息。
将 PLM 与 ERP 系统进行数据集成,能避免 PLM 管理中的主数据手工重复输入 ERP 系统,以自动集成的机制可以实现数据传输的快速性、准确性并保证其一致性。从企业战略角度而言,集成 PLM 、 ERP 可以更有效地帮助企业快速反应市场需求。
二 集成的主要内容
PLM 与 ERP 集成的本质是框架,即在异构分布式计算机环境中能使企业 PLM 系统与 ERP 系统实现信息交互或过程交互的软件系统。 PLM 与 ERP 需要集成源于其数据具有重叠部分,该重叠部分主要包括两方面:零件信息与材料清单 (BOM) 信息。
在 PLM 系统中材料清单可划分为:工程材料清单 (EBOM) 与制造材料清单 (MBOM) 两类视图,应用于生产运营的制造视图需要被同步到各个工厂的 ERP 系统中,由统一的中间集成程序处理数据,并同步至不同工厂的 ERP 系统中。
零件信息需要同步的字段主要包括零件号、零件名称、零件单位、零件版本、零件自制、采购属性、生效日等信息;材料清单需要同步的字段主要包括父零件、子零件、行号、数量、子件生效日、子件失效日等信息。
三 集成方法
1) 接口函数调用
基于接口函数调用的 PLM 与 ERP 系统集成过程,两系统间的传递信息通过打包的数据文件完成。如果 PLM 系统要访问 ERP 系统中的信息,需先通过 ERP 系统的接口函数把所要的信息抽取出来,然后转换成数据文件,再将数据文件转换成符合 PLM 系统接口函数的数据结构,传递到 PLM 系统。这种方式实现的信息传递非常有限,难以做到整个企业信息共享。
2) 直接访问数据库
直接访问数据库方法是通过允许 PLM 访问 ERP 系统底层数据库或允许 ERP 访问 PLM 系统底层数据库,以实现数据共享与交换的目的。如果采用该方法,要求 PLM 或 ERP 开发人员对异构数据库底层结构有充分了解方可实现,对开发人员要求较高。另一方面,这种共享的访问方式,在数据安全方面也需要得到充分考虑。
3) 中间数据库访问
中间数据库访问方法是通过中间数据库存储 PLM 与 ERP 系统需共用的数据,它们通过访问或操作中间数据库表的方式以实现两系统间数据交换的目的。采用该方法,独立的中间数据库在数据安全性方面可以更出色;另外,使用该方法,对中间件开发人员的技术要求比采用直接访问数据库的方法要求低。
4) 中间文件传输
中间文件传输方法是 PLM 与 ERP 系统采用文件读写的方法,以统一的文件格式通过各自系统的导入程序将所需数据写入各自系统,支持如 XML 和 STEP 通用的数据交换标准,提供不依赖系统的中间机制。使用该方法,更具有通用性,如果更新或升级现有的 PLM 或 ERP 系统,只需在新系统中也开发相应的读写导入函数即可。但使用该方法对网络传输要求较高,否则系统集成效率会受影响。
综合考虑到集成效率与开发人员能力等因素,在本项目实践中,将采用中间数据库访问的方式实现 PLM 与 ERP 的集成。
四 PLM 与 ERP 中 BOM 的数据结构
PLM 系统中零件允许添加子零件成为 BOM ,同样零件允许被其它零件使用到。如果一个零件某版本的 BOM 生命周期状态发布后,此版本的 BOM 类似于快照形式被记录在系统中。生效日是零件本身的属性,对单层 BOM 而言,该属性也表达子零件也在此日期生效,上一版本的子零件在该日期前被失效。
ERP 系统中的 BOM 以流水形式记录父零件在不同的时间使用到的子零件,历史版本的 BOM 也应记录于系统,以便售后使用;同时,也可能存在已设计完毕,当库存零件使用完毕后,将来生效的零件。
基于系统间结构模型的差异, PLM 的 MBOM 表与 ERP 的 BOM 表其本质是异构的,表 1 为 PLM 的 MBOM 字段表,表 2 为 ERP 的 BOM 字段表。其结构差异主要在于 PLM 中生效日是零件的属性而非 BOM 属性,而在 ERP 中每条 BOM 记录都具有生效日期与失效日期这两个属性。因此,中间集成程序需要承担逻辑转化的功能。
无论在 PLM 还是 ERP 的 BOM 中都有字段 line number ,中间程序通过 line number 的值将 PLM 的 BOM 变更指向 ERP 的 BOM 记录。因此对 PLM 某版本的 MBOM 而言,它的主键是 parent part 与 line number 的组合。
五 PLM 与 ERP 的 BOM 的逻辑转换策略
PLM 与 ERP 系统的 BOM 异构逻辑转换要求中间集成程序完成,其常见的变更包括: BOM 的变更,生效日调整及制造与采购属性调整。这些所提及的属性均要求在上游的 PLM 系统中作为主数据源进行管理和操作,由中间集成程序将其传递至下游 ERP 系统,并在 ERP 中执行对应操作。
PLM 中常见的 BOM 变更包括:新增零件、删除零件、替换零件、数量变更。在业务中, PLM 的版本变更需对零件指定生效时间,并随企业库存和采购等因素动态变化,允许用户进行不断调整,以起到提前或推迟新版本零件与 BOM 的生效。另一种常见的业务需求,工厂根据成本或生产能力,变更零件采购与制造属性,该变更也会影响 ERP 中 BOM 零件的生效时间与失效时间的变化。
因此,将上述可能涉及的变更归纳为三种情景,中间程序需将 PLM 的 MBOM 变更转化为 ERP 能够接受的 BOM 形式放入中间程序数据库。
1) 新增和删除 BOM 零件及生效日调整
如果 PLM 中 BOM 的 B 版本相对 A 版本新增子零件,转化程序应为 ERP 中 BOM 插入一条以 B 版本为生效日期的新纪录;如删除子零件,则在原有 BOM 记录中加入 B 版本生效日的前一天作为其失效日期;如果调整 B 版本的生效日,在 ERP 中的生效日期与失效日期也相应调整,如图 1 所示。
图 1 新增和删除 BOM 零件及生效日调整 BOM 转换示例
2) 替换零件与数量变更及生效日调整
如果 PLM 中 BOM 的 B 版本相对 A 版本某一行做了数量调整,那么 ERP 旧数量的记录应为失效日期,失效日期为生效日的前一天, ERP 中 BOM 插入新数量的一行记录,生效日期同 B 版本的生效日;同样地, B 版本相对 A 版本的某一行进行零件替换, ERP 执行原有记录添加失效日,新记录伴有生效日被添加,如图 2 所示。
图 2 替换零件与数量变更及生效日调整 BOM 转换示例
3) 采购与制造的转换
在制造业的业务需求中, ERP 系统中的 BOM 会关注需要装配制造的零件或者需要采购的零件,但对采购组件中的子件并不关注。那么如果对 PLM 系统中的采购属性进行切换,也将影响 ERP 中 BOM 记录的生效与失效,如图 3 所示。
图 3 采购与制造的转换调整 BOM 转换示例
采用以上转化逻辑,可确保 ERP 系统的 BOM 记录保存历史的 BOM 记录。一般的 ERP 支持用户输入生效时间、系统自动检索和生成特定时间的 BOM 表,该 BOM 也是采购订单、计划生产订单、售后备件的输入。
值得注意的是, PLM 与 ERP 的 BOM 集成 转化逻辑建议只传递增量或变化数据,应避免传递没有发生变更的数据记录。系统采用的数据指向方式主要有两种,表主键比较与时间戳比较。采用表主键比较的方法:当遇到输入数据记录的主键与一条已经存在记录的键相同时,根据处理策略进行执行;采用时间戳比较的方法:根据时间戳比较的数据提取相似,即通过比较数据写入的时间先后顺序决定更新策略。
六 PLM 与 ERP 集成 架构
PLM 与 ERP 集成可分为三层架构,包括 PLM 处理层、集成处理层、 ERP 处理层,如图 4 所示。
图 4PLM 与 ERP 集成架构图
集成的零件属性,在表的设计中建议将数据表或中间文件设计为属性名与属性值两个字段;而非设计数据表时将零件同步的属性作为字段一一罗列,这样会限制通用性与可扩展性。集成的 BOM 主要字段已在之前章节阐述。
1)PLM 处理层
PLM 处理层负责当零件到达某一生命周期时,触发器将零件及其 BOM 信息发送至中间程序。但在此过程前, PLM 系统需通过工作流检查的方式确保所有 BOM 中所用到的子零件信息已经或同时被传送至中间程序,如果任何子零件由于生命周期状态的限制未到达指定状态, PLM 系统需限制父零件及其 BOM 被发送至中问程序。
2) 集成处理层
集成处理层主要负责受生效日管理零件的 BOM ,由 PLM 的结构按照逻辑转化为 ERP 可接受的逻辑。虽然 PLM 系统已通过工作流的形式确保零件被发布时其子零件已经或同时被发布,但为防止可能存在的 ( 例如传输中断或服务器连接失败等 ) 风险,在中间程序中有必要再次检查 BOM 中的零件信息完整性。
中间程序需保证传输至 ERP 的数据完整性,在设计中也应将校验失败的数据反馈其错误状态。它同时应允许 ERP 处理层通过反馈机制修改其执行结果。通过监控或查看集成处理层功能实施监控或查看执行过程与结果的状态。
3)ERP 处理层
ERP 处理层主要是 ERP 程序每隔一个周期从集成数据表或集成文件夹中获取待执行的数据,并将数据导入 ERP 系统中,并向集成程序反馈执行结果。对一般 ERP 系统而言,其导入执行程序是单线程执行的,所以在设计中 ERP 导入操作需通过例如状态设置的方法确保上一周期的导入任务未完成,下一周期的导入任务不允许开启。
七 PLM 与 ERP 集成应用
根据所提出的基于生效日管理 BOM 集成的架构与实现方法,已实现了、 windchill 作为 PLM ,通过 Webmethod 中问集成程序开发,利用中间数据库访问与中间文件传输的方法,集成 Oracle 、 Cincom 、 Mfgpro 等 ERP 系统。
ERP 系统会将零件及其 BOM 导入是否成功的结果反馈回中间集成程序,技术人员可通过用户界面查看导入程序运行后的反馈结果。对普通用户而言,中间集成系统是不可见的。
集成系统会在 PLM 发布数据后,逻辑转化含有生效日期的 BOM , ERP 的导入程序会每隔一个时间周期从中间数据库或中间文件夹获取数据并将其导入 ERP 系统,根据导入程序运行结果向中间数据库或中间文件夹反馈运行结果。所有运行状态与结果,可在中间程序的用户界面供技术人员实时监控或查看。运用本文方法和策略所完成的实际案例如图 5 所示。
图 5PLM 与 ERP 集成实际案例
八 结语
PLM 系统与 ERP 系统有效集成能帮助企业提高运营效率,减少数据冗余与数据冲突。针对生效日管理分析了异构系统间的 BOM 差异性,并讨论了集成程序的转换逻辑将 PLM 系统中的 MBOM 转换为 ERP 系统可接受的 BOM 的不同情景;在集成机制上提出了三层架构,并定义了各层所需实现的功能。
本文在 PLM 与 ERP 的集成,尤其受生效日管理的 BOM 集成的一般方法做了讨论,并提供了一些通用的方法与策略。在具体企业实施 PLM 与 ERP 集成时,也需根据企业业务模型、信息技术成熟、期望结果等因素,定义适合自身的系统集成方案,可参考本文提出的方法和策略。