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

email

Former Member
0 Likes
801

Hi guru.

Can u tell me how to do mail after creating the sales order.

Best Regards.

Pravin

5 REPLIES 5
Read only

Former Member
0 Likes
779

Hi,

use the below code for Email

DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.

DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.

DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.

DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.

DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.

DATA: DOC_CHNG LIKE SODOCCHGI1.

DOC_CHNG-OBJ_NAME = 'TEST'.

DOC_CHNG-OBJ_DESCR = 'Test-Dokument fur API1 Test'(001).

OBJTXT = 'Mindestgebot : $250000'.

APPEND OBJTXT.

OBJTXT = 'Eine Abbildung des zur Versteigerung stehenden Bildes'.

APPEND OBJTXT.

OBJTXT = 'wurde als Anlage beigefugt.'.

APPEND OBJTXT.

DESCRIBE TABLE OBJTXT LINES TAB_LINES.

READ TABLE OBJTXT INDEX TAB_LINES.

DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).

  • * ERSTELLEN DES EINTRAGS ZUM KOMPRIMIERTEN DOKUMENT

CLEAR OBJPACK-TRANSF_BIN.

OBJPACK-HEAD_START = 1.

OBJPACK-HEAD_NUM = 0.

OBJPACK-BODY_START = 1.

OBJPACK-BODY_NUM = TAB_LINES.

OBJPACK-DOC_TYPE = 'RAW'.

APPEND OBJPACK.

  • * ERSTELLEN DER ANLAGE FUR DAS DOKUMENT

OBJBIN = '\O/ '. APPEND OBJBIN.

OBJBIN = ' '. APPEND OBJBIN.

OBJBIN = ' / \ '. APPEND OBJBIN.

DESCRIBE TABLE OBJBIN LINES TAB_LINES.

OBJHEAD = 'picasso.txt'. APPEND OBJHEAD.

  • * Erstellen des Eintrags zur komprimierten Anlage

OBJPACK-TRANSF_BIN = 'X'.

OBJPACK-HEAD_START = 1.

OBJPACK-HEAD_NUM = 1.

OBJPACK-BODY_START = 1.

OBJPACK-BODY_NUM = TAB_LINES.

OBJPACK-DOC_TYPE = 'TXT'.

OBJPACK-OBJ_NAME = 'ANLAGE'.

OBJPACK-OBJ_DESCR = 'Abbildung Objekt 138'.

OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND OBJPACK.

  • * Fullen der Empfangerliste

RECLIST-RECEIVER = SY-UNAME.

RECLIST-REC_TYPE = 'B'.

APPEND RECLIST.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOC_CHNG

PUT_IN_OUTBOX = 'X'

TABLES

PACKING_LIST = OBJPACK

OBJECT_HEADER = OBJHEAD

CONTENTS_BIN = OBJBIN

CONTENTS_TXT = OBJTXT

RECEIVERS = RECLIST

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

OPERATION_NO_AUTHORIZATION = 4

OTHERS = 99.

Regards

Sreeni

Read only

Former Member
0 Likes
779

Hi,

Refer to the link below:

http://sapdev.co.uk/reporting/email/emailhome.htm

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

Former Member
0 Likes
779

Hi,

ABAP CODE
* Email ITAB structure

DATA: BEGIN OF EMAIL_ITAB OCCURS 10.

        INCLUDE STRUCTURE SOLI.

DATA: END OF EMAIL_ITAB.

 

DATA: T_EMAIL LIKE SOOS1-RECEXTNAM.  "EMail distribution list

CONSTANTS: C_EMAIL_DISTRIBUTION LIKE SOOS1-RECEXTNAM VALUE

       
 

* Initialization

REFRESH EMAIL_ITAB.

 

* Populate data

EMAIL_ITAB-LINE = ‘Email body text 1’.

APPEND EMAIL_ITAB.

EMAIL_ITAB-LINE = ‘Email body text 2’.

APPEND EMAIL_ITAB.

 

