W Pub: ABAP Prog Standar Subir Bajar

  1. REPORT Z01_TRANS_TEST .
  2. *
  3. * Features:
  4. *----------
  5. *** Descarga Ordenes -> Si no estan liberadas, las libera
  6. *** Sube Ordenes -> Y las anyade en la cola
  7. *** Anyade en cola
  8. *** Quita de la cola
  9. *** Libera Ordenes
  10. *** Transporta ordenes de Workbench (Con posibilidad de Modo Sincrono / Asincrono)
  11. *** Copia Ordenes de Custo mediante SCC1
  12. *** Log de transporte
  13. *** Borra Ordenes de Data y Cofiles
  14. *
  15. *History:
  16. *--------
  17. * [3.0.2] Cambiada 'TMS_MGR_GREP_TRANSPORT_QUEUE' por 'TMS_MGR_FORWARD_TR_REQUEST'
  18. * [3.0.3] Anyadido parametro IMPAGAIN <- Importar otra vez
  19. * [3.0.4] Anyadido la creacion de textos dinamicos
  20. * [3.0.5] Arreglado el problema con la liberacion de las ordenes
  21. * [3.0.6] +SE09 + STMS
  22. * [3.0.7] +Log en Anyadir ordenes
  23. * [3.0.8] +Arreglados botones
  24. * [3.0.9] Cambiado Flujo de Transporte con posibilidad de remove+add+transport
  25. * [3.0.10] Mejorado el interface con Listado de ordenes
  26. * [3.1.0] Creacion de un Log de transporte
  27. * [3.1.1] Cambio de mensajes por pantalla
  28. * [3.1.2] Arreglado Bug en transporte en grupo
  29. * [3.1.3] Borrado de las ordenes DATA/Cofiles
  30. * [3.1.3.1] Movido error al final, para proteger
  31. * [3.1.4] Anyadida busqueda en server de ficheros a descargar
  32. * [3.1.5] Mejorado los textos de los parametros y corregidas sentencias obsoletas
  33. * [3.1.6] Ver log de acciones
  34. * [3.1.7] Anyadido visualizador de Logs en las diferentes maquinas
  35. * [3.1.8] Anyadido visualizador de Logs en las diferentes maquinas
  36. * [3.1.8.1] Arreglado BUg de Logs para que siempre grabe antes que salga el luser
  37. * [3.1.8.2] Arreglado el ignorar versiones
  38. * [3.1.9] A&ntilde;adido rango para la seleccion del LOG
  39. * [3.1.10] Corregidos bugs de tar iv_system
  40. * [3.1.11] Creacion de una nueva orden de transporte
  41. * [3.1.12] Evitamos DUMP en nuevas versiones de SAP en el pase de parametro de la funcion COMPLEX_SELECTIONS_DIALOG
  42. * [3.1.13] A&ntilde;adido log para el borrado de ordenes
  43. * [3.1.14] Corregido error de import/export de ordenes con numero igual, pero distinto sistema y mas mejoras
  44. * [3.1.15] Convertido a OOP. &iquest;Era necesario? NO &iquest;Ha sido divertido? NO &iquest;Entonces? Pues eso,
  45. * [3.1.16] Corregido error del IV_CLIENT y problemas con los mensajes
  46.  
  47. *--[ Mejoras para la traduccion
  48. CONSTANTS: VERSION(10)         VALUE 'v3.1.16',
  49. C_TXT_TITLE(35)     VALUE 'ZTMS :: Transport Management System',
  50. COPYLEFT(50)        VALUE 'Alex Bergonzini 2009-2013',
  51. URL_SOURCE(50)      VALUE 'http://www.bergonzini.com',
  52. C_TXT_IMPORT(11)    VALUE '@48@ Import',
  53. C_TXT_EXPORT(11)    VALUE '@49@ Export',
  54. C_TXT_STMS(09)      VALUE '@4A@ STMS',
  55. C_TXT_SE09(09)      VALUE '@3Q@ SE09',
  56. C_TXT_EXEC(05)      VALUE 'TRANS',
  57. C_TXT_LOG(08)       VALUE '@96@ LOG',
  58. C_TXT_ORDEN(10)     VALUE '@0Y@ Orden',
  59. C_TXT_UP(12)        VALUE '@48@ Up File',
  60. C_TXT_DOWN(12)      VALUE '@49@ Down File',
  61. C_TXT_DIR(17)       VALUE 'C:\SAP_TRANSXTER\',
  62. C_TXT_BORRAR(15)    VALUE 'Borrar Ficheros',
  63. C_TXT_SI(2)         VALUE 'Si',
  64. C_TXT_NO(2)         VALUE 'No',
  65. C_TXT_DEL_ORDEN(55) VALUE 'DESEA BORRAR LOS FICHEROS DE LAS ORDENES EN SERVIDOR?',
  66. C_TXT_FECHA(5)      VALUE 'Fecha',
  67. C_TXT_RANGOF(15)    VALUE 'Rango de fechas',
  68. C_TXT_ASINC(09)     VALUE 'Asincrono',
  69. C_TXT_DIRCO(18)     VALUE 'Directorio Cofiles',
  70. C_TXT_DIRDA(15)     VALUE 'Directorio Data',
  71. C_TXT_DEST(07)      VALUE 'Destino',
  72. C_TXT_DIRF(22)      VALUE 'Directorio de ficheros',
  73. C_TXT_PBLOQ(15)     VALUE 'Pasar en Bloque',
  74. C_TXT_AGAIN(18)     VALUE 'Importar otra vez',
  75. C_TXT_FREE(07)      VALUE 'Liberar',
  76. C_TXT_MANDT(16)     VALUE 'Mandante Destino',
  77. C_TXT_ORDENS(26)    VALUE 'Ordenes',
  78. C_TXT_ADDBUF(26)    VALUE 'Meter en Cola',
  79. C_TXT_REMBUF(26)    VALUE 'Quitar de la Cola',
  80. C_TXT_LSTMS(11)     VALUE 'Lanzar STMS',
  81. C_TXT_SCC1(26)      VALUE 'Transaccion SCC1',
  82. C_TXT_TRANS(26)     VALUE 'Transportar',
  83. C_TXT_REMSRV(26)    VALUE 'Borrar ordenes de Servidor',
  84. C_TXT_IGNDEST(26)   VALUE 'Ignorar Destino',
  85. C_TXT_LOGT(17)      VALUE 'Log de transporte',
  86. C_TXT_CMD           TYPE SCRTEXT_S VALUE 'Comando',
  87. C_TXT_SCC1T         TYPE SCRTEXT_S VALUE 'SCC1',
  88. C_TXT_EN_BLOQT      TYPE SCRTEXT_S VALUE 'En Bloque',
  89. C_TXT_IGDEST        TYPE SCRTEXT_S VALUE 'IgVerDest',
  90. C_TXT_REGLA(40)     VALUE '1234567890123456789012345678901234567890', "<-- Para no contar
  91. C_TXT_MAN_DT        TYPE SCRTEXT_S VALUE 'Mandante',
  92. C_TXT_P_REMOV       TYPE SCRTEXT_S VALUE 'Remove',
  93. C_TXT_P_ADDREQ      TYPE SCRTEXT_S VALUE 'Add',
  94. C_TXT_LIBERA        TYPE SCRTEXT_S VALUE 'Libera',
  95. C_TXT_ASINCRO       TYPE SCRTEXT_S VALUE 'Async',
  96. C_TXT_IMPAGAIN      TYPE SCRTEXT_S VALUE 'Again',
  97. C_TXT_DESTINO       TYPE SCRTEXT_S VALUE 'Destino',
  98. C_TXT_DEL_FILE      TYPE SCRTEXT_S VALUE 'Delete',
  99. C_TXT_DESC          TYPE SCRTEXT_S VALUE 'Descripcion',
  100. C_TXT_LOAD_ORD(12)  VALUE 'Cargando...',
  101. C_TXT_FIND_DEST(20) VALUE 'Buscando Destinos...',
  102. C_TXT_CANT_FIND(10) VALUE 'Can''t find',
  103. C_TXT_ENCOLA(23)    VALUE '(already in the queue):',
  104. C_TXT_ADDED(14)     VALUE 'Added request:',
  105. C_TXT_FAILDADD(23)  VALUE 'Failed pre-add request:',
  106. C_TXT_D             VALUE 'D',
  107. C_TXT_R             VALUE 'R',
  108. C_TXT_ASC(3)        VALUE 'ASC',
  109. C_TXT_BIN(3)        VALUE 'BIN',
  110. C_TXT_DERROR(14)    VALUE 'Download Error',
  111. C_TXT_DIRNOF(19)    VALUE 'Directory not found',
  112. C_TXT_OK(2)         VALUE 'Ok',
  113. C_TXT_FAIL(4)       VALUE 'Fail',
  114. C_TXT_TRANKO(20)    VALUE 'Transporte erroneo:',
  115. C_TXT_TRANOK(21)    VALUE 'Transporte correcto:',
  116. C_TXT_RELF(13)      VALUE 'Release fail:',
  117. C_TXT_RELOK(11)     VALUE 'Release OK:',
  118. C_TXT_CANC(18)      VALUE ' process cancelled',
  119. C_TXT_DELKO(14)     VALUE 'Failed delete:',
  120. C_TXT_DELOK(15)     VALUE 'Success delete:',
  121. C_KWTCEO(06)        VALUE 'KWTCEO'. "<-- Constant, Keep hands out!
  122.  
  123. TABLES: E070, SSCRFIELDS.
  124.  
  125. TYPE-POOLS: TRWBO, TRSEL, CTSLG, STMS.
  126.  
  127. INCLUDE ICONS.
  128.  
  129. TYPES: BEGIN OF FULL_PATH,
  130.   FILENAME(1024),
  131.   DIR(1024),
  132.   FULLPATH(1024),
  133. END OF FULL_PATH.
  134.  
  135. DATA: DATA_TAB(20)  OCCURS 0 WITH HEADER LINE,
  136.       T_TABLE TYPE REF TO CL_SALV_TABLE,
  137.       G_SORT TYPE REF TO CL_SALV_SORTS,
  138.       G_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS,
  139.       G_DSP TYPE REF TO CL_SALV_DISPLAY_SETTINGS,
  140.       G_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE,
  141.       G_COLUMN TYPE REF TO CL_SALV_COLUMN_TABLE,
  142.       G_COLOR TYPE LVC_S_COLO,
  143.       G_AGG TYPE REF TO CL_SALV_AGGREGATIONS,
  144.       MI_ORDEN    LIKE TMSBUFFER,
  145.       MIS_ORDENES TYPE STMS_TR_REQUESTS,
  146.       VIEW_LOGS TYPE XFELD.
  147.  
  148. *--[ Fila de Botones
  149. SELECTION-SCREEN PUSHBUTTON /1(11) C_LOG USER-COMMAND VLOG.
  150. SELECTION-SCREEN PUSHBUTTON 12(11) C_CORR USER-COMMAND CORR.
  151. SELECTION-SCREEN PUSHBUTTON 24(15) T_UP USER-COMMAND F_UP.
  152. SELECTION-SCREEN PUSHBUTTON 40(15) T_DO USER-COMMAND F_DO.
  153.  
  154. PARAMETERS: DIRSAP(40) DEFAULT C_TXT_DIR OBLIGATORY.
  155. SELECT-OPTIONS: ORDENES FOR E070-TRKORR NO INTERVALS.
  156.  
  157. SELECTION-SCREEN BEGIN OF BLOCK B02 WITH FRAME.
  158. PARAMETERS: P_REMOV  AS CHECKBOX DEFAULT ABAP_FALSE,
  159. P_ADDREQ AS CHECKBOX DEFAULT ABAP_FALSE,
  160. LIBERA   AS CHECKBOX DEFAULT ABAP_FALSE,
  161. ASINCRO  AS CHECKBOX DEFAULT ABAP_FALSE,
  162. IMPAGAIN AS CHECKBOX DEFAULT ABAP_FALSE.
  163.  
  164. SELECTION-SCREEN END OF BLOCK B02.
  165.  
  166. SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME.
  167.  
  168. PARAMETERS: SIQUIERO AS CHECKBOX DEFAULT ABAP_FALSE,
  169. DESTINO(3) DEFAULT SY-SYSID.
  170. *--[ Es obligatorio indicarlo para A&ntilde;adir ordenes y para transportar
  171. PARAMETERS: MAN_DT LIKE SYST-MANDT DEFAULT SY-MANDT OBLIGATORY.
  172. PARAMETERS: ENBLOQUE AS CHECKBOX DEFAULT ABAP_FALSE,
  173. IGDEST AS CHECKBOX DEFAULT ABAP_FALSE,
  174. SCC1 AS CHECKBOX DEFAULT ABAP_FALSE.
  175.  
  176. SELECTION-SCREEN END OF BLOCK B01.
  177.  
  178. SELECTION-SCREEN BEGIN OF BLOCK B03 WITH FRAME.
  179. PARAMETERS: C_PATH_D(100),    "   value   '/usr/sap/trans/data/',
  180. C_PATH_C(100).
  181.  
  182. SELECTION-SCREEN END OF BLOCK B03.
  183.  
  184. SELECTION-SCREEN BEGIN OF BLOCK B04 WITH FRAME.
  185. PARAMETERS: DEL_FILE AS CHECKBOX DEFAULT ABAP_FALSE.
  186. SELECTION-SCREEN END OF BLOCK B04.
  187.  
  188. SELECTION-SCREEN FUNCTION KEY 1.
  189. SELECTION-SCREEN FUNCTION KEY 2.
  190. SELECTION-SCREEN FUNCTION KEY 3.
  191. SELECTION-SCREEN FUNCTION KEY 4.
  192. SELECTION-SCREEN FUNCTION KEY 5.
  193.  
  194. CLASS ZCL_TRANS DEFINITION.
  195.   PUBLIC SECTION.
  196.  
  197.     DATA SAY_ME_MAX TYPE I VALUE 10.
  198.     DATA SAY_ME_NOW TYPE I VALUE 0.
  199.  
  200.     DATA: P_ORDEN     TYPE RANGE OF TRKORR,
  201.           T_LOGF      TYPE STANDARD TABLE OF STRING,
  202.           C_LOGF      TYPE STRING,
  203.           D_ERROR     TYPE C LENGTH 1,
  204.           P_SYSTEM    TYPE TMSSYSNAM,
  205.           P_CLIENTE   TYPE MANDT,
  206.           P_DOMAIN    TYPE TMSDOMNAM,
  207.           TUS_ORDENES TYPE STANDARD TABLE OF TMSBUFFER,
  208.           T_MSG       TYPE STANDARD TABLE OF CHAR1024,
  209.           C_MSG       TYPE CHAR1024,
  210.           T_DIR_LIST  TYPE STANDARD TABLE OF FULL_PATH,
  211.           C_DIR_LIST  TYPE FULL_PATH,
  212.           P_DIRSAP    TYPE CHAR40,
  213.           T_ORDENES   TYPE STANDARD TABLE OF TRKORR,
  214.           P_REMOV     TYPE XFELD,
  215.           P_ADDREQ    TYPE XFELD,
  216.           P_LIBERA    TYPE XFELD,
  217.           P_ASINCRO   TYPE XFELD,
  218.           P_IMPAGAIN  TYPE XFELD,
  219.           P_SIQUIERO  TYPE XFELD,
  220.           P_DESTINO   TYPE SYSYSID,
  221.           P_MANDT     TYPE SYMANDT,
  222.           P_ENBLOQUE  TYPE XFELD,
  223.           P_IGDEST    TYPE XFELD,
  224.           P_SCC1      TYPE XFELD,
  225.           P_DEL_FILE  TYPE XFELD,
  226.           P_C_PATH_D  TYPE CHAR100,
  227.           P_C_PATH_C  TYPE CHAR100,
  228.           P_IMPORTA TYPE STMS_TP_IMPORTS,
  229.           P_BATCH     TYPE STMSCBATCH.
  230.  
  231.     DATA: D_PATH_SOURCE TYPE SAEPFAD,
  232.           D_PATH_TARGET TYPE SAEPFAD.
  233.  
  234.     METHODS:
  235.       SAY_ME IMPORTING I_MESSAGE TYPE ANY,
  236.       READ_TEXT_POOL,
  237.       ORDEN_CREAR,
  238.       ORDEN_DEL IMPORTING I_ORDEN TYPE TRKORR,
  239.       ORDEN_ADD IMPORTING I_ORDEN TYPE TRKORR
  240.                           I_SYSTEM TYPE SYSYSID,
  241.       ORDEN_LIBERAR IMPORTING I_ORDEN TYPE TRKORR,
  242.       ORDEN_TRANSPORTA IMPORTING I_ORDEN TYPE TRKORR,
  243.       ORDEN_IMPORTAR,
  244.       ORDEN_REMOVE_REQUEST IMPORTING I_ORDEN TYPE TRKORR,
  245.       ORDEN_UPLOAD IMPORTING I_ORDEN TYPE TRKORR,
  246.       MSG_LIST,
  247.       MSG_ADD IMPORTING P_01 TYPE ANY OPTIONAL
  248.                         P_02 TYPE ANY OPTIONAL
  249.                         P_03 TYPE ANY OPTIONAL
  250.                         P_04 TYPE ANY OPTIONAL,
  251.       LOG_VER,
  252.       LOG_ADD IMPORTING I_ORDEN TYPE TRKORR
  253.               CHANGING I_UCOMM TYPE SYUCOMM,
  254.       LOG_SHOW,
  255.       LOG_LOAD,
  256.       LOG_WRITE,
  257.       SERVER_CLIENT IMPORTING I_PATH TYPE ANY
  258.                               I_TARGET TYPE ANY,
  259.  
  260.       SERVER_DOWNLOAD IMPORTING I_ORDEN TYPE TRKORR,
  261.       SERVER_READ IMPORTING I_DIR TYPE ANY
  262.                             I_MASK TYPE ANY,
  263.       CONSTRUCTOR.
  264.  
  265.   PRIVATE SECTION.
  266.     DATA: LOG_NAME TYPE C LENGTH 40.
  267.  
  268. ENDCLASS.
  269.  
  270. CLASS ZCL_TRANS IMPLEMENTATION.
  271.  
  272.   METHOD ORDEN_TRANSPORTA.
  273.     DATA: L_ORDEN TYPE TRKORR.
  274.     L_ORDEN = I_ORDEN.
  275.     IF ME->P_ENBLOQUE = ABAP_TRUE.
  276.       CLEAR L_ORDEN.
  277.     ENDIF.
  278.     IF ME->P_SCC1 = ABAP_FALSE.
  279. ** Transporte de WorkBench
  280.  
  281.       CALL FUNCTION 'TMS_MGR_IMPORT_TR_REQUEST'
  282.         EXPORTING
  283.           IV_SYSTEM                  = ME->P_SYSTEM
  284.           IV_DOMAIN                  = ME->P_DOMAIN
  285.           IV_REQUEST                 = L_ORDEN
  286.           IV_CLIENT                  = ME->P_CLIENTE
  287.           IV_CTC_ACTIVE              = ABAP_FALSE
  288.           IV_OVERTAKE                = ABAP_FALSE
  289.           IV_IMPORT_AGAIN            = ME->P_IMPAGAIN
  290.           IV_IGNORE_ORIGINALITY      = ABAP_TRUE
  291.           IV_IGNORE_REPAIRS          = ABAP_TRUE
  292.           IV_IGNORE_TRANSTYPE        = ABAP_TRUE
  293.           IV_IGNORE_TABLETYPE        = ABAP_FALSE
  294.           IV_IGNORE_PREDEC           = ABAP_FALSE
  295.           IV_IGNORE_CVERS            = ME->P_IGDEST "<- Ignoramos el destino
  296.           IV_TEST_IMPORT             = ABAP_FALSE
  297.           IV_SUBSET                  = ABAP_TRUE
  298.           IV_OFFLINE                 = ME->P_ASINCRO   "<-- &iquest; Modo sincrono ?
  299.           IV_MONITOR                 = ABAP_TRUE
  300.           IV_VERBOSE                 = ABAP_FALSE
  301.           IS_BATCH                   = ME->P_BATCH
  302.           IT_REQUESTS                = ME->TUS_ORDENES
  303.         IMPORTING
  304.           ET_TP_IMPORTS              = ME->P_IMPORTA
  305.         EXCEPTIONS
  306.           READ_CONFIG_FAILED         = 1
  307.           TABLE_OF_REQUESTS_IS_EMPTY = 2
  308.           OTHERS                     = 3.
  309.       IF SY-SUBRC <> 0.
  310.         ME->D_ERROR = ABAP_TRUE.
  311.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_TRANKO P_02 = L_ORDEN ).
  312.       ELSE.
  313.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_TRANOK P_02 = L_ORDEN ).
  314.       ENDIF.
  315.     ELSE.
  316. *** Transporte de copia (Custo)
  317.       DATA: CCSUPCOPY    TYPE CCTESTRUN,
  318.             CCCOMFILE    TYPE  TRKORR,
  319.             QUELLMANDANT TYPE CCMAND,
  320.             INCL_TASK    TYPE INCL_TASK,
  321.             RCOD         TYPE SYSUBRC.
  322.  
  323.       CCSUPCOPY = ABAP_FALSE.
  324.       CCCOMFILE = L_ORDEN.
  325.       QUELLMANDANT = MAN_DT.
  326.       INCL_TASK = ABAP_TRUE.
  327.       CLEAR RCOD.
  328.       CALL FUNCTION 'SCCR_PERFORM_SCC1'
  329.         EXPORTING
  330.           CCSUPCOPY    = CCSUPCOPY
  331.           CCCOMFILE    = CCCOMFILE
  332.           QUELLMANDANT = QUELLMANDANT
  333.           INCL_TASK    = INCL_TASK
  334.         IMPORTING
  335.           RCOD         = RCOD.
  336.       IF RCOD IS INITIAL.
  337.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_SCC1T P_02 = L_ORDEN P_03 = C_TXT_OK ).
  338.       ELSE.
  339.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_SCC1T P_02 = L_ORDEN P_03 = C_TXT_FAIL ).
  340.       ENDIF.
  341.     ENDIF.
  342.   ENDMETHOD.
  343.  
  344.   METHOD ORDEN_REMOVE_REQUEST.
  345. * Interface TMS_MGR_MAINTAIN_TR_QUEUE
  346.  
  347.     DATA: CMD     TYPE TRTPCMD,
  348.           IDSYS   TYPE TMSSYSNAM,
  349.           ORDENP  TYPE TRKORR,
  350.           MITABTP TYPE STMS_TP_MAINTAINS.
  351.  
  352.     CMD = 'DELFROMBUFFER'.
  353.     IDSYS = SY-SYSID.
  354.     ORDENP = I_ORDEN.
  355.  
  356.     CALL FUNCTION 'TMS_MGR_MAINTAIN_TR_QUEUE'
  357.       EXPORTING
  358.         IV_COMMAND                 = CMD
  359.         IV_SYSTEM                  = IDSYS
  360.         IV_REQUEST                 = ORDENP
  361.         IV_TARCLI                  = ME->P_MANDT
  362.         IV_MONITOR                 = ABAP_TRUE
  363.       IMPORTING
  364.         ET_TP_MAINTAINS            = MITABTP
  365.       EXCEPTIONS
  366.         READ_CONFIG_FAILED         = 1
  367.         TABLE_OF_REQUESTS_IS_EMPTY = 2
  368.         OTHERS                     = 3.
  369.     IF SY-SUBRC <> 0.
  370.       ME->D_ERROR = ABAP_TRUE.
  371.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELKO P_02 = ORDENP ).
  372.     ELSE.
  373.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELOK P_02 = ORDENP ).
  374.     ENDIF.
  375.   ENDMETHOD.
  376.  
  377.   METHOD ORDEN_DEL.
  378.     DATA: FILE(1024).
  379.  
  380.     CLEAR: FILE.
  381.     REFRESH ME->T_DIR_LIST.
  382.     CONCATENATE '*' I_ORDEN+4(6) '.' I_ORDEN+0(3) INTO FILE.  " 3.1.14
  383.  
  384.     ME->SERVER_READ( EXPORTING I_DIR = C_PATH_D I_MASK = FILE ).
  385.     ME->SERVER_READ( EXPORTING I_DIR = C_PATH_C I_MASK = FILE ).
  386.     LOOP AT ME->T_DIR_LIST INTO ME->C_DIR_LIST.
  387.       DELETE DATASET ME->C_DIR_LIST-FULLPATH.
  388.       IF SY-SUBRC NE 0.
  389.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELKO P_02 = I_ORDEN P_03 = ME->C_DIR_LIST-DIR ).
  390.       ELSE.
  391.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELOK P_02 = I_ORDEN P_03 = ME->C_DIR_LIST-DIR ).
  392.       ENDIF.
  393.     ENDLOOP.
  394.   ENDMETHOD.
  395.  
  396.   METHOD ORDEN_ADD.
  397.     DATA: D_COUNTER TYPE I.
  398.     DATA: D_REQUEST TYPE TRKORR.
  399.     DATA: D_SYSTEM TYPE TMSSYSNAM.
  400.     DATA: D_DOMAIN TYPE TMSDOMNAM.
  401.  
  402.     D_REQUEST = I_ORDEN.
  403.  
  404.     SELECT SINGLE DOMNAM SYSNAM INTO (D_DOMAIN, D_SYSTEM) FROM TMSCSYS WHERE SYSNAM = I_SYSTEM.
  405.  
  406. * Cambiar por esta: tms_mgr_forward_tr_request.
  407.     DATA: IV_REQUEST TYPE TRKORR,
  408.           IV_TARGET TYPE TMSSYSNAM,
  409.           IV_TARDOM TYPE TMSDOMNAM,
  410.           IV_SRCDOM TYPE TMSDOMNAM,
  411.           IV_TARCLI TYPE TRTARCLI,
  412.           IV_SOURCE TYPE TMSSYSNAM,
  413.           ES_EXCEPTION TYPE STMSCALERT.
  414.  
  415.     IV_REQUEST = D_REQUEST.
  416.     IV_TARGET = IV_SOURCE = D_SYSTEM.
  417.     IV_TARDOM = IV_SRCDOM = D_DOMAIN.
  418.     IV_TARCLI = ME->P_MANDT. "<-- Mandante de destino
  419.  
  420.     CALL FUNCTION 'TMS_MGR_FORWARD_TR_REQUEST'
  421.       EXPORTING
  422.         IV_REQUEST                 = IV_REQUEST
  423.         IV_TARGET                  = IV_TARGET
  424.         IV_TARDOM                  = IV_TARDOM
  425.         IV_TARCLI                  = IV_TARCLI
  426.         IV_SOURCE                  = IV_SOURCE
  427.         IV_SRCDOM                  = IV_SRCDOM
  428.         IV_IMPORT_AGAIN            = ME->P_IMPAGAIN
  429.         IV_MONITOR                 = ABAP_TRUE
  430.         IV_VERBOSE                 = ABAP_FALSE
  431.       IMPORTING
  432.         ES_EXCEPTION               = ES_EXCEPTION
  433.       EXCEPTIONS
  434.         READ_CONFIG_FAILED         = 1
  435.         TABLE_OF_REQUESTS_IS_EMPTY = 2
  436.         OTHERS                     = 3.
  437.  
  438.     IF SY-SUBRC <> 0.
  439.       ME->D_ERROR = ABAP_TRUE.
  440.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_FAILDADD P_02 = IV_REQUEST ).
  441.     ELSE.
  442.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_ADDED P_02 = IV_REQUEST ).
  443.     ENDIF.
  444.     IF D_COUNTER > 0.
  445.       ME->D_ERROR = ABAP_TRUE.
  446.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_ENCOLA  P_02 = IV_REQUEST ).
  447.     ENDIF.
  448.   ENDMETHOD.
  449.  
  450.   METHOD SERVER_CLIENT.
  451.     DATA: L_PATH TYPE SAEPFAD,
  452.           L_TARGETPATH TYPE SAEPFAD.
  453.     L_PATH       = I_PATH.
  454.     L_TARGETPATH = I_TARGET.
  455.     CLEAR ME->D_ERROR.
  456.     CALL FUNCTION 'ARCHIVFILE_SERVER_TO_CLIENT'
  457.       EXPORTING
  458.         PATH       = L_PATH
  459.         TARGETPATH = L_TARGETPATH
  460.       EXCEPTIONS
  461.         ERROR_FILE = 1
  462.         OTHERS     = 2.
  463.     CHECK NOT SY-SUBRC IS INITIAL.
  464.     ME->D_ERROR = ABAP_TRUE.
  465.   ENDMETHOD.
  466.  
  467.   METHOD ORDEN_CREAR.
  468.     DATA: L_TIPO TYPE TRSTATLONG.
  469.     L_TIPO = C_KWTCEO.
  470.     PERFORM CREATE_NEW_REQUEST IN PROGRAM RDDM0001 USING L_TIPO IF FOUND.
  471.   ENDMETHOD.
  472.  
  473.   METHOD SERVER_DOWNLOAD.
  474.     DATA: MIS TYPE STRING.
  475.     DATA: TARGETPATH TYPE SAEPFAD,
  476.           FILE(255),
  477.           RETURN,
  478.           G_TARGETPATH  TYPE SAEPFAD.
  479.  
  480.     MIS = G_TARGETPATH  = ME->P_DIRSAP.
  481.     CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_EXIST
  482.       EXPORTING
  483.         DIRECTORY            = MIS
  484.       RECEIVING
  485.         RESULT               = RETURN
  486.       EXCEPTIONS
  487.         CNTL_ERROR           = 1
  488.         ERROR_NO_GUI         = 2
  489.         WRONG_PARAMETER      = 3
  490.         NOT_SUPPORTED_BY_GUI = 4
  491.         OTHERS               = 5.
  492.  
  493.     IF SY-SUBRC NE 0.
  494.       ME->MSG_ADD( EXPORTING P_01 =  C_TXT_DIRNOF P_02 = MIS ).
  495.     ELSE.
  496.       CLEAR: FILE.
  497.       REFRESH ME->T_DIR_LIST.
  498.       CONCATENATE '*' I_ORDEN+4(6) '.' I_ORDEN+0(3) INTO FILE. "3.1.14
  499.       ME->SERVER_READ( EXPORTING I_DIR = C_PATH_D I_MASK = FILE ).
  500.       ME->SERVER_READ( EXPORTING I_DIR = C_PATH_C I_MASK = FILE ).
  501.       LOOP AT ME->T_DIR_LIST INTO ME->C_DIR_LIST.
  502.         CONCATENATE: G_TARGETPATH ME->C_DIR_LIST-FILENAME INTO TARGETPATH.
  503.         ME->SERVER_CLIENT( EXPORTING I_PATH = ME->C_DIR_LIST-FULLPATH I_TARGET = TARGETPATH ).
  504.         CHECK ME->D_ERROR = ABAP_TRUE.
  505.         ME->MSG_ADD( EXPORTING P_01 = C_TXT_DERROR  P_02 = I_ORDEN ).
  506.       ENDLOOP.
  507.     ENDIF.
  508.   ENDMETHOD.
  509.  
  510.   METHOD SERVER_READ.
  511.     DATA: DIR_NAME TYPE EPSDIRNAM,
  512.           FILE_MASK TYPE EPSFILNAM.
  513.  
  514.     DATA: BEGIN OF FILE,
  515.       DIRNAME(75) TYPE C, " name of directory. (possibly truncated.)
  516.       NAME(75)    TYPE C, " name of entry. (possibly truncated.)
  517.       TYPE(10)    TYPE C, " type of entry.
  518.       LEN(8)      TYPE P, " length in bytes.
  519.       OWNER(8)    TYPE C, " owner of the entry.
  520.       MTIME(6)    TYPE P, " last modification date, seconds since 1970
  521.       MODE(9)     TYPE C, " like "rwx-r-x--x": protection mode.
  522.       ERRNO(3)    TYPE C,
  523.       ERRMSG(40)  TYPE C,
  524.     END OF FILE.
  525.  
  526.     DIR_NAME = I_DIR.
  527.     FILE_MASK = I_MASK.
  528.     CALL 'C_DIR_READ_FINISH'                  " just to be sure
  529.     ID 'ERRNO'  FIELD FILE-ERRNO
  530.     ID 'ERRMSG' FIELD FILE-ERRMSG.
  531.  
  532.     CALL 'C_DIR_READ_START'
  533.     ID 'DIR'    FIELD DIR_NAME
  534.     ID 'FILE'   FIELD FILE_MASK
  535.     ID 'ERRNO'  FIELD FILE-ERRNO
  536.     ID 'ERRMSG' FIELD FILE-ERRMSG.
  537.     IF SY-SUBRC <> 0.
  538.       EXIT.
  539.     ENDIF.
  540.  
  541.     DO.
  542.       CLEAR: FILE, ME->C_DIR_LIST.
  543.       CALL 'C_DIR_READ_NEXT'
  544.       ID 'NAME'   FIELD FILE-NAME.
  545.       IF SY-SUBRC NE 0.
  546.         EXIT.
  547.       ENDIF.
  548.       CHECK FILE-NAME CP FILE_MASK.
  549.       ME->C_DIR_LIST-FILENAME = FILE-NAME.
  550.       ME->C_DIR_LIST-DIR = I_DIR.
  551.       CONCATENATE ME->C_DIR_LIST-DIR ME->C_DIR_LIST-FILENAME INTO ME->C_DIR_LIST-FULLPATH.
  552.       APPEND ME->C_DIR_LIST TO ME->T_DIR_LIST.
  553.     ENDDO.
  554.  
  555.     CALL 'C_DIR_READ_FINISH'
  556.     ID 'ERRNO'  FIELD FILE-ERRNO
  557.     ID 'ERRMSG' FIELD FILE-ERRMSG.
  558.  
  559.     SORT ME->T_DIR_LIST.
  560.   ENDMETHOD.
  561.  
  562.   METHOD SAY_ME.
  563.     CHECK SY-BATCH IS INITIAL.
  564.     ADD 1 TO ME->SAY_ME_NOW.
  565.     IF ME->SAY_ME_NOW > ME->SAY_ME_MAX. ME->SAY_ME_NOW = 1. ENDIF.
  566.     SYST-PRCOP = 100.
  567.     IF ME->SAY_ME_MAX NE 0.  SYST-PRCOP = ME->SAY_ME_NOW * 100 / ME->SAY_ME_MAX. ENDIF.
  568.     CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
  569.       EXPORTING
  570.         PERCENTAGE = SYST-PRCOP
  571.         TEXT       = I_MESSAGE
  572.       EXCEPTIONS
  573.         OTHERS     = 1.
  574.   ENDMETHOD.
  575.  
  576.   METHOD MSG_ADD.
  577.     DATA: C_01(40),
  578.           C_02(40),
  579.           C_03(40),
  580.           C_04(40).
  581.     CLEAR C_MSG.
  582.     C_01 = P_01.
  583.     C_02 = P_02.
  584.     C_03 = P_03.
  585.     C_04 = P_04.
  586.     CONCATENATE C_01 C_02 C_03 C_04 INTO C_MSG SEPARATED BY ABAP_FALSE.
  587.     APPEND C_MSG TO T_MSG.
  588.   ENDMETHOD.
  589.  
  590.   METHOD MSG_LIST.
  591.     DATA: L_AJU LIKE SY-INDEX.
  592.     DESCRIBE TABLE ME->T_MSG LINES SY-FDPOS.
  593.     CHECK SY-FDPOS > 0.
  594.     DATA: T_MSG_2 TYPE STANDARD TABLE OF TRTAB,
  595.           C_MSG_2 TYPE TRTAB.
  596.  
  597.  
  598.     LOOP AT ME->T_MSG INTO ME->C_MSG.
  599.       AT FIRST.
  600.         CLEAR L_AJU.
  601.       ENDAT.
  602.       C_MSG_2 = ME->C_MSG.
  603.       SY-FDPOS = STRLEN( ME->C_MSG ).
  604.       IF L_AJU < SY-FDPOS.
  605.         L_AJU = SY-FDPOS + 5. " Ajustamos dinamicamente el popup.
  606.       ENDIF.
  607.       APPEND C_MSG_2 TO T_MSG_2.
  608.       AT LAST.
  609.  
  610.         CALL FUNCTION 'LAW_SHOW_POPUP_WITH_TEXT'
  611.           EXPORTING
  612.             TITELBAR         = C_TXT_LOGT
  613.             LINE_SIZE        = L_AJU
  614.           TABLES
  615.             LIST_TAB         = T_MSG_2
  616.           EXCEPTIONS
  617.             ACTION_CANCELLED = 1
  618.             OTHERS           = 2.
  619.       ENDAT.
  620.     ENDLOOP.
  621.   ENDMETHOD.
  622.  
  623.   METHOD CONSTRUCTOR.
  624.     ME->LOG_LOAD( ).
  625.   ENDMETHOD.
  626.  
  627.   METHOD LOG_ADD.
  628.     ME->C_LOGF = SY-VLINE.
  629. * date | hora | orden | remov | add | free | async | again | dest | mandt | bloq | scc1 |
  630.     IF ME->P_SIQUIERO = ABAP_TRUE.
  631.       CONCATENATE ME->P_DESTINO
  632.       ME->P_MANDT INTO ME->C_LOGF SEPARATED BY SY-VLINE.
  633.       IF I_UCOMM IS INITIAL.
  634.         I_UCOMM = C_TXT_EXEC. "<-- Dejamos claro que estamos ejecutando
  635.       ENDIF.
  636.     ENDIF.
  637.     CONCATENATE SY-DATUM
  638.     SY-UZEIT
  639.     SY-UNAME
  640.     I_ORDEN
  641.     ME->P_REMOV
  642.     ME->P_ADDREQ
  643.     ME->P_LIBERA
  644.     ME->P_ASINCRO
  645.     ME->P_IMPAGAIN
  646.     ME->LOG_NAME      "<--Sustituye al destino|man_dt
  647.     ME->P_ENBLOQUE
  648.     ME->P_SCC1
  649.     I_UCOMM
  650.     ME->P_DEL_FILE
  651.     ME->P_IGDEST
  652.     INTO ME->C_LOGF SEPARATED BY SY-VLINE.
  653.     APPEND ME->C_LOGF TO ME->T_LOGF.
  654.     IF I_UCOMM = C_TXT_EXEC.
  655.       CLEAR I_UCOMM.
  656. *      CLEAR i_ucomm.   "<-- Restauramos, por si las flies...
  657.     ENDIF.
  658.   ENDMETHOD.
  659.  
  660.   METHOD LOG_LOAD.
  661.     CONCATENATE SY-REPID '_log' INTO ME->LOG_NAME.
  662.     READ REPORT ME->LOG_NAME INTO ME->T_LOGF.
  663.   ENDMETHOD.
  664.  
  665.   METHOD LOG_SHOW.
  666.     TYPES: BEGIN OF T_ALV,
  667.       DATUM TYPE SY-DATUM,
  668.       UZEIT TYPE SY-UZEIT,
  669.       UNAME LIKE SY-UNAME,
  670.       ORDEN TYPE TRKORR,
  671.  
  672.       DESC  TYPE AS4TEXT,
  673.       P_REMOV(6),
  674.       P_ADDREQ(6),
  675.       LIBERA(6),
  676.       ASINCRO(6),
  677.       IMPAGAIN(6),
  678.       DESTINO(5),
  679.       MAN_DT(5),
  680.       ENBLOQUE(6),
  681.       SCC1(6),
  682.       UCOMM LIKE SSCRFIELDS-UCOMM,
  683.       DEL_FILE(6),
  684.       IGDEST(6),
  685.       MAQ01(6),
  686.       MAQ02(6),
  687.       MAQ03(6),
  688.       MAQ04(6),
  689.       MAQ05(6),
  690.     END OF T_ALV.
  691.     DATA: I_ALV TYPE STANDARD TABLE OF T_ALV,
  692.           T_ALV TYPE STANDARD TABLE OF T_ALV,
  693.           C_ALV TYPE T_ALV.
  694.  
  695.     DEFINE PUT_ICON.
  696.       IF NOT &1 IS INITIAL. &1 = '@01@'. ENDIF.
  697.     END-OF-DEFINITION.
  698.  
  699. ** Formamos unos rangos
  700.     DATA: WF_TAB_FIELD TYPE STANDARD TABLE OF RSTABFIELD,
  701.           WF_C_FIELD TYPE RSTABFIELD,
  702.           WF_EXL_OPT TYPE RSOPTIONS ,
  703.           L_C_TXT_FECHA TYPE RSSELTEXT,
  704.           L_TITLE TYPE SYTITLE,
  705.           R_FDATUM TYPE RANGE OF SYDATUM.
  706.  
  707.     MOVE: 'DATUM'  TO WF_C_FIELD-FIELDNAME ,
  708.           'SYST' TO WF_C_FIELD-TABLENAME .
  709.     APPEND WF_C_FIELD TO WF_TAB_FIELD .
  710.     CLEAR WF_C_FIELD.
  711.  
  712. *--[ INI 20130731  Evitamos DUMP en nuevas versiones de SAP
  713.     L_C_TXT_FECHA = C_TXT_FECHA.
  714.     L_TITLE = C_TXT_RANGOF.
  715. *--[ FIN 20130731
  716.  
  717.     CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
  718.       EXPORTING
  719.         TITLE             = L_TITLE
  720.         TEXT              = L_C_TXT_FECHA
  721.         EXCLUDED_OPTIONS  = WF_EXL_OPT
  722.         HELP_FIELD        = 'SYST-DATUM'
  723.         TAB_AND_FIELD     = WF_C_FIELD
  724.       TABLES
  725.         RANGE             = R_FDATUM
  726.       EXCEPTIONS
  727.         NO_RANGE_TAB      = 1
  728.         CANCELLED         = 2
  729.         INTERNAL_ERROR    = 3
  730.         INVALID_FIELDNAME = 4
  731.         OTHERS            = 5.
  732.     ME->SAY_ME( C_TXT_LOAD_ORD ).
  733.     LOOP AT ME->T_LOGF INTO ME->C_LOGF.
  734.       CLEAR C_ALV.
  735.       SPLIT ME->C_LOGF AT SY-VLINE INTO: C_ALV-DATUM
  736.       C_ALV-UZEIT
  737.       C_ALV-UNAME
  738.       C_ALV-ORDEN
  739.       C_ALV-P_REMOV
  740.       C_ALV-P_ADDREQ
  741.       C_ALV-LIBERA
  742.       C_ALV-ASINCRO
  743.       C_ALV-IMPAGAIN
  744.       C_ALV-DESTINO
  745.       C_ALV-MAN_DT
  746.       C_ALV-ENBLOQUE
  747.       C_ALV-SCC1
  748.       C_ALV-UCOMM
  749.       C_ALV-DEL_FILE
  750.       C_ALV-IGDEST.
  751.  
  752.       CHECK C_ALV-DATUM IN R_FDATUM.
  753.  
  754.       PUT_ICON C_ALV-P_REMOV.
  755.       PUT_ICON C_ALV-P_ADDREQ.
  756.       PUT_ICON C_ALV-LIBERA.
  757.       PUT_ICON C_ALV-ASINCRO.
  758.       PUT_ICON C_ALV-IMPAGAIN.
  759.       PUT_ICON C_ALV-ENBLOQUE.
  760.       PUT_ICON C_ALV-SCC1.
  761.       PUT_ICON C_ALV-DEL_FILE.
  762.       PUT_ICON C_ALV-IGDEST.
  763.  
  764. *--[ Descripcion de la orden
  765.       SELECT SINGLE AS4TEXT INTO C_ALV-DESC FROM  E07T
  766.       WHERE  TRKORR   = C_ALV-ORDEN
  767.       AND    LANGU    = SY-LANGU.
  768.  
  769.       APPEND C_ALV TO I_ALV.
  770.     ENDLOOP.
  771.  
  772.     CL_SALV_TABLE=>FACTORY(
  773.     IMPORTING
  774.       R_SALV_TABLE = T_TABLE
  775.     CHANGING
  776.       T_TABLE = I_ALV
  777.       ).
  778.  
  779.     "Para los botones en el status
  780.     G_FUNCTIONS = T_TABLE->GET_FUNCTIONS( ).
  781.     G_FUNCTIONS->SET_ALL( ABAP_TRUE ).
  782.  
  783.     "Para mostar el titulo del alv
  784.     DATA: TITULO TYPE LVC_TITLE.
  785.     G_DSP = T_TABLE->GET_DISPLAY_SETTINGS( ).
  786.     CONCATENATE 'LOG' VERSION INTO TITULO SEPARATED BY ABAP_FALSE.
  787.     G_DSP->SET_LIST_HEADER( TITULO ).
  788.  
  789.     G_COLUMNS = T_TABLE->GET_COLUMNS( ).
  790.     G_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).
  791.  
  792.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'UCOMM' ).    G_COLUMN->SET_SHORT_TEXT( C_TXT_CMD ).
  793.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'SCC1' ).     G_COLUMN->SET_SHORT_TEXT( C_TXT_SCC1T ).
  794.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'ENBLOQUE' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_EN_BLOQT ).
  795.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'IGDEST' ).   G_COLUMN->SET_SHORT_TEXT( C_TXT_IGDEST ).
  796.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'MAN_DT' ).   G_COLUMN->SET_SHORT_TEXT( C_TXT_MAN_DT ).
  797.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'P_REMOV' ).  G_COLUMN->SET_SHORT_TEXT( C_TXT_P_REMOV ).
  798.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'P_ADDREQ' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_P_ADDREQ ).
  799.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'LIBERA' ).   G_COLUMN->SET_SHORT_TEXT( C_TXT_LIBERA ).
  800.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'ASINCRO' ).  G_COLUMN->SET_SHORT_TEXT( C_TXT_ASINCRO ).
  801.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'IMPAGAIN' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_IMPAGAIN ).
  802.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'DESTINO' ).  G_COLUMN->SET_SHORT_TEXT( C_TXT_DESTINO ).
  803.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'DEL_FILE' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_DEL_FILE ).
  804.     G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'DESC' ).     G_COLUMN->SET_SHORT_TEXT( C_TXT_DESC ).
  805.  
  806. *--[ Asignacion de las maquinas
  807.     DATA: COLA TYPE LVC_FNAME,
  808.           L_SHORT TYPE SCRTEXT_S,
  809.           L_TCECPSTAT TYPE STANDARD TABLE OF TCECPSTAT,
  810.           C_TCECPSTAT TYPE TCECPSTAT.
  811.  
  812.     SELECT * FROM TCECPSTAT INTO TABLE L_TCECPSTAT.
  813.  
  814.     DO 5 TIMES.
  815.       COLA = SY-INDEX.
  816.       SHIFT COLA LEFT DELETING LEADING ABAP_FALSE.
  817.       CONCATENATE 'MAQ0' COLA INTO COLA.
  818.       G_COLUMN ?= G_COLUMNS->GET_COLUMN( COLA ).
  819.  
  820.       READ TABLE L_TCECPSTAT INTO C_TCECPSTAT INDEX SY-INDEX.
  821.       IF SY-SUBRC EQ 0.
  822.         L_SHORT = C_TCECPSTAT-SYSNAME.
  823.         G_COLUMN->SET_SHORT_TEXT( L_SHORT ).
  824.       ELSE.
  825.         G_COLUMN->SET_VISIBLE( ABAP_FALSE ).
  826.       ENDIF.
  827.     ENDDO.
  828.  
  829.     DATA: ES_COFILE TYPE CTSLG_COFILE,
  830.           C_SYSTEMS TYPE CTSLG_SYSTEM.
  831.     FIELD-SYMBOLS: <FC> TYPE ANY.
  832.     ME->SAY_ME( C_TXT_FIND_DEST ).
  833.     LOOP AT I_ALV INTO C_ALV.
  834.  
  835.       CLEAR ES_COFILE.
  836.  
  837.       CALL FUNCTION 'TR_READ_GLOBAL_INFO_OF_REQUEST'
  838.         EXPORTING
  839.           IV_TRKORR                 = C_ALV-ORDEN
  840. *         IV_DIR_TYPE               = 'T'
  841. *         IS_SETTINGS               =
  842. *         IV_SUPPRESS_DELETED_STEPS = abap_false
  843. *         IT_COMM_SYSTEMS           =
  844.         IMPORTING
  845.           ES_COFILE                 = ES_COFILE.
  846.  
  847.       LOOP AT ES_COFILE-SYSTEMS INTO C_SYSTEMS.
  848. *--[ Leemos la tabla
  849.         READ TABLE L_TCECPSTAT INTO C_TCECPSTAT WITH KEY SYSNAME = C_SYSTEMS-SYSTEMID.
  850.         CHECK SY-SUBRC EQ 0.
  851.         COLA = SY-TABIX.
  852.         SHIFT COLA LEFT DELETING LEADING ABAP_FALSE.
  853.         CONCATENATE 'C_ALV-MAQ0' COLA INTO COLA.
  854.         ASSIGN (COLA) TO <FC>.
  855.         <FC> = '@01@'.
  856.         MODIFY I_ALV FROM C_ALV.
  857.       ENDLOOP.
  858.  
  859.     ENDLOOP.
  860.  
  861.     "Para mostrar el alv
  862.     T_TABLE->DISPLAY( ).
  863.   ENDMETHOD.
  864.  
  865.   METHOD LOG_WRITE.
  866.     INSERT REPORT LOG_NAME FROM ME->T_LOGF.
  867.   ENDMETHOD.
  868.  
  869.   METHOD LOG_VER.
  870.     CALL FUNCTION 'TMS_UI_SHOW_TRANSPORT_LOGS'
  871.       EXPORTING
  872.         IV_REQUEST                 = 'SOME'
  873.         IV_SYSTEM                  = ME->P_SYSTEM
  874.         IT_REQUESTS                = ME->TUS_ORDENES
  875.       EXCEPTIONS
  876.         SHOW_TRANSPORT_LOGS_FAILED = 1
  877.         OTHERS                     = 2.
  878.   ENDMETHOD.
  879.  
  880.   METHOD ORDEN_UPLOAD.
  881.     CLEAR ME->D_ERROR.
  882. *----[ Ahora la D (que es opcional)
  883.     CONCATENATE DIRSAP C_TXT_D I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_SOURCE.
  884.     CONCATENATE C_PATH_D C_TXT_D I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_TARGET.
  885.     ME->ORDEN_IMPORTAR( ).
  886. *----[ K cofiles
  887.     CONCATENATE DIRSAP   I_ORDEN+3(7) '.' I_ORDEN(3) INTO ME->D_PATH_SOURCE.
  888.     CONCATENATE C_PATH_C I_ORDEN+3(7) '.' I_ORDEN(3) INTO ME->D_PATH_TARGET.
  889.     ME->ORDEN_IMPORTAR( ).
  890.     IF ME->D_ERROR = ABAP_TRUE.
  891.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_CANT_FIND  P_02 = ME->D_PATH_SOURCE ).
  892.     ENDIF.
  893. *----[ R o D - Data
  894.     CONCATENATE DIRSAP C_TXT_R I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_SOURCE.
  895.     CONCATENATE C_PATH_D C_TXT_R I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_TARGET.
  896.     ME->ORDEN_IMPORTAR( ).
  897.     IF ME->D_ERROR = ABAP_TRUE.
  898.  
  899.       ME->MSG_ADD( EXPORTING P_01 = C_TXT_CANT_FIND  P_02 = ME->D_PATH_SOURCE ).
  900.     ENDIF.
  901.   ENDMETHOD.
  902.  
  903.   METHOD ORDEN_IMPORTAR.
  904.     CALL FUNCTION 'ARCHIVFILE_CLIENT_TO_SERVER'
  905.       EXPORTING
  906.         PATH       = ME->D_PATH_SOURCE
  907.         TARGETPATH = ME->D_PATH_TARGET
  908.       EXCEPTIONS
  909.         ERROR_FILE = 99
  910.         OTHERS     = 99.
  911.     IF SY-SUBRC <> 0.
  912.       ME->D_ERROR = ABAP_TRUE.
  913.     ENDIF.
  914.     CLEAR: ME->D_PATH_SOURCE, ME->D_PATH_TARGET.
  915.   ENDMETHOD.
  916.  
  917.   METHOD ORDEN_LIBERAR.
  918.     TYPES: BEGIN OF TY_ORD,
  919.                ORD_TAR(1),
  920.                ORDEN LIKE E070-STRKORR,
  921.            END OF TY_ORD.
  922.  
  923.     DATA: ES_R TYPE TRWBO_REQUEST,
  924.           ET_D TYPE TRWBO_T_E070,
  925.           OLDUSER LIKE SY-UNAME,
  926.           T_ORD TYPE STANDARD TABLE OF TY_ORD,
  927.           IE070 TYPE STANDARD TABLE OF E070,
  928.           CE070 TYPE E070,
  929.           C_ORD TYPE TY_ORD.
  930.  
  931. * Buscamos Ordenes y Tareas
  932.     SELECT * FROM E070 INTO CE070
  933.               WHERE ( STRKORR = I_ORDEN OR TRKORR = I_ORDEN )
  934.                          AND TRSTATUS = C_TXT_D.
  935.       CLEAR C_ORD.
  936.       C_ORD-ORD_TAR = 'T'.
  937.       IF CE070-STRKORR IS INITIAL.
  938.         C_ORD-ORD_TAR = 'Z'.
  939.       ENDIF.
  940.       C_ORD-ORDEN = CE070-TRKORR.
  941.       APPEND C_ORD TO T_ORD.
  942.     ENDSELECT.
  943.     SORT T_ORD.
  944.     DELETE ADJACENT DUPLICATES FROM T_ORD.
  945.  
  946. * Buscamos Ordenes
  947.     LOOP AT T_ORD INTO C_ORD.
  948.       SELECT SINGLE * FROM E070 INTO CE070 WHERE  TRKORR = C_ORD-ORDEN.
  949.       OLDUSER = CE070-AS4USER.
  950.       IF CE070-AS4USER NE SY-UNAME.
  951.         CE070-AS4USER = SY-UNAME.
  952.         UPDATE E070 FROM CE070.
  953.       ENDIF.
  954.  
  955.       CALL FUNCTION 'TR_RELEASE_REQUEST'
  956.         EXPORTING
  957.           IV_TRKORR                  = C_ORD-ORDEN
  958.           IV_DIALOG                  = ABAP_TRUE
  959.           IV_AS_BACKGROUND_JOB       = ABAP_FALSE
  960.           IV_SUCCESS_MESSAGE         = ABAP_TRUE
  961.         IMPORTING
  962.           ES_REQUEST                 = ES_R
  963.           ET_DELETED_TASKS           = ET_D
  964.         EXCEPTIONS
  965.           CTS_INITIALIZATION_FAILURE = 1
  966.           ENQUEUE_FAILED             = 2
  967.           NO_AUTHORIZATION           = 3
  968.           INVALID_REQUEST            = 4
  969.           REQUEST_ALREADY_RELEASED   = 5
  970.           REPEAT_TOO_EARLY           = 6
  971.           OBJECT_CHECK_ERROR         = 7
  972.           DOCU_MISSING               = 8
  973.           DB_ACCESS_ERROR            = 9
  974.           ACTION_ABORTED_BY_USER     = 10
  975.           EXPORT_FAILED              = 11
  976.           OTHERS                     = 12.
  977.  
  978.       IF SY-SUBRC NE 0.
  979.         ME->D_ERROR = ABAP_TRUE.
  980.          ME->MSG_ADD( EXPORTING P_01 = C_TXT_RELF  P_02 = C_ORD-ORDEN P_03 = C_TXT_CANC ).
  981.       ELSE.
  982.          ME->MSG_ADD( EXPORTING P_01 = C_TXT_RELOK P_02 = C_ORD-ORDEN ).
  983.       ENDIF.
  984.       IF CE070-AS4USER NE OLDUSER.
  985.         CE070-AS4USER = OLDUSER.
  986.         IF CE070-TRSTATUS NE C_TXT_R.
  987.           CE070-TRSTATUS = C_TXT_R. "<-- Forzamos su liberacion ;)
  988.         ENDIF.
  989.         UPDATE E070 FROM CE070.
  990.       ENDIF.
  991.       COMMIT WORK.
  992.       CHECK ME->D_ERROR = ABAP_TRUE.
  993.       EXIT.
  994.     ENDLOOP.
  995.   ENDMETHOD.
  996.  
  997.   METHOD READ_TEXT_POOL.
  998.     DATA: T_TEXTTAB TYPE STANDARD TABLE OF TEXTPOOL,
  999.           C_TEXTTAB TYPE TEXTPOOL.
  1000.  
  1001.     DEFINE ADD_PARAM.                                         "3.1.5
  1002.       C_TEXTTAB-ID = 'S'.
  1003.       C_TEXTTAB-KEY = &1.
  1004.       CONCATENATE '!!!!!!!!' &2 INTO C_TEXTTAB-ENTRY. "Blancos necesarios al principio
  1005.       TRANSLATE C_TEXTTAB-ENTRY USING '! '.
  1006.       C_TEXTTAB-LENGTH = STRLEN( C_TEXTTAB-ENTRY ).
  1007.       APPEND C_TEXTTAB TO T_TEXTTAB.
  1008.     END-OF-DEFINITION.
  1009.  
  1010.     READ TEXTPOOL SY-REPID INTO T_TEXTTAB LANGUAGE SY-LANGU.
  1011.  
  1012.     LOOP AT T_TEXTTAB INTO C_TEXTTAB.
  1013.       CASE C_TEXTTAB-ID.
  1014.         WHEN 'R'.
  1015.           CONCATENATE C_TXT_TITLE VERSION INTO C_TEXTTAB-ENTRY SEPARATED BY ABAP_FALSE.
  1016.           MODIFY T_TEXTTAB FROM C_TEXTTAB INDEX SY-TABIX.
  1017.         WHEN 'S'. DELETE T_TEXTTAB  INDEX SY-TABIX.
  1018.       ENDCASE.
  1019.     ENDLOOP.
  1020. *--[ Anyadimos nuevos parametros 3.1.5
  1021.     ADD_PARAM 'ASINCRO'  C_TXT_ASINC.
  1022.     ADD_PARAM 'C_PATH_C' C_TXT_DIRCO.
  1023.     ADD_PARAM 'C_PATH_D' C_TXT_DIRDA.
  1024.     ADD_PARAM 'DESTINO'  C_TXT_DEST.
  1025.     ADD_PARAM 'DIRSAP'   C_TXT_DIRF.
  1026.     ADD_PARAM 'ENBLOQUE' C_TXT_PBLOQ.
  1027.     ADD_PARAM 'IMPAGAIN' C_TXT_AGAIN.
  1028.     ADD_PARAM 'LIBERA'   C_TXT_FREE.
  1029.     ADD_PARAM 'MAN_DT'   C_TXT_MANDT.
  1030.     ADD_PARAM 'ORDENES'  C_TXT_ORDENS.
  1031.     ADD_PARAM 'P_ADDREQ' C_TXT_ADDBUF.
  1032.     ADD_PARAM 'P_REMOV'  C_TXT_REMBUF.
  1033.     ADD_PARAM 'P_STMS'   C_TXT_LSTMS.
  1034.     ADD_PARAM 'SCC1'     C_TXT_SCC1.
  1035.     ADD_PARAM 'SIQUIERO' C_TXT_TRANS.
  1036.     ADD_PARAM 'DEL_FILE' C_TXT_REMSRV.
  1037.     ADD_PARAM 'IGDEST'   C_TXT_IGNDEST.
  1038.     INSERT TEXTPOOL SY-REPID FROM T_TEXTTAB LANGUAGE SY-LANGU STATE 'A'.
  1039.   ENDMETHOD.
  1040. ENDCLASS.
  1041.  
  1042. DATA: MY_TRANS TYPE REF TO ZCL_TRANS.
  1043.  
  1044. INITIALIZATION.
  1045.   CREATE OBJECT MY_TRANS.
  1046.  
  1047.   MOVE '@2V@'       TO SSCRFIELDS-FUNCTXT_01.
  1048.   MOVE C_TXT_IMPORT TO SSCRFIELDS-FUNCTXT_02. "Import
  1049.   MOVE C_TXT_EXPORT TO SSCRFIELDS-FUNCTXT_03. "Export
  1050.   MOVE C_TXT_STMS   TO SSCRFIELDS-FUNCTXT_04. "Export
  1051.   MOVE C_TXT_SE09   TO SSCRFIELDS-FUNCTXT_05. "Export
  1052.   MOVE C_TXT_LOG    TO C_LOG. "Export
  1053.   MOVE C_TXT_ORDEN  TO C_CORR. "Export
  1054.   MOVE C_TXT_UP     TO T_UP.
  1055.   MOVE C_TXT_DOWN   TO T_DO.
  1056.  
  1057.   MY_TRANS->READ_TEXT_POOL( ).
  1058.   MY_TRANS->P_DIRSAP = DIRSAP.
  1059.  
  1060.   DATA:L_DIR_DATA       TYPE TRFILE,
  1061.         L_DIR_COFILES    TYPE TRFILE.
  1062.  
  1063.   CALL FUNCTION 'TRINT_FI_GET_DIRECTORY_NAMES'
  1064.     IMPORTING
  1065.       EV_DATA_DIR          = L_DIR_DATA
  1066.       EV_COFILES_DIR       = L_DIR_COFILES
  1067.     EXCEPTIONS
  1068.       GET_DIR_TRANS_FAILED = 1
  1069.       BUILD_PATH_FAILED    = 2
  1070.       OTHERS               = 3.
  1071.  
  1072.   SY-LISEL+(1) = '\'.
  1073.   IF L_DIR_DATA CA '/'.
  1074.      SY-LISEL+(1) = '/'.
  1075.   ENDIF.
  1076.  
  1077.   CONCATENATE L_DIR_DATA SY-LISEL+(1) INTO C_PATH_D.
  1078.   CONCATENATE L_DIR_COFILES SY-LISEL+(1) INTO C_PATH_C.
  1079.   PERFORM INICIALIZA_VARS.
  1080.  
  1081. AT SELECTION-SCREEN OUTPUT.
  1082.   LOOP AT SCREEN.
  1083.     CHECK SCREEN-NAME CP 'c_path_*' OR
  1084.     SCREEN-NAME CP 'C_PATH_*'.
  1085.     SCREEN-INPUT = 0.
  1086.     MODIFY SCREEN.
  1087.   ENDLOOP.
  1088.  
  1089. *--[ Protegemos los botones que no estan en esta version
  1090. * Proteccion de subida y bajada de ficheros
  1091.   SELECT SINGLE TCODE INTO SY-LISEL FROM TSTC WHERE TCODE = 'CG3Z'.
  1092.   IF SY-SUBRC NE 0.
  1093.     LOOP AT SCREEN.
  1094.       IF SCREEN-NAME CP '*_UP*' OR
  1095.       SCREEN-NAME CP '*_DO*'.
  1096.         SCREEN-INVISIBLE = '1'.
  1097.         MODIFY SCREEN.
  1098.       ENDIF.
  1099.     ENDLOOP.
  1100.   ENDIF.
  1101.  
  1102. AT SELECTION-SCREEN.
  1103.   MY_TRANS->P_DIRSAP = DIRSAP.
  1104.   MY_TRANS->LOG_LOAD( ).
  1105.   DESCRIBE TABLE ORDENES LINES MY_TRANS->SAY_ME_MAX.
  1106.   CASE SSCRFIELDS-UCOMM.
  1107.     WHEN 'VLOG'. MY_TRANS->LOG_SHOW( ).
  1108.     WHEN 'CORR'. MY_TRANS->ORDEN_CREAR( ).
  1109.     WHEN 'F_UP'. CALL TRANSACTION 'CG3Z'.
  1110.     WHEN 'F_DO'. CALL TRANSACTION 'CG3Y'.
  1111.     WHEN 'FC01'.
  1112.       CLEAR ORDENES. REFRESH ORDENES.
  1113.       CALL FUNCTION 'CLPB_IMPORT'
  1114.         TABLES
  1115.           DATA_TAB   = DATA_TAB
  1116.         EXCEPTIONS
  1117.           CLPB_ERROR = 99
  1118.           OTHERS     = 99.
  1119.       LOOP AT DATA_TAB.
  1120.         ORDENES-SIGN = 'I'.
  1121.         ORDENES-OPTION = 'EQ'.
  1122.         ORDENES-LOW = DATA_TAB.
  1123.         APPEND ORDENES.
  1124.       ENDLOOP.
  1125.     WHEN 'FC02'. " Importar Ordenes
  1126.       LOOP AT ORDENES.
  1127.         CHECK NOT ORDENES-LOW IS INITIAL.
  1128.         MY_TRANS->SAY_ME( ORDENES-LOW ).
  1129.         MY_TRANS->LOG_ADD( EXPORTING I_ORDEN = ORDENES-LOW
  1130.                            CHANGING  I_UCOMM = SSCRFIELDS-UCOMM
  1131.                          ).
  1132.         MY_TRANS->ORDEN_UPLOAD( ORDENES-LOW ).
  1133.         MY_TRANS->ORDEN_ADD( EXPORTING I_ORDEN = ORDENES-LOW I_SYSTEM = SY-SYSID ).
  1134.       ENDLOOP.
  1135.     WHEN 'FC03'. " Export Ordenes
  1136.       LOOP AT ORDENES.
  1137.         CHECK NOT ORDENES-LOW IS INITIAL.
  1138.         MY_TRANS->SAY_ME( ORDENES-LOW ).
  1139.         MY_TRANS->LOG_ADD( EXPORTING I_ORDEN = ORDENES-LOW
  1140.                            CHANGING  I_UCOMM = SSCRFIELDS-UCOMM
  1141.           ).
  1142.         MY_TRANS->ORDEN_LIBERAR( ORDENES-LOW ).
  1143.         MY_TRANS->SERVER_DOWNLOAD( ORDENES-LOW ).
  1144.       ENDLOOP.
  1145.     WHEN 'FC05'. " Export Ordenes
  1146.  
  1147.       TYPES: BEGIN OF STRHI_SPECIAL_REQUEST,
  1148.         TRKORR LIKE E070-TRKORR,
  1149.         ACTION TYPE C,
  1150.       END OF   STRHI_SPECIAL_REQUEST,
  1151.       STRHI_SPECIAL_REQUESTS TYPE STRHI_SPECIAL_REQUEST OCCURS 0.
  1152.       DATA: MYDAT TYPE STRHI_SPECIAL_REQUEST OCCURS 0.
  1153.       DATA CS_RANGES TYPE  TRSEL_TS_RANGES.
  1154.       DATA: IS_SELECTION TYPE TRWBO_SELECTION.
  1155.  
  1156.       IS_SELECTION-TRKORRPATTERN = '*'.
  1157.       IS_SELECTION-REQFUNCTIONS = 'CDEFGKMOPQRSTWX'.
  1158.       IS_SELECTION-REQSTATUS = 'RNODL'.
  1159.  
  1160.  
  1161.       CS_RANGES-TRKORR[] = ORDENES[].
  1162.  
  1163.       CALL FUNCTION 'TR_SEARCH_AND_DISPLAY_REQUESTS'
  1164.         EXPORTING
  1165.           IV_USERNAME            = '*'
  1166.           IS_SELECTION           = IS_SELECTION
  1167.           IT_SPECIAL_REQUESTS    = MYDAT
  1168.         EXCEPTIONS
  1169.           ACTION_ABORTED_BY_USER = 1
  1170.           OTHERS                 = 2.
  1171.     WHEN 'FC04'. " Export Ordenes
  1172.       CALL FUNCTION 'TMS_UI_IMPORT_OVERVIEW'.
  1173.  
  1174.   ENDCASE.
  1175.   IF SSCRFIELDS-UCOMM CP 'FC*'.
  1176.     MY_TRANS->MSG_LIST( ).
  1177.     MY_TRANS->LOG_WRITE( ).
  1178.   ENDIF.
  1179.  
  1180. START-OF-SELECTION.
  1181.   MY_TRANS->LOG_LOAD( ).
  1182.   PERFORM INICIALIZA_VARS.
  1183.   CHECK MY_TRANS->D_ERROR IS INITIAL.
  1184.   DESCRIBE TABLE ORDENES LINES MY_TRANS->SAY_ME_MAX.
  1185.  
  1186. ** Warning DEL_FILE.
  1187.   IF MY_TRANS->P_DEL_FILE = ABAP_TRUE.
  1188.     DATA: RESP(1).
  1189.     CLEAR: RESP, DEL_FILE.
  1190.     CALL FUNCTION 'POPUP_TO_CONFIRM'
  1191.       EXPORTING
  1192.         TITLEBAR              = C_TXT_BORRAR
  1193.         TEXT_QUESTION         = C_TXT_DEL_ORDEN
  1194.         TEXT_BUTTON_1         = C_TXT_SI
  1195.         ICON_BUTTON_1         = 'ICON_DELETE'
  1196.         TEXT_BUTTON_2         = C_TXT_NO
  1197.         ICON_BUTTON_2         = 'ICON_CANCEL'
  1198.         DEFAULT_BUTTON        = '2'
  1199.         DISPLAY_CANCEL_BUTTON = ABAP_FALSE
  1200.       IMPORTING
  1201.         ANSWER                = RESP
  1202.       EXCEPTIONS
  1203.         TEXT_NOT_FOUND        = 1
  1204.         OTHERS                = 2.
  1205.  
  1206.     IF RESP = '1'. "<-- SI
  1207.       MY_TRANS->P_DEL_FILE = ABAP_TRUE.
  1208.     ENDIF.
  1209.   ENDIF.
  1210.   CLEAR VIEW_LOGS.
  1211.   LOOP AT ORDENES.
  1212.     CHECK NOT ORDENES-LOW IS INITIAL.
  1213.     MY_TRANS->SAY_ME( ORDENES-LOW ).
  1214.     MY_TRANS->LOG_ADD( EXPORTING I_ORDEN = ORDENES-LOW
  1215.                        CHANGING  I_UCOMM = SSCRFIELDS-UCOMM
  1216.       ).
  1217.     IF MY_TRANS->P_DEL_FILE = ABAP_TRUE.
  1218.       MY_TRANS->ORDEN_DEL( ORDENES-LOW ).
  1219.     ENDIF.
  1220.     IF MY_TRANS->P_REMOV = ABAP_TRUE.
  1221.       MY_TRANS->ORDEN_REMOVE_REQUEST( ORDENES-LOW ).
  1222.     ENDIF.
  1223.     IF MY_TRANS->P_ADDREQ = ABAP_TRUE.
  1224.       MY_TRANS->ORDEN_ADD( EXPORTING I_ORDEN = ORDENES-LOW I_SYSTEM = SY-SYSID ).
  1225.     ENDIF.
  1226.     IF MY_TRANS->P_LIBERA = ABAP_TRUE.
  1227.       MY_TRANS->ORDEN_LIBERAR( ORDENES-LOW ).
  1228.     ENDIF.
  1229.     IF MY_TRANS->P_SIQUIERO = ABAP_TRUE.
  1230.       CLEAR: MI_ORDEN.
  1231.  
  1232.       MI_ORDEN-DOMNAM = MY_TRANS->P_DOMAIN.
  1233.       MI_ORDEN-SYSNAM = MY_TRANS->P_SYSTEM.
  1234.       MI_ORDEN-TRKORR = ORDENES-LOW.
  1235. *       mi_orden-tarcli =  <- &iquest;Destino?
  1236.       APPEND MI_ORDEN TO MIS_ORDENES.
  1237.  
  1238.       IF MY_TRANS->P_ENBLOQUE IS INITIAL.
  1239.         CLEAR: MY_TRANS->TUS_ORDENES.
  1240.         REFRESH: MY_TRANS->TUS_ORDENES.
  1241.         MY_TRANS->ORDEN_TRANSPORTA( ORDENES-LOW ).
  1242.         VIEW_LOGS = ABAP_TRUE.
  1243.       ENDIF.
  1244.     ENDIF.
  1245.     AT LAST.
  1246.       MY_TRANS->TUS_ORDENES[] = MIS_ORDENES[].
  1247.       IF MY_TRANS->P_SIQUIERO = ABAP_TRUE.
  1248.         IF MY_TRANS->P_ENBLOQUE = ABAP_TRUE.
  1249.           MY_TRANS->ORDEN_TRANSPORTA( ORDENES-LOW ).
  1250.         ENDIF.
  1251.         VIEW_LOGS = ABAP_TRUE.
  1252.       ENDIF.
  1253.     ENDAT.
  1254.   ENDLOOP.
  1255.   MY_TRANS->LOG_WRITE( ).
  1256.   IF VIEW_LOGS = ABAP_TRUE.
  1257.     MY_TRANS->LOG_VER( ).
  1258.   ENDIF.
  1259.   MY_TRANS->MSG_LIST( ).
  1260.  
  1261. FORM INICIALIZA_VARS.
  1262.   CLEAR: MY_TRANS->D_ERROR, MIS_ORDENES.
  1263.   REFRESH: MY_TRANS->T_MSG, MIS_ORDENES.
  1264.  
  1265.   MY_TRANS->P_DIRSAP    = DIRSAP.
  1266.   MY_TRANS->P_SYSTEM    = DESTINO.
  1267.   MY_TRANS->P_CLIENTE   = MAN_DT.
  1268.   MY_TRANS->P_REMOV     = P_REMOV.
  1269.   MY_TRANS->P_ADDREQ    = P_ADDREQ.
  1270.   MY_TRANS->P_LIBERA    = LIBERA.
  1271.   MY_TRANS->P_ASINCRO   = ASINCRO.
  1272.   MY_TRANS->P_IMPAGAIN  = IMPAGAIN.
  1273.   MY_TRANS->P_SIQUIERO  = SIQUIERO.
  1274.   MY_TRANS->P_DESTINO   = DESTINO.
  1275.   MY_TRANS->P_MANDT     = MAN_DT.
  1276.   MY_TRANS->P_ENBLOQUE  = ENBLOQUE.
  1277.   MY_TRANS->P_IGDEST    = IGDEST.
  1278.   MY_TRANS->P_SCC1      = SCC1.
  1279.   MY_TRANS->P_C_PATH_D  = C_PATH_D.
  1280.   MY_TRANS->P_C_PATH_C  = C_PATH_C.
  1281.   MY_TRANS->P_DEL_FILE   = DEL_FILE.
  1282.  
  1283.   CHECK MY_TRANS->P_SIQUIERO = ABAP_TRUE.
  1284.   IF NOT MY_TRANS->P_SYSTEM IS INITIAL AND
  1285.   NOT MY_TRANS->P_CLIENTE IS INITIAL.
  1286.     CALL FUNCTION 'TMS_CFG_GET_DOMAIN_NAME'
  1287.       EXPORTING
  1288.         IV_SYSTEM      = MY_TRANS->P_SYSTEM
  1289.       IMPORTING
  1290.         EV_DOMAIN_NAME = MY_TRANS->P_DOMAIN.
  1291.   ELSE.
  1292.     MY_TRANS->D_ERROR = ABAP_TRUE.
  1293.   ENDIF.
  1294. ENDFORM.                    "inicializa_vars