viernes, 26 de abril de 2013

Code para transacción para lanzar cadenas


&---------------------------------------------------------------------*
*& Report  ZBWPR00
*&
*

REPORT  ZBWPR00.

************************************************************************
* VARIABLES
************************************************************************
CONSTANTS:  c_co(13) TYPE C VALUE 'ZPC_IG_TRAN03', "Comercial
            c_lo(13) TYPE C VALUE 'ZPC_IG_TRAN04', "Logística
            c_cg(13) TYPE C VALUE 'ZPC_IG_TRAN05', "Control de Gestión
            c_pr(13) TYPE C VALUE 'ZPC_IG_TRAN02', "Producción
            c_ca(13) TYPE C VALUE 'ZPC_IG_TRAN06', "Calidad
            c_fi(13) TYPE C VALUE 'ZPC_IG_TRAN07', "Finanzas
            c_rh(13) TYPE C VALUE 'ZPC_IG_TRAN01'. "Recursos Humanos

DATA: V_CHAIN TYPE RSPC_CHAIN. "Cadena de proceso


************************************************************************
* PANTALLA SELECCIÓN
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS:
            cb_co   AS CHECKBOX, "Comercial
            cb_lo   AS CHECKBOX, "Logística
            cb_cg   AS CHECKBOX, "Control de Gestión
            cb_pr   AS CHECKBOX, "Producción
            cb_ca   AS CHECKBOX, "Calidad
            cb_fi   AS CHECKBOX, "Finanzas
            cb_rh   AS CHECKBOX. "Recursos Humanos

SELECTION-SCREEN END OF BLOCK b1.

************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION.


   MESSAGE I000(zbw).

   IF cb_co IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_co.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.

   IF cb_lo IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_lo.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.

   IF cb_cg IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_cg.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.

   IF cb_pr IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_pr.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.


   IF cb_ca IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_ca.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.


   IF cb_fi IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_fi.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.

   IF cb_rh IS NOT INITIAL.

         CLEAR V_CHAIN.
         V_CHAIN = c_rh.
         PERFORM F_CHAIN_START USING V_CHAIN.

   ENDIF.



*****************************************************************
* RUTINAS
*****************************************************************

*&---------------------------------------------------------------------*
*&      Form  F_CHAIN_START
*&---------------------------------------------------------------------*
*    Ejecutar cadena de procesos
*----------------------------------------------------------------------*
*      -->Pe_CHAIN  text
*----------------------------------------------------------------------*
FORM F_CHAIN_START  USING  Pe_CHAIN.

  CALL FUNCTION 'RSPC_CHAIN_START' IN BACKGROUND TASK
*                     [AS SEPARATE UNIT]
*                     [DESTINATION dest]
     EXPORTING
          i_chain             = Pe_CHAIN
          i_synchronous       = 'X'.
.
COMMIT WORK.


*   CALL FUNCTION 'RSPC_CHAIN_START'
*     EXPORTING
*          i_chain             = Pe_CHAIN
*          i_synchronous       = 'X'.

ENDFORM.                    " F_CHAIN_START

No hay comentarios: