cancel
Showing results for 
Search instead for 
Did you mean: 

Smartforms to pdf format while emailing

Former Member
0 Kudos

Hi All,

My requirement is (Smartforms):

I want to send the smartform print values to some email id in pdf format .

How to do that .....

Ashok..

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Check the Sample Code


&---------------------------------------------------------------------
*& Report YSSN_SIMPLE_SMARTFORM *
*& *
&---------------------------------------------------------------------
*& *
*& *
&---------------------------------------------------------------------

report zhr_bhaskar_pdf_to_email message-id zmsg.

parameters: p_vbeln type vbak-vbeln default '35'.

data: it_items type table of vbap,

v_fm_name type rs38l_fnam,
v_tot_lines type i,
v_sy_tabix type i,
output_data type ssfcrescl. " To hold Output information

constants:
c_sep type c value '-', " Value -
c_x type c value 'X', " Value X
c_space type c value ' '. " Space
*****MAIL START
include <cntn01>.

data: g_mail_rec_obj type swotobjid,
g_mail_sen_obj type swotobjid,
g_mail_app_obj type swotobjid,
g_cont_par type ssfctrlop,
folder type swc_object,
begin of sofmfol_key,
foldertype like sofm-foltp,
folderyear like sofm-folyr,
foldernumber like sofm-folno,
type like sofm-doctp,
year like sofm-docyr,
number like sofm-docno,
forwarder like soub-usrnam,
end of sofmfol_key,
bor_key like swotobjid-objkey,


g_mail TYPE ppfdmailad VALUE 'bhaskark@intelligroup.com', 
g_mail type so_name value 'madang@intelligroup.com',

g_mail TYPE ppfdmailad VALUE 'muralikri@intelligroup.com' , 
g_mail TYPE ppfdmailad VALUE 'dmkrishna76@yahoo.com' , 
g_rectype type so_escape value 'U'. " 'B'.

data: job_output_info type ssfcrescl,
hotfdata like itcoo occurs 1 with header line,
htline like tline occurs 1 with header line,
x_objcont like soli occurs 1 with header line,
ld_packing_list like soxpl occurs 1 with header line,
x_object_hd_change like sood1 occurs 1 with header line,
x_objhead like soli occurs 1 with header line,
x_receivers like soos1 occurs 1 with header line,
format_pdf(10) value 'PDF',
doc_size(12) type c,
hltlines type i,
htabix like sy-tabix,
fle1(2) type p,
fle2(2) type p,
off1 type p,
hfeld(500) type c.

tables: soud.

*****MAIL END

select *
into table it_items
from vbap
where vbeln = p_vbeln.

if it_items[] is initial.
exit.
endif.

perform call_smartform.

&---------------------------------------------------------------------
*& Form call_smartform
&---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--> p1 text 
<-- p2 text 
----------------------------------------------------------------------
form call_smartform .
*DATA: lx_control_parameters TYPE SSFCTRLOP,

lx_OUTPUT_OPTIONS type SSFCOMPOP. 
lx_OUTPUT_OPTIONS-TDIMMED = ' '. 
lx_OUTPUT_OPTIONS-TDfinal = 'X'. 
lx_OUTPUT_OPTIONS-TDDELETE = 'X'. 
lx_CONTROL_PARAMETERS-NO_CLOSE = 'X'. 
lx_CONTROL_PARAMETERS-NO_OPEN = ' '. 
data: x_ssfcompop type ssfcompop,
x_ssfctrlop like ssfctrlop,
x_ssfcrescl type ssfcrescl.

**MAIL
g_cont_par-langu = sy-langu.
g_cont_par-no_dialog = 'X'.
g_cont_par-getotf = 'X'.
g_cont_par-device = 'MAIL'.

Get BOR-Objects for Recipient, Sender und Applikation 
perform mail_recipient_object changing g_mail_rec_obj.
perform mail_sender_object changing g_mail_sen_obj.
perform mail_appl_object changing g_mail_app_obj.
**MAIL

