简介:这是一套聚焦SAP MM公司间交易场景的PPT演示文档,由资深顾问整理,适合SAP MM顾问、内部顾问和参与集团项目实施的人员学习。内容从公司间交易基础概念切入,系统梳理了STO公司间采购、工厂间转储(UB转储)、无参考库存调拨、计划协议及特殊库存(K寄售、O委外、Q项目等)等典型业务的操作与配置方式。针对不同流程,文档区分了不带交货单和带交货单两种模式,并具体说明一步法、两步法的差异,以及需求工厂创建转储订单、发货工厂拣配发货过账、收货过账等关键节点,同时涉及公司间清算科目、移动类型(351/101、641/101、301/303/305等)的对应关系。资源为单个PPTX文件,约26.85MB,图文结合,配有目录导航与系统演示截图,便于按需查阅和复盘。目前已有317人学习,是理解公司间交易全貌、快速查阅配置要点的实用参考资料。
1. 一张公司间采购单,为什么能同时扮演采购订单和销售订单
SAP-MM模块里最反直觉的一张凭证,大概就是公司间采购单(STO)。同一集团下的A公司向B公司下一张采购订单,A侧打开的是标准采购界面,B侧看到的却是一张可以挂交货单、可以做发货过账、可以开销售发票的销售凭证。同一个单号,在两个公司代码里被解读成两种完全不同的业务对象,这就是STO模式的核心。很多做MM的人第一次上手时容易把它当成"跨公司调货",随即在发货过账环节卡住:不知道该用MIGO 351还是VL02N,不知道该配SD交货单还是纯MM方案。搞清楚STO的凭证双面结构、移动类型的配对逻辑,以及一步法和两步法的配置取舍,才能理解SAP为什么能把集团内部交易做得像外部买卖一样规范,又比外部交易省掉一整套报价和订单确认的往返。这套机制的底层逻辑,值得从头拆一遍。
2. STO的双面凭证结构:SAP-MM框架下采购视图与销售视图的共线关系
2.1 凭证的"双面"机制:同一行项目如何驱动MM和SD两套流程
素材里的理论定义说得很直白:发生在同一集团下两个公司之间的交易业务,SAP把公司间采购交易凭证设计成"既有采购订单功能又有销售订单功能的复合体"。这句话信息量很大。我们拆开看,所谓"复合",不是两张单通过字段关联,而是同一张凭证在数据模型上同时具备两种身份。
对采购方来说,STO是一张普通采购订单:它有采购组织、工厂、库存地点、采购信息记录,可以做收货、做发票校验(MIRO)。对供货方来说,同一凭证在SD侧的销售视图里可以被交货处理:VL10B/VL10D能按这张单生成外向交货单,VL02N能做发货过账,VF01/VF04能开销售发票。单号只有一个,但MM的采购流程和SD的销售流程都挂在同一个凭证号下面跑。
为什么会这样设计?本质上集团内部交易是"左手倒右手",但如果做成外部交易那样一单一单对开,就得维护PO和SO之间的引用关系,发货、开票、对账全部要人工对平,这样的冗余和出错率是集团不愿意背的。SAP的选择是让凭证在对象层做"多态":采购方需要的是采购语义,销售方需要的是销售语义,两边各取所需,中间靠同一个单号保证流程贯通。
会计上如何拆账?跨公司交易不允许出现真正的应收应付,两个公司代码各自记账,差额全部集中在"公司间清算科目"上对冲。素材里给了明确的借贷关系:供方公司借公司间清算科目、贷库存商品;采购公司借库存商品和差异科目、贷公司间清算科目。这张清算科目表,就是把一张物料凭证拆成两个公司代码账务的关键枢纽。
2.2 移动类型链:351/641/647与101/103的配对逻辑
移动类型是SAP库存过账的"动词"。同样是集团内部转储,选哪个动词,决定库存落在哪、在途在哪、谁去收货。先看素材给出的完整谱系:
| 场景 | 发货移动类型 | 收货移动类型 | 有无在途 | 有无交货单 |
|---|---|---|---|---|
| MIGO一步法 | 301(发=收) | 同凭证 | 无 | 无 |
| MIGO两步法 | 303 | 305 | 有 | 无 |
| UB STO无DN | 351 | 101 | 有 | 无 |
| UB STO带DN两步法 | 641(PGI) | 101 | 有 | 有 |
| UB STO带DN一步法 | 647(PGI+自动收货) | 101自动 | 无 | 有 |
这个表是理解公司间交易的地图。注意351和641的区别:351是不带交货单的发货,它只能手工MIGO过账;641是带交货单的发货,动作发生在VL02N对外向交货单做PGI(发货过账)时。两者的业务结果相似——库存进入在途,等待接收方101收货——但前者没有物流执行对象,后者有完整的外向交货单可追踪。
为什么移动类型能跨工厂、跨公司更新库存?因为移动类型定义了记账的事务代码组合、科目修饰、库存地点目标和特殊库存标识。以351为例,系统知道这是"库存调拨-发货",物料凭证挂到"在途"这个特殊库存维度上;641在带DN的前提下做同样的在途处理,但凭证流里多出交付相关的SD单据。
这里还要理解物料凭证和会计凭证的关系:一次跨公司货物移动,物料凭证可能只有一张,但会计凭证会按公司代码拆成多张。普通库存发货是"贷库存商品",到了跨公司场景,科目确定规则会把这一行替换成"借公司间清算科目"或"贷公司间清算科目",再配上差异科目吸收数量或金额差。这种替换不发生在物料凭证层,而是发生在会计过账逻辑里,所以配置不到位时最常见的问题就是过账时弹"科目确定错误"。
2.3 SAP-特殊库存:K、O、Q类型的公司间过账与配置要点
特殊库存是SAP库存维度里多出来的一个坐标。普通库存用"工厂+库存地点"就能唯一定位,特殊库存还要叠加"特殊库存标识+伙伴/项目/订单号"。素材点到的是K(寄售)、O(委外)、Q(项目)几种,加上L(线边库存),都属于这个范畴。
- K寄售:货在自己仓库,但所有权还在供应商手里。公司间交易里把K库存转给另一家公司时,不能简单按普通库存做库存转移,要先处理所有权变更,比如生成寄售结算或寄售转自有凭证,否则物权归属和账务会对不上。
- O委外:原材料发到加工商处,库存挂在委外加工商名下但所有权还是自己的。公司间委外加工场景里,发料和收料都要携带委外加工的伙伴维度,科目确定也要为这个组合单独配置。
- Q项目:库存挂在项目WBS下,公司间调拨会直接影响项目成本的归集,比普通转储多一层成本对象检查。
素材只给了名称和方向,没展开细节。常见的实现思路是:在移动类型配置里,为这些特殊库存场景配置变式(Movement Type Variants),并在"库存类型的检查规则"里把特殊库存标识和移动类型配对。公司间过账若涉及K/O/Q库存,科目确定规则要额外配一套"特殊库存+公司间清算"组合,否则系统会按普通库存的科目逻辑去找替身,过账直接报错。这块在实际项目中经常和公司间发票校验绑在一起,是SAP-特殊库存与公司间交易交叉处最容易埋雷的地方。
3. 工厂间调拨全谱系:301/303/305、UB STO与UB计划协议的适用边界
3.1 MIGO无参考调拨:301一步法与303+305两步法的库存语义
MIGO无参考调拨是工厂间转储里最轻量的方案,因为它不需要任何上游单据,直接对着物料做货物移动。301一步法的语义是"发送=接收":一张MIGO凭证同时完成两家工厂的库存增减,没有在途库存,也没有物料转移界限。素材给了一个非常具体的判断标准:同一公司下两个工厂距离很近、库存转移频繁、发送和接收是同一批管理者时,优先用301一步法——自己发、自己收,不需要数据确认。
换成两波人管理,情况就变了。供货工厂发了10个,接收工厂必须按实际数量确认一次,这时素材推荐303+305:303把货发到在途,305由接收方从在途收进来。这样设计的好处是"交接"变成了系统可见的操作节点:发货方看到在途,接收方不点确认,库存就一直挂在途中,数量对不上时能从在途库存里倒查。
一句话概括:301适合"心理账户一致"的小团队,303+305适合有明确交接责任边界的场景。在途库存就是数字化了的交接凭证。
3.2 UB转储订单:带不带交货单的分水岭
UB转储订单和MIGO直接调拨最大的区别是"有参考":需求工厂先创建一张UB类型的转储采购订单,供货工厂基于这张单做发货,而不是对着物料随便过账。这个"参考"带来的是流程可追溯性——谁发起的、发了什么、目标工厂是谁,全部挂在凭证上。
不带交货单时,流程是需求工厂创建UB转储订单,发货工厂MIGO 351发货,需求工厂MIGO 101收货。行项目上没有装运(Shipping)页签,系统里没有任何SD对象参与,这适合仓库自己安排车辆、不需要拣配和装运跟踪的场景。
带交货单时,流程升级成:供货工厂用VL10B/VL10D基于STO行项目生成外向交货单,VL02N对外向交货单做发货过账,移动类型641或647。有了交货单这个SD对象,就能做拣配、装运、打印交货单给司机、跟踪物流状态。素材特别强调了一个分水岭规则:DlTp(交货单类型)没配置,UB STO行项目就没有装运页签;配了NL这样的交货单类型并设置了库存类型检查规则,行项目才会出现装运页签。
这个细节说明"走不走SD"不是业务上拍脑袋决定的,而是后台配置决定的。”装运页签是否存在“不是流程选择,而是配置结果。这是STO与SD模块耦合最明显的节点。
3.3 UB计划协议:ME31L与ME38的按计划拉动
UB计划协议解决的是"长期稳定频繁"的转储场景。需求工厂用ME31L创建计划协议,供货工厂在协议上用ME38确认交货计划,后续按计划行(Schedule Line)执行。过账逻辑和UB STO一致:供货工厂MIGO 351发货,需求工厂MIGO 101收货,有在途库存。
它与UB转储订单的区别在"头"上:计划协议是框架合同,携带的是计划行而不是采购订单行项目。每天的重复转储不用反复建单,直接在计划协议上刷新计划行,供货方确认即可。素材里的操作顺序是:创建UB转储计划协议,确认交货计划,发货工厂发货,需求工厂收货——四步,比UB STO少了一次建单的开销。
很多团队把计划协议和框架订单混用,其实两者拉动逻辑不同:框架订单是刚性的数量承诺,计划协议是带时间维度的滚动计划,适合供货节奏由需求方定期更新的场景。
3.4 选型判断:距离、组织边界与人员安排决定移动类型
素材给出了一套非常落地的选型逻辑,值得原样保留:
- 同一个公司下两个工厂距离很近、库存转移频繁、发送和接收是同一批管理者:优先MIGO 301一步法。
- 两波人管理、发货数和收货数要确认:MIGO 303发货产生在途库存,接收工厂用305按实际数量接收。
- 距离远、要走第三方运输:一般选UB STO加发运功能。一步法还是两步法,看接收工厂是否有安排人员做系统收货;有人就两步法,实在没人做系统接收就一步法,但素材明确说"优先推两步法,库存数据有保障"。
注意,这里"库存数据有保障"不是玄学,而是指在途库存把物权转移和实物交接分离了。发货过账后货在途,接收方不确认,数量就一直挂在系统里,不会被静默吞掉。一步法省掉了手动收货这个人,但也丢掉了中间态的可见性,账实万一有出入,没有在途节点可以提供线索。
选型本质上是"控制粒度换人力成本"。SAP把这几条路全部保留,是因为业务在这些维度上的差异实在太大,做成一刀切模板必然翻车。
4. 一步法与两步法的配置决策:DlTp、在途库存与SPRO路径
4.1 一步法(647+101自动)的系统执行路径
一步法完整链路是:需求工厂ME21N创建UB转储订单,供货工厂VL10B/VL10D基于STO生成外向交货单,VL02N对外向交货单做发货过账,移动类型647,系统自动生成101收货物料凭证,需求工厂库存同步增加。
关键机制在647这个数字上。647过账的同时,系统会写两张物料凭证:一张是发货凭证,一张是自动的101收货凭证。会计凭证也可能按公司代码拆成多张,但控制逻辑已经内置在这个"一步过程"里。素材提示配置路径是"分配凭证类型, 一步过程, 交货不足限度"——一步过程是个开关,交货不足限度则决定发货数量和自动收货数量之间的允差。一步法下自动收货数量直接取发货数量,没有人工确认环节,所以允差配置在这里几乎不起纠偏作用,它更多是给后续差异记账留一个口子。
一步法的价值是省人:接收工厂不需要任何人坐在系统前点收货。代价是"货到底到没到、少没少"没有中间确认点,全凭运输方和库房的线下记录。素材强调"一步法只在有交货单的情形下生效",这句话的意思是:没有DN配置的UB STO,发货只能走351,351天然存在在途和手动101,根本不可能一步收口。
4.2 两步法(641+101手动 / 351+101)的在途库存语义
两步法包含两条相似路径:带DN的641+101手动收货,不带DN的351+101。两条路的库存结果一样:发货过账后,货进入在途库存,接收工厂MIGO 101(或对交货单收货)后,库存才落到目标工厂的非限制使用库存里。
在途库存是SAP里一个独立的库存状态,它不属于任何物理库存地点,挂在"目标工厂在途"维度上。MB5T这个事务码就是专门查它的。素材里写"MB5T看到在途库存",实际操作中如果发现MB5T挂账越来越多,基本可以断定是"两步法配了但第二步没人做"。
为什么优先推荐两步法?因为"发货工厂已经把货发掉,物权转移了,但接收工厂还没确认收货"这段灰色时期恰恰是丢数的高发期。两步法把这段时期变成系统可见的在途量,账实差异可以从MB5T里倒查。一步法省了这张确认单,代价是你永远不知道货是在路上、在门口还是在仓库角落没上账。
对接收方有专人做系统收货的组织,两步法是数据可信度最高的方案。素材的倾向很明确:优先两步法,库存数据有保障。
4.3 SPRO配置路径与关键字段:从"分配凭证类型"到"按工厂配置交货类型"
配置路径是两条,都在采购模块下:
- 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 分配凭证类型:在这里配置"一步过程"开关和"交货不足限度"。
- 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 按工厂配置交货类型和可用性检查过程:在这里给工厂分配DN类型(比如NL),并配置可用性检查规则。
第二条配置决定了行项目有没有装运页签,也决定了一步法可不可用。第一步配置里的一步过程标志,则决定有DN时过账走641还是647。两个开关组合起来,就是一张完整的移动类型决策表:
| DlTp(交货单类型) | 一步过程 | 发货移动类型 | 收货方式 | 在途库存 |
|---|---|---|---|---|
| 空 | - | 351 | 101手动 | 有 |
| 已配置(NL) | 未勾选 | 641 | 101手动 | 有 |
| 已配置(NL) | 勾选 | 647 | 101自动 | 无 |
可以用下面的ABAP伪代码来理解系统的判断逻辑。注意:SAP不同版本配置存储的字段名有差异,这里只示意检查思路,实际以SE16N查询为准:
* 伪代码:校验UB转储订单的一步法配置 * 核心字段有两个维度:订单类型 + 工厂 DATA(lv_has_dn) = check_dn_type( order_type = 'UB' plant = me_plant ). " 工厂是否分配了交货单类型 DATA(lv_stkof) = check_step_flag( order_type = 'UB' mov_type = '647' ). " 是否启用一步过程 IF lv_has_dn = abap_false. WRITE: / '无DN类型:UB STO只能走351+101,两步法,有在途库存'. ELSEIF lv_stkof = abap_true. WRITE: / '已启用一步过程:VL02N过账预期移动类型647,系统自动收货'. ELSE. WRITE: / '有DN但未启用一步过程:VL02N过账移动类型641,需要手工101'. ENDIF.这个判断链解释了为什么很多项目里"一步法怎么配都不生效":DlTp空着,系统根本进不了有DN的支路;或者DlTp配了但一步过程标志没勾,发货就还是641。两处配置必须同时到位,647才会出现。
5. 公司间交易的常见避坑:五个翻车现场与排查路径
做公司间交易配置的这半年,我踩过、也看别人踩过不少坑。下面五条是血泪经验里最高频的,每条按现象、原因、解决三步拆开。
5.1 行项目没有装运页签
现象:创建好的UB转储订单行项目找不到装运页签,VL10B列表里也抓不到这张单,想生成外向交货单无从下手。
原因:按工厂配置的交货单类型(DlTp)为空,系统解析不出DN类型。装运页签是否存在是配置结果,不是流程选择。仓库想带交货单干活,但后台没给这个工厂配NL类型,系统就认为你不需要SD参与。
解决:去SPRO路径"按工厂配置交货类型和可用性检查过程"给对应工厂配置DN类型。配置完成后,新建的STO行项目才会出现装运页签;已存在的行项目可能需要调整或重跑一次单据流。配完先在测试工厂验证一次VL10B能抓单,再放量。
5.2 一步法怎么配都不生效,过账总是641
现象:在"分配凭证类型"里勾了一步过程,VL02N发货过账后生成的移动类型仍是641,接收工厂还是得手工做101收货。
原因:翻车的常见原因有两个。一是该STO根本就没配DlTp,行项目没有装运页签,发货移动类型必然是351,一步法压根不在选项内;二是DlTp配了,但"一步过程"标志或交货不足限度的设置不完整,系统回退到两步法逻辑。
解决:先查DlTp是否已配置,再查移动类型641/647对应的一步过程标志,最后检查物料主数据的库存类型检查规则是否允许自动收货。按4.3节的判断链逐项排查,647出现之前,任何一项缺失都是白配。
5.3 跨公司清账科目缺失导致过账报错
现象:MIGO 351发货时提示无法确定总账科目,或者在清算科目上卡死,物料凭证无法过账。
原因:跨公司的工厂间调拨必须在两个公司代码之间建立清算科目链路。供方要能贷库存商品、借公司间清算科目,采购方要能借库存商品加差异、贷公司间清算科目。这套规则没配,系统不知道差额往哪个科目放,就直接报错。
解决:在后台的跨公司清账科目配置里,按公司代码对建好清算科目映射;同时检查物料评估类与科目表的对应关系是否正确。差异科目也要单独给路径,否则数量差或金额差异入不了账。
5.4 在途库存越滚越大,MB5T查出来没人认
现象:两步法上线跑了一阵子,MB5T里挂在途的单子越来越多,有些实物早就签收进库了,系统里还在途。
原因:两步法的第二步依赖接收方手工MIGO 101。收货人员没做、账号没权限、或者觉得"反正货到了,过几天再补"——只要不点,库存就永远挂在途。没有惩罚机制,在途库存就成了业务里的"灰色地带"。
解决:立规则——发货过账当日必须完成系统收货确认;把MB5T在途清单纳入每月盘点范围,逐条清理;如果接收工厂确实没有专人做系统操作,就别硬扛两步法,改成一步法至少不会让在途库存无限膨胀。
5.5 特殊库存参与STO,库存落到非限制使用
现象:K寄售或O委外库存走公司间STO后,系统把物料过到了非限制使用库存,所有权和实物状态对不上账。
原因:移动类型配置里没有为特殊库存场景设置变式。库存类型(K/O/Q/L)是移动类型可以操纵的维度,没配变式时,系统按普通库存的逻辑处理,于是K寄售库存被当成自由库存移动,物权的账务逻辑全部错位。
解决:在移动类型配置里为特殊库存场景配置对应的变式,并检查"库存类型的检查规则";寄售转自有库存要先做寄售结算,不能拿641/647直接怼。凡是物料主数据里带特殊库存标识的,过账前都要确认配置里带了特殊库存维度。
6. 设计取舍的思考:为什么SAP保留这么多"看起来重复"的转储方案
301、303+305、351+101、641+101、647+101、UB计划协议——第一眼看是一团重复,本质上却是一个"控制粒度谱系"。
拆开看,每条路径都在回答三个问题:要不要采购单据参考?要不要在途库存中间态?要不要SD交货单参与?MIGO 301答案全是"不要",最轻量;UB STO带DN二步法答案全是"要",最完整。SAP把这套选项做成配置而不是流程模板,核心哲学是:流程不可逆性越高,配置选择越重要。集团里A公司仓库自己人调货,和B公司用第三方物流跨省送货,需要的控制粒度完全不同,一刀切必然牺牲某一侧的效率。
一步法的价值是省人,但它省掉的恰恰是那道"确认"动作。两步法多一道101,却把物权转移和实物交接分离成了一个在途库存节点,数据上留痕,账实查起来有据可依。素材说得很直白:能有接收人员,优先两步法。这句话背后是朴素的工程观念——库存数据不透明时,出错的代价远比省下的那点人力成本大。
所以配置选择真正权衡的不是"哪种方法更高级",而是"你的组织能不能承受在途库存这个中间态操作"。能承受,两步法;不能,一步法是止损的妥协。
从那以后,我每次在项目里定方案前都会强制先画一张流程矩阵:谁发起、谁发货、谁收货、要不要在途、有没有DN,五条线钉死才开始配SPRO,再也不凭感觉选移动类型了。这套整理把从工厂间转储到公司间STO、再到特殊库存的路径都归拢到了一处,用到哪个场景直接对照着查,能省不少翻配置的力气。希望帮到你。
本文还有配套的精品资源,点击获取