FUNCTION Z_BAPI_SEND_MAIL_IBSP.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(P_MAIL) TYPE E_EMAIL OPTIONAL
*" VALUE(P_SUBJECT) TYPE SO_OBJ_DES OPTIONAL
*" VALUE(P_MSG) TYPE ETMESSAGE OPTIONAL
*" EXPORTING
*" VALUE(RETURN) TYPE BAPIRETURN1
*"----------------------------------------------------------------------
data: lwa_objpack type sopcklsti1, "Contents of the Email
li_objpack type standard table of sopcklsti1,
lwa_reclist type somlreci1, "Recievers List
li_reclist type standard table of somlreci1,
lwa_doc_chng type sodocchgi1, "Mail Contents
lv_line like sy-tabix, "Email Params
objtxt like solisti1 occurs 10 with header line.
constants : lc_space type c value ' ',
lc_1(15) type n value '1', "Email Params
lc_raw(3) type c value 'RAW', "Email Params
lc_u type c value 'U', "Recipient Property
lc_01 type c value '1',
lc_x type c value 'X'.
data: gv_id type string.
clear: p_subject, p_msg, p_mail.
* Filling Mail Contents
lwa_doc_chng-obj_name = 'E-Mail'.
lwa_doc_chng-obj_descr = 'Subject of the mail'.
objtxt = 'Hello Sir'.
append objtxt.
clear gv_id.
* To generate random IDs SPAN
*and inform customer about the ID
perform Generate_booking_id changing gv_id.
objtxt = gv_id.
append objtxt.
objtxt = 'Mail body text'.
append objtxt.
objtxt = ' '.
append objtxt.
objtxt = 'Thanks and Regards'.
append objtxt.
objtxt = 'Sender Name'.
append objtxt.
describe table objtxt lines lv_line.
read table objtxt index lv_line transporting no fields.
lwa_doc_chng-doc_size = ( lv_line - 1 ) * 255 + strlen( objtxt ).
* Pack to main body
lwa_objpack-body_start = lc_1.
lwa_objpack-head_start = lc_1.
lwa_objpack-head_num = '0'.
lwa_objpack-body_num = lv_line.
lwa_objpack-doc_type = lc_raw.
append lwa_objpack to li_objpack.
translate p_mail to lower case.
* Fill receiver list
lwa_reclist-receiver = 'someone@domain.com'.
lwa_reclist-rec_type = lc_u.
append lwa_reclist to li_reclist.
call function 'SO_DOCUMENT_SEND_API1'
exporting
document_data = lwa_doc_chng
put_in_outbox = lc_x
commit_work = lc_x
tables
packing_list = li_objpack
contents_txt = objtxt
receivers = li_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.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
if sy-subrc = 0.
call function 'BAPI_TRANSACTION_COMMIT'.
endif.
*&---------------------------------------------------------------------*
*& Form GENERATE_BOOKING_ID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GV_ID text
*----------------------------------------------------------------------*
FORM GENERATE_BOOKING_ID CHANGING P_GV_ID.
data: lv_idchar(100) type c.
CONCATENATE 'ABCDEFGHJKLMNPQRSTUVWXYZ'
'123456789'
INTO lv_idchar.
CALL FUNCTION 'RSEC_GENERATE_PASSWORD'
EXPORTING
alphabet = lv_idchar
alphabet_length = 0
force_init = ' '
output_length = 10
downwards_compatible = ' '
IMPORTING
output = p_gv_id
EXCEPTIONS
some_error = 1.
ENDFORM. " GENERATE_BOOKING_ID
ENDFUNCTION.
Wednesday, July 7, 2010
Custom FM to send Email
Labels:
FMs n Programs

0 comments:
Post a Comment