简介面向SAP SD/MM顾问及实施人员的STO自动化配置文档聚焦公司间库存转储中交货、发货、收货、销售开票与采购发票的联动触发适合需要梳理跨模块配置逻辑、排查自动化断点的中高级用户参考。文档为单个doc文件约17.76MB正文共60页配有大量配置路径截图与参数标注覆盖业务场景说明、自动创建交货单、发货过账、收货、销售开票、采购发票以及IDOC消息输出与S/4系统BRF设置等模块目录层级清晰便于按环节检索和对照检查。已有1301人学习说明其在SAP-STO自动开票与收货场景中具有一定参考价值。读者可从中获得完整配置链条、关键输出过程与复制控制要点也能了解自动过账失败时的检查方向适合作为项目配置、排错及团队知识沉淀的参考素材。1. STO 自动链路串了五张单据手工切六个事务码的活怎么压成一次后台跑批SAP-STO 配置里最容易被低估的一块就是集团内两个法人之间调拨的自动化。手工做法是采购订单下完跑到供货方建交货单、发货过账再切到采购方做收货回头开销售发票最后做采购发票校验六个事务码来回跳一张单子十几分钟。这份 60 页的配置文档把这条链路拆成五段自动建交货单、自动发货、自动收货、自动开销售发票、自动做采购发票每段都给了配置路径和截图。适合正在做 STO 流程固化、被 VL10B/VL02N/MIGO/VF01/MIRO 这套手工动作拖住的 SD、MM 顾问和内部运维也适合刚接手这条链路、需要一份能照着配的清单的人。2. 前置主数据与后台开关自动建交货单为什么总是「没反应」自动链路的第一段就卡住八成不是后台配置写错了而是主数据里某个绑定关系缺了一角。STO 的特殊性在于它同时踩在采购和销售两条线上采购订单是采购视角交货单和发票是销售视角系统要在两者之间找到工厂、供应商、客户、装运点这几组对应关系。这一章把三个必须先立住的前置条件拆开讲顺序不能乱先主数据再后台开关最后才是批处理参数。2.1 装运工厂信息与 BP 供应商的工厂绑定采购方在 ME21N 里填的供应商本质上是供货方公司在采购方公司代码下的内部供应商这个供应商在 BP 里必须绑定到供货工厂系统才能在创建交货单时确定从哪个工厂发货、用哪个装运点、走哪条装运路径。我见过最典型的翻车是供应商主数据只维护了公司代码视图工厂视图空着后台跑批时交货单一条都建不出来日志里只有一句「装运工厂无法确定」前台完全无感。配置入口有两块缺一不可。一块在 BP 事务码里维护供应商主数据的工厂视图把供应商和供货工厂绑起来同时确认装运数据页签里的装运条件、装运点这些字段有值另一块在后台的装运工厂信息里定义工厂与内部客户的对应关系。这两块的关系是BP 解决「这个供应商从哪个工厂供货」后台配置解决「这个工厂按什么规则出货」。配置对象维护入口关键字段不维护的后果供应商工厂视图BP 事务码供应商角色工厂视图工厂、装运条件、装运点交货单创建时报装运工厂无法确定装运工厂信息SPRO 后勤执行装运装运点确定工厂、装运点、工厂日历装运点带不出来发货过账卡住内部客户主数据BP 事务码客户角色销售视图销售组织、客户组、交货优先级销售发票开票类型确定失败我的习惯是先建一张测试用的 STO 采购订单把供应商、工厂、装运点全部填好保存后立刻用 VL10B 在前台模拟一次能选出交货单再往下走。这一步花十分钟能省掉后面查后台日志的两个小时。2.2 按工厂分配交货类型与可用性检查过程交货类型决定交货单的行为是否允许分批、是否自动确定库存地点、拣配是不是必输、发货过账能不能一步完成。STO 场景用的是公司间交货类型文档里给的是 NLCC。这个类型要按工厂分配因为集团内往往有多个供货工厂各自的发货规则不一样共用一个类型很容易在某个工厂上翻车。可用性检查过程是这一段里最容易被忽略的参数。后台创建交货单同样要跑 ATP 检查检查过程配得太严、库存不够交货单创建直接失败而且失败信息只留在后台日志里。我的做法是给自动链路单独配一个宽松的检查过程或者在参数文件层面把批量 ATP 检查关掉。文档里那句「请勿勾选地理路线和批量 ATP 检查处于活动状态」落到操作上就是这两个选项保持不勾选原因很直接后台批处理没有前台交互地理路线判定和批量 ATP 一旦激活任何一条不满足就整批跳过表现就是参数文件跑完了一张单没建。配置项建议取值作用交货类型公司间交货类型如 NLCC控制交货单行为与过账规则可用性检查过程宽松过程或按工厂单独分配避免后台建单被 ATP 拦截拣配确认非必输后台无人值守时不会卡在拣配默认库存地点从物料主数据或工厂参数带出发货过账能自动确认库存地点这里有个顺序问题交货类型和可用性检查是按工厂分配的所以新增供货工厂时这两项要一起补只补一个会出现「单能建出来但发不了货」的半残状态。2.3 采购订单保存时自动创建内向交货单的开关前面两块是主数据这一块才是真正的后台开关。配置路径在 SPRO 的物料管理下采购订单确认那一组里找到「定义采购订单保存时自动创建内向交货单」按采购订单类型和供货工厂分配。打开之后采购订单保存的瞬间系统就会尝试生成内向交货单不需要再等批处理。文档里有一句提醒非常关键我把它当成铁律配置更改后只对新建的 STO 采购订单生效已经存在的采购订单不会补建交货单还得手工跑 VL10B。这条我踩过上线当天改完配置随手拿一张上周的采购订单来测怎么都不建交货单一度怀疑配置没保存折腾半天才发现是存量单据根本不触发。后来我的验证习惯固定成改完配置新建一张测试订单保存后立刻看交货单号有没有带出来。项目说明开关位置SPRO 物料管理采购订单确认自动创建内向交货单生效范围仅新建采购订单验证方式ME21N 新建测试单保存后查交货单存量处理手工执行 VL10B 补建这三块立住之后自动链路的第一段才算真正通了。很多项目在这里反复返工根子是把主数据问题和配置问题混在一起查效率极低。我的排查顺序固定为先看 BP 工厂视图再看装运工厂信息再看交货类型和可用性检查最后才看自动创建开关一层一层往下剥。3. 自动触发交货单与自动发货VL10CUC 参数文件与 VL23 变式的落法第一段通了之后接下来是把「建交货单」和「发货过账」这两个动作也交给后台。这一段的核心不是配置多复杂而是后台批处理没有人在旁边兜底前台那些靠人工补的字段在后台必须全部能自动带出来。参数文件配错一个勾选项或者库存地点确定规则没配好表现都是「作业跑完了什么都没发生」日志还特别安静。3.1 VL10CUC 参数文件里哪些勾选项会卡住后台VL10CUC 是后台批量创建交货单的入口真正起作用的是参数文件。参数文件里要指定采购订单类型、供货工厂、日期规则、装运点、交货类型、销售组织。日期规则决定系统按哪个日期往前推、推几天来选单配得太窄会漏单配得太宽会把不该发的单也捞进来。文档里特别标注了「请勿勾选地理路线和批量 ATP 检查处于活动状态」。我的理解是这两个选项跟后台批处理天然冲突地理路线判定需要前台的地图或路径主数据支撑批量 ATP 会在生成每张交货单时做一次全量可用性检查任何一条不满足就跳过。参数文件一跑选单清单是空的作业日志里只有一行「未找到可处理的项目」。我一般的做法是先在 SLG1 或参数文件的前台模拟里跑一次「仅显示」模式看选出来的采购订单清单对不对确认清单没问题再挂后台。参数文件建议一个供货工厂一个别想着用一个文件覆盖全集团工厂之间的日期规则和装运点差异太大混在一起后期维护成本更高。参数文件字段建议值说明采购订单类型STO 订单类型如 Z016只选调拨类订单供货工厂单个工厂一厂一文件便于排错日期规则按计划交货日期前后各留几天太窄漏单太宽重复交货类型公司间交货类型与 2.2 的分配保持一致地理路线不勾选后台无法交互判定批量 ATP 检查不勾选避免整批被可用性拦截3.2 VL23 变式与定期作业让发货过账在没人值守时也能成VL23 是交货单发货的后台事务变式里选交货单类型、销售组织、日期范围还有一个关键标志是否立即过账。不勾这个标志VL23 只做拣配勾了才做发货过账PGI。自动链路要的是后者但前提是交货单本身具备自动过账的条件。文档里那句「自动过账需要交货单中能自动确认发运的库存地点及取消手工拣配设置」是这一段的命门。后台发货过账没有人去手工填库存地点、没有人去点拣配确认所以库存地点必须能从物料主数据、工厂参数或装运点确定规则里自动带出来拣配也不能设成手工必输项。我见过一个项目交货类型里拣配是必输前台发货时大家习惯性点一下确认后台一跑全部卡在「拣配未确认」作业日志里几百条一样的错误。定期作业用 SM36 挂频率看业务量一般半小时到一小时一次。作业里务必开作业日志出问题能顺着日志查到具体是哪张交货单、卡在哪个状态。变式本身不建议频繁改改之前先复制一份旧的留底这是血泪经验改错了连回滚的参照都没有。变式参数建议值作用交货单类型公司间交货类型限定处理范围销售组织供货方销售组织与开票组织一致立即过账勾选执行 PGI 而非只拣配日期范围覆盖未清交货单避免漏单作业频率30 到 60 分钟平衡时效与系统压力3.3 交货单选不出来时用监控程序反查选择参数VL23 跑完提示「没有选择的交货单」先别急着改变式。文档给了一个很实用的自检程序WS_MONITOR_OUTB_DEL_GDSI。这是外向交货单发货过账的监控程序会把该发未发的交货单、卡在哪个状态、失败原因列出来。它的价值在于把「没选到单」和「选到了但发不了」这两类问题分开。如果监控程序里能看到交货单说明变式选择没问题问题在过账条件顺着库存地点、拣配、批次、序列号这几个方向查。如果监控程序里什么都没有说明交货单压根没建出来要回到 VL10CUC 那一段查参数文件或者回到第 2 章查自动创建开关。我一般把这条排查链固定成VL10CUC 选单 → 交货单是否生成 → WS_MONITOR 看状态 → VL23 变式 → 过账条件从上游往上下游走不跳步。4. 自动 MIGO 收货与自动 VF01 开票一步过账和公司间开票的配置差异发货过账完成链路走到采购方这一侧。收货和开票是两个完全不同的配置域收货归物料管理开票归销售与分销但它们在 STO 里必须严丝合缝地对上否则会出现「货收了、票开不出来」或者「票开了、数量对不上」的中间态。这一章把收货的凭证类型、一步过程和开票类型、复制控制、定价来源拆开讲。4.1 收货凭证类型、一步过程与交货不足限度STO 收货在采购方工厂做移动类型 101。一步过程的意思是不走 101 收货加 105 冲销的两步流程直接一步过账。自动链路里必须用一步两步的话后台要跑两次中间任何一次失败都会留下半截凭证清理起来很麻烦。交货不足限度是容许收货数量与订单数量之间的偏差百分比。发货方少发一点点自动收货不应该因为数量差异直接报错。这个参数配得太严后台收货会频繁失败配得太松财务对账时又会出现莫名奇妙的差异。我的经验值是按物料类别给一个窄区间比如百分之几既能吸收包装差异又不会掩盖真实的短装问题。参数建议取值作用收货凭证类型标准收货凭证类型决定收货过账行为移动类型101STO 收货标准移动类型一步过程启用避免两步过账留下半截凭证交货不足限度按物料类别设窄区间吸收包装差异不掩盖短装4.2 公司间开票类型、输出过程与输出类型VF01 自动开的销售发票开票类型是公司间开票类型。这个类型不是随便选一个标准发票类型就行它要能正确处理「供货方开给采购方」这种内部交易关系合作伙伴确定、税码、定价过程都要对得上。文档里说标注红色的参数都很重要特别是输出过程和输出类型这两项配错后面采购发票那张 IDOC 就收不到。输出过程决定发票保存后触发什么动作输出类型决定是打印、邮件还是生成 IDOC。自动链路里要的是 IDOC所以输出类型必须指向消息类型 INVOIC处理代码要选能生成 IDOC 的那个。我见过开票类型配好了、发票也能开但输出过程是空的发票安安静静躺在 VF03 里采购方那边什么也收不到查了半天才发现是输出确定没挂上。配置项作用配错的后果开票类型控制发票行为与合作伙伴开票失败或税码错误输出过程决定发票保存后触发什么发票开了但没有输出输出类型决定输出通道打印/IDOC生成不了 INVOIC 消息合作伙伴售达方、付款方确定发票抬头或付款条件错误4.3 复制控制与定价来源复制控制定义交货单到发票带哪些数据数量、价格、条件类型。这一块配错最常见的表现是发票数量为 0 或者价格为 0单据能开出来但金额不对财务那边直接退单。定价来源有两条路文档里写得很清楚。第一条是手工维护公司间销售价格最简单但采购和销售两边都要维护价格一变两边都得改适合物料少、价格稳定的场景。第二条是销售发票的定价类型去复制采购订单的价格要求采购订单的条件类型与销售发票的条件类型名称一致、例程一致如果采购订单用了含税价条件类型或者自定义了很复杂的定价销售发票的条件类型例程里也要做同样的处理。文档那句结论值得抄下来只要公司间销售定价过程中的定价类型和采购定价类型名称一致就可以从采购订单中复制价格为开票的价格。定价方案适用场景前提条件手工维护公司间销售价格物料少、价格稳定采购与销售两边同步维护从采购订单复制价格物料多、价格随行就市条件类型名称一致、例程一致我一般优先选第二种维护成本低但前提是把条件类型的命名对齐这一步在项目初期就要定好后期再改会牵动大量已有单据。5. 自动 MIRO 采购发票与链路排查IDOC、BRF 两套输出和五条踩坑记录销售发票开出来只是半程采购方还要根据这张发票自动做 MIRO 采购发票校验整条链路才算闭环。这一段的技术点集中在输出机制上老系统走 NAST 加 IDOCS/4 系统走 BRF 输出管理两套机制的排查入口完全不同。配错了不会报错只会安静地什么都不发生所以排查思路比配置本身更重要。5.1 常规 IDOC 输出配置WE20 与消息控制常规做法是销售发票保存后通过输出类型触发 INVOIC 消息生成 IDOC 发给采购方采购方收到后自动做发票校验。配置核心在 WE20维护合作伙伴参数合作伙伴是内部供应商或内部客户消息类型 INVOIC处理代码选能触发 inbound 过账的那个端口指向对应的 RFC 或文件端口。然后回到开票类型的输出确定里把输出类型、消息控制、处理例程挂上。IDOC 生成之后用 WE02 看状态。状态码要会读03 是数据已发送、12 是调度成功、51 是应用文档已过账停在 30 多一般是伙伴参数或端口的问题停在 50 多一般是 inbound 处理失败。inbound 失败用 BD87 重处理SM58 看 RFC 层有没有报错。我习惯把 WE02 和 BD87 并排开一个看状态一个做重处理比来回切事务码快。配置对象事务码/入口关键值作用伙伴参数WE20消息类型 INVOIC、处理代码决定 IDOC 往哪送、怎么处理端口WE21RFC 或文件端口IDOC 传输通道输出类型开票类型输出确定消息类型 INVOIC触发 IDOC 生成监控WE02 / BD87状态码查看与重处理5.2 S/4 下的 BRF 消息输出与两套机制的排查顺序S/4HANA 里输出管理换成了 BRFNAST 那套输出过程不再生效。配置要维护输出参数文件、输出类型、接收方、通道然后挂到开票类型的输出确定里。这一套的坑在于系统里可能同时存在旧配置和新配置看起来都配了实际生效的只有一套。排查顺序我一般这样走。先确认当前系统走的是 NAST 还是 BRF看版本和输出确定配置就能判断再看 BRF 日志里输出有没有生成再看 IDOC 有没有出来用 WE02最后看 inbound 有没有过账用 BD87 或 SM13。这个顺序不能反反了就会在 IDOC 层面查半天其实输出压根没触发。排查层级工具判断依据输出是否触发BRF 日志有无输出记录IDOC 是否生成WE02状态码与消息类型IDOC 是否送达WE20 / SM58端口与 RFC 状态inbound 是否过账BD87 / SM13应用文档与更新终止5.3 五条踩坑记录从现象到处理第一条采购订单保存后没自动建交货单。现象是 ME21N 保存成功但查不到交货单号。原因有两个常见版本一是改配置之前就已经存在的采购订单存量单据不触发自动创建二是 BP 里供应商的工厂视图没维护装运工厂确定不了。处理方式是新建一张测试订单验证配置是否生效存量单据手工跑 VL10B 补建同时把 BP 工厂视图补齐。第二条VL23 跑完交货单没有发货过账。现象是作业日志显示处理了多少张单但物料凭证一张没有。原因基本是库存地点不能自动确认或者拣配是手工必输项后台没人去确认。处理方式是回到交货类型和装运点确定规则把默认库存地点配出来把拣配改成非必输必要时在物料主数据的工厂视图里补默认库存地点。第三条自动收货报数量差异或交货不足。现象是 MIGO 后台过账失败日志提示数量超出容差。原因是交货不足限度配成了 0发货方少发一点点就过不去。处理方式是按物料类别维护合理的容差区间已经卡住的单据手工处理掉再观察后续批次是否还有同类问题。第四条VF01 没自动开票或者开了但价格为 0。现象是交货单发货完成发票没出来或者发票出来了金额是零。原因通常是开票类型的输出过程没配、复制控制没释放或者定价条件类型名称跟采购订单对不上。处理方式是先查复制控制里交货到发票的释放状态再查定价过程的取数顺序最后核对条件类型命名是否一致。第五条MIRO 没收到 IDOC 或收到后过账失败。现象是采购方看不到发票或者 IDOC 状态停在 51 之前。原因是 WE20 伙伴参数没配、BRF 输出没启用、发票校验的容差或税码缺失。处理方式是 WE02 看 IDOC 状态BD87 重处理SM13 看更新终止的具体报错把税码、付款条件、容差这几项补齐再重跑。这五条覆盖了链路上最常见的断点实际项目里遇到的变种多半是这几条的组合。排查时按链路顺序走不要跳段前面一段没通后面查什么都是白费。6. 进阶验证一张测试 STO 的端到端回归与单据流反查自动链路最怕的不是配错是「看起来配好了」。五段配置分散在不同模块单独测每一段都能过串起来跑就断在中间。我现在的习惯是上线前先做一张测试 STO 的端到端回归从 ME21N 建单开始逐段确认单据号交货单号、发货物料凭证、收货物料凭证、销售发票号、采购发票号五个号齐了才算通。少一个号就停在那一段查不往下走。回归时把监控事务码列成一张表按顺序看比到处翻菜单快得多。环节监控入口看什么交货单创建VL10CUC 模拟 / 交货单查询有没有生成交货单发货过账WS_MONITOR_OUTB_DEL_GDSI卡在拣配还是库存地点收货过账MB51 / 物料凭证查询101 凭证有没有销售发票VF03发票号与金额采购发票WE02 / BD87IDOC 状态与过账结果单据之间的关联关系用 VBFA 单据流表反查最快。给它一个采购订单号后续的交货单、物料凭证、发票都能顺着查出来断在哪一环一目了然。下面这段 Open SQL 我常放在测试程序里跑 输入采购订单号反查整条单据流 SELECT vbelv, posnv, vbeln, posnn, vbtyp_n, rfwrt FROM vbfa WHERE vbelv lv_po ORDER BY vbtyp_n.vbelv是前序单据号vbeln是后续单据号vbtyp_n是后续单据类别rfwrt是参考金额。跑出来如果只有交货单没有物料凭证说明发货过账没成有销售发票没有采购发票说明 IDOC 或 BRF 那一段断了。这张表比翻五个事务码直观得多。从那以后我每次上自动链路都强制先跑一遍「新建测试单 五号齐全 VBFA 反查」这套动作配置改一处就跑一次不攒着一起测。自动化的坑往往藏在段与段的衔接处单段测试永远测不出来。希望帮到你。本文还有配套的精品资源点击获取