- REPORT Z01_TRANS_TEST .
- *
- * Features:
- *----------
- *** Descarga Ordenes -> Si no estan liberadas, las libera
- *** Sube Ordenes -> Y las anyade en la cola
- *** Anyade en cola
- *** Quita de la cola
- *** Libera Ordenes
- *** Transporta ordenes de Workbench (Con posibilidad de Modo Sincrono / Asincrono)
- *** Copia Ordenes de Custo mediante SCC1
- *** Log de transporte
- *** Borra Ordenes de Data y Cofiles
- *
- *History:
- *--------
- * [3.0.2] Cambiada 'TMS_MGR_GREP_TRANSPORT_QUEUE' por 'TMS_MGR_FORWARD_TR_REQUEST'
- * [3.0.3] Anyadido parametro IMPAGAIN <- Importar otra vez
- * [3.0.4] Anyadido la creacion de textos dinamicos
- * [3.0.5] Arreglado el problema con la liberacion de las ordenes
- * [3.0.6] +SE09 + STMS
- * [3.0.7] +Log en Anyadir ordenes
- * [3.0.8] +Arreglados botones
- * [3.0.9] Cambiado Flujo de Transporte con posibilidad de remove+add+transport
- * [3.0.10] Mejorado el interface con Listado de ordenes
- * [3.1.0] Creacion de un Log de transporte
- * [3.1.1] Cambio de mensajes por pantalla
- * [3.1.2] Arreglado Bug en transporte en grupo
- * [3.1.3] Borrado de las ordenes DATA/Cofiles
- * [3.1.3.1] Movido error al final, para proteger
- * [3.1.4] Anyadida busqueda en server de ficheros a descargar
- * [3.1.5] Mejorado los textos de los parametros y corregidas sentencias obsoletas
- * [3.1.6] Ver log de acciones
- * [3.1.7] Anyadido visualizador de Logs en las diferentes maquinas
- * [3.1.8] Anyadido visualizador de Logs en las diferentes maquinas
- * [3.1.8.1] Arreglado BUg de Logs para que siempre grabe antes que salga el luser
- * [3.1.8.2] Arreglado el ignorar versiones
- * [3.1.9] Añadido rango para la seleccion del LOG
- * [3.1.10] Corregidos bugs de tar iv_system
- * [3.1.11] Creacion de una nueva orden de transporte
- * [3.1.12] Evitamos DUMP en nuevas versiones de SAP en el pase de parametro de la funcion COMPLEX_SELECTIONS_DIALOG
- * [3.1.13] Añadido log para el borrado de ordenes
- * [3.1.14] Corregido error de import/export de ordenes con numero igual, pero distinto sistema y mas mejoras
- * [3.1.15] Convertido a OOP. ¿Era necesario? NO ¿Ha sido divertido? NO ¿Entonces? Pues eso,
- * [3.1.16] Corregido error del IV_CLIENT y problemas con los mensajes
- *--[ Mejoras para la traduccion
- CONSTANTS: VERSION(10) VALUE 'v3.1.16',
- C_TXT_TITLE(35) VALUE 'ZTMS :: Transport Management System',
- COPYLEFT(50) VALUE 'Alex Bergonzini 2009-2013',
- URL_SOURCE(50) VALUE 'http://www.bergonzini.com',
- C_TXT_IMPORT(11) VALUE '@48@ Import',
- C_TXT_EXPORT(11) VALUE '@49@ Export',
- C_TXT_STMS(09) VALUE '@4A@ STMS',
- C_TXT_SE09(09) VALUE '@3Q@ SE09',
- C_TXT_EXEC(05) VALUE 'TRANS',
- C_TXT_LOG(08) VALUE '@96@ LOG',
- C_TXT_ORDEN(10) VALUE '@0Y@ Orden',
- C_TXT_UP(12) VALUE '@48@ Up File',
- C_TXT_DOWN(12) VALUE '@49@ Down File',
- C_TXT_DIR(17) VALUE 'C:\SAP_TRANSXTER\',
- C_TXT_BORRAR(15) VALUE 'Borrar Ficheros',
- C_TXT_SI(2) VALUE 'Si',
- C_TXT_NO(2) VALUE 'No',
- C_TXT_DEL_ORDEN(55) VALUE 'DESEA BORRAR LOS FICHEROS DE LAS ORDENES EN SERVIDOR?',
- C_TXT_FECHA(5) VALUE 'Fecha',
- C_TXT_RANGOF(15) VALUE 'Rango de fechas',
- C_TXT_ASINC(09) VALUE 'Asincrono',
- C_TXT_DIRCO(18) VALUE 'Directorio Cofiles',
- C_TXT_DIRDA(15) VALUE 'Directorio Data',
- C_TXT_DEST(07) VALUE 'Destino',
- C_TXT_DIRF(22) VALUE 'Directorio de ficheros',
- C_TXT_PBLOQ(15) VALUE 'Pasar en Bloque',
- C_TXT_AGAIN(18) VALUE 'Importar otra vez',
- C_TXT_FREE(07) VALUE 'Liberar',
- C_TXT_MANDT(16) VALUE 'Mandante Destino',
- C_TXT_ORDENS(26) VALUE 'Ordenes',
- C_TXT_ADDBUF(26) VALUE 'Meter en Cola',
- C_TXT_REMBUF(26) VALUE 'Quitar de la Cola',
- C_TXT_LSTMS(11) VALUE 'Lanzar STMS',
- C_TXT_SCC1(26) VALUE 'Transaccion SCC1',
- C_TXT_TRANS(26) VALUE 'Transportar',
- C_TXT_REMSRV(26) VALUE 'Borrar ordenes de Servidor',
- C_TXT_IGNDEST(26) VALUE 'Ignorar Destino',
- C_TXT_LOGT(17) VALUE 'Log de transporte',
- C_TXT_CMD TYPE SCRTEXT_S VALUE 'Comando',
- C_TXT_SCC1T TYPE SCRTEXT_S VALUE 'SCC1',
- C_TXT_EN_BLOQT TYPE SCRTEXT_S VALUE 'En Bloque',
- C_TXT_IGDEST TYPE SCRTEXT_S VALUE 'IgVerDest',
- C_TXT_REGLA(40) VALUE '1234567890123456789012345678901234567890', "<-- Para no contar
- C_TXT_MAN_DT TYPE SCRTEXT_S VALUE 'Mandante',
- C_TXT_P_REMOV TYPE SCRTEXT_S VALUE 'Remove',
- C_TXT_P_ADDREQ TYPE SCRTEXT_S VALUE 'Add',
- C_TXT_LIBERA TYPE SCRTEXT_S VALUE 'Libera',
- C_TXT_ASINCRO TYPE SCRTEXT_S VALUE 'Async',
- C_TXT_IMPAGAIN TYPE SCRTEXT_S VALUE 'Again',
- C_TXT_DESTINO TYPE SCRTEXT_S VALUE 'Destino',
- C_TXT_DEL_FILE TYPE SCRTEXT_S VALUE 'Delete',
- C_TXT_DESC TYPE SCRTEXT_S VALUE 'Descripcion',
- C_TXT_LOAD_ORD(12) VALUE 'Cargando...',
- C_TXT_FIND_DEST(20) VALUE 'Buscando Destinos...',
- C_TXT_CANT_FIND(10) VALUE 'Can''t find',
- C_TXT_ENCOLA(23) VALUE '(already in the queue):',
- C_TXT_ADDED(14) VALUE 'Added request:',
- C_TXT_FAILDADD(23) VALUE 'Failed pre-add request:',
- C_TXT_D VALUE 'D',
- C_TXT_R VALUE 'R',
- C_TXT_ASC(3) VALUE 'ASC',
- C_TXT_BIN(3) VALUE 'BIN',
- C_TXT_DERROR(14) VALUE 'Download Error',
- C_TXT_DIRNOF(19) VALUE 'Directory not found',
- C_TXT_OK(2) VALUE 'Ok',
- C_TXT_FAIL(4) VALUE 'Fail',
- C_TXT_TRANKO(20) VALUE 'Transporte erroneo:',
- C_TXT_TRANOK(21) VALUE 'Transporte correcto:',
- C_TXT_RELF(13) VALUE 'Release fail:',
- C_TXT_RELOK(11) VALUE 'Release OK:',
- C_TXT_CANC(18) VALUE ' process cancelled',
- C_TXT_DELKO(14) VALUE 'Failed delete:',
- C_TXT_DELOK(15) VALUE 'Success delete:',
- C_KWTCEO(06) VALUE 'KWTCEO'. "<-- Constant, Keep hands out!
- TABLES: E070, SSCRFIELDS.
- TYPE-POOLS: TRWBO, TRSEL, CTSLG, STMS.
- INCLUDE ICONS.
- TYPES: BEGIN OF FULL_PATH,
- FILENAME(1024),
- DIR(1024),
- FULLPATH(1024),
- END OF FULL_PATH.
- DATA: DATA_TAB(20) OCCURS 0 WITH HEADER LINE,
- T_TABLE TYPE REF TO CL_SALV_TABLE,
- G_SORT TYPE REF TO CL_SALV_SORTS,
- G_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS,
- G_DSP TYPE REF TO CL_SALV_DISPLAY_SETTINGS,
- G_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE,
- G_COLUMN TYPE REF TO CL_SALV_COLUMN_TABLE,
- G_COLOR TYPE LVC_S_COLO,
- G_AGG TYPE REF TO CL_SALV_AGGREGATIONS,
- MI_ORDEN LIKE TMSBUFFER,
- MIS_ORDENES TYPE STMS_TR_REQUESTS,
- VIEW_LOGS TYPE XFELD.
- *--[ Fila de Botones
- SELECTION-SCREEN PUSHBUTTON /1(11) C_LOG USER-COMMAND VLOG.
- SELECTION-SCREEN PUSHBUTTON 12(11) C_CORR USER-COMMAND CORR.
- SELECTION-SCREEN PUSHBUTTON 24(15) T_UP USER-COMMAND F_UP.
- SELECTION-SCREEN PUSHBUTTON 40(15) T_DO USER-COMMAND F_DO.
- PARAMETERS: DIRSAP(40) DEFAULT C_TXT_DIR OBLIGATORY.
- SELECT-OPTIONS: ORDENES FOR E070-TRKORR NO INTERVALS.
- SELECTION-SCREEN BEGIN OF BLOCK B02 WITH FRAME.
- PARAMETERS: P_REMOV AS CHECKBOX DEFAULT ABAP_FALSE,
- P_ADDREQ AS CHECKBOX DEFAULT ABAP_FALSE,
- LIBERA AS CHECKBOX DEFAULT ABAP_FALSE,
- ASINCRO AS CHECKBOX DEFAULT ABAP_FALSE,
- IMPAGAIN AS CHECKBOX DEFAULT ABAP_FALSE.
- SELECTION-SCREEN END OF BLOCK B02.
- SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME.
- PARAMETERS: SIQUIERO AS CHECKBOX DEFAULT ABAP_FALSE,
- DESTINO(3) DEFAULT SY-SYSID.
- *--[ Es obligatorio indicarlo para Añadir ordenes y para transportar
- PARAMETERS: MAN_DT LIKE SYST-MANDT DEFAULT SY-MANDT OBLIGATORY.
- PARAMETERS: ENBLOQUE AS CHECKBOX DEFAULT ABAP_FALSE,
- IGDEST AS CHECKBOX DEFAULT ABAP_FALSE,
- SCC1 AS CHECKBOX DEFAULT ABAP_FALSE.
- SELECTION-SCREEN END OF BLOCK B01.
- SELECTION-SCREEN BEGIN OF BLOCK B03 WITH FRAME.
- PARAMETERS: C_PATH_D(100), " value '/usr/sap/trans/data/',
- C_PATH_C(100).
- SELECTION-SCREEN END OF BLOCK B03.
- SELECTION-SCREEN BEGIN OF BLOCK B04 WITH FRAME.
- PARAMETERS: DEL_FILE AS CHECKBOX DEFAULT ABAP_FALSE.
- SELECTION-SCREEN END OF BLOCK B04.
- SELECTION-SCREEN FUNCTION KEY 1.
- SELECTION-SCREEN FUNCTION KEY 2.
- SELECTION-SCREEN FUNCTION KEY 3.
- SELECTION-SCREEN FUNCTION KEY 4.
- SELECTION-SCREEN FUNCTION KEY 5.
- CLASS ZCL_TRANS DEFINITION.
- PUBLIC SECTION.
- DATA SAY_ME_MAX TYPE I VALUE 10.
- DATA SAY_ME_NOW TYPE I VALUE 0.
- DATA: P_ORDEN TYPE RANGE OF TRKORR,
- T_LOGF TYPE STANDARD TABLE OF STRING,
- C_LOGF TYPE STRING,
- D_ERROR TYPE C LENGTH 1,
- P_SYSTEM TYPE TMSSYSNAM,
- P_CLIENTE TYPE MANDT,
- P_DOMAIN TYPE TMSDOMNAM,
- TUS_ORDENES TYPE STANDARD TABLE OF TMSBUFFER,
- T_MSG TYPE STANDARD TABLE OF CHAR1024,
- C_MSG TYPE CHAR1024,
- T_DIR_LIST TYPE STANDARD TABLE OF FULL_PATH,
- C_DIR_LIST TYPE FULL_PATH,
- P_DIRSAP TYPE CHAR40,
- T_ORDENES TYPE STANDARD TABLE OF TRKORR,
- P_REMOV TYPE XFELD,
- P_ADDREQ TYPE XFELD,
- P_LIBERA TYPE XFELD,
- P_ASINCRO TYPE XFELD,
- P_IMPAGAIN TYPE XFELD,
- P_SIQUIERO TYPE XFELD,
- P_DESTINO TYPE SYSYSID,
- P_MANDT TYPE SYMANDT,
- P_ENBLOQUE TYPE XFELD,
- P_IGDEST TYPE XFELD,
- P_SCC1 TYPE XFELD,
- P_DEL_FILE TYPE XFELD,
- P_C_PATH_D TYPE CHAR100,
- P_C_PATH_C TYPE CHAR100,
- P_IMPORTA TYPE STMS_TP_IMPORTS,
- P_BATCH TYPE STMSCBATCH.
- DATA: D_PATH_SOURCE TYPE SAEPFAD,
- D_PATH_TARGET TYPE SAEPFAD.
- METHODS:
- SAY_ME IMPORTING I_MESSAGE TYPE ANY,
- READ_TEXT_POOL,
- ORDEN_CREAR,
- ORDEN_DEL IMPORTING I_ORDEN TYPE TRKORR,
- ORDEN_ADD IMPORTING I_ORDEN TYPE TRKORR
- I_SYSTEM TYPE SYSYSID,
- ORDEN_LIBERAR IMPORTING I_ORDEN TYPE TRKORR,
- ORDEN_TRANSPORTA IMPORTING I_ORDEN TYPE TRKORR,
- ORDEN_IMPORTAR,
- ORDEN_REMOVE_REQUEST IMPORTING I_ORDEN TYPE TRKORR,
- ORDEN_UPLOAD IMPORTING I_ORDEN TYPE TRKORR,
- MSG_LIST,
- MSG_ADD IMPORTING P_01 TYPE ANY OPTIONAL
- P_02 TYPE ANY OPTIONAL
- P_03 TYPE ANY OPTIONAL
- P_04 TYPE ANY OPTIONAL,
- LOG_VER,
- LOG_ADD IMPORTING I_ORDEN TYPE TRKORR
- CHANGING I_UCOMM TYPE SYUCOMM,
- LOG_SHOW,
- LOG_LOAD,
- LOG_WRITE,
- SERVER_CLIENT IMPORTING I_PATH TYPE ANY
- I_TARGET TYPE ANY,
- SERVER_DOWNLOAD IMPORTING I_ORDEN TYPE TRKORR,
- SERVER_READ IMPORTING I_DIR TYPE ANY
- I_MASK TYPE ANY,
- CONSTRUCTOR.
- PRIVATE SECTION.
- DATA: LOG_NAME TYPE C LENGTH 40.
- ENDCLASS.
- CLASS ZCL_TRANS IMPLEMENTATION.
- METHOD ORDEN_TRANSPORTA.
- DATA: L_ORDEN TYPE TRKORR.
- L_ORDEN = I_ORDEN.
- IF ME->P_ENBLOQUE = ABAP_TRUE.
- CLEAR L_ORDEN.
- ENDIF.
- IF ME->P_SCC1 = ABAP_FALSE.
- ** Transporte de WorkBench
- CALL FUNCTION 'TMS_MGR_IMPORT_TR_REQUEST'
- EXPORTING
- IV_SYSTEM = ME->P_SYSTEM
- IV_DOMAIN = ME->P_DOMAIN
- IV_REQUEST = L_ORDEN
- IV_CLIENT = ME->P_CLIENTE
- IV_CTC_ACTIVE = ABAP_FALSE
- IV_OVERTAKE = ABAP_FALSE
- IV_IMPORT_AGAIN = ME->P_IMPAGAIN
- IV_IGNORE_ORIGINALITY = ABAP_TRUE
- IV_IGNORE_REPAIRS = ABAP_TRUE
- IV_IGNORE_TRANSTYPE = ABAP_TRUE
- IV_IGNORE_TABLETYPE = ABAP_FALSE
- IV_IGNORE_PREDEC = ABAP_FALSE
- IV_IGNORE_CVERS = ME->P_IGDEST "<- Ignoramos el destino
- IV_TEST_IMPORT = ABAP_FALSE
- IV_SUBSET = ABAP_TRUE
- IV_OFFLINE = ME->P_ASINCRO "<-- ¿ Modo sincrono ?
- IV_MONITOR = ABAP_TRUE
- IV_VERBOSE = ABAP_FALSE
- IS_BATCH = ME->P_BATCH
- IT_REQUESTS = ME->TUS_ORDENES
- IMPORTING
- ET_TP_IMPORTS = ME->P_IMPORTA
- EXCEPTIONS
- READ_CONFIG_FAILED = 1
- TABLE_OF_REQUESTS_IS_EMPTY = 2
- OTHERS = 3.
- IF SY-SUBRC <> 0.
- ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_TRANKO P_02 = L_ORDEN ).
- ELSE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_TRANOK P_02 = L_ORDEN ).
- ENDIF.
- ELSE.
- *** Transporte de copia (Custo)
- DATA: CCSUPCOPY TYPE CCTESTRUN,
- CCCOMFILE TYPE TRKORR,
- QUELLMANDANT TYPE CCMAND,
- INCL_TASK TYPE INCL_TASK,
- RCOD TYPE SYSUBRC.
- CCSUPCOPY = ABAP_FALSE.
- CCCOMFILE = L_ORDEN.
- QUELLMANDANT = MAN_DT.
- INCL_TASK = ABAP_TRUE.
- CLEAR RCOD.
- CALL FUNCTION 'SCCR_PERFORM_SCC1'
- EXPORTING
- CCSUPCOPY = CCSUPCOPY
- CCCOMFILE = CCCOMFILE
- QUELLMANDANT = QUELLMANDANT
- INCL_TASK = INCL_TASK
- IMPORTING
- RCOD = RCOD.
- IF RCOD IS INITIAL.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_SCC1T P_02 = L_ORDEN P_03 = C_TXT_OK ).
- ELSE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_SCC1T P_02 = L_ORDEN P_03 = C_TXT_FAIL ).
- ENDIF.
- ENDIF.
- ENDMETHOD.
- METHOD ORDEN_REMOVE_REQUEST.
- * Interface TMS_MGR_MAINTAIN_TR_QUEUE
- DATA: CMD TYPE TRTPCMD,
- IDSYS TYPE TMSSYSNAM,
- ORDENP TYPE TRKORR,
- MITABTP TYPE STMS_TP_MAINTAINS.
- CMD = 'DELFROMBUFFER'.
- IDSYS = SY-SYSID.
- ORDENP = I_ORDEN.
- CALL FUNCTION 'TMS_MGR_MAINTAIN_TR_QUEUE'
- EXPORTING
- IV_COMMAND = CMD
- IV_SYSTEM = IDSYS
- IV_REQUEST = ORDENP
- IV_TARCLI = ME->P_MANDT
- IV_MONITOR = ABAP_TRUE
- IMPORTING
- ET_TP_MAINTAINS = MITABTP
- EXCEPTIONS
- READ_CONFIG_FAILED = 1
- TABLE_OF_REQUESTS_IS_EMPTY = 2
- OTHERS = 3.
- IF SY-SUBRC <> 0.
- ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELKO P_02 = ORDENP ).
- ELSE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELOK P_02 = ORDENP ).
- ENDIF.
- ENDMETHOD.
- METHOD ORDEN_DEL.
- DATA: FILE(1024).
- CLEAR: FILE.
- REFRESH ME->T_DIR_LIST.
- CONCATENATE '*' I_ORDEN+4(6) '.' I_ORDEN+0(3) INTO FILE. " 3.1.14
- ME->SERVER_READ( EXPORTING I_DIR = C_PATH_D I_MASK = FILE ).
- ME->SERVER_READ( EXPORTING I_DIR = C_PATH_C I_MASK = FILE ).
- LOOP AT ME->T_DIR_LIST INTO ME->C_DIR_LIST.
- DELETE DATASET ME->C_DIR_LIST-FULLPATH.
- IF SY-SUBRC NE 0.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELKO P_02 = I_ORDEN P_03 = ME->C_DIR_LIST-DIR ).
- ELSE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_DELOK P_02 = I_ORDEN P_03 = ME->C_DIR_LIST-DIR ).
- ENDIF.
- ENDLOOP.
- ENDMETHOD.
- METHOD ORDEN_ADD.
- DATA: D_COUNTER TYPE I.
- DATA: D_REQUEST TYPE TRKORR.
- DATA: D_SYSTEM TYPE TMSSYSNAM.
- DATA: D_DOMAIN TYPE TMSDOMNAM.
- D_REQUEST = I_ORDEN.
- SELECT SINGLE DOMNAM SYSNAM INTO (D_DOMAIN, D_SYSTEM) FROM TMSCSYS WHERE SYSNAM = I_SYSTEM.
- * Cambiar por esta: tms_mgr_forward_tr_request.
- DATA: IV_REQUEST TYPE TRKORR,
- IV_TARGET TYPE TMSSYSNAM,
- IV_TARDOM TYPE TMSDOMNAM,
- IV_SRCDOM TYPE TMSDOMNAM,
- IV_TARCLI TYPE TRTARCLI,
- IV_SOURCE TYPE TMSSYSNAM,
- ES_EXCEPTION TYPE STMSCALERT.
- IV_REQUEST = D_REQUEST.
- IV_TARGET = IV_SOURCE = D_SYSTEM.
- IV_TARDOM = IV_SRCDOM = D_DOMAIN.
- IV_TARCLI = ME->P_MANDT. "<-- Mandante de destino
- CALL FUNCTION 'TMS_MGR_FORWARD_TR_REQUEST'
- EXPORTING
- IV_REQUEST = IV_REQUEST
- IV_TARGET = IV_TARGET
- IV_TARDOM = IV_TARDOM
- IV_TARCLI = IV_TARCLI
- IV_SOURCE = IV_SOURCE
- IV_SRCDOM = IV_SRCDOM
- IV_IMPORT_AGAIN = ME->P_IMPAGAIN
- IV_MONITOR = ABAP_TRUE
- IV_VERBOSE = ABAP_FALSE
- IMPORTING
- ES_EXCEPTION = ES_EXCEPTION
- EXCEPTIONS
- READ_CONFIG_FAILED = 1
- TABLE_OF_REQUESTS_IS_EMPTY = 2
- OTHERS = 3.
- IF SY-SUBRC <> 0.
- ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_FAILDADD P_02 = IV_REQUEST ).
- ELSE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_ADDED P_02 = IV_REQUEST ).
- ENDIF.
- IF D_COUNTER > 0.
- ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_ENCOLA P_02 = IV_REQUEST ).
- ENDIF.
- ENDMETHOD.
- METHOD SERVER_CLIENT.
- DATA: L_PATH TYPE SAEPFAD,
- L_TARGETPATH TYPE SAEPFAD.
- L_PATH = I_PATH.
- L_TARGETPATH = I_TARGET.
- CLEAR ME->D_ERROR.
- CALL FUNCTION 'ARCHIVFILE_SERVER_TO_CLIENT'
- EXPORTING
- PATH = L_PATH
- TARGETPATH = L_TARGETPATH
- EXCEPTIONS
- ERROR_FILE = 1
- OTHERS = 2.
- CHECK NOT SY-SUBRC IS INITIAL.
- ME->D_ERROR = ABAP_TRUE.
- ENDMETHOD.
- METHOD ORDEN_CREAR.
- DATA: L_TIPO TYPE TRSTATLONG.
- L_TIPO = C_KWTCEO.
- PERFORM CREATE_NEW_REQUEST IN PROGRAM RDDM0001 USING L_TIPO IF FOUND.
- ENDMETHOD.
- METHOD SERVER_DOWNLOAD.
- DATA: MIS TYPE STRING.
- DATA: TARGETPATH TYPE SAEPFAD,
- FILE(255),
- RETURN,
- G_TARGETPATH TYPE SAEPFAD.
- MIS = G_TARGETPATH = ME->P_DIRSAP.
- CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_EXIST
- EXPORTING
- DIRECTORY = MIS
- RECEIVING
- RESULT = RETURN
- EXCEPTIONS
- CNTL_ERROR = 1
- ERROR_NO_GUI = 2
- WRONG_PARAMETER = 3
- NOT_SUPPORTED_BY_GUI = 4
- OTHERS = 5.
- IF SY-SUBRC NE 0.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_DIRNOF P_02 = MIS ).
- ELSE.
- CLEAR: FILE.
- REFRESH ME->T_DIR_LIST.
- CONCATENATE '*' I_ORDEN+4(6) '.' I_ORDEN+0(3) INTO FILE. "3.1.14
- ME->SERVER_READ( EXPORTING I_DIR = C_PATH_D I_MASK = FILE ).
- ME->SERVER_READ( EXPORTING I_DIR = C_PATH_C I_MASK = FILE ).
- LOOP AT ME->T_DIR_LIST INTO ME->C_DIR_LIST.
- CONCATENATE: G_TARGETPATH ME->C_DIR_LIST-FILENAME INTO TARGETPATH.
- ME->SERVER_CLIENT( EXPORTING I_PATH = ME->C_DIR_LIST-FULLPATH I_TARGET = TARGETPATH ).
- CHECK ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_DERROR P_02 = I_ORDEN ).
- ENDLOOP.
- ENDIF.
- ENDMETHOD.
- METHOD SERVER_READ.
- DATA: DIR_NAME TYPE EPSDIRNAM,
- FILE_MASK TYPE EPSFILNAM.
- DATA: BEGIN OF FILE,
- DIRNAME(75) TYPE C, " name of directory. (possibly truncated.)
- NAME(75) TYPE C, " name of entry. (possibly truncated.)
- TYPE(10) TYPE C, " type of entry.
- LEN(8) TYPE P, " length in bytes.
- OWNER(8) TYPE C, " owner of the entry.
- MTIME(6) TYPE P, " last modification date, seconds since 1970
- MODE(9) TYPE C, " like "rwx-r-x--x": protection mode.
- ERRNO(3) TYPE C,
- ERRMSG(40) TYPE C,
- END OF FILE.
- DIR_NAME = I_DIR.
- FILE_MASK = I_MASK.
- CALL 'C_DIR_READ_FINISH' " just to be sure
- ID 'ERRNO' FIELD FILE-ERRNO
- ID 'ERRMSG' FIELD FILE-ERRMSG.
- CALL 'C_DIR_READ_START'
- ID 'DIR' FIELD DIR_NAME
- ID 'FILE' FIELD FILE_MASK
- ID 'ERRNO' FIELD FILE-ERRNO
- ID 'ERRMSG' FIELD FILE-ERRMSG.
- IF SY-SUBRC <> 0.
- EXIT.
- ENDIF.
- DO.
- CLEAR: FILE, ME->C_DIR_LIST.
- CALL 'C_DIR_READ_NEXT'
- ID 'NAME' FIELD FILE-NAME.
- IF SY-SUBRC NE 0.
- EXIT.
- ENDIF.
- CHECK FILE-NAME CP FILE_MASK.
- ME->C_DIR_LIST-FILENAME = FILE-NAME.
- ME->C_DIR_LIST-DIR = I_DIR.
- CONCATENATE ME->C_DIR_LIST-DIR ME->C_DIR_LIST-FILENAME INTO ME->C_DIR_LIST-FULLPATH.
- APPEND ME->C_DIR_LIST TO ME->T_DIR_LIST.
- ENDDO.
- CALL 'C_DIR_READ_FINISH'
- ID 'ERRNO' FIELD FILE-ERRNO
- ID 'ERRMSG' FIELD FILE-ERRMSG.
- SORT ME->T_DIR_LIST.
- ENDMETHOD.
- METHOD SAY_ME.
- CHECK SY-BATCH IS INITIAL.
- ADD 1 TO ME->SAY_ME_NOW.
- IF ME->SAY_ME_NOW > ME->SAY_ME_MAX. ME->SAY_ME_NOW = 1. ENDIF.
- SYST-PRCOP = 100.
- IF ME->SAY_ME_MAX NE 0. SYST-PRCOP = ME->SAY_ME_NOW * 100 / ME->SAY_ME_MAX. ENDIF.
- CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
- EXPORTING
- PERCENTAGE = SYST-PRCOP
- TEXT = I_MESSAGE
- EXCEPTIONS
- OTHERS = 1.
- ENDMETHOD.
- METHOD MSG_ADD.
- DATA: C_01(40),
- C_02(40),
- C_03(40),
- C_04(40).
- CLEAR C_MSG.
- C_01 = P_01.
- C_02 = P_02.
- C_03 = P_03.
- C_04 = P_04.
- CONCATENATE C_01 C_02 C_03 C_04 INTO C_MSG SEPARATED BY ABAP_FALSE.
- APPEND C_MSG TO T_MSG.
- ENDMETHOD.
- METHOD MSG_LIST.
- DATA: L_AJU LIKE SY-INDEX.
- DESCRIBE TABLE ME->T_MSG LINES SY-FDPOS.
- CHECK SY-FDPOS > 0.
- DATA: T_MSG_2 TYPE STANDARD TABLE OF TRTAB,
- C_MSG_2 TYPE TRTAB.
- LOOP AT ME->T_MSG INTO ME->C_MSG.
- AT FIRST.
- CLEAR L_AJU.
- ENDAT.
- C_MSG_2 = ME->C_MSG.
- SY-FDPOS = STRLEN( ME->C_MSG ).
- IF L_AJU < SY-FDPOS.
- L_AJU = SY-FDPOS + 5. " Ajustamos dinamicamente el popup.
- ENDIF.
- APPEND C_MSG_2 TO T_MSG_2.
- AT LAST.
- CALL FUNCTION 'LAW_SHOW_POPUP_WITH_TEXT'
- EXPORTING
- TITELBAR = C_TXT_LOGT
- LINE_SIZE = L_AJU
- TABLES
- LIST_TAB = T_MSG_2
- EXCEPTIONS
- ACTION_CANCELLED = 1
- OTHERS = 2.
- ENDAT.
- ENDLOOP.
- ENDMETHOD.
- METHOD CONSTRUCTOR.
- ME->LOG_LOAD( ).
- ENDMETHOD.
- METHOD LOG_ADD.
- ME->C_LOGF = SY-VLINE.
- * date | hora | orden | remov | add | free | async | again | dest | mandt | bloq | scc1 |
- IF ME->P_SIQUIERO = ABAP_TRUE.
- CONCATENATE ME->P_DESTINO
- ME->P_MANDT INTO ME->C_LOGF SEPARATED BY SY-VLINE.
- IF I_UCOMM IS INITIAL.
- I_UCOMM = C_TXT_EXEC. "<-- Dejamos claro que estamos ejecutando
- ENDIF.
- ENDIF.
- CONCATENATE SY-DATUM
- SY-UZEIT
- SY-UNAME
- I_ORDEN
- ME->P_REMOV
- ME->P_ADDREQ
- ME->P_LIBERA
- ME->P_ASINCRO
- ME->P_IMPAGAIN
- ME->LOG_NAME "<--Sustituye al destino|man_dt
- ME->P_ENBLOQUE
- ME->P_SCC1
- I_UCOMM
- ME->P_DEL_FILE
- ME->P_IGDEST
- INTO ME->C_LOGF SEPARATED BY SY-VLINE.
- APPEND ME->C_LOGF TO ME->T_LOGF.
- IF I_UCOMM = C_TXT_EXEC.
- CLEAR I_UCOMM.
- * CLEAR i_ucomm. "<-- Restauramos, por si las flies...
- ENDIF.
- ENDMETHOD.
- METHOD LOG_LOAD.
- CONCATENATE SY-REPID '_log' INTO ME->LOG_NAME.
- READ REPORT ME->LOG_NAME INTO ME->T_LOGF.
- ENDMETHOD.
- METHOD LOG_SHOW.
- TYPES: BEGIN OF T_ALV,
- DATUM TYPE SY-DATUM,
- UZEIT TYPE SY-UZEIT,
- UNAME LIKE SY-UNAME,
- ORDEN TYPE TRKORR,
- DESC TYPE AS4TEXT,
- P_REMOV(6),
- P_ADDREQ(6),
- LIBERA(6),
- ASINCRO(6),
- IMPAGAIN(6),
- DESTINO(5),
- MAN_DT(5),
- ENBLOQUE(6),
- SCC1(6),
- UCOMM LIKE SSCRFIELDS-UCOMM,
- DEL_FILE(6),
- IGDEST(6),
- MAQ01(6),
- MAQ02(6),
- MAQ03(6),
- MAQ04(6),
- MAQ05(6),
- END OF T_ALV.
- DATA: I_ALV TYPE STANDARD TABLE OF T_ALV,
- T_ALV TYPE STANDARD TABLE OF T_ALV,
- C_ALV TYPE T_ALV.
- DEFINE PUT_ICON.
- IF NOT &1 IS INITIAL. &1 = '@01@'. ENDIF.
- END-OF-DEFINITION.
- ** Formamos unos rangos
- DATA: WF_TAB_FIELD TYPE STANDARD TABLE OF RSTABFIELD,
- WF_C_FIELD TYPE RSTABFIELD,
- WF_EXL_OPT TYPE RSOPTIONS ,
- L_C_TXT_FECHA TYPE RSSELTEXT,
- L_TITLE TYPE SYTITLE,
- R_FDATUM TYPE RANGE OF SYDATUM.
- MOVE: 'DATUM' TO WF_C_FIELD-FIELDNAME ,
- 'SYST' TO WF_C_FIELD-TABLENAME .
- APPEND WF_C_FIELD TO WF_TAB_FIELD .
- CLEAR WF_C_FIELD.
- *--[ INI 20130731 Evitamos DUMP en nuevas versiones de SAP
- L_C_TXT_FECHA = C_TXT_FECHA.
- L_TITLE = C_TXT_RANGOF.
- *--[ FIN 20130731
- CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
- EXPORTING
- TITLE = L_TITLE
- TEXT = L_C_TXT_FECHA
- EXCLUDED_OPTIONS = WF_EXL_OPT
- HELP_FIELD = 'SYST-DATUM'
- TAB_AND_FIELD = WF_C_FIELD
- TABLES
- RANGE = R_FDATUM
- EXCEPTIONS
- NO_RANGE_TAB = 1
- CANCELLED = 2
- INTERNAL_ERROR = 3
- INVALID_FIELDNAME = 4
- OTHERS = 5.
- ME->SAY_ME( C_TXT_LOAD_ORD ).
- LOOP AT ME->T_LOGF INTO ME->C_LOGF.
- CLEAR C_ALV.
- SPLIT ME->C_LOGF AT SY-VLINE INTO: C_ALV-DATUM
- C_ALV-UZEIT
- C_ALV-UNAME
- C_ALV-ORDEN
- C_ALV-P_REMOV
- C_ALV-P_ADDREQ
- C_ALV-LIBERA
- C_ALV-ASINCRO
- C_ALV-IMPAGAIN
- C_ALV-DESTINO
- C_ALV-MAN_DT
- C_ALV-ENBLOQUE
- C_ALV-SCC1
- C_ALV-UCOMM
- C_ALV-DEL_FILE
- C_ALV-IGDEST.
- CHECK C_ALV-DATUM IN R_FDATUM.
- PUT_ICON C_ALV-P_REMOV.
- PUT_ICON C_ALV-P_ADDREQ.
- PUT_ICON C_ALV-LIBERA.
- PUT_ICON C_ALV-ASINCRO.
- PUT_ICON C_ALV-IMPAGAIN.
- PUT_ICON C_ALV-ENBLOQUE.
- PUT_ICON C_ALV-SCC1.
- PUT_ICON C_ALV-DEL_FILE.
- PUT_ICON C_ALV-IGDEST.
- *--[ Descripcion de la orden
- SELECT SINGLE AS4TEXT INTO C_ALV-DESC FROM E07T
- WHERE TRKORR = C_ALV-ORDEN
- AND LANGU = SY-LANGU.
- APPEND C_ALV TO I_ALV.
- ENDLOOP.
- CL_SALV_TABLE=>FACTORY(
- IMPORTING
- R_SALV_TABLE = T_TABLE
- CHANGING
- T_TABLE = I_ALV
- ).
- "Para los botones en el status
- G_FUNCTIONS = T_TABLE->GET_FUNCTIONS( ).
- G_FUNCTIONS->SET_ALL( ABAP_TRUE ).
- "Para mostar el titulo del alv
- DATA: TITULO TYPE LVC_TITLE.
- G_DSP = T_TABLE->GET_DISPLAY_SETTINGS( ).
- CONCATENATE 'LOG' VERSION INTO TITULO SEPARATED BY ABAP_FALSE.
- G_DSP->SET_LIST_HEADER( TITULO ).
- G_COLUMNS = T_TABLE->GET_COLUMNS( ).
- G_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'UCOMM' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_CMD ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'SCC1' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_SCC1T ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'ENBLOQUE' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_EN_BLOQT ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'IGDEST' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_IGDEST ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'MAN_DT' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_MAN_DT ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'P_REMOV' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_P_REMOV ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'P_ADDREQ' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_P_ADDREQ ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'LIBERA' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_LIBERA ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'ASINCRO' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_ASINCRO ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'IMPAGAIN' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_IMPAGAIN ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'DESTINO' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_DESTINO ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'DEL_FILE' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_DEL_FILE ).
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( 'DESC' ). G_COLUMN->SET_SHORT_TEXT( C_TXT_DESC ).
- *--[ Asignacion de las maquinas
- DATA: COLA TYPE LVC_FNAME,
- L_SHORT TYPE SCRTEXT_S,
- L_TCECPSTAT TYPE STANDARD TABLE OF TCECPSTAT,
- C_TCECPSTAT TYPE TCECPSTAT.
- SELECT * FROM TCECPSTAT INTO TABLE L_TCECPSTAT.
- DO 5 TIMES.
- COLA = SY-INDEX.
- SHIFT COLA LEFT DELETING LEADING ABAP_FALSE.
- CONCATENATE 'MAQ0' COLA INTO COLA.
- G_COLUMN ?= G_COLUMNS->GET_COLUMN( COLA ).
- READ TABLE L_TCECPSTAT INTO C_TCECPSTAT INDEX SY-INDEX.
- IF SY-SUBRC EQ 0.
- L_SHORT = C_TCECPSTAT-SYSNAME.
- G_COLUMN->SET_SHORT_TEXT( L_SHORT ).
- ELSE.
- G_COLUMN->SET_VISIBLE( ABAP_FALSE ).
- ENDIF.
- ENDDO.
- DATA: ES_COFILE TYPE CTSLG_COFILE,
- C_SYSTEMS TYPE CTSLG_SYSTEM.
- FIELD-SYMBOLS: <FC> TYPE ANY.
- ME->SAY_ME( C_TXT_FIND_DEST ).
- LOOP AT I_ALV INTO C_ALV.
- CLEAR ES_COFILE.
- CALL FUNCTION 'TR_READ_GLOBAL_INFO_OF_REQUEST'
- EXPORTING
- IV_TRKORR = C_ALV-ORDEN
- * IV_DIR_TYPE = 'T'
- * IS_SETTINGS =
- * IV_SUPPRESS_DELETED_STEPS = abap_false
- * IT_COMM_SYSTEMS =
- IMPORTING
- ES_COFILE = ES_COFILE.
- LOOP AT ES_COFILE-SYSTEMS INTO C_SYSTEMS.
- *--[ Leemos la tabla
- READ TABLE L_TCECPSTAT INTO C_TCECPSTAT WITH KEY SYSNAME = C_SYSTEMS-SYSTEMID.
- CHECK SY-SUBRC EQ 0.
- COLA = SY-TABIX.
- SHIFT COLA LEFT DELETING LEADING ABAP_FALSE.
- CONCATENATE 'C_ALV-MAQ0' COLA INTO COLA.
- ASSIGN (COLA) TO <FC>.
- <FC> = '@01@'.
- MODIFY I_ALV FROM C_ALV.
- ENDLOOP.
- ENDLOOP.
- "Para mostrar el alv
- T_TABLE->DISPLAY( ).
- ENDMETHOD.
- METHOD LOG_WRITE.
- INSERT REPORT LOG_NAME FROM ME->T_LOGF.
- ENDMETHOD.
- METHOD LOG_VER.
- CALL FUNCTION 'TMS_UI_SHOW_TRANSPORT_LOGS'
- EXPORTING
- IV_REQUEST = 'SOME'
- IV_SYSTEM = ME->P_SYSTEM
- IT_REQUESTS = ME->TUS_ORDENES
- EXCEPTIONS
- SHOW_TRANSPORT_LOGS_FAILED = 1
- OTHERS = 2.
- ENDMETHOD.
- METHOD ORDEN_UPLOAD.
- CLEAR ME->D_ERROR.
- *----[ Ahora la D (que es opcional)
- CONCATENATE DIRSAP C_TXT_D I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_SOURCE.
- CONCATENATE C_PATH_D C_TXT_D I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_TARGET.
- ME->ORDEN_IMPORTAR( ).
- *----[ K cofiles
- CONCATENATE DIRSAP I_ORDEN+3(7) '.' I_ORDEN(3) INTO ME->D_PATH_SOURCE.
- CONCATENATE C_PATH_C I_ORDEN+3(7) '.' I_ORDEN(3) INTO ME->D_PATH_TARGET.
- ME->ORDEN_IMPORTAR( ).
- IF ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_CANT_FIND P_02 = ME->D_PATH_SOURCE ).
- ENDIF.
- *----[ R o D - Data
- CONCATENATE DIRSAP C_TXT_R I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_SOURCE.
- CONCATENATE C_PATH_D C_TXT_R I_ORDEN+4(6) '.' I_ORDEN(3) INTO ME->D_PATH_TARGET.
- ME->ORDEN_IMPORTAR( ).
- IF ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_CANT_FIND P_02 = ME->D_PATH_SOURCE ).
- ENDIF.
- ENDMETHOD.
- METHOD ORDEN_IMPORTAR.
- CALL FUNCTION 'ARCHIVFILE_CLIENT_TO_SERVER'
- EXPORTING
- PATH = ME->D_PATH_SOURCE
- TARGETPATH = ME->D_PATH_TARGET
- EXCEPTIONS
- ERROR_FILE = 99
- OTHERS = 99.
- IF SY-SUBRC <> 0.
- ME->D_ERROR = ABAP_TRUE.
- ENDIF.
- CLEAR: ME->D_PATH_SOURCE, ME->D_PATH_TARGET.
- ENDMETHOD.
- METHOD ORDEN_LIBERAR.
- TYPES: BEGIN OF TY_ORD,
- ORD_TAR(1),
- ORDEN LIKE E070-STRKORR,
- END OF TY_ORD.
- DATA: ES_R TYPE TRWBO_REQUEST,
- ET_D TYPE TRWBO_T_E070,
- OLDUSER LIKE SY-UNAME,
- T_ORD TYPE STANDARD TABLE OF TY_ORD,
- IE070 TYPE STANDARD TABLE OF E070,
- CE070 TYPE E070,
- C_ORD TYPE TY_ORD.
- * Buscamos Ordenes y Tareas
- SELECT * FROM E070 INTO CE070
- WHERE ( STRKORR = I_ORDEN OR TRKORR = I_ORDEN )
- AND TRSTATUS = C_TXT_D.
- CLEAR C_ORD.
- C_ORD-ORD_TAR = 'T'.
- IF CE070-STRKORR IS INITIAL.
- C_ORD-ORD_TAR = 'Z'.
- ENDIF.
- C_ORD-ORDEN = CE070-TRKORR.
- APPEND C_ORD TO T_ORD.
- ENDSELECT.
- SORT T_ORD.
- DELETE ADJACENT DUPLICATES FROM T_ORD.
- * Buscamos Ordenes
- LOOP AT T_ORD INTO C_ORD.
- SELECT SINGLE * FROM E070 INTO CE070 WHERE TRKORR = C_ORD-ORDEN.
- OLDUSER = CE070-AS4USER.
- IF CE070-AS4USER NE SY-UNAME.
- CE070-AS4USER = SY-UNAME.
- UPDATE E070 FROM CE070.
- ENDIF.
- CALL FUNCTION 'TR_RELEASE_REQUEST'
- EXPORTING
- IV_TRKORR = C_ORD-ORDEN
- IV_DIALOG = ABAP_TRUE
- IV_AS_BACKGROUND_JOB = ABAP_FALSE
- IV_SUCCESS_MESSAGE = ABAP_TRUE
- IMPORTING
- ES_REQUEST = ES_R
- ET_DELETED_TASKS = ET_D
- EXCEPTIONS
- CTS_INITIALIZATION_FAILURE = 1
- ENQUEUE_FAILED = 2
- NO_AUTHORIZATION = 3
- INVALID_REQUEST = 4
- REQUEST_ALREADY_RELEASED = 5
- REPEAT_TOO_EARLY = 6
- OBJECT_CHECK_ERROR = 7
- DOCU_MISSING = 8
- DB_ACCESS_ERROR = 9
- ACTION_ABORTED_BY_USER = 10
- EXPORT_FAILED = 11
- OTHERS = 12.
- IF SY-SUBRC NE 0.
- ME->D_ERROR = ABAP_TRUE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_RELF P_02 = C_ORD-ORDEN P_03 = C_TXT_CANC ).
- ELSE.
- ME->MSG_ADD( EXPORTING P_01 = C_TXT_RELOK P_02 = C_ORD-ORDEN ).
- ENDIF.
- IF CE070-AS4USER NE OLDUSER.
- CE070-AS4USER = OLDUSER.
- IF CE070-TRSTATUS NE C_TXT_R.
- CE070-TRSTATUS = C_TXT_R. "<-- Forzamos su liberacion ;)
- ENDIF.
- UPDATE E070 FROM CE070.
- ENDIF.
- COMMIT WORK.
- CHECK ME->D_ERROR = ABAP_TRUE.
- EXIT.
- ENDLOOP.
- ENDMETHOD.
- METHOD READ_TEXT_POOL.
- DATA: T_TEXTTAB TYPE STANDARD TABLE OF TEXTPOOL,
- C_TEXTTAB TYPE TEXTPOOL.
- DEFINE ADD_PARAM. "3.1.5
- C_TEXTTAB-ID = 'S'.
- C_TEXTTAB-KEY = &1.
- CONCATENATE '!!!!!!!!' &2 INTO C_TEXTTAB-ENTRY. "Blancos necesarios al principio
- TRANSLATE C_TEXTTAB-ENTRY USING '! '.
- C_TEXTTAB-LENGTH = STRLEN( C_TEXTTAB-ENTRY ).
- APPEND C_TEXTTAB TO T_TEXTTAB.
- END-OF-DEFINITION.
- READ TEXTPOOL SY-REPID INTO T_TEXTTAB LANGUAGE SY-LANGU.
- LOOP AT T_TEXTTAB INTO C_TEXTTAB.
- CASE C_TEXTTAB-ID.
- WHEN 'R'.
- CONCATENATE C_TXT_TITLE VERSION INTO C_TEXTTAB-ENTRY SEPARATED BY ABAP_FALSE.
- MODIFY T_TEXTTAB FROM C_TEXTTAB INDEX SY-TABIX.
- WHEN 'S'. DELETE T_TEXTTAB INDEX SY-TABIX.
- ENDCASE.
- ENDLOOP.
- *--[ Anyadimos nuevos parametros 3.1.5
- ADD_PARAM 'ASINCRO' C_TXT_ASINC.
- ADD_PARAM 'C_PATH_C' C_TXT_DIRCO.
- ADD_PARAM 'C_PATH_D' C_TXT_DIRDA.
- ADD_PARAM 'DESTINO' C_TXT_DEST.
- ADD_PARAM 'DIRSAP' C_TXT_DIRF.
- ADD_PARAM 'ENBLOQUE' C_TXT_PBLOQ.
- ADD_PARAM 'IMPAGAIN' C_TXT_AGAIN.
- ADD_PARAM 'LIBERA' C_TXT_FREE.
- ADD_PARAM 'MAN_DT' C_TXT_MANDT.
- ADD_PARAM 'ORDENES' C_TXT_ORDENS.
- ADD_PARAM 'P_ADDREQ' C_TXT_ADDBUF.
- ADD_PARAM 'P_REMOV' C_TXT_REMBUF.
- ADD_PARAM 'P_STMS' C_TXT_LSTMS.
- ADD_PARAM 'SCC1' C_TXT_SCC1.
- ADD_PARAM 'SIQUIERO' C_TXT_TRANS.
- ADD_PARAM 'DEL_FILE' C_TXT_REMSRV.
- ADD_PARAM 'IGDEST' C_TXT_IGNDEST.
- INSERT TEXTPOOL SY-REPID FROM T_TEXTTAB LANGUAGE SY-LANGU STATE 'A'.
- ENDMETHOD.
- ENDCLASS.
- DATA: MY_TRANS TYPE REF TO ZCL_TRANS.
- INITIALIZATION.
- CREATE OBJECT MY_TRANS.
- MOVE '@2V@' TO SSCRFIELDS-FUNCTXT_01.
- MOVE C_TXT_IMPORT TO SSCRFIELDS-FUNCTXT_02. "Import
- MOVE C_TXT_EXPORT TO SSCRFIELDS-FUNCTXT_03. "Export
- MOVE C_TXT_STMS TO SSCRFIELDS-FUNCTXT_04. "Export
- MOVE C_TXT_SE09 TO SSCRFIELDS-FUNCTXT_05. "Export
- MOVE C_TXT_LOG TO C_LOG. "Export
- MOVE C_TXT_ORDEN TO C_CORR. "Export
- MOVE C_TXT_UP TO T_UP.
- MOVE C_TXT_DOWN TO T_DO.
- MY_TRANS->READ_TEXT_POOL( ).
- MY_TRANS->P_DIRSAP = DIRSAP.
- DATA:L_DIR_DATA TYPE TRFILE,
- L_DIR_COFILES TYPE TRFILE.
- CALL FUNCTION 'TRINT_FI_GET_DIRECTORY_NAMES'
- IMPORTING
- EV_DATA_DIR = L_DIR_DATA
- EV_COFILES_DIR = L_DIR_COFILES
- EXCEPTIONS
- GET_DIR_TRANS_FAILED = 1
- BUILD_PATH_FAILED = 2
- OTHERS = 3.
- SY-LISEL+(1) = '\'.
- IF L_DIR_DATA CA '/'.
- SY-LISEL+(1) = '/'.
- ENDIF.
- CONCATENATE L_DIR_DATA SY-LISEL+(1) INTO C_PATH_D.
- CONCATENATE L_DIR_COFILES SY-LISEL+(1) INTO C_PATH_C.
- PERFORM INICIALIZA_VARS.
- AT SELECTION-SCREEN OUTPUT.
- LOOP AT SCREEN.
- CHECK SCREEN-NAME CP 'c_path_*' OR
- SCREEN-NAME CP 'C_PATH_*'.
- SCREEN-INPUT = 0.
- MODIFY SCREEN.
- ENDLOOP.
- *--[ Protegemos los botones que no estan en esta version
- * Proteccion de subida y bajada de ficheros
- SELECT SINGLE TCODE INTO SY-LISEL FROM TSTC WHERE TCODE = 'CG3Z'.
- IF SY-SUBRC NE 0.
- LOOP AT SCREEN.
- IF SCREEN-NAME CP '*_UP*' OR
- SCREEN-NAME CP '*_DO*'.
- SCREEN-INVISIBLE = '1'.
- MODIFY SCREEN.
- ENDIF.
- ENDLOOP.
- ENDIF.
- AT SELECTION-SCREEN.
- MY_TRANS->P_DIRSAP = DIRSAP.
- MY_TRANS->LOG_LOAD( ).
- DESCRIBE TABLE ORDENES LINES MY_TRANS->SAY_ME_MAX.
- CASE SSCRFIELDS-UCOMM.
- WHEN 'VLOG'. MY_TRANS->LOG_SHOW( ).
- WHEN 'CORR'. MY_TRANS->ORDEN_CREAR( ).
- WHEN 'F_UP'. CALL TRANSACTION 'CG3Z'.
- WHEN 'F_DO'. CALL TRANSACTION 'CG3Y'.
- WHEN 'FC01'.
- CLEAR ORDENES. REFRESH ORDENES.
- CALL FUNCTION 'CLPB_IMPORT'
- TABLES
- DATA_TAB = DATA_TAB
- EXCEPTIONS
- CLPB_ERROR = 99
- OTHERS = 99.
- LOOP AT DATA_TAB.
- ORDENES-SIGN = 'I'.
- ORDENES-OPTION = 'EQ'.
- ORDENES-LOW = DATA_TAB.
- APPEND ORDENES.
- ENDLOOP.
- WHEN 'FC02'. " Importar Ordenes
- LOOP AT ORDENES.
- CHECK NOT ORDENES-LOW IS INITIAL.
- MY_TRANS->SAY_ME( ORDENES-LOW ).
- MY_TRANS->LOG_ADD( EXPORTING I_ORDEN = ORDENES-LOW
- CHANGING I_UCOMM = SSCRFIELDS-UCOMM
- ).
- MY_TRANS->ORDEN_UPLOAD( ORDENES-LOW ).
- MY_TRANS->ORDEN_ADD( EXPORTING I_ORDEN = ORDENES-LOW I_SYSTEM = SY-SYSID ).
- ENDLOOP.
- WHEN 'FC03'. " Export Ordenes
- LOOP AT ORDENES.
- CHECK NOT ORDENES-LOW IS INITIAL.
- MY_TRANS->SAY_ME( ORDENES-LOW ).
- MY_TRANS->LOG_ADD( EXPORTING I_ORDEN = ORDENES-LOW
- CHANGING I_UCOMM = SSCRFIELDS-UCOMM
- ).
- MY_TRANS->ORDEN_LIBERAR( ORDENES-LOW ).
- MY_TRANS->SERVER_DOWNLOAD( ORDENES-LOW ).
- ENDLOOP.
- WHEN 'FC05'. " Export Ordenes
- TYPES: BEGIN OF STRHI_SPECIAL_REQUEST,
- TRKORR LIKE E070-TRKORR,
- ACTION TYPE C,
- END OF STRHI_SPECIAL_REQUEST,
- STRHI_SPECIAL_REQUESTS TYPE STRHI_SPECIAL_REQUEST OCCURS 0.
- DATA: MYDAT TYPE STRHI_SPECIAL_REQUEST OCCURS 0.
- DATA CS_RANGES TYPE TRSEL_TS_RANGES.
- DATA: IS_SELECTION TYPE TRWBO_SELECTION.
- IS_SELECTION-TRKORRPATTERN = '*'.
- IS_SELECTION-REQFUNCTIONS = 'CDEFGKMOPQRSTWX'.
- IS_SELECTION-REQSTATUS = 'RNODL'.
- CS_RANGES-TRKORR[] = ORDENES[].
- CALL FUNCTION 'TR_SEARCH_AND_DISPLAY_REQUESTS'
- EXPORTING
- IV_USERNAME = '*'
- IS_SELECTION = IS_SELECTION
- IT_SPECIAL_REQUESTS = MYDAT
- EXCEPTIONS
- ACTION_ABORTED_BY_USER = 1
- OTHERS = 2.
- WHEN 'FC04'. " Export Ordenes
- CALL FUNCTION 'TMS_UI_IMPORT_OVERVIEW'.
- ENDCASE.
- IF SSCRFIELDS-UCOMM CP 'FC*'.
- MY_TRANS->MSG_LIST( ).
- MY_TRANS->LOG_WRITE( ).
- ENDIF.
- START-OF-SELECTION.
- MY_TRANS->LOG_LOAD( ).
- PERFORM INICIALIZA_VARS.
- CHECK MY_TRANS->D_ERROR IS INITIAL.
- DESCRIBE TABLE ORDENES LINES MY_TRANS->SAY_ME_MAX.
- ** Warning DEL_FILE.
- IF MY_TRANS->P_DEL_FILE = ABAP_TRUE.
- DATA: RESP(1).
- CLEAR: RESP, DEL_FILE.
- CALL FUNCTION 'POPUP_TO_CONFIRM'
- EXPORTING
- TITLEBAR = C_TXT_BORRAR
- TEXT_QUESTION = C_TXT_DEL_ORDEN
- TEXT_BUTTON_1 = C_TXT_SI
- ICON_BUTTON_1 = 'ICON_DELETE'
- TEXT_BUTTON_2 = C_TXT_NO
- ICON_BUTTON_2 = 'ICON_CANCEL'
- DEFAULT_BUTTON = '2'
- DISPLAY_CANCEL_BUTTON = ABAP_FALSE
- IMPORTING
- ANSWER = RESP
- EXCEPTIONS
- TEXT_NOT_FOUND = 1
- OTHERS = 2.
- IF RESP = '1'. "<-- SI
- MY_TRANS->P_DEL_FILE = ABAP_TRUE.
- ENDIF.
- ENDIF.
- CLEAR VIEW_LOGS.
- LOOP AT ORDENES.
- CHECK NOT ORDENES-LOW IS INITIAL.
- MY_TRANS->SAY_ME( ORDENES-LOW ).
- MY_TRANS->LOG_ADD( EXPORTING I_ORDEN = ORDENES-LOW
- CHANGING I_UCOMM = SSCRFIELDS-UCOMM
- ).
- IF MY_TRANS->P_DEL_FILE = ABAP_TRUE.
- MY_TRANS->ORDEN_DEL( ORDENES-LOW ).
- ENDIF.
- IF MY_TRANS->P_REMOV = ABAP_TRUE.
- MY_TRANS->ORDEN_REMOVE_REQUEST( ORDENES-LOW ).
- ENDIF.
- IF MY_TRANS->P_ADDREQ = ABAP_TRUE.
- MY_TRANS->ORDEN_ADD( EXPORTING I_ORDEN = ORDENES-LOW I_SYSTEM = SY-SYSID ).
- ENDIF.
- IF MY_TRANS->P_LIBERA = ABAP_TRUE.
- MY_TRANS->ORDEN_LIBERAR( ORDENES-LOW ).
- ENDIF.
- IF MY_TRANS->P_SIQUIERO = ABAP_TRUE.
- CLEAR: MI_ORDEN.
- MI_ORDEN-DOMNAM = MY_TRANS->P_DOMAIN.
- MI_ORDEN-SYSNAM = MY_TRANS->P_SYSTEM.
- MI_ORDEN-TRKORR = ORDENES-LOW.
- * mi_orden-tarcli = <- ¿Destino?
- APPEND MI_ORDEN TO MIS_ORDENES.
- IF MY_TRANS->P_ENBLOQUE IS INITIAL.
- CLEAR: MY_TRANS->TUS_ORDENES.
- REFRESH: MY_TRANS->TUS_ORDENES.
- MY_TRANS->ORDEN_TRANSPORTA( ORDENES-LOW ).
- VIEW_LOGS = ABAP_TRUE.
- ENDIF.
- ENDIF.
- AT LAST.
- MY_TRANS->TUS_ORDENES[] = MIS_ORDENES[].
- IF MY_TRANS->P_SIQUIERO = ABAP_TRUE.
- IF MY_TRANS->P_ENBLOQUE = ABAP_TRUE.
- MY_TRANS->ORDEN_TRANSPORTA( ORDENES-LOW ).
- ENDIF.
- VIEW_LOGS = ABAP_TRUE.
- ENDIF.
- ENDAT.
- ENDLOOP.
- MY_TRANS->LOG_WRITE( ).
- IF VIEW_LOGS = ABAP_TRUE.
- MY_TRANS->LOG_VER( ).
- ENDIF.
- MY_TRANS->MSG_LIST( ).
- FORM INICIALIZA_VARS.
- CLEAR: MY_TRANS->D_ERROR, MIS_ORDENES.
- REFRESH: MY_TRANS->T_MSG, MIS_ORDENES.
- MY_TRANS->P_DIRSAP = DIRSAP.
- MY_TRANS->P_SYSTEM = DESTINO.
- MY_TRANS->P_CLIENTE = MAN_DT.
- MY_TRANS->P_REMOV = P_REMOV.
- MY_TRANS->P_ADDREQ = P_ADDREQ.
- MY_TRANS->P_LIBERA = LIBERA.
- MY_TRANS->P_ASINCRO = ASINCRO.
- MY_TRANS->P_IMPAGAIN = IMPAGAIN.
- MY_TRANS->P_SIQUIERO = SIQUIERO.
- MY_TRANS->P_DESTINO = DESTINO.
- MY_TRANS->P_MANDT = MAN_DT.
- MY_TRANS->P_ENBLOQUE = ENBLOQUE.
- MY_TRANS->P_IGDEST = IGDEST.
- MY_TRANS->P_SCC1 = SCC1.
- MY_TRANS->P_C_PATH_D = C_PATH_D.
- MY_TRANS->P_C_PATH_C = C_PATH_C.
- MY_TRANS->P_DEL_FILE = DEL_FILE.
- CHECK MY_TRANS->P_SIQUIERO = ABAP_TRUE.
- IF NOT MY_TRANS->P_SYSTEM IS INITIAL AND
- NOT MY_TRANS->P_CLIENTE IS INITIAL.
- CALL FUNCTION 'TMS_CFG_GET_DOMAIN_NAME'
- EXPORTING
- IV_SYSTEM = MY_TRANS->P_SYSTEM
- IMPORTING
- EV_DOMAIN_NAME = MY_TRANS->P_DOMAIN.
- ELSE.
- MY_TRANS->D_ERROR = ABAP_TRUE.
- ENDIF.
- ENDFORM. "inicializa_vars
Última modificación de la página el 04 November 2015 a las 15h04
Powered by
PmWiki