Tabla
Attach:Attach:Z58_I_BREAK_ME.jpg Δ
- *--[
- *--[ V.1.01 20150715 - Se añade gestión de bucles infinitos
- *--[
- *--[ USA A VARIABLE SY-LISEL PARA PASAR EL PARAMETRO DEL TAG
- *--[ EL TAG SIEMPRE DEBE COMENZAR POR @
- *--[
- *--[ Añadimos el break a la tabla, por si no está
- PERFORM INSERT_BKP IN PROGRAM Z58_I_BREAK_ME_PLUS IF FOUND
- USING SY-CPROG
- SY-REPID.
- *--[ Comprobamos si existe completamente el BKP
- PERFORM CHECK_BKP IN PROGRAM Z58_I_BREAK_ME_PLUS IF FOUND
- USING SY-CPROG
- SY-REPID
- CHANGING SY-SUBRC.
- *--[ Si estás leyendo esto es porque hay un BREAK-POINT configurado
- *--[ en la tabla Z58_IG_TB_BRK.
- *--[ En la variable SY-LISEL podrás ver el motivo
- *--[ Desactivalo si ya no lo necesitas
- CASE SY-SUBRC.
- WHEN 100. BREAK-POINT.
- WHEN 101.
- DO.
- IF SY-SUBRC EQ 69.
- EXIT.
- ENDIF.
- ENDDO.
- ENDCASE.
- REPORT Z58_I_BREAK_ME_PLUS.
- *--[ Rutinas de soporte para el include Z58_I_BREAK_ME
- FORM INSERT_BKP USING P_CPROG TYPE SYCPROG
- P_REPID TYPE SYREPID.
- DATA: L_Z58_IG_TB_BRK TYPE Z58_IG_TB_BRK,
- L_MOTIVO TYPE TEXT50.
- IF SY-LISEL+0(1) = '@'.
- *--[ Buscamos por TAG
- SELECT SINGLE MOTIVO INTO L_MOTIVO FROM Z58_IG_TB_BRK
- WHERE TAG = SY-LISEL.
- ELSE.
- *--[ Buscamos por programa
- SELECT SINGLE MOTIVO INTO SY-LISEL FROM Z58_IG_TB_BRK
- WHERE CPROG = P_CPROG
- AND REPID = P_REPID.
- ENDIF.
- IF SY-SUBRC NE 0.
- CLEAR L_Z58_IG_TB_BRK.
- IF SY-LISEL+0(1) = '@'.
- L_Z58_IG_TB_BRK-TAG = SY-LISEL.
- IF SY-MSGV1 IS INITIAL.
- L_Z58_IG_TB_BRK-MOTIVO = '## AUTOMATIC TAG BREAK ##'.
- ELSE.
- L_Z58_IG_TB_BRK-MOTIVO = SY-MSGV1.
- ENDIF.
- ELSE.
- L_Z58_IG_TB_BRK-MOTIVO = '## AUTOMATIC SOURCE BREAK ##'.
- ENDIF.
- L_Z58_IG_TB_BRK-CPROG = P_CPROG.
- L_Z58_IG_TB_BRK-REPID = P_REPID.
- L_Z58_IG_TB_BRK-UNAME = SY-UNAME.
- L_Z58_IG_TB_BRK-DATBI = '99991231'.
- L_Z58_IG_TB_BRK-DATAB = SY-DATUM.
- INSERT Z58_IG_TB_BRK FROM L_Z58_IG_TB_BRK.
- ENDIF.
- ENDFORM. "insert_BKP
- FORM CHECK_BKP USING P_CPROG TYPE SYCPROG
- P_REPID TYPE SYREPID
- CHANGING P_SUBRC.
- IF SY-LISEL+0(1) = '@'.
- SELECT SINGLE BUCLE INTO SY-LISEL FROM Z58_IG_TB_BRK
- WHERE TAG = SY-LISEL
- AND ( UNAME = SY-UNAME OR UNAME = '*' )
- AND DATBI >= SY-DATUM
- AND DATAB <= SY-DATUM
- AND ACTIV = 'X'.
- ELSE.
- SELECT SINGLE BUCLE INTO SY-LISEL FROM Z58_IG_TB_BRK
- WHERE CPROG = P_CPROG
- AND REPID = P_REPID
- AND ( UNAME = SY-UNAME OR UNAME = '*' )
- AND DATBI >= SY-DATUM
- AND DATAB <= SY-DATUM
- AND ACTIV = 'X'.
- ENDIF.
- IF SY-SUBRC EQ 0.
- P_SUBRC = 100.
- IF SY-LISEL = 'X'.
- *--[ Bucle infinito activo
- ADD 1 TO P_SUBRC.
- ENDIF.
- ENDIF.
- ENDFORM.
Ejemplo
- *--[ Gestión de Break-Points
- SY-LISEL = '@ENVIAR_PSCP'. "<-- Optional TAG
- INCLUDE Z58_I_BREAK_ME. "<-- Magic appers here
Última modificación de la página el 04 November 2015 a las 15h04
Powered by
PmWiki