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'
|
io_xml->read( EXPORTING iv_name = 'DD04V'
|
||||||
CHANGING cg_data = ls_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
|
corr_insert( iv_package = iv_package
|
||||||
ig_object_class = 'DICT' ).
|
ig_object_class = 'DICT' ).
|
||||||
|
|
||||||
|
@ -241,6 +248,7 @@ CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
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-ddic TO rt_steps.
|
||||||
|
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,13 @@ CLASS ZCL_ABAPGIT_OBJECT_SHLP IMPLEMENTATION.
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'DD30V'
|
io_xml->read( EXPORTING iv_name = 'DD30V'
|
||||||
CHANGING cg_data = ls_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'
|
io_xml->read( EXPORTING iv_name = 'DD31V_TABLE'
|
||||||
CHANGING cg_data = lt_dd31v ).
|
CHANGING cg_data = lt_dd31v ).
|
||||||
io_xml->read( EXPORTING iv_name = 'DD32P_TABLE'
|
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.
|
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-ddic TO rt_steps.
|
||||||
|
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -471,7 +471,10 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||||
lt_secondary LIKE lt_dd17v,
|
lt_secondary LIKE lt_dd17v,
|
||||||
lt_dd35v TYPE TABLE OF dd35v,
|
lt_dd35v TYPE TABLE OF dd35v,
|
||||||
lt_dd36m TYPE dd36mttyp,
|
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
|
IF deserialize_idoc_segment( io_xml = io_xml
|
||||||
iv_package = iv_package ) = abap_false.
|
iv_package = iv_package ) = abap_false.
|
||||||
|
@ -482,6 +485,16 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||||
CHANGING cg_data = ls_dd09l ).
|
CHANGING cg_data = ls_dd09l ).
|
||||||
io_xml->read( EXPORTING iv_name = 'DD03P_TABLE'
|
io_xml->read( EXPORTING iv_name = 'DD03P_TABLE'
|
||||||
CHANGING cg_data = lt_dd03p ).
|
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'
|
io_xml->read( EXPORTING iv_name = 'DD05M_TABLE'
|
||||||
CHANGING cg_data = lt_dd05m ).
|
CHANGING cg_data = lt_dd05m ).
|
||||||
io_xml->read( EXPORTING iv_name = 'DD08V_TABLE'
|
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'
|
io_xml->read( EXPORTING iv_name = 'DD36M'
|
||||||
CHANGING cg_data = lt_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
|
corr_insert( iv_package = iv_package
|
||||||
ig_object_class = 'DICT' ).
|
ig_object_class = 'DICT' ).
|
||||||
|
|
||||||
|
@ -608,6 +630,7 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
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-ddic TO rt_steps.
|
||||||
|
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,14 @@ CLASS ZCL_ABAPGIT_OBJECT_TTYP IMPLEMENTATION.
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'DD40V'
|
io_xml->read( EXPORTING iv_name = 'DD40V'
|
||||||
CHANGING cg_data = ls_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'
|
io_xml->read( EXPORTING iv_name = 'DD42V'
|
||||||
CHANGING cg_data = lt_dd42v ).
|
CHANGING cg_data = lt_dd42v ).
|
||||||
io_xml->read( EXPORTING iv_name = 'DD43V'
|
io_xml->read( EXPORTING iv_name = 'DD43V'
|
||||||
|
@ -132,6 +140,7 @@ CLASS ZCL_ABAPGIT_OBJECT_TTYP IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
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-ddic TO rt_steps.
|
||||||
|
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -771,7 +771,16 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
zcl_abapgit_objects_activation=>activate( is_step-is_ddic ).
|
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
|
* Call postprocessing
|
||||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||||
|
|
Loading…
Reference in New Issue
Block a user