资讯动态

SAP STO自动化配置:从自动交货单到公司间发票的零手工流程

发布时间:2026/10/26 21:42:20 来源:尧图企业网站定制
简介SAP 后勤模块顾问经常面临 STO 跨公司转储场景中手工操作多、易遗漏的问题。这份配置文档围绕采购订单下达后的自动化链路展开依次讲解自动创建交货单、VL02N 发货过账、MIGO 收货、VF01 销售开票及 MIRO 采购发票的完整配置方法并补充 BRF 消息输出等 S/4 专用设置。全篇以配置路径和事务码为主线配有大量操作截图同时给出易错点提示例如自动发货前需确认库存地点并取消手工拣配以及运行 WS_MONITOR_OUTB_DEL_GDSI 检查选择参数是否正确。文档为单一 doc 文件整体 17.76MB正文约六十页结构按业务场景逐步拆解从企业间客户与供应商绑定、交货类型与可用性检查、内向交货单自动创建到开票复制控制和 IDOC 参数设置均有覆盖便于按目录定位查阅。已有 1299 人学习下载适合 SAP 项目顾问和实施人员在配置阶段直接参考。1. STO 自动触发交货单一套配置让公司间转储从下单到发票全自动SAP 里做 STOStock Transport Order库存转储订单最烦的不是建订单而是订单之后那一串动作交货单要手动 VL10B 生成、发运要手动 VL02N 过账、收货要手动 MIGO、开票还得 VF01 和 MIRO 各来一遍。这套「STO 自动触发交货单、发货、收货、销售/采购发票」配置文档就是把这几步全部按事件驱动串起来——采购订单保存的瞬间系统自动创建交货单交货单过账后自动触发收货和公司间发票。它解决的是多工厂、跨公司转储场景下的重复手工操作问题适合正在做 S/4 或 ECC 公司间业务、被 VL10B/VL02N/MIGO 轮番轰炸的 SD、MM 顾问和后勤运维。配置路径、截图、参数文件都在这份 60 页的文档里照着做能从下单到发票零手工干预。2. 自动交货单的触发链路装运工厂绑定、BP 设置与 VL10CUC 参数要理解这套自动触发机制先得把 STO 的业务模型拆清楚。文档里描述的场景是1600 公司下的 1600 工厂向 1310 公司下的 1310 工厂采购而 1310 工厂在 1600 公司眼里是「内部供应商」1600 工厂在 1310 公司眼里是「内部客户」。这个双向身份关系是整个自动化配置的地基。很多项目翻车不是后面的交货类型没配好而是这个双边绑定一开始就漏了。2.1 先搞清主数据内部供应商、内部客户、装运工厂三张表采购订单一下系统要自动判断「谁来发货」和「发给谁」靠的不是订单抬头里的文本而是三个后台设置装运工厂信息、供应商绑定、客户绑定。文档第 3-7 页给的配置路径非常明确定义装运工厂信息把工厂与客户绑定再在 BP业务伙伴里维护 1310 这个供应商把供应商与工厂绑定。这句话翻译成实施动作就是两件事。第一件事在后台找「定义装运工厂信息」把 1310 工厂维护成装运工厂同时指定它对应的内部客户是 1600。这样 1310 工厂做销售交货时系统才知道收货方是谁。第二件事在 BP 事务代码里打开 1310 供应商主数据把采购组织 1310 的数据补全并将其绑定到 1600 工厂的采购视图下。实际操作中我一般会优先检查 BP 的「客户/供应商」角色是否同时存在因为 STO 里同一个工厂代码在两边公司下扮演的角色不同——在 1310 下它是供应商在 1600 下它是客户。很多配置看起来都做了但角色漏了自动交货单就是出不来。2.2 按工厂配置交货类型和可用性检查过程主数据绑定只是基础接下来是关键的后台配置按工厂配置交货类型和可用性检查过程。这里的逻辑是——不同工厂可能用不同的交货类型比如普通 STO 用 NLCC退货用 NLCR而交货类型又决定了可用性检查ATP怎么做。文档里给出的配置路径在第 8 页核心是把交货类型和工厂维度绑定并指定可用性检查规则。注意一点配置更改后只会对新建的 STO 采购订单产生影响已经存在的采购订单不会自动创建必须手工执行 VL10B。这是文档开头就标注的注意点也是最容易踩的坑——改完配置拿旧订单测试发现问题「没生效」其实是订单创建时间早于配置激活时间。可用性检查过程这里建议按「公司间转储」的需求单独建一个过程不要直接复制标准交货的检查规则。因为公司间转储不涉及外部客户的需求冲减检查范围、检查规则都要按内部转储来定否则容易出现明明有库存却不允许交货的假性缺货。2.3 VL10CUC 参数文件与 STOA 的设置细节自动创建交货单的执行动作在事务码 VL10CUC。这个事务码的特点是它不像 VL10B 那样每次手工跑选择屏幕而是可以挂一个后台参数文件按需调度。「CUC」的含义就是 Customer/Supplier 的库存转储单创建它专门为 STO 场景准备的。文档第 10 页特别提醒对 STOA 参数文件设置时请勿勾选「地理路线」和「批量 ATP 检查处于活动状态」这两个选项。这是个非常具体的避坑点。地理路线勾选后系统会尝试按运输路线确定发货工厂但公司间转储的场景里路线往往没维护反而导致交货单创建被卡住批量 ATP 检查勾选后创建交货单时要做批量可用性检查数据量大时性能会明显恶化而且 STO 场景下收货工厂的库存本来就不该参与冲减逻辑。我这里补一下常规做法参数文件的「处理类型」一般选「后台」这样才能挂到 Job 里定时跑「创建交货单」的选择标准里一定要把采购凭证类型比如 Z016和工厂1310写进去防止误创建其他采购订单的交货单。如果运行后提示没有选择的交货单可以直接运行程序 WS_MONITOR_OUTB_DEL_GDSI 检查选择参数是否有误——这是文档给出的排查路径实际中这个程序非常有用它能直接看到系统按当前选择参数到底会不会挑出交货单。2.4 设置完成后的验证顺序配置做完验证顺序要按「创建订单 → 查 VL10CUC 日志 → 查交货单 → 查可用性检查」来走。验证步骤事务码/程序预期结果创建 STO 采购订单ME21N保存成功无报错后台调度 VL10CUCSM36 / VL10CUC 参数文件日志显示交货单已创建查看外向交货单VL03N交货单存在行项目齐全检查可用性检查结果VL03N → 可用性概览无假性缺货这里有个血泪经验不要一上来就用 ME21N 建订单然后等后台 Job。第一次验证时前台上手跑一次 VL10CUC选择参数、执行、看日志确认没问题再挂 Job。否则 Job 跑错了日志又不直观排查时间翻倍。3. 发货与收货自动化VL23 变式调度与 MIGO 自动收货配置交货单自动创建只是第一步。如果交货单创建完还得人工 VL02N 过账那自动化只做了一半。文档第 12 页开始讲的就是这个环节用 VL23 创建及修改变式按需定期执行实现自动发货过账发货过账后再让 1600 工厂自动 MIGO 收货。3.1 自动发货过账的前提自动确认发运的库存地点与取消手工拣配文档里有一句非常关键的备注自动过账需要交货单中能自动确认发运的库存地点并取消手工拣配设置。这句话信息量很大。「自动确认发运的库存地点」意味着交货单里的行项目必须能在后台自动确定发货库存地点的库存。如果 1310 工厂发运库存地没有维护在后台的库存地点确定规则里VL23 跑到最后会卡在「无库存地点确定」这一步过账失败。「取消手工拣配设置」更重要。如果交货单行项目还挂着拣配需求Pick/Pack 环节没有设为自动VL23 过账时会提示拣配未完成直接中断。对于 STO 这种不涉及实际拣货的自动化场景我一般会在交货类型的「拣配/包装」控制里直接跳过拣配步骤或者把拣配类型设为空。这一步漏了VL23 的 Job 看起来在跑第二天一看日志全是错误。3.2 VL23 创建变式与后台调度执行 T-codeVL23创建及修改变式。这里说的变式Variant就是选择屏幕参数的快照。需要设置的参数包括销售组织为 1310、交货单类型为 NLCC、以及你要过账的交货单范围。VL23 变式参数推荐值说明销售组织1310必须是发货工厂所属的销售组织交货类型NLCC与第 2 章配置的交货类型一致交货单范围按需建议按日期防止历史交货单被重复过账过账日期当天批量过账时统一记账日期变式保存后用 SM36 建后台 Job把 VL23 挂在里面定时跑。调度频率一般按业务节奏来如果每天有多批采购订单生成建议每小时跑一次如果业务集中在下班后处理那就晚上跑一次。跑完之后一定去看 Job 的 Joblog确认过账数和失败数。这里还有一个细节VL23 不是「一次跑完就不管了」它会反复处理所有符合条件的交货单。如果一张交货单过账失败下次 Job 还会再尝试处理它所以失败原因必须及时排掉否则这张单会被反复「翻车」并刷屏日志。3.3 发货后自动 MIGO 收货凭证类型、一步过程、交货不足限度文档第 15 页的配置路径是分配凭证类型、一步过程、交货不足限度。这一节很短但三个词每个都是坑。「分配凭证类型」指的是收货的凭证类型Movement Type 对应的凭证类型。STO 收货一般用 101 移动类型对应的凭证类型要匹配公司间转储的业务——不能把普通的收货凭证类型直接套在这里否则后续的自动发票会找不到对应的收货记录。「一步过程」指的是收货采用一步法GR 一步过账不拆分到不同的库存状态。对 STO 来说一步过程最直接——收货即入库可用库存直接增加。如果用两步法收货后还有质检库存等状态转换自动发票的凭证流会断掉。「交货不足限度」是个容易被忽略的容差设置。交货单过账数量如果小于采购订单数量系统允许的差异范围是多少。自动 MIGO 收货时如果数量差异超过这个限度收货会被系统拦下。常见做法是设一个宽松的容差如 10% 或按金额避免因为凑整差异导致收货中断。但注意采购订单里如果勾选了「完全交货」指示收货会在最后一次交货时校验总量是否等于订单量代收容差管不了这个。4. 公司间发票自动化VF01 复制控制、定价来源与 MIRO交货单过账、收货完成接下来是财务最关心的环节发票。STO 的业务里有两张发票——1310 工厂开给 1600 工厂的销售发票VF01以及 1600 工厂收到的采购发票MIRO。文档第 16 页开始讲的就是这两张发票的自动触发。4.1 公司间开票类型定义输出过程和输出类型是重灾区文档原文强调定义公司间开票类型时标注红色的参数都很重要特别是输出过程和输出类型。这句话里的「输出过程」和「输出类型」直接决定了 VF01 之后系统怎么把发票送给对方——是用 IDOC 发给采购方公司还是只生成一张本地票据。配置路径上公司间开票有专门的开票类型如 IV 开头的公司间发票。这里要特别注意开票类型的「输出确定」——必须配置对应的输出类型如 RD00、RD01 之类否则 VF01 生成发票后系统不会触发后续的 IDOCMIRO 那边就永远收不到采购发票。实际配置时我一般会先确认输出类型是「按公司间」的输出过程的条件记录要覆盖「销售组织 1310 开票类型 收货方 1600」。条件记录没建输出确定就是黑匣子看起来配了实际一张发票都没有输出。4.2 维护开票凭证的复制控制开票凭证复制控制解决的是「发票从哪来」的问题——VF01 开票时要复制交货单的数据复制控制决定了哪些数据能复制过去、条件类型怎么映射。文档第 18 页的配置就在这里。复制控制维度配置要点来源凭证类型交货单 NLCC目标凭证类型公司间开票类型数据复制规则复制数量、单位、批次、定价定价过程决定条件类型来源复制控制配不好最常见的症状是发票数量对但金额是零或者条件类型完全空白。这是因为复制控制里的定价过程没有把交货单的条件类型传递过来。4.3 补充开票的价格来源两选一文档第 20 页的「补充」部分讲的是公司间开票的价格来源这是项目里最容易引发争论的地方。两种方式第一种手工维护公司间的销售价格。这在 SD 价格维护里做最简单但问题也很明显——销售方和采购方两边都要维护价格价格不一致就产生差异。第二种销售发票的定价类型直接复制采购订单的价格。复制来源于采购订单的价格需注意的是复制采购订单的条件类型与销售发票的条件类型需要一致。如果采购订单使用了含税价条件类型或者自定义了很复杂的定价则销售发票的条件类型的例程中也需要进行相同的定价条件或例程。这句话是文档里给出的最实在的提示。很多项目翻车是因为采购订单用的是 ZXXX 自定义条件类型比如含税价而销售发票的定价过程里没有这个条件类型或者例程编号不一致。复制控制里定义了「从采购订单复制价格」但两边条件类型对不上最终发票金额就是乱的。文档里还放了一个额外的判断依据只要公司间销售定价过程中的定价类型和采购定价类型名称一致就可以从采购订单中复制价格为开票的价格。这个原则我在项目实施时用过多次省了很多扯皮。建议在配置前先拉一张采购定价过程与销售定价过程的对照表把每个条件类型的名称、例程、计算顺序统一再去做复制控制。4.4 自动 MIRO 采购发票文档第 28 页之前一直在讲销售端自动开票采购端的 MIRO 自动发票核心其实不是 MIRO 本身的配置而是 IDOC 的常规配置——公司间的销售发票开出后系统通过 IDOC 把发票信息传给采购方公司采购方收到 IDOC 后自动创建采购发票。所以这一步的配置重心放在IDOC 端口、伙伴档案、消息类型和流程代码。文档里明确提到「常规 IDOC 配置」和「BRF 消息输出设置S/4 系统专用」两个部分前者是 ECC 和 S/4 通用后者是 S/4 的新输出控制。IDOC 配置项说明端口定义 SAP 系统之间的 RFC 目标伙伴档案定义 1600 公司作为接收方、1310 公司作为发送方消息类型如 INVOIC 等适用于公司间发票的类型流程代码定义 IDOC 的发送/接收处理逻辑IDOC 配置完成后MIRO 侧的自动过账不是 MR 配置问题而是 IDOC 处理逻辑问题——收到 IDOC 后调用哪个 BAPI 或 Function Module 过账。如果对接的是对方公司自开发的逻辑还要确认这段增强在 S/4 里是否激活。这也是很多项目在 S/4 迁移后发现 MIRO 不自动的原因ECC 里的自制增强没做 S/4 兼容性测试。5. 常见问题与排错自动配置估计不生效先查这五处STO 自动化排错难的不是某一个配置项有多深而是链路太长出错点太多。以下五类问题是我在实施和运维中反复遇到的按「现象 → 原因 → 解决」写清楚可以直接当排查手册用。5.1 改完配置旧采购订单不自动创建交货单现象ME21N 里把配置改了回到已经存在的 STO 采购订单上测试VL10CUC 跑完提示「没有符合条件的凭证」交货单没建出来。原因文档开头就说了配置更改后只对新建的 STO 采购订单产生影响已创建的采购订单不会再自动创建。解决用新订单测试不要在旧订单上反复折腾。历史订单需要自动创建的话手工跑 VL10B或者在参数文件里勾选「包括已存在订单」并重新调度。5.2 VL23 自动过账 Job 一直报「库存地点无法自动确定」现象VL23 后台 Job 每跑必报错看日志是行项目「无法确定库存地点」交货单过不了账。原因发货工厂的行项目缺少库存地点自动确定规则系统不知道从哪个库存地点发货。解决回顾一下第 3.1 节的内容——在后台「库存地点确定」里配置发货工厂对应的库存地点或者直接在交货单行项目上手工补库存地点后重新过账。但补单不是长久之计根因还是库存地点确定规则没配。5.3 VF01 发票金额为零交货单数量正常现象自动生成的销售发票数量正确但金额显示 0.00财务拒绝这张票。原因开票凭证复制控制里定价过程没有从交货单复制有效的条件类型或者定价类型名称与采购订单的条件类型不一致。解决对照第 4.3 节的价格来源说明检查公司间销售发票的定价过程是否包含采购订单里的所有条件类型尤其是含税价或自定义条件类型名称与例程必须一致。5.4 销售发票已开出但 MIRO 一直收不到采购发票现象VF01 成功开票凭证已过账但 1600 公司的 MIRO 里没有任何待处理的采购发票。原因销售发票生成后输出确定没有触发 IDOC或者 IDOC 发出后接收端的伙伴档案/流程代码配置不对。解决先在 VF03 里看发票的输出记录确认输出类型是否写出来了再到 WE02/WE05 里查 IDOC 状态——如果 IDOC 是 03 错误状态就看错误文本多半是伙伴档案里流程代码没配或端口不对。这条链路很长IDOC 日志是最直接的破案线索。5.5 BRF 输出配置与 IDOC 输出控制重复导致发票重复发送现象S/4 系统里同时配置了传统 IDOC 输出和 BRF 输出销售发票开出后采购方收到两张重复的采购发票。原因BRF 是 S/4 的输出控制方式但如果传统 IDOC 的配置没有停用两边同时触发输出。解决决定用哪一套。S/4 建议走 BRF 输出同时把传统输出类型的「处理程序」停用或者将条件记录设为无效。切忌两套共存除非你有明确的并行测试计划。6. 用 IDOC 监控与 BRF 输出把整条自动化链路验收起来配置全部做完不代表自动化就交付了。真正能验收的标准是一条采购订单从创建到 MIRO 过账全程无人干预、状态全绿、财务数据一致。要达到这个目标最后一步往往不是再调配置而是把监控和输出控制串起来。S/4 系统里BRF 消息输出设置是公司间发票自动化的新控制中心。DDIC 里配置 BRF 的目的是替代传统 Condition Technique 的输出确定更灵活地控制何时发送、发什么内容、走什么通道。对于公司间发票BRF 的决定是「要不要输出 IDOC」而不再是简单条件记录。所以 S/4 项目里必须单独走一遍配置路径否则即使所有后台配置都对输出也可能静默失败。另外我习惯在每个项目里保留一份「IDOC 状态码速查表」遇到发票传输问题可以直接照表排查IDOC 状态 30已发出代表发送成功状态 64已传递给应用代表接收端处理成功如果停在 03错误或 12调度失败去 SM37 看后台作业日志八成是接收端程序崩了或数据不完整。这个习惯帮我在好几个项目里半小时定位问题而不用翻一堆杂乱的开发日志。有一次生产环境反馈 MIRO 收不到发票我按链路一段一段查VF03 确认发票已开WE02 查到 IDOC 状态是 03点开错误文本发现接收端找不到采购订单原因是采购订单号跨公司传输时被系统截断了。后来我把伙伴档案里的「消息类型增强」字段里的客户化版本号补上重新触发输出IDOC 状态变成 64MIRO 那边自动生成了采购发票。从那以后我每次做 STO 自动化验收都强制走一遍「订单 → 交货单 → 发货过账 → 收货 → 销售发票 → IDOC → 采购发票」的全链路日志检查哪个环节的状态码不是预期值就当场定位绝不留到上线后再补。这套方法不一定能帮你完全避免踩坑但至少能把踩坑的时间从一天缩短到半小时。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