‎2010 Dec 08 3:30 AM
Hi,
I want to send the internal table through email.
I do not want to change the format of the internal table.
Pls send me the sample code how to do this.
Thanks,
Raju
Moderator message: please (re)search yourself first.
Edited by: Thomas Zloch on Dec 8, 2010 9:37 AM
‎2010 Dec 08 4:42 AM
hi raj,
you want to send the internal table data through mail right?
please brief your question..
thanks,
guna
‎2010 Dec 08 4:45 AM
I am not sure about your exact requirement but try this code..
DATA:LTAB_HTMLTABLE TYPE STANDARD TABLE OF W3HTML,
LTAB_COLHEAD TYPE STANDARD TABLE OF W3HEAD,
ITAB_FIELDS TYPE STANDARD TABLE OF W3FIELDS.
DATA:LCL_RECIPIENT TYPE REF TO IF_RECIPIENT_BCS,
LCL_BCS TYPE REF TO CL_BCS,
LCL_DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
LCX_BCS TYPE REF TO CX_BCS,
LFLAG_SENT_TO_ALL
TYPE OS_BOOLEAN,
LTAB_TEXTMAIL TYPE SOLI_TAB,
LWA_TEXT TYPE SOLI,
L_EMAIL TYPE ADR6-SMTP_ADDR.
DATA:L_LANGU TYPE SY-LANGU,
LFLAG_ADRSFOUND TYPE CHAR01.
DATA: L_FIELDPOS TYPE W3HEAD-NR.
DATA: L_IDX TYPE N LENGTH 2 VALUE 1.
DATA: L_COLHEADER TYPE W3HEAD-TEXT.
DATA: L_SUBJECT TYPE CHAR50.
DATA: IT_CONTENT TYPE STANDARD TABLE OF STRING,
WA_CONTENT TYPE STRING.
CONSTANTS:
LC_COLHEADERS TYPE I VALUE 2,
LC_HEADER(11) TYPE C VALUE 'Subject',
LC_HEADER01(10) TYPE C VALUE 'Header1',
LC_HEADER02(10) TYPE C VALUE 'Header2'.
L_LANGU = SY-LANGU.
CLEAR L_SUBJECT.
* Subject
CONCATENATE LC_HEADER '(' SY-DATUM+0(4) '/'
SY-DATUM+4(2) '/' SY-DATUM+6(2) ')'
INTO L_SUBJECT.
WA_CONTENT = 'TEST MAIL'.
APPEND WA_CONTENT TO IT_CONTENT.
IF NOT IT_CONTENT IS INITIAL.
DO LC_COLHEADERS TIMES.
IF L_IDX = 1.
L_COLHEADER = LC_HEADER01.
ELSEIF L_IDX = 2.
L_COLHEADER = LC_HEADER02.
ENDIF.
L_FIELDPOS = L_IDX.
CALL FUNCTION 'WWW_ITAB_TO_HTML_HEADERS'
EXPORTING
FIELD_NR = L_FIELDPOS
TEXT = L_COLHEADER
TABLES
HEADER = LTAB_COLHEAD.
ADD 1 TO L_IDX.
ENDDO.
* Creation of html table for content
CALL FUNCTION 'WWW_ITAB_TO_HTML'
* EXPORTING
* all_fields = 'X'
TABLES
HTML = LTAB_HTMLTABLE
ROW_HEADER = LTAB_COLHEAD
FIELDS = ITAB_FIELDS
ITABLE = IT_CONTENT.
REFRESH:
LTAB_TEXTMAIL.
CLEAR:LWA_TEXT.
INSERT LWA_TEXT INTO TABLE LTAB_TEXTMAIL.
CLEAR:LWA_TEXT.
INSERT LWA_TEXT INTO TABLE LTAB_TEXTMAIL.
APPEND LINES OF LTAB_HTMLTABLE TO LTAB_TEXTMAIL.
CLEAR:LWA_TEXT.
INSERT LWA_TEXT INTO TABLE LTAB_TEXTMAIL.
INSERT LWA_TEXT INTO TABLE LTAB_TEXTMAIL.
INSERT LWA_TEXT INTO TABLE LTAB_TEXTMAIL.
* Creation of document
TRY.
LCL_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = 'HTM'
I_TEXT = LTAB_TEXTMAIL
I_SUBJECT = L_SUBJECT
).
CATCH CX_BCS INTO LCX_BCS.
ENDTRY.
TRY.
LCL_BCS = CL_BCS=>CREATE_PERSISTENT( ).
CATCH CX_BCS INTO LCX_BCS.
ENDTRY.
CLEAR:
LFLAG_ADRSFOUND.
* Set Mail ID
IF LFLAG_ADRSFOUND IS INITIAL.
L_EMAIL = 'test at gmail dot com'.
TRY.
LCL_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
L_EMAIL
).
CATCH CX_BCS INTO LCX_BCS.
ENDTRY.
TRY.
CALL METHOD LCL_BCS->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = LCL_RECIPIENT
I_EXPRESS = 'X'.
CATCH CX_BCS INTO LCX_BCS.
ENDTRY.
ENDIF.
TRY.
CALL METHOD LCL_BCS->SET_DOCUMENT( LCL_DOCUMENT ).
CATCH CX_BCS INTO LCX_BCS.
ENDTRY.
TRY.
* Method for sending mail immediately
CALL METHOD LCL_BCS->SET_SEND_IMMEDIATELY( 'X' ).
* Sending Mail
CALL METHOD LCL_BCS->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = LFLAG_SENT_TO_ALL
).
CATCH CX_BCS INTO LCX_BCS.
ENDTRY.
COMMIT WORK.
ENDIF.