#BADI#采购订单PO和采购申请PR常用的BADI

Skip to end of metadata
Go to start of metadata

Purpose

The purpose of this page is to list out the commonly used BAdIs for PR and PO and to provide a short description for each of the BAdI.

Overview

Commonly used PR BAdIs 

ME_PROCESS_REQ_CUSTPR BADI
ME_REQ_POSTED                          Purchase Requisition Posted
ME_REQ_OI_EXT                          Commitment Update in the Case of External Requisitions
ME_COMMTMNT_REQ_RE_C                   Check of Commitment Relevance of Purchase Requisitions
ME_COMMTMNT_REQ_RELE                   Check of Commitment Relevance of Purchase Requisitions

Commonly used PO BAdIs 

ME_PROCESS_PO_CUSTPO BADI
ME_PROCESS_PO_CUST                     Enhancements for Processing Enjoy Purchase Order: Customer
ME_PROCESS_PO                          Enhancements for Processing Enjoy Purchase Order: Intern.
ME_PROCESS_COMP                        Processing of Component Default Data at Time of GR: Custome
ME_PO_SC_SRV                           BAdI: Service Tab Page for Subcontracting
ME_PO_PRICING_CUST                     Enhancements to Price Determination: Customer
ME_PO_PRICING                          Enhancements to Price Determination: Internal
ME_INFOREC_SEND                        Capture/Send Purchase Info Record Changes - Internal Use
ME_HOLD_PO                             Hold Enjoy Purchase Orders: Activation/Deactivation
ME_GUI_PO_CUST                         Customer's Own Screens in Enjoy Purchase Order
ME_FIELDSTATUS_STOCK                   FM Account Assignment Behavior for Stock PR/PO
ME_COMMTMNT_PO_REL_C                   Check for Commitment-Relevance of Purchase Orders
ME_COMMTMNT_PO_RELEV                   Check for Commitment-Relevance of Purchase Orders
<think>我们正在讨论SAP中采购申请采购单据的审批者是否由相同的BADI决定。根据之前的回答,采购申请的审批者由BADI `ME_WORKFLOW_AGENT` `ME_REL_STRATEGY_DETERMINE` 决定。现在需要确定采购单据(如采购订单)的审批者是否也由相同的BADI决定。 在SAP中,采购订单的审批流程与采购申请的审批流程是独立的。虽然两者都使用工作流审批策略,但具体的技术实现BADI可能不同。 根据SAP标准功能: - 采购申请(Purchase Requisition, PR)的审批使用BADI `ME_WORKFLOW_AGENT` `ME_REL_STRATEGY_DETERMINE`。 - 采购订单(Purchase Order, PO)的审批则使用另外的BADI。 具体来说,采购订单的审批者确定通常使用以下BADI: 1. **`ME_PROCESS_PO_CUST`**:这是一个综合的BADI,用于定制采购订单的处理,其中包括审批代理的确定。在这个BADI中,方法`DETERMINE_AGENT`用于确定审批者。 2. **`ME_REL_STRATEGY_DETERMINE`**:与采购申请类似,采购订单的审批策略确定也使用这个BADI(但实现可能不同,因为策略类型不同)。采购订单的审批策略在配置中通常使用不同的对象类型(如`BUS2012`)类别。 因此,采购申请采购单据(如采购订单)的审批者并不由完全相同的BADI决定。虽然它们共享了`ME_REL_STRATEGY_DETERMINE`(用于策略确定),但直接决定代理(审批者)的BADI是不同的: - 采购申请:`ME_WORKFLOW_AGENT` - 采购订单:`ME_PROCESS_PO_CUST` 中的`DETERMINE_AGENT`方法 此外,采购订单的审批工作流通常使用标准工作流`WS20000075`(针对采购订单),而采购申请使用的工作流是`WS20000076`。在自定义审批者时,需要分别处理。 总结: | 单据类型 | 审批策略BADI | 审批者代理BADI | |------------|------------------------------|-----------------------------| | 采购申请 | ME_REL_STRATEGY_DETERMINE | ME_WORKFLOW_AGENT | | 采购订单 | ME_REL_STRATEGY_DETERMINE | ME_PROCESS_PO_CUST (DETERMINE_AGENT) | 注意:虽然采购订单也可以使用`ME_WORKFLOW_AGENT`,但根据SAP标准,采购订单的审批代理确定通常是通过`ME_PROCESS_PO_CUST`来实现的[^1][^2]。因此,两者在审批者确定的BADI上并不相同。 引用[1]中提到的问题是关于采购订单变更后重新触发审批的条件设置,这涉及到审批策略的条件设置,而不是BADI。但这也说明采购订单的审批策略配置与采购申请不同,需要单独处理。 因此,回答用户的问题:**SAP采购申请采购单据(如采购订单)的审批者不是由相同的BADI决定。** 下面,我们将详细说明采购订单审批者BADI的查找方法。</think>在SAP系统中,**采购申请PR采购单据(如采购订单PO)的审批者并非由相同的BADI决定**。两者在审批机制上存在显著差异,具体分析如下: --- ### **1. 采购申请PR)的审批者BADI** - **核心BADI**:`ME_WORKFLOW_AGENT` 通过方法`GET_AGENT`直接动态确定审批者(如基于采购组、申请类型等)[^1][^2]。 - **策略BADI**:`ME_REL_STRATEGY_DETERMINE` 通过`DETERMINE_RELEASE_STRATEGY`动态分配审批策略(间接影响审批者)[^1][^3]。 --- ### **2. 采购单据(如PO)的审批者BADI** 采购订单的审批机制与采购申请不同,主要涉及: - **核心BADI**:`ME_PROCESS_PO_CUST` 通过方法`DETERMINE_AGENT`动态分配PO审批者(如基于采购组织、订单类型等)[^1]。 - **策略BADI**:`ME_REL_STRATEGY_DETERMINE` **虽名称相同,但实现逻辑独立**: PO的审批策略通过对象类型`BUS2012`(采购订单)触发,而PR通过`BUS2105`(采购申请)触发[^2][^3]。 --- ### **关键差异对比** | 维度 | 采购申请PR) | 采购单据(PO) | |--------------|-------------------------------|-------------------------------| | **核心BADI** | `ME_WORKFLOW_AGENT` | `ME_PROCESS_PO_CUST` | | **方法** | `GET_AGENT` | `DETERMINE_AGENT` | | **策略BADI** | `ME_REL_STRATEGY_DETERMINE` | `ME_REL_STRATEGY_DETERMINE` | | **对象类型** | `BUS2105` (采购申请) | `BUS2012` (采购订单) | | **变更触发** | 需条件字段修改[^1] | 需条件字段修改[^1] | > **注意**: > - 即使同名BADI(如`ME_REL_STRATEGY_DETERMINE`),其实现类也需区分`BUS2105`(PR`BUS2012`(PO)[^2][^3]。 > - PO审批对"变更触发条件"更敏感(如价格修改需显式包含在条件字段中)[^1]。 --- ### **3. 定位PO审批BADI的步骤** 1. **事务码`SE18`** → 输入`ME_PROCESS_PO_CUST` 2. 检查方法`DETERMINE_AGENT`: ```abap METHOD if_ex_me_process_po_cust~determine_agent. " 示例:基于采购组分配PO审批者 IF ekko-ekgrp = 'PG01'. agent = 'PO_APPROVER_A'. ENDIF. ENDMETHOD. ``` 3. 验证策略BADI: - 在`ME_REL_STRATEGY_DETERMINE`实现中检查对象类型是否为`BUS2012`(PO)。 --- ### **总结** - ✅ **采购申请**:审批者由`ME_WORKFLOW_AGENT`直接控制。 - ✅ **采购单据**:审批者由`ME_PROCESS_PO_CUST`直接控制。 - ⚠️ **策略BADI共用但独立**:`ME_REL_STRATEGY_DETERMINE`需区分对象类型(`BUS2105` vs `BUS2012`)。 - ⚠️ **变更触发**:两者均依赖条件字段修改,需显式配置关键字段(如价格、数量)[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值