FUNCTION zbreak_point.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(I_BREAK) TYPE AAB_ID_NAME OPTIONAL
*"----------------------------------------------------------------------
DATA: l_hay_bucle TYPE xfeld,
l_hay_break TYPE xfeld.
CHECK NOT i_break IS INITIAL.
PERFORM saab_add USING i_break.
PERFORM saab_check USING i_break
CHANGING l_hay_break
l_hay_bucle.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*--[ Sí estás leyendo esto, es que alguien ha activado el ASSERT LOG
*--[ En la transacción SAAB para el objeto de la variable p_break
*--[ Para salir del bucle, cambia el valor del sy-subrc o pon la
*--[ siguiente línea de ejecución en el endform.
IF l_hay_break = abap_true.
BREAK-POINT.
ENDIF.
IF l_hay_bucle = abap_true.
DO.
IF sy-subrc EQ 69.
EXIT.
ENDIF.
ENDDO.
ENDIF.
ENDFUNCTION.
FORM saab_check USING p_break
CHANGING p_hay_break p_hay_bucle.
DATA: l_username TYPE aab_id_act-username,
w_timestamp TYPE aab_id_act-act_tstamp,
t_z TYPE string,
my_obj TYPE REF TO cL_AAB_TOOL,
l_bucle TYPE aab_id_sfields-as_fg_stop_bg_protocol,
l_bp TYPE aab_id_sfields-bp_stop.
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.
CREATE OBJECT my_obj.
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 = l_bp
* as_fg_inactive =
* as_fg_stop_bg_protocol = l_bucle
* as_fg_stop_bg_rabax =
as_fg_protocol = l_bucle
* as_fg_rabax =
* as_bg_text =
* lp_inactive =
* lp_log =
EXCEPTIONS
mode_not_valid = 1
OTHERS = 2.
IF sy-subrc EQ 0 AND NOT l_bucle IS INITIAL.
p_hay_bucle = abap_true.
ENDIF.
IF sy-subrc EQ 0 AND NOT l_bp IS INITIAL.
p_hay_break = abap_true.
ENDIF.
ENDFORM.
FORM saab_add USING p_break.
DATA: l_aab_id_propt TYPE aab_id_propt,
l_tadir TYPE tadir.
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_propt-name = l_aab_id_prop-name = p_break.
l_aab_id_propt-langu = sy-langu.
l_aab_id_propt-descript = p_break.
l_tadir-pgmid = 'R3TR'.
l_tadir-object = 'ACID'.
l_tadir-obj_name = p_break.
l_tadir-srcsystem = sy-sysid.
l_tadir-author = sy-uname.
l_tadir-devclass = '$TMP'.
l_tadir-cproject = ' S'.
l_tadir-masterlang = sy-langu.
l_tadir-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.
ENDFORM.