Ahora veremos como guardar un LOG con los resultados de un JOB (proceso de fondo) y que el mismo se pueda visualizar por medio de la transacción SLG1.
Lo primero es crear una clase de objeto por medio de la transacción SLG0.
Luego dentro del programa se deberán crear las siguientes rutinas:
*&---------------------------------------------------------------------*
*& Include Z_MANEJO_ENVIO_LOG *
*&---------------------------------------------------------------------*
DATA: bal_log_head TYPE bal_s_log,
l_log_handle TYPE balloghndl.
*&---------------------------------------------------------------------*
*& Form open_msg
*&---------------------------------------------------------------------*
* *Se genera y se abre el colector de mensajes
*----------------------------------------------------------------------*
FORM open_msg.
CLEAR: bal_log_head.
* BCT2 es la clase de objeto correspondiente a SLG0
* BETA es la subclase de objeto correspondiente a SLG0
CONCATENATE 'BCT2' sy-datum sy-uzeit sy-uname
sy-repid INTO bal_log_head-extnumber SEPARATED BY space.
bal_log_head-object = 'BCT2'.
bal_log_head-subobject = 'BETA'.
bal_log_head-aldate = sy-datum.
bal_log_head-altime = sy-uzeit.
bal_log_head-aluser = sy-uname.
bal_log_head-altcode = sy-tcode.
bal_log_head-alprog = sy-repid.
bal_log_head-almode = sy-batch.
* create own log handle
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = bal_log_head
IMPORTING
e_log_handle = l_log_handle
EXCEPTIONS
OTHERS = 1.
ENDFORM. " f_open_msg
*&---------------------------------------------------------------------*
*& Form send_msg
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM send_msg USING p_msgty TYPE c
p_msgid TYPE c
p_msgno TYPE i
p_msgv1 TYPE c
p_msgv2 TYPE c
p_msgv3 TYPE c
p_msgv4 TYPE c.
DATA ls_bal_msg TYPE bal_s_msg.
CLEAR ls_bal_msg.
ls_bal_msg-msgty = p_msgty.
ls_bal_msg-msgid = p_msgid.
ls_bal_msg-msgno = p_msgno.
ls_bal_msg-msgv1 = p_msgv1.
ls_bal_msg-msgv2 = p_msgv2.
ls_bal_msg-msgv3 = p_msgv3.
ls_bal_msg-msgv4 = p_msgv4.
* add own message to application log
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = l_log_handle
i_s_msg = ls_bal_msg
EXCEPTIONS
OTHERS = 1.
PERFORM close_msg.
ENDFORM. "send_msg
*&---------------------------------------------------------------------*
*& Form close_msg
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM close_msg.
DATA lt_log_handles TYPE bal_t_logh.
APPEND l_log_handle TO lt_log_handles.
CALL FUNCTION 'BAL_DB_SAVE'
EXPORTING
i_t_log_handle = lt_log_handles
EXCEPTIONS
log_not_found = 1
save_not_allowed = 2
numbering_error = 3
OTHERS = 4.
* if everything is ok
COMMIT WORK.
ENDFORM. "close_msg
viernes, 5 de agosto de 2011
Suscribirse a:
Entradas (Atom)