Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Creating a Business Object

Hi All,

I am creating a new Business Object from the scratch.

Its not any subtye neither copy..

Method part is over.

Now I need to create the events. I have created 1 and want it to be triggered at a particular transaction action (Even the transaction is newly created i.e. Z-transaction and event is to be triggered at save button)

What steps I need to follow ??

<b>Any pointer in this regard will be highly appreciated..</b>

Thanks in advance..

Regards,

Ashish

Former Member
replied

In your Trasaction Code program trigger event by using FM SWE_EVENT_CREATE

Check the code below

Check the Code below it is with SWE_EVENT_CREATE.

<b>Reward Points if useful</b>

FUNCTION zwf_process_trip.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(I_EMP_NUMBER) TYPE PERNR_D

*" VALUE(I_EMP_TRIP) TYPE REINR

*"----


INCLUDE <cntn01> .

DATA:i_emp_details TYPE STANDARD TABLE OF p0001, "Employee Details

wa_request TYPE p0001, "Workarea for Employee details

v_country_grp TYPE molga, "Country SubGrouping

v_object_key TYPE sweinstcou-objkey. "Key for the buisness object ZWOBUSTRIP

CONSTANTS: c_bo_trip TYPE swo_objtyp VALUE 'ZWOBUSTRIP',

c_event_trip TYPE swo_event VALUE 'TripCreate',

c_infy_type_1 TYPE infty VALUE '0001'.

  • Event Container declaration

swc_container i_event_cont.

swc_create_container i_event_cont.

  • Reading the INFO TYPE 0001 to obtain the

  • Employee details

CALL FUNCTION 'HR_READ_INFOTYPE'

EXPORTING

pernr = i_emp_number

infty = c_infy_type_1

begda = sy-datum

endda = sy-datum

TABLES

infty_tab = i_emp_details

EXCEPTIONS

infty_not_found = 1

OTHERS = 2.

  • SY-SUBRC check is not required as the error

  • handelling will be done by WorkFlow rule

  • resolution.

CLEAR wa_request.

READ TABLE i_emp_details INTO wa_request INDEX 1.

IF sy-subrc = 0.

  • Retrieving the Country SubGrouping for the employee

SELECT SINGLE molga

FROM t001p

INTO v_country_grp

WHERE werks = wa_request-werks

AND btrtl = wa_request-persk.

ENDIF.

  • Sending the relevant data to event container

swc_set_element i_event_cont 'EmpId' i_emp_number.

IF sy-subrc <> 0.

  • No Processing needed.

ENDIF.

swc_set_element i_event_cont 'PersonnelArea' wa_request-werks.

IF sy-subrc <> 0.

  • No Processing needed.

ENDIF.

swc_set_element i_event_cont 'CountryGrouping' v_country_grp.

IF sy-subrc <> 0.

  • No Processing needed.

ENDIF.

swc_set_element i_event_cont 'EmpSubGrp' wa_request-persk.

IF sy-subrc <> 0.

  • No Processing needed.

ENDIF.

swc_set_element i_event_cont 'EmpTripId' i_emp_trip.

IF sy-subrc <> 0.

  • No Processing needed.

ENDIF.

  • Raising the event to trigger the workflow

v_object_key = i_emp_number.

CALL FUNCTION 'SWE_EVENT_CREATE'

EXPORTING

objtype = c_bo_trip

objkey = v_object_key

event = c_event_trip

TABLES

event_container = i_event_cont

EXCEPTIONS

objtype_not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • No Processing needed.

ENDIF.

COMMIT WORK.

ENDFUNCTION.

0 View this answer in context
Not what you were looking for? View more on this topic or Ask a question