
简介这份资源面向SAP MM模块的顾问、实施人员及企业采购业务用户聚焦非库存采购、含赠品采购订单、采购申请后台自动转PO三个高频场景提供从业务背景到后台配置、前台操作的完整梳理适合需要落地配置或查漏补缺的中级学习者。资源包为1个PDF文件约4.03MB内容按三篇独立章节组织涵盖Tcode OMSF、OMSK、OBYC、OMQW、ME21N、ME59N等关键配置与测试路径并涉及V_T163K、VBRK、VBAP等表结构说明。目前已有384人学习下载。读者可据此掌握非库存物料采购的IMG配置与采购类型指定、赠品代码与主订单关联及条件应用、采购申请自动转PO的规则设定与后台进程测试同时理解A到B再到A的采购循环、条件类型R999-400与R999-300的Inclusive/Exclusive差异及MIRO发票校验要点获得可直接参照的配置清单与排错思路。1. 非库存采购、赠品采购单、采购申请自动转 PO三件事为什么总被放在一起配很多做 SAP MM 的朋友第一次听到「非库存采购 含赠品采购单 采购申请自动转 PO」这三个词摆在一起第一反应是这不就是三个独立配置吗为什么要合起来讲我一开始也这么想直到在一个真实项目里被连着坑了三次——非库存采购的科目分配没配好收货时 FI 那边直接报错赠品采购单按正常行项目建结果发票校验金额对不上采购申请自动转 PO 的审批条件放错位置半夜跑出一堆不该转的单子。这三件事的共同点是它们都发生在采购订单创建前后都依赖采购申请和采购订单之间的字段传递而且都容易在「看起来配好了」的状态下翻车。这篇笔记面向的是已经能进 SAP 后台、看得懂 SPRO 路径、但在这三个场景上反复踩坑的 MM 顾问或关键用户。我会按「先讲清楚每个场景到底在解决什么问题再给可复现的配置和操作步骤最后集中说避坑」的顺序来写。你不需要有现成的项目环境跟着步骤在沙箱或测试客户端里就能跑通。涉及到的热搜词像 sap mm、sap采购订单含税价格、sap me11增强、sap md04怎么看我会在对应章节里自然带出来不单独列清单。2. 非库存采购科目分配到底怎么配才不翻车非库存采购Non-Stock Procurement在 SAP 里对应的是「不进入物料库存、直接费用化或资产化」的采购行为。它和库存采购最大的区别在于收货时不产生物料凭证的库存数量更新而是直接产生 FI 凭证把金额记到指定的科目上。这个「指定科目」就是科目分配类别Account Assignment Category在起作用。常见的科目分配类别有 K成本中心、F订单、A资产、P项目等。很多新手以为只要在采购申请或采购订单里填上科目分配类别就完事了实际上后台的科目确定、账户修改、字段选择才是决定能不能过账的关键。2.1 科目分配类别的后台配置链路先看一条完整的配置链路。以最常用的 K成本中心为例你需要确认这几个点配置点SPRO 路径关键作用科目分配类别物料管理 → 采购 → 科目分配 → 维护科目分配类别定义 K 是否允许、是否必输成本中心账户修改物料管理 → 采购 → 科目分配 → 维护账户分配类别控制字段显示和必输科目确定物料管理 → 评估和科目设置 → 科目确定 → 无向导的科目确定 → 配置自动记账决定收货时借哪个费用科目字段选择物料管理 → 采购 → 科目分配 → 定义科目分配类别的字段选择控制哪些字段可编辑我一般会先跑一个最小验证用 ME21N 建一张 K 类别的非库存采购订单行项目里填成本中心保存后用 MIGO 做收货看能不能生成 FI 凭证。如果报错「科目确定失败」八成是自动记账里的评估类没配好。非库存采购的评估类通常用 3000 或类似的自定义评估类要和费用科目绑定。2.2 用 ME21N 建一张非库存采购订单并收货下面是一个可复现的操作序列。假设你已经有了一个成本中心和一个费用科目。 第一步ME21N 创建非库存采购订单 在行项目中设置 科目分配类别 K 物料 留空或填一个非库存物料 数量 10 净价 100 成本中心 你的成本中心 保存后记下采购订单号 第二步MIGO 收货 选择「采购订单」→ 输入采购订单号 → 执行 检查「项目确定」页签确认移动类型是 101 过账后系统生成物料凭证和 FI 凭证 第三步用 MB51 或 ME23N 查看凭证流 ME23N 里点「采购订单历史」应该能看到收货和发票校验的状态逻辑说明非库存采购的收货移动类型仍然是 101但因为科目分配类别是 K系统不会更新库存数量而是直接根据自动记账配置生成 FI 凭证。参数上最关键的是「评估类」和「科目修改」的组合它们决定了借方的费用科目。如果你在 MIGO 里看到「科目确定错误」先去 OBYC 里检查 K 类别的科目修改通常是 VBR有没有配到正确的费用科目。提示非库存采购的收货如果涉及 sap采购订单含税价格注意价格条件里的税码要和 FI 的税务科目匹配否则发票校验时会出现税额差异。2.3 非库存采购和库存采购的边界在哪很多人会问什么时候用非库存采购什么时候用库存采购我的判断标准很简单如果这个东西买回来要入库、要管理数量、要参与 MRP就走库存采购如果买回来直接消耗掉、只关心费用归属就走非库存采购。但有一种中间情况买的是库存物料但这次采购是费用化的这时候可以用「库存物料 科目分配类别」的组合收货时仍然更新库存但 FI 那边记费用。这种用法在项目上很常见但配置上要额外注意评估类和科目修改的对应关系不然会出现库存和费用两边都对不上的情况。3. 含赠品采购单免费的东西怎么在 PO 里体现赠品采购单是另一个高频翻车点。业务场景是供应商卖给你 100 个物料额外送 10 个这 10 个不收费但需要入库或记录。在 SAP 里赠品通常用「免费行项目」或者「100% 折扣」来处理。两种方式各有适用场景选错了后面发票校验和库存都会出问题。3.1 免费行项目和折扣行的区别免费行项目Free Item是在采购订单里加一行价格条件里把净价设成 0但数量正常填。收货时这行也会产生物料凭证库存增加但 FI 那边因为金额是 0不会产生费用凭证。折扣行则是正常价格行加一个折扣条件最终净价可能也是 0但价格条件的结构不一样。方式适用场景收货影响发票校验影响免费行项目赠品独立管理需要单独看数量库存增加FI 无金额不参与发票校验100% 折扣赠品和主物料绑定不单独管理库存增加FI 无金额参与发票校验但金额为 0我一般推荐用免费行项目因为它在采购订单历史里更清晰后续对账也方便。但要注意免费行项目的物料主数据要允许非估价收货否则 MIGO 会报错。3.2 配置免费行项目的完整步骤 第一步确认物料主数据允许免费收货 MM03 查看物料 → 采购视图 → 确认「非估价收货」相关字段 如果物料是估价物料免费行项目收货时可能报错 第二步ME21N 创建采购订单 正常行物料 A数量 100净价 10 免费行物料 A数量 10净价 0 行项目类别用标准或自定义的免费行项目类别 在「发票」页签确认「基于收货的发票校验」设置 第三步MIGO 收货 两张行项目都会产生物料凭证 正常行产生 FI 凭证借库存/费用贷 GR/IR 免费行不产生 FI 凭证只更新库存 第四步MIRO 发票校验 只对正常行做发票校验免费行不参与 如果免费行错误地参与了发票校验检查行项目类别的「发票」设置逻辑说明免费行项目的核心是「有数量、无金额」。收货时物料凭证正常生成但因为净价是 0FI 凭证的金额也是 0系统可能不生成 FI 凭证或者生成一张金额为 0 的凭证。参数上最关键的是行项目类别的「发票相关」标识如果这个标识没关掉MIRO 会把免费行也拉进来导致发票金额和采购订单金额对不上。注意如果赠品需要参与 sap md04 的 MRP 运算免费行项目的物料要单独设置 MRP 类型否则需求不会被计算。3.3 赠品采购单在发票校验时的常见报错最常见的报错是「发票金额与采购订单金额差异超过容差」。原因通常是免费行项目被错误地计入了发票校验的参考金额。解决方法是检查行项目类别的配置在 SPRO 的「采购 → 采购订单 → 定义行项目类别」里找到你用的免费行项目类别确认「发票」页签下的「与发票相关」没有勾选。另一个报错是「物料不允许非估价收货」这时候要去物料主数据的采购视图里把「非估价收货」标识打开或者改用 100% 折扣的方式。4. 采购申请自动转 PO条件放错位置半夜跑出一堆单采购申请自动转 PO 是三个场景里最容易「看起来简单、实际复杂」的一个。核心逻辑是当采购申请满足一定条件时系统自动把它转换成采购订单。这个「条件」可以基于审批状态、基于采购申请类型、基于物料组也可以基于自定义的审批工作流。配置的位置在 SPRO 的「物料管理 → 采购 → 采购申请 → 审批 → 发布审批」或者「自动采购订单」相关节点。4.1 自动转 PO 的三种触发方式触发方式配置位置适用场景风险点审批后自动转发布审批配置审批通过即转 PO审批条件不严会转出无效单后台作业批量转ME59N定时批量处理时间窗口设置不当会重复转增强触发用户出口/ BAdI复杂业务逻辑增强写错会漏转或错转我一般会先用 ME59N 做批量转因为它是标准功能可控性强。ME59N 允许你按采购申请号、采购组、物料组等条件筛选然后一次性转换成采购订单。关键是「转换前检查」这一步不能省否则会把还没审批完的申请也转掉。4.2 用 ME59N 做批量转换的完整操作 第一步ME59N 输入筛选条件 采购申请号范围留空表示全部 采购组填你的采购组 物料组按需填写 勾选「仅已审批的采购申请」 第二步执行转换 系统列出符合条件的采购申请 检查每一行的「状态」和「审批状态」 确认无误后点「保存」 第三步查看转换结果 系统生成采购订单号可以在 ME23N 里查看 如果转换失败用 ME59N 的日志功能查看原因 第四步验证采购申请状态 ME53N 查看原采购申请确认「处理状态」变成「已转采购订单」逻辑说明ME59N 的核心参数是「仅已审批的采购申请」这个勾选项。如果不勾系统会把所有未审批的申请也转掉这就是半夜跑出一堆无效单的根源。另一个关键参数是「转换日期」它决定了系统用哪个日期作为采购订单的凭证日期。我一般会把它设成当前日期避免日期倒挂。4.3 自动转 PO 的审批条件怎么配才安全审批条件的配置在 SPRO 的「物料管理 → 采购 → 采购申请 → 审批 → 发布审批 → 定义发布代码」里。你需要定义一个发布策略指定哪些采购申请类型、哪些金额范围需要审批以及审批通过后是否自动转 PO。这里最容易翻车的是「金额范围」的边界如果金额范围设置成 0 到 999999那所有申请都要审批如果设置成 1000 到 999999那 1000 以下的申请就不需要审批直接可以转 PO。很多项目上为了省事把金额范围设得很大结果所有申请都卡在审批环节自动转 PO 反而变成了手动转。提示如果用了 sap me11 增强来创建采购申请注意增强里的字段传递会不会影响审批条件的判断特别是金额字段和采购组字段。5. 避坑与排查这三个场景最容易翻车的五个地方5.1 非库存采购收货报「科目确定失败」现象MIGO 收货时系统提示「科目确定失败请检查自动记账配置」。 原因OBYC 里对应的评估类和科目修改没有配到正确的费用科目或者科目被冻结。 解决用 OBYC 检查 K 类别对应的科目修改通常是 VBR确认费用科目存在且未冻结。如果用的是自定义评估类确认评估类已经分配给物料或采购订单。5.2 赠品行项目被错误计入发票校验现象MIRO 做发票校验时系统把免费行项目的金额也算进去了导致发票金额和采购订单金额不一致。 原因免费行项目对应的行项目类别里「与发票相关」标识被勾选了。 解决SPRO → 物料管理 → 采购 → 采购订单 → 定义行项目类别找到免费行项目类别取消「与发票相关」勾选。如果已经产生了错误的发票用 MR8M 冲销后重新校验。5.3 ME59N 转换后采购申请状态没更新现象ME59N 执行成功生成了采购订单但原采购申请的状态还是「未处理」。 原因采购申请的「处理状态」字段没有随转换更新通常是审批配置里的「状态转移」没配好。 解决检查 SPRO → 物料管理 → 采购 → 采购申请 → 审批 → 发布审批 → 定义发布代码里的状态转移设置确认「转采购订单」后状态会变成「已处理」。如果配置没问题用 ME53N 手动更新状态或者用程序 RM06BXXX 批量修复。5.4 自动转 PO 后采购订单价格和采购申请不一致现象采购申请里填的价格是 100自动转成采购订单后价格变成了 0 或者别的值。 原因采购申请里的价格条件没有正确传递到采购订单通常是信息记录或者价格条件的优先级问题。 解决检查采购申请里的价格条件类型确认它和采购订单里的价格条件类型一致。如果用了信息记录确认信息记录的价格没有覆盖采购申请里的价格。必要时在采购订单里手动调整价格。5.5 非库存采购的收货凭证在 sap md04 里看不到现象非库存采购收货后MD04 里看不到任何需求或库存变化。 原因非库存采购本来就不更新库存MD04 只显示库存和需求不显示费用化采购。 解决这是正常现象不需要修复。如果业务上需要在 MD04 里看到相关需求考虑改用库存采购或者用预留单来管理。6. 进阶用 BAdI 把三个场景串成一条自动化链路如果你已经把前面三个场景都跑通了下一步可以考虑用 BAdI 把它们串起来。我自己的习惯是在采购申请创建时ME51N 或 ME21N 的 BAdI判断采购类型如果是非库存采购自动带出科目分配类别如果是赠品自动加免费行项目如果满足审批条件自动触发转 PO。这样业务人员只需要建一张采购申请后面的动作全部自动完成。具体来说常用的 BAdI 有BAdI 名称用途触发时机ME_PROCESS_REQ_CUST采购申请增强创建/修改采购申请时ME_PROCESS_PO_CUST采购订单增强创建/修改采购订单时MB_MIGO_BADI收货增强MIGO 过账时MRM_HEADER_CHECK发票校验增强MIRO 校验时我一般会在 ME_PROCESS_REQ_CUST 里做三件事第一根据采购申请类型判断是否非库存采购如果是就强制科目分配类别为 K第二根据物料组判断是否赠品如果是就在行项目里加一个免费行第三检查金额和审批条件如果满足就设置一个自定义字段后续用 ME59N 的变式来筛选。这样整个链路就串起来了。验证方法也很直接建一张采购申请保存后看系统有没有自动带出科目分配类别和免费行然后用 ME59N 跑一遍看能不能自动转成采购订单最后用 ME23N 和 ME53N 检查两边的字段是否一致。如果哪一步没生效用 SLG1 看应用日志或者用 /h 调试 BAdI 的实现类。注意BAdI 增强写完后一定要在测试客户端里跑一遍完整流程不要直接上生产。我见过太多因为增强里一个字段没清空导致采购订单价格错误的案例血泪经验。最后说一个我自己的习惯每次配完这三个场景我都会用 ME21N、MIGO、MIRO、ME59N 这四个事务码走一遍端到端流程把每一步的凭证号和状态记在一个 Excel 里。这样后面出问题的时候能快速定位是哪个环节的配置漏了。希望帮到你。本文还有配套的精品资源点击获取