Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Sending email using Excel Attachment

Former Member
0 Likes
553

Experts,

i am writing a ode to send male by attachment. i will use so_new_document_attach_api modile to send.

i m sending and received email. but format is not correct.

what can we do ?

1 ACCEPTED SOLUTION
Read only

pintoo_d
Participant
0 Likes
528

refer thread for more information.check this thread

and excel, fields are separated by tab spaces... so after reading every field name, u need to separate them using tabspaces. ABAP has got inbuilt Method for it.

cl_abap_char_utilities=>horizontal_tab

for eg .

concatenate field1 field2 field3... into temp_variable separated by cl_abap_char_utilities=>horizontal_tab.

this works fine for everyrecord. after u done wth first record, then need to add carriage return line feed to go into next line.

cl_abap_char_utilities=>CR_LF.

hope u got this.

Pintoo

Experts,

i am writing a ode to send male by attachment. i will use so_new_document_attach_api modile to send.

i m sending and received email. but format is not correct.

what can we do ?

3 REPLIES 3
Read only

pintoo_d
Participant
0 Likes
529

refer thread for more information.check this thread

and excel, fields are separated by tab spaces... so after reading every field name, u need to separate them using tabspaces. ABAP has got inbuilt Method for it.

cl_abap_char_utilities=>horizontal_tab

for eg .

concatenate field1 field2 field3... into temp_variable separated by cl_abap_char_utilities=>horizontal_tab.

this works fine for everyrecord. after u done wth first record, then need to add carriage return line feed to go into next line.

cl_abap_char_utilities=>CR_LF.

hope u got this.

Pintoo

Read only

Former Member
0 Likes
528

Hi,

here is sample code.

DATA: LD_ERROR TYPE SY-SUBRC,

LD_RECIEVER TYPE SY-SUBRC,

LD_MTITLE TYPE SODOCCHGI1-OBJ_DESCR,

LD_EMAIL TYPE SOMLRECI1-RECEIVER,

LD_FORMAT TYPE SO_OBJ_TP ,

LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,

LD_ATTFILENAME TYPE SO_OBJ_DES ,

LD_SENDER_ADDRESS TYPE SOEXTRECI1-RECEIVER,

LD_SENDER_ADDRESS_TYPE TYPE SOEXTRECI1-ADR_TYP,

LD_RECEIVER TYPE SY-SUBRC.

DATA: IT_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

IT_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

IT_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

IT_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

GD_DOC_DATA LIKE SODOCCHGI1,

IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0,

GD_CNT TYPE I,

GD_SENT_ALL(1) TYPE C,

GD_ERROR TYPE SY-SUBRC.

DATA : NOTE TYPE STRING,

W_CNT TYPE I,

W_SENT_ALL(1) TYPE C,

WA_MESSAGE TYPE SOLISTI1,

W_DOC_DATA TYPE SODOCCHGI1,

WA_ATTACH TYPE SOLISTI1,

WA_PACKING_LIST TYPE SOPCKLSTI1,

WA_RECEIVERS TYPE SOMLRECI1,

T_RECEIVERS TYPE STANDARD TABLE OF SOMLRECI1,

T_ATTACHMENT TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0.

DATA: IT_ATTACH TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0.

LD_EMAIL = P_EMAIL.

LD_MTITLE = TIL.

LD_FORMAT = 'XLS'.

LD_ATTDESCRIPTION = 'Test.

LD_ATTFILENAME = 'Attachment'.

LD_SENDER_ADDRESS = 'SY-UNAME'.

LD_SENDER_ADDRESS_TYPE = 'U'.

  • Fill the document data.

W_DOC_DATA-DOC_SIZE = 1.

  • Populate the subject/generic message attributes

W_DOC_DATA-OBJ_LANGU = SY-LANGU.

W_DOC_DATA-OBJ_NAME = 'SAPRPT'.

W_DOC_DATA-OBJ_DESCR = LD_MTITLE .

W_DOC_DATA-SENSITIVTY = 'F'.

  • Fill the document data and get size of attachment

CLEAR W_DOC_DATA.

READ TABLE IT_ATTACH INTO WA_ATTACH INDEX W_CNT.

W_DOC_DATA-DOC_SIZE = ( W_CNT - 1 ) * 255 + STRLEN( WA_ATTACH ).

W_DOC_DATA-OBJ_LANGU = SY-LANGU.

W_DOC_DATA-OBJ_NAME = 'SAPRPT'.

W_DOC_DATA-OBJ_DESCR = LD_MTITLE.

W_DOC_DATA-SENSITIVTY = 'F'.

CLEAR T_ATTACHMENT.

REFRESH T_ATTACHMENT.

T_ATTACHMENT[] = IT_ATTACH[].

  • Describe the body of the message

CLEAR WA_PACKING_LIST.

REFRESH IT_PACKING_LIST.

WA_PACKING_LIST-TRANSF_BIN = SPACE.

WA_PACKING_LIST-HEAD_START = 1.

WA_PACKING_LIST-HEAD_NUM = 0.

WA_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE IT_MESSAGE LINES WA_PACKING_LIST-BODY_NUM.

WA_PACKING_LIST-DOC_TYPE = 'RAW'.

APPEND WA_PACKING_LIST TO IT_PACKING_LIST.

  • Create attachment notification

WA_PACKING_LIST-TRANSF_BIN = 'X'.

WA_PACKING_LIST-HEAD_START = 1.

WA_PACKING_LIST-HEAD_NUM = 1.

WA_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE T_ATTACHMENT LINES WA_PACKING_LIST-BODY_NUM.

WA_PACKING_LIST-DOC_TYPE = LD_FORMAT.

WA_PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION.

WA_PACKING_LIST-OBJ_NAME = LD_ATTFILENAME.

WA_PACKING_LIST-DOC_SIZE = WA_PACKING_LIST-BODY_NUM * 255.

APPEND WA_PACKING_LIST TO IT_PACKING_LIST.

  • Add the recipients email address

CLEAR WA_RECEIVERS.

REFRESH IT_RECEIVERS.

WA_RECEIVERS-RECEIVER = LD_EMAIL.

WA_RECEIVERS-REC_TYPE = 'U'.

WA_RECEIVERS-COM_TYPE = 'INT'.

WA_RECEIVERS-NOTIF_DEL = 'X'.

WA_RECEIVERS-NOTIF_NDEL = 'X'.

APPEND WA_RECEIVERS TO IT_RECEIVERS.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_DATA = W_DOC_DATA

PUT_IN_OUTBOX = 'X'

SENDER_ADDRESS = LD_SENDER_ADDRESS

SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE

COMMIT_WORK = 'X'

IMPORTING

SENT_TO_ALL = W_SENT_ALL

TABLES

PACKING_LIST = IT_PACKING_LIST

CONTENTS_BIN = T_ATTACHMENT

CONTENTS_TXT = IT_MESSAGE

RECEIVERS = IT_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.

Read only

Former Member
0 Likes
528

send ur attachment in hex_tab

always keep ur attach data in raw_data_typ_tables type solix

fill the packing list with correct attachment_name, type, size, starting_lin and numberof_lines

check transaction scot SMTP if there are any conversions (double klick smtp )

maybe paste ur code?

Regards

Stefan Seeburger