From dd77c9930fa02801cfea60eb9d614825616049f6 Mon Sep 17 00:00:00 2001 From: ellima Date: Wed, 10 Jul 2024 21:38:42 +0200 Subject: [PATCH] BGQC: Add support for Background Processing Context (#6974) Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> Co-authored-by: Lars Hvam Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- .../aff/zcl_abapgit_aff_registry.clas.abap | 1 + .../aff/zcl_abapgit_object_bgqc.clas.abap | 49 +++++++++++++++++++ .../aff/zcl_abapgit_object_bgqc.clas.xml | 16 ++++++ 3 files changed, 66 insertions(+) create mode 100644 src/objects/aff/zcl_abapgit_object_bgqc.clas.abap create mode 100644 src/objects/aff/zcl_abapgit_object_bgqc.clas.xml diff --git a/src/objects/aff/zcl_abapgit_aff_registry.clas.abap b/src/objects/aff/zcl_abapgit_aff_registry.clas.abap index 137813909..0e8070081 100644 --- a/src/objects/aff/zcl_abapgit_aff_registry.clas.abap +++ b/src/objects/aff/zcl_abapgit_aff_registry.clas.abap @@ -46,6 +46,7 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION. METHOD initialize_registry_table. + register( 'BGQC' ). register( 'CDBO' ). register( 'CHKC' ). register( 'CHKO' ). diff --git a/src/objects/aff/zcl_abapgit_object_bgqc.clas.abap b/src/objects/aff/zcl_abapgit_object_bgqc.clas.abap new file mode 100644 index 000000000..b046604b4 --- /dev/null +++ b/src/objects/aff/zcl_abapgit_object_bgqc.clas.abap @@ -0,0 +1,49 @@ +CLASS zcl_abapgit_object_bgqc DEFINITION + PUBLIC + INHERITING FROM zcl_abapgit_object_common_aff FINAL + CREATE PUBLIC. + + PUBLIC SECTION. + METHODS zif_abapgit_object~changed_by REDEFINITION. + + PRIVATE SECTION. + CONSTANTS c_bgqc_name TYPE string VALUE 'BGQCNAME'. + CONSTANTS c_bgqc_wbi_p TYPE string VALUE 'CL_BGQC_WBI_P'. + CONSTANTS c_select_changed_by TYPE string VALUE 'IF_BGQC_WBI_P~SELECT_CHANGED_BY'. + +ENDCLASS. + + +CLASS zcl_abapgit_object_bgqc IMPLEMENTATION. + METHOD zif_abapgit_object~changed_by. + DATA lo_bgqc_wbi_p TYPE REF TO object. + DATA lv_ref_bgqc_name TYPE REF TO data. + DATA lv_changed_by TYPE syuname. + DATA lv_subrc TYPE sy-subrc. + DATA lx_root TYPE REF TO cx_root. + + TRY. + + CREATE DATA lv_ref_bgqc_name TYPE (c_bgqc_name). + lv_ref_bgqc_name->* = me->ms_item-obj_name. + + CREATE OBJECT lo_bgqc_wbi_p TYPE (c_bgqc_wbi_p). + + CALL METHOD lo_bgqc_wbi_p->(c_select_changed_by) + EXPORTING iv_bgqc_name = lv_ref_bgqc_name->* + IMPORTING ev_changed_by = lv_changed_by + ev_subrc = lv_subrc. + + IF lv_subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + rv_user = lv_changed_by. + + CATCH cx_root INTO lx_root. + + zcx_abapgit_exception=>raise_with_text( lx_root ). + + ENDTRY. + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/aff/zcl_abapgit_object_bgqc.clas.xml b/src/objects/aff/zcl_abapgit_object_bgqc.clas.xml new file mode 100644 index 000000000..a09363bdb --- /dev/null +++ b/src/objects/aff/zcl_abapgit_object_bgqc.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_ABAPGIT_OBJECT_BGQC + E + abapGit - BGQC - Background Processing Context + 1 + X + X + X + + + +