Crear PDF en ABAP

Esto si es algo que puede serles muy útil…Por lo menos a mi me ha servido de mucho -:)
Supongamos que tienen que hacer un formulario SapScript y tienen que enviarlo por correo…¿Cómo lo hacen? Muy simple -;) Lo convierten en PDF.
Esta función, pide solamente una ruta donde generar el PDF, y toma los datos de la última orden de Spool que hayamos creado.

*”———————————————————-
*”*”Interfase local
*” IMPORTING
*” REFERENCE(FILENAME) TYPE STRING
*”———————————————————-

SELECT RQIDENT
INTO (T_TSP01-RQIDENT)
FROM TSP01
WHERE RQOWNER EQ SY-UNAME
AND RQCLIENT EQ SY-MANDT.
APPEND T_TSP01.
ENDSELECT.

SORT T_TSP01 DESCENDING.

CALL FUNCTION ‘CONVERT_OTFSPOOLJOB_2_PDF’
EXPORTING
SRC_SPOOLID = T_TSP01-RQIDENT
NO_DIALOG = ”
IMPORTING
PDF_BYTECOUNT = NUMBYTES
PDF_SPOOLID = PDFSPOOLID
BTC_JOBNAME = JOBNAME
BTC_JOBCOUNT = JOBCOUNT
TABLES
PDF = 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.

IF SY-SUBRC EQ 0.

CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
BIN_FILESIZE = NUMBYTES
FILENAME = FILENAME
FILETYPE = ‘BIN’
TABLES
DATA_TAB = PDF
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.
DELETE FROM TSP01 WHERE RQIDENT EQ T_TSP01-RQIDENT.
ENDIF.

ENDIF.

ENDFUNCTION.

Saludos,

Blag.

Leave a Comment

Cerrar
E-mail It