news 2026/10/28 15:01:17

SAP公司间项目STO环境搭建:从SFW5激活到OBYA清账的完整链路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP公司间项目STO环境搭建:从SFW5激活到OBYA清账的完整链路

简介:这份文档面向在 SAP 系统中执行公司间项目采购与交货的操作员及项目经理,聚焦公司间项目(Q)STO 的配置与操作全流程,帮助读者理清两个不同公司代码之间采购交易的标准执行顺序,并应对 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 这个业务功能压根没激活,后面所有配置都是白搭。公司间项目(Q)STO 这套东西,本质是 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 → 后勤执行 → 交货 → 定义交货类型。公司间项目(Q)STO 用的是公司间交货类型,需要确认交货类型里「公司间」标识和后续开票相关字段是否正确。同时要看交货项目类别,路径 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、工厂 7011,WBS 元素要属于 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 公司外部采购收货 # ME21N:B 公司 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 采购订单 # ME21N:A 公司 7010 建 STO,供应商 = B 公司 # 订单类型:公司间 STO 类型(非普通采购) # 确认:交货类型指向公司间交货类型,工厂 7011 # 预期结果:STO 单号 4300000176

建完 STO 后检查订单的「交货计划」页签,确认交货类型和可用性检查过程带出来了。如果这里是空的,说明 2.3 的按工厂配置没生效,回到配置章节补。

3.5 VL10B/VL10D 建公司间交货单并 VL02N 过账

用 VL10B 或 VL10D 根据 STO 建公司间交货单(原文示例 800000123),然后 VL02N 做交货单发货过账,移动类型 683+107,产生物料凭证 4900002188。

# 公司间交货单创建与过账 # VL10B / VL10D:根据 STO 4300000176 创建交货单 # 预期结果:交货单号 800000123 # VL02N:发货过账,移动类型 683(发货)+ 107(收货侧) # 预期结果:物料凭证 4900002188

VL02N 过账前确认交货单的批次、库存地点都正确。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 / MIGO

4.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 Notes(937407、499389)就是讲这个场景的,核心是 WBS 元素不应出现在不启用项目管理的 B 公司开票侧。

# VOFM 复制控制调整(需开发配合) # 事务代码:VOFM # 路径:数据传输 -> 交货 -> 开票 # 复制请求号:105 -> 901 # 调整例程:删除 WBS 元素(PS_PSP_PNR)的传递逻辑 # 调整后重新执行 VF01

4.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 状态是 Activated,OMJJ 里 683/107/109 方向正确,OBYA 两个方向清账科目都在。这三项用事务代码各查一遍,别凭记忆。

第二步,跑一张完整测试单据,对照下表核对每个节点的预期结果:

节点事务代码预期凭证/状态核对点
B 公司外部收货MIGO(101)物料凭证 5000001298 + 会计凭证 5000000002B 公司项目库存增加
公司间交货单过账VL02N(683+107)物料凭证 4900002188交货单状态「已过账发货」
A 公司公司间收货MIGO(109)物料凭证 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 的坑大多不在操作,在「测试环境改了、生产没改」这种配置漂移上。希望这套验证流程能帮你少走一遍我踩过的弯路。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 14:59:46

杠杆得分采样优化Tensor Train张量分解实践

1. 张量分解的挑战与杠杆得分采样的价值在当今大数据时代,高维张量数据的处理已经成为科学计算和机器学习领域的重要课题。作为一名长期从事张量计算研究的工程师,我深刻体会到传统张量分解方法在处理大规模数据时面临的效率瓶颈。Tensor Train&#xff…

作者头像 李华
网站建设 2026/10/28 14:59:26

用知识图谱导航代码:Graphify入门与实战

接手一个维护了三年的老项目,第一周我基本是在迷路状态:方法A调用了方法B,B又改了全局状态C,C被三个线程同时读写,而这一切只有靠grep -r和一层层手工跳转才能勉强拼出来。后来我把整个代码库丢给Graphify跑了一遍&…

作者头像 李华
网站建设 2026/10/28 14:59:19

图模型在数据科学与工业实践中的应用与优化

1. 图模型在数据科学中的核心价值图模型(Graph Model)作为数据科学领域的重要工具,正在从学术研究快速渗透到工业实践中。我在金融风控和社交网络分析项目中多次使用图模型解决传统方法难以处理的关联性问题,其核心优势在于能够直…

作者头像 李华
网站建设 2026/10/28 14:59:03

自动驾驶测试场景建模与高效采样技术实践

1. 自动驾驶测试场景的工程化挑战在自动驾驶系统开发中,场景测试是验证算法可靠性的关键环节。传统路测方法需要积累数百万公里的真实驾驶数据,不仅成本高昂,且难以覆盖极端情况。我们团队在量产项目实践中发现,通过构建参数化的测…

作者头像 李华
网站建设 2026/10/28 14:58:33

Spring AI与RAG技术在企业级AI应用中的实践

1. Spring AI与RAG技术深度解析在当今企业级AI应用开发领域,Spring AI框架与RAG(Retrieval-Augmented Generation)技术的结合正在重塑知识密集型应用的构建方式。作为Java生态中首屈一指的AI集成方案,Spring AI 2.0版本通过模块化…

作者头像 李华
网站建设 2026/10/28 14:58:23

主流AI Agent框架横向评测与开发实践

1. 主流AI Agent横向评测背景AI Agent领域最近半年迎来了爆发式增长,各种开源框架和商业产品层出不穷。作为一名从2022年就开始跟踪Agent技术发展的从业者,我完整经历了从AutoGPT引爆市场,到如今OpenClaw等新一代框架崛起的全过程。这次评测将…

作者头像 李华