> 发货通知单是"要发什么"的执行指令,不是"要买什么"的需求承诺。它躺在 ERP 里没人看见,就等于没下——指令晚到一步,货就晚发一步。本文讲清楚这张单据在金蝶里的真实定位,以及怎么让它在仓库开工前就到达干活的人手上。
一、先说结论
用安捷云 AgileFlow,把金蝶云星空的发货通知单,按设定的时间频率自动同步到钉钉自定义表单。
配置好增量规则后,系统会按点去金蝶拉取新增和变更的发货通知单,字段转换后写入钉钉的指定表单。仓库不用登录 ERP 就能看到"今天要发哪些货、发多少、发到哪",销售和客服也能随时查"这单发货了没"。
一句话:把仓库的拣货发货任务,从 ERP 里直接送到干活的人手上。
二、为什么发货通知单必须"直达"执行人
发货通知单和别的单据不太一样——它的存活时间很短,价值全在"及时传达"上。
1. 仓库要等指令才能干活。 销售在金蝶下推了发货通知单,仓库不知道就等于没下。等仓管上班开电脑查 ERP、或者等销售打电话通知,一天的发货窗口就这么耗掉了。
2. 漏发、错发的代价最直接。 别的环节出了差错,多半还有回旋余地;发货这一环漏了,就是客户等不到货、投诉、甚至违约。这是履约环节,容错空间最小。
3. 销售和客服都在问"发了没"。 客户催货、销售要回话、客服要安抚,全都得问仓库或进 ERP 查,一天被问十几遍。
4. 分批发货容易乱。 一单分两批发、不同仓调货、部分缺货先发——这些情况下没人能说清"这单到底发了多少、还剩多少没发"。
5. 物流安排得提前。 叫车、约快递、拼车,都要先知道今天有多少货、多重、发往哪里。
这些问题的共同点:发货通知单的价值不在"存在",在"被看见"。一张躺在 ERP 里的发货通知单,跟没下一样。
三、先搞清楚:发货通知单在金蝶里到底是什么
这一节必须先讲清楚,否则后面的方案会被误解。发货通知单不是出库单,它不更新库存。
在标准销售流程里,发货通知单位于这个位置:
销售订单 → 销售出库单 → 应收单
↓
发货通知单(中间的通知/指令单据)
`
如果启用了质量管理模块,流程会变成:
销售订单 → 发货通知单 → 库存请检单 → 检验单 → 销售出库单 → 应收单
这个位置决定了它的三个属性:
属性 | 说明 |
是"指令"不是"事务" | 它告诉仓库"把什么货发出去",本身不做库存事务处理 |
不扣库存 | 实际库存扣减以「销售出库单」审核为准,发货通知单保存后库存数量不变 |
不产生应收 | 收入和应收的确认同样要等销售出库单,不在这张单上 |
可以是可选环节 | 部分企业不用发货通知单,销售订单直接下推销售出库单;但需要质检或需要正式发货指令的企业必须用 |
这个认知为什么重要:它决定了同步到钉钉后该怎么用。你在钉钉表单里看到的数量是"应发数量"(指令数),不是"已发数量"(实际出库数)。两者在日常业务里可能不一致——缺货、分批、客户临时改量都会造成差异。把这一点搞混,仓库就会按"应发"当"已发"来管库存,账就乱了。
> 所以本方案定位很明确:它解决的是发货指令的传达,不替代库存查询,也不替代出库确认。
四、为什么用"定时"同步
用定时是设计选择,不是妥协:
6. 金蝶的主要能力是"查询" —— 通过单据查询接口按条件分页取数,天然适合"我去拉"而不是"它推给我"。
7. 发货通知单的变化是"成批"的 —— 通常销售集中在上午或下午某个时段下推,不是零散分布,定时集中拉取比逐条推送更高效。
8. 定时集中拉取对 ERP 更友好 —— 保持可控的查询节奏,比高频推送更稳。
但频率必须按单据性质来定。不同数据对时效的敏感度差得很远:
数据类型 | 时效敏感度 | 合理频率 |
主数据(客户、物料、仓库档案) | 低 | 每天一次即可 |
需求类单据(订单、计划) | 中 | 每天 1~2 次 |
执行类单据(发货通知、拣货任务) | 高 | 每小时或更密 |
库存与状态查询 | 极高 | 事件驱动或实时 |
发货通知单属于第三类——它是"现在就要干的事",同步延迟直接等于发货延迟。
> 一句话:发货通知单同步晚一小时,可能就错过当天的发货班次。
五、方案概述
环节 | 做什么 |
源(金蝶云星空) | 提供发货通知单数据,只同步已审核的正式通知单 |
通道(AgileFlow) | 按设定频率触发、增量拉取、明细行转换、幂等判重、写入钉钉 |
目标(钉钉X表单) | 承接发货指令,供仓管作业、销售客服查询,或作为发货审批的输入 |
三个关键设计:
1. 只取"已审核"的通知单
未审核的发货通知单是"还没定的事",通知仓库去拣货只会造成混乱。默认过滤单据状态,只取审核通过的。
2. 明细行必须完整带上
发货通知单的价值在明细——哪个物料、多少数量、发到哪个仓、走哪个客户地址。表头信息(客户、单号)不够用,拣货是按行拣的。这是发货场景最要紧的一点:明细行的完整性和准确性,直接决定仓库会不会拿错货、发错量。
3. 「X表单」= 任意表单
可以指向"发货任务表""拣货清单""发货跟踪表"等任意钉钉表单,一套能力复用多个场景。
六、数据流:一个定时任务的六步
① 定时器触发(按配置频率,如每小时 / 每天两次)
│
▼
② 增量取数(按最后修改时间 + 单据状态=已审核过滤)
│
▼
③ 分页拉取(处理分页与接口限流,确保不丢单)
│
▼
④ 转换(表头字段 + 明细行逐行映射,编码对照)
│
▼
⑤ 幂等判重(按单据唯一标识去重,已存在则更新)
│
▼
⑥ 写入钉钉表单(新增或更新)+ 记录执行日志
几个专属注意点:
④ 明细行的处理
一张发货通知单通常有多行物料明细。写入钉钉时要决定用哪种结构:拆成多行子表单(适合拣货逐行勾选)、还是拼成一段文本(适合只做通知)。这个选择在实施阶段就要定下来,因为不同结构决定了表单怎么用。
⑤ 幂等键
按金蝶单据内部 ID 判重,已存在则更新、不存在则新增。发货通知单需要特别注意:它可能会被反复修改(改数量、改仓库、拆单),所以更新逻辑必须做对——不是简单跳过已存在的记录,而是要用最新数据覆盖。
⑥ 状态字段要同步
发货通知单有它自己的执行状态(未发货、部分发货、已发货等)。这个字段最好一起同步,否则钉钉表单里所有单据看起来都是"待发货",仓库没法区分哪些已经干完了。
七、定时同步的三个关键机制(及发货场景的特殊处理)
机制一:增量字段怎么选
时间字段 | 含义 | 什么时候用 |
最后修改时间 | 单据任何字段被改动都会更新 | 要感知所有变化时用它 |
审核日期 | 单据审核通过的时间 | 只关心正式生效数据时用它 |
业务日期 | 业务上定义的日期 | 按业务月份统计时用它 |
组合方式:以「最后修改时间」为增量基准,加「单据状态=已审核」过滤。
这对发货通知单尤其重要——因为它经常被改:客户加量、减量、改发货地址、换仓库、拆批。只用审核日期的话,这些改动全都感知不到,仓库会按旧指令拣错货。
机制二:时间窗口要更紧
通用的原则是"窗口往前偏移,宁可重复不可遗漏"。发货通知单还要额外注意两点:
其一,偏移量要覆盖任务运行时间。任务跑 10 分钟,这 10 分钟内的新单必须能被下一轮抓到。
其二,考虑到发货的时效性,建议不要单纯依赖"上次执行时间"作为窗口起点。更稳的做法是按固定时间区间取(如"最近 3 小时修改的单据"),这样即使某一轮任务失败,下一轮也能自动补上,不会因为时间窗口断了就永久丢单。
机制三:幂等要区分"新增"和"更新"
发货通知单的幂等处理要格外小心,因为这张单改动太频繁:
· 首次同步 → 新增
· 后续变动(数量、仓库、状态改了)→ 更新,不是跳过
· 拆分/合并 → 需要按单据 ID 正确处理(拆单会生成新 ID,原单状态也会变)
> 判断逻辑必须是"以源系统最新状态为准",而不是"钉钉里有了就不管"。否则客户改了发货量,仓库还按老数字拣货,就出事了。
八、定时频率怎么选
频率 | 适合什么情况 | 注意 |
每小时一次 | 大多数企业的推荐起点,兼顾时效与 ERP 压力 | 建议调度在企业发货高峰前(如早上 8 点前跑完第一轮) |
每天 2~4 次 | 发货节奏固定、集中在固定时段的企业 | 在发货时段前各跑一次,保证仓管上班就有任务 |
每 15~30 分钟 | 当日达、多批次高频发货场景 | 需评估 ERP 负载,建议只取增量、缩小时间窗口 |
实时(事件驱动) | 需要"审核即推送仓库"的强时效场景 | 不由本模板覆盖,应改用事件型方案 |
实用建议:不要只看"多久跑一次",要看"仓管什么时候需要"。如果仓库早上 8 点开始作业,那保证 8 点前有一轮完整同步,比全天每 15 分钟跑一次更有价值。很多时候关键在调度时刻,不在频率。
九、字段映射示例
下表为典型映射示意,具体字段以贵司金蝶发货通知单配置与钉钉表单结构为准:
表头字段
金蝶云星空发货通知单 | 映射到钉钉表单 | 说明 |
单据编号 | 发货通知单号 | 业务唯一标识 |
单据内部 ID | 隐藏字段(系统 ID) | 幂等判重键 |
单据日期 | 通知日期 | 日期类型 |
客户编码 / 名称 | 客户 | 编码可能需对照表转换 |
收货地址 / 联系人 | 收货信息 | 仓库发货、物流下单必备 |
销售组织 / 销售部门 | 组织 / 部门 | 组织架构字段 |
销售员 | 业务员 | 用于钉钉侧人员匹配 |
交货日期 / 发货日期 | 要求发货日 | 仓管排作业优先级的关键 |
单据状态 | 单据状态 | 只同步已审核 |
发货状态 | 执行状态 | 区分未发货/部分发货/已发货 |
审核日期 | 审核时间 | 追溯用 |
备注 | 备注 | 改动频繁,是增量更新的重要触发源 |
(明细汇总) | 总行数 / 总数量 | 表头汇总,便于列表展示 |
明细行字段
金蝶云星空(明细) | 映射到钉钉表单 | 说明 |
物料编码 / 名称 / 规格 | 物料信息 | 拣货核对依据 |
计量单位 | 单位 | 编码转名称 |
应发数量 | 应发数量 | 注意:这是指令数,不是实际出库数 |
仓库 / 库位 | 发货仓库 | 仓管作业定位 |
批次号 | 批次 | 启用批次管理时带上 |
单价 / 金额 | 单价 / 金额 | 视表单用途决定是否展示 |
行号 | 行号 | 保持原顺序,便于核对 |
关于编码不一致:客户编码、物料编码、仓库编码在金蝶与钉钉表单之间未必一致。实施时建立编码对照表(金蝶编码 → 钉钉侧编码),主数据变动时集中维护。
十、适用场景
只要符合"金蝶里有发货指令、需要仓库或销售在钉钉里看到、时效要求较高"这三个特征,都能用:
· 仓库拣货发货任务单:仓管在钉钉里看今日待发清单,逐行拣货、勾选完成(核心场景)
· 发货跟踪表:销售、客服随时查"这单发了没、发了几批"
· 分批发货管理:一单多批时,看清每批的应发量与实际进度
· 物流安排:提前知道今天发多少货、发往哪里,好安排车和快递
· 发货审批:大额发货、异常发货、超信用额度发货,在钉钉里走审批
· 客户发货通知:提前告知客户"货已安排发出",降低催货压力
· 质检前置场景:需要送检的发货批次,钉钉里同步任务,衔接请检流程
> 反过来,如果你要的是"实时库存查询"或"出库确认回写金蝶",那不是这个模板的范围——库存要看库存查询、出库要以销售出库单为准。
十一、上线收益
9. 发货指令零延迟传达。 仓库不用等电话、不用开 ERP,钉钉里就有今天的活儿。
10. 漏发、错发显著减少。 明细行逐行呈现,拣货有据可依;数量、仓库、批次一目了然。
11. 销售客服自助查询。 "发货了没"不用再问仓库,自己查,减少大量沟通成本。
12. 分批发货不再扯皮。 应发与已发、已发与剩余,看得清楚。
13. 物流安排更从容。 提前知道货量和流向,叫车约快递不再临时抓瞎。
14. 对 ERP 零侵入。 只读查询,不改金蝶数据,不影响原有业务和安全边界。
15. 出问题能定位。 每次执行有日志,哪张单没同步、卡在哪一步,查得出来。
十二、为什么选安捷云 AgileFlow
· 现成模板,落地快。「发货通知单→钉钉X表单(定时)」是模板中心的成熟方案,增量规则、明细行转换、幂等逻辑都已配好。
· 明细行处理有经验。 发货场景的难点在明细行,方案支持多行映射、行号保持、汇总计算。
· 增量策略可调。 增量字段、过滤条件、时间窗口、定时频率都能在界面配置,随时适配业务节奏变化。
· 编码对照可维护。 客户、物料、仓库的编码转换集中管理,主数据变动只改一处。
· 执行可观测。 每次取数、新增、更新、失败都有记录和告警,不靠人工盯。
· 只读安全。 只从金蝶查询取数,不写不改,不触碰 ERP 数据边界。
· 可持续扩展。 除本方案外,AgileFlow 还能打通 T+、好业财、飞书、企业微信等系统,按企业实际使用的 ERP 与协同工具组合扩展。AgileFlow 与安捷AI(天智鲲鹏)同体系,后续可在同一平台里继续延伸。
十三、接入路径
16. 授权连接。 在 AgileFlow 中授权金蝶云星空与钉钉(宜搭),建立系统间通道。
17. 确定目标表单。 在钉钉侧建好承接表单(或选定已有表单),先想清楚明细行要拆成子表单还是拼成文本——这决定了表单怎么用。
18. 同步基础资料。 拉取金蝶的客户、物料、仓库等主数据,建立编码对照表。
19. 配置增量规则。 设定增量时间字段(建议最后修改时间)、过滤条件(建议单据状态=已审核)、时间窗口策略。
20. 配置字段映射。 表头与明细行分别对应,注意数量字段的语义(应发 ≠ 已发)。
21. 设定定时频率与调度时刻。 优先保证"仓管上班前跑完第一轮"。
22. 试运行核对。 手动跑一次,抽查钉钉表单与金蝶是否一致——重点核对明细行数量、仓库、交货日期、客户收货地址。
23. 正式启用。 开启定时调度,持续观察执行日志。
> 实施重点在第 2、3、5 步。尤其是第 5 步,数量字段一旦语义搞错(把应发当已发),仓库的库存管理就会出系统性偏差,这个坑必须在配置阶段就堵住。
十四、常见问题(FAQ)
Q1:钉钉里看到的数量是实际出库数吗?
不是。发货通知单上的数量是应发数量(指令数)。实际出库以金蝶「销售出库单」为准。二者可能因缺货、分批、临时改量而不一致,不能把应发当已发来管库存。
Q2:同步发货通知单会扣减金蝶库存吗?
不会。发货通知单是通知/指令单据,不做库存事务处理,库存扣减以销售出库单审核为准。本模板是只读查询,不修改金蝶任何数据。
Q3:一定要定时吗?能不能一审核就推送?
定时是本模板的机制,适合小时级时效场景。若需要"审核即推送仓库"的强时效,应改用事件驱动型方案。两者可并存。
Q4:客户改了发货量,钉钉会跟着改吗?
会。增量以"最后修改时间"为基准,且更新逻辑以源系统最新状态为准(不是"有了就跳过"),所以改量、改仓库、改地址都能同步过来。
Q5:一张单有多行明细怎么处理?
支持多行明细映射,可按子表单逐行呈现(便于拣货勾选)或汇总成文本。行号保持原顺序,方便与金蝶核对。
Q6:分批发货怎么体现?
通过同步"发货状态"字段区分未发货/部分发货/已发货。更细的分批情况建议结合销售出库单数据一并查看。
Q7:任务失败了会丢单吗?
建议按固定时间区间取数(如最近3小时修改),这样单轮失败下一轮能自动覆盖。配合执行日志与告警,可及时发现异常。
Q8:能反过来把钉钉的发货确认写回金蝶吗?
本模板是单向只读(金蝶 → 钉钉)。若需要钉钉侧确认后回写金蝶生成销售出库单,属另一方向的模板,可另行配置。
> 安捷云 AgileFlow 业财一体连接器,让发货指令第一时间送到仓库手上。本文仅描述连接器能力与典型方案,文中单据流程、字段与机制说明均为通用实践,具体以贵司系统配置和业务节奏为准。

