Hi SDNites,
I am using FM SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail. Mail is coming to my external mail is but the probelm is that the data that I am trying to put in attachment is appearing in mail body.
Here is the code I have writte,
DATA : lv_mail_lines LIKE sy-tabix.
DATA : lwa_doc_data TYPE sodocchgi1,
lwa_pcklist TYPE sopcklsti1,
lwa_receivers TYPE somlreci1,
lwa_contents_txt TYPE solisti1,
lwa_object_header TYPE solisti1.
DATA : lit_pcklist TYPE STANDARD TABLE OF sopcklsti1,
lit_receivers TYPE STANDARD TABLE OF somlreci1,
lt_contents_txt TYPE STANDARD TABLE OF solisti1,
lt_object_header TYPE STANDARD TABLE OF solisti1.
lwa_doc_data-obj_name = 'Error Record'.
lwa_doc_data-obj_descr = 'Error Record Description'.
lwa_doc_data-obj_langu = 'EN'.
*describe the body of the message
lwa_pcklist-transf_bin = space.
lwa_pcklist-head_start = 1.
lwa_pcklist-head_num = 0.
lwa_pcklist-body_start = 1.
lwa_pcklist-body_num = 255.
lwa_pcklist-doc_type = 'RAW'.
APPEND lwa_pcklist TO lit_pcklist.
*-----PDF Attachment
lwa_pcklist-transf_bin = 'X'.
lwa_pcklist-head_start = 1.
lwa_pcklist-head_num = 1.
lwa_pcklist-body_start = 1.
lwa_pcklist-doc_size = 255.
lwa_pcklist-body_num = 255.
lwa_pcklist-doc_type = 'TXT'.
lwa_pcklist-obj_name = 'Error Record'.
lwa_pcklist-obj_descr = 'Error Record Desc'.
lwa_pcklist-obj_langu = 'E'.
APPEND lwa_pcklist TO lit_pcklist.
Object header
lwa_object_header = 'myattachment'.
APPEND lwa_object_header TO lt_object_header.
Mail Contents
IF gv_flag_mail IS INITIAL.
CONCATENATE 'File'
gv_file_name
'not found in directory :'
'/Interface/In'
INTO gv_mail
SEPARATED BY space.
lwa_contents_txt-line = gv_mail.
APPEND lwa_contents_txt TO lt_contents_txt.
ELSE.
CONCATENATE 'File'
gv_file_name
'processed from directory :'
'/Interface/In. Attached is the error list'
INTO gv_mail
SEPARATED BY space.
lwa_contents_txt-line = gv_mail.
APPEND lwa_contents_txt TO lt_contents_txt.
ENDIF.
DESCRIBE TABLE lt_contents_txt LINES lv_mail_lines.
lwa_doc_data-doc_size = 2.
Receiver email-id
CLEAR lwa_receivers.
lwa_receivers-receiver = 'Exteranal Mail address'.
lwa_receivers-rec_type = 'U'.
APPEND lwa_receivers TO lit_receivers.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lwa_doc_data
put_in_outbox = 'X'
commit_work = 'X'
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
packing_list = lit_pcklist
object_header = lt_object_header
contents_bin = it_contents_bin
contents_txt = lt_contents_txt
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
receivers = lit_receivers
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.
Code written in a separate subroutine and BAPI errors are populated in it which is expected to show in attachement,
gwa_contents_bin-line = gv_file_record.
APPEND gwa_contents_bin TO it_contents_bin.
LOOP AT it_return INTO gwa_return.
gwa_contents_bin-line = gwa_return-message.
APPEND gwa_contents_bin TO it_contents_bin.
CLEAR : gwa_contents_bin,
gwa_return.
ENDLOOP.