PDA

Ver la Versión Completa : Consulta muy basica...


RAMONES
06/07/09, 16:06:39
Buenos dias ante todo, estoy haciendo un select y lo que preciso es volcarlo a un archivo TXT, uso esta funcion tanto como la WS_DOWNLOAD, pero en ambas no me crea el archivo, la verdad no se porque, es la primera vez que me pasa que no me funcione, alguien sabria porque? El reporte se ejecuta normalmente pero el subrc de la funcion es distinto a cero...

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\prueba.txt'
filetype = 'ASC'
TABLES
data_tab = IT_CDHDR
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
OTHERS = 5.


Muchas gracias!!!

luis999
06/07/09, 16:34:20
Hola, el codigo que pones me parece correcto, podrías poner todo el código para ver en que parte esta el error :)

Buenos dias ante todo, estoy haciendo un select y lo que preciso es volcarlo a un archivo TXT, uso esta funcion tanto como la WS_DOWNLOAD, pero en ambas no me crea el archivo, la verdad no se porque, es la primera vez que me pasa que no me funcione, alguien sabria porque? El reporte se ejecuta normalmente pero el subrc de la funcion es distinto a cero...

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\prueba.txt'
filetype = 'ASC'
TABLES
data_tab = IT_CDHDR
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
OTHERS = 5.


Muchas gracias!!!

RAMONES
06/07/09, 16:37:32
Hola, el codigo que pones me parece correcto, podrías poner todo el código para ver en que parte esta el error :)


REPORT z_prueba .

types: BEGIN OF t_cdhdr,
changenr TYPE cdhdr-changenr,
username TYPE cdhdr-username,
udate TYPE cdhdr-udate,
END OF t_cdhdr.

types: BEGIN OF t_cdpos,
objectid TYPE cdpos-objectid,
changenr TYPE cdpos-changenr,
value_new TYPE cdpos-value_new,
value_old TYPE cdpos-value_old,
END OF t_cdpos.

data: it_cdhdr type table of t_cdhdr with header line,
it_cdpos type table of t_cdpos with header line.

SELECT-OPTIONS: s_udate FOR sy-datum.

SELECT changenr username udate
FROM cdhdr
INTO TABLE it_cdhdr
WHERE udate IN s_udate.

PERFORM bajar_a_txt.


*&---------------------------------------------------------------------*
*& Form BAJAR_A_TXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM bajar_a_txt.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\prueba.txt'
filetype = 'ASC'
TABLES
data_tab = IT_CDHDR
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
OTHERS = 5.

IF sy-subrc = 0.

WRITE: 'archivo bajado exitosamente'.

ELSE.

WRITE: 'ARCHIVO NO BAJADO'.

ENDIF.



ENDFORM. " BAJAR_A_TXT





PD: Una aclaracion, el subrc es 3 (gui_refuse_filetransfer), pero no se que pasa, muchas gracias!!

luis999
06/07/09, 16:56:32
Pues que raro, probe tu codigo y si realiza la descarga :confused:

REPORT z_prueba .

types: BEGIN OF t_cdhdr,
changenr TYPE cdhdr-changenr,
username TYPE cdhdr-username,
udate TYPE cdhdr-udate,
END OF t_cdhdr.

types: BEGIN OF t_cdpos,
objectid TYPE cdpos-objectid,
changenr TYPE cdpos-changenr,
value_new TYPE cdpos-value_new,
value_old TYPE cdpos-value_old,
END OF t_cdpos.

data: it_cdhdr type table of t_cdhdr with header line,
it_cdpos type table of t_cdpos with header line.

SELECT-OPTIONS: s_udate FOR sy-datum.

SELECT changenr username udate
FROM cdhdr
INTO TABLE it_cdhdr
WHERE udate IN s_udate.

PERFORM bajar_a_txt.


*&---------------------------------------------------------------------*
*& Form BAJAR_A_TXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM bajar_a_txt.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\prueba.txt'
filetype = 'ASC'
TABLES
data_tab = IT_CDHDR
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
OTHERS = 5.

IF sy-subrc = 0.

WRITE: 'archivo bajado exitosamente'.

ELSE.

WRITE: 'ARCHIVO NO BAJADO'.

ENDIF.



ENDFORM. " BAJAR_A_TXT





PD: Una aclaracion, el subrc es 3 (gui_refuse_filetransfer), pero no se que pasa, muchas gracias!!

RAMONES
06/07/09, 17:02:09
que sera entonces?? la verdad que no tengo idea...sera que tengo bloqueado el disco C?? ....no se me ocurre que puede ser....

ic_man_777
06/07/09, 17:30:17
Chequea que valor tiene sy-subrc después de mandar llamar la función GUI_DOWNLOAD, actualmente estás cachando todas las excepciones, seguro está ocurriendo una de ellas.

RAMONES
06/07/09, 17:58:06
Chequea que valor tiene sy-subrc después de mandar llamar la función GUI_DOWNLOAD, actualmente estás cachando todas las excepciones, seguro está ocurriendo una de ellas.


el sy-subrc es 3, si tildo las excepciones, directamente me da un dump, si la coloco, el programa se ejucuta y el subrc me da 3, pero el archivo no se genera...

Abaunus
06/07/09, 18:34:36
el sy-subrc es 3, si tildo las excepciones, directamente me da un dump, si la coloco, el programa se ejucuta y el subrc me da 3, pero el archivo no se genera...

Por qué no probás ejecutar la función por la SE37, así vas viendo dentro de ella qué es lo que falla...

