SAP MDG · REPLICATION INBOUND
How do I implement and use the MDG mass key mapping log display in ABAP?
The log display pattern saves the application log with BAL_DB_SAVE, sorts and formats GT_LOG, builds an ALV field catalog, and displays the run results with REUSE_ALV_GRID_DISPLAY. This is the standard pattern used in the MDG mass key mapping report to review status, object data, and messages after download or upload processing.
The log display pattern saves the application log with BAL_DB_SAVE, sorts and formats GT_LOG, builds an ALV field catalog, and displays the run results with REUSE_ALV_GRID_DISPLAY. This is the standard pattern used in the MDG mass key mapping report to review status, object data, and messages after download or upload processing.
The MDG mass key mapping report writes application log data and then displays it in an ALV grid. In the retrieved source, `FORM show_log` first calls `BAL_DB_SAVE`, checks `GT_LOG`, sorts the entries, fills display text such as the long-text icon, and builds a field catalog for the log columns before calling `REUSE_ALV_GRID_DISPLAY`.
Process flow
- Call `BAL_DB_SAVE` for `GT_LOG_HD`.
- Check whether `GT_LOG` is initial before displaying.
- Sort `GT_LOG` by `ROW_INDEX` and set the long-text icon.
- Build the ALV field catalog with the required columns.
- Call `REUSE_ALV_GRID_DISPLAY` with `CREATE_KEY_MAPPING_CREATE_LOG` as callback program.
- Handle double-click or drill-down actions in `ALV_USER_COMMAND`.
Referenced tables
| Object | Purpose |
|---|---|
GT_LOG | Internal log table displayed in the ALV output. |
GT_LOG_HD | Application log handles passed to `BAL_DB_SAVE`. |
ILLUSTRATIVE ABAP SAMPLE
Source ABAP example
Exact relevant implementation excerpt from the knowledge document.
1*----------------------------------------------------------------------*
2***INCLUDE CREATE_KEY_MAPPING_CREATE_LOG .
3*----------------------------------------------------------------------*
4*&---------------------------------------------------------------------*
5*& Form SHOW_LOG
6*&---------------------------------------------------------------------*
7* text
8*----------------------------------------------------------------------*
9* --> p1 text
10* <-- p2 text
11*----------------------------------------------------------------------*
12FORM show_log .
13
14 DATA: lt_extab TYPE slis_t_extab,
15 lt_fcat TYPE slis_t_fieldcat_alv,
16 ls_fcat TYPE LINE OF slis_t_fieldcat_alv,
17 ls_variant TYPE disvariant,
18 lf_repid TYPE syrepid,
19 ls_layout TYPE slis_layout_alv.
20
21 CALL FUNCTION 'BAL_DB_SAVE'
22 EXPORTING
23 i_t_log_handle = gt_log_hd.
24
25 CHECK NOT gt_log[] IS INITIAL.
26
27 SORT gt_log BY row_index.
28 gt_log-longtext = icon_text_act.
29 MODIFY gt_log TRANSPORTING longtext WHERE longtext IS INITIAL.
30
31* build field catalog
32 ls_fcat-tabname = 'GT_LOG'. "#EC NOTEXT
33
34 ls_fcat-fieldname = 'ROW_INDEX'. "#EC NOTEXT
35 ls_fcat-rollname = 'INDEX_I'. "#EC NOTEXT
36 ADD 1 TO ls_fcat-col_pos.
37 APPEND ls_fcat TO lt_fcat.
38
39 ls_fcat-fieldname = 'STATUS'. "#EC NOTEXT
40 ls_fcat-rollname = 'ICON_D'. "#EC NOTEXT
41 ls_fcat-seltext_l = text-012.
42 ls_fcat-seltext_m = text-012.
43 ls_fcat-seltext_s = text-012.
44 ls_fcat-icon = 'X'.
45 ADD 1 TO ls_fcat-col_pos.
46 APPEND ls_fcat TO lt_fcat.
47
48 CLEAR: ls_fcat-icon, ls_fcat-seltext_l , ls_fcat-seltext_m, ls_fcat-seltext_s.
49
50 ls_fcat-fieldname = 'OBJ_TYPE_TXT'. "#EC NOTEXT
51 ls_fcat-rollname = 'MDG_OBJECT_TYPE_CODE_BS'. "#EC NOTEXT
52 ADD 1 TO ls_fcat-col_pos.
53 APPEND ls_fcat TO lt_fcat.
54
55 ls_fcat-fieldname = 'OBJ_ID_TYPE_TXT'. "#EC NOTEXT
56 ls_fcat-rollname = 'MDG_IDS_TYPE_CODE_BS'. "#EC NOTEXT
57 ADD 1 TO ls_fcat-col_pos.
58 APPEND ls_fcat TO lt_fcat.
59
60 ls_fcat-fieldname = 'SYS_ID'. "#EC NOTEXT
61 ls_fcat-rollname = 'SLD_BSKEY'. "#EC NOTEXT
62 ADD 1 TO ls_fcat-col_pos.
63 APPEND ls_fcat TO lt_fcat.
64
65 ls_fcat-fieldname = 'ID_VALUE'. "#EC NOTEXT
66 ls_fcat-rollname = 'MDG_OBJECT_ID_BS'. "#EC NOTEXT
67 ADD 1 TO ls_fcat-col_pos.
68 APPEND ls_fcat TO lt_fcat.
69
70 ls_fcat-fieldname = 'EXT_SYS_ID'. "#EC NOTEXT
71 ls_fcat-rollname = 'External system id'. "#EC NOTEXT
72 ls_fcat-seltext_l = text-013.
73 ls_fcat-seltext_m = text-013.
74 ls_fcat-seltext_s = text-013.
75 ADD 1 TO ls_fcat-col_pos.
76 APPEND ls_fcat TO lt_fcat.
77 CLEAR: ls_fcat-seltext_l, ls_fcat-seltext_m, ls_fcat-seltext_s.
78
79 ls_fcat-fieldname = 'EXT_ID_VALUE'. "#EC NOTEXT
80 ls_fcat-rollname = 'External object id'. "#EC NOTEXT
81 ls_fcat-seltext_l = text-014.
82 ls_fcat-seltext_m = text-014.
83 ls_fcat-seltext_s = text-014.
84 ADD 1 TO ls_fcat-col_pos.
85 APPEND ls_fcat TO lt_fcat.
86 CLEAR: ls_fcat-seltext_l, ls_fcat-seltext_m, ls_fcat-seltext_s.
87
88 ls_fcat-fieldname = 'MSGTY'. "#EC NOTEXT
89 ls_fcat-rollname = 'SYMSGTY'. "#EC NOTEXT
90 ADD 1 TO ls_fcat-col_pos.
91 APPEND ls_fcat TO lt_fcat.
92
93 ls_fcat-fieldname = 'MSGID'. "#EC NOTEXT
94 ls_fcat-rollname = 'SYMSGID'. "#EC NOTEXT
95 ADD 1 TO ls_fcat-col_pos.
96 APPEND ls_fcat TO lt_fcat.
97
98 ls_fcat-fieldname = 'MSGNO'. "#EC NOTEXT
99 ls_fcat-rollname = 'SYMSGNO'. "#EC NOTEXT
100 ADD 1 TO ls_fcat-col_pos.
101 APPEND ls_fcat TO lt_fcat.
102
103 ls_fcat-fieldname = 'MESSAGE'.
104 ls_fcat-rollname = 'BAPI_MSG'.
105
106
107 ADD 1 TO ls_fcat-col_pos.
108 APPEND ls_fcat TO lt_fcat.
109
110 lf_repid = sy-repid.
111
112 ls_variant-report = 'CREATE_KEY_MAPPING_CREATE_LOG'.
113 ls_variant-handle = '01'.
114
115 SPLIT '&XXL &AQW %PC %SL &ABC &GRAPH &VEXCEL' "#EC NOTEXT
116 AT space INTO TABLE lt_extab.
117
118 ls_layout-colwidth_optimize = abap_true.
119
120 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'The remaining configuration, implementation details, and testing guidance continue from this answer more…
Related questions and keywords
Alternative questions
- How does the MDG mass key mapping report show the application log?
- How do I display mass key mapping processing messages in ALV?
- How do I save BAL logs and show them in an ALV grid?
Possible questions
- How do I implement the key mapping log display in the MDG mass key mapping report?
- What does the SHOW_LOG form do in ZCREATE_KEY_MAPPING_CREATE_LOG?
- How do I troubleshoot the ALV log output for key mapping processing?
- How do I adapt the log display pattern for my own MDG report?
- Which BAL and ALV objects are used in the mass key mapping log screen?