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集成时,也需根据企业业务模型、信息技术成熟、期望结果等因素,定义适合自身的系统集成方案,可参考本文提出的方法和策略。

PLM与ERP集成,这个头疼的问题,可以这样解决!相关推荐

  1. 西门子plm_企业IT系统集成之PLM、ERP、MES/MOM...

    ↑ 点击上方 "智能制造之家" 关注我们 作者:丁肇之     来源:数字化演易 写在前面 无论是MES/MOM.WMS.ERP.还是PLM,在信息化项目中总免不了一个词语:集成 ...

  2. scada系统集成_企业IT系统集成之PLM、ERP、MES/MOM...

    ↑ 点击上方 "智能制造之家" 关注我们 作者:丁肇之     来源:数字化演易 写在前面 无论是MES/MOM.WMS.ERP.还是PLM,在信息化项目中总免不了一个词语:集成 ...

  3. PLM、ERP、APS、MES几种信息系统的数据集成

    因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩分享 导读:本文就PLM.ERP.APS.MES各自功能和相互之间需要通信的基础数据进行探讨,分析 ...

  4. 谈PLM和ERP的差异比较

    谈PLM和ERP的差异比较 最近,给新进公司的员工作 PLM培训,常常问起两个具有代表性的问题 1.如果公司既没有ERP也没有PLM,PLM和ERP应该先选择谁? 2.PLM和ERP的主要区别是什么? ...

  5. PLM、ERP、EMS、CRM简介

    一.PLM.ERP.EMS作为工厂最重要的三大系统 二.名词解释 PLM (Product Lifecycle Management):全称是产品生命周期系统管理 管理产品研发系统,技术部利用PLM进 ...

  6. CAD、PDM、ERP集成系统的功能级实施

    [摘自:计算机世界报 ] 目前,我国大多数国有企业正在进行由粗放型管理到精细管理.由经验管理为主到科学管理为主的两个根本性转变.大多数国有企业面临的主要问题有:如何解决多品种小批量问题;如何缩短产品的 ...

  7. sap 中migo收货自动打印smartform_EWM MES/ERP集成 生产收货的几种方式

    生产与仓库的关系对于制造业来说密不可分,生产投料和成品产出都需要进行上架,下架,转储等动作.随着SAP产品的更新,如何在多系统中实现生产收货的方式也越来越多,本文从系统的角度介绍几种不同的模式. ER ...

  8. 大概描述一下PDM、PLM、ERP的联系与区别

    PDM是产品数据管理,属于研发产品数据管理的初级阶段,主要针对研发产品物料,BOM结构和文档的管理: PLM是产品生命周期管理,属于研发产品数据管理的高级阶段,主要针对研发产品项目的各个阶段所有数据的 ...

  9. 基于ERP集成的流程制造管理系统

    ERP的含义是企业资源计划,含义是对企业所拥有各种资源进行综合规划和优化管理,用以降低成本,提高效率,增加利润.ERP最初是在90年代初提出的,那时的ERP概念,还只是根据计算机技术的发展和供需链管理 ...

最新文章

  1. Android教程之使用LiveAndroid来测试应用
  2. Java多线模式-Producer-Consumer模式(生产者、消费者模式)
  3. gdb 查看 stl容器 zz
  4. 正视长尾挑战!颜水成、冯佳时团队发布首篇《深度长尾学习》综述
  5. 工业级光纤收发器的单多模光纤?单多光模块及其用法?
  6. 端口如何支持非localhost访问_新特性解读 | MySQL 8.0.19 支持 DNS SRV
  7. 第十四期:5 个 JS 不良编码习惯,你占几个呢?
  8. 关于linux的进程和线程
  9. mysql server出现_查询各阶段时,一旦mysql server出现各种故障下的表现形式
  10. CTFshow web15
  11. 现在自驾旅游吃住有没有问题?
  12. 切断数据感知控件,大大提升软件运行速度
  13. 常见职位的英文简称_干货 | 外企HR喜欢什么样的英文简历?
  14. 开发中,GA、Beta、GA、Trial到底是什么含义
  15. 《30天自制操作系统》-day2(MAC)
  16. 物理挖洞之分块 !Cocos Creator !
  17. java变量无法解析出现的原因_不明白为什么这个变量无法解析为一个类型? (JAVA)...
  18. 轻松掌握Notification的各种用法
  19. 文章:叶绿体 rRNA 甲基转移酶 CMAL 在核糖体形成和植物发育中的关键作用
  20. MySQL 设置和取消“ON UPDATE CURRENT_TIMESTAMP”

热门文章

  1. 【C语言】实现一个函数,打印乘法口诀表,口诀表的行列数自己指定
  2. 利用python进行股票技术分析--以茅台为例
  3. 破解圣经之滚瓜烂熟篇
  4. 平安好医生遭遇困局:六年亏近47亿元 价值百亿品牌或被舍弃
  5. Android开机向导启动流程分析
  6. 如何写一篇科技论文(Luca Oerregrini)
  7. ゃōゃ♥ ♡๑۩ﺴ ☜ ☞ 一些小符号
  8. 365天挑战LeetCode1000题——Day 117 数位DP I
  9. item_get - 获得淘宝商品详情接口调用
  10. Oracle 收缩表空间一例