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




ABAP CDS View Part 10 : Authorization & DCL untuk ABAP CDS

Authorization & DCL di ABAP CDS | Panduan Lengkap (PFCG, @AccessControl, DCL) Authorization & DCL untuk ABAP CDS — Pandua...