webui吧 关注:107贴子:142
  • 0回复贴,共1

ABAP CRM中MESSAGE的处理(转)

只看楼主收藏回复

在CRM的开发中,发生错误警告时,往往不使用MESSAGE 关键字直接报错,而是使用特定的方法,将MESSAGE collect起来,在屏幕上端的message list中列出来。当错误修改后,对应的message将消失。
一般使用函数 CRM_MESSAGE_COLLECT来积累message
而是使用函数 CRM_MESSAGES_DELETE来删除message
要查询某个message可以使用CRM_MESSAGES_SEARCH
相关的FM还有很多,可以自己搜索研究一下。
有的时候需要判断当前事务是否包含错误消息,可以使用OO的方法,代码大体如下:
**检查是否有订单保存出错 ?
DATA : gt_messages TYPE crmt_genil_message_tab.
DATA : lt_messages TYPE crmt_genil_message.
DATA : lr_mess_obj TYPE REF TO cl_crm_message_obj_bt.
lr_mess_obj = cl_crm_message_obj_bt=>get_mess_obj( iv_guid = pv_guid iv_kind = 'A' ).
IF lr_mess_obj IS BOUND.
CALL METHOD lr_mess_obj->if_genil_message_container~get_messages
EXPORTING
iv_message_type = 'E'
iv_for_display = abap_false
IMPORTING
et_messages = gt_messages.
LOOP AT gt_messages INTO lt_messages WHERE type = 'E'.
ENDLOOP.
IF sy-subrc EQ 0 .
** do error handling……
ENDIF.
ENDIF.


1楼2014-04-24 20:03回复