做SAP MM顾问的,多多少少都会跟特殊库存打交道。E库存(寄售)、K库存(分包)、Q库存(项目)这些都是高频词,但有一个T库存,很多人可能只是听过名字,甚至做了几年项目都没正经碰过。今天我就打算把这个被我忽略了好久的T库存从头到尾捋一遍——它既不是放在自己仓库里的实物库存,也不是完全虚拟的计划库存,而是一套专门服务“第三方订单”业务的特殊逻辑。搞懂它,不只是为了应付面试,更是为了在实际业务中遇到“中间商赚差价”这种场景时,能直接给出靠谱的方案。
这篇文章适合三类人看:一是刚入门的MM顾问,想系统补上特殊库存的短板;二是SD顾问,经常被第三方订单搞得头疼,需要理解T库存怎么参与单据流;三是企业的供应链或财务关键用户,公司做贸易、代采、直发业务,天天被这些虚拟库存绕晕。我会从业务场景讲到系统配置,再讲实操步骤和踩坑记录,尽量把T库存讲透。
1. T库存是什么:先看一个典型业务场景
1.1 一场“不碰货”的买卖
先举个最直白的例子。你是一家做工业品贸易的公司,客户给你下了个大单,要买一批电机。你手上没货,但你知道哪家供应商有,而且供应商离客户更近,运费更低。于是你跟客户签了销售合同,转头又跟供应商签了采购合同,要求供应商直接把电机发到客户指定的地址。全程货不经过你仓库,你赚的只是采购价和销售价之间的差价。
这个场景在SAP里怎么处理?如果你用普通采购加普通销售来走,问题马上就来了:系统会要求你先收货到自己仓库,再发货给客户,但货根本没有进过你仓库。你总不能为了让系统跑通,做两次虚拟的收发货吧?这种操作不仅违背实物管理原则,还会让你的库存账面和实际一塌糊涂。T库存就是为了解决这类“直发贸易”问题而生的。
B端的直发贸易、代采业务,还有一些大型设备项目的备件直供,都是T库存的高发区。尤其是现在国内做集成项目和贸易的公司越来越多,很多SAP项目里虽然不叫T库存这个名字,实际却每天都在用这套逻辑。
1.2 系统的视角:T库存到底“存”在哪里
从SAP的数据库层面看,T库存全称是第三方订单库存(Third-Party Order Stock),对应的特殊库存标识(Special Stock Indicator)就是字母T。它的本质是:为某个销售订单行项目而采购的物料,虽然实物直接从供应商发到客户那里,但系统必须在“虚拟”层面跟踪这笔库存的数量和金额,以便完成后续的交货过账、发票校验和成本结转。
在MD04(库存/需求清单)里,如果你打开一个物料的供需情况,并且勾选了“特殊库存”的显示选项,就能看到带T标记的行项目。它会有“收货”类的预计入库(来自采购订单),也会有“发货”类的预计出库(来自销售订单的交货)。也就是说,T库存虽然不占你工厂的可用库存,但它在物料需求计划、库存管理和财务记账层面是真实存在的。
很多顾问刚接触时容易犯一个错误:用MMBE(库存总览)去查T库存,结果发现什么都没看到,就说系统没有这笔库存。实际上,MMBE默认显示的是工厂/库位维度的自有库存,特殊库存需要单独看。MB51(物料凭证清单)里如果勾选特殊库存标识T,倒是能看到所有T库存的物料移动记录。这个观察视角的差异,是很多新手绕不明白T库存的第一道坎。
1.3 谁需要关注T库存
从角色上说,MM顾问是T库存的第一责任人,因为采购订单、库存管理、发票校验都在MM区域。但SD顾问也躲不开,因为T库存的“出库”动作是通过销售订单交货过账来触发的,行项目类别、交货类型、装运点配置全在SD。财务顾问同样绕不过去,T库存的入库和出库背后都是真金白银的会计凭证,收入确认、成本结转、价格差异的科目配置如果错了,财务月结的时候是能吵到IT这边的。
从行业上说,贸易公司、供应链管理公司、系统集成商、汽车零部件配套厂商,这些企业用T库存的概率非常高。做备件业务的尤其常见:客户设备坏了,本地没备件,直接从原厂发一件到客户现场,账务还得算清楚。这种业务用T库存是最省事的方案。
2. 第三方订单的完整业务流:从销售订单到供应商直发
2.1 单据流:一单到底怎么串起来
理解了业务场景,接下来要搞明白系统里的单据流是怎么串起来的。整个第三方订单业务涉及四张核心单据:销售订单、采购订单、交货单、发票。
第一步,在VA01里创建销售订单,物料、数量、价格都正常维护,但行项目类别会用特殊的TAS(第三方)或者类似的自定义类别。这个类别在后台配置里指定了“第三方业务”的标志。销售订单创建后,系统会产生一个对物料的需求,这个需求不是落在你的某个仓库,而是指向特殊库存T。
第二步,这张销售订单的需求会通过MRP传递下去,生成采购申请。你也可以跳过MRP,直接在ME21N里手动创建采购订单,选择供应商、填写采购价格,然后把行项目类别手动改成第三方。如果需求是从销售订单传过来的,系统会自动帮你带出行项目类别,不需要你手改。保存采购订单后,在MD04里你就会看到带T标识的采购订单行和一个“到货”的预计。
第三步,供应商按采购订单要求,直接把货发到客户那里。货物签收后,你的SD团队在VL01N里参照销售订单创建交货单,然后在VL02N里对这个交货单执行“发货过账”。这个过账动作,在标准SAP里使用的移动类型是601。执行过账后,T库存的数量被扣减,系统同时生成会计凭证,确认销售收入和销售成本。
第四步,供应商给你开具采购发票后,在MIRO里参照采购订单做发票校验,系统生成应付账款凭证。这里要注意,整个流程里不存在MIGO收货。很多传统MM出身的人习惯性认为“采购订单来了就一定要收货”,但第三方业务恰恰不走这一步。T库存的“入”是由销售需求触发的,它的“出”是销售交货过账触发的,采购订单在里面更多扮演的是一个“成本参考”的角色。
2.2 T库存的“进”与“出”
弄清T库存的进和出,对整个流程的理解很关键。
“进”的一侧:T库存的数量从哪来?严格来说,它不是通过标准的收货动作产生,而是在销售订单需求与采购订单确认之后,系统自动建立的“需求库存”。你可以把T库存的入库理解为一种预期性质的虚拟库存,当采购订单确认了数量、交期和价格,T库存的行项目就在MD04里挂上了“采购订单预计到货”的标识。这个行项目不需要你手工去做什么,它只等后续的交货过账来消掉。
“出”的一侧:T库存的数量怎么消失?就是通过SD模块的交货过账(PGR)。执行VL02N过账发货时,系统自动从T库存中扣减对应数量。如果你在MB51里查这个物料的移动记录,看到的不是101收货,而是601出库。这里的逻辑和你从自有库存发货给客户的601是一样的,只不过货源变成了T库存。
这么设计的好处是,整条链路上每个环节都有据可查:销售订单卖了多少、采购订单订了多少、交货过账过掉了多少、还剩多少挂在T库存里没走完。哪怕业务上货早就到客户手里了,系统里只要还没做完交货过账,T库存的数字就会一直挂着。这也是为什么我经常说,T库存管理的重点不是做收货,而是盯紧SD交货过账有没有及时完成。
2.3 财务上怎么记账
财务是T库存比较复杂的部分,我尽量用通俗的话讲清楚。
先说销售侧。当VL02N执行601发货过账时,系统会生成一张会计凭证,借方确认销售成本,贷方确认一笔类似“发货在途”或“GR/IR”性质的科目。为什么贷方不是库存商品?因为T库存虽然是虚拟的,但系统需要用一个科目来挂住这笔还没结算的价值,直到供应商发票到来冲掉它。在很多项目实施中,这个科目就是GR/IR,或者企业自定义的“直发中转”科目。
再说采购侧。当MIRO做发票校验时,系统生成会计凭证,借方冲销之前挂的GR/IR或中转科目,贷方记录应付账款。如果采购订单的价格和供应商实际开票金额不一致,差额会落到价格差异科目。如果用的是标准价,可能还会涉及标准成本差异的结转。到了月末,GR/IR科目如果还有余额,通常会被重分类到“应付暂估”或“在途物资”报表里。
这里我发现很多企业的财务很有意思:他们会纠结“这批货既然不经过仓库,到底算不算我的存货”。从法律角度,货物从供应商发运后、客户签收前,所有权确实在你这儿,所以T库存对应的是真实存在于你账面上的存货资产。但由于系统不执行采购入库,这笔资产没有体现在库存商品科目里,而是挂在中转类科目上。财务在出报表时,必须把这些中转科目余额纳入存货口径统计,否则资产负债表内部的存货项目会失真。这个问题我会在后面的常见问题里再展开。
3. T库存的后台配置与实操要点
3.1 采购侧配置与ME21N实操
第三方订单在采购侧的落地,核心是采购订单的行项目类别。标准SAP里有一个预置的行项目类别叫做3PL(第三方),它的配置逻辑是:当采购订单行项目来源于销售订单需求时,系统自动把这个行项目识别为第三方业务,特殊库存标识自动置为T。
实操时,在ME21N里手动创建第三方采购订单的步骤大概是:
- 进入ME21N,选择采购订单类型NB,输入供应商、采购组织、采购组。
- 在行项目里输入物料号、数量、交货日期。
- 在“项目类别”字段处,手动选择“第三方”(如果要手动创建的话)。
- 填写采购价格,确认交货地址是客户地址(通常在“交货”页签里维护)。
- 保存采购订单。
保存之后,你在ME23N查看这张采购订单,注意看“采购订单历史”页签,里边不会出现“收货”的提示,而是直接关联销售订单和交货单信息。如果你在MD04里看物料,就能看到带T标识的采购订单行已经挂在供需清单里了。
如果是从MRP自动跑的,流程更简单:销售订单创建后,MRP运行生成采购申请;采购申请转采购订单时,系统会检测到需求标识里的销售订单信息,自动把行项目类别设成第三方,特殊库存标识置T。你唯一要做的就是确认供应商和采购价格,然后保存。这里的核心提醒是:不要手动把行项目类别改回标准,否则特殊库存标识消失,业务就跑偏了。
3.2 销售侧配置与交货过账实操
销售侧的配置重点是行项目类别和交货类型。标准SAP里,用于第三方业务的销售订单行项目类别通常是TAS,它建立了指向供应商直发业务的需求传递逻辑。销售订单创建后,需求会传递到MRP,并直接关联特殊库存T。交货类型一般会用到标准交货类型LF,但装运点里需要定义好“工厂”和“装运点/收货点”的关系,确保交货单能正常创建。
实际执行交货过账的操作分为两步:
第一步,VL01N创建交货单。输入销售订单号、装运点和交货日期,回车后系统生成交货单。你会看到交货单的行项目里,物料数量、批次(如果有的话)都带出来了。因为这不涉及仓库拣配,通常只需要确认数量和计划交货日期正确即可。
第二步,VL02N过账发货。在交货单界面,选择“发货过账”按钮,或者直接在菜单里执行过账。系统会弹出过账提示,显示移动类型601,确认后过账成功。此时,你在MB51或MB03里能看到这张物料凭证,移动类型是601,特殊库存标识是T,数量是负向扣减。
这里有个小坑:如果交货单创建后一直没人做发货过账,销售侧的“已开具发票”动作也无法进行,因为系统不允许在未过账发货的情况下开票。很多企业出问题就出在这:货早就签收了,但SD团队忙忘了,结果月底开票开不了,财务来追问。所以从流程设计上,我建议在项目的系统配置里,把交货过账做成强制动作,或者用后台作业定时检查未过账交货单,在报表里预警。
3.3 用MD04盯住T库存
T库存的管理,日常主要靠MD04来盯。很多人以为MD04只能看自有库存的需求和供应,其实它也能看特殊库存。进入MD04,输入物料号和工厂后,你需要在菜单里勾选“特殊库存”选项,或者直接通过布局设置把特殊库存显示打开。这样在库存/需求清单里,你会看到类似“T 100 PC”这样的标识,表示有100个数量挂在了特殊库存T上。
在MD04里,T库存的显示逻辑非常有条理:上面会挂出销售订单的需求,下面会带出采购订单的供应,两者数量相等时,T库存净数量为零。如果两者不等,就说明有未完成的交货过账,或者有销售订单变更后采购订单没有同步。看到这种差异时,不要慌,先逐笔核对销售订单和采购订单的关联关系,再检查交货单过账状态,基本就能定位问题。
对于数量多、业务量大的企业,我建议每个月做一次T库存的对账。直接把有T标识的物料从MD04里导出来,对照销售订单的未交货数量、采购订单的未结算数量,做三方勾稽。这个动作表面上是在对数据,实际上是在帮业务团队查漏补缺,防止出现“货发了、票开不了”这种烂账。
4. 六大特殊库存对比:T库存到底该怎么选
4.1 E/K/O/Q/M/T特殊库存对比表
搞懂T库存之后,最重要的就是搞清楚它和其他特殊库存的区别。因为项目实施时,很多业务表面看着像直发,实际上可能是寄售,也可能是分包。选错了特殊库存类型,后面整个流程都要返工。
| 特殊库存标识 | 名称 | 实物位置 | 典型业务 | 要不要收货 | 结算逻辑 |
|---|---|---|---|---|---|
| E | 寄售库存 | 自己仓库 | 供应商存放,用后结算 | 消耗时做561或201过账 | 消耗才结算 |
| K | 分包库存 | 供应商处 | 发料给供应商加工 | 消耗发料,收货入库 | 基于加工费结算 |
| O | 客户寄售库存 | 客户处 | 货物存放在客户现场 | 调拨或消耗 | 客户消耗后开票 |
| Q | 项目库存 | 项目仓库/现场 | 按项目单独管理库存 | 正常收货 | 项目结算 |
| M | 在途库存 | 运输途中 | 工厂间调拨/跨公司调拨 | 发货方发货即记账 | 调拨价结算 |
| T | 第三方订单库存 | 不经过自己仓库 | 供应商直发客户 | 不做MIGO收货 | 销售交货过账+采购发票 |
从表里能看出,T库存最特殊的一点就是“货不经过自己仓库”,它跟M在途库存有点像,都是“看不见的库存”。但M在途库存的来源是工厂间调拨的发货过账,货在物理上处于运输状态;T库存的来源是销售订单需求和采购订单的虚拟配对,货在物理上已经或者即将到达客户手中。
4.2 容易混淆的几个点
第一个容易混淆的是E库存和T库存。E库存的货在你仓库里,物权还是供应商的,你消耗了才跟供应商结算。T库存的货在供应商和客户之间流转,物权在某个时点上属于你的公司,但实物不进你仓库。很多贸易公司想用寄售模式来规避库存风险,但如果供应商是把货直接发给客户,走E库存就完全对不上。
第二个容易混淆的是K库存和T库存。K库存是把你自己买来的原材料发给供应商加工,加工完再收回来。T库存是供应商把成品直接发给你的客户。K库存的重心是“委托加工”,T库存的重心是“直发贸易”。有些做OEM代工的企业,既要用K库存管理外包工序,又用T库存管理成品直发,系统里两条线并行,稍不注意物料就串了。
第三个容易混淆的是T库存和普通的“销售订单库存”。销售订单库存通常用E作为特殊库存标识?不,这里要格外小心。普通的销售订单库存(销售订单交货,货从自己仓库走)在系统里一般不带特殊库存标识,或者有独立的处理逻辑。T库存则是特指第三方直发,目的就是让货物避开仓库。很多项目上线时,蓝图汇报上写着“销售订单库存”,结果顾问把特殊库存标识配置成了T,后面跑起来就发现采购收货收不进去——就是因为用错了库存模型。
所以,T库存的选型判断标准很简单:只要商品实物不经过你的仓库,而你又需要从客户那里收钱、给供应商付钱,那T库存就是最合适的模型。如果实物会进你的仓库,哪怕只停留一个小时,都不建议用T库存,老老实实走自有库存+销售订单发货更稳妥。
5. 常见问题与排查实录
5.1 T库存越积越多,仓库没货但系统有数
这个是我在项目里遇到最多的现象。用户跑来问:“我物料库存明明显示几百个,但仓库里一个也没有,是不是系统错了?”然后我一查,特殊库存标识T,再往下钻,发现全是销售订单交货没做。
排查路径其实很固定:先用MD04看T库存的供需明细,把采购订单和销售订单逐条核对;然后用VL06O(外向交货清单)按销售订单查是否有未过账交货单;再用MB51查这个物料的601移动记录,看最后过账时间。绝大多数情况下,问题都出在“交货单创建了但没人过账”或“销售订单整单被删除但采购订单没有取消”。
这类问题最怕的不是数据错乱,而是流程责任不明确。因为T库存涉及MM和SD两个模块,采购说是销售的锅,销售说货早就送了是采购没催。我的建议是在项目上线之初,就和业务部门确定一个T库存的管理责任人,定期在周会上Review这张对账报表,把未过账交货单按天数和金额排序,逐条清理。跑了两三个月之后,这种数据积压的问题会少很多。
5.2 先PGR还是先MIRO,价格差异落在哪
这是一个让不少财务头疼的问题。理论上,第三方订单业务里,先做销售交货过账(PGR)还是先做采购发票校验(MIRO),在SAP标准框架下并没有强制的先后要求。但从实务体验来看,我一般建议先做PGR再做MIRO,理由是:PGR是触发销售成本结转的动作,如果一直拖着,收入确认和成本确认就错位了,月底出报表很难受。
那价格差异怎么处理?如果先做PGR,销售成本是按物料主数据里的价格来结转的。如果物料用的是移动平均价,系统会按当前的移动平均价算销售成本;如果用的是标准价,则按标准价结转。后面MIRO进来时,如果供应商开票金额和当时结转的成本不一致,这个差异就会落在采购价格差异科目上。
很多企业第一次跑T库存时,会在月底发现“销售成本”和“采购成本”对不上,就开始怀疑系统算错了。其实不是,这是正常的时序差异。解决办法有两个:一是从流程上要求PGR和MIRO尽量在同一个结算周期内完成;二是在报表层面对GR/IR科目做重分类,把未结算的T库存纳入存货统计。这个细节财务顾问一定要在期初培训时讲清楚,否则每个月的结账讨论会都很痛苦。
5.3 退货这条路怎么走
T库存的退货场景,处理起来比正向流程要绕一些。客户把货物退回来了,你不能在系统里简单做一笔退货交货过账就完事,因为还需要考虑供应商那边的退货和开票红冲。
先看客户退货:在SD里创建一个退货销售订单(订单类型RE),然后参照退货订单创建退货交货单,过账时系统会用一个正向入库的移动类型(比如651),把货物退回T库存。此时,T库存的数量会重新增加。这个步骤是有意义的,它保证了“销售订单已经交货过账过、现在退回”这个事实在系统里有据可查。
再看供应商退货:你需要向供应商创建退货采购订单(类型RE),把货退回供应商。这个动作在系统里会触发采购订单的红冲,供应商的发票也需要做贷项凭证。如果货物已经退回供应商了,采购订单的退货数量就清零,T库存也随之消除。
这里最大的坑是顺序混乱。有的团队先把采购退货做了,T库存清零了,但客户的退货交货单还没过账,系统就会在某一时刻显示T库存为负数,或者根本不允许过账。实务中我建议这样的顺序:客户先退回到T库存(651入库),再退给供应商(采购退货),最后处理发票红冲。如果业务上客户不退货、供应商也不收货,只是把这件事做账务冲销,那比较复杂,需要财务介入手工调整,不建议顾问自行操作。
5.4 其他实操心得
最后分享几条我在实际项目里沉淀下来的经验。
第一,一定要在项目初始化阶段就把特殊库存的权限和操作规范定好。T库存涉及的过账操作,表面上是MM和SD两个模块的事,实际上还牵扯到FI的科目配置。如果三个模块的顾问各管各的,后续排查问题时会非常痛苦。
第二,给用户做培训时,不要只讲正常流程。至少要设计几个练习场景,让用户亲手做一遍“客户退货”“供应商退货”“MIRO冲销”这些异常操作。很多用户做正常流程都很熟练,一到异常流程就两眼一抹黑,最后还是打电话找顾问救火。
第三,启用T库存之前,先和财务确认GR/IR科目的重分类逻辑。有些企业财务月结时会直接看GR/IR科目余额,如果T库存的中转余额没有被纳入存货,资产负债表就是错的。这个不是技术问题,是业务口径问题,但顾问有责任提前提醒。
第四,如果企业同时用T库存和寄售库存(E),建议在物料主数据或者内部分类里做个标记,让两个团队能一眼识别哪些物料走哪种模式。别小看这个动作,我见过有企业因为物料编码太相似,同一个物料既建了E库存又建了T库存,月底对账的时候直接对到怀疑人生。
T库存这套逻辑,本身并不复杂。难点在于它是跨模块、跨流程的,需要MM、SD、FI三个方向的人配合。只要从业务场景出发,把单据流和库存进出的逻辑想清楚,T库存并不是什么洪水猛兽。哪怕你公司现在没用到这个功能,先把原理搞明白,等到真的遇到直发贸易的时候,你就知道该怎么给业务方出方案了。