BADI EXIT等增强报W警告类消息
有时候需要在增强中做校验,
LOOP AT li_message_tab INTO lw_msg.
CALL METHOD
cl_message_mm=>create
EXPORTING
im_msgid =
'ZMM00001'
"se91创建
im_msgty =
'W'
"消息类型
im_msgno =
'000'
im_msgv1 =
lw_msg-msgv1
im_msgv2 =
lw_msg-msgv2
im_msgv3 =
lw_msg-msgv3
im_msgv4 =
lw_msg-msgv4
im_condense = mmpur_no
"直接用mmpur_no就行,是个系统全局变量,其实就是space
EXCEPTIONS
failure =
01
dialog
= 02.
IF
sy-subrc = 1 OR sy-subrc = 2.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDLOOP.
一般报E类型错误,
E类型会中断进程继续执行,所以直接报E类型message,就会弹出来,而且不继续执行
但是有时候需要报W类型警告
发现直接用W类型message是弹不出来的
但是标准程序是能报W类型警告,dubug标准操作后,得到如下方法;
报E类型错误,
1)可以直接使用message **** type ‘E'.
2)cl_message_mm=>create
3)Function :MESSAGE_STORE
另外,我曾用
CALL FUNCTION 'C14Z_MESSAGES_SHOW_AS_POPUP'
这个函数报W类型错误,虽然确实是能弹出来,但是不知道为啥,在增强李使用此报W类型警告,会弹出来两次,
debug发现这个增强会调用两次,但是使用第一种方法就不会出现弹两次情况,不知道为什么
如果哪位大侠知道原因,请留言,谢谢
http://blog.sina.com.cn/sapliumeng