金蝶云星空出库申请单接口字段手册权威教程:管易供应链集成实战
这个接口解决什么问题
金蝶云星空的「出库申请单」是下游业务(销售出库、电商发货)的源头单据。在供应链集成场景里,电商或零售业务通常需要在金蝶完成审核后再下发到管易生成销售订单。本接口通过 ExecuteBillQuery 按审核日期增量、仅取已审核单据(FDocumentStatus='C'),把出库申请单从金蝶同步到管易,实现从 B2B 审核到 B2C 订单的下游流转。
接口能力总览
- 认证方式:金蝶云星空私有化部署下的用户/密码登录(FormId=
STK_OutStockApply),通过 WebAPI 提交 POST 请求。 - 请求结构:核心参数
FormId、FilterString、FieldKeys、Limit、StartRow、TopRowCount,其中FilterString采用FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDocumentStatus='C'。 - 响应结构:返回
Result数组,每条记录含 Id/Number/Status 等基础字段加业务字段;明细字段BillEntry为嵌套数组。 - 分页模式:通过
StartRow+Limit(默认每页 2000,可调)翻页遍历单据主表;明细行在主记录内联返回。 - 增量模式:以审核日期为游标,每 10 分钟(7–23 点)抓取新增/变更的已审核单据。
典型字段映射
| 字段名 | 类型 | 含义 | 实战注意事项 |
|---|---|---|---|
| BillNo | string | 出库申请单业务编号 | metadata 中 number 指定为 FBillNo,作为跨系统对账主键 |
| DocumentStatus | string | 单据审批状态 | 必须为 C(已审核),未审核/暂存单据不要下发 |
| ApproveDate | string | 审核通过时间 | 增量游标字段,日期格式需与 LAST_SYNC_TIME 一致 |
| StockOrgId_Number | string | 申请组织编码 | 与管易仓库/组织映射,注意多组织多账套的编码差异 |
| CustId_Number | string | 客户编码 | 映射为管易 shop_code,建议用 CASE 集中维护映射表 |
| DeptId_Number | string | 领用部门编码 | 视业务决定是否下发到管易 |
| Date | string | 申请日期 | 映射为管易 deal_datetime,注意时区 |
| Note | string | 事由/备注 | 可透传为管易买家留言或备注 |
| BillEntry | array | 明细行(物料、数量、仓库等) | 映射为管易 details,需逐行处理物料编码、库存组织 |
| F_UQRW_Text3~7 | string | 扩展文本(收货人/省市区) | 不同客户自定义命名差异大,建议在轻易云字段映射器里按别名归一化 |
| F_UQRW_Remarks | string | 扩展备注(收货地址) | 拼接省市区+详细地址到管易 receiver_address |
| CancelStatus / CancelDate | string | 作废状态/时间 | 建议同步作废状态到管避免下游继续发货 |
| FCloseStatus / FCloseFlag | string | 关闭状态/手工关闭 | 已关闭单据不应再下发新订单 |
在轻易云上如何配置
在轻易云数据集成平台里,这个接口通常被封装为「金蝶云星空查询类适配器」:
- 数据源适配:选择「金蝶云星空」连接器,配置私有化地址、账套、用户凭证(敏感字段在平台侧加密托管)。
- 接口模板:平台内置了
ExecuteBillQuery的可视化配置面板,预置STK_OutStockApply的字段元数据,FieldKeys通过勾选生成。 - 过滤条件:
FilterString支持模板变量{{LAST_SYNC_TIME|dateTime}},平台自动注入上一次同步时间戳,无需手工拼接。 - 字段映射器:平台会识别金蝶的三元组(Id/Name/Number),自动拆分到独立列,方便与管易字段一一映射;扩展字段(
F_UQRW_*)会在映射器中以原始 key 暴露,工程师自行定义目标端别名。 - 目标端写入:Target 配置为管易销售订单新增
gy.erp.trade.add,平台会按管易的字段约束自动校验必填项(如 shop_code、details、receiver_*)。
跨方案实战要点
- 以审核日期为增量游标最稳:用
FApproveDate而非FModifyDate,避免把审核后被驳回/重新提交的同一单据重复下发。 - 三元组引用是金蝶的「通用语言」:组织、部门、客户、人员都是 Id+Name+Number 共存,跨系统对账几乎只用
_Number,_Id仅在金蝶内部关联用。 - 明细行 BillEntry 务必全量处理:明细里的物料编码、申请数量、库存组织、行备注都要完整映射到管易
details,否则下游会缺行。 - 扩展字段命名因客户而异:
F_UQRW_*是某客户的自定义前缀,不同客户可能叫F_Text*、F_YT*等,靠元数据无法穷举,建议在元数据管理里维护一张「扩展字段别名表」。 - 状态联动要闭环:建议同步作废(CancelStatus)和关闭(FCloseStatus)到管易侧,否则金蝶已作废的申请单仍可能在管易继续推单发货。
- 多组织多账套要分开建策略:同一套金蝶下不同账套/组织,走不同的 Source 配置 + 不同的过滤条件,避免数据串扰。
踩坑复盘
-
坑 1:未审核单据也被下发。
FilterString漏写FDocumentStatus='C',导致草稿/暂存单据也被同步到管易,后续审核时再发一次变成重复单。稳妥做法:过滤条件强制带上C状态,并在轻易云映射器里再加一道 DocumentStatus 断言。 -
坑 2:明细行只取了第一条。
BillEntry是数组,金蝶单次请求可能返回 100+ 行分页,子表分页靠FilterString限定行号会被忽略。稳妥做法:要么把Limit调大一次拉完,要么在轻易云里开启「明细行内联分页」开关。 -
坑 3:扩展字段拿不到值。金蝶自定义字段需要在
FieldKeys里显式列出,否则响应里直接没有该字段,前端看似是 null 实际是「根本没取」。稳妥做法:把要用的扩展字段一次性加进FieldKeys,并在元数据number/id之外声明额外键。 -
坑 4:客户编码映射错乱。
CustId_Number直接当shop_code用,结果一个客户对应多个店铺就崩了。稳妥做法:在轻易云的 CASE 函数里维护一张「客户编码→店铺代码」映射表,必要时一对多拆单。 -
坑 5:时区/日期格式不一致。金蝶审核日期是本地时间,管易
deal_datetime默认 UTC,时区不统一会导致订单时间漂移几小时。稳妥做法:在平台转换器里显式声明时区(默认 +08:00),避免依赖运行机时区。
何时选用
适用于「金蝶云星空作为 ERP 主数据/审核入口、管易云作为电商订单前台」的零售/电商混合架构;典型场景是 B2B 转 B2C 的销售单下游分发。边界:仅适合已审核单据的增量同步,不适合草稿协作或工作流中间态;若需要实时推送,建议改为 webhook+事件触发而非轮询。