*--Internal table is having more than 1 record
if v_tot_lines gt 1.
if v_sy_tabix = 1.
*--For first record of table
x_ssfctrlop-no_open = c_space.
x_ssfctrlop-no_close = c_x.
elseif v_sy_tabix = v_tot_lines.
*--For last record of table
x_ssfctrlop-no_open = c_x.
x_ssfctrlop-no_close = c_space.
else.
x_ssfctrlop-no_open = c_x.
x_ssfctrlop-no_close = c_x.
endif.
endif.

IF r_previ = c_x. 
x_ssfctrlop-preview = c_x.
x_ssfctrlop-getotf = c_x.

ENDIF. 
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'YSSN_SMARTFORM'


VARIANT = ' ' 
DIRECT_CALL = ' ' 
importing
fm_name = v_fm_name

EXCEPTIONS 
NO_FORM = 1 
NO_FUNCTION_MODULE = 2 
OTHERS = 3 
.
if sy-subrc 0.
message i000 with 'Smart form module name failure'.
exit.
endif.




CALL FUNCTION '/1BCDWB/SF00000199' 
call function v_fm_name
exporting

ARCHIVE_INDEX = 
ARCHIVE_INDEX_TAB = 
ARCHIVE_PARAMETERS = 
control_parameters = g_cont_par
mail_appl_obj = g_mail_app_obj
mail_recipient = g_mail_rec_obj
mail_sender = g_mail_sen_obj

OUTPUT_OPTIONS = lx_OUTPUT_OPTIONS 
USER_SETTINGS = 'X' 
t_vbap = it_items

IMPORTING 
DOCUMENT_OUTPUT_INFO = 
job_output_info = job_output_info

JOB_OUTPUT_OPTIONS = 
EXCEPTIONS 
FORMATTING_ERROR = 1 
INTERNAL_ERROR = 2 
SEND_ERROR = 3 
USER_CANCELED = 4 
OTHERS = 5 
.

perform send_pdf_mail.

endform. " call_smartform
&---------------------------------------------------------------------
*& Form send_pdf_mail
&---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--> p1 text 
<-- p2 text 
----------------------------------------------------------------------
form send_pdf_mail .
data ld_binfile type xstring.

pdf_table type rcl_bag_tline, 
data: ld_originator like soos1-recextnam.


convert form 
loop at job_output_info-otfdata into hotfdata.
append hotfdata.
endloop.

call function 'CONVERT_OTF'
exporting
format = format_pdf
max_linewidth = 132
importing
bin_filesize = doc_size
bin_file = ld_binfile
tables
otf = output_data-otfdata
lines = htline
exceptions
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
others = 4.

*-Itab 134 Zeichen nach 255 Zeichen überführen
describe table htline lines hltlines.
describe field htline length fle1 in character mode.
describe field x_objcont length fle2 in character mode.
loop at htline.
htabix = sy-tabix.
move htline to hfeld+off1.
if htabix = hltlines.
fle1 = strlen( htline ).
endif.
off1 = off1 + fle1.
if off1 ge fle2.
clear x_objcont.
x_objcont = hfeld(fle2).
append x_objcont.
shift hfeld by fle2 places.
off1 = off1 - fle2.
endif.
if htabix = hltlines.
if off1 gt 0.
clear x_objcont.
x_objcont = hfeld(off1).
append x_objcont.
endif.
endif.
endloop.

x_object_hd_change-objnam = 'EMAIL'.
x_object_hd_change-objdes = 'Smart Form'.
x_object_hd_change-objla = sy-langu.
x_object_hd_change-objsns = 'O'.
x_object_hd_change-objlen = doc_size.
x_object_hd_change-file_ext = 'TXT'.
ld_packing_list-transf_bin = 'X'.
ld_packing_list-head_start = 1.
ld_packing_list-head_num = 0.
ld_packing_list-body_start = 1.
describe table x_objcont lines ld_packing_list-body_num.
ld_packing_list-objtp = 'EXT'.
ld_packing_list-objdes = 'Smart Form'.
ld_packing_list-objla = sy-langu.
ld_packing_list-objlen = doc_size.
ld_packing_list-file_ext = 'PDF'.
append ld_packing_list.

