on 02-14-2008 7:36 AM
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..
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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 .
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
78 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.