金蝶云星空生产订单查询(PRD_MO)接口字段手册权威教程
MySQL金蝶云星空生产订单接口字段手册轻易云MySQL增量同步
这个接口解决什么问题
在 MySQL 与金蝶云星空集成的真实场景中,生产订单(也叫制造订单/工单)是从销售订单到车间执行的关键纽带。我们经常遇到这样的诉求:把金蝶里的生产订单拉取到 MySQL,用于生产计划排程、生产进度跟踪、销售订单与生产订单关联、车间任务下发、完工状态监控等。本接口就是干这件事的——按审核日期增量拉取,落到 MySQL 表 order_production,支撑后续 MES 看板和 BI 分析。
接口能力总览
- 认证方式:金蝶云星空 WebAPI 体系,通过
executeBillQuery调用,需在请求头携带授权信息(在轻易云里封装为连接器凭证,不需要手写)。 - 请求结构:核心参数为
FormId(固定PRD_MO)、FilterString(过滤条件)、FieldKeys(字段集合)、Limit/StartRow(分页)。 - 响应结构:JSON,包含
Result(业务状态码)、Message、Data(分页结果集),数据按树形结构返回,单头 + 多分录。 - 分页模式:基于
Limit+StartRow循环翻页,TopRowCount用于提前返回总行数判断。 - 增量模式:典型 FilterString 为
LEFT(FMaterialId.FNumber, 1) = '1' and FApproveDate >= '{{DAYS_AGO_1|datetime}}' and FSaleOrderNo <> '',即物料编码首字符为 1、审核时间近 1 天、需求单号非空。 - 执行节奏:在多个客户方案里,常用定时任务
*/15 7-22 * * *,即每天 7 点到 22 点每 15 分钟跑一次。
典型字段映射
| 字段名 | 类型 | 含义 | 实战注意事项 |
|---|---|---|---|
| FID | string | 生产订单单头主键 | 金蝶内唯一,做幂等 upsert 的最稳键 |
| FBillNo | string | 单据编号 | 业务侧展示用,与 FID 一起做联合唯一 |
| FTreeEntity_FEntryId | string | 分录/明细行主键 | 树形结构下的行唯一标识,落 MySQL 用作 line_id |
| FMaterialId_FNumber | string | 物料编码 | 通用概念 material_code,过滤条件常用它 |
| FMaterialId_FName | string | 物料名称 | 展示字段,做对账辅助 |
| FMaterialId_FDescription | string | 物料描述 | 规格补充,容易被忽略 |
| FWorkShopID0_FName | string | 车间名称 | 组织维度,做车间分组统计 |
| FQty | string | 生产数量 | 注意是 string,落库时记得转 decimal |
| FUnitId | string | 计量单位编码 | 来自 FUnitId.FNumber,做单位换算时需另行映射 |
| FPlanStartDate / FPlanFinishDate | string | 计划开始/完成时间 | 排程类字段 |
| FStartDate / FFinishDate | string | 实际开始/完成时间 | 进度跟踪字段,可能为空 |
| FStatus | string | 业务状态 | 取值 1-7,含义见下表 |
| FSaleOrderNo | string | 需求单号/关联销售订单 | 做销售-生产追溯的关键字段 |
| FLot | string | 批次号 | 启用批次管理的物料才有值 |
| FCREATORID_FName / FApproverId_FName | string | 创建人/审核人姓名 | 审计字段 |
| FCreateDate / FApproveDate | string | 创建/审核时间 | 增量拉取以 FApproveDate 为准 |
| FMemoItem | string | 备注 | |
| F_QOQG_Base / Base2 / Text1/2/5/6 / Date | string | 扩展字段 | 客户化字段,命名带前缀,做二开扩展 |
| FAPPROVEDATE | string | 元数据误标注为审核人 | 与 FApproveDate 重复,建议以后者为准 |
FStatus 业务状态对照:1 计划 / 2 计划确认 / 3 下达 / 4 开工 / 5 完工 / 6 结案 / 7 结算。
在轻易云上如何配置
在轻易云数据集成平台里,生产订单查询通常用「金蝶云星空适配器 + 字段映射器」两步搞定:
- 适配器选型:源端选「金蝶云星空-执行查询(executeBillQuery)」,FormId 填
PRD_MO,凭证从连接器里取,避免硬编码。 - 过滤条件:在轻易云的 FilterString 编辑器里直接用可视化方式拼接上述过滤表达式,变量
DAYS_AGO_1由轻易云的相对时间算子自动填充,不需要手算日期。 - 字段映射器:轻易云的字段映射器会自动识别 FID/FBillNo/FTreeEntity_FEntryId 这种带
_分层结构的金蝶字段,并在目标侧展开成扁平字段(如order_id、order_no、line_id)。F_QOQG_* 这类扩展字段会保留原名,你可以在映射器里加自定义转换函数,比如把F_QOQG_Base映射成custom_base_name。 - 目标写入:目标 MySQL 表
order_production建议用(fid, fentryid)联合唯一键,轻易云会自动用 upsert 语义避免重复。
跨方案实战要点
- 过滤条件三件套是标配:在多个客户的金蝶集成方案里,生产订单查询几乎都用
LEFT(物料编码,1)='1' AND 审核日期 >= 近1天 AND 需求单号<>''这个组合过滤,避免拉到计划类单据和草稿。 - 主键选 FID 还是 FBillNo:金蝶主键 FID 最稳,业务编号 FBillNo 易变(改单时编号可能不变但版本会变),落 MySQL 时建议 FID 做主键、FBillNo 做唯一索引。
- 分录是树形结构:返回数据是单头带多分录的树形结构,在轻易云的字段映射器里要展开成扁平行,每条分录对应 MySQL 一行,不要把分录塞进 JSON 字段里,后续 BI 用不上。
- FQty 是 string:金蝶返回的数量字段全是字符串,落 MySQL 前务必转 decimal,否则做聚合统计时会踩字符串拼接的坑。
- 增量以审核日期为准:用 FApproveDate 而非 FCreateDate 做增量游标,这样能稳定捕获审核生效的单据,避免拉到中途状态。
- 扩展字段命名带客户前缀:F_QOQG_* 这种带前缀的字段是客户二开扩展,在映射器里要保留前缀或做语义化重命名,不要直接丢掉。
踩坑复盘
- 坑 1:把 FApproveDate 和 FAPPROVEDATE 混用。metadata 里 FAPPROVEDATE 标注为「审核人」其实是字段名重复冗余,真实审核时间是 FApproveDate,过滤和增量用错字段会导致漏数。
- 坑 2:FQty 类型踩坑。金蝶返回
string,直接落 MySQL 的 int 列会出现科学计数法或精度丢失,稳妥做法是在映射器里CAST(FQty AS DECIMAL(18,4))。 - 坑 3:树形结构没展开就写入。有客户图省事把分录塞进 MySQL 的 JSON 列,后续做生产进度看板时无法按物料分组聚合,只能重写。
- 坑 4:增量时间窗口太小。近 1 天窗口在网络抖动或金蝶性能慢时会漏单,稳妥的做法是窗口放大到 2-3 天 + 用 FID 做幂等去重。
- 坑 5:扩展字段直接忽略。F_QOQG_* 在某些客户方案里承载了关键业务含义(如自定义优先级),轻易云默认会保留,但人工配置时容易漏勾,导致业务侧对账失败。
何时选用
本接口适用于「MySQL ↔ 金蝶云星空」集成中需要同步生产订单做排程、进度跟踪、销产关联的场景;若只需工时或工序级别数据,请改用「工序计划查询」;若只需物料库存,请改用「即时库存查询」。当生产订单量小(日均百单内)且无二开扩展字段时,直接用金蝶原生 API 也行,无需引入轻易云。
本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/engineering/hb-p2-031-43eb