SAP公司间项目STO全流程配置与操作避坑指南

简介:这份文档面向需要在SAP系统中处理跨公司采购交易的操作员与项目经理,聚焦公司间项目(Q)STO的配置与操作全流程,帮助读者理清从项目创建、采购申请与订单、交货单处理到收货、开票的完整链路,并掌握常见异常的排查思路。资源包共1个docx文件,约3.52MB,内容以业务背景说明、系统配置要点、分步操作指引和问题解决清单组织,涵盖SFW5激活业务功能、跨公司配置查看、交货类型与可用性检查、OBYA清账科目维护等关键配置,以及CJ20N、ME51N、ME21N、MIGO、VL10B/VL10D、VL02N等事务代码的实例应用。针对CO科目分配对象归属错误、采购收货与销售开票等典型问题,文档也给出了原因分析与对应处理措施,便于读者按图索骥完成两个公司代码之间的采购交易并快速定位故障。目前已有654人学习,适合作为日常操作参考与问题排查手册。

1. 公司间项目 STO:两个公司代码之间那笔“内部买卖”到底怎么跑通

A 公司接了一个项目,物料却要从 B 公司走一道,B 公司再向外部供应商采购——这种“项目采购套公司间调拨”的场景,在 SAP 里落地靠的就是公司间项目 STO。它不是一个事务代码能解决的事,而是项目挂物料、MRP 跑计划订单、转采购申请、审批、建 STO 采购订单、公司间交货、发货过账、收货、开票、发票校验一整条链路。这份资料把配置点和操作步骤按顺序拆开,还附了 CO 科目分配、WBS 元素、开票报错这些血泪经验。适合正在做跨公司代码项目采购的 MM/PS 顾问和关键用户,照着走能少翻几次车。

2. 配置先行:SFW5 激活与跨公司基础设置

公司间 STO 跑不起来,十有八九不是操作错,而是配置缺了一块。这一章按“先激活业务功能、再定义交货类型、最后补清账科目”的顺序把地基打牢。每个配置点我都标了事务代码和路径,方便你对着系统逐项核对。

2.1 用 SFW5 激活 LOG_MM_SIT 业务功能

公司间库存转移(Stock Transfer between Plants in Different Company Codes)依赖业务功能LOG_MM_SIT。没激活它,后面交货类型、移动类型、跨公司收货都会缺逻辑。操作路径是事务代码SFW5,在业务功能树里找到LOG_MM_SIT,勾选后执行激活。

# SFW5 操作要点(非命令行,按界面步骤记录) # 1. 事务代码 SFW5 进入业务功能切换框架 # 2. 展开 Logistics -> MM -> LOG_MM_SIT # 3. 勾选该业务功能,点击激活 # 4. 激活后系统提示需要传输请求,挂到开发请求下 # 5. 激活完成用 SFW5 复查状态是否为“激活”

逻辑说明:LOG_MM_SIT是公司间库存转移的开关,激活后系统才允许跨公司代码的 STO 走交货单流程。参数上要注意,激活属于系统级变更,必须挂传输请求,不能在生产机直接点。激活后建议用SFW5再查一次状态,确认不是“部分激活”。常见翻车是激活了但没传请求,测试机好了生产机没生效,上线当天才发现。

2.2 定义交货类型与交货项目类别

公司间 STO 的交货单不是随便一个交货类型都能用。路径是SIMG -> 后勤执行 -> 交货 -> 定义交货类型,以及定义交货项目类别。这里要确认公司间项目用的交货类型(常见是NLCC或自定义的Z开头类型)已分配给对应的项目类别,且项目类别里“公司间开票”相关标识正确。

配置对象事务代码/路径关键检查点
交货类型SIMG 后勤执行-交货-定义交货类型是否允许公司间 STO、是否带 POD 相关
交货项目类别SIMG 后勤执行-交货-定义交货项目类别项目类别是否勾选公司间开票
移动类型OMJJ683/107、109 是否配置正确

逻辑说明:交货类型决定了交货单走哪套项目类别,项目类别又决定了后续能不能开公司间发票。移动类型这块用OMJJ检查,公司间发货常用683+107,收货用109。参数上,683是公司间发货的移动类型,107是发货到在途,109是在途收货。如果OMJJ里这些移动类型没放开对应的事务码,VL02N 过账会直接报错。

2.3 按工厂配置交货类型和可用性检查过程

路径是SIMG -> 物料管理 -> 采购 -> 采购订单 -> 设置库存调拨单 -> 按工厂配置交货类型和可用性检查过程。这一步把“哪个工厂的 STO 用哪个交货类型”绑死。公司间项目里 A 公司工厂 7011、B 公司工厂 7091,两个工厂都要在这里维护对应的交货类型。

