SAP CMAC_APPEND_SYS_MESSAGE_TABLE Function Module for Fill error message to BAPIRET2 internal table with SY structure
CMAC_APPEND_SYS_MESSAGE_TABLE is a standard cmac append sys message table SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Fill error message to BAPIRET2 internal table with SY structure processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for cmac append sys message table FM, simply by entering the name CMAC_APPEND_SYS_MESSAGE_TABLE into the relevant SAP transaction such as SE37 or SE38.
Function Group: CMAC00ERRORHANDLER
Program Name: SAPLCMAC00ERRORHANDLER
Main Program: SAPLCMAC00ERRORHANDLER
Appliation area:
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function CMAC_APPEND_SYS_MESSAGE_TABLE pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'CMAC_APPEND_SYS_MESSAGE_TABLE'"Fill error message to BAPIRET2 internal table with SY structure.
EXPORTING
* IV_MSGTY = "abweichender Message Type
* IV_LOG_NO = ' ' "Application log: log number
* IV_LOG_MSG_NO = ' ' "Application log: Internal message serial number
* IV_PARAMETER = "Parameter name
* IV_ROW = 0 "Lines in parameter
* IV_FIELD = "Field in parameter
CHANGING
CT_RETURN = "Return parameter
IMPORTING Parameters details for CMAC_APPEND_SYS_MESSAGE_TABLE
IV_MSGTY - abweichender Message Type
Data type: SY-MSGTYOptional: Yes
Call by Reference: No ( called with pass by value option)
IV_LOG_NO - Application log: log number
Data type: BAPIRETURN-LOG_NODefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IV_LOG_MSG_NO - Application log: Internal message serial number
Data type: BAPIRETURN-LOG_MSG_NODefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
IV_PARAMETER - Parameter name
Data type: BAPIRET2-PARAMETEROptional: Yes
Call by Reference: No ( called with pass by value option)
IV_ROW - Lines in parameter
Data type: BAPIRET2-ROWOptional: Yes
Call by Reference: No ( called with pass by value option)
IV_FIELD - Field in parameter
Data type: BAPIRET2-FIELDOptional: Yes
Call by Reference: No ( called with pass by value option)
CHANGING Parameters details for CMAC_APPEND_SYS_MESSAGE_TABLE
CT_RETURN - Return parameter
Data type: BAPIRET2_TOptional: No
Call by Reference: Yes
Copy and paste ABAP code example for CMAC_APPEND_SYS_MESSAGE_TABLE Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lv_iv_msgty | TYPE SY-MSGTY, " | |||
| lv_ct_return | TYPE BAPIRET2_T, " | |||
| lv_iv_log_no | TYPE BAPIRETURN-LOG_NO, " SPACE | |||
| lv_iv_log_msg_no | TYPE BAPIRETURN-LOG_MSG_NO, " SPACE | |||
| lv_iv_parameter | TYPE BAPIRET2-PARAMETER, " | |||
| lv_iv_row | TYPE BAPIRET2-ROW, " 0 | |||
| lv_iv_field | TYPE BAPIRET2-FIELD. " |
|   CALL FUNCTION 'CMAC_APPEND_SYS_MESSAGE_TABLE' "Fill error message to BAPIRET2 internal table with SY structure |
| EXPORTING | ||
| IV_MSGTY | = lv_iv_msgty | |
| IV_LOG_NO | = lv_iv_log_no | |
| IV_LOG_MSG_NO | = lv_iv_log_msg_no | |
| IV_PARAMETER | = lv_iv_parameter | |
| IV_ROW | = lv_iv_row | |
| IV_FIELD | = lv_iv_field | |
| CHANGING | ||
| CT_RETURN | = lv_ct_return | |
| . " CMAC_APPEND_SYS_MESSAGE_TABLE | ||
ABAP code using 7.40 inline data declarations to call FM CMAC_APPEND_SYS_MESSAGE_TABLE
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single MSGTY FROM SY INTO @DATA(ld_iv_msgty). | ||||
| "SELECT single LOG_NO FROM BAPIRETURN INTO @DATA(ld_iv_log_no). | ||||
| DATA(ld_iv_log_no) | = ' '. | |||
| "SELECT single LOG_MSG_NO FROM BAPIRETURN INTO @DATA(ld_iv_log_msg_no). | ||||
| DATA(ld_iv_log_msg_no) | = ' '. | |||
| "SELECT single PARAMETER FROM BAPIRET2 INTO @DATA(ld_iv_parameter). | ||||
| "SELECT single ROW FROM BAPIRET2 INTO @DATA(ld_iv_row). | ||||
| "SELECT single FIELD FROM BAPIRET2 INTO @DATA(ld_iv_field). | ||||
Search for further information about these or an SAP related objects