x_receivers-recextnam = g_mail.
x_receivers-recesc = 'E'.
x_receivers-sndart = 'INT'.
append x_receivers.

ld_originator = 'sampathc@intelligroup.com'.



ld_originator = FSABE-USRNAM. 
call function 'SO_OBJECT_SEND'
exporting
object_hd_change = x_object_hd_change
object_type = 'RAW'
originator_type = 'B' "Einfügen
originator = ld_originator "Einfügen
tables


objcont = ld_text 
receivers = x_receivers
packing_list = ld_packing_list
att_cont = x_objcont
att_head = x_objhead
exceptions
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
folder_not_exist = 4
folder_no_authorization = 5
forwarder_not_exist = 6
note_not_exist = 7
object_not_exist = 8
object_not_sent = 9
object_no_authorization = 10
object_type_not_exist = 11
operation_no_authorization = 12
owner_not_exist = 13
parameter_error = 14
substitute_not_active = 15
substitute_not_defined = 16
system_failure = 17
too_much_receivers = 18
user_not_exist = 19
x_error = 20
others = 21.

endform. " send_pdf_mail


&---------------------------------------------------------------------
*& Form mail_sender_object
&---------------------------------------------------------------------


text 
----------------------------------------------------------------------

<--P_G_MAIL_SEN_OBJ text 
----------------------------------------------------------------------
form mail_sender_object changing p_mail_sen_obj.

call function 'CREATE_SENDER_OBJECT_PPF'
exporting
ip_sender = sy-uname
importing
ep_sender_id = p_mail_sen_obj
exceptions
invalid_sender = 1
others = 2.
if sy-subrc 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.

endform. " mail_sender_object
&---------------------------------------------------------------------
*& Form mail_appl_object
&---------------------------------------------------------------------

text 
----------------------------------------------------------------------

<--P_G_MAIL_APP_OBJ text 
----------------------------------------------------------------------
form mail_appl_object changing p_mail_app_obj.


SELECT * FROM soud WHERE sapnam LIKE sy-uname AND deleted = ' '. 
ENDSELECT. 
IF sy-subrc NE 0. 

call function 'SO_USER_AUTOMATIC_INSERT'
exporting
sapname = sy-uname
exceptions
no_insert = 1
sap_name_exist = 2
x_error = 3
others = 4.
if sy-subrc ne 0.
clear soud.
else.
select * from soud where sapnam like sy-uname and deleted = ' '.
endselect.
endif.

ENDIF. 

clear sofmfol_key.
sofmfol_key-type = 'FOL'.
sofmfol_key-year = soud-inbyr.
sofmfol_key-number = soud-inbno.
bor_key = sofmfol_key.
if not bor_key is initial.
swc_create_object folder 'SOFMFOL' bor_key.
if sy-subrc = 0.

swc_object_to_persistent folder p_mail_app_obj.
if sy-subrc ne 0.
clear p_mail_app_obj.
endif.
endif.
else.
clear p_mail_app_obj.
endif.

endform. " mail_appl_object

&---------------------------------------------------------------------
*& Form mail_recipient_object
&---------------------------------------------------------------------

text 
----------------------------------------------------------------------

<--P_G_MAIL_REC_OBJ text 
----------------------------------------------------------------------
form mail_recipient_object changing p_mail_rec_obj.

call function 'CREATE_RECIPIENT_OBJ_PPF'
exporting

IP_COUNTRY = 
IP_FAXNO = 
ip_mailaddr = g_mail
ip_type_id = g_rectype " 'U'
importing
ep_recipient_id = p_mail_rec_obj

EP_ADDRESS = 
ET_RECIPIENT = 
exceptions
invalid_recipient = 1
others = 2.
if sy-subrc 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.

endform. " mail_recipient_object

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Feb 14, 2008 3:11 PM

Edited by: Alvaro Tejada Galindo on Feb 14, 2008 3:12 PM

Former Member
0 Kudos

Below code will help you to get the smartfrom output in pDF format and Send it across email.

Create a samrtfrom according to your requirement and follow the below code to generate PDF and send it across the Email

&----


*& Report YSMARTFORM_EMAIL

*&

&----


*&

*&

&----


REPORT YSMARTFORM_EMAIL.

TABLES: VBAK.

************************************************************************

  • Constants *

************************************************************************

CONSTANTS:

C_X TYPE C VALUE 'X', " Value X

C_0 TYPE C VALUE '0', " Value 0

C_1 TYPE C VALUE '1'. " Value 1

************************************************************************

  • Work Variables declaration *

************************************************************************

DATA:

W_UCOMM LIKE SY-UCOMM, " Function code

W_TABLN TYPE I, " Lines

W_LINE TYPE SO_TEXT255, " Line of text

W_EADDR(60) TYPE C. " FieldLength for Email

DATA: VBAP_TAB LIKE VBAP OCCURS 0 WITH HEADER LINE.

DATA: W_FUNMOD TYPE RS38L_FNAM.

  • Structure to hold the Attributes of new Document

DATA: FS_DOCDATA TYPE SODOCCHGI1.

  • Internal table for storing OTF data form Smart-Form

DATA: BEGIN OF FS_OTF_DATA.

INCLUDE STRUCTURE ITCOO.

DATA: END OF FS_OTF_DATA,

T_OTF_DATA LIKE STANDARD TABLE OF FS_OTF_DATA.

  • Internal table for storing PDF data form Smart-Form

DATA: BEGIN OF FS_PDF_DATA.

INCLUDE STRUCTURE TLINE.

DATA: END OF FS_PDF_DATA,

T_PDF_DATA LIKE STANDARD TABLE OF FS_PDF_DATA.

  • Internal table to hold the attachment data text of the email

DATA: BEGIN OF FS_ATTACH_DATA.

INCLUDE STRUCTURE SOLISTI1.

DATA: END OF FS_ATTACH_DATA,

T_ATTACH_DATA LIKE STANDARD TABLE OF FS_ATTACH_DATA.

  • Internal table to hold Message body of the email

DATA: BEGIN OF FS_MESSBODY.

INCLUDE STRUCTURE SOLISTI1.

DATA: END OF FS_MESSBODY,

T_MESSBODY LIKE STANDARD TABLE OF FS_MESSBODY.

  • Internal table for packing list for main document

DATA: BEGIN OF FS_OBJPACK.

INCLUDE STRUCTURE SOPCKLSTI1.

DATA: END OF FS_OBJPACK,

T_OBJPACK LIKE STANDARD TABLE OF FS_OBJPACK.

  • Internal table for header text of the attachment

DATA: BEGIN OF FS_OBJHEAD.

INCLUDE STRUCTURE SOLISTI1.

DATA: END OF FS_OBJHEAD,

T_OBJHEAD LIKE STANDARD TABLE OF FS_OBJHEAD.

  • Internal table receiver information

DATA: BEGIN OF FS_RECEIVER.

INCLUDE STRUCTURE SOMLRECI1.

DATA: END OF FS_RECEIVER,

T_RECEIVER LIKE STANDARD TABLE OF FS_RECEIVER.

*Internal table to store data upto 255 lines

DATA: BEGIN OF FS_OBJCONT.

INCLUDE STRUCTURE SOLI.

DATA: END OF FS_OBJCONT,

T_OBJCONT LIKE STANDARD TABLE OF FS_OBJCONT.

*DATA : P_VBELN LIKE VBAK-VBELN.

DATA: P_EADDR(60) TYPE C

VALUE 'SUVARCHALA.CHINTALAPUDI@YASH.COM'.

PARAMETERS : P_VBELN LIKE VBAK-VBELN.

*PARAMETERS:

  • P_EADDR(60) TYPE C. " Email address

SELECT SINGLE *

FROM VBAK

WHERE VBELN EQ P_VBELN.

SELECT *

FROM VBAP

INTO TABLE VBAP_TAB

WHERE VBELN EQ P_VBELN.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'YSMARTFORM_EMAIL'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

FM_NAME = W_FUNMOD

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 2

OTHERS = 3 .

IF SY-SUBRC <> 0.

  • Do nothing

ENDIF.

DATA: FS_CONT_PARM TYPE SSFCTRLOP,

T_JOB_INFO TYPE SSFCRESCL.

