FUNCTION Y_ISSUE_ROCO_IDOC. *"---------------------------------------------------------------------- *"*"Local interface: *" IMPORTING *" VALUE(I_MODE) LIKE Z1ROCO-ZMODE *" VALUE(I_ROUTE) LIKE Z1ROCO-ROUTE *" VALUE(I_CUT_OFF) LIKE Z1ROCO-CUT_OFF OPTIONAL *" VALUE(I_BEZEI) LIKE Z1ROCO-BEZEI OPTIONAL *" VALUE(I_TROUTE_MON) LIKE Z1ROCO-TROUTE_MON OPTIONAL *" VALUE(I_TROUTE_TUE) LIKE Z1ROCO-TROUTE_TUE OPTIONAL *" VALUE(I_TROUTE_WED) LIKE Z1ROCO-TROUTE_WED OPTIONAL *" VALUE(I_TROUTE_THU) LIKE Z1ROCO-TROUTE_THU OPTIONAL *" VALUE(I_TROUTE_FRI) LIKE Z1ROCO-TROUTE_FRI OPTIONAL *" VALUE(I_TROUTE_SAT) LIKE Z1ROCO-TROUTE_SAT OPTIONAL *" VALUE(I_TROUTE_SUN) LIKE Z1ROCO-TROUTE_SUN OPTIONAL *" VALUE(I_PGI_IND) LIKE Z1ROCO-PGI_IND OPTIONAL *"---------------------------------------------------------------------- DATA: W_EDIDC LIKE EDIDC OCCURS 5 WITH HEADER LINE, W_Z1ROCO LIKE EDIDC, L_EDIDC LIKE EDIDC, L_SEND_FLAG, W_SDATA LIKE EDIDD-SDATA. DATA: T_BDI_MODEL LIKE BDI_MODEL OCCURS 0 WITH HEADER LINE. DATA: T_EDIDC LIKE EDIDC OCCURS 0 WITH HEADER LINE. DATA: T_EDIDD LIKE EDIDD OCCURS 0 WITH HEADER LINE. *- Call function module to determine if message is to be distributed CALL FUNCTION 'ALE_MODEL_DETERMINE_IF_TO_SEND' EXPORTING MESSAGE_TYPE = 'ZZROCO' IMPORTING IDOC_MUST_BE_SENT = L_SEND_FLAG EXCEPTIONS OWN_SYSTEM_NOT_DEFINED = 1 OTHERS = 2. *- Determine recipient systems CALL FUNCTION 'ALE_MODEL_INFO_GET' EXPORTING MESSAGE_TYPE = 'ZZROCO' * RECEIVING_SYSTEM = ' ' * SENDING_SYSTEM = ' ' * VALIDDATE = SY-DATUM TABLES MODEL_DATA = T_BDI_MODEL EXCEPTIONS NO_MODEL_INFO_FOUND = 1 OWN_SYSTEM_NOT_DEFINED = 2 OTHERS = 3. * 3.2 *Call function 'L_IDOC_HEADER_CREATE' * exporting * i_mestyp = 'ZZROCO' * i_mescod = ' ' * i_idoctp = 'ZSDROCO' * i_rcvprn = 'Z_WMS' * exceptions * others = 1. * 3.3 MOVE I_MODE TO Z1ROCO-ZMODE. MOVE I_ROUTE TO Z1ROCO-ROUTE. MOVE I_CUT_OFF TO Z1ROCO-CUT_OFF. MOVE I_BEZEI TO Z1ROCO-BEZEI. MOVE I_TROUTE_MON TO Z1ROCO-TROUTE_MON. MOVE I_TROUTE_TUE TO Z1ROCO-TROUTE_TUE. MOVE I_TROUTE_WED TO Z1ROCO-TROUTE_WED. MOVE I_TROUTE_THU TO Z1ROCO-TROUTE_THU. MOVE I_TROUTE_FRI TO Z1ROCO-TROUTE_FRI. MOVE I_TROUTE_SAT TO Z1ROCO-TROUTE_SAT. MOVE I_TROUTE_SUN TO Z1ROCO-TROUTE_SUN. MOVE I_PGI_IND TO Z1ROCO-PGI_IND. MOVE Z1ROCO TO: W_SDATA, T_EDIDD-SDATA. MOVE 'Z1ROCO' TO T_EDIDD-SEGNAM. APPEND T_EDIDD. *call function 'L_IDOC_SEGMENT_CREATE' * exporting * i_segnam = 'Z1ROCO' * i_sdata = w_sdata * exceptions * others = 1. *call function 'L_IDOC_SEND' * tables * t_comm_idoc = w_edidc * exceptions * error_distribute_idoc = 1 * others = 2. READ TABLE T_BDI_MODEL INDEX 1. " maximum 1 recipient MOVE 'ZZROCO' TO L_EDIDC-MESTYP. MOVE 'ZSDROCO' TO L_EDIDC-IDOCTP. MOVE 'LS' TO L_EDIDC-RCVPRT. MOVE T_BDI_MODEL-RCVSYSTEM TO L_EDIDC-RCVPRN. *- Distribute the iDoc CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' IN UPDATE TASK EXPORTING MASTER_IDOC_CONTROL = L_EDIDC TABLES COMMUNICATION_IDOC_CONTROL = W_EDIDC MASTER_IDOC_DATA = T_EDIDD EXCEPTIONS ERROR_IN_IDOC_CONTROL = 01 ERROR_WRITING_IDOC_STATUS = 02 ERROR_IN_IDOC_DATA = 03 SENDING_LOGICAL_SYSTEM_UNKNOWN = 04. COMMIT WORK. *E_RESPONSE = SY-SUBRC. ENDFUNCTION.