# 按工厂配置交货类型的检查思路 # 1. 进入配置节点,按工厂 7011 / 7091 分别查看 # 2. 确认交货类型字段已填公司间交货类型 # 3. 可用性检查过程字段确认非空 # 4. 保存后回 STO 采购订单验证交货类型是否自动带出

逻辑说明:这个配置是 STO 采购订单自动带出交货类型的依据。参数上,工厂和交货类型是一对多关系,同一工厂可以配多个采购订单类型对应不同交货类型。常见坑是只配了发货工厂没配收货工厂,结果交货单创建时提示找不到交货类型。可用性检查过程为空会导致交货单创建时跳过库存检查,看似能过,实际发货时库存不足直接卡住。

2.4 维护公司间清账科目(OBYA)

跨公司代码交易必须把公司间的应收应付清账科目配好,事务代码OBYA。路径是SIMG -> 财务会计 -> 总账会计 -> 业务交易 -> 准备跨公司代码交易。这里要维护公司代码 7010 和 7090 之间的清账科目,借贷双方都要有。

逻辑说明:公司间 STO 发货过账时,系统要在两个公司代码之间生成应收应付,OBYA配的就是这些过渡科目。参数上,公司代码组合、科目、借贷标识都要对。没配或配错,VL02N 发货过账会报“科目未找到”。这个配置经常被漏,因为测试环境可能之前有人配过,换一套公司代码就失效了。

2.5 POD 相关配置(可选)

路径是SIMG -> 后勤执行 -> 交货 -> 交货证明 -> 根据交货项目类别设置 POD-相关。POD(Proof of Delivery)不是必选项,如果业务不需要交货证明,这步可以跳过。需要的话,按交货项目类别勾选 POD 相关标识。

逻辑说明:POD 影响的是交货单收货确认的时点。开了 POD,收货要等 POD 确认后才算完成;不开则发货过账后即可收货。参数上按项目类别控制,粒度较细。常见误用是业务没 POD 需求却开了配置,结果收货流程多一道确认,关键用户以为系统卡了。

3. 操作链路:从项目号到发票校验的十个动作

配置齐了,操作链路才是真正考验顺序感的地方。这份资料把十个动作按依赖关系排好,我按“项目挂物料 → MRP → 采购申请 → 审批 → STO 订单 → 交货 → 发货 → 收货 → 开票 → 校验”的顺序拆,每个动作标事务代码和关键参数。

3.1 建立项目号并挂载物料(CJ20N)

事务代码CJ20N,建立 A 公司的项目号,挂载项目物料并下达。这一步是整条链路的起点,项目 WBS 元素决定了后续采购申请的科目分配对象。

# CJ20N 关键动作 # 1. CJ20N 创建项目定义,维护工厂 7011 # 2. 挂载物料,维护 WBS 元素 # 3. 项目下达(Release),状态变为“已下达” # 4. 检查 WBS 元素是否已分配给公司代码 7010

逻辑说明:项目下达后 WBS 元素才能被采购申请引用。参数上,WBS 元素必须属于 A 公司代码 7010,否则后面采购申请审批会报 CO 科目分配对象不属于该公司代码。常见坑是项目建了但没下达,MRP 跑不出计划订单,或者采购申请建了但 WBS 元素不可选。

3.2 运行 MRP 并转采购申请(MD02/MD04)

先跑 2002 工厂,再跑 2010 工厂,事务代码MD02。跑出计划订单后用MD04转成采购申请。

# MRP 与转采购申请 # 1. MD02 对工厂 2002 运行 MRP,参数选“计划订单” # 2. MD02 对工厂 2010 运行 MRP # 3. MD04 查看计划订单,选中后转采购申请 # 4. 记录生成的采购申请号

逻辑说明:MRP 按工厂分别跑,是因为两个工厂分属不同公司代码,计划订单归属不同。参数上,MRP 类型和计划文件要选对,否则跑不出需求。转采购申请时注意科目分配类别,公司间项目通常用Q(项目采购)。常见翻车是 MRP 跑完没检查计划订单的科目分配,转出来的采购申请科目分配类别不对,后面 STO 订单建不起来。

3.3 采购申请审批(ME55)

事务代码ME55,对生成的采购申请做审批。审批通过后采购申请才能转采购订单。

逻辑说明:审批是采购申请转订单的前置条件。参数上,审批策略和审批代码要匹配。这里最容易撞上 CO 科目分配报错,现象是审批时报“CO 科目分配对象属于公司代码 &3,不是 &4”,原因和解决在避坑章节细说。

3.4 创建 B 公司对外采购订单(ME21N)

事务代码ME21N,B 公司(公司代码 7090,工厂 7091)向外部供应商建采购订单。资料里给的订单号是 4100000175,这是 B 公司对外的采购单,不是公司间 STO。

逻辑说明:这一步是 B 公司先向外部供应商采购,货先到 B 公司项目库存。参数上,采购订单类型、供应商、工厂 7091、科目分配都要对。常见坑是把对外采购订单和公司间 STO 订单搞混,两个订单号前缀不同(410 开头是对外,430 开头是公司间),建错类型后面全乱。

3.5 B 公司对外收货(MIGO)

事务代码MIGO,B 公司对供应商做项目收货,移动类型 101。资料里物料凭证 5000001298,会计凭证 5000000002。

# MIGO 对外收货 # 1. MIGO 选“收货”->“采购订单” # 2. 输入 B 公司对外采购订单号 4100000175 # 3. 确认收货数量,过账 # 4. 记录物料凭证 5000001298 和会计凭证 5000000002

逻辑说明:这一步把货收进 B 公司项目库存,为后续公司间交货提供库存来源。参数上移动类型 101,科目分配走项目 WBS。常见坑是收货时库存地点选错,货进了非项目库存,后面公司间交货单创建时库存不可用。

3.6 创建公司间 STO 采购订单(ME21N)

事务代码ME21N,A 公司向 B 公司建公司间项目 STO 采购订单,资料里订单号 4300000176。这是整条链路的核心单据。

逻辑说明:STO 采购订单的供应商是 B 公司对应的客户编码(资料里 A 公司客户编码 7090),工厂是 A 公司 7011,收货工厂指向 B 公司 7091。参数上,采购订单类型要用公司间 STO 类型,交货类型要能自动带出。常见坑是供应商填成了外部供应商而不是内部客户编码,导致交货单创建时找不到公司间关系。

3.7 创建公司间交货单(VL10B/VL10D)

事务代码VL10B或VL10D,根据 STO 采购订单创建公司间交货单,资料里交货单号 800000123。

# VL10B 创建交货单 # 1. VL10B 输入 STO 采购订单 4300000176 # 2. 执行,选中行项目 # 3. 创建交货单,记录交货单号 800000123 # 4. 检查交货单里的工厂、库存地点、WBS

逻辑说明:VL10B 是按采购订单批量创建交货单,VL10D 是按交货计划。参数上,交货单里的发货工厂是 B 公司 7091,收货工厂是 A 公司 7011。常见坑是交货单创建时提示“没有可交货的项目”,多半是 STO 订单的交货类型没带出或库存不可用。

3.8 交货单发货过账(VL02N)

事务代码VL02N,对交货单 800000123 做发货过账,移动类型683+107,资料里物料凭证 4900002188。

逻辑说明:发货过账把 B 公司库存转出到在途。参数上,683是公司间发货,107是发货到在途。过账前要确认拣配数量、库存地点。常见翻车是没做这一步就去 MIGO 收货,系统报“交货单未发货,不能收货”,这是顺序问题,不是配置问题。

3.9 A 公司收货(MIGO)

事务代码MIGO,A 公司根据交货单收货,移动类型109,资料里物料凭证 5000001299,此时无会计凭证产生。

# MIGO 公司间收货 # 1. MIGO 选“收货”->“交货单” # 2. 输入交货单号 800000123 # 3. 确认收货,移动类型 109 # 4. 记录物料凭证 5000001299

逻辑说明:109是在途收货,把在途库存转入 A 公司项目库存。资料特别标注“此时无会计凭证产生”,是因为公司间应收应付在发货过账时已生成,收货只做库存转移。参数上移动类型必须是 109,用错移动类型会导致库存对不上。常见坑是收货时提示找不到交货单,检查交货单是否已发货过账。

3.10 销售开票与发票校验(VF01/MIRO)

事务代码VF01开销售发票,MIRO做采购发票校验。资料里这部分标注“待补充”,但给了报错线索:开票时提示 WBS 元素错误。

逻辑说明:公司间开票走 VF01,发票校验走 MIRO。参数上,开票要确认 WBS 元素在复制控制里是否正确传递。常见坑是开票报“找不到 WBS 元素”,根因是 WBS 元素属于未启用项目管理的公司代码,解决要动复制控制(VOFM),这个在避坑章节展开。

4. 避坑与排查:五条血泪经验

这一章是整份资料最值钱的部分。配置和操作都能照抄,但报错不会按剧本出现。下面五条按“现象 → 原因 → 解决”写,都是公司间项目 STO 里高频撞上的。

4.1 CO 科目分配对象属于公司代码 &3,不是 &4

现象:采购申请审批、建采购订单或采购订单收货时报“CO 科目分配对象属于公司代码 &3,不是 &4”。

