Application Development 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: 

How to insert table in an e-mail

Former Member
0 Kudos

Hi,

I am new in ABAP. My requirement is that i have to send an automatic mail which contains a table. I have to send this table in mail body itself, not as an attachment. And i tried this by appending my field values in i_contents_text which is like solisti1. I concatenated all field values and then appended. But the problem is in formatting. It is not showing the values in proper table. Moreover the no. of columns to display in the mail may get change according to requirements, so i cant fix the size of uline(tried in case of manual formatting) , allignment of fields is necessary. And last thing is that its not possible to concatenate field values other than characters, or numeric text etc. So how would i write all values in table.

Please suggest.

Thanks and Regards.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Puneet,

here an example:

TABLES: MARA.

  • --- Parameter für SO_DOCUMENT_SEND_API1

DATA: OBJ_PACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

OBJ_BIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

OBJ_TXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

REC_LIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

DOC_DATA LIKE SODOCCHGI1.

*

DATA: ITAB_LINES LIKE SY-TABIX.

DATA: strlen LIKE SY-TABIX.

*

DATA: BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

BRGEW LIKE MARA-BRGEW,

END OF ITAB.

*

DATA: BRGEW(18).

*

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

*

START-OF-SELECTION.

*

SELECT MATNR MTART FROM MARA INTO TABLE ITAB UP TO 100 ROWS.

*

DESCRIBE TABLE ITAB LINES ITAB_LINES.

*

PERFORM EMAIL.

*

END-OF-SELECTION.

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

FORM EMAIL.

*

  • email füllen

  • Betreff-Zeile

CLEAR: DOC_DATA.

DOC_DATA-OBJ_NAME = SY-REPID.

DOC_DATA-OBJ_DESCR = 'Materialdaten'.

  • Empfängerliste

  • email-User (U)

CLEAR REC_LIST.

REC_LIST-RECEIVER = 'test@test.de'. "email address

REC_LIST-REC_TYPE = 'U'.

APPEND REC_LIST.

*

  • PACKING_LIST: 1. Zeile gilt immer für email-Inhalt

CLEAR OBJ_PACK.

OBJ_PACK-BODY_START = 01.

OBJ_PACK-BODY_NUM = ITAB_LINES.

OBJ_PACK-DOC_TYPE = 'RAW'.

APPEND OBJ_PACK.

*

*emailinhalt

LOOP AT ITAB.

CLEAR: OBJ_TXT.

WRITE: ITAB-BRGEW TO BRGEW.

CONCATENATE ITAB-MATNR ITAB-MTART BRGEW INTO OBJ_TXT-LINE.

APPEND OBJ_TXT.

strlen = strlen( OBJ_TXT-LINE ).

OBJ_TXT-LINE = sy-uline(strlen).

APPEND OBJ_TXT.

ENDLOOP.

*

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOC_DATA

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = OBJ_PACK

CONTENTS_TXT = OBJ_TXT

RECEIVERS = REC_LIST

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.

EXIT.

ENDIF.

WAIT UP TO 2 SECONDS.

*

SUBMIT RSCONN01 WITH MODE = 'INT'

WITH OUTPUT = ' '

AND RETURN.

*

ENDFORM. "EMAIL

Hope it helps.

Regards, Dieter

5 REPLIES 5

Former Member
0 Kudos

Hi,

If you want to send the table as attached Excel sheet, I have an abap for you.

Regards,

Dieu

Former Member
0 Kudos

hi

good

go through this link,hope this ll help you solve your problem

/people/gregor.wolf3/blog/2005/10/02/inbound-mail-processing-150-attach-files-to-opportunity

thanks

mrutyun^

Former Member
0 Kudos

Hi Puneet,

here an example:

TABLES: MARA.

  • --- Parameter für SO_DOCUMENT_SEND_API1

DATA: OBJ_PACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

OBJ_BIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

OBJ_TXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

REC_LIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

DOC_DATA LIKE SODOCCHGI1.

*

DATA: ITAB_LINES LIKE SY-TABIX.

DATA: strlen LIKE SY-TABIX.

*

DATA: BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

BRGEW LIKE MARA-BRGEW,

END OF ITAB.

*

DATA: BRGEW(18).

*

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

*

START-OF-SELECTION.

*

SELECT MATNR MTART FROM MARA INTO TABLE ITAB UP TO 100 ROWS.

*

DESCRIBE TABLE ITAB LINES ITAB_LINES.

*

PERFORM EMAIL.

*

END-OF-SELECTION.

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

FORM EMAIL.

*

  • email füllen

  • Betreff-Zeile

CLEAR: DOC_DATA.

DOC_DATA-OBJ_NAME = SY-REPID.

DOC_DATA-OBJ_DESCR = 'Materialdaten'.

  • Empfängerliste

  • email-User (U)

CLEAR REC_LIST.

REC_LIST-RECEIVER = 'test@test.de'. "email address

REC_LIST-REC_TYPE = 'U'.

APPEND REC_LIST.

*

  • PACKING_LIST: 1. Zeile gilt immer für email-Inhalt

CLEAR OBJ_PACK.

OBJ_PACK-BODY_START = 01.

OBJ_PACK-BODY_NUM = ITAB_LINES.

OBJ_PACK-DOC_TYPE = 'RAW'.

APPEND OBJ_PACK.

*

*emailinhalt

LOOP AT ITAB.

CLEAR: OBJ_TXT.

WRITE: ITAB-BRGEW TO BRGEW.

CONCATENATE ITAB-MATNR ITAB-MTART BRGEW INTO OBJ_TXT-LINE.

APPEND OBJ_TXT.

strlen = strlen( OBJ_TXT-LINE ).

OBJ_TXT-LINE = sy-uline(strlen).

APPEND OBJ_TXT.

ENDLOOP.

*

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOC_DATA

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = OBJ_PACK

CONTENTS_TXT = OBJ_TXT

RECEIVERS = REC_LIST

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.

EXIT.

ENDIF.

WAIT UP TO 2 SECONDS.

*

SUBMIT RSCONN01 WITH MODE = 'INT'

WITH OUTPUT = ' '

AND RETURN.

*

ENDFORM. "EMAIL

Hope it helps.

Regards, Dieter

Former Member
0 Kudos

Hi Puneet,

problem solved?

regards, Dieter

0 Kudos

Hi Dieter,

Thanks a lot for your help, but my problem was solved before you sent that that soln, i used some different method and its working fine. Even then thanks a lot for spending your precious time in solving my problem.

Regards

Puneet.