CLEAR FS_CONT_PARM.

FS_CONT_PARM-GETOTF = 'X'.

FS_CONT_PARM-NO_DIALOG = 'X'.

FS_CONT_PARM-PREVIEW = ''.

CALL FUNCTION W_FUNMOD

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

CONTROL_PARAMETERS = FS_CONT_PARM

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

VBAK = VBAK

IMPORTING

    • DOCUMENT_OUTPUT_INFO =

JOB_OUTPUT_INFO = T_JOB_INFO

    • JOB_OUTPUT_OPTIONS =

TABLES

VBAP = VBAP_TAB

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5 .

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

PERFORM CONVERT_OTF_TO_PDF.

&----


*& Form convert_otf_to_pdf

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CONVERT_OTF_TO_PDF .

DATA: LV_BYTES TYPE P.

IF FS_CONT_PARM-GETOTF EQ 'X'.

REFRESH T_OTF_DATA.

CLEAR FS_OTF_DATA.

LOOP AT T_JOB_INFO-OTFDATA INTO FS_OTF_DATA.

APPEND FS_OTF_DATA TO T_OTF_DATA.

CLEAR FS_OTF_DATA.

ENDLOOP. " LOOP AT t_outtab-otfdata

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

MAX_LINEWIDTH = 255

IMPORTING

BIN_FILESIZE = LV_BYTES

TABLES

OTF = T_OTF_DATA

LINES = T_PDF_DATA

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

OTHERS = 4.

IF SY-SUBRC EQ 0 AND LV_BYTES IS NOT INITIAL.

PERFORM TABLE_SHIFT.

  • To send the output by email

PERFORM SET_UP_EMAIL.

PERFORM SEND_MAIL.

ENDIF. " IF sy-subrc EQ space.

ENDIF. " IF gs_control_pars-getotf

ENDFORM. " convert_otf_to_pdf

----


  • Form set_up_email *

----


  • This subroutine is used to set mail attributes *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM SET_UP_EMAIL .

  • To setup attributes of the document

PERFORM SET_EMAIL_HEADER.

  • To set body of email

PERFORM SET_EMAILBODY.

  • To convert output table data with tab delimiter

PERFORM PREPARE_OUTPUT_DATA_FOR_ATTACH.

  • To set the Receipents

PERFORM SET_RECEIPENTS.

ENDFORM. " Set_up_email

----


  • Form set_email_header *

----


  • This subroutine is used to Setup the attributes of the Document *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM SET_EMAIL_HEADER.

CONSTANTS :

LC_P TYPE C VALUE 'P', " Production system name

LC_F TYPE C VALUE 'F', " Sensitivity

LC_OBJNAME(6) TYPE C " Object name

VALUE 'SAPRPT'.

CLEAR FS_DOCDATA.

  • Populate the subject/generic message attributes

FS_DOCDATA-DOC_SIZE = 1.

FS_DOCDATA-OBJ_LANGU = SY-LANGU.

FS_DOCDATA-OBJ_NAME = LC_OBJNAME.

FS_DOCDATA-SENSITIVTY = LC_F.

IF SY-SYSID+0(1) NE LC_P.

CONCATENATE 'Test mail'(003)

'Sales Order Details'(002)

INTO FS_DOCDATA-OBJ_DESCR

SEPARATED BY SPACE.

ELSE.

MOVE TEXT-002 TO FS_DOCDATA-OBJ_DESCR.

ENDIF. " IF sy-sysid+0(1)...

ENDFORM. " Set_email_header

----


  • Form set_emailbody *

----


  • This subroutine is used to set body of an email *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM SET_EMAILBODY.

CONSTANTS:

LC_DOC_TYPE(3) TYPE C VALUE 'RAW'. " Document type

REFRESH : T_OBJPACK,

T_MESSBODY.

CLEAR : FS_OBJPACK,

FS_MESSBODY.

MOVE:

'Hi,'(004) TO FS_MESSBODY-LINE.

APPEND FS_MESSBODY TO T_MESSBODY.

CLEAR FS_MESSBODY.

MOVE:

  • 'The attachment contains sales order details.'(005)

