Buenas gente como están?, les traigo un tema que me tiene loco, he implementado un código que me permite generar un PDF convirtiendo el OTF de un smartform y luego pasarlo al AS la cuestión es que al abrir este pdf sale como dañado o no reconocible al abrir el adobe!.
Adjunto código:
Has probado a hacer un gui_download en lugar del open dataset para bajártelo a tu pc y así descartar si el error está en el transfer o en la función convert?
opino igual. Ese Open data set en binary mode no sé si te va a servir para bajar un PDF… El PDF además de ser un formato propietario es bastante más complicado que un fichero binario.
Como dice @Salco tiene que haber alguna forma alternativa. No sé si con un GUI_DOWNLOAD o con alguna nueva clase. Quizá en vez de usar un smartform puedes probar con un adobe forms.
efectivamente con gui download lo puedo almacenar en mi desktop y funciona pero el requerimiento pide almacenarlo en una ruta compartida por lo cual uso el open dataset el archivo pdf se genera pero al abrirlo da el error mencionado.
al enviarlo a la ruta en el AS me da un error sera un problema con la ruta compartida?, sy-subrc = 14 (unknown_dp_error), al parecer debería tener esa ruta mapeada en mi pc pero puede darse el caso que no necesite acceso a esta ruta mas solo pasar el archivo gui_download creo que solo trabaja del lado del servidor de presentación si no me equivoco por lo cual no encontraría la ruta (trabajo via vpn a un servidor externo)
Por que no intentas hacer un loop at a una variable y luego sólo un transfer?
OPEN DATASET hlp_filename FOR OUTPUT IN BINARY MODE.
LOOP AT tl_xml INTO el_xml.
CONCATENATE lv_files el_xml-line(el_xml-length) INTO lv_files RESPECTING BLANKS.
ENDLOOP.
TRANSFER lv_files TO hlp_filename.
CLOSE DATASET hlp_filename.
DATA: lc_filename TYPE string,
lv_line TYPE string.
CLEAR: lc_filename, lv_line, wa_lines.
CONCATENATE '\\server\folder1\folder2\' v_name
INTO lc_filename.
data: lv_files TYPE string,
lv_size TYPE i.
clear: lv_files, lv_size.
OPEN DATASET lc_filename FOR OUTPUT IN BINARY MODE.
LOOP AT it_lines INTO wa_lines.
clear lv_size.
lv_size = strlen( wa_lines-tdline ).
CONCATENATE lv_files wa_lines-tdline(lv_size) into lv_files RESPECTING BLANKS.
ENDLOOP.
TRANSFER lv_files to lc_filename.
CLOSE DATASET lc_filename.
solucionado cambiando la función ‘CONVERT_OTF_2_PDF’ por la funcion ‘CONVERT_OTF’ al parecer difieren las tablas de salida, saludos y gracias por sus respuestas!
Pues me alegro mucho. Fíjate que cuando respondí en el post número 2 te preguntaba por el download para saber si el error estaba en el transfer o en la función convert porque nosotros también usamos la CONVERT_OTF y no la CONVERT_OTF_2_PDF, pero luego se me fue la idea.