制造业 · 可用量与交付承诺(ATP)
可用量回答的是工业客户永远都会问的那个问题:你什么时候能给我交货?CRM 按产品、工厂、批次和序列号镜像你 ERP 或 WMS 里的库存,算出可用量和 ATP(把在途补货算进去之后还能承诺多少),并把每一行归类为可供、偏低、缺货待补或断货。CRM 不是账面库存的主人:它解读这份镜像,并且永远告诉你这份镜像是什么时候的。
看着库存的毛数量去承诺交货,就像看着银行余额却不管已经开出去的支票。在制造业里,仓库中相当一部分东西已经有主了:它们被某张工单预留了,被另一笔订单占用了,或者干脆是还没从供应商那儿到货的。ATP,也就是 available to promise,正是真正剩下来、现在可以承诺给眼前这位客户的那个数字。
两行就说清的算法
CRM 为每一行库存保存四个数量:在手、已预留、已占用和在途。由它们出发:
- 可用量等于在手减去已预留、再减去已占用。它可以是负数,而负数是一条信息,不是一个错误。
- ATP 等于可用量加上在途,也就是把已经在路上的补货算进去之后,还能承诺出去多少。
状态由这个 ATP 得出。高于预警阈值时,这一行是“可供”。为正但落在阈值以内,是“偏低”。为零或为负、但有在途物料时,是“缺货待补”,因为交付是存在的,只是要等补货到货。为零或为负、又没有任何在途时,是“断货”:不生产或不采购就没有任何承诺可言。
颗粒度:产品、工厂、批次和序列号
这份镜像不是每个产品存一个数字,而是按产品、工厂、批次和序列号的组合每种存一行。这在有追溯要求的行业里很要紧:总共有十件并不解决问题,如果客户指定了某个批次,或者这些件躺在错误国家的错误工厂里。当你查询某个产品的合计时,CRM 会把这些行加起来,返回合计的可用量、合计的 ATP 和由此得到的状态,但对需要决定从哪里调货的人来说,逐行的读取依然可用。
这个数字是什么时候的
每一行可用量都带着两条大多数系统里缺失的信息:这个余额所对应的日期时间,以及是哪个来源系统报上来的。在它们之上,CRM 还会算出这条数据的“年龄”,以小时计。两小时前算出来的 40 件 ATP 是一回事;九天前算出来的同一个数字是另一回事。CRM 永远把两者一起返回,好让没有人在不知情的前提下,拿一张过时的快照去做承诺。
更新与预警
镜像的更新是幂等的:把同一个余额再次发送给同一个产品、工厂、批次和序列号的组合,会覆盖那一行,而不是新增一行,所以误传一次不会把任何数字撑大。每一次发送还可以带上预计交期和确认交期,两者的差别就是工厂通常需要多久,和它在这一单上承诺做到多久。
在这份镜像之上,CRM 会生成预警列表:你目录里所有 ATP 为零或为负的行,并区分为缺货待补和断货。这是供应链负责人的待办队列,也是在办活动或参展之前该看的地方,而不是之后。
前提与边界
- 制造业行业模块必须先在“设置 → 行业模块”里启用。
- 更新镜像需要写入权限;查询可用量只需要这个行业模块的读取权限。
- 可用量今天在“制造业”页面上没有自己的标签页:它由与你 ERP 或 WMS 的集成来喂数据,并在报价和订单的整个流程中被使用。
- 一行镜像都没有时,某个产品的 ATP 是零,状态是断货。这是信息缺失,不是库存短缺:先把镜像做好,再下结论。
- 交期不是 CRM 算出来的。它由来源系统报上来,CRM 只负责保存和展示。