
最近在和一位刚入行的供应链产品经理的朋友聊天时,他提到了一个令他困惑的问题:"为什么我们公司的ERP系统以及金蝶的星空ERP里的调拨单有两种?一种叫直接调拨,一种叫分步调拨,这两种到底有什么区别?什么情况下用哪一种更合适?"
这个问题其实很有代表性,背后的业务知识也挺重要的。在供应链领域,尤其是对于刚接触ERP系统的产品经理来说,调拨单的设计逻辑确实容易让人混淆。今天,我就来和大家聊聊这个话题,希望能帮助你更清晰地理解这两种调拨方式的区别和应用场景。
一、什么是直接调拨和分步调拨?
1.1 直接调拨:一步到位的库存转移
直接调拨,顾名思义,就是将货物从调出仓库直接转移到调入仓库的过程。在系统中,这表现为一张调拨单即可完成整个库存的转移。
比如,当你需要从系统的正常仓调拨100件T恤到不良品仓时,你只需创建一张直接调拨单,系统会在正常仓减少100件T恤的库存,同时在不良品仓增加相应数量。整个过程一气呵成,不需要中间环节。
1.2 分步调拨:拆分为出库和入库两个步骤
分步调拨则是将调拨过程拆分为两个独立的步骤:调出仓库的调拨出库和调入仓库的调拨入库。这意味着系统会先在调出仓库减少库存,然后创建一个"在途库存"状态或者引入一个“在途仓”,将库存记录于在途仓中。然后货物实际到达调入仓库后,再进行调拨入库操作,完成整个调拨过程。
还是用借用上面的案例,如果使用分步调拨,系统会先推送一个给仓库A一个调拨出库单,当仓库A执行了出库之后,会立即扣减100件T恤的库存。同时在途仓会增加100件T恤的库存,库存转移到了在途仓中,同时也会生成一个仓库B的调拨入库单。当货物经过一段时间的运输,送到了仓库B之后,B仓库就可以根据调拨入库单执行入库,增加100件T恤的库存。
1.3 适用场景及优劣势对比
那么,这两种调拨方式各自适用于什么场景呢?它们的优势、劣势又是什么呢?
直接调拨适用于: 当你的调出仓库和调入仓库距离较近,物流时间短,或者是同一物理位置的不同逻辑仓库之间的调拨时,直接调拨是个不错的选择。比如,同一购物中心内不同楼层的门店之间的调货,或者是同一仓库内不同库区之间的库存转移。
直接调拨的优势:
-
操作简单,流程短,系统处理逻辑简单 -
减少了人工操作环节,降低了出错可能性 -
适合快速调拨场景,提高了库存周转效率
直接调拨的劣势:
-
无法精确反映在途库存状态 -
对于长距离调拨,可能导致库存数据与实际情况不符 -
不利于异常情况的处理和跟踪
分步调拨适用于: 当调出仓库和调入仓库之间距离较远,物流时间长,或者需要更精确地跟踪在途库存时,分步调拨就显得更为合适。例如,从华北地区的中央仓库向华南地区的分仓调拨,这个过程可能需要3-5天的物流时间,使用分步调拨可以更清晰地反映库存的实际状态。
分步调拨的优势:
-
能够准确反映库存的实际状态,包括在途库存 -
便于跟踪物流过程中的库存状态 -
更灵活地处理调拨过程中的各种异常情况
分步调拨的劣势:
-
操作步骤多,流程较长 -
需要更多的人工干预和确认 -
系统实现逻辑相对复杂
二、调拨的产品功能设计
2.1 直接调拨单的业务流程
直接调拨的业务流程相对简单,通常包括以下几个环节:
-
创建调拨单:库存管理员/业务人员在ERP中创建调拨单,指定调出仓库、调入仓库、调拨商品及数量。 -
审核调拨单:可能需要主管或经理审核调拨单。有些企业为了提高效率,可能会省略这一步或设置自动审核规则。 -
调出仓出库完成:在实际的业务中,可能需要推送调拨出库单给仓库,让仓库执行拣货出库的动作,但是在ERP层面,审核了调拨单之后,会直接同时减少调出仓库的库存,并增加调入仓库的库存。 -
调入仓入库完成:在实际的业务中,可能需要推送调拨入库单给仓库,让仓库执行收货的动作,是在ERP层面,审核了调拨单之后,会直接同时减少调出仓库的库存,并增加调入仓库的库存。 -
调拨完成:系统标记调拨单为完成状态,整个调拨过程结束。
通过上面的业务流程拆解,我们可以知道,ERP的直接调拨单如果想要达到审核确认单据之后,自动就扣减调出仓库存,增加调入仓的库存。那么就意味着不需要推送单据给仓库,只调整ERP层的仓库库存,或者是推送单据给仓库,但是不接收仓库实际回传的作业数据。
这是直接调拨单的最大特点,也是它的一个弊端之一。
2.2 分步调拨单的业务流程
分步调拨是将调拨过程拆分为出库和入库两个独立的步骤,其业务流程相对复杂:
-
创建分步调出单:与直接调拨类似,由库存管理员或业务人员创建分步调出单。 -
审核分步调出单:根据企业管理要求进行审核。 -
调出仓拣货/确认出库:调出仓库的仓管员根据调拨单进行拣货出库的操作,然后调出仓库确认货物出库。 -
货物进入在途:在分步调拨模式下,调出仓确认出库后,会扣减调出仓库的库存,同时增加“在途仓”的库存,此时这部分的"在途库存"记录于在途仓中。 -
生成并自动审核分步调入单:调出仓确认出库之后,也会自动生成并审核分步调入单。 -
调入仓收货/确认入库:调入仓库收到货物后进行收货、入库的操作。然后调入仓库确认货物入库。此时会将"在途仓"的库存扣减,然后调入仓库的库存增加。 -
调拨完成:调出单完结,在途仓库存为0,调入仓完结,表示调拨过程完结。
你可能会问,为什么分步调拨需要这么多额外的字段和状态?这是因为分步调拨更接近实际的物流过程,能够更准确地反映库存的真实状态。想象一下,如果一批货物从北京发往广州,需要5天的运输时间,在这5天内,这批货物既不在北京仓库,也不在广州仓库,而是处于"在途"状态。分步调拨正是为了反映这种实际情况而设计的。
而且将调拨过程拆分为2个步骤,可以按仓库实际的业务操作先生成调出单,然后根据调出单实际出库的数量来生成后面的调入单,这样既可以清晰地记录每个步骤的库存变化,同时也可以及时跟进仓库执行的情况,快速发现执行过程中的一些异常问题。
分步调拨单最大的特点就是引入了一个“在途库存”的概念,这样既可以更加精准地管控实物的库存数量,同时也可以在财务核算的时候提供准确的数据。
2.3 调拨单的核心字段
无论是直接调拨单还是分步调拨单,它的底层核心都是相似的,一般都会包含以下核心字段:
-
基本信息 -
调拨单号:系统自动生成的唯一标识 -
调拨类型:标识为直接调拨/分步调出单/分步调拨入单 -
创建时间:调拨单创建的时间 -
创建人:创建调拨单的操作员 -
调拨原因:说明为什么需要进行此次调拨 -
仓库信息 -
调出仓库:货物调出的仓库 -
调入仓库:货物调入的仓库 -
调出部门:调出仓库所属部门(可选) -
调入部门:调入仓库所属部门(可选) -
商品信息 -
商品编码:商品的唯一标识 -
商品名称:商品的名称 -
规格型号:商品的规格型号 -
单位:计量单位 -
调拨数量:计划调拨的商品数量 -
实际出库数量:调出仓库实际出库的数量 -
在途数量:已出库但尚未入库的数量(如果不用在途仓来记录则用这个字段) -
实际入库数量:调入仓库实际入库的数量 -
状态信息 -
调拨单状态:当前调拨单的状态 -
审核人:审核调拨单的操作员 -
审核时间:审核通过的时间 -
出库时间:调出仓库确认出库的时间 -
入库时间:调入仓库确认入库的时间
三、调拨中常见的一些异常场景
在实际业务中,调拨过程并不总是一帆风顺的。各种异常情况可能会发生,作为产品经理,我们需要考虑如何在系统中处理这些异常场景。下面,我们来看看几种常见的异常情况及其处理方法。
3.1 调出仓缺量出库怎么处理?
想象这样一个场景:你创建了一张调拨单,计划从北京仓库调拨100件T恤到上海仓库。但当仓库管理员去拣货时,发现实际库存只有80件。这种情况下,我们该如何处理?
如果业务系统支持缺量出库,那么就会按80件作为调拨出库的数量;如果业务系统不支持缺量出库,则调拨单无法继续向下走,这个单需要作废。
但是前面提到过,直接调拨单一般是不会接收仓库的实际出库数据回传的,而且直接调拨在审核之后就会直接扣减调出仓的库存,增加调入仓的库存。ERP层的库存变化和WMS层面的库存变化是不一致的,所以当出现了这种缺量的场景后会导致ERP和WMS库存不一致,会引发很多后续修数据的工作。
如果需要用单据来对仓库实际作业进行管控,则不建议用直接调拨单的方式去对接仓库,应该采用分步调拨单。
在分步调拨模式下,由于分步调拨将出库和入库分开处理,所以更容易实现部分出库功能。当业务系统缺量出库的时候,可以记录实际出库数量为80件,在途数量也为80件,而不是计划的100件。这样在后续生成分步调入单的时候,就会按80件来作为待入库的数量,而不是100件。
3.2 调入仓缺量入库怎么处理?
另一个常见的异常场景是:调出仓库已经发出了100件T恤,但调入仓库只收到了95件,有5件在运输过程中丢失或损坏。这种情况下,我们该如何处理?
结合上面提到的直接调拨单的弊端和受限的场景,所以我们在此只讨论分步调拨的处理方式。
在分步调拨模式下,由于系统在调拨出库的时候,将调出仓实际出库的数量挂在了“在途仓”中,而不是直接增加调入仓库的库存,所以处理起来相对简单。调入仓库可以直接确认实际收到的数量(95件),系统会将这95件从"在途库存"转为调入仓库的实际库存,剩余5件还是会持续记录在“在途仓”中,后续可以通过其他出库、盘亏或者逆向调拨等方式,将这部分库存扣减掉。
这也是为什么许多企业,特别是物流链条较长或库存管理要求较高的企业,更倾向于使用分步调拨模式。因为它能更准确地反映实际的物流过程,更容易处理各种异常情况。
除了用流程图的方式来分别展示调出仓缺量出库和调入仓缺量入库的场景之外,还可以通过时序图的方式来集中展示整个缺量的调拨出库和调拨入库的流程,如下图所示:
3.3 在途的库存怎么跟进?
在分步调拨模式下,"在途库存"是一个重要的概念。它代表已从调出仓库出库但尚未在调入仓库入库的商品。如何有效地跟进和管理这部分库存,是分步调拨中的一个关键问题。
可以通过一个新增一个虚拟仓,即“在途仓”来记录这部分的库存。也可以在仓库的维度增加一个“在途库存”的字段,专门记录这部分的库存。
一个好的产品设计应该提供以下功能来帮助用户跟进在途库存:
-
在途库存查询:用户可以查询当前所有在途的库存,包括商品信息、数量、调出仓库、调入仓库、预计到达时间等。 -
在途库存预警:当在途库存超过预定的时间(例如,预计到达时间已过但仍未入库)时,系统应该发出预警,提醒相关人员跟进。 -
在途库存跟踪:如果系统集成了物流跟踪功能,用户可以直接在系统中查看在途库存的物流状态,例如当前位置、预计到达时间等。 -
在途库存报表:系统应该提供在途库存的统计报表,帮助管理人员了解在途库存的整体情况,例如按商品、按调出/调入仓库、按时间段等多维度的统计分析。
在实际业务中,在途库存的管理往往是一个容易被忽视但又非常重要的环节。特别是对于大型企业或跨区域经营的企业,在途库存可能占总库存的相当大一部分。有效的在途库存管理可以帮助企业更准确地了解库存状况,更好地进行库存规划和调配。
3.4 在途的库存货权归属给谁?
在调拨过程中,特别是分步调拨模式下,当货物处于"在途"状态时,一个常被忽视但非常重要的问题是:这部分在途库存的货权究竟归属于谁?这个问题不仅关系到账务处理,还涉及到风险责任的划分。
通常来说,在途库存的货权归属有2种常见模式:
第一种是"调出仓负责制",即在货物完成入库前,货权一直归属于调出仓库所属的组织或部门。这种模式下,如果货物在运输过程中发生损失,责任由调出方承担。这种模式适用于调出方对物流过程有较强控制力的情况,比如使用自有物流或者与物流公司有长期合作关系。
第二种是"调入仓负责制",即一旦货物从调出仓库出库,货权就立即转移给调入仓库所属的组织或部门。这种模式下,调入方需要承担运输过程中的风险。这种模式适用于调入方主动发起调拨请求,或者调入方对物流过程有更强控制力的情况。
你可能会问,这个货权归属问题在系统设计中如何体现?其实,它主要影响以下几个方面:
-
账务处理:在途库存的货权归属决定了这部分库存在财务报表中应该计入哪个组织或部门的资产。如果采用"调出仓负责制",那么在途库存仍然计入调出方的资产;如果采用"调入仓负责制",则计入调入方的资产。 -
成本核算:货权归属也影响成本的计算和分配。例如,如果在途过程中发生了额外的费用(如运费、保险费等),这些费用应该计入哪方的成本,取决于货权的归属。 -
风险责任:如果在途过程中货物发生损失或损坏,责任方的确定也与货权归属密切相关。 -
库存报表:在库存报表中,在途库存应该显示在哪个组织或部门下,也取决于货权归属的规定。
值得注意的是,货权归属问题不仅仅是一个系统设计问题,更是一个业务规则问题。在设计系统前,产品经理需要与业务部门、财务部门充分沟通,明确企业对于在途库存货权归属的规定,然后在系统中予以实现。无论是归属调出仓,还是归属调入方,都是有对应的方案可以满足的,具体还是要结合公司的业务需求来制定方案。
如果实在是拿不准的情况下,建议是两种都做,通过配置文件/开关来控制。
3.5 调拨单的取消和拦截
有时,我们可能需要取消一个已经创建或正在执行的调拨单,或者拦截一个已经发出但尚未到达目的地的调拨单。这种情况在实际业务中也很常见,例如,当我们发现调拨计划有误,或者调入仓库的需求发生变化时。
调拨单的取消通常适用于尚未开始执行(尚未出库)的调拨单。取消操作会将调拨单状态标记为"已取消",并停止后续的执行流程。在系统设计上,我们需要考虑以下几点:
-
取消权限:谁有权限取消调拨单?通常,创建人、审核人或具有特定权限的用户可以取消调拨单。 -
取消条件:在什么条件下可以取消调拨单?通常,只有在调拨单尚未出库的情况下才允许取消。 -
取消原因:取消时是否需要填写取消原因?这有助于后续的分析和改进。 -
取消通知:取消后是否需要通知相关人员?例如,通知调出仓库和调入仓库的管理员。
调拨单的拦截则适用于已经出库但尚未入库的调拨单,即货物已经在途。拦截操作会尝试将在途的货物返回到调出仓库或转送到其他仓库。在系统设计上,我们需要考虑以下几点:
-
拦截权限:谁有权限拦截调拨单?通常,这需要更高级别的权限。 -
拦截条件:在什么条件下可以拦截调拨单?通常,只有在货物尚未到达调入仓库的情况下才允许拦截。 -
拦截目的地:拦截后,货物应该送往何处?可能是返回调出仓库,也可能是转送到其他仓库。 -
拦截通知:拦截后是否需要通知相关人员?例如,通知物流公司、调出仓库和调入仓库的管理员。
在直接调拨模式下,由于ERP在审核调拨单的时候已经完成了库存转移,所以取消和拦截操作是不支持的,需要用其他方式来调整库存。而在分步调拨模式下,由于系统将库存标记为"在途",所以拦截操作相对简单,只需要将"在途库存"重新分配到适当的仓库即可。
四、总结
在这篇文章中,我们深入探讨了ERP系统中两种常见的调拨方式:直接调拨和分步调拨。我们从概念、适用场景、优劣势、产品功能设计以及异常场景处理等多个维度进行了详细的分析和比较。
直接调拨是一种简单、高效的调拨方式,适用于调出仓库和调入仓库距离较近,物流时间短的场景。它的业务流程简单,系统实现逻辑清晰,但无法精确反映在途库存状态,不利于异常情况的处理和跟踪。
分步调拨则是一种更接近实际物流过程的调拨方式,适用于调出仓库和调入仓库距离较远,物流时间长的场景。它将调拨过程拆分为出库和入库两个独立的步骤,能够准确反映库存的实际状态,包括在途库存,便于跟踪物流过程中的库存状态和处理各种异常情况,但操作步骤多,流程较长,系统实现逻辑相对复杂。
作为产品经理,我们需要深入理解业务流程和用户需求,才能设计出既符合业务逻辑又易于使用的产品功能。在设计调拨功能时,我们不仅要考虑正常流程,还要充分考虑各种异常场景,确保系统能够灵活应对实际业务中的各种情况。
同时,我们也要认识到,没有一种调拨方式是完美的,直接调拨和分步调拨各有其优势和适用场景。在实际产品设计中,我们可能需要同时支持两种调拨方式,让用户根据具体场景进行选择。或者,我们可以根据企业的主要业务场景和管理需求,选择一种更适合的调拨方式作为主要实现方式。
如果你在实际工作中遇到了与调拨相关的问题或有任何疑问,欢迎在评论区留言讨论。也欢迎关注我的专栏"PM维他命",我会持续分享更多关于供应链产品设计的经验和思考。
参考资料:
-
供应链云特性:调拨在途流程,让企业管理在途库存更简单 -
金蝶云-直接调拨单 -
金蝶云-分步调拨出库单 -
金蝶云-分步调拨入库单




