有时候需要在增强中做校验,
一般报E类型错误,
E类型会中断进程继续执行,所以直接报E类型message,就会弹出来,而且不继续执行
但是有时候需要报W类型警告
发现直接用W类型message是弹不出来的
但是标准程序是能报W类型警告,dubug标准操作后,得到如下方法;
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类型错误,
1)可以直接使用message **** type ‘E'.
2)cl_message_mm=>create
3)Function :MESSAGE_STORE
另外,我曾用
CALL
FUNCTION
'C14Z_MESSAGES_SHOW_AS_POPUP'
这个函数报W类型错误,虽然确实是能弹出来,但是不知道为啥,在增强李使用此报W类型警告,会弹出来两次,
debug发现这个增强会调用两次,但是使用第一种方法就不会出现弹两次情况,不知道为什么
如果哪位大侠知道原因,请留言,谢谢