cancel
Showing results for 
Search instead for 
Did you mean: 

wdabap auto mail sending

Former Member
0 Kudos

Hi

i have requirement like this employee can change the emergency details online like phone num etc. when he upteted his details the auto mail should go to hr.

to send a mail how to write the logic.

can anybody help me.

Thanks in advance

Revathi

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi All

Thank U very much . I ill try it out . if i get any doubts i ll post u.

Currenrtly i am working on ESS module i am new to this module can any body send me documents.

Thanks in advance

Former Member
0 Kudos

Hi Kavitha,

Please go through the below link also for furthur details:

Regards,

Prakash.

Former Member
0 Kudos

Hi kavitha,

Please refer following code .I have used jung's blog for this and its running very well.Here if you wil see the code i am sending an internal table in ecel format on an email id with some message.


 DATA: l_text1  TYPE char255. " Text
  DATA: l_lines TYPE i,
        l_size  TYPE  sood-objlen. " Size of Attachment
  DATA lo_message_manager    TYPE REF TO if_wd_message_manager.
  DATA lo_api_controller     TYPE REF TO if_wd_controller.
  lo_api_controller ?= wd_this->wd_get_api( ).
  lo_message_manager = lo_api_controller->get_message_manager( ).
 
* Mail related
  DATA: i_content TYPE   soli_tab, " Mail content
        i_attach  TYPE   soli_tab. " Attachment
 
  DATA: l_send_request    TYPE REF TO    cl_bcs,  " E-Mail Send Request
        l_document        TYPE REF TO    cl_document_bcs,  " E-Mail Attachment
        l_recipient       TYPE REF TO    if_recipient_bcs, " Distribution List
        l_sender          TYPE REF TO    if_sender_bcs,  " Address of Sender
        l_uname           TYPE           salrtdrcpt,  " Sender Name(SY-UNAME)
        l_bcs_exception   TYPE REF TO    cx_document_bcs, " BCS Exception
        l_addr_exception  TYPE REF TO    cx_address_bcs,  " Address Exception
        l_send_exception  TYPE REF TO    cx_send_req_bcs. " E-Mail sending Exception
