‎2008 Nov 24 6:53 AM
Hi all,
I have to send printed smartforms to vendors/customers .Their e-mail id i can get from the usermaster.But please tell me how to attach the smartforms to send through e-mail.Is there any functional module for this purpose?If so please tell me which FM.Please reply asap.
‎2008 Nov 24 7:01 AM
‎2008 Nov 24 6:57 AM
Hi,
There is a function module i cant't remember it now i think it will starts with so_* check it out with se37 ..
let's wait for other's response.
Thanks,
Thiru. R
‎2008 Nov 24 6:58 AM
‎2008 Nov 24 7:03 AM
Can you please provide me an example regarding how to use this function module.Some piece of codes.
‎2008 Nov 24 7:06 AM
hi narendra ,
i hve worked on similar problem ,
my issue was sending smartform as an attacment in Email , i have created a custom func module fr the same .
hope the code helps in solving ur issue....
import parameters
param name type associated type shrt text
I_TID LIKE THEAD-TDID Text ID of text to be read
I_LAN LIKE THEAD-TDSPRAS Language of text to be read
I_L_NAME LIKE THEAD-TDNAME Name of text to be read
I_OID LIKE THEAD-TDOBJECT Object of text to be read
W_RETURN TYPE SSFCRESCL Smart Forms: Return value at end of form printing
I_POTITLE TYPE EBELN purchase order number
W_DOC_CHNG TYPE SODOCCHGI1 data of an object which can be changed
I_ADDRNUM LIKE ADR6-ADDRNUMBER Address number of Vendor
source code :
FUNCTION /fir/rip2p0bgs_mailsend.
*"----
""Local Interface:
*" IMPORTING
*" REFERENCE(I_TID) LIKE THEAD-TDID
*" REFERENCE(I_LAN) LIKE THEAD-TDSPRAS
*" REFERENCE(I_L_NAME) LIKE THEAD-TDNAME
*" REFERENCE(I_OID) LIKE THEAD-TDOBJECT
*" REFERENCE(W_RETURN) TYPE SSFCRESCL
*" REFERENCE(I_POTITLE) TYPE EBELN
*" REFERENCE(W_DOC_CHNG) TYPE SODOCCHGI1
*" REFERENCE(I_ADDRNUM) LIKE ADR6-ADDRNUMBER
*"----
----
*data declaration
----
*Internal Table declaration
DATA : it_otf TYPE STANDARD TABLE OF itcoo ,
it_tline TYPE STANDARD TABLE OF tline ,
it_record TYPE STANDARD TABLE OF solisti1,
it_objpack TYPE STANDARD TABLE OF sopcklsti1,
it_objtxt TYPE STANDARD TABLE OF solisti1 ,
it_objbin TYPE STANDARD TABLE OF solisti1 ,
it_reclist TYPE STANDARD TABLE OF somlreci1 ,
it_tdline TYPE STANDARD TABLE OF tline,
*Work Area declarations
wa_objhead TYPE soli_tab,
wa_buffer TYPE string, "To convert from 132 to 255
wa_it_objtxt TYPE solisti1,
wa_it_objpack TYPE sopcklsti1,
wa_it_record TYPE solisti1,
wa_it_reclist TYPE somlreci1,
wa_it_tline TYPE tline,
wa_tdline TYPE tline,
*variable declaration
v_lines_bin TYPE i,
v_lines_txt TYPE i,
v_len_in TYPE sood-objlen, "#EC NEEDED
v_mailaddr TYPE adr6-smtp_addr.
*constant declaration
CONSTANTS : c_msgtype TYPE c VALUE 'E', " for declaring masseage type as error msg
c_X TYPE c VALUE 'X',
c_U TYPE c VALUE 'U'.
it_otf[] = w_return-otfdata[].
*calling function module to convert otf format of smartform to pdf format
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = text-001 "PDF
max_linewidth = 132
ARCHIVE_INDEX =
COPYNUMBER =
ASCII_BIDI_VIS2LOG =
PDF_DELETE_OTFTAB =
IMPORTING
bin_filesize = v_len_in
BIN_FILE =
TABLES
otf = it_otf
lines = it_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5 .
IF sy-subrc NE 0.
sy-msgid = text-002. "/fir/rp2p0bgsi_msg
sy-msgty = c_msgtype. " E
sy-msgno = 040.
sy-msgv1 = ' '.
sy-msgv2 = ' '.
sy-msgv3 = ' '.
sy-msgv4 = ' '.
EXIT.
ELSE.
Convert PDF from 132 to 255.
LOOP AT it_tline INTO wa_it_tline.
TRANSLATE wa_it_tline USING ' ~'. " Replacing space by ~
CONCATENATE wa_buffer wa_it_tline INTO wa_buffer.
ENDLOOP.
TRANSLATE wa_buffer USING '~ '. " Replacing space by ~
DO.
wa_it_record = wa_buffer.
APPEND wa_it_record TO it_record. " Appending 255 characters as a record
SHIFT wa_buffer LEFT BY 255 PLACES.
IF wa_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
REFRESH:it_objbin.
CLEAR wa_objhead.
Object with PDF.
it_objbin[] = it_record[].
DESCRIBE TABLE it_objbin LINES v_lines_bin.
*calling a function module read_text to get the text for the mail body
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = i_tid
language = i_lan
name = i_l_name
object = i_oid
IMPORTING
HEADER =
TABLES
lines = it_tdline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8
.
IF sy-subrc <> 0. "#EC
ENDIF.
IF it_tdline IS NOT INITIAL.
LOOP AT it_tdline INTO wa_tdline.
wa_it_objtxt = wa_tdline-tdline.
APPEND wa_it_objtxt TO it_objtxt.
CLEAR: wa_tdline,
wa_it_objtxt.
ENDLOOP.
DESCRIBE TABLE it_objtxt LINES v_lines_txt.
ENDIF.
Pack to main body as RAW.
CLEAR wa_it_objpack-transf_bin. "Obj. to be transported not in binary form
wa_it_objpack-head_start = 1. "Start line of object header in transport packet
wa_it_objpack-head_num = 0. "Number of lines of an object header in object packet
wa_it_objpack-body_start = 1. "Start line of object contents in an object packet
wa_it_objpack-body_num = v_lines_txt. "Number of lines of the object contents in an object packet
Code for document class
wa_it_objpack-doc_type = text-004. "RAW
APPEND wa_it_objpack TO it_objpack.
Packing as PDF.
wa_it_objpack-transf_bin = c_X. " X
wa_it_objpack-head_start = 1.
wa_it_objpack-head_num = 1.
wa_it_objpack-body_start = 1.
wa_it_objpack-body_num = v_lines_bin.
wa_it_objpack-doc_type = text-001. "PDF
wa_it_objpack-obj_name = text-006. "SmartForm
CONCATENATE i_potitle '.pdf' INTO wa_it_objpack-obj_descr.
wa_it_objpack-doc_size = v_lines_bin * 255.
APPEND wa_it_objpack TO it_objpack.
Document information.
CLEAR wa_it_reclist.
e-mail receivers.
SELECT SINGLE smtp_addr FROM adr6 INTO v_mailaddr "#EC *
WHERE addrnumber = i_addrnum.
wa_it_reclist-receiver = v_mailaddr.
wa_it_reclist-express = c_X. " X
wa_it_reclist-rec_type = c_U. "U -> Internet address
APPEND wa_it_reclist TO it_reclist.
Sending Mail
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = w_doc_chng
put_in_outbox = c_X "X
COMMIT_WORK =
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = it_objpack
object_header = wa_objhead
contents_bin = it_objbin
contents_txt = it_objtxt
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
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 <> 0.
sy-msgid = text-008. "/fir/rp2p0bgsi_msg
sy-msgty = c_msgtype. " E
sy-msgno = 041.
sy-msgv1 = ' '.
sy-msgv2 = ' '.
sy-msgv3 = ' '.
sy-msgv4 = ' '.
EXIT.
ENDIF.
ENDIF.
ENDFUNCTION.
‎2008 Nov 24 6:58 AM
‎2008 Nov 24 7:00 AM
Before posting this u do a search in SDN. U will see lot many results for this.
Anyways check the below links.
http://www.uber-goober.com/forums/showthread.php?t=103107
‎2008 Nov 24 7:01 AM