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

Send excel file as attachment

Former Member
0 Likes
1,160

Hi

I need to know which FM I have to use for sending an email to non-sap system from a internal table to an excel file as attachment. (Please it's urgent)

Thanks in advance.

Regards,

Tokio

Points reward

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,001

Use FM : SO_NEW_DOCUMENT_ATT_SEND_API1

Reward Points if it is useful

Thanks

Seshu

Hi

I need to know which FM I have to use for sending an email to non-sap system from a internal table to an excel file as attachment. (Please it's urgent)

Thanks in advance.

Regards,

Tokio

Points reward

9 REPLIES 9
Read only

Former Member
0 Likes
1,002

Use FM : SO_NEW_DOCUMENT_ATT_SEND_API1

Reward Points if it is useful

Thanks

Seshu

Read only

Former Member
0 Likes
1,001

Example Program : report zmail_0003.

data: itcpo like itcpo,

tab_lines like sy-tabix.

  • Variables for EMAIL functionality

data: maildata like sodocchgi1.

data: mailpack like sopcklsti1 occurs 2 with header line.

data: mailhead like solisti1 occurs 1 with header line.

data: mailbin like solisti1 occurs 10 with header line.

data: mailtxt like solisti1 occurs 10 with header line.

data: mailrec like somlrec90 occurs 0 with header line.

data: solisti1 like solisti1 occurs 0 with header line.

perform send_form_via_email.

************************************************************************

  • FORM SEND_FORM_VIA_EMAIL *

************************************************************************

form send_form_via_email.

clear: maildata, mailtxt, mailbin, mailpack, mailhead, mailrec.

refresh: mailtxt, mailbin, mailpack, mailhead, mailrec.

  • Creation of the document to be sent File Name

maildata-obj_name = 'TEST'.

  • Mail Subject

maildata-obj_descr = 'Subject'.

  • Mail Contents

mailtxt-line = 'Here is your file'.

append mailtxt.

  • Prepare Packing List

perform prepare_packing_list.

  • Set recipient - email address here!!!

mailrec-receiver = '[email protected]'.

mailrec-rec_type = 'U'.

append mailrec.

  • Sending the document

call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'

exporting

document_data = maildata

put_in_outbox = ' '

tables

packing_list = mailpack

object_header = mailhead

contents_bin = mailbin

contents_txt = mailtxt

receivers = mailrec

exceptions

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

others = 99.

endform.

************************************************************************

  • Form PREPARE_PACKING_LIST

************************************************************************

form prepare_packing_list.

clear: mailpack, mailbin, mailhead.

refresh: mailpack, mailbin, mailhead.

describe table mailtxt lines tab_lines.

read table mailtxt index tab_lines.

maildata-doc_size = ( tab_lines - 1 ) * 255 + strlen( mailtxt ).

  • Creation of the entry for the compressed document

clear mailpack-transf_bin.

mailpack-head_start = 1.

mailpack-head_num = 0.

mailpack-body_start = 1.

mailpack-body_num = tab_lines.

mailpack-doc_type = 'RAW'.

append mailpack.

mailhead = 'TEST.TXT'.

append mailhead.

  • File 1

mailbin = 'This is file 1'.

append mailbin.

describe table mailbin lines tab_lines.

mailpack-transf_bin = 'X'.

mailpack-head_start = 1.

mailpack-head_num = 1.

mailpack-body_start = 1.

mailpack-body_num = tab_lines.

mailpack-doc_type = 'TXT'.

mailpack-obj_name = 'TEST1'.

mailpack-obj_descr = 'Subject'.

mailpack-doc_size = tab_lines * 255.

append mailpack.

Reward Points if it is helpful

Thanks

Seshu

Read only

0 Likes
1,001

Hi Seshu

I test your code lines but just in FM I receive an exception:

document_not_sent

is there something that I miss? Could you help me?

Regards

Tokio

Read only

0 Likes
1,001

See the below program

************************************************************************

    • Table Declarations

************************************************************************

TABLES: SOLI.

************************************************************************

    • Data Declarations

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS: SAPID RADIOBUTTON GROUP ADDR,

EMAIL_ID RADIOBUTTON GROUP ADDR.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECT-OPTIONS: ID FOR SOLI-LINE NO INTERVALS.

SELECT-OPTIONS: CC FOR SOLI-LINE NO INTERVALS.

SELECT-OPTIONS: BCC FOR SOLI-LINE NO INTERVALS.

*PARAMETERS: SENDER LIKE SOUD-USRNAM.

SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-009.

PARAMETERS: SUB_LINE(60) TYPE C.

SELECTION-SCREEN END OF BLOCK B3.

SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-008.

SELECT-OPTIONS: TEXT1 FOR SOLI-LINE NO INTERVALS.

SELECTION-SCREEN END OF BLOCK B4.

SELECTION-SCREEN BEGIN OF BLOCK B5 WITH FRAME TITLE TEXT-009.

SELECTION-SCREEN BEGIN OF LINE.

parameters: P_ATTACH as checkbox.

selection-screen comment 3(30) text-010.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B5.

DATA: MAIL_CONTENT LIKE SOLI OCCURS 0 WITH HEADER LINE,

SUBJECT_LINE LIKE SOOD1-OBJDES.

************************************************************************

    • Start of program processing

************************************************************************

START-OF-SELECTION.

    • Get the Body of the Message from the selection screen or from

    • calling program

LOOP AT TEXT1.

MOVE TEXT1-LOW TO MAIL_CONTENT-LINE.

APPEND MAIL_CONTENT.

ENDLOOP.

    • Subject of the Message

MOVE SUB_LINE TO SUBJECT_LINE.

    • call a routine to send the workflow message

PERFORM SEND_EMAIL

TABLES MAIL_CONTENT

USING SUBJECT_LINE.

&----


*& Form SEND_EMAIL

&----


  • Send Workflow message

----


FORM SEND_EMAIL TABLES OBJCONT STRUCTURE MAIL_CONTENT

USING TITLE LIKE SOOD-OBJDES.

DATA: RECEIVERS LIKE SOOS1 OCCURS 0 WITH HEADER LINE,

TSOOD1 LIKE SOOD1,

PACKING_LIST LIKE SOXPL OCCURS 0 WITH HEADER LINE,

OBJCONT1 LIKE MAIL_CONTENT OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF AT_HEADER OCCURS 1.

INCLUDE STRUCTURE SOLI.

DATA: END OF AT_HEADER.

CLEAR: TSOOD1,

RECEIVERS.

REFRESH RECEIVERS.

MOVE: SY-LANGU TO TSOOD1-OBJLA,

'Email Notice' TO TSOOD1-OBJNAM,

'C' TO TSOOD1-OBJSNS,

TITLE TO TSOOD1-OBJDES.

  • 'SCHIAVONIR' TO TSOOD1-OWNNAM.

    • loop through each ID and move them to recipient table

LOOP AT ID.

TRANSLATE ID-LOW TO UPPER CASE.

IF SAPID = 'X'.

MOVE: SY-DATUM TO RECEIVERS-RCDAT,

SY-UZEIT TO RECEIVERS-RCTIM,

' ' TO RECEIVERS-RECESC,

ID-LOW TO RECEIVERS-RECNAM,

'X' TO RECEIVERS-SNDEX.

ELSE.

MOVE: SY-DATUM TO RECEIVERS-RCDAT,

SY-UZEIT TO RECEIVERS-RCTIM,

'U' TO RECEIVERS-RECESC,

'U-' TO RECEIVERS-RECNAM,

ID-LOW TO RECEIVERS-RECEXTNAM.

ENDIF.

APPEND RECEIVERS.

CLEAR RECEIVERS.

ENDLOOP.

    • loop through each CC and move them to recipient table

LOOP AT CC.

TRANSLATE CC-LOW TO UPPER CASE.

IF SAPID = 'X'.

MOVE: SY-DATUM TO RECEIVERS-RCDAT,

SY-UZEIT TO RECEIVERS-RCTIM,

' ' TO RECEIVERS-RECESC,

CC-LOW TO RECEIVERS-RECNAM,

'X' TO RECEIVERS-SNDEX,

'X' TO RECEIVERS-SNDCP.

ELSE.

MOVE: SY-DATUM TO RECEIVERS-RCDAT,

SY-UZEIT TO RECEIVERS-RCTIM,

'U' TO RECEIVERS-RECESC,

'U-' TO RECEIVERS-RECNAM,

CC-LOW TO RECEIVERS-RECEXTNAM,

'X' TO RECEIVERS-SNDCP.

ENDIF.

APPEND RECEIVERS.

CLEAR RECEIVERS.

ENDLOOP.

    • loop through each BCC and move them to recipient table

LOOP AT BCC.

TRANSLATE BCC-LOW TO UPPER CASE.

IF SAPID = 'X'.

MOVE: SY-DATUM TO RECEIVERS-RCDAT,

SY-UZEIT TO RECEIVERS-RCTIM,

' ' TO RECEIVERS-RECESC,

BCC-LOW TO RECEIVERS-RECNAM,

'X' TO RECEIVERS-SNDEX,

'X' TO RECEIVERS-SNDBC.

ELSE.

MOVE: SY-DATUM TO RECEIVERS-RCDAT,

SY-UZEIT TO RECEIVERS-RCTIM,

'U' TO RECEIVERS-RECESC,

'U-' TO RECEIVERS-RECNAM,

BCC-LOW TO RECEIVERS-RECEXTNAM,

'X' TO RECEIVERS-SNDBC.

ENDIF.

APPEND RECEIVERS.

CLEAR RECEIVERS.

ENDLOOP.

AT_HEADER = SY-DATUM.

APPEND AT_HEADER.

AT_HEADER = SY-UZEIT.

APPEND AT_HEADER.

  • IF SENDER EQ SPACE.

  • SENDER = SY-UNAME.

  • ENDIF.

IF P_ATTACH EQ 'X'.

PACKING_LIST-HEAD_START = 1.

PACKING_LIST-HEAD_NUM = 2.

PACKING_LIST-BODY_START = 1.

PACKING_LIST-BODY_NUM = 9999.

PACKING_LIST-FILE_EXT = 'TXT'.

APPEND PACKING_LIST.

CLEAR PACKING_LIST.

APPEND LINES OF OBJCONT TO OBJCONT1.

REFRESH OBJCONT.

ENDIF.

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

OBJECT_HD_CHANGE = TSOOD1

OBJECT_TYPE = 'RAW'

TABLES

OBJCONT = OBJCONT

RECEIVERS = RECEIVERS

ATT_HEAD = AT_HEADER

ATT_CONT = OBJCONT1

PACKING_LIST = PACKING_LIST

EXCEPTIONS

ACTIVE_USER_NOT_EXIST = 1

COMMUNICATION_FAILURE = 2

COMPONENT_NOT_AVAILABLE = 3

FOLDER_NOT_EXIST = 4

FOLDER_NO_AUTHORIZATION = 5

FORWARDER_NOT_EXIST = 6

NOTE_NOT_EXIST = 7

OBJECT_NOT_EXIST = 8

OBJECT_NOT_SENT = 9

OBJECT_NO_AUTHORIZATION = 10

OBJECT_TYPE_NOT_EXIST = 11

OPERATION_NO_AUTHORIZATION = 12

OWNER_NOT_EXIST = 13

PARAMETER_ERROR = 14

SUBSTITUTE_NOT_ACTIVE = 15

SUBSTITUTE_NOT_DEFINED = 16

SYSTEM_FAILURE = 17

TOO_MUCH_RECEIVERS = 18

USER_NOT_EXIST = 19

X_ERROR = 20

OTHERS = 21.

ENDFORM. " SEND_EMAIL

Read only

0 Likes
1,001

mailrec-receiver = SAP USER ID

mailrec-rec_type = 'B'.

append mailrec.

now see you get any mail to ur sap inbox.

Reward Points if it is helpful

Thanks

Seshu

Read only

0 Likes
1,001

Seshu, Thanks to you

I received a mail into my SAP inbox but I need to send an email outside SAP, form example [email protected].

Thanks

Tokio

Read only

0 Likes
1,001

You need to set up in ur user profile and then change rec type as U.

GOTO SU01 transaction and see the user profile,

Read only

Former Member
0 Likes
1,001

Hi,

Please check this link for sample codes.

http://www.sapdevelopment.co.uk/reporting/email/attachhome.htm

Regards,

Ferry Lianto

Read only

Former Member
0 Likes
1,001

Thanks for all answering

It was a basis configuration