一、先说结论
用安捷云 AgileFlow,把金蝶云星空的采购订单,按设定的时间频率自动同步到钉钉自定义表单。
配置好增量规则后,系统会按点自动去金蝶拉取新增和变更的采购订单(只取已审核的正式订单),字段转换后写入钉钉的指定表单。采购员、仓库、财务、管理者在钉钉里就能看到订单明细、交期、金额和状态,不用登录 ERP。
一句话:让采购订单从"只有采购员在 ERP 里看得到",变成"相关的人在钉钉里都看得见"。
二、为什么要做这件事
采购订单在 ERP 里,最典型的困境是:数据在那,但需要它的人进不去。
1. 仓库不知道什么时候到货。 采购订单在金蝶里躺着,仓库要等货到了才知道有这单,没法提前备货位、排人手。想让仓库自己查?得给开 ERP 账号、培训、配权限——成本比收益高得多。
2. 采购员在外面追不了单。 供应商催交期、领导问进度,采购员要回办公室开电脑查 ERP。出差、在供应商现场时,基本抓瞎。
3. 财务做付款计划要挨个问。 本月有多少在途采购、哪些快到付款节点,财务得找采购要数据,或者自己进 ERP 翻。
4. 管理层看不到采购在途全貌。 老板想知道"这个月压了多少采购在途",只能等月报。
5. 钉钉侧后续流程缺"地基数据"。 这是最容易被忽略的一点——如果你的到货确认、验收、供应商对账流程要在钉钉里跑,那这些流程得先有采购订单数据在手。订单不进钉钉,后面所有流程都跑不起来。
前四条是"看得见"的问题,第五条是"用得着"的问题。后者往往才是真正的推动力。
三、为什么是"定时",不是"实时"
定时同步本质上是一种设计选择,不是妥协。它有明确适用条件:
适合定时的三个前提:
6. 源系统的强项是"查询"而非"推送"。 金蝶云星空对外主要提供的是单据查询能力(如 executeBillQuery 这类查询接口),按条件分页取数,天然适合"我去拉"而不是"它推给我"。
7. 业务对时效的要求是"小时级"甚至"天级",不是秒级。 采购订单不是秒杀库存,晚半小时同步没有实际影响。
8. 需要控制对 ERP 的压力。 每个订单变动都实时推一次,高频场景下会给 ERP 增加不小负担。定时集中拉取反而更稳。
反过来,如果你需要秒级响应(比如订单审核后要立刻触发钉钉审批),那就该用事件驱动而不是定时。这两种机制不冲突,同一套系统里可以并存。
> 所以「定时」是这套方案的适用边界——它适合"查看、跟进、作为后续流程基础数据"这类场景;如果你要的是"变动即触发",那是另一类模板。
四、方案概述
环节 | 做什么 |
源(金蝶云星空) | 提供采购订单数据的唯一真实来源,只同步已审核的正式订单 |
通道(AgileFlow) | 按设定频率触发、增量拉取、字段转换、幂等判重、写入钉钉 |
目标(钉钉X表单) | 承接订单数据,供人查看,或作为钉钉侧后续流程的基础数据 |
两个关键设计:
1. 只同步"已审核"的订单
金蝶里草稿、待审核的订单是"还没定的事",同步过来只会干扰判断。方案默认过滤单据状态,只取已审核的正式订单——这也顺带解决了"上游改了备注导致增量任务误抓"的问题(见下一节)。
2. 「X表单」= 任意表单
模板不绑定某一张固定表单。你可以指向"采购订单台账表""到货计划表""供应商交期跟踪表"等任意钉钉表单,接一次能力,能复用多个场景。
五、数据流:一个定时任务的六步
① 定时器触发(按配置频率,如每天 02:00 / 每小时)
│
▼
② 增量取数(金蝶 executeBillQuery,按修改时间 + 审核状态过滤)
│
▼
③ 分页拉取(处理分页与接口限流,确保不丢单)
│
▼
④ 字段转换(金蝶字段 → 钉钉表单字段,含编码对照)
│
▼
⑤ 幂等判重(按单据唯一标识去重,已存在则更新)
│
▼
⑥ 写入钉钉表单(新增或更新)+ 记录执行日志
每一步都有个容易踩的点,展开说:
① 定时器:频率可配(天/小时/分钟级)。频率越密,对 ERP 压力越大,要平衡。
② 增量取数:这是整个方案最需要想清楚的地方,下一节单独讲。
③ 分页拉取:采购订单量大时一次拉不完,接口有分页和频率限制。方案按页循环取,取完为止,中途失败可续拉。
④ 字段转换:金蝶的字段名、编码体系与钉钉表单不同。金蝶用字段代码(如 FBillNo、FDate),钉钉表单是自定义字段;物料、供应商编码两边也可能不一致,需要对照表。
⑤ 幂等判重:定时任务重跑、失败恢复重跑都可能重复写入。必须按单据唯一标识判重——金蝶采购订单的主键(单据内部 ID)全局唯一,是天然的幂等键;单据编号也可作为业务侧唯一标识。
⑥ 写入与记录:每次都记执行日志——本次取了多少条、新增多少、更新多少、失败多少。出了问题能定位到具体哪张单。
六、定时同步的三个关键机制
这一节是全文最技术的部分,也是最容易做错的地方。做过 ERP 定时同步的人都知道:能跑起来不难,跑得准才难。
机制一:增量字段怎么选
金蝶单据上有多个时间字段,用途不同:
时间字段 | 含义 | 什么时候用 |
最后修改时间 | 单据任何字段被改动都会更新 | 要感知所有变化时用它 |
审核日期 | 单据审核通过的时间 | 只关心正式生效数据时用它 |
业务日期 | 业务上定义的日期 | 按业务月份统计时用它 |
实践中较好的组合是:以「最后修改时间」为增量基准,同时加一个「单据状态=已审核」的过滤条件。
原因很实际:
· 只用审核日期 → 上游改了备注、改了税率,增量任务感知不到,钉钉里的数据就成了旧的。
· 只用修改时间 → 会把大量草稿、待审的无效单据也同步过来,钉钉表单里全是垃圾数据。
· 两个条件一起用 → 既不漏改动,又不要垃圾。
机制二:时间窗口不能有缝
定时任务有个隐蔽的漏数陷阱:任务本身要跑一段时间。
举例:任务设定"同步昨天 0 点到今天 0 点修改的单据",但任务实际跑了 30 分钟。这 30 分钟里产生的订单变动,就落在两个窗口之间的缝里,谁都抓不到。
解法是把窗口往前偏移一段——比如每次多往前取 10 分钟到 1 小时。代价是可能重复同步几条(由幂等机制处理掉),收益是不会漏。
> 一句话原则:宁可重复,不可遗漏。重复有幂等兜底,遗漏是没有兜底的——数据漏了,人不会知道。
机制三:幂等键怎么定
定时同步必须能回答一个问题:这条数据我是不是已经同步过了?
金蝶采购订单有天然的幂等键——单据内部 ID,全局唯一。把它映射到钉钉表单的唯一定位字段上:
· 已存在相同 ID 的记录 → 更新(覆盖旧值)
· 不存在 → 新增
这样即使任务重跑十次,钉钉表单里也只有一条正确的数据。没有幂等设计的定时同步,本质上是在赌接口不会超时。
七、定时频率怎么选
频率 | 适合什么情况 | 注意 |
每天一次(如凌晨 2 点) | 采购订单只用于次日查看、做计划 | 最稳妥,对 ERP 压力最小,业务负载低的时段跑 |
每小时一次 | 采购员需要当天看到新订单 | 需要关注 ERP 接口调用频率限制 |
每 15~30 分钟 | 交期跟催类场景,时效要求较高 | 建议只取增量,并评估 ERP 负载 |
实时(事件驱动) | 需要"审核即触发"下游流程 | 不属于本模板范畴,应改用事件型方案 |
我的建议:从每天一次起步,观察实际使用情况后再决定是否加密。很多企业一开始觉得"必须实时",跑起来发现一天一次完全够用——采购订单不是库存,没必要秒级。
八、字段映射示例
下表为典型映射示意,具体字段以贵司金蝶采购订单字段配置与钉钉表单结构为准:
金蝶云星空采购订单 | 映射到钉钉表单 | 说明 |
单据编号 | 采购订单号 | 业务唯一标识,建议设为表单唯一键之一 |
单据内部 ID | 隐藏字段(系统 ID) | 幂等判重键,全局唯一 |
单据日期 | 订单日期 | 日期类型 |
供应商编码 / 名称 | 供应商 | 编码可能需要对照表转换 |
采购组织 / 采购部门 | 采购组织 / 部门 | 组织架构字段 |
采购员 | 采购负责人 | 用于钉钉侧人员匹配 |
物料编码 / 名称 / 规格 | 物料信息 | 明细行字段 |
计量单位 | 单位 | 编码转名称展示 |
数量 / 单价 / 金额 | 数量 / 单价 / 金额 | 明细行,注意精度 |
税率 / 价税合计 | 税率 / 含税金额 | 价税分离时都需要 |
交货日期 | 预计到货日 | 仓库排产、备货位的依据 |
单据状态 | 订单状态 | 只同步"已审核",其余过滤 |
审核日期 | 审核时间 | 追溯用 |
备注 | 备注 | 可能触发增量更新 |
(明细汇总) | 订单行数 / 订单总额 | 表头汇总字段,便于列表页展示 |
关于编码不一致:金蝶的供应商编码、物料编码、部门编码,与钉钉表单里用的未必一致。实施时必须建一张编码对照表(金蝶编码 → 钉钉侧编码),并在组织或主数据变动时维护它。这一步做扎实,后面不出问题;省了这一步,后面会反复卡在"这个供应商找不到"。
九、适用场景
只要符合"ERP 里有数据、需要的人在钉钉里、时效要求不是秒级"这三个特征,都能用:
· 采购订单台账:全公司在钉钉里看采购订单,别再挨个问采购员要
· 到货计划看板:按交货日期排序,仓库提前安排收货和仓位
· 供应商交期跟踪:采购员在钉钉里跟进每单交期,催货有据
· 付款计划参考:财务按订单和到货情况安排资金
· 采购在途汇总:管理层随时看本月在途采购规模
· 钉钉侧流程的基础数据:到货确认、验收、对账等流程的前置数据源
· 供应商协同:把订单关键信息推给供应商可见的表单或群
> 反过来,如果你的需求是"订单审核后立刻在钉钉发起审批"或"金蝶一改就马上同步",那应该用事件驱动方案,不要硬套定时模板。
十、上线收益
9. 数据可见范围从"几个人"扩到"一条链"。 采购、仓库、财务、管理层都能在钉钉看到订单,不用开 ERP 账号、不用培训。
10. 信息流转不再靠人传。 仓库早知道到货计划、财务早知道付款节点,减少了大量"问—等—催"的沟通成本。
11. 移动端可用。 采购员在供应商现场、在出差路上,手机就能查单跟单。
12. 钉钉侧流程有了地基。 到货、验收、对账等流程能基于真实采购订单跑起来。
13. 对 ERP 零侵入。 只读查询,不改金蝶任何数据,不影响原有业务和安全边界。
14. 数据不会漏也不会重。 增量窗口 + 幂等判重双重保障,任务重跑也不出错。
15. 出问题能定位。 每次执行有日志,哪张单没同步、卡在哪一步,查得出来。
十一、为什么选安捷云 AgileFlow
· 现成模板,不用从零搭。「采购订单→钉钉X表单(定时)」是模板中心的成熟方案,增量规则、字段映射、幂等逻辑都是配好的,落地速度快。
· 增量策略可调。 增量字段、过滤条件、时间窗口偏移、定时频率都能在界面上配,不用改代码就适配不同企业的业务节奏。
· 分页与限流已处理。 订单量大时自动分页循环取,不会因为一次拉不完就漏单。
· 编码对照可维护。 供应商、物料、部门的编码转换集中管理,主数据变动只改一处。
· 执行可观测。 每次定时任务的取数、新增、更新、失败都有记录和告警,不靠人工盯。
· 只读安全。 本模板只从金蝶查询取数,不写不改,不触碰 ERP 的数据边界。
· 可持续扩展。 宜搭/钉钉与金蝶云星空是中型以上企业常见组合;AgileFlow 在这条链路上另有「宜搭表单→金蝶云星空凭证」「宜搭表单→好业财凭证」等成熟模板,可组合成覆盖双向数据流的业财一体方案。AgileFlow 与安捷AI(天智鲲鹏)同体系,后续还能继续打通 T+、好业财、飞书等系统。
十二、接入路径
16. 授权连接。 在 AgileFlow 中授权金蝶云星空与钉钉(宜搭),建立系统间通道。
17. 确定目标表单。 先在钉钉侧建好承接表单(或选定已有表单),确认字段结构。
18. 同步基础资料。 拉取金蝶的供应商、物料、组织等主数据,建立编码对照表。
19. 配置增量规则。 设定增量时间字段(建议最后修改时间)、过滤条件(建议单据状态=已审核)、时间窗口偏移量。
20. 配置字段映射。 把采购订单的表头与明细字段对应到钉钉表单字段,注意明细行的处理方式。
21. 设定定时频率。 建议从每天一次起步,观察后再调整。
22. 试运行核对。 手动跑一次,抽查钉钉表单里的数据与金蝶是否一致——重点核对数量、金额、交期、供应商。
23. 正式启用。 开启定时调度,持续观察执行日志。
> 实施重点在第 3、4 步(编码对照 + 增量规则)。这两步决定了后面跑得顺不顺,不要图快跳过。
十三、常见问题(FAQ)
Q1:一定要定时吗?能不能实时?
定时是本模板的机制。如果业务确实需要实时(如订单审核后立即在钉钉触发审批),应改用事件驱动型方案。两种机制可以并存,各做各的场景。
Q2:会同步草稿订单吗?
默认只同步已审核的正式订单。草稿、待审的订单视为"还没定的事",不同步,避免干扰判断。
Q3:金蝶里改了订单,钉钉会跟着改吗?
会。增量以"最后修改时间"为基准,上游任何字段改动都会被感知,下次定时任务执行时更新钉钉侧对应记录。
Q4:任务重跑会不会产生重复数据?
不会。按金蝶单据唯一 ID 做幂等判重,已存在则更新、不存在则新增,重跑多次结果一致。
Q5:订单量大,一次拉不完怎么办?
方案自动分页循环取,并控制调用频率,确保完整取回不漏单。
Q6:会不会给 ERP 造成压力?
定时集中拉取本身就是为了控制压力,且建议调度在业务低峰(如凌晨)执行。如果订单量极大,可适当降低频率或缩小增量窗口。
Q7:只读还是也会写回金蝶?
本模板是单向只读(金蝶 → 钉钉),不修改金蝶任何数据。若需要在钉钉侧确认后回写金蝶状态,那是另一个方向的模板,可另行配置。
Q8:钉钉表单里的数据能再往下走流程吗?
可以。这正是本模板的重要价值——采购订单进钉钉后,可作为到货确认、验收、对账等后续流程的基础数据源。
安捷云 AgileFlow 业财一体连接器,让 ERP 里的数据流到需要它的人手上。本文仅描述连接器能力与典型方案,文中字段、频率与机制说明均为通用实践,具体以贵司系统配置和业务节奏为准。

