ME21N,ME22N,ME23N之BADI增强ME_PROCESS_PO_CUST

一、需求背景:采购订单创建、修改时,根据所选订单类型不同,给抬头附加数据里的字段赋默认值。如下图所示:

二、实现方式:实现的方式可以有很多种,这里讲一下用BADI增强ME_PROCESS_PO_CUST实现的方式

第一步:执行事务码se19,在BAdI Name处输入:ME_PROCESS_PO_CUST,然后点“Create Impl”按钮

第二步:在Implementation Name输入ZME_PROCESS_PO_CUST,点OK按钮。

第三步:双击“PROCESS_HEADER”

第四步:在METHOD里编写代码,就可以实现需求的功能了

代码如下:

METHOD IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER.

DATA:LT_HEADER TYPE MEPOHEADER,

LV_BSART TYPE EKKO-BSART.

IF SY-TCODE = ‘ME21N‘ OR SY-TCODE = ‘ME22N‘ OR SY-TCODE = ‘ME23N‘.

IF IM_HEADER IS NOT INITIAL.

CALL METHOD IM_HEADER->GET_DATA

RECEIVING

RE_DATA = LT_HEADER.

CLEAR LV_BSART.

SELECT SINGLE

BSART

INTO LV_BSART

FROM EKKO

WHERE EBELN = LT_HEADER-EBELN.

IF LV_BSART <> ‘ZNPI‘ and LV_BSART <> ‘NNPI‘ .

IF LT_HEADER-BSART = ‘ZNPI‘.

LT_HEADER-SUBMI = ‘ZNPI‘.

ELSEIF LT_HEADER-BSART = ‘NNPI‘.

LT_HEADER-SUBMI = ‘ZNPI‘.

ELSE.

LT_HEADER-SUBMI = ‘‘.

ENDIF.

CALL METHOD IM_HEADER->SET_DATA

EXPORTING

IM_DATA = LT_HEADER.

ENDIF.

IF LT_HEADER-SUBMI = ‘ZNPI‘.

CALL METHOD IM_HEADER->GET_DATA

RECEIVING

RE_DATA = LT_HEADER.

LT_HEADER-BEDAT = SY-DATUM.

CALL METHOD IM_HEADER->SET_DATA

EXPORTING

IM_DATA = LT_HEADER.

ENDIF.

ENDIF.

ENDIF.

ENDMETHOD.

时间: 2024-08-01 08:26:48

ME21N,ME22N,ME23N之BADI增强ME_PROCESS_PO_CUST的相关文章

SAP 增强篇 Method1 BADI增强的查找方法

查找BADI的方法:(1)通过SE24,输入CL_EXITHANDLER,然后在方法GET_INSTANCE中设置断点,然后运行事务代码判断 exit_name的值,操作过程如下:输入se24,然后输入cl_exithandler 找到 GET_INSTANCE 方法,双击get_instance设置断点查看exit_name的值: 示例:  我们要找PO保存的增强,可以用哪个BADI ?前台输入 ME21N,进入断点, EXIT_NAME = ME_GUI_PO_CUST F8 , EXIT_

20170520 BADI增强学习

一.要求:Tcode:FF_5 导入数据运行时,产生财务凭证之前修改某些字段值.Exmp:FEBRE-VWEZWBKPF-XBLNRFEBEP-CHECTBSEG-ZUONR there is a business Add-in(BADI) with the definition name FEB_BADI thatis called immediately before the standart posting in program RFEBBU00.In the case, you can

PP生产订单的BADI增强 WORKORDER_UPDATE

METHOD if_ex_workorder_update~before_update. *---------------------->增强1 开始* "当生产订单类型为PP01时,如果该生产订单有参考相关的销售订单,* "那么在此生产订单存盘时,就需要判断该生产订单是否已经维护了相关的长文本数据,如果没有长文本数据,就需要查看* "所对应的销售订单行项目上是否有长文本数据,如果有则将销售订单行项目的长文本带到该生产订单长文本中.* "反之,如果此生产订单已

SD 销售订单的BADI增强SD_BADI_PRICE_CHECK

METHOD if_ex_badi_sd_sales~save_document.* CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'* EXPORTING* titel = '庆祝'* textline1 = '系统成功上线!'* textline2 = '热烈庆祝!'* start_column = 25* start_row = 6. ENDMETHOD. SD 销售订单的BADI增强SD_BADI_PRICE_CHECK

SAP采购订单屏幕增强

转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增强接口: MM06E005 EXIT_SAPMM06E_006 为子屏幕参数传入出口(抬头) EXIT_SAPMM06E_008 为子屏幕参数传出出口(抬头) EXIT_SAPMM06E_012 为子屏幕参数传入出口(项目) EXIT_SAPMM06E_018 为子屏幕参数传出出口(项目) 屏幕出口 0101

ABAP Enhancement:第二部分

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4291296.html 第三代:基于类的增强(BADI)... 25 BADI新方式实现... 42 1-构建BADI. 42 2-实现BADI. 44 3-使用BADI过滤器... 49 4-多个实现时究竟调谁... 51 查找系统中的BA

ME_PROCESS_PO_CUST 实现采购订单行项目增强

转自:https://www.cnblogs.com/jinyin/p/10598124.html 用户希望创建采购订单时,输入行项目时,能根据采购订单类型,自动带出科目分类类别. 业务顾问看了一下配置,不能实现这个功能,所以用增强实现. 采购订单BADI增强:ME_PROCESS_PO_CUST.SE19创建BADI实现,进入实施类方法: IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM ,添加代码. DATA: ls_item TYPE mepoitem, " 行项

CS01、CS02保存时增强的BADI(BOM_UPDATE)

1.需求背景:LC项目中,在保存BOM时,需要给BOM以Y开头的物料组件的展开类型字段赋默认值,查了一些资料,找到一个BADI增强,分享一下,希望对用到的兄弟有帮助. 2.BADI增强 step1:执行事务码SE19,在BAdI Name里输入BOM_UPDATE,然后点击"Create Impl"按钮 setp2:在Implementation Name处输入ZBOM_UPDATE,然后点OK按钮. step3:返回到se19事务码界面,在Implementation中输入"

使用BAPI_ACC_DOCUMENT_POST,创建会计凭证 增强

业务需求:和银行做一个接口,要通过银行流水产生会计凭证,会计凭证的事务码是F-02,查到了BAPI方法 BAPI_ACC_DOCUMENT_POST. 昨天测试发现,有一些参数在BAPI_ACC_DOCUMENT_POST的输入和表参数中根本没有, 如 记账码Posting Key.原因代码Reason Code,那怎么把这些字段的值传进去呢? 在SDN查了一下相关问题的解决办法,发现遇到这个问题的朋友还挺多, 总结了一下,解决办法大体如下: 1.se11创建结构,必须包含行项目号POSNR字段