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