Foro de programación ABAP
Código abierto => Reports => Mensaje iniciado por: Enrique.Borroni en 09 de Noviembre de 2012, 02:23:31 am
-
Aqui dejo un pequeño ejemplo de como leer la ultima orden Spool del Usuario actual, transformarla a PDF y luego bajarla al PC.
REPORT Y_TEST_PDF_A_PC.
*
*---------------------------------------------------------------------------------------*
* DECLARACION DE VARIABLES
*---------------------------------------------------------------------------------------*
*
*
*---------->>> Path + Nombre del Archivo de Salida
*
DATA : ld_archivo TYPE string VALUE 'C:\PASO\TEST_PDF_002.PDF'.
*
*---------->>>
*
DATA : ld_bin_filesize TYPE i.
DATA : ld_pdf_spoolid TYPE rspoid.
DATA : ld_otf_pagecount TYPE i.
DATA : ld_btc_jobname TYPE btcjob.
DATA : ld_btc_jobcount TYPE btcjobcnt.
DATA : ld_bin_file TYPE xstring.
DATA : it_arch_pdf TYPE STANDARD TABLE OF tline.
DATA : it_tsp01 TYPE STANDARD TABLE OF tsp01 WITH HEADER LINE.
*
*---------------------------------------------------------------------------------------*
* SELECCION DE DATOS - ULTIMA ORDEN SPOOL DEL USURIO
*---------------------------------------------------------------------------------------*
*
SELECT rqident INTO CORRESPONDING FIELDS OF TABLE it_tsp01
FROM tsp01
WHERE rqowner EQ sy-uname.
*
SORT it_tsp01 BY rqident DESCENDING.
*
READ TABLE it_tsp01 INDEX 1.
*
*---------------------------------------------------------------------------------------*
* CONVERTIR SPOOL A PDF
*---------------------------------------------------------------------------------------*
*
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = it_tsp01-rqident
no_dialog = ''
IMPORTING
pdf_bytecount = ld_bin_filesize
pdf_spoolid = ld_pdf_spoolid
btc_jobname = ld_btc_jobname
btc_jobcount = ld_btc_jobcount
TABLES
pdf = it_arch_pdf
EXCEPTIONS
err_no_otf_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_dstdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
*
*---------------------------------------------------------------------------------------*
* BAJAR EL ARCHIVO PDF AL PC
*---------------------------------------------------------------------------------------*
*
IF ( sy-subrc EQ 0 ).
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = ld_bin_filesize
filename = ld_archivo
filetype = 'BIN'
TABLES
data_tab = it_arch_pdf
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.
ENDIF.
*
*---------------------------------------------------------------------------------------*
*
-
Buena Tarde...
Existe tambien el programa Standard RSTXPDFT4 que si lo ejecutan en la se38 y le pasan el número de la orden spool convierte esa orden de impresión en un archivo PDF..
Normalmente se utiliza mucho para la documentación de los programas ABAP.
Saludos
Zpelos
-
Si, tienes razon....pero la finalidad de este pequeño ejemplo es poder agregarle mas funcionalidades, como guardar imagenes de
documentos legales en algun directorio sap via FTP, o atachar el archivo para enviarlo por correo...o lo que se quiera hacer
con este archivo..