mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
DDIC with reference to class/interface, Search Help with Exit Function (#3545)
* Update zcl_abapgit_objects.clas.abap * DDIC with reference to class/interface * DDIC with reference to class/interface * Search help with exit function * Table with reference to search help Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
70c96e701d
commit
5f7c7dc2bc
|
@ -190,6 +190,13 @@ CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION.
|
|||
io_xml->read( EXPORTING iv_name = 'DD04V'
|
||||
CHANGING cg_data = ls_dd04v ).
|
||||
|
||||
" DDIC Step: Replace REF TO class/interface with generic reference to avoid cyclic dependency
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic AND ls_dd04v-datatype = 'REF'.
|
||||
ls_dd04v-rollname = 'OBJECT'.
|
||||
ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late AND ls_dd04v-datatype <> 'REF'.
|
||||
RETURN. " already active
|
||||
ENDIF.
|
||||
|
||||
corr_insert( iv_package = iv_package
|
||||
ig_object_class = 'DICT' ).
|
||||
|
||||
|
@ -241,6 +248,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,13 @@ CLASS ZCL_ABAPGIT_OBJECT_SHLP IMPLEMENTATION.
|
|||
|
||||
io_xml->read( EXPORTING iv_name = 'DD30V'
|
||||
CHANGING cg_data = ls_dd30v ).
|
||||
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic AND NOT ls_dd30v-selmexit IS INITIAL.
|
||||
ls_dd30v-selmexit = 'RS_DD_SELMEXIT'.
|
||||
ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late AND ls_dd30v-selmexit IS INITIAL.
|
||||
RETURN. " already active
|
||||
ENDIF.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD31V_TABLE'
|
||||
CHANGING cg_data = lt_dd31v ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD32P_TABLE'
|
||||
|
@ -116,6 +123,7 @@ CLASS ZCL_ABAPGIT_OBJECT_SHLP IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -471,7 +471,10 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
lt_secondary LIKE lt_dd17v,
|
||||
lt_dd35v TYPE TABLE OF dd35v,
|
||||
lt_dd36m TYPE dd36mttyp,
|
||||
ls_dd12v LIKE LINE OF lt_dd12v.
|
||||
ls_dd12v LIKE LINE OF lt_dd12v,
|
||||
lv_refs TYPE abap_bool.
|
||||
|
||||
FIELD-SYMBOLS: <ls_dd03p> TYPE dd03p.
|
||||
|
||||
IF deserialize_idoc_segment( io_xml = io_xml
|
||||
iv_package = iv_package ) = abap_false.
|
||||
|
@ -482,6 +485,16 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
CHANGING cg_data = ls_dd09l ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD03P_TABLE'
|
||||
CHANGING cg_data = lt_dd03p ).
|
||||
|
||||
" DDIC Step: Replace REF TO class/interface with generic reference to avoid cyclic dependency
|
||||
LOOP AT lt_dd03p ASSIGNING <ls_dd03p> WHERE datatype = 'REF'.
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic.
|
||||
<ls_dd03p>-rollname = 'OBJECT'.
|
||||
ELSE.
|
||||
lv_refs = abap_true.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD05M_TABLE'
|
||||
CHANGING cg_data = lt_dd05m ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD08V_TABLE'
|
||||
|
@ -495,6 +508,15 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
io_xml->read( EXPORTING iv_name = 'DD36M'
|
||||
CHANGING cg_data = lt_dd36m ).
|
||||
|
||||
" DDIC Step: Remove referenced to search helps
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic.
|
||||
CLEAR: lt_dd35v, lt_dd36m.
|
||||
ENDIF.
|
||||
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-late AND lv_refs = abap_false AND lines( lt_dd35v ) = 0.
|
||||
RETURN. " already active
|
||||
ENDIF.
|
||||
|
||||
corr_insert( iv_package = iv_package
|
||||
ig_object_class = 'DICT' ).
|
||||
|
||||
|
@ -608,6 +630,7 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -62,6 +62,14 @@ CLASS ZCL_ABAPGIT_OBJECT_TTYP IMPLEMENTATION.
|
|||
|
||||
io_xml->read( EXPORTING iv_name = 'DD40V'
|
||||
CHANGING cg_data = ls_dd40v ).
|
||||
|
||||
" DDIC Step: Replace REF TO class/interface with generic reference to avoid cyclic dependency
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic AND ls_dd40v-datatype = 'REF'.
|
||||
ls_dd40v-rowtype = 'OBJECT'.
|
||||
ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late AND ls_dd40v-datatype <> 'REF'.
|
||||
RETURN. " already active
|
||||
ENDIF.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD42V'
|
||||
CHANGING cg_data = lt_dd42v ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD43V'
|
||||
|
@ -132,6 +140,7 @@ CLASS ZCL_ABAPGIT_OBJECT_TTYP IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -771,7 +771,16 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
|
|||
|
||||
ENDLOOP.
|
||||
|
||||
CASE is_step-step_id.
|
||||
WHEN zif_abapgit_object=>gc_step_id-ddic.
|
||||
zcl_abapgit_objects_activation=>activate( is_step-is_ddic ).
|
||||
WHEN zif_abapgit_object=>gc_step_id-abap.
|
||||
zcl_abapgit_objects_activation=>activate( is_step-is_ddic ).
|
||||
WHEN zif_abapgit_object=>gc_step_id-late.
|
||||
" late can have both DDIC (like TABL with REF TO) and non-DDIC objects
|
||||
zcl_abapgit_objects_activation=>activate( abap_true ).
|
||||
zcl_abapgit_objects_activation=>activate( abap_false ).
|
||||
ENDCASE.
|
||||
|
||||
* Call postprocessing
|
||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||
|
|
Loading…
Reference in New Issue
Block a user