Monday, 11 October 2021

SAP ABAP - Send Email

 REPORT ztest_email.


*Prepare Mail Object
DATA:  lo_send_request TYPE REF TO cl_bcs VALUE IS INITIAL.
CLASS cl_bcs DEFINITION LOAD.
DATAlo_document TYPE REF TO cl_document_bcs VALUE IS INITIAL.
DATA i_text TYPE bcsy_text
DATA w_text LIKE LINE OF i_text
DATAlo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL
DATAlo_recipient TYPE REF TO if_recipient_bcs VALUE IS INITIAL

PARAMETERS p_email TYPE adr6-smtp_addr
PARAMETERSp_sub TYPE char50
PARAMETERS p_send AS CHECKBOX

START-OF-SELECTION.
  lo_send_request cl_bcs=>create_persistent).

  w_text-line 'Testing Email'.
  APPEND w_text TO i_text.
  CLEAR w_text.
  w_text-line 'Testing email 2'.
  APPEND w_text TO i_text.
  CLEAR w_text.
  lo_document cl_document_bcs=>create_document
  i_type 'TXT' 
  i_text =  i_text 
  i_subject p_sub )

  lo_send_request->set_documentlo_document ).


  TRY.
      lo_sender cl_sapuser_bcs=>createsy-uname )"sender is the logged in user
* Set sender to send request
      lo_send_request->set_sender(
      EXPORTING
      i_sender lo_sender ).
  ENDTRY.

**Set recipient
  lo_recipient cl_cam_address_bcs=>create_internet_addressp_email )
  TRY.
      lo_send_request->add_recipient(
          EXPORTING
          i_recipient lo_recipient
          i_express 'X' ).
  ENDTRY.

  TRY.
      CALL METHOD lo_send_request->set_send_immediately
        EXPORTING
          i_send_immediately p_send
  ENDTRY.
  TRY.

      lo_send_request->send(
      EXPORTING
      i_with_error_screen 'X' ).
      COMMIT WORK.
      IF sy-subrc 0
        WRITE :'Mail sent'.
      ENDIF.
  ENDTRY.

Sunday, 3 October 2021

SAP ABAP - Custom Class For Send Email Notification From Purchase Requisition Workflow

 




Method AFTER_WI_CREATED


  METHOD AFTER_WI_CREATED.
    DATAWORKITEM_ID   TYPE SWR_STRUCT-WORKITEMID,
          LT_CONTAINER  TYPE TABLE OF SWR_CONT,
          LS_CONTAINER  TYPE SWR_CONT,
          ZBANFN        TYPE BANFN,
          LSEBAN        TYPE EBAN,
          LCL_V_WI_ID   TYPE SWW_WIID,  "Work Item ID
          WF_ID         TYPE SWW_WIID,
          LV_WID_TEXT   TYPE CHAR12,
          WF_ID_TEXT    TYPE CHAR50,
          SEND_REQUEST  TYPE REF TO CL_BCS,
          TEXT          TYPE BCSY_TEXT,
          BODY_TEXT     TYPE SO_TEXT255,
          DOCUMENT      TYPE REF TO CL_DOCUMENT_BCS,
          SENDER        TYPE REF TO CL_SAPUSER_BCS,
          RECIPIENT     TYPE REF TO IF_RECIPIENT_BCS,
          BCS_EXCEPTION TYPE REF TO CX_BCS,
          SENT_TO_ALL   TYPE OS_BOOLEAN,
          ZRELCODE      TYPE CHAR2.

    CALL METHOD WI_CONTEXT->GET_WORKITEM_ID
      RECEIVING
        RE_WORKITEM LCL_V_WI_ID.

    CLEARLV_WID_TEXTWF_ID_TEXTWORKITEM_ID.
    WORKITEM_ID LCL_V_WI_ID.

    CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'
      EXPORTING
        WORKITEM_ID      WORKITEM_ID
      TABLES
        SIMPLE_CONTAINER LT_CONTAINER.

    CLEAR ZBANFNLS_CONTAINER.
    READ TABLE LT_CONTAINER INTO LS_CONTAINER WITH KEY ELEMENT '_WI_COMP_EVENT_OBJKEY'.

    IF SY-SUBRC 0.
      ZBANFN LS_CONTAINER-VALUE.
      CLEAR LSEBAN.
      SELECT SINGLE FROM EBAN INTO LSEBAN WHERE BANFN ZBANFN.
      IF LSEBAN-BANPR '08'"PR Rejected
        CLEAR LS_CONTAINER.
        READ TABLE LT_CONTAINER INTO LS_CONTAINER WITH KEY ELEMENT 'RELEASECODE'.
        ZRELCODE LS_CONTAINER-VALUE.

        IF ZRELCODE IS NOT INITIAL.
*          Send Email PR Rejected
        ENDIF.
      ELSEIF LSEBAN-BANPR '05'.
        ZBANFN LS_CONTAINER-VALUE.

        CLEAR LS_CONTAINER.
        READ TABLE LT_CONTAINER INTO LS_CONTAINER WITH KEY ELEMENT '_WI_COMP_EVENT_NAME'.
        IF LS_CONTAINER-VALUE 'SIGNIFICANTLYCHANGED'.
        ELSE.
*          Send Email Notification PR Release Completed
        ENDIF.
      ENDIF.
    ENDIF.

  ENDMETHOD.


Call This Class From Workflow (SWDD)  WS00000038 step Release requisition on Program Exits Tab




Belajar SAP ABAP RAP

  Belajar SAP ABAP RAP: Pengenalan dan Konsep Dasar Restful ABAP Programming Model Kalau kamu seorang ABAPer yang mulai terjun ke dunia SAP...