T_EMAIL = C_EMAIL_DISTRIBUTION.

 

* --- EMAIL FUNCTION ---------------------------------------------------

* REQUIRMENTS:

* 1) The user running the program needs a valid email address in their

*    address portion of tx SU01 under external comms -> SMTP -> internet

*    address.

* 2) A job called SAP_EMAIL is running with the following parameters:

*    Program: RSCONN01  Variant: INT   User: XXX

*    This program moves mail from the outbox to the mail server using

*    RFC destination: SAP_INTERNET_GATEWAY_SERVER

* INTERFACE:

* 1) APPLICATION: Anything

* 2) EMAILTITLE:  EMail subject

* 3) RECEXTNAM:   EMail distribution lists separated by commas

* 4) TEXTTAB:     Internal table for lines of the email message

* EXCEPTIONS:

* Send OK = 0 otherwise there was a problem with the send.

* ----------------------------------------------------------------------

    CALL FUNCTION 'Z_SEND_EMAIL_ITAB'

         EXPORTING

              APPLICATION = 'EMAIL'

              EMAILTITLE  = 'Email Subject'

              RECEXTNAM   = T_EMAIL

         TABLES

              TEXTTAB     = EMAIL_ITAB

         EXCEPTIONS

              OTHERS      = 1.

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    = SY-LANGU.

  OHD-OBJNAM   = APPLICATION.

  OHD-OBJDES   = EMAILTITLE.

  OHD-OBJPRI   = 3.

  OHD-OBJSNS   = 'F'.

  OHD-OWNNAM   = 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 = 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 = 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             = 'X'

            OBJECT_HD_CHANGE           = OBJECT_HD

            OBJECT_TYPE                = 'RAW'

            OUTBOX_FLAG                = 'X'

            SENDER                     = SY-UNAME

       IMPORTING

            OBJECT_ID_NEW              = OID

            SENT_TO_ALL                = TO_ALL

            OFFICE_OBJECT_KEY          = OKEY

       TABLES

            OBJCONT                    = OBJCONT

            RECEIVERS                  = RECEIVERS

       EXCEPTIONS

            ACTIVE_USER_NOT_EXIST      = 1

            COMMUNICATION_FAILURE      = 2

            COMPONENT_NOT_AVAILABLE    = 3

            FOLDER_NOT_EXIST           = 4

            FOLDER_NO_AUTHORIZATION    = 5

            FORWARDER_NOT_EXIST        = 6

            NOTE_NOT_EXIST             = 7

            OBJECT_NOT_EXIST           = 8

            OBJECT_NOT_SENT            = 9

            OBJECT_NO_AUTHORIZATION    = 10

            OBJECT_TYPE_NOT_EXIST      = 11

            OPERATION_NO_AUTHORIZATION = 12

            OWNER_NOT_EXIST            = 13

            PARAMETER_ERROR            = 14

            SUBSTITUTE_NOT_ACTIVE      = 15

            SUBSTITUTE_NOT_DEFINED     = 16

            SYSTEM_FAILURE             = 17

            TOO_MUCH_RECEIVERS         = 18

            USER_NOT_EXIST             = 19

            X_ERROR                    = 20

            OTHERS                     = 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.

Read only

Former Member
0 Likes
779

hi,

please find below a sample code

DATA: lwa_hd_change TYPE sood1,

lt_objcont TYPE STANDARD TABLE OF soli,

lwa_objcont TYPE soli,

lt_receivers TYPE STANDARD TABLE OF soos1,

lwa_receivers TYPE soos1 ,

lt_att_cont TYPE STANDARD TABLE OF soli,

lwa_att_cont TYPE soli,

lt_packing TYPE STANDARD TABLE OF soxpl,

lwa_packing TYPE soxpl,

lf_sent TYPE sonv-flag,

lf_size TYPE i.

CONSTANTS: lc_obj(11) TYPE c VALUE 'BOM',

lc_lang(1) TYPE c VALUE 'E',

