From 1da1cb74b9cf0701fd409504a4eec120e70c5e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Wed, 11 Oct 2017 04:55:53 +0000 Subject: [PATCH] Refactoring --- src/zabapgit_object_ucsa.prog.abap | 131 ++++++++++++++------------ src/zif_abapgit_definitions.intf.abap | 7 ++ 2 files changed, 78 insertions(+), 60 deletions(-) diff --git a/src/zabapgit_object_ucsa.prog.abap b/src/zabapgit_object_ucsa.prog.abap index 341dc0cc1..91d58a943 100644 --- a/src/zabapgit_object_ucsa.prog.abap +++ b/src/zabapgit_object_ucsa.prog.abap @@ -16,7 +16,10 @@ CLASS lcl_object_ucsa DEFINITION INHERITING FROM lcl_objects_super FINAL. IMPORTING iv_id TYPE ty_id RETURNING - VALUE(ro_persistence) TYPE REF TO object. + VALUE(ro_persistence) TYPE REF TO object, + clear_dynamic_fields + CHANGING + cs_complete_comm_assembly TYPE any. ENDCLASS. @@ -53,7 +56,7 @@ CLASS lcl_object_ucsa IMPLEMENTATION. CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~LOAD') EXPORTING - version = 'A' + version = zif_abapgit_definitions=>gc_version-active language = sy-langu. CATCH cx_root. @@ -67,68 +70,34 @@ CLASS lcl_object_ucsa IMPLEMENTATION. METHOD lif_object~serialize. - DATA: lv_id TYPE ty_id, - lx_root TYPE REF TO cx_root, - lv_text TYPE string, - lo_persistence TYPE REF TO object, - lr_sa TYPE REF TO data. + DATA: lv_id TYPE ty_id, + lx_root TYPE REF TO cx_root, + lv_text TYPE string, + lo_persistence TYPE REF TO object, + lr_complete_comm_assembly TYPE REF TO data. - FIELD-SYMBOLS: TYPE any, -
TYPE any, - TYPE any. + FIELD-SYMBOLS: TYPE any. lv_id = ms_item-obj_name. TRY. - CREATE DATA lr_sa TYPE ('UCONSERVASCOMPLETE'). - ASSIGN lr_sa->* TO . + CREATE DATA lr_complete_comm_assembly TYPE ('UCONSERVASCOMPLETE'). + ASSIGN lr_complete_comm_assembly->* TO . ASSERT sy-subrc = 0. lo_persistence = get_persistence( lv_id ). CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~LOAD') EXPORTING - version = 'A' + version = zif_abapgit_definitions=>gc_version-active language = sy-langu IMPORTING - sa = . + sa = . - ASSIGN COMPONENT 'HEADER' OF STRUCTURE - TO
. - ASSERT sy-subrc = 0. - - ASSIGN COMPONENT 'CREATEDBY' OF STRUCTURE
- TO . - ASSERT sy-subrc = 0. - CLEAR: . - - ASSIGN COMPONENT 'CREATEDON' OF STRUCTURE
- TO . - ASSERT sy-subrc = 0. - CLEAR: . - - ASSIGN COMPONENT 'CREATEDAT' OF STRUCTURE
- TO . - ASSERT sy-subrc = 0. - CLEAR: . - - ASSIGN COMPONENT 'CHANGEDBY' OF STRUCTURE
- TO . - ASSERT sy-subrc = 0. - CLEAR: . - - ASSIGN COMPONENT 'CHANGEDON' OF STRUCTURE
- TO . - ASSERT sy-subrc = 0. - CLEAR: . - - ASSIGN COMPONENT 'CHANGEDAT' OF STRUCTURE
- TO . - ASSERT sy-subrc = 0. - CLEAR: . + clear_dynamic_fields( CHANGING cs_complete_comm_assembly = ). io_xml->add( iv_name = 'UCSA' - ig_data = ). + ig_data = ). CATCH cx_root INTO lx_root. lv_text = lx_root->get_text( ). @@ -139,24 +108,24 @@ CLASS lcl_object_ucsa IMPLEMENTATION. METHOD lif_object~deserialize. - DATA: lv_id TYPE ty_id, - lx_root TYPE REF TO cx_root, - lv_text TYPE string, - lo_persistence TYPE REF TO object, - lr_sa TYPE REF TO data. + DATA: lv_id TYPE ty_id, + lx_root TYPE REF TO cx_root, + lv_text TYPE string, + lo_persistence TYPE REF TO object, + lr_complete_comm_assembly TYPE REF TO data. - FIELD-SYMBOLS: TYPE any. + FIELD-SYMBOLS: TYPE any. TRY. - CREATE DATA lr_sa TYPE ('UCONSERVASCOMPLETE'). - ASSIGN lr_sa->* TO . + CREATE DATA lr_complete_comm_assembly TYPE ('UCONSERVASCOMPLETE'). + ASSIGN lr_complete_comm_assembly->* TO . ASSERT sy-subrc = 0. io_xml->read( EXPORTING iv_name = 'UCSA' CHANGING - cg_data = ). + cg_data = ). lv_id = ms_item-obj_name. @@ -166,8 +135,8 @@ CLASS lcl_object_ucsa IMPLEMENTATION. CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~SAVE') EXPORTING - sa = - version = 'A'. + sa = + version = zif_abapgit_definitions=>gc_version-active. tadir_insert( iv_package ). @@ -192,7 +161,7 @@ CLASS lcl_object_ucsa IMPLEMENTATION. CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~DELETE') EXPORTING - version = 'A'. + version = zif_abapgit_definitions=>gc_version-active. CATCH cx_root INTO lx_root. lv_text = lx_root->get_text( ). @@ -237,4 +206,46 @@ CLASS lcl_object_ucsa IMPLEMENTATION. ENDMETHOD. + + METHOD clear_dynamic_fields. + + FIELD-SYMBOLS:
TYPE any, + TYPE any. + + ASSIGN COMPONENT 'HEADER' OF STRUCTURE cs_complete_comm_assembly + TO
. + ASSERT sy-subrc = 0. + + ASSIGN COMPONENT 'CREATEDBY' OF STRUCTURE
+ TO . + ASSERT sy-subrc = 0. + CLEAR: . + + ASSIGN COMPONENT 'CREATEDON' OF STRUCTURE
+ TO . + ASSERT sy-subrc = 0. + CLEAR: . + + ASSIGN COMPONENT 'CREATEDAT' OF STRUCTURE
+ TO . + ASSERT sy-subrc = 0. + CLEAR: . + + ASSIGN COMPONENT 'CHANGEDBY' OF STRUCTURE
+ TO . + ASSERT sy-subrc = 0. + CLEAR: . + + ASSIGN COMPONENT 'CHANGEDON' OF STRUCTURE
+ TO . + ASSERT sy-subrc = 0. + CLEAR: . + + ASSIGN COMPONENT 'CHANGEDAT' OF STRUCTURE
+ TO . + ASSERT sy-subrc = 0. + CLEAR: . + + ENDMETHOD. + ENDCLASS. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index 9a7007746..322c074a1 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -259,4 +259,11 @@ INTERFACE zif_abapgit_definitions jump TYPE string VALUE 'jump', jump_pkg TYPE string VALUE 'jump_pkg', END OF gc_action . + + CONSTANTS: + BEGIN OF gc_version, + active TYPE r3state VALUE 'A', + inactive TYPE r3state VALUE 'I', + END OF gc_version. + ENDINTERFACE.