0% found this document useful (0 votes)
193 views13 pages

Convert AS400 Spool to PDF

This document describes a process for converting a spool file to a PDF file and then transferring that PDF file either via FTP or locally. It includes subroutines for the PDF conversion using the CONVERT_OTFSPOOLJOB_2_PDF function, and for the file transfers using either FTP_R3_TO_SERVER for FTP or FTP_R3_TO_CLIENT for local. Selection criteria allow choosing between FTP and local transfer modes.

Uploaded by

nileshforyou
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
193 views13 pages

Convert AS400 Spool to PDF

This document describes a process for converting a spool file to a PDF file and then transferring that PDF file either via FTP or locally. It includes subroutines for the PDF conversion using the CONVERT_OTFSPOOLJOB_2_PDF function, and for the file transfers using either FTP_R3_TO_SERVER for FTP or FTP_R3_TO_CLIENT for local. Selection criteria allow choosing between FTP and local transfer modes.

Uploaded by

nileshforyou
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 13

SPOOL TO PDF

START-OF-SELECTION.
IF ftp EQ 'X'.

*subroutine for ftp transfer


PERFORM : spool_pdf_conversion.
*

ftp_transfer .
ELSE.

*subroutine for local transfer


PERFORM : spool_pdf_conversion,
local_transfer .

ENDIF.
*&---------------------------------------------------------------------*
*&

Form spool_pdf_conversion

*&---------------------------------------------------------------------*
*

text

*----------------------------------------------------------------------*
FORM spool_pdf_conversion.
***convert spool to pdf
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid

= spoolno

no_dialog

= 'X'

pdf_destination

= 'X'

no_background

= 'X'

IMPORTING
pdf_bytecount
bin_file

= bin_size
= pdf_xstring

EXCEPTIONS
err_no_otf_spooljob
err_no_spooljob

=1
=2

err_no_permission

=3

err_conv_not_possible
err_bad_dstdevice

=4
=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 <> 0.
MESSAGE e712(po) WITH sy-subrc 'CONVERT_OTFSPOOLJOB_2_PDF'.
ENDIF.

***converting xstring to the binary format


CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer
*
*
*

= pdf_xstring

APPEND_TO_TABLE

=''

IMPORTING
OUTPUT_LENGTH

TABLES
binary_tab
.

= bindata

ENDFORM.

"spool_pdf_conversion

*&---------------------------------------------------------------------*
*&

Form Desktop_transfer

*&---------------------------------------------------------------------*
*

text

*----------------------------------------------------------------------*
FORM LOCAL_transfer.

CALL FUNCTION 'FTP_R3_TO_CLIENT'


EXPORTING
fname
= 'C:\Documents and
Settings\GSS\Desktop\Script_d.PDF'
rfc_destination
blob_length
*

= 'SAPFTP'
= bin_size

CHARACTER_MODE

TABLES
blob

= bindata

= 'X'

TEXT

= datatab

EXCEPTIONS
command_error

=1

data_error

=2

OTHERS

= 3.

ENDFORM.

"Desktop_transfer

*&---------------------------------------------------------------------*
*&

Form ftp_trasfer

*&---------------------------------------------------------------------*
*

text

*----------------------------------------------------------------------*

FORM ftp_transfer.

***ftp connection logic


slen = STRLEN( l_pwd ).

CALL FUNCTION 'HTTP_SCRAMBLE'


EXPORTING
SOURCE

= l_pwd

sourcelen

= slen

key

= key

IMPORTING
destination = l_pwd.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'


EXPORTING
text = 'Connect to FTP Server'.

CALL FUNCTION 'FTP_CONNECT'


EXPORTING
user

= l_user

password
host

= l_pwd
= l_host

rfc_destination = 'SAPFTPA'
IMPORTING
handle

= hdl.

IF NOT pasv IS INITIAL.


REFRESH result.

CALL FUNCTION 'FTP_COMMAND'


EXPORTING
handle

= hdl

command

= 'set passive on'

TABLES
data

= result

EXCEPTIONS

tcpip_error

=1

command_error = 2
data_error

= 3.

IF sy-subrc EQ 0.
WRITE: / 'Set passive mode'.
SKIP 1.
ENDIF.

ENDIF.

***passing the file name


docid = 'Script.pdf'.

***connecting to the ftp server


CALL FUNCTION 'FTP_R3_TO_SERVER'
EXPORTING

handle

= hdl

fname

= docid

blob_length

= bin_size

TABLES
blob

= bindata

EXCEPTIONS
tcpip_error

=1

command_error = 2
data_error

=3

OTHERS

= 4.

***ftp disconnection
CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = hdl.

CALL FUNCTION 'RFC_CONNECTION_CLOSE'


EXPORTING
destination = dest

EXCEPTIONS
OTHERS

= 1.

ENDFORM.

"

******* Declarations.

TYPES: BEGIN OF blob,


line(80) TYPE x,
END OF blob.

*** PDF conversion Declaration .


DATA: pdf_size
pdf_content
pdf_xstring
v_xstring
v_text
rq

TYPE so_obj_len,
TYPE solix_tab,
TYPE xstring,
TYPE xstring,

TYPE localfile,

TYPE tsp01,

bin_size TYPE i,
dummy

TYPE TABLE OF rspoattr,

otf LIKE itcoo OCCURS 100 WITH HEADER LINE,


cancel,
pdf LIKE tline OCCURS 100 WITH HEADER LINE,
doctab LIKE docs OCCURS 1 WITH HEADER LINE,
numbytes TYPE i,
arc_idx LIKE toa_dara,
pdfspoolid LIKE tsp01-rqident,
jobname LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount,
is_otf,
client LIKE tst01-dclient,
name LIKE tst01-dname,
objtype LIKE rststype-type,
type LIKE rststype-type,
get_size_from_format,
bindata TYPE TABLE OF blob WITH HEADER LINE,
result TYPE TABLE OF text WITH HEADER LINE,
filesize TYPE i,
convcount TYPE i,

lines LIKE tline OCCURS 100 WITH HEADER LINE,


textlines LIKE tline OCCURS 100 WITH HEADER LINE,

***FTP declarations
v_file

TYPE char40,

w_hdl

TYPE i,

c_key

TYPE i VALUE 26101957,

l_slen

TYPE i,

l_user(30) TYPE c VALUE 'USERNAME',


server

"user name of ftp

l_pwd(30) TYPE c VALUE 'PASSWORD',

"password of ftp server

l_host(64) TYPE c VALUE 'IP_ADDRESS',


pasv,
key TYPE i VALUE 26101957,
hdl TYPE i,
slen TYPE i,
x TYPE i,
docid LIKE sysuuid-c,
cmd(120),
error,
bline(120) TYPE x,

"ip address of FTP server

dest LIKE rfcdes-rfcdest.

***Selection Screen
PARAMETERS: spoolno LIKE tsp01-rqident.

SELECTION-SCREEN BEGIN OF LINE .


SELECTION-SCREEN POSITION 2.
PARAMETERS: ftp RADIOBUTTON GROUP rb.
SELECTION-SCREEN COMMENT 5(45) text-005.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE .


SELECTION-SCREEN POSITION 2.
PARAMETERS: local RADIOBUTTON GROUP rb .
SELECTION-SCREEN COMMENT 5(45) text-006.
SELECTION-SCREEN END OF LINE.

You might also like