Foro de programación ABAP

Código abierto => Reports => Mensaje iniciado por: Enrique.Borroni en 09 de Noviembre de 2012, 02:23:31 am

Título: Transformar Orden Spool a PDF
Publicado 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.
*
*---------------------------------------------------------------------------------------*
*
Título: Re:Transformar Orden Spool a PDF
Publicado por: zpelos en 15 de Noviembre de 2012, 10:47:01 pm
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
Título: Re:Transformar Orden Spool a PDF
Publicado por: Enrique.Borroni en 16 de Noviembre de 2012, 11:51:18 pm
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..