ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

SAP MM采购申请转采购订单:货源分配与ME57实战详解

SAP MM采购申请转采购订单:货源分配与ME57实战详解 干采购模块的朋友应该都有过这种经历MRP安安稳稳跑完生产计划一看货没买回来追着问为什么。打开MD04检查采购申请PR就摆在那状态正常但一直没有转成采购订单PO。再点进去一看供应商是空的货源分配不出来。SAP-MM里PR分配货源并转PO看起来就是几个按钮的事情实际操作起来涉及货源主数据、后台策略、审批逻辑和一堆事务码哪一环没弄好流程就卡在半路。这篇文章就按实际动手的顺序来聊PR是从哪来的货源在系统里到底有哪几种ME57怎么用ME58/ME59N批量怎么转后台该配的地方在哪里以及我踩过的一些坑。适合刚接手MM模块的顾问、负责采购运维的关键用户也适合准备把采购流程彻底理清楚的业务方。1. 把业务逻辑理顺PR、货源、PO 三者到底是什么关系1.1 PR 从哪里来别只知道去 ME51N 手工建PR 的全称是 Purchase Requisition中文叫采购申请。它只是“需求请求”不构成对供应商的采购承诺。真正形成承诺的是 PO——采购订单。简单说PR 是请购PO 是订购中间夹着的关键动作就是分配货源。系统里 PR 的产生来源我一般分成三类。第一类MRP 跑出来的。物料需求计划跑完外购物料的净需求会生成计划订单计划订单再转成 PR也有一部分场景比如设置了“直接采购”策略MRP 会直接生成 PR。要看整条链路最方便的是去 MD04 看库存/需求清单从上往下能看到计划订单、PR、PO 这三级凭证是怎么串起来的。双击 PR 行还能直接跳到 PR 明细看看货源状态。很多用户只会用 ME5A实际上排查“货为什么没买回来”MD04 往往比 ME5A 更直观。第二类手工创建。事务码 ME51N 建 PRME52N 改 PRME53N 查看 PR。手工建 PR 的常见场景包括零散采购、非 MRP 管理的低值物料、急件、项目采购、资产采购等。手工建 PR 时最容易出问题的就是账户分配没填全比如成本中心、GL 科目漏了后面转成 PO 时财务过账就麻烦。第三类外部系统或接口创建。比如 OA 审批系统推送过来的请购单、其他系统同步过来的备件需求往往通过 BAPI 或 IDoc 写入 SAP。这类 PR 最常见的毛病是主数据不一致供应商传过来一串字符SAP 里根本不存在或者物料号在工厂下没有扩展最后分配货源时直接卡壳。三类 PR 有一个共同点它们都只是“需求”在具备货源信息供应商、价格、交期之前都不能直接变成 PO。所以从业务角度讲分配货源是 PR 转 PO 这个流程里最核心、也最容易出问题的环节。1.2 货源在 SAP 里不是一张表是四张牌分配货源前要先把系统里“货源”这个概念理清楚。SAP 里能充当货源的其实有四类主数据它们各自的职责不太一样。货源类型维护事务码典型作用一句话理解采购信息记录 Info RecordME11 / ME12 / ME13记录某供应商供应某物料或物料组的价格、交期、批量规则供应商的“报价单”框架协议合同/计划协议ME31K / ME31L长期采购总量约定转 PO 时从协议带出价格条件双方的“长期合同”配额安排 Quota ArrangementMEQ1 / MEQ2 / MEQ3按比例把采购量分给不同供应商几家供应商的“分单规则”货源清单 Source ListME01 / ME03 / ME05限定某物料在某工厂下只能用哪些货源采购目录的“白名单”这四类数据在系统分配货源时是配合使用的。标准逻辑大致是如果物料启用了配额优先按配额比例分配配额没有结果就去货源清单里找货源清单也没有再找信息记录或框架协议。需要特别提醒的是货源清单上的“固定”标志一旦勾上系统会优先遵守这个固定供应商配额也不会覆盖它。所以实际项目中我不建议用户同时把一个物料既维护固定货源清单又维护配额安排很容易把自己绕晕。从项目实践看如果业务只要求“别让我手工输供应商”维护好信息记录就够了如果是战略采购、多供应商轮换报价才需要配额货源清单大多用在集团控盘的场景比如规定某物料只能向认证过的几家供应商买。至于框架协议更多是采购集中谈价、批量折扣时用。1.3 转 PO 的四条路选错路会多干半小时从 PR 到 PO标准系统里至少有四条路可以走不同场景选不同路。第一条ME21N 手工参照 PR。在 ME21N 里点“采购申请”图标输入 PR 号把行项目带过来手工确认供应商、价格、交期保存生成 PO。适合偶尔转一两个、不追求效率的场景。第二条ME57 分配货源并转 PO。这是本文的主角。ME57 既能看货源、分配货源又能在同一屏幕直接生成 PO控制力最强建议日常主用。后面我会用一整节专门拆解。第三条ME58 已分配货源转 PO。PR 已经带出了供应商不需要再分配货源直接批量生成 PO。适合货源已经固定、只是还没生成 PO 的场景比如接口批量建了一批 PR货源都带好了用 ME58 快速处理。第四条ME59N 批量自动转 PO。选择一批 PR系统自动按供应商、采购组织、工厂分组生成 PO。适合每月定期汇总处理大量 PR 的情况效率最高但对主数据质量和 PR 完善程度要求也最高。从控制力来讲ME57 最强因为每一笔都能看到货源怎么分配的从效率来讲ME59N 最快但前提是主数据干净、PR 已经分配好货源。不能说哪条路绝对好取决于你手里 PR 的规范程度。我见过团队用 ME59N 一把梭结果有一批 PR 的账户分配是“U”未知生成 PO 后财务不肯过账还是要回头一笔笔补科目分配反而更慢。所以效率工具要用但用之前得先检查数据质量。2. 动手前先备好主数据和后台没有货源转 PO 就是空谈2.1 主数据检查顺序按我的经验别倒过来很多顾问一遇到“找不到货源”第一反应就是翻信息记录结果查了半天发现是供应商主数据根本没建采购组织视图或者物料在工厂下压根没扩展。所以在分配货源之前我建议按这个顺序检查主数据能少走很多弯路。第一个检查供应商主数据。用 XK03 查看供应商确认它存在并且维护了对应的采购组织视图、采购组织数据、采购订单货币等。供应商没有采购组织数据信息记录和配额建得再漂亮转 PO 时一样会报错。第二个检查物料主数据。用 MM03 查看物料确认它在工厂、采购组织下已经扩展了采购视图和 MRP 相关视图。很多物料号是集团统一下发的总部有采购视图分厂没有扩展分配货源时系统根本不会去匹配。第三个检查采购信息记录和框架协议。确认信息记录存在、有效期内、没有被标记删除合同和计划协议的状态是否已批准。尤其是信息记录它里面有一个“标识删除”的标供应商被财务冻结后信息记录经常被顺手标删分配时就直接被过滤掉了。第四个检查货源清单。如果物料维护了货源清单要确认清单里的条目状态是“激活”并且有效期覆盖 PR 的需求日期。货源清单失效也是常见的“找不到货源”原因。第五个检查配额。确认配额安排已维护物料主数据 MRP4 视图里已经填了配额参数文件。配额参数文件丢了系统根本不会执行配额逻辑。这个检查顺序为什么重要因为很多问题表象是“没有货源”根子却在更底层的主数据。比如物料号在工厂没有扩展你查一百遍信息记录也没用。我在项目上常跟用户说先查物料再查供应商最后查货源不要一上来就翻信息记录。查错了方向一上午就没了。2.2 后台配置货源确定和配额参数文件主数据没问题还分配不了货源就要怀疑后台配置了。和 PR 分配货源最相关的后台配置主要是货源确定过程和配额参数文件。货源确定过程在配置路径“物料管理 - 采购 - 货源确定 - 定义货源确定”里。事务码通常是 OMDG/OMDU不同版本略有差异。这个配置里有几个关键开关是否激活自动货源确定、是否激活配额分配、是否允许对某类凭证做手工货源确定。如果项目把“自动货源确定”关了那么 MRP、ME57、ME59N 运行时就不会自动去找货源用户只能手工输供应商这会让“分配货源”按钮形同虚设。配额参数文件在“物料管理 - 采购 - 配额安排 - 定义配额参数文件”里配置事务码是 OMEQ。配额参数文件本身不复杂关键是理解它是挂在物料主数据 MRP4 视图上的一个“策略代码”。同一个工厂下不同物料可以挂不同的配额参数文件实现不同物料走不同分配策略。除了货源确定还有两个配置点容易被忽略。一个是采购订单的凭证类型和号码范围。ME21N 生成 PO 时凭证类型默认一般是 NB标准采购订单如果项目里要求默认 WE框架协议释放或 ZE自定义需要在“定义凭证类型”里配好。号码范围用尽也会报错运维时要关注。另一个是字段选择比如采购组、账户分配类别在 PR 或 PO 上是否必输。有些项目为了录入方便把账户分配类别设为可选结果用户建 PR 时不填后面转 PO 就留下一堆半成品。2.3 不同业务场景怎么设置别一套配置走天下主数据和后台配好后还要结合业务场景做取舍。我见过不少项目后台配置全照着最佳实践打开了但业务玩法根本对不上反而制造麻烦。单一供应商场景比如部分垄断原材料、内部关联公司供货。这种场景不需要配额维护好信息记录就够了。货源清单可建可不建如果要建建议把固定标志勾上彻底防止用户手工换供应商。多供应商分单场景比如大宗原材料有两三家供应商需要按比例分配。这时要用配额安排物料 MRP4 视图挂配额参数文件维护多个供应商的配额比例。比例建议合计正好 100%不要留尾巴否则剩余比例系统没办法自动分配又变成无货源。配额基数也要关注系统会按累计采购量滚动计算不是每次从零开始。框架协议场景比如年度框架合同。合同在 ME31K 里建如果合同有释放限制转 PO 时必须满足释放条件否则带不出价格或交期。计划协议也归这一类但计划协议更多用于交期计划后面会单独说。STO 场景也就是库存转储订单。这种“供应商”是内部工厂或关联公司需要在供应商主数据和信息记录层面做特殊设置有的项目直接用工厂代码作为供应商有的配置了内部供应商号码。转 PO 时价格可能走内部转移价格规则不能按普通外部采购直接取价。JIT 和计划协议场景则要特别注意。如果业务走的是计划协议交期释放一般不经过 PR 转 PO如果确实要从 PR 走那货源类型应该是计划协议转出来的是计划协议释放单不是标准 NB 采购订单。很多项目在这块没给用户讲清楚导致计划协议的单子被转成了普通 PO后续收货和结算都对不上。3. 实际操作ME57 完整演示分配货源并转 PO3.1 ME57 的完整流程照着做就行ME57 是 SAP 标准里专门用来处理“PR 分配货源并转 PO”的事务码。我之前带新人基本就让他们死磕这一个事务码流程走通一遍后面 ME58、ME59N 都是顺水推舟。第一步事务码 ME57 回车进入选择屏幕。可以输入采购申请号也可以用物料、工厂、采购组、MRP 控制者、短缺标记等条件筛选。如果是要批量处理未分配货源的 PR我建议用 ME5A 先筛选出 PR 清单再把这些 PR 号记录到 ME57 里处理。第二步回车进入 PR 列表界面。列表里能看到每个 PR 行的物料、数量、交货日期、供应商字段。供应商是空的说明还没分配货源供应商已经有值说明之前分配过或者 MRP 自动确定过货源。第三步选中要处理的行项目。工具栏上有“分配货源”按钮点它。系统会进入货源确定界面列出所有可用的货源可能是信息记录、可能是框架协议、也可能是配额安排算出来的结果。如果自动货源确定没配好这里可能是空的那就要回到第 2 章查主数据和后台。第四步从可用货源列表里选一个点“复制”或直接双击。货源信息会带回 PR供应商、价格、交货日期等字段被填上。第五步回到 PR 明细后点“生成采购订单”按钮。系统跳到 PO 创建界面此时 PR 的货源信息已经带过来了检查一遍 PO 行项目无误保存得到 PO 号。这个流程里我的习惯是不要让系统把 PR 整单转成一张 PO而是先看行项目。比如一个 PR 里既有原材料又有备件供应商可能不同强行合成一张 PO 就会出问题。ME57 里可以按行处理指定哪些行进哪张 PO灵活度比 ME59N 高很多。还有两个操作技巧。一是 PR 有多个行项目时可以多选后一次性分配不一定非要一行一行点。二是如果货源清单维护得好分配后会看到系统自动带出供应商那种情况下直接跳到“生成采购订单”就可以了不必再手动点分配。3.2 分配货源时这几字段一定不能放过ME57 分配货源后PO 上的关键字段大多是自动带出来的但带出来不等于一定对。我总结了一张检查清单。字段容易踩的坑建议供应商供应商换了但价格没更新分配完看一眼供应商是否和业务预期一致采购组织/工厂跨采购组织建 PR转错采购组织确认 PR 工厂和采购组织匹配价格信息记录里是净价还是总价含税标志对不对用 ME13 查看信息记录价格条件数量没有按舍入值取整或者不够起订量关注订单单位和舍入参数文件交货日期默认取 PR 需求日期但没考虑提前期去计划行里核对“交货日期”和“计划行日期”付款条件没从供应商主数据带出检查 XK03 采购组织视图里的付款条件账户分配类别是 U未知、K成本中心还是 F订单科目分配复杂时先看 PR 账户分配页签库存地点空库存地点会导致后续 MIGO 收货麻烦按工厂默认库存地点设置补齐价格是重中之重。信息记录里有净价、总价、价格单位、条件类型等概念。如果 PR 转 PO 时出现“采用价格为零”多半是信息记录的条件记录没维护或者物料单位在主数据和信息记录里不一致。比如信息记录里价格单位是“每 1000 个”PO 数量是 10 个系统会把价格按比例折算这时单价看起来会“很奇怪”不是系统错了是价格单位在搞鬼。账户分配也很容易翻车。PR 建的时候账户分配类别选了“U”未知到转 PO 时系统不会自动生成科目分配PO 里科目分配页签就是空的。会计那边过不了账回头要你改 PO但 PO 一旦做了收货改科目分配就更麻烦。所以我的原则是账户分配信息不要在 PO 阶段补必须在 PR 阶段就确认清楚。3.3 批量场景ME58、ME59N 以及不想手工点几百张 PO 的 ABAP 方案PR 数量少ME57 没问题PR 数量一大比如月底集中处理几百张还一张张点 ME57 就太痛苦了。这时候看 ME58 和 ME59N。ME58 的逻辑是“已分配货源的 PR 直接转 PO”。适用场景前置系统或人工已经把供应商、价格都维护到了 PR 上你只需要批量生成 PO。ME58 会逐个 PR 生成对应的 PO不涉及货源分配。ME59N 更“暴力”一点。它可以选择一批 PR系统自动按供应商、采购组织、工厂、凭证类型等维度分组每个分组生成一张 PO。ME59N 在选择屏幕里可以设置是否只处理已分配货源的 PR如果勾选了“自动货源确定”系统会尝试对没有货源的 PR 自动分配货源。正因为有这个自动动作主数据不干净的系统跑 ME59N 很容易出垃圾单跑之前务必先检查。如果大型批导项目对可追溯性要求高或者要把 PR 转 PO 嵌进自开发程序里标准做法是用 BAPI。PR 转 PO 最常用的是 BAPI_PO_CREATE1它支持在 PO 行项目里引用 PR 号和 PR 行项目号系统会自动带出物料、数量、价格、交期。DATA: ls_poheader TYPE bapimepoheader, lt_poitems TYPE TABLE OF bapimepoitem, lt_poitemsx TYPE TABLE OF bapimepoitemx, lt_poschedule TYPE TABLE OF bapimeposchedule, lt_poschedulex TYPE TABLE OF bapimeposchedx, lt_return TYPE TABLE OF bapiret2. ls_poheader-doc_type NB. 标准采购订单 ls_poheader-vendor 100001. 供应商号 ls_poheader-purch_org 1000. 采购组织 ls_poheader-purch_group 001. 采购组 ls_poheader-doc_date sy-datum. lt_poitems VALUE #( ( preq_no 10012345 PR 号 preq_item 00010 PR 行项目 material MAT-001 plant 1000 quantity 10 po_unit PC acctasscat K 成本中心分配 ) ). CALL FUNCTION BAPI_PO_CREATE1 EXPORTING poheader ls_poheader IMPORTING purchaseorder ls_poheader-po_number 按版本取返回PO号 TABLES return lt_return poitem lt_poitems.这段代码只是思路示意生产环境还要补 poheaderx、poitemx、poschedulex 等结构并处理 BAPI 返回的 message 和回滚逻辑。最稳妥的做法是先试用确认生成的 PO 和 ME57 手工生成的一致再上线。还有一个容易被忽视的点BAPI 创建 PO 后凭证类型默认也是按后台配置走的如果你的标准 NB 有字段选择限制该报错还是会报错程序里要做好消息收集。4. 常见问题与排查实录这批货为什么又卡在 PR 上4.1 没有找到可用的货源最常见的五个原因“分配货源时找不到货源”这是我被问得最多的问题。排查顺序按出现概率排一下。第一信息记录不存在或不在有效期内。供应商谈好了但价格还没维护或者价格到期了系统当然找不到货源。用 ME13 看信息记录重点看有效期和标记删除字段。第二物料和工厂不匹配。物料在 A 工厂有采购视图PR 是 B 工厂的系统找不到 B 工厂的货源。用 MM03 看物料主数据工厂数据确认“工厂”下拉框选的是 PR 对应的工厂。第三采购组织不一致。信息记录的采购组织和 PR 的采购组织不同跨采购组织的货源不会自动匹配。供应链复杂的大集团很常见解决方式是维护多个采购组织的信息记录或者配置采购组织级别的货源确定规则。第四货源清单状态不是激活。货源清单条目被删了或者有效期过了系统会认为这个物料不允许使用任何货源。用 ME03 查看物料、工厂维度的货源清单看状态。第五配额问题。配额比例合计不是 100%或者配额基数的计算逻辑导致当前该分配的供应商没有可用配额。用 MEQ3 看配额安排核对有效期和比例。实战里大概百分之六七十是“有效期”和“工厂/采购组织不匹配”剩下的才是配置问题。排查的时候不要一上来就怀疑系统先按顺序查这三层主数据。4.2 转出来的 PO 价格、数量、交期不对货源找到了PO 也生成了结果价格不对这是第二类高频问题。价格不对最常见的原因有三个。一是信息记录里有多个条件记录系统选了有效期最长的那个但不是本次谈判的特殊价格二是价格单位折算导致单价显示异常比如“每 1000 个 50 元”PO 数量 10 个单价会显示 0.5 元看着像错了实际没错三是供应商主数据里的“计价基础”和“订单货币”没维护导致带出的货币不对。数量不对大概率是舍入参数和批量规则在捣乱。物料主数据采购视图里可以维护最小采购数量、舍入值、批量规则。比如设置舍入值为 100PR 需求是 250转成 PO 时系统可能自动舍入到 300这是主数据策略不是错误。如果业务不接受要改的是物料主数据不是 PO。交期不对往往不是“货源”的问题而是计划行日期没有按提前期回推。PR 的需求日期是 10 号供应商提前期是 5 天PO 的交货日期应该落在 5 号左右。如果 PO 计划行日期还是 10 号检查采购信息记录里的“计划交货时间”以及物料主数据里的“收货处理时间”。这几个时间参数会共同影响“采购提前期”的计算。4.3 审批没走完PR 转不了 POPR 和 PO 都可能挂了审批策略。PR 的审批事务码是 ME54N单张和 ME55批量。如果 PR 没有走完审批ME59N 默认会跳过这些 PR不会给你报错表面上看起来“什么都没发生”。用 ME57 手工转 PO 时如果 PR 审批没完成部分项目会因为自定义校验直接报错标准系统则看后台配置。最稳妥的排查办法是用 ME5A 查询 PR 清单时把“审批状态”字段显示出来筛选出没有批准标记的 PR先补审批再批量转 PO。PO 也有审批事务码是 ME29N。PR 转 PO 后触发了 PO 审批策略PO 会进入“待审批”状态此时不算最终生效采购员不能给供应商发正式订单。很多项目在这个环节出问题原因是 PO 审批策略的特征值包含了金额和工厂而 PR 转 PO 时金额被舍入刚好跨过了审批阈值审批路径变了到底由谁批就乱了。4.4 账户分配、序列号、STO 等特殊场景账户分配类别是“U”的 PR转 PO 后科目分配是空的。这种情况在资产采购、项目采购里特别多见。资产采购的 PR 如果没有填资产号账户分配类别会自动变成“U”转成 PO 后财务做不了资产资本化。处理思路是在 PR 阶段就锁定账户分配通过字段选择把“账户分配类别 U”设成不允许或者强制用户填写资产号。序列号管理的物料PR 转 PO 本身不复杂但转成 PO 后MIGO 收货时必须按照序列号逐个确认。如果 PR 阶段没有把“序列号”相关信息带入收货时就会卡在序列号清单这一步。建议在转 PO 前就检查物料主数据是否启用了序列号管理启用的话提前准备序列号导入方案。STO 转储订单这块PR 的“供应商”其实是内部工厂或关联公司。分配货源时系统不是直接找普通采购信息记录而是找内部供应商的信息记录有些项目还配置了“配货/跨工厂参数文件”。STO 的 PO 转出后发货工厂要做交货和发货过账收货工厂做收货流程比普通采购多好几个环节。如果 PR 转 STO 时发现供应商带不出来先确认内部供应商主数据和“装运条件”等参数不要盲目维护普通信息记录。4.5 批量程序和接口的坑说出来都是泪批量转 PO 最容易出问题的不是 BAPI 本身而是业务数据不完全满足后台字段要求。比如采购组织下没有维护“供货工厂”的库存位置或者 PO 行项目里有条件类型缺失报错信息五花八门定位起来很痛苦。我的建议是批导程序上线前先用 ME5A 拉一批真实 PR 跑一遍“预检查”把账户分配、货源、价格、交期、审批状态五个维度全部查一遍有问题的 PR 先剔除再进批导。批导跑完后把 BAPI 返回的消息按行项目归档出问题能追溯到具体 PR。启用 ALE/IDoc 的项目还要注意一个隐藏雷区PO 创建本身会触发 change pointer变更指针如果系统配置了对 PO 类型不做限制一个批量转 PO 的动作可能瞬间把消息队列打满后续所有 IDoc 都在排队。上线前就要确认“采购订单变更消息”的过滤条件不要让 NB 类型的普通 PO 全部触发外发消息。5. 常用事务码和增强点运维和二次开发都用得上5.1 这些 T-code 存起来微信收藏都不如这个表格经常有新手顾问问PR 转 PO 到底要记哪些事务码。我把常用的按场景列了一张表建议直接存到项目笔记里。分类事务码用途采购申请ME51N / ME52N / ME53N创建/修改/显示 PR审批ME54N / ME55单个/批量审批 PRPR 清单ME5A按各种条件列 PR分配货源ME57分配货源并转 PO已分配转 POME58已分配货源的 PR 批量转 PO自动转 POME59N按策略自动生成 PO采购订单ME21N / ME22N / ME23N创建/修改/显示 POPO 清单ME2N / ME2M / ME2L按凭证/物料/供应商查 PO信息记录ME11 / ME12 / ME13创建/修改/显示信息记录货源清单ME01 / ME03 / ME05维护/显示/列出货源清单配额安排MEQ1 / MEQ2 / MEQ3创建/修改/显示配额安排框架协议ME31K / ME33K / ME31L / ME33L维护/显示合同和计划协议需求链路MD04 / MD01 / MD02 / MD03查库存/需求清单跑 MRP后台配置OMDG / OMDU / OMEQ货源确定、配额参数文件实际用的时候ME57、ME5A、ME23N 这三个用得最多。ME5A 负责找问题 PRME57 负责处理和转单ME23N 负责最后确认 PO 是不是对。一条龙下来整个过程不会超过五分钟。5.2 怎么用报表快速定位“卡住”的 PR运维采购流程最重要的就是每周或者每天能捞出“卡住的 PR”。我的标准做法是ME5A 进去选择条件按工厂、采购组、创建日期然后在输出布局里把供应商、采购订单号、审批状态、货源状态这几个字段放出来。凡是“供应商为空”的 PR基本就是没分配货源的把它们发给采购员采用 ME57 批量分配就好。MD04 更适合单物料深挖。比如生产催料你可以从 MD04 里看到这个物料的需求来源、计划订单、PR、PO 之间的凭证链。如果计划订单转 PR 的动作没有做MD04 里 PR 上面是空的如果 PR 转了 POPO 字段会显示出来。这条链路看熟了大部分采购异常都能定位。ME2M 按物料查 POME2L 按供应商查 PO适合事后核对“某家供应商这个月到底开了多少 PO”。这三个报表配合起来采购订单的全局视图基本就完整了。5.3 增强点想在 PR 转 PO 时做校验或自动填充代码挂哪里很多项目做二次开发想在 PR 转 PO 时加自定义校验比如“PR 的预算必须审批通过”“PO 文本必须带出项目名称”之类。标准增强点要选对。PR 创建和修改的主要增强点是 BADI_MEREP_INIT。如果你在 PR 保存前要做字段校验、默认值填充挂在这里。比如强制检查成本中心是否有效或者根据申请部门自动填采购组都适合用这个 BADI。PO 创建和修改的主要增强点是 ME_PROCESS_PO_CUST。这个 BADI 在 PO 创建、修改、保存时都会触发常用于校验和自动填充逻辑。比如检查 PR 审批状态后再允许创建 PO或者根据物料类型自动调整 PO 行项目文本。我实际用过的场景是客户要求凡是金额大于 10 万的 PR转 PO 时 PO 文本必须带出预算编号否则不允许保存。当时就是挂的 ME_PROCESS_PO_CUST在 PROCESS_ITEM 阶段做检查把预算编号从 PR 文本里解析出来填入 PO 文本再把“无预算编号”的情况用消息报出来。还要提醒一句S/4HANA 之后部分经典 BADI 虽然还能用但官方更推荐用新的增强框架或 BAdI 的新版本。做项目时先确认实施系统的 SAP 版本再选增强点不要一上来就照抄老项目的代码。增强代码上线前一定要在沙盒里反复测试特别是批量转 PO 这种高频场景一个报错消息会让大批单据中断。最后说点个人体会。我做 MM 项目这些年发现 PR 转 PO 能不能跑顺真的不取决于 ME57 按得有多快而是前期主数据和后台策略清不清晰。把信息记录、配额、货源清单一次性理好后面根本不需要天天救火。还有一个很土但很有效的小技巧给关键用户的权限角色里只放开 ME57、ME5A、ME23N 这几个事务码再按工厂和采购组做数据权限一个月下来误操作率能降一大截。希望这篇东西能帮你在下次被生产计划追着问“货为什么还没买”的时候少一点手忙脚乱。
返回列表