集成电路科普者 2026-02-27 00:00 采纳率: 98.7%
浏览 0
已采纳

SAP自动创建PO时,采购信息记录未生效怎么办?

在SAP中通过MRP或采购申请自动创建采购订单(PO)时,采购信息记录(Info Record)未被带入价格、交货条件等关键字段,是典型配置疏漏问题。常见原因包括:① 信息记录未激活(有效状态为“Released”)或有效期不覆盖PO创建日期;② 物料主数据采购视图中未维护正确的“采购信息记录类型”(如E或F);③ 供应商主数据中未勾选“信息记录相关”(Info Update)标识;④ 自动PO生成事务(如MD04→ME59)未启用“使用信息记录”选项(需检查OMGQ/OMI8中“Info Record Usage”配置);⑤ 信息记录与采购申请/计划行的物料、工厂、采购组织三者未完全匹配。建议按“信息记录状态→主数据一致性→配置开关→运行参数”四级排查,并用ME13验证信息记录是否可被系统识别。忽略任一环节均会导致价格/条款无法自动带出,增加人工干预风险。
  • 写回答

1条回答 默认 最新

  • 桃子胖 2026-02-27 00:00
    关注
    ```html

    一、现象层:自动PO未带出Info Record关键字段的典型表现

    在SAP ECC或S/4HANA环境中,当通过MRP运行(MD01/MD02)生成采购申请(PR),再经ME59批量转为采购订单(PO)时,常出现价格字段(NETPR)、交货条款(EKKO-EKET)、税码(MWSKZ)、采购组织层级条件(如折扣、运费)等空白或默认值。该问题不报错,但导致后续发票校验(MIRO)差异、供应商对账偏差及采购合规审计风险。

    二、数据层:主数据四维匹配性验证清单

    维度检查对象关键字段合规要求
    ① 物料MARA + MRP视图MATNR, WERKS, EKORG, BSART采购视图中“采购信息记录类型”必须为E(标准)或F(框架协议)
    ② 供应商LFA1 + LFM1LIFNR, EKORG, WERKSLFM1-INFO_UPD = 'X'(启用信息记录更新)
    ③ 信息记录 EINA + EINEINFNR, MATNR, LIFNR, EKORG, WERKSSTATUS = 'A'(Released),且VALID FROM ≤ PO日期 ≤ VALID TO
    ④ 采购申请EBANBANFN, BNFPO, MATNR, WERKS, EKORG与Info Record三要素(物料+工厂+采购组织)严格一致

    三、配置层:OMGQ/OMI8中“Info Record Usage”开关逻辑

    系统级控制开关位于SPRO路径:Materials Management → Purchasing → Purchase Order → Define Default Values for Document Type。需重点核查:

    • OMGQ:针对标准PO类型(如NB),勾选“Use info record”并指定“Info record type”为E/F;
    • OMI8:针对自动创建场景(如ME59),确认“Automatic PO creation”下“Info record usage”设为“Always”或“At least one valid”;
    • 若使用BAdI ME_PURCHDOC_POSTED 或增强EXIT_SAPLMEGUI_012,需额外验证其是否覆盖了Info Record读取逻辑。

    四、执行层:四级递进式诊断流程图

    graph TD A[Step 1:状态验证] -->|ME13查INFNR| B[Released? Validity in range?] B -->|否| C[修正EINA-STATUS/EINE-DATBI] B -->|是| D[Step 2:主数据一致性] D --> E[物料采购视图EINART=E/F?] D --> F[供应商LFM1-INFO_UPD='X'?] D --> G[EBAN-EKORG/WERKS/MATNR ≡ EINA?] E & F & G -->|全部满足| H[Step 3:配置开关] H --> I[OMGQ中PO类型启用Info Record?] H --> J[OMI8中ME59策略启用?] I & J -->|启用| K[Step 4:运行参数捕获] K --> L[调试事务ME59时激活ST05 SQL Trace] K --> M[断点调试CL_PO_CREATE_MM->GET_INFO_RECORD]

    五、验证层:ME13不可替代的黄金验证法

    执行ME13 → 输入INFNR → 查看“General Data”和“Conditions”页签,必须同时满足:

    1. “Status”栏显示“Released”图标(绿色对勾),非“Created”或“Blocked”;
    2. “Validity Period”覆盖当前系统日期;
    3. “Conditions”页签下存在至少一条有效条件记录(KONV表有对应KNUMH);
    4. 点击“Where-Used List”可回溯至EBAN采购申请行项目;
    5. 使用SE16N查询EINE表,确认EKORGWERKSLIFNRMATNR四字段与采购申请完全一致(区分大小写及空格)。

    六、高阶规避:ABAP级防御性编程建议

    对于定制化自动PO场景(如IDoc/BAPI采购创建),应在调用BAPI_PO_CREATE1前插入预检逻辑:

    DATA: lt_info_record TYPE STANDARD TABLE OF eina.
    CALL FUNCTION 'ME_GET_INFORECORD'
      EXPORTING
        i_matnr     = ls_eban-matnr
        i_lifnr     = ls_eban-lifnr
        i_ekorg     = ls_eban-ekorg
        i_werks     = ls_eban-werks
      IMPORTING
        e_infnr     = lv_infnr
      TABLES
        t_eine      = lt_info_record.
    IF sy-subrc <> 0 OR lines( lt_info_record ) = 0.
      MESSAGE e001(zmm) WITH 'Missing active Info Record for' ls_eban-matnr.
    ENDIF.

    该机制可将问题拦截在创建前,避免事后人工补救。

    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 2月28日
  • 创建了问题 2月27日