常平镇-上海硕翔阀门

2023年9月23日发(作者:单士元)
BAdI:ME_PROCESS_REQ_CUST弹出消息问题
增强场景:创建、修改采购申请(me51n、Me52n)时,判断某些字段是否符合条件,不符合
则提示系统消息。
使用BAdI增强方式:ME_PROCESS_REQ_CUST,SE19实现此BAdI,在check方法中增加代码,
但是有一个问题,这个badi中使用message 。。type 'W'或'E',在前台业务操作时都不
会有消息出来,可SAVE成功。
查了一下资料,发现这个badi需要使用一个宏来弹出消息;如
mmpur_message_forced
下
method IF_EX_ME_PROCESS_REQ_CUST~CHECK .
INCLUDE mm_messages_mac.
DATA l_null TYPE REF TO if_message_obj_mm.
* IF ...
*- handling for error messages -> see oss note 938007
mmpur_business_obj l_null.
mmpur_message_forced sy-msgty sy-msgid sy-msgno sy-msgv1 sy-msgv2
sy-msgv3 sy-msgv4.
* ENDIF ...
endmethod.
METHOD IF_EX_MB_RESERVATION_BADI~DATA_CHECK.
* BREAK-POINT.
INCLUDE MM_MESSAGES_MAC.
DATA L_NULL TYPE REF TO IF_MESSAGE_OBJ_MM.
DATA: I_RKPF TYPE RKPF,
I_RESB TYPE RESB ,
I_SSTATUS(1) TYPE C ,
NEW_ITEM(1) TYPE C .
I_RKPF = IS_RKPF.
I_RESB = IS_RESB .
NEW_ITEM = I_NEW_ITEM .
IF SY-TCODE = 'MB22'.
SELECT SINGLE SSTATUS INTO I_SSTATUS
FROM YTIVM130
WHERE RSNUM = I_RKPF-RSNUM .
IF SY-SUBRC = 0 .
IF I_SSTATUS = '1' .
MMPUR_BUSINESS_OBJ L_NULL.
MMPUR_MESSAGE_FORCED 'E' 'ZPP' '000' '簽核中,不可修改!
' '' '' ''.
ELSEIF I_SSTATUS = '2' .
IF NEW_ITEM = 'X'.
MMPUR_BUSINESS_OBJ L_NULL.
MMPUR_MESSAGE_FORCED 'E' 'ZPP' '000' '已簽核,不可再NewItems!
' '' '' ''.
ENDIF.
IF I_RESB-ERFMG > I_RESB-BDMNG .
MMPUR_BUSINESS_OBJ L_NULL.
MMPUR_MESSAGE_FORCED 'E' 'ZPP' '000' '已簽核,修改數量不能大於原
數量!' '' '' ''.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
乒乓球桌规格-奋达科技股票

更多推荐
桑巴蒂墙纸
发布评论