Shared Top Border

Enterprise Resource
Planning Portal

 

Advertise | Founder BLOG

ERPGenie.COM ABAP Tips and Tricks Database

THE ultimate
ERP website

 

Forums | Vote for us |

Google    Other Search Options

Home arrow Sample Code arrow ABAP Reports arrow Sending EMail via ABAP
Sending EMail via ABAP PDF Print E-mail
User Rating: / 2
PoorBest 
Written by Kevin Wilson   
Monday, 26 February 2007
This sample function module provides an easy interface to SO_OBJECT_SEND enabling an easy emailing solution in ABAP. FUNCTION Z_SEND_EMAIL_ITAB.
*"----------------------------------------------------------------------=

*"*"Local interface:
*"       IMPORTING
*"             VALUE(APPLICATION) LIKE  SOOD1-OBJNAM
*"             VALUE(EMAILTITLE) LIKE  SOOD1-OBJDES
*"             VALUE(RECEXTNAM) LIKE  SOOS1-RECEXTNAM
*"       TABLES
*"              TEXTTAB STRUCTURE  SOLI
*"----------------------------------------------------------------------=


*- local data declaration
  DATA: OHD    LIKE SOOD1,
        OID    LIKE SOODK,
        TO_ALL LIKE SONV-FLAG,
        OKEY   LIKE SWOTOBJID-OBJKEY.
  DATA: BEGIN OF RECEIVERS OCCURS 0.
          INCLUDE STRUCTURE SOOS1.
  DATA: END OF RECEIVERS.

*- fill odh
  CLEAR OHD.
  OHD-OBJLA    =3D SY-LANGU.
  OHD-OBJNAM   =3D APPLICATION.
  OHD-OBJDES   =3D EMAILTITLE.
  OHD-OBJPRI   =3D 3.
  OHD-OBJSNS   =3D 'F'.
  OHD-OWNNAM   =3D SY-UNAME.

*- send Email
  CONDENSE RECEXTNAM NO-GAPS.
  CHECK RECEXTNAM <> SPACE AND RECEXTNAM CS '@'.

*- for every individual recipient send an Email
* (see OSS message 0120050409/0000362105/1999)
  WHILE RECEXTNAM CS ','.
    PERFORM INIT_REC TABLES RECEIVERS.
    READ TABLE RECEIVERS INDEX 1.
    RECEIVERS-RECEXTNAM =3D RECEXTNAM+0(SY-FDPOS).
    ADD 1 TO SY-FDPOS.
    SHIFT RECEXTNAM LEFT BY SY-FDPOS PLACES.
    MODIFY RECEIVERS INDEX 1.
    PERFORM SO_OBJECT_SEND_REC
     TABLES TEXTTAB RECEIVERS
      USING OHD.
  ENDWHILE.

*- check last recipient in recipient list
  IF RECEXTNAM <> SPACE.
    PERFORM INIT_REC TABLES RECEIVERS.
    READ TABLE RECEIVERS INDEX 1.
    RECEIVERS-RECEXTNAM =3D RECEXTNAM.
    MODIFY RECEIVERS INDEX 1.
    PERFORM SO_OBJECT_SEND_REC
     TABLES TEXTTAB RECEIVERS
      USING OHD.
  ENDIF.

ENDFUNCTION.

*---------------------------------------------------------------------*
*       FORM SO_OBJECT_SEND_REC                                       *
*---------------------------------------------------------------------*
FORM  SO_OBJECT_SEND_REC
TABLES  OBJCONT      STRUCTURE SOLI
        RECEIVERS    STRUCTURE SOOS1
USING   OBJECT_HD    STRUCTURE SOOD1.

  DATA:   OID     LIKE SOODK,
          TO_ALL  LIKE SONV-FLAG,
          OKEY    LIKE SWOTOBJID-OBJKEY.

  CALL FUNCTION 'SO_OBJECT_SEND'
       EXPORTING
            EXTERN_ADDRESS             =3D 'X'
            OBJECT_HD_CHANGE           =3D OBJECT_HD
            OBJECT_TYPE                =3D 'RAW'
            OUTBOX_FLAG                =3D 'X'
            SENDER                     =3D SY-UNAME
       IMPORTING
            OBJECT_ID_NEW              =3D OID
            SENT_TO_ALL                =3D TO_ALL
            OFFICE_OBJECT_KEY          =3D OKEY
       TABLES
            OBJCONT                    =3D OBJCONT
            RECEIVERS                  =3D RECEIVERS
       EXCEPTIONS
            ACTIVE_USER_NOT_EXIST      =3D 1
            COMMUNICATION_FAILURE      =3D 2
            COMPONENT_NOT_AVAILABLE    =3D 3
            FOLDER_NOT_EXIST           =3D 4
            FOLDER_NO_AUTHORIZATION    =3D 5
            FORWARDER_NOT_EXIST        =3D 6
            NOTE_NOT_EXIST             =3D 7
            OBJECT_NOT_EXIST           =3D 8
            OBJECT_NOT_SENT            =3D 9
            OBJECT_NO_AUTHORIZATION    =3D 10
            OBJECT_TYPE_NOT_EXIST      =3D 11
            OPERATION_NO_AUTHORIZATION =3D 12
            OWNER_NOT_EXIST            =3D 13
            PARAMETER_ERROR            =3D 14
            SUBSTITUTE_NOT_ACTIVE      =3D 15
            SUBSTITUTE_NOT_DEFINED     =3D 16
            SYSTEM_FAILURE             =3D 17
            TOO_MUCH_RECEIVERS         =3D 18
            USER_NOT_EXIST             =3D 19
            X_ERROR                    =3D 20
            OTHERS                     =3D 21.
  IF SY-SUBRC <> 0.
    RAISE OTHERS.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM INIT_REC                                                 *
*---------------------------------------------------------------------*
FORM INIT_REC TABLES RECEIVERS STRUCTURE SOOS1.
  CLEAR RECEIVERS.
  REFRESH RECEIVERS.
  MOVE SY-DATUM  TO RECEIVERS-RCDAT .
  MOVE SY-UZEIT  TO RECEIVERS-RCTIM.
  MOVE '1'       TO RECEIVERS-SNDPRI.
  MOVE 'X'       TO RECEIVERS-SNDEX.
  MOVE 'U-'      TO RECEIVERS-RECNAM.
  MOVE 'U'       TO RECEIVERS-RECESC.
  MOVE 'INT'     TO RECEIVERS-SNDART.
  MOVE '5'       TO RECEIVERS-SORTCLASS.
  APPEND RECEIVERS.
ENDFORM.

Related Items:

 
< Prev   Next >

Google Search

Google Ads

Shared Bottom Border

Contact Us | Polls | Add URL | Contribute | Privacy | Terms | Feedback

Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum
GenieHoldings.COM, Inc. | Genie Press | WorkflowGenie | ESAGenie | ERPTopSites | ABAP Tips and Tricks | SAP Solutions Database

EDIGenie | Searching Survivor