*        l_SO_OBJECT_MIME_GET type ref to SO_OBJECT_MIME_GET.
 
  DATA: l_recipient_soos  TYPE  soos1.
 
  DATA: lv_i_with_error_screen TYPE os_boolean.
  DATA: lv_result TYPE os_boolean.
 
  CONSTANTS: c_tab(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,  " Tab Character
             c_cr(1)  TYPE c VALUE cl_abap_char_utilities=>cr_lf, " Line Feed for End-Of_line
             c_ext    TYPE soodk-objtp VALUE 'XLS'. " XLS Extension
 
  DATA p_uname TYPE so_dir_ext .
  p_uname = 'sumit.goenka -avaya.co.in'.
 
* Preparing body of the Mail
  MOVE 'Please execute the trade given in the attached excel file' TO l_text1.
  APPEND l_text1 TO i_content.
  MOVE '' TO l_text1.
  APPEND l_text1 TO i_content.
  MOVE '' TO l_text1.
  APPEND l_text1 TO i_content.
  MOVE 'Warm Regards SAP' TO  l_text1.
  APPEND l_text1 TO i_content.
 
* Preparing contents of attachment with Change Log
 
  FIELD-SYMBOLS: <lfs_table> TYPE ANY,    " Internal table structure
                 <lfs_con> TYPE ANY.      " Field Content
  DATA: l_text TYPE char1024.    " Text content for mail attachment
  DATA: l_con(50) TYPE c.        " Field Content in character format
 
 
* Columns to be tab delimeted
  LOOP AT detail ASSIGNING <lfs_table>.
    DO.
      ASSIGN COMPONENT sy-index OF STRUCTURE <lfs_table>
             TO <lfs_con>.
      IF sy-subrc NE 0.
        CONCATENATE c_cr l_text INTO l_text.
        APPEND l_text TO i_attach.
        EXIT.
      ELSE.
        CLEAR: l_con.
        MOVE <lfs_con> TO l_con.
        CONDENSE l_con.
        IF sy-index = 1.
          CLEAR: l_text.
          MOVE l_con TO l_text.
        ELSE.
          CONCATENATE l_text l_con INTO l_text
             SEPARATED BY c_tab.
        ENDIF.
      ENDIF.
    ENDDO.
  ENDLOOP.
 
 
* Creates persistent send request
  TRY.
      l_send_request = cl_bcs=>create_persistent( ).
 
* Creating Document
      l_document = cl_document_bcs=>create_document(
                                    i_type  = 'RAW'
                                    i_text  = i_content[]
                                    i_subject = 'Buy / Sell Order' ).
 
      DESCRIBE TABLE detail LINES l_lines.
* Size to multiplied by 2 for UNICODE enabled systems
      l_size = l_lines * 2 * 255.
 
* Adding Attachment
      CALL METHOD l_document->add_attachment
        EXPORTING
          i_attachment_type    = c_ext
          i_attachment_size    = l_size
          i_attachment_subject = 'Buy Sell Order Detail'
          i_att_content_text   = i_attach[].
 
* Add document to send request
      CALL METHOD l_send_request->set_document( l_document ).
 
* Get Sender Object
      l_uname = sy-uname.
 
      l_sender = cl_sapuser_bcs=>create( l_uname ).
 
      CALL METHOD l_send_request->set_sender
        EXPORTING
          i_sender = l_sender.
 
* E-Mail
      TRANSLATE p_uname TO UPPER CASE.
 
      l_recipient_soos-recesc = 'U'.
      l_recipient_soos-recextnam = p_uname.
 
* Preparing recepient from SAP Logon Name
      CALL METHOD cl_send_request_bcs=>create_recipient_from_soos1
        EXPORTING
          i_soos1 = l_recipient_soos
        RECEIVING
          result  = l_recipient.
 
* Add Recipient
      CALL METHOD l_send_request->add_recipient
        EXPORTING
          i_recipient  = l_recipient
          i_express    = 'U'
          i_copy       = ' '
          i_blind_copy = ' '
          i_no_forward = ' '.
 
*Trigger E-Mail immediately
      l_send_request->set_send_immediately( 'X' ).
 
      CALL METHOD l_send_request->send( lv_result ).
      IF lv_result IS INITIAL.
*       *    report message
        CALL METHOD lo_message_manager->REPORT_SUCCESS
          EXPORTING
            message_text = 'Mail sent successfully '.
      ENDIF.                                                              .
 
      COMMIT WORK.
 
    CATCH cx_document_bcs INTO l_bcs_exception.
 
    CATCH cx_send_req_bcs INTO l_send_exception.
 
    CATCH cx_address_bcs  INTO l_addr_exception.
 
  ENDTRY.

If you have any doubt then feel free to ask.

regards

PG

Former Member
0 Kudos

hi,

sending mail is same,

DATA: IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0 WITH HEADER LINE,

GD_DOC_DATA LIKE SODOCCHGI1.

DATA: IT_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

IT_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

GD_SENT_ALL(1) TYPE C,

IT_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.

APPEND 'The Following Materails Have Error Records' TO IT_MESSAGE.

APPEND '==========================================' TO IT_MESSAGE.

  • LOOP AT ITAB_EMAIL.

*

  • CONCATENATE ITAB_EMAIL-MATERIAL ' : ' ITAB_EMAIL-ERROR_MSG INTO IT_MESSAGE.

  • APPEND IT_MESSAGE.

*

  • ENDLOOP.

CONCATENATE 'name' ':' ' ' INTO IT_MESSAGE.

APPEND IT_MESSAGE.

  • FILL THE DOCUMENT DATA.

GD_DOC_DATA-DOC_SIZE = 1.

  • POPULATE THE SUBJECT/GENERIC MESSAGE ATTRIBUTES

GD_DOC_DATA-OBJ_LANGU = SY-LANGU.

GD_DOC_DATA-OBJ_NAME = 'SAPRPT'.

GD_DOC_DATA-OBJ_DESCR = ' Material Master Creation Error Log'.

GD_DOC_DATA-SENSITIVTY = 'F'.

  • DESCRIBE THE BODY OF THE MESSAGE

CLEAR IT_PACKING_LIST.

REFRESH IT_PACKING_LIST.

IT_PACKING_LIST-TRANSF_BIN = SPACE.

IT_PACKING_LIST-HEAD_START = 1.

IT_PACKING_LIST-HEAD_NUM = 0.

IT_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE IT_MESSAGE LINES IT_PACKING_LIST-BODY_NUM.

IT_PACKING_LIST-DOC_TYPE = 'RAW'.

APPEND IT_PACKING_LIST.

  • ADD THE RECIPIENTS EMAIL ADDRESS

CLEAR IT_RECEIVERS.

REFRESH IT_RECEIVERS.

IT_RECEIVERS-RECEIVER = ' '. " Email Address to be appended here.

IT_RECEIVERS-REC_TYPE = 'U'.

IT_RECEIVERS-COM_TYPE = 'INT'.

IT_RECEIVERS-NOTIF_DEL = 'X'.

IT_RECEIVERS-NOTIF_NDEL = 'X'.

APPEND IT_RECEIVERS.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = GD_DOC_DATA

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

IMPORTING

SENT_TO_ALL = GD_SENT_ALL

TABLES

PACKING_LIST = IT_PACKING_LIST

CONTENTS_TXT = IT_MESSAGE

RECEIVERS = IT_RECEIVERS

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

DOCUMENT_TYPE_NOT_EXIST = 3

OPERATION_NO_AUTHORIZATION = 4

PARAMETER_ERROR = 5

X_ERROR = 6

ENQUEUE_ERROR = 7

OTHERS = 8.

Yogesh N

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

Yogesh N, please note that using the old send API function modules is obsolete. You should really only be using the CL_BCS classes now.

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

There is nothing Web Dynpro specific about sending an Email from ABAP. This is a general capability of ABAP that can be used regardless of the UI technology. Here is a blog that gives you some background on sending emails from ABAP: