‎2008 Jun 17 8:51 AM
Hi,
How do you send an email with multiple attachment of different types thru SO_NEW_DOCUMENT_ATT_SEND_API1?
Please help.
Tyken
‎2008 Jun 17 8:54 AM
&----
*& Report ZMULTIPLE_ATTACHMENT
*&
&----
*&
*&
&----
REPORT zmultiple_attachment.
DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.
DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA: objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.
DATA: doc_chng LIKE sodocchgi1.
DATA: tab_lines LIKE sy-tabix.
DATA: tab_lines1 LIKE sy-tabix.
*Creating the document to be sent
doc_chng-obj_name = 'OFFER'.
doc_chng-obj_descr = 'Auction of a Picasso jr'.
objtxt = 'Reserve price : $250000'.
APPEND objtxt.
objtxt = 'A reproduction of the painting to be auctioned'.
APPEND objtxt.
objtxt = 'is enclosed as an attachment.'.
APPEND objtxt.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
*Creating the entry for the compressed document
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.
*Creating the document attachment
*content for attachment 1.
*================================
objbin = 'ABC'. APPEND objbin.
objbin = 'ABC '. APPEND objbin.
objbin = 'ABC '. APPEND objbin.
DESCRIBE TABLE objbin LINES tab_lines.
*================================
*Creating the entry for the compressed attachment
*Entry for attachment 1.
*================================
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
*u201C starting line for attachment 1 in OBJBIN object
objpack-body_num = tab_lines.
*u201C total number of line for the attachment 1 in OBJBIN object.
objpack-doc_type = 'TXT'.
objpack-obj_name = 'ATTACHMENT1'.
objpack-obj_descr = 'ABC'.
objpack-doc_size = tab_lines * 255.
APPEND objpack..
*================================
*content for attachment 1.
*================================
objbin = 'XYZ'. APPEND objbin.
objbin = 'XYZ '. APPEND objbin.
objbin = 'XYZ '. APPEND objbin.
*================================
*Entry for attachment 1.
*================================
DESCRIBE TABLE objbin LINES tab_lines1.
tab_lines1 = tab_lines1 - tab_lines.
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = tab_lines + 1.
*u201C starting line for attachment 1 in OBJBIN object
objpack-body_num = tab_lines1.
*u201C total number of line for the attachment 1 in OBJBIN object.
objpack-doc_type = 'TXT'.
objpack-obj_name = 'ATTACHMENT2'.
objpack-obj_descr = 'XYZ'.
objpack-doc_size = tab_lines * 255.
APPEND objpack..
*Entering names in the distribution list
reclist-receiver = 'mailid'.
reclist-rec_type = 'U'.
APPEND reclist.
reclist-receiver = 'mailid'.
reclist-rec_type = 'B'.
APPEND reclist.
WRITE:/ 'BEFORE SENDING MAIL'.
LOOP AT reclist.
WRITE:/ reclist-receiver.
ENDLOOP.
*Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
receivers = reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
‎2008 Jun 17 9:36 AM
‎2008 Jun 17 9:49 AM
Hi,
Try this code.
This program will allowed you to send email with attachment.
First, specify the attachment file from your local hardisk and execute.
Next, specify the sender email address and click the send button.
Written by : SAP Basis, ABAP Programming and Other IMG Stuff
report y_cr17_mail.
data method1 like sy-ucomm.
data g_user like soudnamei1.
data g_user_data like soudatai1.
data g_owner like soud-usrnam.
data g_receipients like soos1 occurs 0 with header line.
data g_document like sood4 .
data g_header like sood2.
data g_folmam like sofm2.
data g_objcnt like soli occurs 0 with header line.
data g_objhead like soli occurs 0 with header line.
data g_objpara like selc occurs 0 with header line.
data g_objparb like soop1 occurs 0 with header line.
data g_attachments like sood5 occurs 0 with header line.
data g_references like soxrl occurs 0 with header line.
data g_authority like sofa-usracc.
data g_ref_document like sood4.
data g_new_parent like soodk.
data: begin of g_files occurs 10 ,
text(4096) type c,
end of g_files.
data : fold_number(12) type c,
fold_yr(2) type c,
fold_type(3) type c.
parameters ws_file(4096) type c default 'c:\debugger.txt'.
Can me any file fromyour pc ....either xls or word or ppt etc ...
g_user-sapname = sy-uname.
call function 'SO_USER_READ_API1'
exporting
user = g_user
PREPARE_FOR_FOLDER_ACCESS = ' '
importing
user_data = g_user_data
EXCEPTIONS
USER_NOT_EXIST = 1
PARAMETER_ERROR = 2
X_ERROR = 3
OTHERS = 4
.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
fold_type = g_user_data-outboxfol+0(3).
fold_yr = g_user_data-outboxfol+3(2).
fold_number = g_user_data-outboxfol+5(12).
clear g_files.
refresh : g_objcnt,
g_objhead,
g_objpara,
g_objparb,
g_receipients,
g_attachments,
g_references,
g_files.
method1 = 'SAVE'.
g_document-foltp = fold_type.
g_document-folyr = fold_yr.
g_document-folno = fold_number.
g_document-objtp = g_user_data-object_typ.
*g_document-OBJYR = '27'.
*g_document-OBJNO = '000000002365'.
*g_document-OBJNAM = 'MESSAGE'.
g_document-objdes = 'sap-img.com testing by program'.
g_document-folrg = 'O'.
*g_document-okcode = 'CHNG'.
g_document-objlen = '0'.
g_document-file_ext = 'TXT'.
g_header-objdes = 'sap-img.com testing by program'.
g_header-file_ext = 'TXT'.
call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
exporting
method = method1
office_user = sy-uname
ref_document = g_ref_document
new_parent = g_new_parent
importing
authority = g_authority
tables
objcont = g_objcnt
objhead = g_objhead
objpara = g_objpara
objparb = g_objparb
recipients = g_receipients
attachments = g_attachments
references = g_references
files = g_files
changing
document = g_document
header_data = g_header
FOLMEM_DATA =
RECEIVE_DATA =
.
File from the pc to send...
method1 = 'ATTCREATEFROMPC'.
g_files-text = ws_file.
append g_files.
call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
exporting
method = method1
office_user = g_owner
ref_document = g_ref_document
new_parent = g_new_parent
importing
authority = g_authority
tables
objcont = g_objcnt
objhead = g_objhead
objpara = g_objpara
objparb = g_objparb
recipients = g_receipients
attachments = g_attachments
references = g_references
files = g_files
changing
document = g_document
header_data = g_header
.
method1 = 'SEND'.
g_receipients-recnam = 'MK085'.
g_receipients-recesc = 'B'.
g_receipients-sndex = 'X'.
append g_receipients.
call function 'SO_DOCUMENT_REPOSITORY_MANAGER'
exporting
method = method1
office_user = g_owner
ref_document = g_ref_document
new_parent = g_new_parent
importing
authority = g_authority
tables
objcont = g_objcnt
objhead = g_objhead
objpara = g_objpara
objparb = g_objparb
recipients = g_receipients
attachments = g_attachments
references = g_references
files = g_files
changing
document = g_document
header_data = g_header.
*-- End of Program
Reward pts if usefull.
Regards,
Dhan