'www.google.com'

TO FS_MESSBODY-LINE.

APPEND FS_MESSBODY TO T_MESSBODY.

CLEAR W_TABLN.

DESCRIBE TABLE T_MESSBODY LINES W_TABLN.

CLEAR FS_MESSBODY.

READ TABLE T_MESSBODY INTO FS_MESSBODY INDEX W_TABLN.

FS_DOCDATA-DOC_SIZE = ( W_TABLN - 1 ) * 255 + STRLEN( W_LINE ).

MOVE:

SPACE TO FS_OBJPACK-TRANSF_BIN,

C_1 TO FS_OBJPACK-HEAD_START,

C_0 TO FS_OBJPACK-HEAD_NUM,

C_1 TO FS_OBJPACK-BODY_START,

W_TABLN TO FS_OBJPACK-BODY_NUM,

LC_DOC_TYPE TO FS_OBJPACK-DOC_TYPE.

APPEND FS_OBJPACK TO T_OBJPACK.

ENDFORM. " Set_emailbody

----


  • Form prepare_output_data_for_attach *

----


  • To convert the output table data with comma delimiter *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM PREPARE_OUTPUT_DATA_FOR_ATTACH.

CONSTANTS:

LC_DOC_TYPE(3) TYPE C VALUE 'PDF', " Document type

LC_OBJNAME(6) TYPE C VALUE 'SAPRPT'. " Object name

REFRESH T_OBJHEAD.

REFRESH T_ATTACH_DATA[].

CLEAR FS_ATTACH_DATA.

T_ATTACH_DATA[] = T_OBJCONT[].

DESCRIBE TABLE T_ATTACH_DATA LINES W_TABLN.

FS_DOCDATA-DOC_SIZE = ( W_TABLN - 1 ) * 255 + STRLEN( W_LINE ).

FS_OBJPACK-BODY_NUM = W_TABLN.

FS_OBJPACK-DOC_SIZE = W_TABLN * 255.

FS_OBJPACK-TRANSF_BIN = C_X.

FS_OBJPACK-HEAD_START = C_1.

FS_OBJPACK-HEAD_NUM = C_1.

FS_OBJPACK-BODY_START = C_1.

FS_OBJPACK-DOC_TYPE = LC_DOC_TYPE.

FS_OBJPACK-OBJ_NAME = 'Attachment'.

FS_OBJPACK-OBJ_DESCR = 'Sales Order Details.PDF'(007).

APPEND FS_OBJPACK TO T_OBJPACK.

ENDFORM. " Prepare_output_data_for_attach

----


  • Form set_receipents *

----


  • This subroutine is used to set the Receipents *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM SET_RECEIPENTS .

CONSTANTS

LC_REC_TYPE TYPE C VALUE 'U'. " Receipent type

REFRESH T_RECEIVER.

IF P_EADDR IS NOT INITIAL.

MOVE:

P_EADDR TO FS_RECEIVER-RECEIVER,

LC_REC_TYPE TO FS_RECEIVER-REC_TYPE.

APPEND FS_RECEIVER TO T_RECEIVER.

ENDIF. " IF P_EMAIL IS NOT.....

ENDFORM. " Set_receipents

----


  • Form send_mail *

----


  • This subroutine is used to send output by email *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM SEND_MAIL.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_DATA = FS_DOCDATA

PUT_IN_OUTBOX = C_X

  • SENDER_ADDRESS = SY-UNAME

  • SENDER_ADDRESS_TYPE = 'B'

COMMIT_WORK = C_X

TABLES

PACKING_LIST = T_OBJPACK

OBJECT_HEADER = T_OBJHEAD

CONTENTS_BIN = T_ATTACH_DATA

CONTENTS_TXT = T_MESSBODY

RECEIVERS = T_RECEIVER

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

DOCUMENT_TYPE_NOT_EXIST = 3

OPERATION_NO_AUTHORIZATION = 4

PARAMETER_ERROR = 5

X_ERROR = 6

ENQUEUE_ERROR = 7

OTHERS = 8.

IF SY-SUBRC NE 0.

MESSAGE I007(CLAIM).

