Ver Resultados de Encuesta: Cumple con lo requerido para el cargue de PDF? | |||
Si | 39 | 88.64% | |
No | 2 | 4.55% | |
En algo | 2 | 4.55% | |
no cumple | 1 | 2.27% | |
Votantes: 44. Tú no puedes votar en esta encuesta |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Upload de fondo archivos PDF a tabla Z
* Date (YYYY/MM/DD) : 2015/03/20
* Author : Luis Ehrman Gutierrez * Required by : Cargue a base de datos de SAP archivos PDF * ubicados en el server de aplicaciones SAP *&---------------------------------------------------------------------* * CHANGES LOG *&---------------------------------------------------------------------* * Description : * Date (YYYY/MM/DD) : * Author : * Required by : **&---------------------------------------------------------------------* REPORT ZUPLOAD_PDF_BD. "Definicion tabla Z en el diccionario de datos de SAP *MANDT MANDT CLNT 3 0 Mandante *FERTH FERTH CHAR 18 0 Nombre archivo plano pdf *CONS CHAR 5 0 Numero de Lineas por File *MATNR MATNR CHAR 18 0 Número de material *LINE SO_TEXT255 CHAR 255 0 Campo de texto, longitud 255: Textos *FECARGA DATUM DATS 8 0 Fecha "Se declara tipo de tabla Hexadecimal TYPES: BEGIN OF HEX_RECORD, FIELD(1024) TYPE X, END OF HEX_RECORD. "Se declara tabla interna con tabla Z de la base de datos DATA: BEGIN OF LT_ZTBMMPLANO OCCURS 100. INCLUDE STRUCTURE ZTBMMPLANO. DATA: END OF LT_ZTBMMPLANO. "Se declara tabla interna para guardar conversion del binario de SAP DATA: BINARY_ATT TYPE STANDARD TABLE OF SOLISTI1, WA_BINARY_ATT TYPE SOLISTI1. DATA: LT_TAB_EX2 TYPE STANDARD TABLE OF HEX_RECORD WITH HEADER LINE, WA_TAB_EX2 TYPE HEX_RECORD, LV_FNAME TYPE STRING, LV_CONS(5) TYPE C, X_STRING TYPE XSTRING, S_STRING TYPE STRING, S_STRING1 TYPE STRING. "Ruta o directorio en el servidor de aplicaciones de SAP ubicacion del PDF LV_FNAME = '/usr/sap/ACE/0530.PDF'. START-OF-SELECTION. "Se abre el archivo en la ruta del server de SAP en modo binario OPEN DATASET LV_FNAME FOR INPUT IN BINARY MODE. IF SY-SUBRC EQ 0. DO. "Se lee linea a linea y se lleva a la tabla Hexadecimal. READ DATASET LV_FNAME INTO LT_TAB_EX2-FIELD. IF SY-SUBRC EQ 0. APPEND LT_TAB_EX2. ELSE. APPEND LT_TAB_EX2. EXIT. ENDIF. ENDDO. CLOSE DATASET LV_FNAME. "Se recorre la tabla Interna Hexadecimal y se guarda todo su contenido "en una variable tipo String LOOP AT LT_TAB_EX2. CLEAR: S_STRING1. S_STRING1 = LT_TAB_EX2-FIELD. CONCATENATE S_STRING S_STRING1 INTO S_STRING. ENDLOOP. "Se lleva el contenido de la variable tipo String una variable Xtring X_STRING = S_STRING. "Se hace la conversion de hexadecinal y se lleva a la tabla interna "binaria de longitud 255 CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' EXPORTING BUFFER = X_STRING * APPEND_TO_TABLE = 'X' "Do not clear/refresh table TABLES BINARY_TAB = BINARY_ATT. BREAK-POINT. "Se hace una descarga el binario al disco local del pc IF SY-BATCH <> 'X'. "Si se ejecuta de Fondo omite la descarga CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = 'C:\tmp\prueba.pdf' FILETYPE = 'BIN' TABLES DATA_TAB = BINARY_ATT. ENDIF. "Se lleva el contenido del binario a la tabla interna con la "misma estructura de la tabla Z definida en el diccionario de datos LV_CONS = 1. LOOP AT BINARY_ATT INTO WA_BINARY_ATT. LT_ZTBMMPLANO-FERTH = '0530'. LT_ZTBMMPLANO-MATNR = '000000000000061688'. LT_ZTBMMPLANO-CONS = LV_CONS. LT_ZTBMMPLANO-LINE = WA_BINARY_ATT-LINE. LT_ZTBMMPLANO-FECARGA = SY-DATUM. APPEND LT_ZTBMMPLANO. LV_CONS = LV_CONS + 1. ENDLOOP. DELETE FROM ZTBMMPLANO. COMMIT WORK. "Se copia a la tabla Z el contenido binario del PDF INSERT ZTBMMPLANO FROM TABLE LT_ZTBMMPLANO. COMMIT WORK. ENDIF. |
#2
|
|||
|
|||
Muchas gracias, me lo guardo por si algún día me hace falta.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|