金蝶生产订单同步至MES工单:基于轻易云的扁平化映射实战
四化智造MES(API)金蝶云星空MES生产同步轻易云字段映射私有化
这个策略解决什么问题
在某离散制造企业的车间现场,ERP 与 MES 长期“两张皮”:计划员在金蝶云星空下达生产订单,车间还要在 MES 里手工再录一遍工单,数据延迟、口径不一致、漏单是常态。本文要拆解的,就是用一条策略把金蝶云星空已审核、已下达的生产订单,自动同步为 MES 工单,让车间排产只认同一份数据。
数据流向与字段映射
数据流向:金蝶云星空(PRD_MO) → 轻易云数据集成平台 → 四化智造 MES(creatOrder)。
金蝶生产订单为扁平化结构,每条分录行(FTreeEntity)直接映射为目标端一条 MES 工单,依靠 FTreeEntity_FEntryId 做幂等键。
关键字段对照表:
| 业务含义 | 源字段(金蝶) | 目标字段(MES) | 映射类型 | 转换说明 |
|---|---|---|---|---|
| 生产订单号 | FBillNo | orderNo | DIRECT | 直接映射,作为业务追溯编码 |
| 物料主键 | FMaterialId | materialUuid | DIRECT | 需借助物料基础资料同步建立的映射 |
| 生产数量 | FQty | orderNum | DIRECT | int 类型转换 |
| 分录行 ID | FTreeEntity_FEntryId | outerOrderBomId | DIRECT | 幂等与回查关键字段 |
| 公司代码 | — | companyCode | CONSTANT | 固定值,目标系统多租户标识 |
| 备品数量 | — | spareNum | CONSTANT | 暂置空 |
| BOM 版本 | — | bomVersion | EMPTY | 当前未映射,留扩展位 |
| 工艺流程版本 | — | flowchartVersion | EMPTY | 当前未映射 |
| 车间 UUID | — | workshopUuid | EMPTY | 源端 FWorkShopID_FNumber 待接入 |
FMaterialId 不是 MES 侧的主键。生产订单策略一般不会自己造一套物料映射,工程师稳妥的做法是:在轻易云里把编码映射集中管理,让物料、车间这类基础资料同步策略先跑稳,生产订单策略再通过 _findCollection 联查取到对应的 MES 物料 UUID。
在轻易云上如何配置
- 源端连接:新建金蝶云星空数据源,选
executeBillQuery,业务对象PRD_MO,主键字段FBillNo,明细键FTreeEntity_FEntryId,分页 Limit=500。 - 目标端连接:新建四化智造 MES 数据源,接口
/api/creatOrder,POST,EXECUTE 类型。 - 字段映射:按上表配置,标记 DIRECT / CONSTANT / EMPTY;
FQty注意勾选 int 转换。 - 过滤条件:在源端 FilterString 写入
FDocumentStatus in ('C','D') and FStatus in ('2','3','4','6') and (FApproveDate >= '{{LAST_SYNC_TIME|datetime}}' or FModifyDate >= '{{LAST_SYNC_TIME|datetime}}' or FConveyDate >= '{{LAST_SYNC_TIME|datetime}}' or FCancelDate >= '{{LAST_SYNC_TIME|datetime}}') and FWorkShopID.FNumber != 'BM000022'。 - 联查(可选):若需补
workshopUuid,用_findCollection关联车间基础资料策略的结果集。 - 写入策略:表头/表体同源扁平化,无需拆表头表体分阶段;MES 端依赖
outerOrderBomId做幂等。 - 日志与告警:开启轻易云的失败重试与异常告警,建议按订单号分组查看,便于人工补单。
实施步骤
实施时建议按“增量起点 → 全量回灌 → 稳态调度”三阶段推进,这也是轻易云客户常见的“增量与全量双轨”打法。
- 阶段一:确定增量起点。先在金蝶侧取一个明确的时间戳(例如近 7 天内的最大审核时间)作为
LAST_SYNC_TIME初始值,避免把历史订单全部涌入 MES。 - 阶段二:全量回灌(必要时)。若 MES 为空库上线,可临时关闭时间过滤条件跑一次全量;跑完后立刻恢复过滤条件,并人工核对订单数与工单数。
- 阶段三:稳态调度。配置 cron
* 7-22 * * *,覆盖计划员白天的下达高峰;夜间停跑,给数据库统计与备份留窗口。 - 阶段四:观察期与扩展。上线一周内重点监控重复工单、状态漂移、车间排除是否正确,再按需扩展 BOM 版本、工艺流程、计划开工/完工时间等字段。
踩坑复盘
- 物料映射没建就敢跑生产订单。
materialUuid在 MES 端是主键,没有映射就直接同步,MES 会拒收或产生脏数据。一定要先跑通“金蝶物料 → MES 物料”基础资料策略。 - 状态过滤漏配
FDocumentStatus。仅按业务状态过滤会把“已保存未审核”的订单也下发下去,导致车间看到一堆不能执行的工单。FDocumentStatus in ('C','D')务必保留。 FWorkShopID.FNumber != 'BM000022'这种排除条件被遗忘。委外或试制车间一旦混入,会打乱 MES 排产规则。把它显式写进 FilterString,比靠人工筛选稳得多。- 把
FTreeEntity_FEntryId当成单据号用。它是分录行 ID,不是 FBillNo;用作幂等键没问题,但若直接显示在车间看板上,工人看不懂。 - cron 没分时段,全天每分钟跑。生产订单有明显的白天下达高峰,全天候高频调度既压数据库也无收益,
7-22每小时一跑足矣。
适用场景与不适用场景
适用:金蝶云星空作为 ERP 计划源、MES 负责车间执行,且 MES 以 outerOrderBomId 做幂等的离散制造场景;物料、车间基础资料已有独立同步策略做支撑。
不适用:需要把金蝶的 BOM 嵌套结构、工序路线、工艺版本同步到 MES 的复杂场景;以及 MES 主键逻辑不依赖外系统分录 ID 的系统。
本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-mes-api-kingdee-cloud-5066-mes-31873eb2