From b4fed491d5a1b44fdff68fb63b87ceb3f56e9c8c Mon Sep 17 00:00:00 2001 From: oblomov <102328295+oblomov-dev@users.noreply.github.com> Date: Fri, 29 Mar 2024 16:54:52 +0100 Subject: [PATCH] fix srtti types (#1047) * fix srtti types * update --- src/01/01/z2ui5_cl_util_api.clas.abap | 7 ++++++- src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap | 20 ++++++++++++++----- .../01/z2ui5_cl_core_dissolve_srv.clas.abap | 2 +- src/01/02/z2ui5_cl_core_app.clas.abap | 2 ++ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/01/01/z2ui5_cl_util_api.clas.abap b/src/01/01/z2ui5_cl_util_api.clas.abap index 883efc3a..c9ef8360 100644 --- a/src/01/01/z2ui5_cl_util_api.clas.abap +++ b/src/01/01/z2ui5_cl_util_api.clas.abap @@ -366,7 +366,7 @@ ENDCLASS. -CLASS Z2UI5_CL_UTIL_API IMPLEMENTATION. +CLASS z2ui5_cl_util_api IMPLEMENTATION. METHOD boolean_abap_2_json. @@ -422,6 +422,11 @@ CLASS Z2UI5_CL_UTIL_API IMPLEMENTATION. METHOD check_unassign_inital. + IF val IS INITIAL. + result = abap_true. + RETURN. + ENDIF. + FIELD-SYMBOLS TYPE data. ASSIGN val->* TO . diff --git a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap index 2125570b..8ae8ecda 100644 --- a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap @@ -156,14 +156,24 @@ CLASS z2ui5_cl_core_bind_srv IMPLEMENTATION. METHOD clear. TRY. - data(lv_path) = shift_right( val = val sub = `->*` ). + DATA(lv_path) = shift_right( val = val sub = `->*` ). mo_app->mt_attri->*[ name = lv_path ]-check_dissolved = abap_false. + mo_app->mt_attri->*[ name = lv_path ]-name_client = ``. + mo_app->mt_attri->*[ name = lv_path ]-bind_type = ``. + +* clear mo_app->mt_attri->*[ name = lv_path ]-r_ref. +* clear mo_app->mt_attri->*[ name = lv_path ]-o_typedescr. + + LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2) + WHERE name = lv_path. + + CLEAR lr_bind2->r_ref. - LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2). - IF lr_bind2->name CS val. - DELETE mo_app->mt_attri->*. - ENDIF. ENDLOOP. +* IF lr_bind2->name CS val. +* DELETE mo_app->mt_attri->*. +* ENDIF. +* ENDLOOP. CATCH cx_root. ENDTRY. diff --git a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap index 393eab7d..9b0075bb 100644 --- a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap @@ -110,7 +110,7 @@ CLASS z2ui5_cl_core_dissolve_srv IMPLEMENTATION. DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( lr_ref ). LOOP AT lt_attri REFERENCE INTO DATA(lr_attri) - WHERE visibility = cl_abap_objectdescr=>public + WHERE visibility = cl_abap_objectdescr=>public AND is_interface = abap_false AND is_constant = abap_false. TRY. diff --git a/src/01/02/z2ui5_cl_core_app.clas.abap b/src/01/02/z2ui5_cl_core_app.clas.abap index 671e5d46..f30e9932 100644 --- a/src/01/02/z2ui5_cl_core_app.clas.abap +++ b/src/01/02/z2ui5_cl_core_app.clas.abap @@ -78,6 +78,8 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. CATCH cx_root INTO DATA(x2). TRY. + lo_model->attri_refs_update( ). + DATA(lo_dissolver) = NEW z2ui5_cl_core_dissolve_srv( attri = mt_attri app = mo_app ).