mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
OTGR: Fix errors with parent/child (#5518)
- Fix "error while instantiating CL_CLS_OBJECT_TYPE_GROUP" - Remove children since they are created automatically
This commit is contained in:
parent
9ba5db8497
commit
d35e3548d8
|
@ -31,18 +31,27 @@ CLASS zcl_abapgit_object_otgr IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD instantiate_and_lock_otgr.
|
METHOD instantiate_and_lock_otgr.
|
||||||
DATA: lv_new TYPE abap_bool,
|
DATA:
|
||||||
lv_name TYPE cls_attribute_name.
|
lv_new TYPE abap_bool,
|
||||||
|
lv_name TYPE cls_attribute_name,
|
||||||
|
lv_state TYPE cls_type_group-activation_state.
|
||||||
|
|
||||||
SELECT SINGLE name FROM cls_type_group INTO lv_name WHERE name = ms_item-obj_name.
|
SELECT SINGLE name FROM cls_type_group INTO lv_name WHERE name = ms_item-obj_name.
|
||||||
lv_new = boolc( sy-subrc <> 0 ).
|
IF sy-subrc = 0.
|
||||||
|
lv_new = abap_false.
|
||||||
|
lv_state = cl_pak_wb_domains=>co_activation_state-invalid.
|
||||||
|
ELSE.
|
||||||
|
lv_new = abap_true.
|
||||||
|
lv_state = cl_pak_wb_domains=>co_activation_state-active.
|
||||||
|
ENDIF.
|
||||||
lv_name = ms_item-obj_name.
|
lv_name = ms_item-obj_name.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
CREATE OBJECT ro_otgr
|
CREATE OBJECT ro_otgr
|
||||||
EXPORTING
|
EXPORTING
|
||||||
im_name = lv_name
|
im_name = lv_name
|
||||||
im_new = lv_new.
|
im_new = lv_new
|
||||||
|
im_activation_state = lv_state.
|
||||||
CATCH cx_pak_invalid_data
|
CATCH cx_pak_invalid_data
|
||||||
cx_pak_not_authorized
|
cx_pak_not_authorized
|
||||||
cx_pak_invalid_state
|
cx_pak_invalid_state
|
||||||
|
@ -233,6 +242,7 @@ CLASS zcl_abapgit_object_otgr IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~serialize.
|
METHOD zif_abapgit_object~serialize.
|
||||||
DATA: lv_text TYPE string,
|
DATA: lv_text TYPE string,
|
||||||
|
lv_name TYPE ty_otgr-cls_type_group,
|
||||||
ls_otgr TYPE ty_otgr,
|
ls_otgr TYPE ty_otgr,
|
||||||
lo_otgr TYPE REF TO cl_cls_object_type_group,
|
lo_otgr TYPE REF TO cl_cls_object_type_group,
|
||||||
lx_pak_error TYPE REF TO cx_root,
|
lx_pak_error TYPE REF TO cx_root,
|
||||||
|
@ -269,7 +279,19 @@ CLASS zcl_abapgit_object_otgr IMPLEMENTATION.
|
||||||
TRY.
|
TRY.
|
||||||
ls_otgr-cls_type_group-name = lo_otgr->if_cls_object_type_group~get_name( ).
|
ls_otgr-cls_type_group-name = lo_otgr->if_cls_object_type_group~get_name( ).
|
||||||
ls_otgr-cls_type_group-proxy_flag = lo_otgr->if_cls_object_type_group~get_proxy_filter( ).
|
ls_otgr-cls_type_group-proxy_flag = lo_otgr->if_cls_object_type_group~get_proxy_filter( ).
|
||||||
lo_otgr->get_elements( IMPORTING ex_elements = ls_otgr-elements ).
|
lo_otgr->get_elements(
|
||||||
|
EXPORTING
|
||||||
|
im_explicit_elements_only = abap_true
|
||||||
|
IMPORTING
|
||||||
|
ex_elements = ls_otgr-elements ).
|
||||||
|
|
||||||
|
" Remove children since they are created automatically (by the child group)
|
||||||
|
LOOP AT ls_otgr-elements ASSIGNING <ls_element>.
|
||||||
|
SELECT SINGLE name FROM cls_type_group INTO lv_name WHERE name = <ls_element>-type.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
DELETE ls_otgr-elements.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
IF <lt_parents> IS ASSIGNED.
|
IF <lt_parents> IS ASSIGNED.
|
||||||
CALL METHOD lo_otgr->('IF_CLS_OBJECT_TYPE_GROUP~GET_PARENT_GROUPS')
|
CALL METHOD lo_otgr->('IF_CLS_OBJECT_TYPE_GROUP~GET_PARENT_GROUPS')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user