PDA

Ver la Versión Completa : Archivo txt


Irua
15/08/07, 18:49:04
Hola,:)

Necesito generar un archivo txt y luego enviarla a un servidor externo, favor si me pueden orientar para la sintaxis :confused:

Gracias :rolleyes:

paraujo
15/08/07, 18:57:26
Para generar un txt yo primero generé una tabla interna con los datos que necesitaba y luego use la función WS_DOWNLOAD, hace poco que estoy programando en ABAP así que no sabría decirte si hay una forma más fácil de hacerlo.
Acá te copio el ejemplo que yo encontré de esa función:

**********************************************************
* Download program using the functions WS_DOWNLOAD
**********************************************************
REPORT Zdownload.
TABLES: Zxxxx.
DATA: BEGIN OF TZXXXX OCCURS 100,
LINE_NO(3),
FILLER1(1),
TXT50(50),
AMOUNT(10),
BUDAT(10),
END OF TZXXXX.
PARAMETERS: P-FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\TEMP\test.xls',
S_FILE AS CHECKBOX DEFAULT 'X'.
MOVE 'No' TO TZXXXX-LINE_NO.
MOVE 'Description' TO TZXXXX-TXT50.
MOVE 'Amount' TO TZXXXX-AMOUNT.
MOVE 'DATE' TO TZXXXX-BUDAT.
APPEND TZXXXX.
CLEAR TZXXXX.
SELECT * FROM ZXXXX ORDER BY LINE_NO.
MOVE ZXXXX-LINE_NO TO TZXXXX-LINE_NO.
MOVE ZXXXX-TXT50 TO TZXXXX-TXT50.
WRITE ZXXXX-AMOUNT TO TZXXXX-AMOUNT
USING EDIT MASK 'RRV_______.__'.
WRITE ZXXXX-BUDAT TO TZXXXX-BUDAT.
APPEND TZXXXX.
CLEAR TZXXXX.
ENDSELECT.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = ' '
* CODEPAGE = ' '
FILENAME = P-FILE
FILETYPE = 'DAT'
* filetype = 'WK1'
* MODE = ' '
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* COL_SELECT = ' '
* COL_SELECTMASK = ' '
* importing
* filelength =
TABLES
DATA_TAB = TZXXXX
* FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
OTHERS = 8.
IF SY-SUBRC = 0.
SKIP.
WRITE:/ 'Very good, download successful'.
ELSE.
FORMAT COLOR COL_TOTAL.
SKIP.
WRITE:/ 'Error in Download'.
SKIP.
WRITE:/ 'Is the file Open by Excel or Lotus?'.
ENDIF.

Espero haberte ayudado.
Saludos.

Moises Zepeda
15/08/07, 21:22:00
Hola,:)

Necesito generar un archivo txt y luego enviarla a un servidor externo, favor si me pueden orientar para la sintaxis :confused:

Gracias :rolleyes:


Iura :confused: quieres enviar el archivo por FTP por que si es así tienes que hacer una rutina más después de que has convertido el archivo.

Irua
21/08/07, 13:58:36
Tengo el siguiente codigo, pero no me carga los datos en el archivo, favor si pueden ayudarme a corregir el error :confused:

gracias



TABLES: ZTHR_USUA_EMPL,PA0001,PA0002,PA0032.


DATA: BEGIN OF T_DATA1 OCCURS 0,
T_BURKS LIKE ZTHR_USUA_EMPL-BUKRS,
T_PERNR LIKE ZTHR_USUA_EMPL-PERNR,
T_ORGEH LIKE PA0001-ORGEH,
T_NACHN LIKE PA0002-NACHN,
T_VORNA LIKE PA0002-VORNA,
T_GEBNR LIKE PA0032-GEBNR,
T_ZIMNR LIKE PA0032-ZIMNR,
END OF T_DATA1.

DATA: BEGIN OF T_CORREO OCCURS 100,
var type string,
END OF T_CORREO.

SELECT
ZTHR_USUA_EMPL~BUKRS
ZTHR_USUA_EMPL~PERNR
PA0001~ORGEH
PA0002~NACHN
PA0002~VORNA
PA0032~GEBNR
PA0032~ZIMNR
INTO TABLE T_DATA1
FROM ZTHR_USUA_EMPL
INNER JOIN PA0001 ON
ZTHR_USUA_EMPL~PERNR = PA0001~PERNR
AND endda ='99991231'
INNER JOIN PA0002 ON
ZTHR_USUA_EMPL~PERNR = PA0002~PERNR
AND PA0002~endda ='99991231'
INNER JOIN PA0032 ON
ZTHR_USUA_EMPL~PERNR = PA0032~PERNR
AND PA0032~endda ='99991231'.
* *WHERE ZTHR_USUA_EMPL~BUKRS IN S_TSOC
* AND ZTHR_USUA_EMPL~PERNR IN S_TEMPL.

CONCATENATE T_DATA1-T_ORGEH T_DATA1-T_NACHN T_DATA1-T_PERNR INTO T_CORREO-VAR.

CALL FUNCTION 'DOWNLOAD'
EXPORTING
* BIN_FILESIZE = ' '
* CODEPAGE = ' '
FILENAME = 'D:\Users\Ialcala\My Documents\Irua\txt\prueba.txt'
FILETYPE = 'ASC'
* ITEM = ' '
* MODE = ' '
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* FILEMASK_MASK = ' '
* FILEMASK_TEXT = ' '
* FILETYPE_NO_CHANGE = ' '
* FILEMASK_ALL = ' '
* FILETYPE_NO_SHOW = ' '
* SILENT = 'S'
* COL_SELECT = ' '
* COL_SELECTMASK = ' '
* NO_AUTH_CHECK = ' '
* IMPORTING
* ACT_FILENAME =
* ACT_FILETYPE =
* FILESIZE =
* CANCEL =
TABLES
DATA_TAB = t_correo
* FIELDNAMES =
* EXCEPTIONS
* INVALID_FILESIZE = 1
* INVALID_TABLE_WIDTH = 2
* INVALID_TYPE = 3
* NO_BATCH = 4
* UNKNOWN_ERROR = 5
* GUI_REFUSE_FILETRANSFER = 6
* OTHERS = 7
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ballan
21/08/07, 14:25:59
Haces un concatenate en t_correo_var pero no haces el append por lo que la tabla esta vacia y no te descarga nada, si quieres descargar los datos del select tendrias que poner t_data1 en el parametro data_tab

Irua
21/08/07, 14:51:35
Listo muchas gracias . todo perfecto ;)