资讯详情

资讯详情

SAP公司间采购与工厂间转储:一步法、两步法与在途库存详解

简介面向SAP MM模块顾问及集团企业供应链管理者的PPT培训资料系统梳理公司间交易的核心机制与配置路径。内容从公司间采购STO切入说明同一凭证同时承担采购订单与销售订单功能的复合设计并延伸到工厂间转储的UB转储订单、带交货单方案、无参考库存调拨以及UB转储计划协议等场景对特殊库存K寄售、O委外、Q项目等公司间操作也给出配置逻辑并区分同公司/跨公司工厂间调拨的科目设置差异。讲解中贯穿一步法与两步法差异、相关移动类型301/303/305/351/101等、财务凭证科目关系及系统演示截图适合按模块对照学习。资源包共1个PPT演示文稿约26.85MB已有317人学习下载可作为SAP公司间交易专题培训、项目上线前内部培训或自我复习的参考材料。1. 公司间采购为什么一张凭证既是采购订单又是销售订单在 SAP 里做集团内部的物料转移最反直觉的一点是你明明在 ME21N 里创建了一张采购订单可对于供货方来说这张单子同时又是一张销售订单。它不是“两套单据通过后台勾稽关联”而是同一个凭证号、同一组行项目采购侧看到的是价格和收货销售侧看到的是发货和开票。也就是说SAP 把公司间交易凭证设计成了一个复合体行项目上同时挂着采购组织、销售组织、工厂和清账科目四个维度的数据。搞懂这个复合体机制是理解整个公司间采购体系的钥匙。因为后面所有的工厂间转储、UB 转储单、带不带交货单、一步法两步法、特殊库存 K/O/Q 的操作差异本质上都是在回答同一个问题物权在两个公司代码之间转移时库存、在途、应付应收和开票这些节点系统分别在哪一步、用哪种凭证来记账。2. 工厂间转储的底层模型UB 转储单与 351/101 的在途库存机制2.1 UB 转储单的本质一张采购单如何在两个工厂间流转先说适用范围。同一集团下不管两个工厂属于同一家公司还是不同公司只要不具备“对外销售”的性质物料在工厂之间的移动通常就走库存调拨也就是 UB 转储订单。它的操作链很短需求工厂 ME21N 创建 UB 转储单供货工厂用 MIGO 做 351 发货需求工厂再做 101 收货。这里最值得琢磨的是 351 这个移动类型。351 不是普通的发货过账它不把库存直接扣减到一个“消失”的状态而是把物料从供货工厂的非限制库存转移到“在途库存”。在 SAP 的数据模型里在途库存是挂在收货工厂名下的特殊库存但在供货工厂尚未完成物权交割前它不能直接计入收货工厂的非限制库存。所以 351 之后你去查 MB5T能看到这一批货挂在途数量清清楚楚。为什么非要造一个“在途”出来因为两个工厂尤其是跨公司代码时各有各的账。如果 351 直接扣减供货工厂库存、101 直接增加需求工厂库存中间会有一段“货已出库、账上两边都没有”的真空期而如果 351 不扣减库存等 101 收货时又要做复杂的冲销。在途库存正是这段物理运输时间内物权归属的记账载体。借库存商品、差异科目贷库存商品——差异金额记在需求方这就是在途库存背后的会计逻辑。2.2 一步法与两步法301 与 303305 的移动类型语义不带交货单的库存调拨里还有一条更“轻”的路径MIGO 直接做 301 或 303305完全不需要 UB 转储单。这三张移动类型看起来差不多实际语义差别很大。301 是“发收”的一步法。供货工厂做一次 MIGO 301 过账系统在同一张物料凭证里同时完成发货和收货一个物料凭证号、两行库存凭证没有在途库存也不需要收货确认动作。303305 是两步法303 先把库存发出到在途305 由需求工厂按实际收到的数量接收。这两步各自生成一张物料凭证中间隔着一段可查询的在途时间。什么时候用 301什么时候用 303305这是典型的“看组织不看流程”的决策。如果是同一个公司下距离很近的两个工厂发货和收货是同一批管理者那 301 一步法最省事——自己发自己收不需要数据确认。如果是两拨人发了 10 个接收人要按实际数量确认那就必须用 303 发货产生在途再 305 接收否则收货方连“货已经出来了”的凭证都看不到。2.3 无参考调拨 vs UB 转储业务距离决定方案还有一个实际问题什么时候直接 MIGO 301/303305什么时候必须建 UB 转储单判断标准不在系统在运输距离和交接责任。如果两个工厂距离近、库存转移频繁、又不需要第三方物流直接 MIGO 就行零配置零确认。但一旦距离远、要交给运输公司、到货时间不可控就必须有 UB 转储单加上发运功能因为物流执行需要跟踪、在途库存需要挂在系统里、责任节点需要划分。方案选型的核心矛盾是发货数量认同不认同在途要不要现在系统里。一步法301 或 647101 自动收货意味着发货即收货没有在途适合收货方完全信任发货数量、且有人不需要在系统里确认的场景两步法303305 或 641101 手动收货产生在途库存收货方必须做确认动作库存数据更有保障。单纯的 UB 转储计划协议ME31L 创建、ME38 确认交货计划则适合长期、周期性的供货关系用计划协议代替逐单采购本质上是把调度前置到需求预测。3. 带交货单的转储流程647 自动收货与一步法的生效条件3.1 交货单把物流执行拆了出去不带交货单的 UB 转储物流动作全在 MIGO 里完成。而带交货单的方案是把“拣配、装运、发货过账”这些物流执行动作交给 SD 模块去处理MM 只管采购和收货。判断一张 UB 转储单带不带交货单就看行项目里有没有装运Shipping页签。这个页签不是默认出现的它由后台配置决定。配置路径是SPRO → 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 按工厂配置交货类型和可用性检查过程。Per 工厂配置了交货单类型比如 NL并且配置了库存类型的检查规则UB 转储单行项目上就会出现装运页签系统才允许 VL10B/VL10D 去创建外向交货单。如果这个配置没做UB 转储单永远停在“纯采购”的状态想建交货单也建不了。有了交货单流程就拆成了四段需求工厂建 UB 转储单供货工厂 VL10B 按转储单批量创建外向交货单VL02N 对外向交货单做发货过账PGI需求工厂对交货单或转储单做收货。整个链条里采购订单管数量、交货单管物流执行两张凭证通过转储单号关联起来。3.2 641 与 647同一个 PGI 动作的两个分叉供货工厂在 VL02N 里对交货单发货过账时移动类型决定了后续走向。不做特殊勾选时过账走 641货发出去挂在途库存需求工厂必须再用 MIGO 101 手动收货生成第二张物料凭证。做了特殊配置后过账走 647PGI 的同时系统自动触发需求工厂的 101 收货一个物料凭证就完成了发和收两边库存更新。关键在于这两种过账在 VL02N 里看起来差不多但 647 是“自动收货”的移动类型它的物料凭证里同时包含了交货过账和收货过账两个行项目。这意味着财务上供货工厂确认发出、需求工厂确认收入发生在同一毫秒。而 641 之后需求工厂不去做 101在途库存就永远挂在那里物权实际上已经转移但账还没走完。所以一步法根本不是什么“操作简化技巧”它是系统内置的一种移动类型设计——647 天然具备双边记账能力。而 641 天然具备在途挂账能力。二选一本质是选择要不要在业务链条里保留“在途”这个中间态。3.3 一步法反而要谨慎自动收货的不可控点很多人一听到“一步法”就觉得很爽凭证少、操作少、库存同步。但一步法有两个先决条件任何一个不满足都会翻车。第一个条件是必须有交货单。一步过程只在有 SD 交货单的情形下生效这一点在后台配置里写得很明确SPRO → 物料管理 → 采购 → 采购订单 → 设置库存调拨订单 → 分配凭证类型, 一步过程, 交货不足限度。如果没有交货单、还想做一步法系统根本不会进入 647 逻辑实际过账会退化成 351 发货一步法名存实亡。第二个条件是收货方不需要确认。647 自动收货意味着“发货过账的瞬间收货方的库存也涨了”。如果收货工厂实际上没有收到这么多货或者有破损、短缺再做后续退货和差异处理比两步法的手动收货麻烦得多。这也是为什么实际项目中优先推两步法库存数据有保障。一步法是“实在没有人做系统收货操作”时的兜底方案而不是首选。这一步选择直接决定库存的可见性和物权的交割边界是否清晰。# 工厂间/公司间调拨核心事务代码 ME21N # 创建转储订单 / 公司间采购订单 ME31L # 创建计划协议长期供货场景 ME38 # 确认计划协议交货计划 VL10B # 按转储订单批量创建外向交货单 VL02N # 外向交货单发货过账641/647 分叉点 MIGO # 收货/发货301/303/305/351/101 MB5T # 在途库存查询这套事务代码的调用顺序不是随意的。ME21N 建单、VL10B 建 DN、VL02N 过账、MIGO 收货每一环都在往物料凭证里追加一条记账。你去查 MB5T看到的就是这些移动类型在途库存的汇总。排查库存差异时沿着这套顺序走一遍比对每一步的物料凭证基本就锁定了问题发生的位置。4. 跨公司 STO 与特殊库存从发货到开票的完整闭环4.1 STO 的完整操作链ME21N → VL10B → VL02N → VF01 → MIRO跨公司的公司间采购STO与同公司内的 UB 转储最大的区别在于只要跨了公司代码就必须有销售发票环节。因为对于供货公司这张凭证是销售对于采购公司它是采购。销售要开票确认收入采购要收票确认成本两边才能在公司间清算科目上对冲。基本链路是客户公司 ME21N 创建公司间采购订单STO供货公司 VL10B/VL10D 根据 STO 创建外向交货单VL02N 做发货过账VF01/VF04 创建销售发票公司间开票最后 MIRO 做采购发票校验。注意这里的销售发票不是发给外部客户的它记到的是公司间清算科目上。整套链路的底层驱动就是第 1 章说的那个复合体凭证供货公司侧系统自动从这张 STO 单里衍生出销售订单和交货需求采购公司侧它一直是那张采购订单。这个机制带来的好处是明显的一张 STO 单两端看到的业务语义不同但凭证号唯一、行项目关联一致不需要人工去创建“对应的销售订单”。SAP 用同一个凭证号把跨公司交易绑定在一起对账时沿着单号拉一遍就全出来了。4.2 两种收货方案的差异自动触发还是手动确认公司间交易的后台配置不同会形成两种不同的收货方式。第一种是供货公司交货单过账后系统自动触发客户工厂收货客户公司不需要再做 MIGO 收货动作第二种是过账后不会自动触发客户公司需要根据采购订单或交货单手动 MIGO 收货。这两种方案的取舍和前面 641/647 的选择逻辑一脉相承。自动触发的本质是把“收货确认”这个动作交给系统代替人完成好处是凭证少、周期短坏处是如果实际到货有差异系统里的库存已经先涨了差异处理要回头改物料凭证。手动收货则是把确认权留在采购公司手里——我看到多少就收多少货差异直接体现在收货数量上不用事后冲销。从实施经验看同一集团下的公司间交易优先推手动收货的更多。因为公司间交易虽然比外部采购简单但它仍然涉及两个利润中心甚至两个法人实体的成本和收入归属物权交割的准确记录比省一次 MIGO 动作重要得多。自动触发经常会在审计时被质疑库存和实物不一致的窗口期内账上到底是谁的货4.3 特殊库存 K/O/Q 的公司间交易库存归属比位置更重要目录里还有一类单独列出来的场景公司间特殊采购Q/K/L/服务。这里的 K、O、Q 不是工厂仓库里的自有库存而是 SAP 里的特殊库存类型。K 是寄售库存——物料放在你的仓库里但所有权还是供应商的消耗时才结算O 是委外库存——你提供原材料给供应商加工物料在供应商处但所有权还是你的Q 是项目库存——物料挂在某个 WBS 项目下只能用于该项目。特殊库存一旦卷入公司间交易问题就复杂了库存的位置、物权归属、结算对象三方可能不一致。比如 K 寄售库存从 A 公司转到 B 公司不能简单做一个 301因为原料还在寄售状态还没发生所有权转移转过去之后 B 公司消耗时的结算对象就变了。常见的实现思路上这类场景需要先把特殊库存转换成自有库存再做公司间调拨或者在公司间 STO 行项目里直接指定特殊库存标识让系统在后端过账时把库存从寄售/委外/项目的视野里切出来。这里的判断准则是特殊库存公司间交易其实是在“普通库存的调拨流程”上叠加了一层所有权和成本归属的边框。你先把边框画清楚——消耗后结算还是移库即结算归哪个 WBS、哪个成本对象——再决定用哪一套移动类型和结算配置。边框画错了物料位置看起来都对月底成本一结就出大问题。4.4 公司间清算科目跨公司调拨的会计枢纽不管是工厂间转储里的跨公司调拨还是完整的 STO 开票流程只要跨了公司代码清算科目都是绕不开的。配置跨公司清账科目OBYA之后供货公司的发货凭证里借方记公司间清算科目、贷方记库存商品采购公司的收货凭证里借方记库存商品加差异、贷方记公司间清算科目。两边清算科目金额相等方向相反集团合并报表时自动抵消。这个机制保证了每一笔跨公司交易在单公司账上都是平的又不影响集团整体的库存和损益。很多实施项目在测试环境里跑 STO 流程物料凭证都过了但会计凭证不平十有八九是 OBYA 里清账科目没配全或者配置到了错误的科目表。公司间交易能不能闭环看清算科目就知道。5. 配置与常见问题排查UB 转储与 STO 最容易翻车的五个点# 关键配置路径参考 物料管理 - 采购 - 采购订单 - 设置库存调拨订单 - 分配凭证类型, 一步过程, 交货不足限度 物料管理 - 采购 - 采购订单 - 设置库存调拨订单 - 按工厂配置交货类型和可用性检查过程5.1 现象UB 转储单行项目没有装运页签无法创建交货单原因按工厂配置的交货类型DlTp没有配置或者配置了但可用性检查过程没维护。系统判断一张转储单“要不要走物流”全靠这个工厂级配置没有它行项目上根本不会显示装运页签VL10B 也选不到单。解决SPRO 里按工厂维护交货单类型如 NL和库存类型的检查规则。改完配置后重新打开转储单确认行项目出现装运页签。注意这是个工厂级配置其他工厂即使同时启用也必须逐工厂检查一遍。5.2 现象勾选了一步过程但发货过账后收货工厂没有自动收货凭证原因一步法只在有交货单的情形下生效。没有交货单时即使后台勾选了一步过程系统实际走的是 351 发货 101 手动收货一步法配置被静默忽略。这种翻车最隐蔽因为配置看着没错流程也能走只是“自动收货”的预期落空了。解决先确认该工厂是否配置了交货单类型、转储单是否创建了外向交货单。没有交货单就不可能触发 647 自动收货。若不想加交货单就接受两步法的现实按 351 101 排流程。5.3 现象MB5T 查不到在途库存但实物确实已经发运原因用了 301 一步法或配置成 647 自动收货。这类移动类型在过账瞬间同时完成发货和收货系统不产生任何中间态自然没有在途库存可查。不是数据丢了是方案本身把“在途”这个节点从设计上去掉了。解决如果业务流程需要在途可见比如第三方运输、物权未交割改用 303305 或 641101 两步法。如果只是希望月底对账快点那就接受“无在途”的模型别再去 MB5T 找数据。5.4 现象跨公司调拨的会计凭证不平或者多出一笔无法解释的清算金额原因跨公司的清账科目没有配置或者配置到了错误的科目表。同公司代码下的工厂转储不需要清算科目跨公司必须配这是常见遗漏点。尤其测试时很多人直接在同一个公司代码下模拟等到真实跨公司跑 STO 才暴露。解决检查 OBYA 配置确认清账科目在发货方和收货方公司代码下都有效。同时查看 641/647 过账后的会计凭证看清算科目行是否成对出现。若不平多半是科目确定规则里缺了工厂/公司代码的组合。5.5 现象UB 计划协议创建了但系统没有产生任何可发货的需求原因计划协议的流程和标准采购订单不同ME31L 创建之后必须用 ME38 确认交货计划行。未确认的交货计划不会生成可执行的需求VL10B 自然一张单都挑不出来。解决用 ME38 对计划协议行做确认生成可发货的交货计划行。确认时注意数量、日期、工厂是否完整。这是一个流程步骤不是配置问题但实施时经常被当成“系统 bug”来排查白花时间。五条经验里的共同规律是大多数翻车都不是 SAP 没实现功能而是某个配置开关DlTp、一步过程、OBYA处于“可用但未启用”的状态。排查时不要先怀疑数据先沿着 2.3 节的配置路径把开关状态过一遍再回头对移动类型和物料凭证。6. 设计取舍一步法还是两步法本质是在途库存可见性看完整套公司间交易的移动类型和配置你会发现 SAP 并没有替你决定“哪种方案最好”它只是把选择权精确地放在几个节点上要不要交货单、要不要在途库存、自动收货还是手动收货。这几个节点的组合构成了工厂间转储那两侧对照表里的六种方案。方案之间没有优劣只有是否匹配现场条件。我一般会这么理解这个取舍一步法省掉的不是操作而是“确认”这个动作两步法多出来的也不是麻烦而是“物权转移的时间窗口”。选择一步法是默认发货数量与收货数量一致、且收货方不需要在系统里表达“我收到了”选择两步法是承认货物在途这段时间存在管理意义需要有一个账面上的中间状态来承接风险。所以在真实项目里这两个问题必须先问清楚发货和收货是不是同一批人在途库存要不要体现在报表里技术实现上这个取舍被固化成了移动类型和配置的绑定301/647 是无在途语义303305/641101 是有在途语义UB 转储单的有无决定能不能使用 647 自动收货。系统给了配置开关但没有给你“随便改”的自由一步法的生效条件死死绑在交货单上这就是设计者留下的边界想减少凭证可以想完全取消物流执行节点不行。从那以后我每次做蓝图确认都会先问收货工厂一句你们的收货岗位能不能保证在发货当天做 101 操作答案决定了整套移动类型的选型。能就两步法不能再退回一步法兜底连有没有人做系统收货都不确定那就回到 301 直接调拨。先用一个最低线的问题把场景框住再进配置基本不会选错方案。希望你也能用这个思路把公司间交易的各种场景理清楚。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →