简介:这是一份聚焦SAP STO(公司间转储)自动业务流程的配置文档,面向SAP实施顾问、MM/SD模块运维及需要实现跨公司转储自动化的企业IT人员,系统讲解从下达采购订单到自动创建交货单、发货过账、收货、开具销售与采购发票的完整链路。压缩包内为单个doc文档(共60页),大小约17.76MB,内容以分步骤配置路径、事务码说明及操作截图为主,特别标注了关键参数与注意事项。文档基于1600公司向1310公司采购的真实业务场景展开,详细演示了自动创建交货单、VL02N发货过账、MIGO收货、VF01销售发票、MIRO采购发票等自动触发配置,并补充了常规IDOC配置以及S/4系统专用的BRF+消息输出设置,可帮助读者快速搭建可复用的STO自动化方案。已有1298人学习/下载,适合需要参照完整配置案例进行项目落地或系统测试的从业者。
1. STO 自动触发:先看清四种单据谁生成谁,才不会把配置做成连环雷
模拟项目X里最熬人的不是功能没实现,而是配置文档里那四个“自动”词让人误以为只要把开关勾上,单据就会自己跑。实际落地里,STO 的自动触发交货单、自动发票、自动交货、自动采购发票是一条链式流程:先由库存转储订单生成外向交货单,交货单过账后触发公司间发票,收货方再基于收货自动生成采购发票。任何一环缺了主数据或输出条件,整条链都会停在后台上。这篇笔记把每个环节的配置顺序、参数位置和最常见翻车点拆开,给正要落地 STO 自动化、又不想被作业日志反复折磨的顾问和后勤主管一点可抄作业的参考。
2. 配置前置条件:不把 STO 模式选对,后面自动化全是空转
2.1 先选 STO 模式:工厂间、公司间的触发逻辑不一样
很多人第一次配 STO 自动触发时,习惯直接在采购订单类型上找“自动交货”和“自动发票”两个开关,结果发现界面上根本没有。因为 STO 至少分成两种模式:同一公司代码下的工厂间调拨,和跨公司代码的库存转储。后者的物流链路会走销售与分销的交货、发运、开票,前者则很可能只走货物移动和内部结算。
工厂间 STO 通常不涉及应收应付,供应商是同一个公司代码下的另一个工厂,采购订单只是一个库存调拨指令。此时自动触发交货单要走“装运”相关配置,自动发票则更多体现为工厂间的内部结算,不产生对外的销售发票。跨公司 STO 则完全不同:供应工厂既要向收货工厂开具公司间发票,收货工厂在财务上也要对供应工厂形成应付采购发票,因此必须同时配置“供应商-工厂”和“客户-工厂”两套主数据关系,并给出对应的定价过程。
我一般会先画一张单据流草图,把“采购订单 -> 外向交货 -> 发货过账 -> 公司间发票 -> 采购发票”每一层对应的事务码写出来。这一步不花太多时间,但能避免后面把系统里自动开票逻辑配到错误方向上。常见做法是:
工厂间 STO:PO(ME21N) -> 交货单(VL10B) -> 发货过账(VL06P) -> 内部结算 跨公司 STO:PO(ME21N) -> 交货单(VL10B) -> 发货过账(VL06P) -> 公司间发票(VF04) -> 采购发票(MRKO/MIRO)参数说明:上面的事务码是标准系统里常用入口。VL10B 处理“按采购订单创建外向交货”,VL06P 处理“外向交货发货过账”,VF04 处理“开票到期清单”,MRKO 用于“按收货自动生成采购发票”。先分清工厂间和跨公司,后面所有配置记录才能落到对的位置。尤其是在跨公司模式下,如果忽略销售开票相关的输出类型和客户主数据,自动触发的链路会在“开发票”那一环断掉。
2.2 后台基础设置:采购订单类型、装运类型与项目类别
STO 的采购订单类型通常是特殊采购类型“库存转储”标识。创建 STO 时,系统会把标准采购订单类型带过来,但面向“自动触发交货单”的场景,必须在后台确认该订单类型的配置里允许装运。很多交付项目沿用标准配置,表面上能用,但实际缺了“装运”相关字段,导致 VL10B 运行时找不到可交货的采购订单行项目。
需要检查的后台路径一般集中在物料管理->采购->采购订单->库存转储订单,下面通常有定义库存转储订单的采购订单类型、定义装运相关参数、定义工厂与客户/供应商分配等节点。以一张典型配置表为底稿去逐项核对会比较省事:
| 配置对象 | 典型设置 | 作用 |
|---|---|---|
| 采购订单类型 | 特殊采购类型“库存转储” | 决定 PO 行项目用哪种库存转移逻辑 |
| 装运标记 | 勾选“装运”,分配装运类型 | 让 PO 行项目可以被外向交货参考 |
| 交货单类型 | 如 NL、DIV 等 | 决定外向交货单抬头属性 |
| 物料项目类别 | 如 TAN、TAB | 决定行项目在交货过程中的开票与库存更新方式 |
| 公司间定价 | 条件类型如 PR01/ZP01 | 保证跨公司 STO 发票金额有来源 |
参数说明:其中“装运标记”是最容易漏的。如果你在 ME21N 的采购订单行项目“交货”标签页看不到“装运”相关字段,通常不是权限问题,而是后台装运类型没维护。把订单类型和装运类型绑定后,VL10B 才会把该 PO 视为“应创建外向交货”的单据。交货单类型和项目类别则牵涉到发货过账时移动类型的配置,跨公司 STO 常用移动类型 351 表示发货方发货,101 表示收货方收货。
2.3 主数据:供应商映射、客户映射与输出条件记录
跨公司 STO 下,供应工厂在收货公司的采购组织眼里就是一个供应商,收货工厂在供应公司的销售组织眼里则是客户。这两个主数据关系没有建全时,系统不会自动创建交货单,更不会触发后续发票。实践中,你需要分别维护供应商主数据视图和客户主数据视图,并确保公司代码、采购组织、销售组织的分配与后台映射一致。
输出条件记录是最容易遗漏的一块。自动开票通常依赖“消息输出”机制:当交货单发货过账后,系统通过输出类型决定是否自动生成公司间发票。配置输出类型要设置访问顺序,把供应商、客户、物料、交货单类型这些维度按优先级排好。条件记录没有建时,系统不会报错,只会安静地不生成发票,这是最折磨人的排查场景之一。
我一般会用一个检查清单保证主数据闭环:
- 供应商主数据:收货公司代码 + 采购组织下,供应工厂有效。
- 客户主数据:供应公司销售组织下,收货工厂有效。
- 输出条件记录:为交货单与开票分别维护,条件号码可多个。
- 定价条件:确认公司间价格能取出,避免自动发票金额为零。
- 工厂分配:确保每个工厂有装运点,发货工厂有对应客户。
这些主数据做完后,建议第一时间用一张测试 STO 手动走到开发票,确认输出记录出现在交货单上。主数据不对的情况下,后面做再多的后台作业调度都是白搭,这算是整个项目里最不该省掉的验证步骤。
3. 自动触发交货单和自动交货:从 VL10B 到自动发货过账的一整条链
3.1 用 VL10B 把“采购订单转交货单”做成自动
自动触发交货单不是采购订单保存的瞬间就长出交货单,而是让系统定期扫描符合条件的 STO,然后生成外向交货单。标准入口通常是 VL10B,它支持按采购订单、采购订单行项目、供应商等条件筛选。我们需要把筛选条件存成变式,再交给后台作业定期执行。
我一般会在 VL10B 跑一次手动执行,确认能筛出目标 STO,再把选择条件保存为变式。保存变式时注意“动态选择”与“固定参数”的关系:物料、工厂、供应商这些固定住,数量边界不要设死,否则第二天有新单据进不来。变式名建议统一规范,比如 Z_STO_DLV_CREATE_SEL,后面扔给 SM36 作业时好认。
后台作业的创建逻辑大致是这样的:
用 SM36 创建作业 Z_STO_DLV_CREATE 步骤 1:事务码 VL10B,使用变式 Z_STO_DLV_CREATE_SEL 步骤 2:事务码 VL10B,使用变式 Z_STO_DLV_CREATE_SEL(可加不同选择条件) 调度方式:每隔 5 分钟运行一次,或按业务频率设为每小时逻辑说明:这个作业本身不写任何自定义程序,只是重复执行标准事务。VL10B 具备幂等性,已经生成过交货单的 STO 会被跳过,因此重复运行不会重复创建。参数说明里真正值得关注的是“变式”里是否勾选了“并行处理”和“后台执行时的输出控制”。如果物料行多、单据量大,建议按工厂拆多个作业,避免单个作业在全库存范围内扫描影响性能。
3.2 自动交货的第二步:自动发货过账,不只是点一下 PGI
外向交货单创建后,接下来是“自动交货”。很多人把它理解成后台作业直接自动过账物料,实际上还隔着“准备、拣配、装运”等过程。如果工厂没启用仓储管理,VL06P 可以接住后续的发货过账动作;但如果工厂连接了 WM/EWM,自动 PGI 往往要求转移订单已确认,这时做全自动就要慎之又慎。
我在处理这类配置时,会先看交货单类型的“发货过账控制”。标准配置中,交货单抬头和行项目的状态决定 PGI 是否能执行。比如装运点缺失、交付冻结、物料冻结都会让系统在后台作业里留下错误,但作业状态还是“已完成”,只是没有发任何消息出来。所以自动 PGI 的参数设置要围绕“状态检查”来配置,而不是单纯把事务码塞进后台作业。
一个常见的后台作业调法是:
SM36 创建作业 Z_STO_DLV_PGI 步骤 1:事务码 VL06P,使用变式 Z_STO_PGI_SEL 调度方式:每分钟或每 10 分钟运行一次逻辑说明:VL06P 会处理所有符合筛选条件的外向交货单。如果交货单冻结,它不会过账,单据继续留在列表里。参数说明:变式里通常要固定库存地点、装运点、发货过账日期,并把“按计划可在系统中使用”的应用条件打开。这样既能保证自动过账,又能保留一定的安全阀。
3.3 自动交货不等于交付商品:装运相关参数表
要把“自动交货”从概念落到配置,得看清三层拆分:
| 阶段 | 事务码/对象 | 关键参数 | 失败常见原因 |
|---|---|---|---|
| 创建交货单 | VL10B | 选择变式、装运点 | PO 行项目未标记装运 |
| 拣配/装运 | 交货单行项目 | 拣配数量、批次 | 缺批次确定、库存冻结 |
| 发货过账 PGI | VL06P | 移动类型、发货单状态 | 装运点缺失/仓库未确认 |
参数说明:如果只需要后台自动过账,不需要仓库系统参与,通常可以把交货单类型的“仓库管理”标识置空。这样 VL06P 可以直接完成发货过账,跳过 WM 的确认环节。如果必须接 WM,则要额外配置自动确认的移动类型或者设置 WM 任务类型的批处理,否则“自动交货”永远卡在仓库确认。
4. 自动发票与自动采购发票:从应收凭证到应付凭证自动落账
4.1 公司间自动开票:输出类型与开票到期清单
跨公司 STO 中,发货方需要向收货方开具公司间发票。自动触发的关键通常不在采购订单本身,而在交货单的输出类型。标准系统里常见做法是:交货单发货过账后,通过输出类型把公司间发票的创建请求释放出来。条件记录维护在“开票”应用下,访问顺序用客户、物料、交货类型等组合。
我习惯把“自动开票”拆成两层来看:第一层是前台操作层的输出触发,第二层是后台调度层的批量处理。手工场景可以 VF01 直接开票,自动场景一般用 VF04 处理开票到期清单。后台调度前,必须先在 NACE 事务里确认输出类型已经配置,并且客户主数据中维护了相应输出条件。
示例配置流程:
- 进入系统输出控制配置,找到开票应用。
- 定义或复制一个输出类型,用于 STO 公司间发票。
- 维护访问顺序,包含“客户/发票类型/销售组织”等条件表。
- 为客户主数据建立条件记录,并勾选“自动输出”。
- 用事务 VF04 处理开票到期清单,勾选“在后台运行”。
参数说明:输出类型一旦建立,交货单过账后会在“输出日志”里留下记录。排查时直接看出输输出状态是否显示“成功”。后台作业的频率要与发货过账错开,比如 PGI 作业每 5 分钟一次,VF04 作业每 10 分钟一次,避免同一张交货单先被开票但单据状态尚未完整更新而漏掉。
4.2 收货方自动采购发票:MRKO 与基于收货的开票联动
收货方生成采购发票的自动逻辑,和传统供应商发票校验略有区别。STO 场景下,收货方做的往往不是手工 MIRO 录入,而是基于收货来结算。系统里有专门的“按收货的自动采购发票”处理逻辑,标准事务常用 MRKO。它能把已经收货的采购订单行项目按收货数量与价格生成采购发票。
我通常会先确认 STO 采购订单行项目的“发票”标签页已勾选“基于收货”或“账务凭证”。如果没勾选,MRKO 会找不到可结算的行项目。其次,收货移动类型 101 过账后,物料凭证会形成“收货与发票收到之间的差异”,这是 MRKO 后续结算的依据。
自动执行 MRKO 的方式和后台作业很像,只是要先保存选择变式:
SM36 创建作业 Z_STO_AUTO_INVOICE 步骤 1:事务码 MRKO,使用变式 Z_STO_MRKO_AUTO 关键勾选:仅按收货自动生成发票,自动过账 调度方式:每个小时运行一次,避开高峰逻辑说明:MRKO 的“自动生成”功能会筛选出满足条件的收货凭证,生成供应商发票并自动过账。参数说明:勾选“自动过账”意味着系统不再停留在清单界面,而是直接生成会计凭证。建议先不加自动过账跑一次,看生成的发票金额与物料凭证是否一致;确认后再加上自动过账,否则金额错误时会直接落账,处理成本高。
4.3 财务集成:转移价格、税额与 GR/IR 清账
自动发票与自动采购发票不只是两张单据,它的底层是两条会计链路。发货方确认收入与应收,收货方确认库存与应付,中间的差异会落在公司间结算科目上。“自动”并不是会计处理上的放任,恰恰因为少了人为检查,更需要把定价过程、税码、科目确定一次性摆平。
定价方面,跨公司 STO 的价格来源可能是采购订单条件或公司间转移价格。如果没配好条件类型,自动发票金额会莫名其妙变成零。开票时使用什么税码、收货方在应付中使用什么税码,都要在发票类型和供应商主数据里保持一致。否则两边各自生成的凭证,月末对账会很难调。
避坑经验:在 MRKO 自动采购发票配置里,要留意“收货数量”与“开票数量”的基准。标准逻辑通常基于完成收货的移动凭证,若部分收货,只结算已收货部分。不要把交货单全部数量当成自动发票的数量来源,那是销售侧的逻辑,不是采购侧的逻辑。
5. STO 自动触发配置避坑:5 个必查的故障现象
5.1 现象一:交货单根本没自动生成,后台作业看起来又“成功”了
后台作业运行结束,日志显示没有报错,但外向交货单就是没有任何新增。这种情况在项目上线后很常见,原因多半不是作业没跑,而是 VL10B 的变式没选中目标单据,或采购订单行项目没带“装运”标识。
解决方向:先到 VL10B 手动执行一次,用同一个变式看是否能筛出 STO。如果手动能筛出而自动作业不能,检查日期参数是否被固定成了昨天。如果手动也筛不出,回后台检查订单类型是否允许装运,再看供应商主数据里的“交货”“装运”相关字段。
5.2 现象二:交货单创建了,自动 PGI 一直过不去
VL10B 正常生成外向交货单,但 VL06P 后台跑了很多次,状态还是“未过账”。检查物料凭证,没有任何发货记录,交货单界面也没有报错。
原因通常是装运点缺失、交货单冻结、库存地点无库存或批次确定失败。还有一种是工厂启用了 WM,但没有配置自动仓库确认,导致交货单卡在“处理中”。
解决方向:先查看外向交货单状态里缺哪些功能。到工厂主数据确认装运点,到物料主数据确认库存地点与可用库存,到 WM 配置里把发货过账对应的移动类型设置自动确认,或暂时屏蔽 WM 集成做测试。
5.3 现象三:公司间发票重复创建,或同一张交产生两笔应收
后台作业频率高、并发跑,导致 VF04 把同一张交货单处理了两次。这种问题不是每次都会复现,往往在业务量大的时候出现,极具迷惑性。
解决方向:用单据流查询交货单的后续发票,确认是否存在多条发票行。VF04 本身有锁定机制,但后台作业的并行进程可能绕过了清单刷新时间。把后台作业改成单进程、按工厂拆分,并在 VF04 变式里加上“只选择到期清单中未开票”的条件,避免重复。
5.4 现象四:自动采购发票金额与收货数量不一致,财务月底对不上账
MRKO 自动生成了采购发票,但金额与物料凭证的收货数量对不上,有时多了运费,有时少了税。原因通常不在 MRKO 本身,而在供应商主数据里的定价条件和采购订单的科目分配。比如自动发票使用了错误的采购价格,或者公司间转移价格没有被读取。
解决方向:把采购订单条件页签拉出来看,确认价格条件来源。到条件记录里检查供应商与物料/工厂的组合是否唯一。如果存在多个价格记录,系统会按有效日期取最新值,日期重叠会导致取值不稳定。建议把价格条件记录的有效期和税码一起核对。
5.5 现象五:跨公司 STO 自动发票金额为零,单子清了但账没到手
开票发票确实自动生成,凭证也过账了,但借贷金额全是零。常见原因是开票输出类型对应的访问顺序里,没有取到有效的价格条件。另一个原因是定价过程里缺少公司间收入科目,金额被“归零”。
解决方向:先用 VF03 打开自动生成的发票,查看“定价”页签里水平显示是否为空。如果是缺失条件类型,去定价过程中添加公司间定价条件。再检查定价过程是否配置了“金额为零时仍创建凭证”的容错设置。这种问题越早逼出来越省事,上线后再处理可能要冲销重开发票。
6. 验证技巧:用两台测试工厂把自动链路串起来
6.1 测试数据准备:最小化场景照样能覆盖全部自动环节
我不建议一上来就用完整生产级工厂、复杂物料、批次策略来验证。先造两个测试工厂,一个作为发货方,一个作为收货方,如果做跨公司场景就分两个公司代码。用同一个物料,数量设成整数,价格用固定金额,免掉批次和序列号的干扰。这样验证的是配置链路,而不是主数据复杂度。
测试过程要按单据流推进:创建 STO、运行 VL10B、跑 VL06P、看 VF04、跑 MRKO。每一步都用同一个事务码查对应单据,确认生成顺序和时间戳合理。跑通了再逐步加物料、加库存地点、加批次确定。
6.2 用系统和显示日志核对每条“自动”是否真正生效
自动作业最怕“没报错但没干活”。验证时不要只看后台作业状态,要看作业产生的单据流水。
可以按这些入口检查:
VL10B 运行结果:查看生成的交货单数量 VL06P 运行结果:查看发货过账凭证号 VF04 开票到期清单:查看公司间发票号 MRKO 处理清单:查看采购发票号与收货数量对应关系 SM37 后台作业日志:查看每个步骤的详细输出参数说明:SM37 显示作业日志时,要拉出“详细日志”,看事务码结尾的返回值。系统经常在“步骤完成”的情况下返回一个警告,比如“没有符合选择条件的采购订单”,这种警告不代表配置错,但可能意味着变式日期或装运点选错。把日志落在验证文档里,后续上线排查会省很多力气。
6.3 给自动作业加一条“报警”习惯:作业成功不等于业务成功
最后一件事,我想说的是给自己留一条人工兜底路径。自动触发配置得再完整,也会有主数据异常导致的静默失败。我一般会给连锁的后台作业加一个简单的数据核对,比如每天固定时间用事务码查询“超过 X 小时仍未发货过账的交货单”,或者“收货后超过 X 小时还没有自动采购发票的订单”。
这个动作不需要开发,一张报表就够了。它的价值在于把“后台作业跑成功”和“业务单据真正完成”区分开。作业成功只代表事务码执行完毕,不代表目标单据被正确生成,更不代表发票金额和财务凭证没有问题。想通这一点之后,我在 STO 自动触发配置上犯过的最大错误就变成了经验:先把每一步做成可验证的,再谈全自动和无人值守。希望这些配置和排查方法帮到你,少踩几个我已经踩过的坑。
本文还有配套的精品资源,点击获取