Report to Insert and Delete HR employee Data using OOPS
REPORT ztest_das8.
PARAMETERS: p_ee_old TYPE persno OBLIGATORY,
p_stras TYPE stras OBLIGATORY.
DATA: lt_errors TYPE hrpad_message_tab,
wa_error LIKE LINE OF lt_errors,
ls_pskey TYPE pskey,
lo_hrpa_infotype_access TYPE REF TO if_hrpa_plain_infotype_access,
lr_infty_operations TYPE REF TO cl_hrpad00_infty_operations,
lx_exc_infty_ops TYPE REF TO cx_hrpad00_infty_ops,
ls_message_itf LIKE LINE OF lx_exc_infty_ops->message_tab_itf,
lt_text_tab TYPE hrpad_text_tab,
ls_p0006_new TYPE p0006.
TRY.
cl_hrpad00_infty_operations=>get_instance(
IMPORTING
eo_infty_operations = lr_infty_operations ).
CATCH cx_root. "#EC NO_HANDLER
ENDTRY.
SELECT SINGLE * FROM pa0006 INTO @DATA(ls_p0006_old) WHERE pernr = @p_ee_old.
IF sy-subrc IS INITIAL.
ls_pskey-pernr = ls_p0006_old-pernr.
ls_pskey-infty = '0006'.
ls_pskey-subty = '1'.
ls_pskey-objps = ls_p0006_old-objps.
ls_pskey-sprps = ls_p0006_old-sprps.
ls_pskey-endda = ls_p0006_old-endda.
ls_pskey-begda = ls_p0006_old-begda.
ls_pskey-seqnr = ls_p0006_old-seqnr.
* Infotype Operation
TRY.
* Enqueue - Lock employee
TRY.
lr_infty_operations->if_hrpad00_infty_operations~enqueue_pernr(
EXPORTING iv_pernr = ls_p0006_old-pernr ).
* CATCH cx_hrpad00_infty_ops.
* Delete - Address (Old and Existing)
lr_infty_operations->delete(
EXPORTING
is_pskey = ls_pskey
iv_no_auth_check = abap_true ).
lr_infty_operations->commit( ).
TRY.
* Fill the data for Address
MOVE-CORRESPONDING ls_p0006_old TO ls_p0006_new.
ls_p0006_new-grpvl = '10'.
ls_p0006_new-stras = p_stras.
* Insert - Address (New)
lr_infty_operations->insert(
CHANGING
cs_pnnnn = ls_p0006_new
* cs_pref =
ct_text_tab = lt_text_tab )
.
* CATCH cx_hrpad00_infty_ops.
ENDTRY.
* Commit
lr_infty_operations->commit( ).
* Catch Exception
CATCH cx_hrpad00_infty_ops INTO lx_exc_infty_ops.
ENDTRY.
* Dequeue
TRY.
lr_infty_operations->if_hrpad00_infty_operations~dequeue_pernr(
EXPORTING iv_pernr = ls_p0006_new-pernr ).
* CATCH cx_hrpad00_infty_ops.
ENDTRY.
ENDTRY.
ENDIF.
cl_hrpa_masterdata_factory=>get_plain_infotype_access( IMPORTING plain_infotype_access = lo_hrpa_infotype_access ).
lo_hrpa_infotype_access->if_hrpa_buffer_control~flush( no_commit = abap_false ).
COMMIT WORK.
Wednesday, December 17, 2025
DeCouple Framework - ABAP HR - OOPS - Employee Delete/Insert
Subscribe to:
Comments (Atom)