4. 源系统与目标系统差异评估
工艺路线迁移项目最容易出现的失败模式,不是数据搬不过去,而是搬过去之后“看起来对、跑起来错”。根源往往在于:迁移团队只对比了工艺路线的显性字段(路线号、工序号、工序名),却忽略了源系统与目标系统在版本、数据字典、编码规则、业务逻辑四个层面的隐性差异。差异评估的目标,是在迁移开始前把两个系统的“语义鸿沟”量化成一张可核对的差异清单,让后续的映射、转换、验证有据可依。
一、版本差异:先锁定可比对的基线
版本差异包含两层:一是MES产品自身的版本(如源系统为A产品V5.2,目标系统为B产品V8.0),二是工艺主数据的版本(同一物料在源系统存在V1、V2、V3多个生效版本)。盘点时先建立“版本基线表”,明确迁移以哪个时间点、哪个版本为准。
实操上建议采集以下信息:源系统数据库版本与补丁号、目标系统版本与补丁号、工艺路线表的版本字段名(如ROUTE_VER、EFF_DATE)、版本生效规则(按日期生效还是按状态生效)。例如源系统采用“生效日期+失效日期”双日期控制,目标系统采用“版本号+状态位(草稿/生效/冻结)”控制,那么迁移时必须把源系统的日期区间转换为目标系统的版本号序列,否则会出现同一路线在目标系统中多个版本同时生效的冲突。
二、数据字典差异:字段级语义对齐
数据字典差异是最琐碎但最致命的一层。同一个业务含义,两个系统的字段名、数据类型、长度、精度、枚举值可能完全不同。盘点方法是导出两边的数据字典(表名、字段名、类型、长度、是否必填、枚举字典),做字段级映射矩阵。
以工序表为例,源系统字段 OP_CODE VARCHAR(10),目标系统为 OPERATION_NO NUMBER(8);源系统工序类型枚举为 1=加工,2=检验,3=返修,目标系统为 PROC/INSP/REWORK。这类差异必须在映射表中逐条登记转换规则。重点关注:主键与外键字段、日期时间格式(源系统 YYYYMMDD,目标系统 YYYY-MM-DD HH24:MI:SS)、布尔值表示(Y/N 与 1/0)、多语言字段、附件与图纸的存储路径字段。
三、编码规则差异:长度、分段与校验位
编码规则差异直接影响主键能否落库。常见差异包括:长度不同(源系统物料编码12位,目标系统10位)、分段结构不同(源系统“大类2位+小类3位+流水5位”,目标系统“大类3位+流水7位”)、字符集不同(源系统允许字母数字,目标系统仅允许数字)、校验位规则不同(源系统无校验,目标系统末位为模10校验)。
盘点时应抽取源系统全部编码样本,按目标系统规则做“可转换性判定”,分为三类:直接可用、需规则转换、无法转换需重新赋码。对于无法转换的编码,必须提前与工艺部门确认是否允许重新赋码,以及重新赋码后如何维持与ERP、WMS的关联关系。这一步若拖延到迁移执行阶段,会造成大量外键断裂。
四、业务逻辑差异:从字段到行为的穿透
业务逻辑差异是最难通过静态比对发现的。同样的字段,在两个系统中的计算方式、校验时机、联动行为可能不同。盘点方法建议采用“场景穿透法”:选取3~5条典型工艺路线(含首件、返修、并行工序、外协工序),分别在源系统和目标系统中走一遍完整流程,记录每一步的系统行为差异。
典型差异点包括:工序顺序号的生成方式(源系统手工指定,目标系统自动按10递增)、工序跳转规则(源系统允许跳序,目标系统强制顺序)、工时计算逻辑(源系统按标准工时累加,目标系统按设备产能折算)、版本切换时的在制品处理策略。这些差异无法通过字段映射解决,必须在目标系统中通过配置或二次开发补齐,或调整业务操作规范来适配。
五、盘点成果的落地形式
四个维度的盘点结果应汇总为两份可直接使用的交付物。第一份是《差异清单》,每条记录包含:差异编号、差异维度(版本/字典/编码/逻辑)、源系统对象与值、目标系统对象与值、差异类型(可自动转换/需人工确认/需开发适配)、影响范围(涉及多少条工艺路线)、责任人、计划解决时间。第二份是《字段映射与转换规则表》,按源表→目标表的粒度,逐字段写明转换表达式或查找表。
以下为差异清单的示例片段(数据为教学假设,非实测结果):
| 差异编号 | 维度 | 源系统 | 目标系统 | 差异类型 | 影响条数 |
|---|---|---|---|---|---|
| D-001 | 版本 | 按EFF_DATE生效 | 按VER_NO+STATUS生效 | 需开发适配 | 约320条 |
| D-002 | 数据字典 | OP_CODE VARCHAR(10) | OPERATION_NO NUMBER(8) | 可自动转换 | 全部 |
| D-003 | 编码规则 | 12位字母数字 | 10位数字+校验位 | 需人工确认 | 约45条 |
| D-004 | 业务逻辑 | 允许跳序 | 强制顺序 | 需开发适配 | 约18条 |
盘点方法的核心原则是:先静态比对(版本、字典、编码),再动态穿透(业务逻辑),最后把差异转化为可执行的转换规则和验证用例。只有差异被量化、被分配、被跟踪,迁移才具备可控性。