删除 message
CLEAR LDS_SYMSGID.
LDS_SYMSGID-SIGN = LCF_SIGN. "I
LDS_SYMSGID-OPTION = LCF_OPTION. "EQ
LDS_SYMSGID-LOW = LCF_SYMSGID. "message class
APPEND LDS_SYMSGID TO LDT_SYMSGID.
* 设定 删除函数 用的内表
CLEAR LDS_SYMSGNO.
LDS_SYMSGNO-SIGN = LCF_SIGN. "I
LDS_SYMSGNO-OPTION = LCF_OPTION. "EQ
LDS_SYMSGNO-LOW-MSGID = LCF_SYMSGID." message class
LDS_SYMSGNO-LOW-MSGNO = LCF_SYMSGNOA."message no
APPEND LDS_SYMSGNO TO LDT_SYMSGNO.
CLEAR LDS_SYMSGNO.
LDS_SYMSGNO-SIGN = LCF_SIGN. "I
LDS_SYMSGNO-OPTION = LCF_OPTION. "EQ
LDS_SYMSGNO-LOW-MSGID = LCF_SYMSGID." message class
LDS_SYMSGNO-LOW-MSGNO = LCF_SYMSGNOB."mesage no
APPEND LDS_SYMSGNO TO LDT_SYMSGNO.
* 删除 特定项目的 指定message no
CALL FUNCTION 'CRM_MESSAGES_DELETE'
EXPORTING
IT_R_MSGID = LDT_SYMSGID
IT_R_MSGIDNO = LDT_SYMSGNO
IV_REF_OBJECT = GV_GUID “crm GUID (order type的标志)
IV_REF_KIND = LCF_REFKIND
IV_CALLER_NAME = LCF_OBJ_NAMEA ”项目名
EXCEPTIONS
APPL_LOG_ERROR = 1
OTHERS = 2 .
这个函数 指定了 message class 和message no,这样 就只会删除 规定的message
一般都是本程序或者函数产生的message
guid 是crm 账票里特定的账票标志,
项目名 是指定 项目,好像是因为crm的message 都会写成log,
所以要求 指定 object
kind 我现在用的只有 两个值,A 和 B
A:header
B: detail
显示message
CALL FUNCTION 'CRM_MESSAGE_COLLECT'
EXPORTING
IV_CALLER_NAME = LCF_OBJ_NAMEA
IV_REF_OBJECT = GV_GUID
IV_REF_KIND = LCF_REFKIND
IV_MSGNO = LCF_SYMSGNOB
IV_MSGID = LCF_SYMSGID
IV_MSGTY = LCF_SYMSGTY
IV_MSGV1 = 'CRM_ORDER_MAINTAIN'
EXCEPTIONS
NOT_FOUND = 1
APPL_LOG_ERROR = 2
OTHERS = 3 .
IF SY-SUBRC <> 0 .
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF .