Hola,
Necesito generar un archivo txt y luego enviarla a un servidor externo, favor si me pueden orientar para la sintaxis
gracias :)
Hola Irua.
Me imagino que te refieres al bajar el fichero a UNIX, para ello puedes ver la documentación de los OPEN DATASET.
Este es un pequeño ejemplo de como se construye para que te puedas hacer una idea:
* Abrimos el el archivo destino.
OPEN DATASET file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
* Vemos si el archivo fue creado correctamente..
IF sy-subrc NE 0.
FORMAT COLOR 6 INTENSIFIED OFF.
ULINE AT (80).
WRITE: / sy-vline,
' No se pudo crear al archivo : ',
80 sy-vline.
FORMAT COLOR 2 INTENSIFIED OFF.
WRITE: / sy-vline,
' ', file,
80 sy-vline.
ULINE AT (80).
EXIT.
ENDIF.
* Recorremos la tabla que contiene las informaciones.
LOOP AT rec.
* Cargamos la linea que sera utilizada como buffer salida.
linea1 = rec-campo1.
linea2 = rec-campo2.
* Cargamos la tabla interna con el contenido del archivo plano.
TRANSFER linea TO file.
ENDLOOP.
* Cerramos el archivo ASCII plano.
CLOSE DATASET file.
Un saludo.
O utilizar la función WS_DOWNLOAD:
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = '\\empptm\imagen\PRESUP.txt'
FILETYPE = 'ASC'
TABLES
DATA_TAB = it_presup
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
Tengo el siguiente codigo, pero no me carga los datos en el archivo, favor si pueden ayudarme a corregir el error ???
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.
Hola, disculpa has probado con la función 'GUI_DOWNLOAD'
Saludos
tgfch
;D HOla Irua!
Te recomiendo que le pongas un BREAK "nombre del usuario que usas". antes de la CALL FUNCTION 'DOWNLOAD' y veas la tabla t_correo si tiene datos. Si quieres te puedo pasar un ejemplo.
Suerte!!!
Saludos. ;)
Por la práctica que he tenido, te recomiendo que utilices para ficheros que van hacer bajados en un servidor OPEN DATASET y para bajar localmente gui_download.
Saludos.
Listo funciono con el OpendataSet
gracias a todos ;)