常平镇-上海硕翔阀门

BAdI 弹出消息问题
2023年9月23日发(作者:单士元)

BAdIME_PROCESS_REQ_CUST弹出消息问题

增强场景:创建、修改采购申请(me51nMe52n)时,判断某些字段是否符合条件,不符合

则提示系统消息。

使用BAdI增强方式ME_PROCESS_REQ_CUSTSE19实现此BAdIcheck方法中增加代码,

但是有一个问题,这个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.

乒乓球桌规格-奋达科技股票

BAdI 弹出消息问题

更多推荐

桑巴蒂墙纸