*&---------------------------------------------------------------------*
*& Form CREATE_LOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_C_OBJECT text
* -->P_C_SUBOBJECT text
* <--P_GV_LOG_HANDLE text
*---------------------------------------------------------------*
FORM create_log USING p_object TYPE balobj_d
p_subobject TYPE balsubobj
CHANGING p_log_handle TYPE balloghndl.
DATA: ls_header TYPE bal_s_log.
ls_header-object = p_object.
ls_header-subobject = p_subobject.
ls_header-aldate = sy-datum.
ls_header-altime = sy-uzeit.
ls_header-aluser = sy-uname.
ls_header-altcode = sy-tcode.
ls_header-alprog = sy-repid.
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = ls_header
IMPORTING
e_log_handle = p_log_handle
EXCEPTIONS
log_header_inconsistent = 1
OTHERS = 2.
ENDFORM. " CREATE_LOG
Añadimos el mensaje al Log Se realiza el contenido del programa y se graban los mensajes.
PERFORM new_message USING lv_log_handle 'E' '025' 'ZXXX' ls_sociedades-sociedad space space space 4.
*&---------------------------------------------------------------------*
*& Form NEW_MESSAGE
*&--------------------------------------------------------------------
* -->P_GV_LOG_HANDLE text
* -->P_0090 text
* -->P_0091 text
* -->P_0092 text
* -->P_LS_SOCIEDADES_SOCIEDAD text
* -->P_SPACE text
* -->P_SPACE text
* -->P_SPACE text
* -->P_4 text
*----------------------------------------------------------------------*
*& Form NEW_MESSAGE
*&--------------------------------------------------------------------
* -->P_GV_LOG_HANDLE text
* -->P_0090 text
* -->P_0091 text
* -->P_0092 text
* -->P_LS_SOCIEDADES_SOCIEDAD text
* -->P_SPACE text
* -->P_SPACE text
* -->P_SPACE text
* -->P_4 text
*----------------------------------------------------------------------*
FORM new_message USING p_log_handle TYPE balloghndl
p_mtype
p_msgno
p_msgid
p_msgv1
p_msgv2
p_msgv3
p_msgv4
p_probc.
DATA: ls_msg TYPE bal_s_msg.
DATA: l_msg_was_logged TYPE boolean.
CLEAR ls_msg.
ls_msg-msgty = p_mtype. "Tipo de Mensaje
ls_msg-msgno = p_msgno. "Numero de Mensaje
ls_msg-msgid = p_msgid. "Clase de Mensaje
ls_msg-msgv1 = p_msgv1. "Variables de Mensaje
ls_msg-msgv2 = p_msgv2.
ls_msg-msgv3 = p_msgv3.
ls_msg-msgv4 = p_msgv4.
ls_msg-probclass = p_probc .
"1 muy import, 2 import, 3 medio, 4 Info adicional, space Otros
p_mtype
p_msgno
p_msgid
p_msgv1
p_msgv2
p_msgv3
p_msgv4
p_probc.
DATA: ls_msg TYPE bal_s_msg.
DATA: l_msg_was_logged TYPE boolean.
CLEAR ls_msg.
ls_msg-msgty = p_mtype. "Tipo de Mensaje
ls_msg-msgno = p_msgno. "Numero de Mensaje
ls_msg-msgid = p_msgid. "Clase de Mensaje
ls_msg-msgv1 = p_msgv1. "Variables de Mensaje
ls_msg-msgv2 = p_msgv2.
ls_msg-msgv3 = p_msgv3.
ls_msg-msgv4 = p_msgv4.
ls_msg-probclass = p_probc .
"1 muy import, 2 import, 3 medio, 4 Info adicional, space Otros
Añadimos el mensaje al Log
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = p_log_handle
i_s_msg = ls_msg
IMPORTING
e_msg_was_logged = l_msg_was_logged
EXCEPTIONS
log_not_found = 1
msg_inconsistent = 2
log_is_full = 3
OTHERS = 4.
ENDFORM. " NEW_MESSAGE
Por último añadimos el mensaje al Log
PERFORM grabar_log USING lv_log_handle.
*&---------------------------------------------------------------------*
*& Form GRABAR_LOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*& Form GRABAR_LOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM grabar_log USING p_log_handle TYPE balloghndl.
DATA: lt_log_handles TYPE bal_t_logh.
INSERT p_log_handle INTO TABLE lt_log_handles.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_save_all = 'X'
i_in_update_task = 'X'
i_t_log_handle = lt_log_handles
EXCEPTIONS
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
OTHERS = 4.
COMMIT WORK.
ENDFORM. " GRABAR_LOG
DATA: lt_log_handles TYPE bal_t_logh.
INSERT p_log_handle INTO TABLE lt_log_handles.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_save_all = 'X'
i_in_update_task = 'X'
i_t_log_handle = lt_log_handles
EXCEPTIONS
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
OTHERS = 4.
COMMIT WORK.
ENDFORM. " GRABAR_LOG
Cabe destacar que para el Objeto y subojeto los podemos crear en la Tx: SLG0 para la organización del Log.
Uso exactamente las mismas funciones para un programa que me lanza funciones z en modo batch (in update task por ejemplo) pero no me carga los mensajes de esas ejecuciones. Alguna idea por que puede ser?. Le estoy pasando el handle como parámetro a esas funciones y realizo el SAVE cuando finaliza cada una de sus ejecuciones.
ResponderEliminarHola Jorge , encantado!!
ResponderEliminarYienes que poner esto después de salvar el LOG
METHOD save_log.
DATA: lt_log_handles TYPE bal_t_logh.
INSERT iv_log_handle INTO TABLE lt_log_handles.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_save_all = 'X'
i_in_update_task = 'X'
i_t_log_handle = lt_log_handles
EXCEPTIONS
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
OTHERS = 4.
COMMIT WORK.
*-- Mostrar el LOG
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
EXCEPTIONS
profile_inconsistent = 1
internal_error = 2
no_data_available = 3
no_authority = 4
OTHERS = 5.
ENDMETHOD.
Un saludo!