2007 Jul 23 7:11 PM
Hi all,
How to send email in SMARTFORMS?
can any one tell as it is urgent requrement.
thanks
revanth
Hi all,
How to send email in SMARTFORMS?
can any one tell as it is urgent requrement.
thanks
revanth
2007 Jul 23 7:18 PM
Check the code....
Summury: Converting the smartfrom to PDF is process of 3 simple steps.
Calling the Smart form, then it returns the OTF data in Return.
Converting the OTF data into required format using the Function Module CONVERT_OTF_2_PDF.
Download the File
*&---------------------------------------------------------------------*
*& Report ZTEST_NREDDY_PDF
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_NREDDY_PDF.
DATA: it_otf TYPE STANDARD TABLE OF itcoo,
it_docs TYPE STANDARD TABLE OF docs,
it_lines TYPE STANDARD TABLE OF tline,
st_job_output_info TYPE ssfcrescl,
st_document_output_info TYPE ssfcrespd,
st_job_output_options TYPE ssfcresop,
st_output_options TYPE ssfcompop,
st_control_parameters TYPE ssfctrlop,
v_len_in TYPE so_obj_len,
v_language TYPE sflangu VALUE 'E',
v_e_devtype TYPE rspoptype,
v_bin_filesize TYPE i,
v_name TYPE string,
v_path TYPE string,
v_fullpath TYPE string,
v_filter TYPE string,
v_uact TYPE i,
v_guiobj TYPE REF TO cl_gui_frontend_services,
v_filename TYPE string,
v_fm_name TYPE rs38l_fnam.
CONSTANTS c_formname TYPE tdsfname VALUE 'ZTEST'.
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
i_language = v_language
i_application = 'SAPDEFAULT'
IMPORTING
e_devtype = v_e_devtype.
st_output_options-tdprinter = v_e_devtype.
*st_output_options-tdprinter = 'locl'.
st_control_parameters-no_dialog = 'X'.
st_control_parameters-getotf = 'X'.
*.................GET SMARTFORM FUNCTION MODULE NAME.................*
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = c_formname
IMPORTING
fm_name = v_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*...........................CALL SMARTFORM............................*
CALL FUNCTION v_fm_name
EXPORTING
control_parameters = st_control_parameters
output_options = st_output_options
IMPORTING
document_output_info = st_document_output_info
job_output_info = st_job_output_info
job_output_options = st_job_output_options
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.
ELSE.
*.........................CONVERT TO OTF TO PDF.......................*
CALL FUNCTION 'CONVERT_OTF_2_PDF'
IMPORTING
bin_filesize = v_bin_filesize
TABLES
otf = st_job_output_info-otfdata
doctab_archive = it_docs
lines = it_lines
EXCEPTIONS
err_conv_not_possible = 1
err_otf_mc_noendmarker = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*........................GET THE FILE NAME TO STORE....................*
CONCATENATE 'smrt' '.pdf' INTO v_name.
CREATE OBJECT v_guiobj.
CALL METHOD v_guiobj->file_save_dialog
EXPORTING
default_extension = 'pdf'
default_file_name = v_name
file_filter = v_filter
CHANGING
filename = v_name
path = v_path
fullpath = v_fullpath
user_action = v_uact.
IF v_uact = v_guiobj->action_cancel.
EXIT.
ENDIF.
*..................................DOWNLOAD AS FILE....................*
MOVE v_fullpath TO v_filename.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = v_bin_filesize
filename = v_filename
filetype = 'BIN'
TABLES
data_tab = it_lines
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
also check the link below.
Cheers
VJ
2007 Jul 23 7:19 PM
Hi,
Use 'SO_NEW_DOCUMENT_SEND_API1 F.M
Please go through the code.
data declaration
-
c_u(1) VALUE 'U', "Value U
c_int(3) VALUE 'INT', "Value Int
c_saprpt(6) VALUE 'SAPRPT', "Heading
c_f(1) VALUE 'F', "Value F
c_raw(3) VALUE 'RAW'. "Doc Type
-
getting the data from TVARV
-
CONCATENATE 'CBSI_FILE_NAME' '0227' INTO l_var_name SEPARATED BY '_'.
CALL FUNCTION 'Z_GET_TVARV_ENTRIES'
EXPORTING
i_name = l_var_name
i_type = 'P'
I_MSGTY =
IMPORTING
e_parameter = l_file.
TABLES
t_tvarv =
p_file = l_file .
-
Sending email
-
PERFORM send_file_as_email_attachment
USING v_email
'SM0003 Control Total Data'
'SM0003 Control Total Data'
' '.
&----
Send email
----
-->P_GV_EMAIL Email id
-->P_TEXT_003 Subject
-->P_TEXT_003 Subject
-->P_6200 text
----
FORM send_file_as_email_attachment
USING p_email TYPE somlreci1-receiver
p_mtitle TYPE sodocchgi1-obj_descr
p_filename TYPE so_obj_des
p_attdescription TYPE so_obj_nam.
*
*Local varibales
DATA: lv_mtitle TYPE sodocchgi1-obj_descr,
lv_email TYPE somlreci1-receiver,
lv_attdescription TYPE so_obj_nam ,
lv_attfilename TYPE so_obj_des ,
lv_sent_all TYPE sonv-flag.
*move values
it_attach[] = it_output[].
lv_sent_all = c_x.
lv_email = p_email.
lv_mtitle = p_mtitle.
lv_attdescription = p_attdescription.
lv_attfilename = p_filename.
Fill the document data.
it_docchange-doc_size = 1.
Populate the subject/generic message attributes
it_docchange-obj_langu = sy-langu.
it_docchange-obj_name = c_saprpt.
it_docchange-obj_descr = lv_mtitle .
it_docchange-sensitivty = c_f.
Fill the document data and get size of attachment
READ TABLE it_attach
INDEX v_chr_entries
TRANSPORTING NO FIELDS.
it_docchange-doc_size =
( v_chr_entries - 1 ) * 255 + STRLEN( it_attach ).
it_docchange-obj_langu = sy-langu.
it_docchange-obj_name = c_saprpt.
it_docchange-obj_descr = lv_mtitle.
it_docchange-sensitivty = c_f.
Describe the body of the message
CLEAR wa_objpack.
REFRESH it_objpack.
wa_objpack-transf_bin = space.
wa_objpack-head_start = 1.
wa_objpack-head_num = 0.
wa_objpack-body_start = 1.
DESCRIBE TABLE it_message LINES v_objpackbody.
wa_objpack-doc_type = c_raw.
APPEND wa_objpack
TO it_objpack.
Create attachment notification
wa_objpack-transf_bin = c_x.
wa_objpack-head_start = 1.
wa_objpack-head_num = 1.
wa_objpack-body_start = 1.
DESCRIBE TABLE it_attach LINES v_objpackbody.
wa_objpack-obj_descr = lv_attdescription.
wa_objpack-obj_name = lv_attfilename.
wa_objpack-doc_size = wa_objpack-body_num * 255.
APPEND wa_objpack
TO it_objpack.
Add the recipients email address
REFRESH it_reclist.
LOOP AT it_mailid .
wa_reclist-receiver = it_mailid-low.
wa_reclist-receiver = '[email protected]'.
wa_reclist-rec_type = c_u.
wa_reclist-com_type = c_int.
wa_reclist-notif_del = c_x.
wa_reclist-notif_ndel = c_x.
APPEND wa_reclist
TO it_reclist.
CLEAR wa_reclist.
ENDLOOP.
IF 1 = 2.
ENDIF.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = it_docchange
document_type = c_raw
put_in_outbox = c_x
commit_work = c_x
IMPORTING
sent_to_all = lv_sent_all
TABLES
object_content = it_attach
receivers = it_reclist
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 e114 ."Unable to send An Email with Session Log.
ENDIF. "IF sy-subrc NE 0.
ENDFORM. "send_file_as_email_attachment
Thanks,
Sudhakar
2007 Jul 23 7:19 PM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |