Friday, April 25, 2025

DeCouple Framework - ABAP HR - OOPS - Employee Data Hire (New)

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: