0% found this document useful (0 votes)
374 views4 pages

Spool 2 PDF

This document describes a program that converts SAP spool jobs (OTF or ABAP lists) into PDF format and allows the PDF to be downloaded. It contains the following key steps: 1. It checks if the specified spool job number exists and gets attributes of the spool job like type (OTF or ABAP). 2. It calls functions to convert the spool job to PDF based on whether it is OTF or ABAP type. 3. If conversion is successful, it allows the PDF file to be downloaded or informs user if conversion was done asynchronously in background. It displays status messages during the process.

Uploaded by

volkaracho15
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
374 views4 pages

Spool 2 PDF

This document describes a program that converts SAP spool jobs (OTF or ABAP lists) into PDF format and allows the PDF to be downloaded. It contains the following key steps: 1. It checks if the specified spool job number exists and gets attributes of the spool job like type (OTF or ABAP). 2. It calls functions to convert the spool job to PDF based on whether it is OTF or ABAP type. 3. If conversion is successful, it allows the PDF file to be downloaded or informs user if conversion was done asynchronously in background. It displays status messages during the process.

Uploaded by

volkaracho15
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

REPORT RSTXPDFT4 line-size 80.

*
* Read spool job contents (OTF or ABAP list) and convert
* to PDF, download PDF
* B20K8A0IKH replace WS_DOWNLOAD with GUI_DOWNLOAD
*
PARAMETERS:
SPOOLNO LIKE TSP01-RQIDENT,
DOWNLOAD AS CHECKBOX DEFAULT 'X',
P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\temp\file.pdf'. "#EC NOTEXT
selection-screen skip 1.
selection-screen begin of block list_width with frame title text-010.
parameters: real radiobutton group g1 default 'X',
format radiobutton group g1 .
selection-screen end of block list_width.
DATA otf like itcoo occurs 100 with header line.
DATA CANCEL.
DATA PDF LIKE TLINE OCCURS 100 WITH HEADER LINE.
DATA DOCTAB LIKE DOCS OCCURS 1 WITH HEADER LINE.
DATA: NUMBYTES TYPE I,
ARC_IDX LIKE TOA_DARA,
pdfspoolid like tsp01-rqident,
jobname like tbtcjob-jobname,
jobcount like tbtcjob-jobcount,
is_otf.
data: client like tst01-dclient,
name like tst01-dname,
objtype like rststype-type,
type like rststype-type.
data: GET_SIZE_FROM_FORMAT.
tables: tsp01.
select single * from tsp01 where rqident = spoolno.
if sy-subrc <> 0.
perform bd_textbox_err(rstxpdft) using 80
'Spoolauftrag existiert nicht'(003).
exit.
endif.
client = tsp01-rqclient.
name = tsp01-rqo1name.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
AUTHORITY = 'SP01'
CLIENT = client
NAME = name
PART = 1
IMPORTING
* CHARCO =
* CREATER =
* CREDATE =
* DELDATE =
* MAX_CREDATE =
* MAX_DELDATE =
* NON_UNIQ =
* NOOF_PARTS =
* RECTYP =
* SIZE =
* STOTYP =
TYPE = type
OBJTYPE = objtype
EXCEPTIONS
FB_ERROR = 1
FB_RSTS_OTHER = 2
NO_OBJECT = 3
NO_PERMISSION = 4.
if objtype(3) = 'OTF'.
is_otf = 'X'.
else.
is_otf = space.
endif.
if is_otf = 'X'.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = spoolno
NO_DIALOG = ' '
* DST_DEVICE =
* PDF_DESTINATION =
IMPORTING
PDF_BYTECOUNT = numbytes
PDF_SPOOLID = pdfspoolid
* OTF_PAGECOUNT =
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.
case sy-subrc.
when 0.
perform bd_textbox_msg(rstxpdft) using 80
'Funktion CONVERT_OTFSPOOLJOB_2_PDF erfolgreich'(001).
when 1.
perform bd_textbox_err(rstxpdft) using 80
'Kein OTF- und kein ABAP-Spoolauftrag'(002).
exit.
when 2.
perform bd_textbox_err(rstxpdft) using 80
'Spoolauftrag existiert nicht'(003).
exit.
when 3.
perform bd_textbox_err(rstxpdft) using 80
'Keine Berechtigung zum Lesen Spoolauftrag'(004).
exit.
when others.
perform bd_textbox_err(rstxpdft) using 80
'Fehler bei Funktion CONVERT_OTFSPOOLJOB_2_PDF'(005).
exit.
endcase.
else.
if real is initial.
GET_SIZE_FROM_FORMAT = 'X'.
endif.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = spoolno
NO_DIALOG = ' '
* DST_DEVICE =
* PDF_DESTINATION =
GET_SIZE_FROM_FORMAT = GET_SIZE_FROM_FORMAT
IMPORTING
PDF_BYTECOUNT = numbytes
PDF_SPOOLID = pdfspoolid
* LIST_PAGECOUNT =
BTC_JOBNAME = jobname
BTC_JOBCOUNT = jobcount
TABLES
PDF = pdf
EXCEPTIONS
ERR_NO_ABAP_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DESTDEVICE = 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.
case sy-subrc.
when 0.
perform bd_textbox_msg(rstxpdft) using 80
'Funktion CONVERT_ABAPSPOOLJOB_2_PDF erfolgreich'(006).
when 1.
perform bd_textbox_err(rstxpdft) using 80
'Kein OTF- und kein ABAP-Spoolauftrag'(002).
exit.
when 2.
perform bd_textbox_err(rstxpdft) using 80
'Spoolauftrag existiert nicht'(003).
exit.
when 3.
perform bd_textbox_err(rstxpdft) using 80
'Keine Berechtigung zum Lesen Spoolauftrag'(004).
exit.
when others.
perform bd_textbox_err(rstxpdft) using 80
'Fehler bei Funktion CONVERT_ABAPSPOOLJOB_2_PDF'(007).
exit.
endcase.
endif.
*************** download PDF file ***********
check download = 'X'.
if not ( jobname is initial ).
perform bd_textbox_var2_msg(rstxpdft) using 80
'Konvertierung per Hintergrundjob'(008)
jobname
jobcount.
exit.
endif.
perform download_w_ext(RSTXPDFT) tables pdf
using p_file
'.pdf'
'BIN'
numbytes
cancel.
if cancel = space.
data: s(80).
s = numbytes. condense s.
concatenate s 'Bytes heruntergeladen in Datei'(009)
into s separated by space.
perform bd_textbox_var1_msg(RSTXPDFT) using 80
s
p_file.
endif.

You might also like