ELSE.

MESSAGE S592(EI).

ENDIF. " IF sy-subrc NE 0.

ENDFORM. " Send_mail

&----


*& Form table_shift

&----


  • The PDF file that is generated out of the above function module

  • cannot be transported as it needs to be of 255 chars.Hence

  • converting the file to get a 255 char single line,internal table.

----


*There are no interface parameters to be passed to this subroutine

----


FORM TABLE_SHIFT .

CONSTANTS:

CNV_HEXCONST_ZERO TYPE X VALUE '00'.

DATA:

LV_BIG_LINES(268) TYPE C

OCCURS 0 WITH HEADER LINE.

DATA:

LFL_FLAG TYPE C,

LV_LEFT_T(268) TYPE C,

LV_LEFT_I TYPE I,

TV_LEFT_I TYPE I,

LV_CURR_I TYPE I.

FIELD-SYMBOLS: <F>.

  • Get the lines into a table of 268 char as the first step to put it in

  • the pdf file of 255 chars

CLEAR LFL_FLAG.

LOOP AT T_PDF_DATA INTO FS_PDF_DATA.

IF LFL_FLAG EQ ' '.

CLEAR LV_BIG_LINES WITH CNV_HEXCONST_ZERO.

ASSIGN LV_BIG_LINES(134) TO <F>.

<F> = FS_PDF_DATA.

LFL_FLAG = 'X'.

ELSE.

LV_BIG_LINES+134 = FS_PDF_DATA.

APPEND LV_BIG_LINES.

CLEAR: LFL_FLAG.

ENDIF. " If lfl_flag = ''..

ENDLOOP. " Loop at t_pdf

IF LFL_FLAG EQ 'X'.

APPEND LV_BIG_LINES.

ENDIF. " If lflf_flag eq 'X'..

  • Next fill it into a 255 char table

CLEAR: LV_LEFT_T, LV_LEFT_I, TV_LEFT_I.

LV_CURR_I = 255.

LOOP AT LV_BIG_LINES.

IF LV_LEFT_I NE 0.

IF LV_CURR_I NE 0.

FS_OBJCONT(LV_LEFT_I) = LV_LEFT_T(LV_LEFT_I).

FS_OBJCONT+LV_LEFT_I(LV_CURR_I) = LV_BIG_LINES(LV_CURR_I).

ELSE.

FS_OBJCONT = LV_LEFT_T(LV_LEFT_I).

ENDIF. " IF lv_curr_i NE 0

ELSE.

FS_OBJCONT = LV_BIG_LINES(LV_CURR_I).

ENDIF. " IF lv_left_i NE 0

APPEND FS_OBJCONT TO T_OBJCONT.

TV_LEFT_I = 268 - LV_CURR_I.

IF TV_LEFT_I > 255.

FS_OBJCONT = LV_BIG_LINES+LV_CURR_I(255).

APPEND FS_OBJCONT TO T_OBJCONT.

LV_LEFT_I = TV_LEFT_I - 255.

TV_LEFT_I = 255 + LV_CURR_I.

LV_CURR_I = 255 - LV_LEFT_I.

LV_LEFT_T = LV_BIG_LINES+TV_LEFT_I.

ELSE.

LV_LEFT_T = LV_BIG_LINES+LV_CURR_I.

LV_LEFT_I = 268 - LV_CURR_I.

LV_CURR_I = 255 - LV_LEFT_I.

ENDIF. " IF tv_left_i > 255

ENDLOOP. " LOOP AT lv_big_lines.

CLEAR FS_OBJCONT WITH CNV_HEXCONST_ZERO.

ASSIGN FS_OBJCONT(LV_LEFT_I) TO <F>.

<F> = LV_LEFT_T(LV_LEFT_I).

APPEND FS_OBJCONT TO T_OBJCONT.

ENDFORM. " Table_shift

Former Member
0 Kudos

Can you send me the parameters necessary to pass for the FM SX_OBJECT_CONVERT_OTF_PDF.

also kindly tell me I need to replace the FM CONVERT_OTF with this new FM SX_OBJECT_CONVERT_OTF_PDF .