原因:WBS 元素归属的公司代码与当前操作的公司代码不一致。公司间项目里 A 公司 7010、B 公司 7090,WBS 元素如果挂在 A 公司,B 公司操作时就会撞这个错。

解决:资料给的做法是改报错消息号KI100,从 E 改成 W,事务代码OBA5。这是把硬报错降级为警告,让流程能过。但要清楚这是“绕过”不是“修复”,根因还是 WBS 元素归属要理清。我一般会先确认 WBS 元素到底该挂哪个公司代码,确认业务上允许后再改消息号,改完记录到配置文档,避免后人不知道这里动过。

4.2 MIGO 根据交货单收货报错

现象:MIGO 根据交货单收货时直接报错,收不进去。

原因:交货单没有过账发货。系统逻辑是“未发货不能收货”,这是顺序约束不是配置问题。

解决:回VL02N对交货单做发货过账(683+107),过账成功后再回 MIGO 收货(109)。这条坑的教训是操作顺序不能跳,发货和收货是前后依赖,不是并行动作。

4.3 销售开票提示找不到 WBS 元素

现象:VF01 开票时提示 WBS 元素错误,日志里是VF156“Error & while substituting WBS element &”。

原因:WBS 元素属于股份公司但没启用项目管理,WBS 元素不应该出现在 B 公司的开票里。跨公司代码开票时系统会额外检查销售公司代码下是否存在结算元素。

解决:资料给的是在交货单到销售发票的复制控制里删除该 WBS 元素,复制请求号 105 到 901,事务代码VOFM,需要开发协助。另一条路是按 SAP Notes 的思路,在网络里为销售公司代码定义更高层级的结算元素。两条路选哪条看业务:不需要 WBS 传递就删复制控制,需要保留就补结算元素。

4.4 交货单创建时找不到交货类型

现象:VL10B 创建交货单时提示没有可用交货类型,或交货单里交货类型为空。

原因:按工厂配置交货类型那步漏配了某个工厂,或者 STO 采购订单的采购订单类型没关联到交货类型。

解决:回SIMG -> 物料管理 -> 采购 -> 采购订单 -> 设置库存调拨单 -> 按工厂配置交货类型和可用性检查过程,把发货工厂和收货工厂都补上。补完用 STO 订单重新带一次交货类型验证。

4.5 发货过账报科目未找到

现象:VL02N 发货过账时报“科目未找到”或清账科目相关错误。

原因:OBYA里公司代码 7010 和 7090 之间的公司间清账科目没配或配错。

解决:事务代码OBYA补维护公司间清账科目,借贷双方都要有。配完回 VL02N 重新过账。这条坑在换公司代码组合时特别容易复发,因为测试环境配过不代表新组合配过。

5. 进阶验证:用单据流和移动类型反查链路完整性

跑通一遍不算完,能反查才算真掌握。我习惯在整条链路跑完后做一次单据流核对,用MB51按物料和工厂查移动类型流水,确认 101、683、107、109 四个移动类型都出现且数量对得上;再用VL03N看交货单的单据流,确认 STO 订单、交货单、物料凭证、发票是否串成一条线。这一步能提前发现“流程过了但库存或科目没对上”的隐性错误。

验证动作事务代码看什么
物料流水核对MB51101/683/107/109 是否齐全,数量是否匹配
交货单单据流VL03NSTO 订单→交货单→物料凭证→发票是否连贯
采购订单历史ME23N订单的收货、发票校验记录是否完整
公司间清账FB037010/7090 之间应收应付是否平衡

还有一个具体技巧:把整条链路的事务代码按顺序写成一个操作清单,每个代码后面标注“前置单据号”和“产出单据号”,关键用户照着填。比如 CJ20N 产出项目号,MD04 产出采购申请号,ME21N 产出 STO 订单号,VL10B 产出交货单号,VL02N 产出物料凭证 490 开头,MIGO 产出物料凭证 500 开头。单据号前缀本身就是链路的路标,410 是对外采购、430 是公司间 STO、490 是交货发货、500 是物料收货,看前缀就知道走到哪一步了。

参数边界上要提醒一句:OBA5改消息号是全局配置,改了会影响所有走KI100的场景,不是只影响当前项目。改之前一定确认影响范围,改完在配置文档里留痕。VOFM的复制控制改动更要谨慎,复制请求号 105 到 901 动的是开票复制逻辑,影响面比想象大,必须走开发请求并在测试机验证。

从那以后我每次做公司间 STO,都会先把SFW5激活状态、OBYA清账科目、按工厂交货类型这三项当 checklist 过一遍,再开始建项目号——这三项任何一项缺,后面十个操作动作全是白跑。希望帮到你。

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