ic_man_777
06/07/09, 19:20:05
Se dice que esas funciones van quedando obsoletas, para mi funcionan muy bien, pero al parecer a ti no, si es así entonces podrías usar el método estático de la clase CL_GUI_FRONTEND_SERVICES.



CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
* BIN_FILESIZE =
FILENAME = 'C:\Archivo.txt'
* FILETYPE = ’ASC’
* APPEND = SPACE
* WRITE_FIELD_SEPARATOR = SPACE
* HEADER = ’00′
* TRUNC_TRAILING_BLANKS = SPACE
* WRITE_LF = ’X’
* COL_SELECT = SPACE
* COL_SELECT_MASK = SPACE
* DAT_MODE = SPACE
* CONFIRM_OVERWRITE = SPACE
* NO_AUTH_CHECK = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = ’#’
* WRITE_BOM = SPACE
* TRUNC_TRAILING_BLANKS_EOL = ’X’
* WK1_N_FORMAT = SPACE
* WK1_N_SIZE = SPACE
* WK1_T_FORMAT = SPACE
* WK1_T_SIZE = SPACE
* IMPORTING
* FILELENGTH =
CHANGING
DATA_TAB = it_tabla
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* NO_BATCH = 2
* GUI_REFUSE_FILETRANSFER = 3
* INVALID_TYPE = 4
* NO_AUTHORITY = 5
* UNKNOWN_ERROR = 6
* HEADER_NOT_ALLOWED = 7
* SEPARATOR_NOT_ALLOWED = 8
* FILESIZE_NOT_ALLOWED = 9
* HEADER_TOO_LONG = 10
* DP_ERROR_CREATE = 11
* DP_ERROR_SEND = 12
* DP_ERROR_WRITE = 13
* UNKNOWN_DP_ERROR = 14
* ACCESS_DENIED = 15
* DP_OUT_OF_MEMORY = 16
* DISK_FULL = 17
* DP_TIMEOUT = 18
* FILE_NOT_FOUND = 19
* DATAPROVIDER_EXCEPTION = 20
* CONTROL_FLUSH_ERROR = 21
* NOT_SUPPORTED_BY_GUI = 22
* ERROR_NO_GUI = 23
* others = 24

Yo no sé que es lo que ocaciona esa excepción: GUI_REFUSE_FILETRANSFER

RAMONES
07/07/09, 12:58:13
Muchas gracias a todos por molestarse, voy a usar ese metodo estatico a ver como me va, gracias nuevamente,

Saludos a todos!

RAMONES
07/07/09, 15:43:35
Para que sepan, si por alguna de esas les pasa, usando la funcion GUI_DOWNLOAD si el subrc es 3, por lo menos en mi caso es que tenia el disco C bloqueado y por eso daba la excepcion, me lo desbloquearon, y puedo bajar los archivos y funciona perfectamente....

Muchas gracias!!

omegaotaku
23/10/12, 12:36:50
Buenos dias ante todo, estoy haciendo un select y lo que preciso es volcarlo a un archivo TXT, uso esta funcion tanto como la WS_DOWNLOAD, pero en ambas no me crea el archivo, la verdad no se porque, es la primera vez que me pasa que no me funcione, alguien sabria porque? El reporte se ejecuta normalmente pero el subrc de la funcion es distinto a cero...

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\prueba.txt'
filetype = 'ASC'
TABLES
data_tab = IT_CDHDR
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
OTHERS = 5.


Muchas gracias!!!

REPORT ztempos.

TYPE-POOLS: truxs.

TYPES: BEGIN OF t_cdhdr,
changenr TYPE cdhdr-changenr,
username TYPE cdhdr-username,
udate TYPE cdhdr-udate,
END OF t_cdhdr.

DATA: gt_salida2 TYPE truxs_t_text_data,
it_cdhdr TYPE STANDARD TABLE OF t_cdhdr.


SELECT-OPTIONS: s_udate FOR sy-datum.

SELECT changenr username udate
FROM cdhdr
INTO CORRESPONDING FIELDS OF TABLE it_cdhdr
WHERE udate IN s_udate.

PERFORM bajar_a_txt.


*&---------------------------------------------------------------------*
*& Form BAJAR_A_TXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM bajar_a_txt.

CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
i_field_seperator = '|'
* I_LINE_HEADER =
* I_FILENAME =
* I_APPL_KEEP = ' '
TABLES
i_tab_sap_data = it_cdhdr
CHANGING
i_tab_converted_data = gt_salida2
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\tempo.txt'
filetype = 'ASC'
TABLES
data_tab = gt_salida2
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.

IF sy-subrc EQ 0.

WRITE: 'archivo bajado exitosamente'.

ELSE.

WRITE: 'ARCHIVO NO BAJADO'.

ENDIF.


ENDFORM. " BAJAR_A_TXT

esterg
24/10/12, 15:55:10
Hola,
Disculpa si me meto y nada que ver.
Te paso este vinculo si te sirve.
http://www.mundosap.com/foro/showthread.php?t=6877
Suerte
Ester

K-MUS
24/10/12, 20:44:13
Se dice que esas funciones van quedando obsoletas, para mi funcionan muy bien, pero al parecer a ti no, si es así entonces podrías usar el método estático de la clase CL_GUI_FRONTEND_SERVICES.




Yo no sé que es lo que ocaciona esa excepción: GUI_REFUSE_FILETRANSFER

Obsoletas ??? la única obsoleta es la WS_DOWNLOAD.

Hace algo entra a la clase entra al método y sorprendete, ya que adentro usa la GUI_DOWNLOAD. :P

La clase simplemente encapsula y utiliza dicha función.