REPORT ZNADAR_TRANSPORTA NO STANDARD PAGE HEADING LINE-SIZE 130.
* Original: RDDPROTL
INCLUDE <ICON>.
TABLES: DD07T, TSTRFCOFIL, E07T, E071, E070L, E070, USR01, SSCRFIELDS,
ZCET_TR_POSITION.
CONSTANTS: YOSOY LIKE SY-UNAME VALUE 'DES016',
ESTOY(10) VALUE 'BCN.',
SUPERVISOR LIKE SY-UNAME VALUE 'DES015',
PROYECTO(15) VALUE 'ANIBAL.'.
************* Creacin de Ordenes
PARAMETERS: USUARI LIKE SY-UNAME.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: BOLA1 RADIOBUTTON GROUP TIT.
SELECTION-SCREEN COMMENT 5(30) BOL01.
SELECTION-SCREEN END OF LINE.
PARAMETERS: NOM(10),
DESC(60) LOWER CASE,
FELIPE LIKE SY-UNAME DEFAULT SUPERVISOR.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: BOLA2 RADIOBUTTON GROUP TIT.
SELECTION-SCREEN COMMENT 5(40) BOL2.
SELECTION-SCREEN END OF LINE.
PARAMETERS: ADDPARAM LIKE SXPGCOLIST-PARAMETERS,
CMDNAME(20) DEFAULT 'Z_TRANS'.
************* Parametros Log Orden
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: BOLA3 RADIOBUTTON GROUP TIT DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(40) BOL03.
SELECTION-SCREEN END OF LINE.
PARAMETERS: ORDEN(20).
SELECT-OPTIONS: SOLICI FOR ZCET_TR_POSITION-SOLICITUD,
SYUNAME FOR SY-UNAME.
PARAMETERS: LESS LIKE TSTRFCOFIL-TARSYSTEM. "Find
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS FCREA FOR E070-AS4DATE.
SELECT-OPTIONS FLIBERA FOR TSTRFCOFIL-TRDATE.
PARAMETERS OBJE LIKE E071-OBJ_NAME.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(18) TXT01.
PARAMETERS: DEST AS CHECKBOX DEFAULT 'X'. "View Destination
SELECTION-SCREEN COMMENT 30(18) TXT02.
PARAMETERS: OBJ AS CHECKBOX DEFAULT 'X'. "View Objects
SELECTION-SCREEN COMMENT 60(18) TXT03.
PARAMETERS: FLASTKR AS CHECKBOX DEFAULT 'X'. "View Last order
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(18) TXT04.
PARAMETERS: ERROR_G AS CHECKBOX DEFAULT 'X'. "View OK order
SELECTION-SCREEN COMMENT 30(18) TXT05.
PARAMETERS: ERROR_Y AS CHECKBOX DEFAULT 'X'. "View Warning order
SELECTION-SCREEN COMMENT 60(18) TXT06.
PARAMETERS: ERROR_R AS CHECKBOX DEFAULT 'X'. "View Error order
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
SELECTION-SCREEN FUNCTION KEY 3.
SELECTION-SCREEN FUNCTION KEY 4.
************* Parametros
TYPES: TS_COFILE_LINE LIKE TSTRFCOFIL,
TT_COFILE_LINES TYPE TS_COFILE_LINE OCCURS 0.
DATA: ZVRSN LIKE VRSN OCCURS 0 WITH HEADER LINE,
ZVRSD_OLD LIKE VRSD_OLD OCCURS 0 WITH HEADER LINE,
PV_DIR_T(1) VALUE 'T',
ORDEN_LIST LIKE TRSAPNAMES OCCURS 0 WITH HEADER LINE,
LS_COFILE_HEADER LIKE TSTRFCOFIH,
LT_COFILE_LINES TYPE TT_COFILE_LINES WITH HEADER LINE,
DES(60), AL(3) TYPE N ,AH LIKE AL, DESI(20), DL(1),
BEGIN OF I_BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA. "Estruct
DATA: END OF I_BDCDATA,
GEN LIKE ORDEN_LIST OCCURS 0 WITH HEADER LINE,
ZUSR01 LIKE USR01 OCCURS 0 WITH HEADER LINE,
ITAB LIKE LT_COFILE_LINES OCCURS 0 WITH HEADER LINE,
CX TYPE I,
CH TYPE I,
CL TYPE I,
PAR01 LIKE VRSD_OLD-OBJNAME,
PAR02 LIKE VRSD_OLD-OBJTYPE.
INITIALIZATION.
SELECT SINGLE TRKORR INTO ORDEN FROM E070L WHERE LASTNUM = 'TRKORR'.
ORDEN+4(16) = '*'.
MOVE 'Destination:' TO TXT01.
MOVE 'Objects:' TO TXT02.
MOVE 'Last Order' TO TXT03.
MOVE 'OK' TO TXT04.
MOVE 'Warning' TO TXT05.
MOVE 'ERROR' TO TXT06.
MOVE 'New Order-----------------------------------------' TO BOL01.
MOVE 'Transport Order-----------------------------------' TO BOL2.
MOVE 'Order Log-----------------------------------------' TO BOL03.
SSCRFIELDS-FUNCTXT_01 = 'Ordenes'.
SSCRFIELDS-FUNCTXT_02 = '@4A@'. "ZCET_TRANSXTER
SSCRFIELDS-FUNCTXT_03 = '@13@ Orden'. "ZCET_TRANSXTER
SSCRFIELDS-FUNCTXT_04 = 'Solicitud'. "ZCET_TRANSXTER
AT LINE-SELECTION.
IF SY-CUCOL >= 70 AND NOT E07T-AS4TEXT+0(10) IS INITIAL.
CLEAR I_BDCDATA. REFRESH I_BDCDATA.
PERFORM DYNPRO USING: 'X' 'SAPMZCET_TRANSTER01' '1003',
' ' 'BDC_OKCODE' '=ENTE',
' ' 'ZCET_E_HEADER-SOLICITUD'
E07T-AS4TEXT+0(10).
CALL TRANSACTION 'ZCET_TRANSTER03' USING I_BDCDATA MODE 'E'.
ELSE.
IF SY-LISEL+05(1) = ' '.
IF SY-LISEL+14(1) IS INITIAL.
IF SY-LISEL+30(1) IS INITIAL.
PERFORM LEE_ORDEN.
ELSE.
SUBMIT (SY-REPID) WITH ORDEN = ZVRSD_OLD-KORRNUM AND RETURN.
ENDIF.
ELSE.
SUBMIT RSPUTPRT WITH ACTTYPE = 'G'
WITH SYSNAME = LT_COFILE_LINES-TARSYSTEM
WITH TRKORR = ORDEN_LIST-TRKORR
AND RETURN.
ENDIF.
ELSE.
SUBMIT RDDPROTL WITH PV_DIR_T = 'T'
WITH PV_KORR = SY-LISEL+05(19)
WITH PV_TART = 'WOENRF'
WITH PV_USER = ORDEN_LIST-REP_USER
AND RETURN.
ENDIF.
ENDIF.
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'FC04'.
CALL TRANSACTION 'ZCET_TRANSTER03'.
ENDIF.
IF SSCRFIELDS-UCOMM = 'FC03'.
CLEAR I_BDCDATA. REFRESH I_BDCDATA.
PERFORM DYNPRO USING: 'X' 'RDDM0002' '0100',
' ' 'BDC_OKCODE' '=SRCH',
'X' 'RDDM0002' '0100',
' ' 'BDC_OKCODE' '/EBACK'.
CALL TRANSACTION 'SE09' USING I_BDCDATA MODE 'E'.
ENDIF.
IF SSCRFIELDS-UCOMM = 'FC01'.
CLEAR I_BDCDATA. REFRESH I_BDCDATA.
TYPES: TRWBO_CHARFLAG(1) TYPE C.
TYPES: BEGIN OF TRWBO_SELECTION,
TRKORRPATTERN LIKE E070-TRKORR,
STDREQUEST TYPE TRWBO_CHARFLAG,
CLIENT LIKE E070C-CLIENT,
TARSYSTEM LIKE E070-TARSYSTEM,
ALLCLIENTS TYPE TRWBO_CHARFLAG,
CATEG_SYST TYPE TRWBO_CHARFLAG,
CATEG_CUST TYPE TRWBO_CHARFLAG,
REQFUNCTIONS LIKE TRPARI-W_LONGSTAT,
REQSTATUS LIKE TRPARI-W_LONGSTAT,
TASKFUNCTIONS LIKE TRPARI-W_LONGSTAT,
TASKSTATUS LIKE TRPARI-W_LONGSTAT,
CONNECT_REQ_TASK_CONDITIONS TYPE C,
SINGLETASKS TYPE TRWBO_CHARFLAG,
FREETASKS_F LIKE TRPARI-W_LONGSTAT,
FREETASKS_S LIKE TRPARI-W_LONGSTAT,
FROMDATE LIKE E070-AS4DATE,
TODATE LIKE E070-AS4DATE,
END OF TRWBO_SELECTION.
DATA SELE TYPE TRWBO_SELECTION OCCURS 0 WITH HEADER LINE.
SELE-TRKORRPATTERN = 'DESK*'.
SELE-ALLCLIENTS = 'X'.
SELE-CATEG_SYST = 'X'.
SELE-CATEG_CUST = 'X'.
SELE-REQFUNCTIONS = 'ABCDEFKLMOPRSTWX'. "'KLAWTCOEMPDRSXF'.
SELE-REQSTATUS = 'NODLPA'.
SELE-FROMDATE = SY-DATUM. SELE-FROMDATE+4(4) = '0101'.
SELE-TODATE = SY-DATUM.
APPEND SELE.
CALL FUNCTION 'TR_SEARCH_AND_DISPLAY_REQUESTS'
EXPORTING
IV_USERNAME = SY-UNAME
IS_SELECTION = SELE
IV_VIA_SELSCREEN = ' '
EXCEPTIONS
ACTION_ABORTED_BY_USER = 1
OTHERS = 2.
ENDIF.
IF SSCRFIELDS-UCOMM = 'FC02'.
LEAVE TO TRANSACTION 'ZCET_TRANSTER01'.
ENDIF.
END-OF-SELECTION.
CASE 'X'.
WHEN BOLA1. PERFORM CREAR_ORDEN.
WHEN BOLA2. PERFORM TRANSPORTA.
WHEN BOLA3. PERFORM LEE_ORDEN.
ENDCASE.
FORM LEE_ORDEN. "Leemos el Log de la Orden
CLEAR: SY-LSIND, GEN, ZUSR01. REFRESH: GEN, ZUSR01.
* Maldita funcin no se le puede pasar el user en blanco!!!
IF NOT OBJE IS INITIAL.
SELECT MAX( TRKORR ) INTO ORDEN FROM E071 WHERE OBJ_NAME = OBJE.
SELECT SINGLE STRKORR INTO ORDEN FROM E070 WHERE TRKORR = ORDEN.
ENDIF.
SELECT SINGLE * FROM E070 WHERE TRKORR = ORDEN.
IF SY-SUBRC NE 0.
IF NOT SYUNAME IS INITIAL AND SOLICI IS INITIAL.
SELECT * FROM USR01 INTO TABLE ZUSR01 WHERE BNAME IN SYUNAME.
CHECK SY-SUBRC EQ 0.
LOOP AT ZUSR01. "Evitamos DUMPS de Timing
CLEAR: ORDEN_LIST. REFRESH: ORDEN_LIST.
CALL FUNCTION 'STRF_ACCESS_SAPNAMES'
EXPORTING
IV_FUNCTION = 'R' "Ni Idea
IV_USER = ZUSR01-BNAME
IV_DIRTYPE = PV_DIR_T " Vale T
TABLES
TT_SAPNAMES = ORDEN_LIST
EXCEPTIONS
OTHERS = 1.
CHECK SY-TFILL GT 0.
APPEND LINES OF ORDEN_LIST FROM 1 TO SY-TFILL TO GEN.
ENDLOOP.
ENDIF.
ORDEN_LIST[] = GEN[].
SORT ORDEN_LIST BY TRKORR.
ELSE.
IF NOT E070-STRKORR IS INITIAL.
ORDEN = E070-STRKORR.
ENDIF.
ORDEN_LIST-TRKORR = ORDEN. APPEND ORDEN_LIST.
ENDIF.
IF NOT SOLICI IS INITIAL.
SELECT * FROM ZCET_TR_POSITION WHERE SOLICITUD IN SOLICI.
ORDEN_LIST-TRKORR = ZCET_TR_POSITION-TRKORR.
APPEND ORDEN_LIST.
ENDSELECT.
DELETE ADJACENT DUPLICATES FROM ORDEN_LIST.
SORT ORDEN_LIST BY TRKORR.
ENDIF.
LOOP AT ORDEN_LIST.
IF NOT ORDEN IS INITIAL. CHECK ORDEN_LIST-TRKORR CP ORDEN. ENDIF.
SELECT SINGLE * FROM E070 WHERE TRKORR = ORDEN_LIST-TRKORR.
CHECK SY-SUBRC EQ 0.
IF NOT FLIBERA IS INITIAL.
CHECK ( E070-TRSTATUS EQ 'R' AND E070-AS4DATE IN FLIBERA ).
ENDIF.
IF NOT FCREA IS INITIAL.
CHECK ( E070-TRSTATUS = 'D' AND E070-AS4DATE IN FCREA ).
ENDIF.
CHECK E070-AS4USER IN SYUNAME.
CALL FUNCTION 'STRF_READ_COFILE'
EXPORTING
IV_DIRTYPE = PV_DIR_T
IV_TRKORR = ORDEN_LIST-TRKORR
IMPORTING
EV_COFI_HEADER = LS_COFILE_HEADER
TABLES
TT_COFI_LINES =
LT_COFILE_LINES "Aqui retorna el listadorrR!!
EXCEPTIONS
NO_INFO_FOUND = 2.
ITAB[] = LT_COFILE_LINES[].
CLEAR CL.
LOOP AT ITAB.
* if not itab-trdate in flibera.
* cl = 1. delete itab. continue.
* endif.
CLEAR: ITAB-TRTIME, ITAB-FUNCTION. MODIFY ITAB.
ENDLOOP.
* if cl = 1. delete orden_list. continue. endif.
DELETE ADJACENT DUPLICATES FROM ITAB.
LOOP AT ITAB.
READ TABLE LT_COFILE_LINES WITH KEY TARSYSTEM = ITAB-TARSYSTEM
RETCODE = ITAB-RETCODE.
ITAB-TRTIME = LT_COFILE_LINES-TRTIME. MODIFY ITAB.
ENDLOOP.
DESCRIBE TABLE ITAB LINES CH.
IF CH GT 0.
LOOP AT LT_COFILE_LINES WHERE RETCODE NE 0.
READ TABLE ITAB WITH KEY TARSYSTEM = LT_COFILE_LINES-TARSYSTEM
RETCODE = 0.
IF SY-SUBRC EQ 0.
DELETE ITAB INDEX SY-TABIX.
ELSE.
READ TABLE ITAB WITH KEY TARSYSTEM = LT_COFILE_LINES-TARSYSTEM
RETCODE = LT_COFILE_LINES-RETCODE.
IF SY-SUBRC EQ 0. DELETE ITAB INDEX SY-TABIX. ENDIF.
ENDIF.
ITAB = LT_COFILE_LINES . APPEND ITAB.
ENDLOOP.
ENDIF.
SORT ITAB BY TRDATE TRTIME .
LT_COFILE_LINES[] = ITAB[].
** Buscamos aquellas ordenes que no esten en alguna mquina
IF NOT LESS IS INITIAL.
READ TABLE LT_COFILE_LINES WITH KEY TARSYSTEM = LESS.
CHECK SY-SUBRC NE 0.
ENDIF.
** Fecha de Liberacin
IF NOT FCREA IS INITIAL.
DESCRIBE TABLE LT_COFILE_LINES LINES CH.
IF CL = 1 AND CH = 0. CONTINUE. ENDIF.
ENDIF.
**
CASE ORDEN_LIST-RC.
WHEN 0. CHECK ERROR_G = 'X'. WRITE: / ICON_GREEN_LIGHT AS ICON.
WHEN 4. CHECK ERROR_Y = 'X'. WRITE: / ICON_YELLOW_LIGHT AS ICON.
WHEN OTHERS. CHECK ERROR_R = 'X'. WRITE: / ICON_RED_LIGHT AS ICON.
ENDCASE.
SELECT SINGLE * FROM E07T WHERE TRKORR = ORDEN_LIST-TRKORR
AND LANGU = SY-LANGU.
FORMAT COLOR COL_KEY ON.
WRITE: AT 006 ORDEN_LIST-TRKORR HOTSPOT ON,
AT 025 LS_COFILE_HEADER-TRUSER NO-GAP,
E07T-AS4TEXT.
*---- Slo para el cliente con transportes de solicitud.
SELECT MAX( SOLICITUD ) INTO E07T-AS4TEXT FROM
ZCET_TR_POSITION
WHERE TRKORR = ORDEN_LIST-TRKORR.
IF SY-SUBRC EQ 0 AND NOT E07T-AS4TEXT IS INITIAL.
WRITE: E07T-AS4TEXT+0(10) COLOR COL_TOTAL NO-GAP HOTSPOT ON.
HIDE E07T-AS4TEXT+0(10).
ENDIF.
*---- Slo para el cliente con transportes de solicitud.
FORMAT COLOR COL_KEY OFF.
IF DEST = 'X'.
LOOP AT LT_COFILE_LINES.
CLEAR DD07T.
IF NOT LT_COFILE_LINES-FUNCTION IS INITIAL.
SELECT SINGLE DDTEXT INTO DD07T-DDTEXT FROM DD07T
WHERE DOMNAME = 'TRBATFUNC' " Dominio de las func.
AND DDLANGUAGE = SY-LANGU
AND AS4LOCAL = 'A'
AND AS4VERS = '0000'
AND DOMVALUE_L = LT_COFILE_LINES-FUNCTION.
ENDIF.
CASE LT_COFILE_LINES-RETCODE.
WHEN 0. WRITE: AT /010 ICON_GREEN_LIGHT AS ICON.
WHEN 4. WRITE: AT /010 ICON_YELLOW_LIGHT AS ICON.
WHEN OTHERS. WRITE: AT /010 ICON_RED_LIGHT AS ICON.
ENDCASE.
WRITE: LT_COFILE_LINES-TARSYSTEM HOTSPOT ON,
LT_COFILE_LINES-TRDATE,
LT_COFILE_LINES-TRTIME,
LT_COFILE_LINES-HOST, DD07T-DDTEXT+0(20).
HIDE: ORDEN_LIST, LT_COFILE_LINES.
*---- Slo para el cliente con transportes de solicitud.
SELECT MAX( SOLICITUD ) INTO E07T-AS4TEXT FROM
ZCET_TR_POSITION
WHERE TRKORR = ORDEN_LIST-TRKORR." and
* sysnam = lt_cofile_lines-tarsystem.
IF SY-SUBRC EQ 0 AND NOT E07T-AS4TEXT IS INITIAL.
WRITE: E07T-AS4TEXT+0(10) COLOR COL_TOTAL NO-GAP HOTSPOT ON.
HIDE E07T-AS4TEXT+0(10).
ENDIF.
*---- Slo para el cliente con transportes de solicitud.
ENDLOOP.
ENDIF.
IF OBJ = 'X'.
FORMAT INTENSIFIED OFF.
SELECT * FROM E071 WHERE TRKORR EQ ORDEN_LIST-TRKORR.
" object ne 'RELE'. "- Eliminos la cabecera
IF E071-OBJECT = 'RELE'.
WRITE: /20 E071-OBJ_NAME(40).
CONTINUE.
ENDIF.
WRITE: /020 E071-PGMID,
E071-OBJECT,
E071-OBJ_NAME(40),
E071-OBJFUNC,
E071-LOCKFLAG,
E071-GENNUM.
HIDE: ORDEN_LIST, LT_COFILE_LINES.
** Vemos si ha sido incluido en una versin superior
IF FLASTKR = 'X'.
PAR01 = E071-OBJ_NAME.
PAR02 = E071-OBJECT.
REFRESH: ZVRSD_OLD. CLEAR: ZVRSD_OLD.
IF PAR02 NE 'MESS' AND PAR02 NE 'FUGT' AND
PAR02 NE 'ADIR'.
* Hay que evitar los messages, ya que provocan un DUMP en la func
CALL FUNCTION 'SVRS_GET_VERSION_DIRECTORY'
EXPORTING
OBJNAME = PAR01
OBJTYPE = PAR02
TABLES
LVERSNO_LIST = ZVRSN
VERSION_LIST = ZVRSD_OLD
EXCEPTIONS
NO_ENTRY = 1
OTHERS = 2.
ELSE.
SY-SUBRC = 4.
ENDIF.
IF SY-SUBRC EQ 0.
LOOP AT ZVRSD_OLD WHERE VERSNO GT 0.
IF ZVRSD_OLD-KORRNUM NE ORDEN_LIST-TRKORR.
WRITE: /030 'Last order up:',
ZVRSD_OLD-KORRNUM HOTSPOT ON,
ZVRSD_OLD-DATUM,
ZVRSD_OLD-ZEIT.
HIDE ZVRSD_OLD-KORRNUM.
ENDIF.
EXIT.
ENDLOOP.
ENDIF.
ENDIF.
**
ENDSELECT.
FORMAT INTENSIFIED ON.
ENDIF.
SKIP 1.
ENDLOOP.
ENDFORM.
FORM DYNPRO USING VALUE(#_DYNBEGIN) VALUE(#_NAME) VALUE(#_VALUE).
CLEAR I_BDCDATA.
IF NOT #_DYNBEGIN IS INITIAL.
I_BDCDATA-PROGRAM = #_NAME.
I_BDCDATA-DYNPRO = #_VALUE.
I_BDCDATA-DYNBEGIN = #_DYNBEGIN.
ELSE.
I_BDCDATA-FNAM = #_NAME.
I_BDCDATA-FVAL = #_VALUE.
ENDIF.
APPEND I_BDCDATA.
ENDFORM. "dynpro
FORM PREGUNTA_ORDEN.
DATA: TERELU(12).
WHILE USUARI IS INITIAL.
CALL FUNCTION 'POPUP_TO_GET_VALUE'
EXPORTING
FIELDNAME = 'UNAME'
TABNAME = 'SYST'
TITEL = 'Seleccionar usuario'
VALUEIN = ' ' "Ojo al DATO!!
IMPORTING
ANSWER = DL
VALUEOUT = TERELU
EXCEPTIONS
FIELDNAME_NOT_FOUND = 1
OTHERS = 2.
CHECK DL NE 'C'.
USUARI = TERELU.
ENDWHILE.
ENDFORM.
FORM CREAR_ORDEN.
CLEAR I_BDCDATA. REFRESH I_BDCDATA.
PERFORM PREGUNTA_ORDEN.
SELECT SINGLE * FROM USR01 WHERE BNAME = USUARI.
CHECK SY-SUBRC EQ 0.
WRITE SY-DATUM TO DES.
** Esta parte es opcional...
IF SY-UNAME = YOSOY.
CONCATENATE ESTOY DES INTO DES SEPARATED BY ' '.
ELSE.
CONCATENATE 'MAD.' DES INTO DES SEPARATED BY ' '.
ENDIF.
**
CONCATENATE PROYECTO DES DESC INTO DES SEPARATED BY ' '.
AL = STRLEN( NOM ) + 2.
AH = 60 - AL.
CONCATENATE '[' NOM ']' INTO DESI.
CONDENSE DES.
MOVE DESI TO DES+AH(AL).
PERFORM DYNPRO USING: 'X' 'RDDM0002' '0100',
' ' 'BDC_OKCODE' '=ENTR',
'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=ADDO',
' ' 'BDC_CURSOR' '06/21',
'X' 'SAPLSTR8' '0102',
' ' 'BDC_OKCODE' '=CREA',
' ' 'BDC_CURSOR' 'GT_TASKS-USER(01)',
' ' 'KO013-TRKORR_T' DES,
' ' 'GT_TASKS-USER(01)' USUARI.
IF NOT FELIPE IS INITIAL.
PERFORM DYNPRO USING: ' ' 'GT_TASKS-USER(02)' FELIPE.
ENDIF.
PERFORM DYNPRO USING: 'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=TRRT',
'X' 'RDDM0002' '0100',
' ' 'BDC_OKCODE' '/EBACK'.
DL = 'E'.
CALL TRANSACTION 'SE09' USING I_BDCDATA MODE DL.
CHECK SY-SUBRC EQ 0.
SELECT SINGLE * FROM E070L WHERE LASTNUM = 'TRKORR'.
IF NOT USUARI IS INITIAL. SUBTRACT 1 FROM E070L-TRKORR+4(6). ENDIF.
IF NOT FELIPE IS INITIAL. SUBTRACT 1 FROM E070L-TRKORR+4(6). ENDIF.
DATA KK LIKE SM04DIC-POPUPMSG.
CONCATENATE 'Orden' E070L-TRKORR
'creada:' DES INTO KK SEPARATED BY ' '.
PERFORM MESI USING KK.
LEAVE PROGRAM.
ENDFORM.
FORM TRANSPORTA.
DATA: BEGIN OF SXPGCOMTAB_INTERNAL OCCURS 0.
INCLUDE STRUCTURE SXPGCOTABE.
DATA: TYPE(8) TYPE C ,
MODIFIED(1) TYPE C ,
END OF SXPGCOMTAB_INTERNAL,
EXITSTAT LIKE EXTCMDEXEX-EXITCODE,
BEGIN OF SXPGCOMTAB_KEY OCCURS 0.
INCLUDE STRUCTURE SXPGCOMTAB_INTERNAL.
DATA: END OF SXPGCOMTAB_KEY,
ADDITIONAL_PARAMETERS LIKE SXPGCOLIST-PARAMETERS,
BEGIN OF RESULT_TAB OCCURS 0.
INCLUDE STRUCTURE BTCXPM.
DATA: END OF RESULT_TAB.
PERFORM PREGUNTA_ORDEN.
ADDITIONAL_PARAMETERS = ADDPARAM.
CLEAR SXPGCOMTAB_KEY. REFRESH SXPGCOMTAB_KEY.
SELECT * FROM SXPGCOSTAB INTO TABLE SXPGCOMTAB_KEY
WHERE NAME = CMDNAME.
CHECK SY-SUBRC EQ 0.
READ TABLE SXPGCOMTAB_KEY INDEX 1.
DATA: TS LIKE RFCDISPLAY-RFCHOST.
TS = SY-HOST.
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
EXPORTING
COMMANDNAME = SXPGCOMTAB_KEY-NAME
OPERATINGSYSTEM = SXPGCOMTAB_KEY-OPSYSTEM
TARGETSYSTEM = TS
ADDITIONAL_PARAMETERS = ADDITIONAL_PARAMETERS
IMPORTING
EXITCODE = EXITSTAT
TABLES
EXEC_PROTOCOL = RESULT_TAB
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
PROGRAM_START_ERROR = 6
PROGRAM_TERMINATION_ERROR = 7
X_ERROR = 8
PARAMETER_EXPECTED = 9
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11
WRONG_ASYNCHRONOUS_PARAMETERS = 12
CANT_ENQ_TBTCO_ENTRY = 13
JOBCOUNT_GENERATION_ERROR = 14
OTHERS = 15.
IF SY-SUBRC NE 0.
LOOP AT RESULT_TAB. WRITE: / RESULT_TAB-MESSAGE. ENDLOOP. EXIT.
ENDIF.
DATA KK LIKE SM04DIC-POPUPMSG.
LOOP AT RESULT_TAB WHERE MESSAGE NP '*tp finished with return code:*'.
DELETE RESULT_TAB.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM RESULT_TAB.
LOOP AT RESULT_TAB.
CONCATENATE 'Orden finalizada:' ADDITIONAL_PARAMETERS
RESULT_TAB-MESSAGE INTO KK SEPARATED BY ' '.
PERFORM MESI USING KK.
ENDLOOP.
ENDFORM.
FORM MESI USING TESTO LIKE SM04DIC-POPUPMSG.
DATA: TXT(200).
TXT = TESTO.
MESSAGE S398(00) WITH TXT+0(49) TXT+49(49) TXT+99(49) TXT+149(49).
CHECK USUARI NE SY-UNAME.
CALL FUNCTION 'TH_POPUP'
EXPORTING
CLIENT = SY-MANDT
USER = USUARI
MESSAGE = TESTO
EXCEPTIONS
USER_NOT_FOUND = 1
OTHERS = 2.
ENDFORM.