- *&---------------------------------------------------------------------*
- *& Report ZNADAR_KKK
- *&---------------------------------------------------------------------*
- *&
- *&---------------------------------------------------------------------*
- REPORT znadar_to_log.
- CLASS z_to_log DEFINITION.
- PUBLIC SECTION.
- DATA: g_head TYPE bal_s_log,
- g_pos TYPE bal_s_msg,
- g_active TYPE xfeld.
- METHODS:
- constructor IMPORTING I_object TYPE balobj_d
- i_subobject TYPE balsubobj OPTIONAL
- i_break type aab_id_name OPTIONAL,
- log_add IMPORTING is_msg TYPE bal_s_msg OPTIONAL
- i_save TYPE xfeld OPTIONAL
- is_text TYPE string OPTIONAL,
- log_active_via_Saab IMPORTING i_break TYPE aab_id_name,
- log_display,
- log_save.
- PRIVATE SECTION.
- DATA: g_handle TYPE balloghndl,
- g_count TYPE i.
- METHODS:
- LOG_Create.
- ENDCLASS.
- CLASS z_to_log IMPLEMENTATION.
- METHOD log_active_via_Saab.
- DATA: l_username TYPE aab_id_act-username,
- l_aab_id_propt type aab_id_propt,
- w_timestamp TYPE aab_id_act-act_tstamp,
- t_z TYPE string,
- l_tadir type tadir.
- check g_active = abap_true.
- SELECT SINGLE * FROM aab_id_prop INTO @DATA(l_aab_id_prop)
- WHERE name = @i_break.
- IF sy-subrc EQ 0.
- * SELECT SINGLE * FROM aab_id_act INTO @DATA(l_aab_id_act)
- * WHERE name = @i_break.
- *
- * IF sy-subrc NE 0.
- * CLEAR g_active.
- * ELSE.
- *--[ Check for active SAAB ID
- CONVERT DATE sy-datum TIME sy-uzeit
- INTO TIME STAMP w_timestamp TIME ZONE t_Z.
- SELECT SINGLE * FROM aab_id_act INTO @data(l_aab_id_act)
- WHERE name = @i_break AND
- ( username = @sy-uname OR
- username = @l_username ) AND
- act_tstamp <= @w_timestamp AND
- exp_tstamp >= @w_timestamp.
- IF sy-subrc NE 0. "<-- No está activo para este user o tiempo
- CLEAR g_active.
- ENDIF.
- * ENDIF.
- ELSE.
- *--[ Don't look here... Get away!! Just Stuff :D :D
- *--[ Metemos el nuevo break-proint
- l_aab_id_propt-NAME = l_aab_id_prop-name = i_break.
- l_aab_id_propt-LANGU = sy-langu.
- l_aab_id_propt-DESCRIPT = i_break.
- l_tadir-PGMID = 'R3TR'.
- l_tadir-OBJECT = 'ACID'.
- l_tadir-obj_name = i_break.
- l_tadir-srcsystem = sy-sysid.
- l_tadir-author = 'ZLOG'.
- l_tadir-devclass = '$TMP'.
- l_tadir-cproject = ' S'.
- l_tadir-masterlang = sy-langu.
- l_tadir-created_on = sy-datum.
- check i_break cp 'Z*'.
- modify aab_id_prop from l_aab_id_prop.
- modify aab_id_propt from l_aab_id_propt.
- insert tadir from l_tadir.
- ENDIF.
- ENDMETHOD.
- METHOD log_add.
- TYPES: BEGIN OF ty_msg,
- msgv1 TYPE bal_s_msg-msgv1,
- msgv2 TYPE bal_s_msg-msgv1,
- msgv3 TYPE bal_s_msg-msgv1,
- msgv4 TYPE bal_s_msg-msgv1,
- END OF ty_msg.
- DATA: l_msg TYPE bal_s_msg,
- ls_text TYPE ty_msg.
- CHECK NOT g_handle IS INITIAL.
- CHECK g_active = abap_true.
- IF is_msg IS INITIAL AND
- g_pos IS INITIAL AND
- is_text IS INITIAL.
- EXIT.
- ENDIF.
- IF is_msg IS INITIAL.
- IF NOT g_pos IS INITIAL.
- l_msg = g_pos.
- ENDIF.
- ELSE.
- l_msg = is_msg.
- ENDIF.
- *--[ Por defecto
- IF l_msg-probclass IS INITIAL. l_msg-probclass = '4'. ENDIF.
- IF l_msg-detlevel IS INITIAL. l_msg-detlevel = 1. ENDIF.
- IF l_msg-msgty IS INITIAL. l_msg-msgty = 'I'. ENDIF.
- IF l_msg-msgid IS INITIAL.
- l_msg-msgid = '000'.
- l_msg-msgno = '398'.
- ENDIF.
- IF NOT is_text IS INITIAL.
- ls_text = is_text.
- MOVE-CORRESPONDING ls_text TO l_msg.
- ENDIF.
- CALL FUNCTION 'BAL_LOG_MSG_ADD'
- EXPORTING
- i_log_handle = g_handle
- i_s_msg = l_msg
- EXCEPTIONS
- log_not_found = 0
- OTHERS = 1.
- ADD 1 TO g_count.
- CLEAR g_pos.
- CHECK NOT i_save IS INITIAL.
- me->log_save( ).
- ENDMETHOD.
- METHOD log_save.
- DATA: lt_loghandle TYPE bal_t_logh.
- CHECK NOT g_handle IS INITIAL.
- CHECK g_active = abap_true.
- CHECK g_count NE 0.
- APPEND g_handle TO lt_loghandle.
- CALL FUNCTION 'BAL_DB_SAVE'
- EXPORTING
- i_t_log_handle = lt_loghandle
- EXCEPTIONS
- log_not_found = 1
- save_not_allowed = 2
- numbering_error = 3
- error_message = 4
- OTHERS = 5.
- CLEAR g_count.
- ENDMETHOD.
- METHOD LOG_Create.
- check g_active = abap_true.
- CALL FUNCTION 'BAL_LOG_CREATE'
- EXPORTING
- i_s_log = g_head
- IMPORTING
- e_log_handle = g_handle
- EXCEPTIONS
- OTHERS = 1.
- ENDMETHOD.
- METHOD constructor.
- CLEAR: g_head, g_handle.
- g_head-object = I_object.
- g_head-subobject = i_subobject.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Verificamos que existan los objetos
- SELECT SINGLE * FROM balobj INTO @DATA(l_balobj)
- WHERE object = @g_head-object.
- IF sy-subrc NE 0.
- l_balobj-object = I_object.
- INSERT balobj FROM l_balobj.
- ENDIF.
- IF g_head-subobject IS INITIAL.
- SELECT SINGLE * FROM balsub INTO @DATA(l_balsub)
- WHERE object = @g_head-object.
- IF sy-subrc EQ 0.
- g_head-subobject = l_balsub-subobject.
- ELSE.
- g_head-subobject = g_head-object && '_1'.
- sy-subrc = 4.
- ENDIF.
- ELSE.
- SELECT SINGLE * FROM balsub INTO l_balsub
- WHERE object = g_head-object
- AND subobject = g_head-subobject.
- ENDIF.
- IF sy-subrc NE 0.
- MOVE-CORRESPONDING g_head TO l_balsub.
- INSERT balsub FROM l_balsub.
- ENDIF.
- *--[ Por defecto
- g_head-aldate = sy-datum.
- g_head-altime = sy-uzeit.
- g_head-aluser = sy-uname.
- g_head-alprog = sy-repid.
- g_active = abap_true.
- if not i_break is INITIAL.
- me->log_active_via_Saab( EXPORTING i_break = i_break ).
- endif.
- me->LOG_Create( ).
- ENDMETHOD.
- METHOD log_display.
- DATA: t_handle TYPE bal_t_logh.
- CHECK g_active = abap_true.
- check not g_handle is INITIAL.
- APPEND g_handle TO t_handle.
- CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
- EXPORTING
- * I_S_DISPLAY_PROFILE =
- i_t_log_handle = t_handle
- * I_T_MSG_HANDLE =
- * I_S_LOG_FILTER =
- * I_S_MSG_FILTER =
- * I_T_LOG_CONTEXT_FILTER =
- * I_T_MSG_CONTEXT_FILTER =
- i_amodal = 'X'
- * I_SRT_BY_TIMSTMP = ' '
- * I_MSG_CONTEXT_FILTER_OPERATOR = 'A'
- * IMPORTING
- * E_S_EXIT_COMMAND =
- EXCEPTIONS
- profile_inconsistent = 1
- internal_error = 2
- no_data_available = 3
- no_authority = 4
- OTHERS = 5.
- ENDMETHOD.
- ENDCLASS.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Creación...
- DATA: my_log TYPE REF TO z_to_log.
- end-of-SELECTION.
- BREAK-POINT.
- CREATE OBJECT my_log
- EXPORTING
- I_object = 'ZQUEEN' "<--
- * i_subobject = 'DETALLE_01'. "<-- Optional
- i_break = 'Z_ZAPATO2'. "<-- Optional for SAAB ID activation
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Manual Check if SAAB is active (Optional)
- *my_log->log_active_via_Saab( EXPORTING i_break = 'Z_ZAPATO2' ).
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ In the same HANDLE
- my_log->log_add( EXPORTING is_text = 'Hola mundo cruel' ).
- *--[ Ejemplo con estructura
- my_log->g_pos-msgid = '00'.
- my_log->g_pos-MSgTY = 'E'.
- my_log->g_pos-Msgno = '006'.
- my_log->g_pos-Msgv1 = 'No he'.
- my_log->g_pos-Msgv2 = '0'.
- my_log->log_add( ).
- my_log->log_add( EXPORTING is_text = 'Adios mundo!'
- i_SAVE = 'X' "<-- Automatic SAVE
- ).
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Display all messages
- my_log->log_display( ).
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Save LOG
- * My_log->log_save( ). "<--- Not need if I_SAVE at LOG_ADD
Última modificación de la página el 21 February 2022 a las 11h13
Powered by
PmWiki