简介这份文档面向在 SAP 系统中执行公司间项目采购与交货的操作员及项目经理聚焦公司间项目QSTO 的配置与操作全流程帮助读者理清两个不同公司代码之间采购交易的标准执行顺序并应对 CO 科目分配错误、采购收货及销售开票等常见异常。内容涵盖业务背景说明、SFW5 激活 LOG_MM_SIT 业务功能、跨公司配置查看、交货类型与可用性检查、OBYA 清账科目维护以及从 CJ20N 建立项目、ME51N/ME21N 创建采购申请与订单、MIGO 收货、VL10B/VL10D 交货单到 VL02N 过账、销售开票与发票校验的完整事务代码链路并附问题描述与解决方法。资源包共 1 个 docx 文件约 3.52MB目录层级清晰便于按配置、操作、排错三部分检索查阅。已有 654 人学习适合需要按步骤落地公司间 STO 流程并快速定位报错原因的中级用户参考。1. 公司间项目 STO 环境搭建从 SFW5 激活到 OBYA 清账的完整链路第一次在测试环境里配公司间项目 STO我按文档把 CJ20N、ME21N、VL10B 全跑了一遍结果交货单过账直接卡在移动类型 683 上MIGO 收货又报「CO 科目分配对象属于公司代码 3不是 4」。翻了一下午消息号才发现SFW5 里 LOG_MM_SIT 这个业务功能压根没激活后面所有配置都是白搭。公司间项目QSTO 这套东西本质是 A 公司向 B 公司做项目采购、B 公司再向外部供应商采购的两段式链路涉及两个公司代码、两个工厂、跨公司清账科目和一堆移动类型任何一环没对齐都会在过账时炸出来。这篇笔记按我实际配过的一套环境走先列清系统配置的先后顺序再落到操作步骤和事务代码最后把几个高频报错的救法写透。适合正在配跨公司 STO 的 MM/SD 顾问和运维也适合第一次接手公司间项目采购、被移动类型和 WBS 元素绕晕的操作同事。2. 系统配置SFW5 激活与跨公司基础参数配置这块最忌讳跳步。我一般按「业务功能 → 交货类型 → 移动类型 → 库存调拨交货类型 → 清账科目」的顺序推前一步没确认就做后一步后面报错根本定位不到源头。下面每一步都给出事务代码和检查点照着走完再进操作章节。2.1 SFW5 激活 LOG_MM_SIT 业务功能这是整条链路的总开关。LOG_MM_SIT 属于跨公司库存调拨相关的业务功能不激活的话后面公司间 STO 的移动类型 683/107、109 这些根本走不通。事务代码 SFW5 进去在业务功能列表里找到 LOG_MM_SIT勾选后点激活。# SFW5 操作路径事务代码内导航非命令行 # 1. 输入事务代码 SFW5 回车 # 2. 展开节点Enterprise Business Functions - Logistics - Materials Management # 3. 勾选 LOG_MM_SIT跨公司库存调拨 # 4. 点击 Activate / 激活等待后台作业完成 # 5. 激活后用 SFW5 的 Business Function Status 确认状态为 Activated激活不是点一下就完事它会触发一批后台作业状态从「激活中」到「已激活」可能要等几分钟。我习惯激活后重新进一次 SFW5 看状态列确认是 Activated 再往下走。这里有个坑如果系统里已经有公司间 STO 的历史单据激活前最好确认没有未清的交货单卡在中间状态否则激活后移动类型行为变化会让老单据过账异常。常见做法是先在测试客户端激活验证再推到生产。2.2 查看并确认跨公司交货类型配置路径是 SIMG → 后勤执行 → 交货 → 定义交货类型。公司间项目QSTO 用的是公司间交货类型需要确认交货类型里「公司间」标识和后续开票相关字段是否正确。同时要看交货项目类别路径 SIMG → 后勤执行 → 交货 → 定义交货项目类别确认项目类别对应的移动类型是 683发货和 107收货侧。# 配置检查清单SPRO / SIMG 路径 # 交货类型后勤执行 - 交货 - 定义交货类型 # - 确认公司间交货类型存在且公司间标识勾选 # - 检查开票相关字段开票类型、开票日期规则 # 交货项目类别后勤执行 - 交货 - 定义交货项目类别 # - 确认项目类别对应移动类型 683发货/ 107收货 # 移动类型检查事务代码 OMJJ # - 输入 683、107、109确认公司间相关控制标识OMJJ 里检查移动类型这一步别省。683 是公司间交货单发货用的移动类型107 是收货侧109 是后续 MIGO 收货用的。每个移动类型要确认「库存调拨」和「公司间」相关的控制标识是否打开特别是 683 的「发货」方向和 107 的「收货」方向不能配反。我见过有人把 107 的参考移动类型配错结果交货单过账后库存方向反了查了半天才发现是 OMJJ 里的字段问题。2.3 按工厂配置交货类型和可用性检查过程路径 SIMG → 物料管理 → 采购 → 采购订单 → 设置库存调拨单 → 按工厂配置交货类型和可用性检查过程。这一步是把「哪个工厂的 STO 用哪个交货类型」绑定起来。A 公司工厂 7011、B 公司工厂 7091两个工厂都要配且交货类型要和 2.2 里确认的公司间交货类型一致。# 按工厂配置SPRO 路径 # 物料管理 - 采购 - 采购订单 - 设置库存调拨单 # - 按工厂配置交货类型和可用性检查过程 # 工厂 7011交货类型 公司间交货类型可用性检查 对应检查规则 # 工厂 7091同上注意两个工厂的交货类型必须指向同一套公司间逻辑可用性检查过程这里容易忽略。如果配了检查规则但物料主数据里没维护对应的检查组STO 创建时不会报错但交货单创建阶段会提示可用性检查失败。我一般先在测试物料上把检查组维护好再批量推。两个工厂的交货类型必须指向同一套公司间逻辑否则 A 向 B 建 STO 时系统认不出这是公司间调拨会当成普通采购处理。2.4 POD 相关配置与 OBYA 跨公司清账科目POD交货证明这块原文标注「可以不设置」我实际配下来也确实如此——如果业务上不需要交货证明环节跳过不影响主链路。要配的话路径是 SIMG → 后勤执行 → 交货 → 交货证明 → 根据交货项目类别设置 POD 相关按项目类别勾选即可。真正不能漏的是 OBYA。事务代码 OBYA 维护公司间清账科目路径 SIMG → 财务会计 → 总账会计 → 业务交易 → 准备跨公司代码交易。A 公司 7010 和 B 公司 7090 之间过账时系统要找到对应的清账科目没维护就会在交货单过账或发票校验时报科目缺失。# OBYA 维护跨公司清账科目 # 事务代码OBYA # 公司代码 7010 - 7090维护应收/应付清账科目 # 公司代码 7090 - 7010维护对应的反向清账科目 # 注意科目必须是资产负债表科目且已标记只能自动过账或允许行项目OBYA 里两个方向都要维护7010 对 7090 和 7090 对 7010 是两组记录。科目类型要选对应收对应付不能混。我踩过一次坑只配了单向结果 A 公司收货那步没会计凭证产生原文 3.8 也提到「此时无会计凭证产生」当时以为是正常的后来发现是反向清账科目没配跨公司过账被静默跳过了。所以配完 OBYA 一定要在两个公司代码下各做一笔测试过账验证。3. 操作步骤从 CJ20N 建项目到 MIRO 发票校验配置确认完操作链路按「建项目 → 外部采购 → 公司间 STO → 交货 → 收货 → 开票 → 校验」推。原文把详细操作省略了这里把关键事务代码、移动类型和检查点补全每一步给出可对照的单据号和预期结果。3.1 CJ20N 建立 A 公司项目号并下达事务代码 CJ20N 建项目挂载物料后下达。项目号是后续 WBS 元素的来源公司间 STO 的科目分配对象会挂到 WBS 元素上。建项目时确认公司代码是 7010、工厂 7011WBS 元素要属于 A 公司这点在 4.3 开票问题里会再出现。# CJ20N 建项目关键点 # 1. 输入项目定义公司代码 7010工厂 7011 # 2. 挂载物料维护 WBS 元素 # 3. 下达项目Release状态变为已下达 # 4. 确认 WBS 元素归属公司代码 7010不是 7090下达后项目状态必须是「已下达」否则后续 MRP 跑不出计划订单。WBS 元素的归属公司代码要反复确认这是后面销售开票报 WBS 错误的根源之一。3.2 运行 MRP 并转采购申请、审批先跑 2002 工厂再跑 2010 工厂事务代码 MD02。跑出计划订单后用 MD04 转采购申请再用 ME55 审批。这一步的顺序不能反2002 在前 2010 在后因为 B 公司 7091 工厂的采购依赖 A 公司项目的需求传递。# MRP 与采购申请链路 # MD02分别对 2002、2010 工厂运行 MRP先 2002 后 2010 # MD04查看计划订单转采购申请 # ME55审批采购申请确认审批状态为已批准审批这步如果报「CO 科目分配对象属于公司代码 3不是 4」先别急着改配置看 4.1 的处理方式。ME55 审批通过后采购申请才能转采购订单。3.3 B 公司对外采购订单与 MIGO 收货B 公司 7090 用 ME21N 建对外采购订单原文示例单号 4100000175然后 MIGO 对第三方供应商做项目收货移动类型 101产生物料凭证 5000001298 和会计凭证 5000000002。收货后 B 公司项目库存增加。# B 公司外部采购收货 # ME21NB 公司 7090 建对外 PO供应商为第三方 # MIGO移动类型 101收货到 B 公司项目库存 # 预期结果物料凭证 5000001298会计凭证 5000000002 # 检查点B 公司项目库存增加库存归属 7091 工厂收货后一定要用 MB52 或 MMBE 看 B 公司项目库存是否真的进来了。如果库存没动但凭证生成了多半是移动类型或库存地点配错。3.4 A 公司向 B 公司建公司间 STO 采购订单A 公司 7010 用 ME21N 建公司间 STO 采购订单原文示例 4300000176供应商是 B 公司客户编码 7090 对应的供应商。这一步的关键是订单类型要选公司间 STO 类型且「交货」相关字段要指向 2.3 里配的交货类型。# 公司间 STO 采购订单 # ME21NA 公司 7010 建 STO供应商 B 公司 # 订单类型公司间 STO 类型非普通采购 # 确认交货类型指向公司间交货类型工厂 7011 # 预期结果STO 单号 4300000176建完 STO 后检查订单的「交货计划」页签确认交货类型和可用性检查过程带出来了。如果这里是空的说明 2.3 的按工厂配置没生效回到配置章节补。3.5 VL10B/VL10D 建公司间交货单并 VL02N 过账用 VL10B 或 VL10D 根据 STO 建公司间交货单原文示例 800000123然后 VL02N 做交货单发货过账移动类型 683107产生物料凭证 4900002188。# 公司间交货单创建与过账 # VL10B / VL10D根据 STO 4300000176 创建交货单 # 预期结果交货单号 800000123 # VL02N发货过账移动类型 683发货 107收货侧 # 预期结果物料凭证 4900002188VL02N 过账前确认交货单的批次、库存地点都正确。683 是发货方向107 是收货方向两个移动类型在过账时同时作用。如果过账报错先看交货单是否真的到了「已过账发货」状态没发货就做 MIGO 收货会直接报错见 4.2。3.6 A 公司 MIGO 收货与后续开票校验A 公司 7010 用 MIGO 根据交货单收货移动类型 109产生物料凭证 5000001299。原文特别标注「此时无会计凭证产生」这是公司间 STO 的正常现象——跨公司过账的会计凭证在交货单过账阶段已经处理收货侧只做库存移动。# A 公司公司间交货单收货 # MIGO移动类型 109参考交货单 800000123 # 预期结果物料凭证 5000001299无会计凭证 # 检查点A 公司 7011 工厂库存增加后续销售开票用 VF01采购发票校验用 MIRO。开票阶段如果报 WBS 元素错误直接跳到 4.3。MIRO 校验时确认发票金额和 STO 价格一致跨公司清账科目在 OBYA 里已维护。4. 避坑与排查公司间 STO 五个高频报错这一章是我实际配环境时踩过的坑每条按「现象 → 原因 → 解决」写。公司间 STO 的报错有个特点表面报在操作层根子往往在配置层所以排查顺序永远是先看配置再动数据。4.1 CO 科目分配对象属于公司代码 3不是 4现象采购申请审批ME55、建采购订单ME21N或采购订单收货时报「CO 科目分配对象属于公司代码 3不是 4」。原因WBS 元素归属的公司代码和当前操作的公司代码不一致系统在科目分配时做了公司代码校验消息号 KI100 默认是 E错误。解决事务代码 OBA5 找到消息号 KI100把级别从 E 改成 W警告。改完重新审批或建单。注意这是把硬错误降级为警告业务上要确认 WBS 元素归属确实允许跨公司使用否则只是把问题藏起来。# OBA5 修改消息号级别 # 事务代码OBA5 # 应用区域CO控制 # 消息号KI100 # 当前级别E错误- 改为 W警告 # 保存后重新执行 ME55 / ME21N / MIGO4.2 MIGO 根据交货单收货报错现象MIGO 参考交货单收货时直接报错无法过账。原因交货单没有做发货过账VL02N 没执行或没成功未发货的交货单不能收货。解决回到 VL02N 确认交货单状态是「已过账发货」物料凭证 4900002188 已生成再做 MIGO 收货。这个顺序不能跳发货在前收货在后。4.3 销售开票提示找不到 WBS 元素现象VF01 销售开票时报 WBS 元素错误提示找不到 WBS 元素消息类似 VF156「Error while substituting WBS element 」。原因WBS 元素属于 A 公司7010但 B 公司7090没有启用项目管理开票时系统在 B 公司侧校验 WBS 元素自然找不到。跨公司开票时系统还会额外检查销售公司代码下是否存在开票元素。解决在交货单到销售发票的复制控制里删除 WBS 元素传递。事务代码 VOFM复制请求号 105 到 901需要开发配合调整例程。另一种做法是在网络里为销售公司代码定义更高层级的开票元素。原文引用的两个 SAP Notes937407、499389就是讲这个场景的核心是 WBS 元素不应出现在不启用项目管理的 B 公司开票侧。# VOFM 复制控制调整需开发配合 # 事务代码VOFM # 路径数据传输 - 交货 - 开票 # 复制请求号105 - 901 # 调整例程删除 WBS 元素PS_PSP_PNR的传递逻辑 # 调整后重新执行 VF014.4 交货单过账后库存方向反了现象VL02N 过账成功但 MMBE 看库存A 公司工厂库存没增反减或者 B 公司侧库存方向不对。原因OMJJ 里移动类型 683 或 107 的「库存调拨」控制标识配反或者参考移动类型指向错误。解决OMJJ 逐个检查 683、107、109 的方向标识683 必须是发货方向、107 是收货方向。改完配置后用一张新交货单重测老单据的库存差异要单独做调整凭证冲回。4.5 OBYA 没配导致跨公司过账静默跳过现象A 公司 MIGO 收货后物料凭证生成了但没有会计凭证财务报表上跨公司往来对不上。原因OBYA 里 7010 对 7090 或反向的清账科目没维护系统找不到科目就跳过了会计凭证生成且不一定报错。解决OBYA 补全两个方向的清账科目科目类型选对然后做一笔测试过账验证会计凭证是否生成。这个坑最隐蔽因为物料凭证正常、库存也动了只有对账时才发现往来挂不上。5. 装完怎么验证三张凭证对平才算跑通公司间 STO 这套环境配完不能只看「没报错」就收工。我验证的标准是三张凭证对平交货单物料凭证、收货物料凭证、跨公司会计凭证三者缺一不可。下面是我每次配完必走的一遍验证流程按单据号逐层核对。第一步确认配置层全部生效。SFW5 里 LOG_MM_SIT 状态是 ActivatedOMJJ 里 683/107/109 方向正确OBYA 两个方向清账科目都在。这三项用事务代码各查一遍别凭记忆。第二步跑一张完整测试单据对照下表核对每个节点的预期结果节点事务代码预期凭证/状态核对点B 公司外部收货MIGO101物料凭证 5000001298 会计凭证 5000000002B 公司项目库存增加公司间交货单过账VL02N683107物料凭证 4900002188交货单状态「已过账发货」A 公司公司间收货MIGO109物料凭证 5000001299无会计凭证A 公司 7011 库存增加销售开票VF01开票凭证生成无 WBS 报错金额与 STO 一致发票校验MIRO会计凭证生成跨公司清账科目有往来第三步重点查「无会计凭证」那一步是不是真的正常。A 公司 MIGO 109 收货不产生会计凭证是设计如此但要确认跨公司往来已经在交货单过账阶段通过 OBYA 科目挂上了。做法是 FB03 查交货单过账对应的会计凭证看 7010 和 7090 之间的清账科目有没有行项目。如果这里空的说明 OBYA 还是没配全回到 4.5。第四步做一次反向验证故意用一张没发货的交货单做 MIGO 收货确认系统按预期报错对应 4.2。这一步是确认「该报的错会报」避免配置把校验全关掉了表面上跑通实际埋雷。我吃过一次亏测试环境三张凭证都对平了推到生产后第一张真实单据在 VF01 卡住原因是生产环境的 VOFM 复制例程还是旧版本测试环境改过但没同步。从那以后我每次推生产前都把 VOFM 复制请求号、OBA5 消息号级别、OBYA 科目这三项单独拉一张清单逐项比对测试和生产确认一致才放行。公司间 STO 的坑大多不在操作在「测试环境改了、生产没改」这种配置漂移上。希望这套验证流程能帮你少走一遍我踩过的弯路。本文还有配套的精品资源点击获取