采购订单BADI增强-ME_PROCESS_PO_CUST
2017-07-06 15:13
1601 查看
一 . 用户需求
在PT项目中,用户实际业务需求如下:采购订单抬头中通信页签中的销售员(VERKF)字段文本更改为OA合同号(参考文章:修改SAP标准字段文本描述–CMOD增强);
当采购订单的公司代码是8200时,该字段输入OA合同号,且是必输项,不能为空值,否则弹出报错消息,采购订单不能保存。
当采购订单行项目库存地点出现在自定义表ZMM_SET_INSMK时,收货库存类型设置为质检库存。
二 . 采购订单BADI增强ME_PROCESS_PO_CUST
为满足用户第二个需求,使用采购订单BADI增强ME_PROCESS_PO_CUST,在该增强的CHECK函数中写入检查逻辑,如不满足以上第二项业务需求逻辑,系统弹出错误消息,采购订单不允许保存。采购订单BADI增强ME_PROCESS_PO_CUST 如下:
代码示例如下:
METHOD if_ex_me_process_po_cust~check. DATA: lds_header TYPE mepoheader. DO 1 TIMES. CALL FUNCTION 'ZENHANCEMNET_CHECK' EXPORTING progname = 'ZMM007' form = 'ZME_PROCESS_PO_CUST->CHECK' serno = 1 EXCEPTIONS no_activity = 4000 1 OTHERS = 2. IF sy-subrc <> 0. EXIT. ENDIF. CALL METHOD im_header->get_data RECEIVING re_data = lds_header. IF lds_header-bukrs = '8000' OR lds_header-bukrs = '8200'. IF lds_header-verkf IS INITIAL. MESSAGE '请输入OA合同号! (抬头信息中的"通信"标签页中)' TYPE 'E'. ''弹出错误信息 ch_failed = 0. ENDIF. ENDIF. ENDMETHOD.
2 . 当采购订单行项目库存地点出现在自定义表ZMM_SET_INSMK(质检库存类型的库存地点设定表)时,收货库存类型设置为质检库存。
解决方案:在采购订单BADI增强ME_PROCESS_PO_CUST 中的PROCESS_ITEM方法写入以下逻辑代码:
METHOD if_ex_me_process_po_cust~process_item. DATA: lds_item TYPE mepoitem, ldf_mandt TYPE mandt. * 设置库存类型! 'X'-质检库 S- lds_item = im_item->get_data( ). IF lds_item-werks IS NOT INITIAL AND lds_item-lgort IS NOT INITIAL. SELECT SINGLE mandt INTO ldf_mandt FROM zmm_set_insmk WHERE werks = lds_item-werks AND lgort = lds_item-lgort. IF sy-subrc = 0. lds_item-insmk = 'X'. im_item->set_data( lds_item ). else. lds_item-insmk = ''. im_item->set_data( lds_item ). ENDIF. ENDIF. ENDMETHOD.
参考文章:
http://blog.csdn.net/champaignwolf/article/details/45968871
ME21N,ME22N,ME23N之BADI增强ME_PROCESS_PO_CUST
http://blog.csdn.net/jy00873757/article/details/8705216
ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
相关文章推荐
- PO增强同步PO采购类型与PR类型一样 By badi:ME_PROCESS_PO_CUST
- ABAP - PO增强 - IF_EX_ME_PROCESS_PO_CUST~CHECK - 变更凭证日期
- 采购订单限价(包含阶梯价)ME_PROCESS_PO_CUST
- me21n增强BADI:ME_PROCESS_PO_CUST之process_account
- ME21N,ME22N,ME23N之BADI增强ME_PROCESS_PO_CUST
- BAdI Interface IF_EX_ME_PROCESS_PO_CUST
- ME_PROCESS_PO_CUST
- ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
- BADI : ME_PROCESS_REQ_CUST 创建PR时,检查用户数据并更新
- ME_PROCESS_PO_CUST修改行项目中净价为物料主数据中标准价格
- MM采购订单的增强user-exit:MM06E005(示例程序是下PO做成本MR21)
- BADI--Purchase Requisition Header Long Text using Badi - ME_PROCESS_REQ_CUST.
- BAdI:ME_PROCESS_REQ_CUST弹出消息问题
- ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
- ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
- BADI : ME_PROCESS_REQ_CUST 创建PR时,检查用户数据并更新
- Oracle EBS PO 采购订单接口 创建后 点击发运后 未修改任何数据 需要保存
- abap-MRP自动产生采购申请-BADI增强-将销售单和行号复制为需求追踪号
- SAP用户增强总结-采购订单建立增加客户数据增强示例
- LLYF ProcessHelper增强及LLYF Spy开始