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.
DATA: lo_document TYPE REF TO cl_document_bcs VALUE IS INITIAL.
DATA : i_text TYPE bcsy_text. 
DATA : w_text LIKE LINE OF i_text. 
DATA: lo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL. 
DATA: lo_recipient TYPE REF TO if_recipient_bcs VALUE IS INITIAL. 

PARAMETERS : p_email TYPE adr6-smtp_addr. 
PARAMETERS: p_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_document( lo_document ).


  TRY.
      lo_sender = cl_sapuser_bcs=>create( sy-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_address( p_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.
    DATA: WORKITEM_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.

    CLEAR: LV_WID_TEXT, WF_ID_TEXT, WORKITEM_ID.
    WORKITEM_ID = LCL_V_WI_ID.

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

    CLEAR : ZBANFN, LS_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




Turn off default MS Word Editor in Smartforms SAP S/4HANA

Fix SMARTFORMS and SE71 Access Issue in S/4HANA - Enhancement Solution Fix SMARTFORMS and SE71 Access Issue in S/...