Hire and Employee Data using OOABAP HR in SAP HCM (Decouple Framework)
REPORT ztest_123.
DATA li_iread TYPE REF TO if_hrpa_plain_infotype_access.
cl_hrpa_masterdata_factory=>get_plain_infotype_access(
IMPORTING plain_infotype_access = li_iread ).
" * Message handler
DATA lo_mhand TYPE REF TO if_hrpa_message_handler.
DATA lo_mlist TYPE REF TO cl_hrpa_message_list.
FREE lo_mlist.
CREATE OBJECT lo_mlist.
lo_mhand = lo_mlist.
DATA: ls_p0000 TYPE p0000,
ls_p0001 TYPE p0001,
ls_p0002 TYPE p0002,
ls_p0003 TYPE p0003,
ls_pnnnn_00 TYPE prelp,
ls_pnnnn_01 TYPE prelp,
ls_pnnnn_02 TYPE prelp,
lt_pnnnn TYPE prelp_tab,
lt_return_tab TYPE hrpad_return_tab,
lt_bapipakey_tab TYPE hrpad_bapipakey_tab,
lv_is_ok TYPE boole_d,
lt_modified_keys_tab TYPE hrpad_pskey_tab,
ls_bapipakey TYPE bapipakey.
CLASS lcl_test123 DEFINITION.
PUBLIC SECTION.
METHODS:
build_p0000 EXPORTING ex_pnnnn TYPE hrift_tt_data,
build_p0001 EXPORTING ex_pnnnn TYPE hrift_tt_data,
build_p0002 EXPORTING ex_pnnnn TYPE hrift_tt_data.
ENDCLASS.
CLASS lcl_test123 IMPLEMENTATION.
METHOD build_p0000.
DATA: ls_p0001 TYPE p0000,
ls_pnnnn TYPE prelp.
DATA: lt_p0000 TYPE STANDARD TABLE OF p0000 INITIAL SIZE 0.
ls_p0000-pernr = '00050002'.
ls_p0000-endda = '99991231'.
ls_p0000-begda = sy-datum.
ls_p0000-infty = '0000'.
ls_p0000-massn = '01'.
ls_p0000-massg = '01'.
ls_p0000-stat2 = '3'.
CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
EXPORTING
pnnnn = ls_p0000
IMPORTING
prelp = ls_pnnnn.
APPEND ls_pnnnn TO ex_pnnnn.
ENDMETHOD.
METHOD build_p0001.
DATA: ls_p0001 TYPE p0001,
ls_pnnnn TYPE prelp.
DATA: lt_p0001 TYPE STANDARD TABLE OF p0001 INITIAL SIZE 0.
ls_p0001-pernr = '00050002'.
ls_p0001-endda = '99991231'.
ls_p0001-begda = sy-datum.
ls_p0001-infty = '0001'.
ls_p0001-bukrs = '1000' ."'4181'.
ls_p0001-werks = '3010'. "ls_p0001-vdsk1 = 'AR01'.
ls_p0001-btrtl = '1001'. "'0001'.
ls_p0001-persg = '1'.
ls_p0001-persk = '01'. "'A0'.
ls_p0001-abkrs = '01'. "'99'.
ls_p0001-orgeh = '00000000'.
ls_p0001-plans = '99999999'.
ls_p0001-stell = '00000000'.
CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
EXPORTING
pnnnn = ls_p0001
IMPORTING
prelp = ls_pnnnn.
APPEND ls_pnnnn TO ex_pnnnn.
ENDMETHOD.
METHOD build_p0002.
DATA: ls_p0002 TYPE p0002,
ls_pnnnn TYPE prelp.
DATA: lt_p0002 TYPE STANDARD TABLE OF p0001 INITIAL SIZE 0.
ls_p0002-pernr = '00050002'.
ls_p0002-endda = '99991231'.
ls_p0002-begda = '19850101'.
ls_p0002-infty = '0002'.
ls_p0002-vorna = 'Samchand'.
ls_p0002-nachn = 'Browns'.
ls_p0002-begda = ls_p0002-gbdat = '19850101'.
ls_p0002-natio = 'AR'.
ls_p0002-sprsl = 'EN'.
ls_p0002-gesch = '1'.
ls_p0002-perid = '999999999'.
CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
EXPORTING
pnnnn = ls_p0002
IMPORTING
prelp = ls_pnnnn.
APPEND ls_pnnnn TO ex_pnnnn.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: lo_test123 TYPE REF TO lcl_test123.
CREATE OBJECT lo_test123.
lo_test123->build_p0000( IMPORTING ex_pnnnn = lt_pnnnn ).
lo_test123->build_p0001( IMPORTING ex_pnnnn = lt_pnnnn ).
lo_test123->build_p0002( IMPORTING ex_pnnnn = lt_pnnnn ).
TRY.
CALL FUNCTION 'HR_PAD_HIRE_EMPLOYEE'
EXPORTING
employeenumber = '00050002'
* REFERENCEPERNR =
hiringdate = sy-datum
actiontype = '01'
reasonforaction = '01'
pnnnn_tab = lt_pnnnn
* PREF_TAB =
nocommit = space
* IT_HIRE_FIELDNAMES =
IMPORTING
return_tab = lt_return_tab
bapipakey_tab = lt_bapipakey_tab
is_ok = lv_is_ok
modified_keys_tab = lt_modified_keys_tab.
CATCH cx_root.
ENDTRY.
COMMIT WORK.
0 comments:
Post a Comment