lc_raw(3) TYPE c VALUE 'RAW',

lc_net(1) TYPE c VALUE 'U',

lc_mail(4) TYPE c VALUE 'MAIL',

lc_xls(3) TYPE c VALUE 'XLS',

lc_ext(3) TYPE c VALUE 'EXT'.

  • Passing values to the strutures used in SO_OBJECT_SEND function module

  • Passing object name and description of the attachment

lwa_hd_change-objla = lc_lang.

lwa_hd_change-objnam = lc_obj.

lwa_hd_change-objdes = text-t35.

lwa_hd_change-objlen = 255.

  • Passing mail body

lwa_objcont-line = text-t29.

APPEND lwa_objcont TO lt_objcont.

CLEAR lwa_objcont.

  • Passing reeceiver details

  • lwa_receivers-recextnam = text-t31.

lwa_receivers-recextnam = p_id2.

lwa_receivers-recesc = lc_net.

lwa_receivers-sndart = lc_mail.

lwa_receivers-sndex = 'X'.

lwa_receivers-sndpri = 1.

lwa_receivers-mailstatus = 'E'.

APPEND lwa_receivers TO lt_receivers.

CLEAR lwa_receivers.

  • lwa_receivers-recextnam = text-t30.

lwa_receivers-recextnam = p_id1.

lwa_receivers-recesc = lc_net.

lwa_receivers-sndart = lc_mail.

lwa_receivers-sndex = 'X'.

lwa_receivers-sndpri = 1.

lwa_receivers-mailstatus = 'E'.

APPEND lwa_receivers TO lt_receivers.

CLEAR lwa_receivers.

  • Passing values for the attachment file

LOOP AT gt_output INTO gwa_output.

CONCATENATE gf_lf gwa_output-matnr gf_etb gwa_output-idnrk gf_etb

gwa_output-type gf_etb gwa_output-menge gf_etb

gwa_output-meins gf_etb gwa_output-comp gf_etb

INTO lwa_att_cont-line.

APPEND lwa_att_cont TO lt_att_cont.

CLEAR lwa_att_cont.

ENDLOOP.

CHECK lt_att_cont IS NOT INITIAL.

  • Passing attachment details

DESCRIBE TABLE lt_att_cont LINES lf_size.

lwa_packing-transf_bin = ' '.

lwa_packing-head_start = 1.

lwa_packing-head_num = 0.

lwa_packing-body_start = 1.

lwa_packing-body_num = lf_size.

lwa_packing-file_ext = lc_xls.

lwa_packing-objlen = lf_size * 255.

lwa_packing-objtp = lc_ext.

lwa_packing-objdes = text-t35.

lwa_packing-objnam = lc_obj.

APPEND lwa_packing TO lt_packing.

CLEAR lwa_packing.

  • FM to send email to the intended recipients

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

object_hd_change = lwa_hd_change

object_type = lc_raw

IMPORTING

sent_to_all = lf_sent

TABLES

objcont = lt_objcont

receivers = lt_receivers

packing_list = lt_packing

att_cont = lt_att_cont

EXCEPTIONS

active_user_not_exist = 1

communication_failure = 2

component_not_available = 3

folder_not_exist = 4

folder_no_authorization = 5

forwarder_not_exist = 6

note_not_exist = 7

object_not_exist = 8

object_not_sent = 9

object_no_authorization = 10

object_type_not_exist = 11

operation_no_authorization = 12

owner_not_exist = 13

parameter_error = 14

substitute_not_active = 15

substitute_not_defined = 16

system_failure = 17

too_much_receivers = 18

user_not_exist = 19

originator_not_exist = 20

x_error = 21

OTHERS = 22.

IF sy-subrc = 0.

MESSAGE s004 WITH text-t34.

ENDIF.

reward points if useful

regards

sandhya

Read only

Former Member
0 Likes
779

Hi,

1.

2.

3.

4.

these link wil help you

reward if usefull

MNGowda