- REPORT zini_001.
- CLASS ZINI_Cl_BREAKME DEFINITION.
- PUBLIC SECTION.
- METHODS: constructor IMPORTING i_break TYPE any OPTIONAL.
- PRIVATE SECTION.
- DATA: l_hay_bucle TYPE xfeld,
- l_hay_break TYPE xfeld.
- METHODS: saab_add IMPORTING p_break TYPE any,
- saab_check IMPORTING p_break TYPE any
- CHANGING p_hay_break TYPE xfeld
- p_hay_bucle TYPE xfeld.
- ENDCLASS.
- CLASS zini_cl_breakme IMPLEMENTATION.
- METHOD constructor.
- CHECK NOT i_break IS INITIAL.
- saab_add( i_break ).
- saab_check( EXPORTING p_break = i_break
- CHANGING p_hay_break = l_hay_break
- p_hay_bucle = l_hay_bucle ).
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Si estas leyendo esto, es que alguien ha activado los breaks
- *--[ En la transaccion SAAB para el ID = i_BREAK
- IF l_hay_break = abap_true.
- BREAK-POINT.
- ENDIF.
- IF l_hay_bucle = abap_true.
- DO.
- *--[ El bucle esta activo porque en la SAAB, esta activo los
- *--[ Puntos de LOG
- *--[ Para salir del bucle, cambia el valor del sy-subrc o pon la
- *--[ siguiente linea de ejecucion en el endform.
- IF sy-subrc EQ 69.
- EXIT.
- ENDIF.
- ENDDO.
- ENDIF.
- ENDMETHOD.
- METHOD saab_check.
- DATA: l_username TYPE aab_id_act-username,
- w_timestamp TYPE aab_id_act-act_tstamp,
- t_z TYPE string.
- CLEAR: p_hay_bucle, p_hay_break.
- CHECK NOT p_break IS INITIAL.
- 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 = @p_break AND
- ( username = @sy-uname OR
- username = @l_username ) AND
- act_tstamp <= @w_timestamp AND
- exp_tstamp >= @w_timestamp.
- CHECK sy-subrc EQ 0.
- DATA(my_obj) = NEW cL_AAB_TOOL( ).
- My_OBJ->my_id_name = p_break.
- CALL METHOD cl_aab_tool=>convert_mode_to_output
- EXPORTING
- mode = l_aab_id_act-actmode
- IMPORTING
- * bp_inactive =
- bp_stop = DATA(l_000)
- * as_fg_inactive =
- as_fg_stop_bg_protocol = DATA(l_001)
- as_fg_stop_bg_rabax = DATA(l_002)
- as_fg_protocol = DATA(l_005)
- as_fg_rabax = DATA(l_003)
- * as_bg_text =
- * lp_inactive =
- lp_log = DATA(l_004)
- EXCEPTIONS
- mode_not_valid = 1
- OTHERS = 2.
- CHECK sy-subrc EQ 0.
- p_hay_bucle = COND #( WHEN l_004 IS NOT INITIAL THEN abap_true ELSE abap_false ).
- p_hay_break = COND #( WHEN l_000 IS NOT INITIAL THEN abap_true ELSE abap_false ).
- ENDMETHOD.
- METHOD saab_add.
- CHECK NOT p_break IS INITIAL.
- SELECT SINGLE * FROM aab_id_prop INTO @DATA(l_aab_id_prop)
- WHERE name = @p_break.
- CHECK sy-subrc NE 0.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Creamos un ID SAAB si no existe
- l_aab_id_prop-name = p_break.
- data(l_aab_id_propt) = VALUE aab_id_propt( name = p_break langu = sy-langu descript = p_break ).
- DATA(l_tadir) = VALUE tadir( pgmid = 'R3TR'
- object = 'ACID'
- obj_name = p_break
- srcsystem = sy-sysid
- author = sy-uname
- devclass = '$TMP'
- cproject = ' S'
- masterlang = sy-langu
- created_on = sy-datum
- ).
- CHECK p_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.
- ENDMETHOD.
- ENDCLASS.
- END-OF-SELECTION.
- DATA(l_break) = NEW ZINI_Cl_BREAKME( 'ZROMEO' ). " Dale un nombre a tu break-point
Última modificación de la página el 09 January 2025 a las 14h57
Powered by
PmWiki