How to create application log?
This example allow you to show log with Pop-Up log, but you can also skip the Pop-Up, and see the log in SLG1/SLG2.
You must declare the Object & Subobject In transaction SLG0
ls_log-object = 'Zxxxxx'.
ls_log-subobject = 'Zxxxxxxxxxx'.
ls_log-altcode = 'TRANSACTION_CODE'. " Your transaction code or other
ls_log-alprog = 'PROGRAM'. " SY-REPID
ls_log-extnumber = 'Your run ID Log date & time & use...'.
Step 01 Build the header log ** Only start process
Step 02 Build error in App. log table ** All time you need
Step 03 Add you App. log ** All time you need
Step 04 Save you App. log ** Only on end process
Step 05 This step is only to view your App. log
To see the App. log data, you must process transactio SLG1/2
Report: ZTEST_APPLICATION_LOG
*&---------------------------------------------------------------------*
*& Report ZTEST_APPLICATION_LOG
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztest_application_log MESSAGE-ID z1.
DATA: ls_log TYPE bal_s_log.
DATA: lv_handle TYPE balloghndl.
DATA: gt_messages TYPE bapiret2_t.
DATA: gs_messages TYPE bapiret2.
DATA: ls_message TYPE bal_s_msg.
DATA: ls_display TYPE bal_s_prof.
DATA: ls_return TYPE bal_s_excm.
DATA: lt_handles TYPE bal_t_logh.
DATA: log_object TYPE balobj-object.
DATA: log_subobject TYPE balsub-subobject.
DATA: header TYPE balhdri.
DATA: single_message TYPE balmi,
single_msg TYPE TABLE OF balmi.
DATA: e_new_lognumbers TYPE bal_t_lgnm.
DATA: is_log_h TYPE bal_s_log,
es_log_handle TYPE balloghndl.
DATA: l_s_msg TYPE bal_s_msg.
FIELD-SYMBOLS: <ls_message> LIKE LINE OF gt_messages.
START-OF-SELECTION.
** Header data log.
** Step 01
ls_log-object = 'ZHR'.
ls_log-subobject = 'ZHR_RETALIX'.
ls_log-aldate = sy-datum.
ls_log-altime = sy-uzeit.
ls_log-aluser = sy-uname.
ls_log-altcode = 'ZHR_LOAD_EMPL'.
ls_log-alprog = 'ZHR_LOAD_EMPLOYEES'.
ls_log-extnumber = 'Station: 200 Employee: 165 Batch-Date: 23.12.2010'.
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = ls_log
IMPORTING
e_log_handle = lv_handle
EXCEPTIONS
log_header_inconsistent = 1
OTHERS = 2.
** Line data log
** Step 02
gs_messages-id = 'Z1'.
gs_messages-type = 'E'.
gs_messages-number = '000'.
gs_messages-message_v1 = 'Error found in employee'.
gs_messages-message_v2 = 'Line 2 error employee'.
APPEND: gs_messages TO gt_messages.
gs_messages-id = 'Z1'.
gs_messages-type = 'W'.
gs_messages-number = '000'.
gs_messages-message_v1 = 'ID number is wrong'.
gs_messages-message_v2 = 'Line 3 error employee'.
APPEND: gs_messages TO gt_messages.
gs_messages-id = 'Z1'.
gs_messages-type = 'I'.
gs_messages-number = '000'.
gs_messages-message_v1 = 'Wrond birth date'.
gs_messages-message_v2 = 'Line 4 error employee'.
APPEND: gs_messages TO gt_messages.
gs_messages-id = 'Z1'.
gs_messages-type = 'I'.
gs_messages-number = '000'.
gs_messages-message_v1 = 'SMS - Was send: worrning in station/tank 136/1 vvvvvv'.
gs_messages-message_v2 = 'Line 4 error employee'.
APPEND: gs_messages TO gt_messages.
* Add the messages
** Step 03
LOOP AT gt_messages ASSIGNING <ls_message>.
ls_message-msgty = <ls_message>-type.
ls_message-msgid = <ls_message>-id.
ls_message-msgno = <ls_message>-number.
ls_message-msgv1 = <ls_message>-message_v1.
ls_message-msgv2 = <ls_message>-message_v2.
ls_message-msgv3 = <ls_message>-message_v3.
ls_message-msgv4 = <ls_message>-message_v4.
ls_message-probclass = '2'.
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = lv_handle
i_s_msg = ls_message
EXCEPTIONS
log_not_found = 1
msg_inconsistent = 2
log_is_full = 3
OTHERS = 4.
ENDLOOP.
** Step 04
APPEND lv_handle TO lt_handles.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_save_all = 'X'
i_t_log_handle = lt_handles
IMPORTING
e_new_lognumbers = e_new_lognumbers
EXCEPTIONS
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
error_message = 4
OTHERS = 5.
** Step 05
ls_display-title = 'Log test Shimon'.
ls_display-use_grid = 'X'.
ls_display-start_col = 1.
ls_display-start_row = 30.
ls_display-end_col = 80.
ls_display-end_row = 120.
ls_display-pop_adjst = 'X'.
* get a prepared profile
CALL FUNCTION 'BAL_DSP_PROFILE_POPUP_GET'
IMPORTING
e_s_display_profile = ls_display
EXCEPTIONS
OTHERS = 1.
* Display the Log
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
EXPORTING
i_s_display_profile = ls_display
i_t_log_handle = lt_handles
IMPORTING
e_s_exit_command = ls_return
EXCEPTIONS
profile_inconsistent = 0
internal_error = 0
no_data_available = 0
no_authority = 0.
Result:
No comments:
Post a Comment