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

Internal table through mail

Former Member
0 Likes
639

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

2 REPLIES 2
Read only

Former Member
0 Likes
603

hi raj,

you want to send the internal table data through mail right?

please brief your question..

thanks,

guna

Read only

0 Likes
603

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.