Objects to global (#1187)

* add global classes for objects

* fix metadata

* comment old code

fix serializer class
move missing interfaces

* keep objects and bridge as local

* fix syntax errors

and remove SICF -> tadir dependency, instead tadir -> SICF

* remove dependency TABL -> lcl_popups

* fix indentation

* remove old includes

* fix parser errors

* fix deserializing
This commit is contained in:
Lars Hvam 2018-02-11 09:16:16 +01:00 committed by GitHub
parent 51fc823d41
commit f14ac831ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
290 changed files with 10827 additions and 10120 deletions

View File

@ -0,0 +1,22 @@
CLASS zcl_abapgit_comparison_null DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_comparison_result .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_ABAPGIT_COMPARISON_NULL IMPLEMENTATION.
METHOD zif_abapgit_comparison_result~is_result_complete_halt.
rv_response = abap_false.
ENDMETHOD.
METHOD zif_abapgit_comparison_result~show_confirmation_dialog.
RETURN.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_COMPARISON_NULL</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Null result</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_ACID
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_acid DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_acid DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_acid DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -18,22 +9,17 @@ CLASS lcl_object_acid DEFINITION INHERITING FROM lcl_objects_super FINAL.
RETURNING VALUE(ro_aab) TYPE REF TO cl_aab_id
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_acid DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_acid IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_acid IMPLEMENTATION.
CLASS zcl_abapgit_object_acid IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "lif_object~has_changed_since
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
ENDMETHOD. "lif_object~get_metadata
ENDMETHOD. "zif_abapgit_object~get_metadata
METHOD zif_abapgit_object~changed_by.
* looks like "changed by user" is not stored in the database
@ -78,7 +64,7 @@ CLASS lcl_object_acid IMPLEMENTATION.
io_xml->add( iv_name = 'DESCRIPTION'
ig_data = lv_description ).
ENDMETHOD. "lif_object~serialize
ENDMETHOD. "zif_abapgit_object~serialize
METHOD zif_abapgit_object~deserialize.
@ -95,7 +81,7 @@ CLASS lcl_object_acid IMPLEMENTATION.
tadir_insert( iv_package ).
lo_aab->save( ).
ENDMETHOD. "lif_object~deserialize
ENDMETHOD. "zif_abapgit_object~deserialize
METHOD zif_abapgit_object~delete.
@ -121,7 +107,7 @@ CLASS lcl_object_acid IMPLEMENTATION.
ENDIF.
lo_aab->dequeue( ).
ENDMETHOD. "lif_object~delete
ENDMETHOD. "zif_abapgit_object~delete
METHOD zif_abapgit_object~exists.
@ -136,7 +122,7 @@ CLASS lcl_object_acid IMPLEMENTATION.
ex_state = lv_state ).
rv_bool = boolc( lv_state = abap_true ).
ENDMETHOD. "lif_object~exists
ENDMETHOD. "zif_abapgit_object~exists
METHOD zif_abapgit_object~jump.
@ -147,10 +133,10 @@ CLASS lcl_object_acid IMPLEMENTATION.
object_type = 'ACID'
in_new_window = abap_true.
ENDMETHOD. "lif_object~jump
ENDMETHOD. "zif_abapgit_object~jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_acid IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_acid IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ACID</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,34 +1,20 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_AUTH
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_auth DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_auth DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_auth DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
ENDCLASS. "lcl_object_auth DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_auth IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_auth IMPLEMENTATION.
CLASS zcl_abapgit_object_auth IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "lif_object~has_changed_since
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
ENDMETHOD. "lif_object~get_metadata
ENDMETHOD. "zif_abapgit_object~get_metadata
METHOD zif_abapgit_object~changed_by.
* looks like "changed by user" is not stored in the database
@ -49,7 +35,7 @@ CLASS lcl_object_auth IMPLEMENTATION.
io_xml->add( iv_name = 'AUTHX'
ig_data = ls_authx ).
ENDMETHOD. "lif_object~serialize
ENDMETHOD. "zif_abapgit_object~serialize
METHOD zif_abapgit_object~deserialize.
* see include LSAUT_FIELDF02
@ -75,7 +61,7 @@ CLASS lcl_object_auth IMPLEMENTATION.
CALL FUNCTION 'DB_COMMIT'.
lo_auth->set_authfld_info_from_db( ls_authx-fieldname ).
ENDMETHOD. "lif_object~deserialize
ENDMETHOD. "zif_abapgit_object~deserialize
METHOD zif_abapgit_object~delete.
@ -99,7 +85,7 @@ CLASS lcl_object_auth IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'error from SUSR_AUTF_DELETE_FIELD' ).
ENDIF.
ENDMETHOD. "lif_object~delete
ENDMETHOD. "zif_abapgit_object~delete
METHOD zif_abapgit_object~exists.
@ -111,7 +97,7 @@ CLASS lcl_object_auth IMPLEMENTATION.
WHERE fieldname = ms_item-obj_name. "#EC CI_GENBUFF
rv_bool = boolc( sy-subrc = 0 ).
ENDMETHOD. "lif_object~exists
ENDMETHOD. "zif_abapgit_object~exists
METHOD zif_abapgit_object~jump.
@ -125,10 +111,10 @@ CLASS lcl_object_auth IMPLEMENTATION.
id_field = field
id_wbo_mode = abap_false.
ENDMETHOD. "lif_object~jump
ENDMETHOD. "zif_abapgit_object~jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_auth IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_auth IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_AUTH</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,83 @@
CLASS zcl_abapgit_object_clas DEFINITION PUBLIC INHERITING FROM zcl_abapgit_object_clas_old.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras.
PROTECTED SECTION.
METHODS:
deserialize_abap REDEFINITION.
ENDCLASS.
CLASS zcl_abapgit_object_clas IMPLEMENTATION.
METHOD constructor.
super->constructor( is_item = is_item
iv_language = iv_language ).
CREATE OBJECT mo_object_oriented_object_fct TYPE zcl_abapgit_oo_class_new.
ENDMETHOD.
METHOD deserialize_abap.
* same as in zcl_abapgit_object_clas, but without "mo_object_oriented_object_fct->add_to_activation_list"
DATA: ls_vseoclass TYPE vseoclass,
lt_source TYPE seop_source_string,
lt_local_definitions TYPE seop_source_string,
lt_local_implementations TYPE seop_source_string,
lt_local_macros TYPE seop_source_string,
lt_test_classes TYPE seop_source_string,
lt_descriptions TYPE zif_abapgit_definitions=>ty_seocompotx_tt,
ls_class_key TYPE seoclskey.
lt_source = mo_files->read_abap( ).
lt_local_definitions = mo_files->read_abap( iv_extra = 'locals_def'
iv_error = abap_false ). "#EC NOTEXT
lt_local_implementations = mo_files->read_abap( iv_extra = 'locals_imp'
iv_error = abap_false ). "#EC NOTEXT
lt_local_macros = mo_files->read_abap( iv_extra = 'macros'
iv_error = abap_false ). "#EC NOTEXT
lt_test_classes = mo_files->read_abap( iv_extra = 'testclasses'
iv_error = abap_false ). "#EC NOTEXT
ls_class_key-clsname = ms_item-obj_name.
io_xml->read( EXPORTING iv_name = 'VSEOCLASS'
CHANGING cg_data = ls_vseoclass ).
mo_object_oriented_object_fct->create(
EXPORTING
iv_package = iv_package
CHANGING
is_properties = ls_vseoclass ).
mo_object_oriented_object_fct->generate_locals(
is_key = ls_class_key
iv_force = seox_true
it_local_definitions = lt_local_definitions
it_local_implementations = lt_local_implementations
it_local_macros = lt_local_macros
it_local_test_classes = lt_test_classes ).
mo_object_oriented_object_fct->deserialize_source(
is_key = ls_class_key
it_source = lt_source ).
io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS'
CHANGING cg_data = lt_descriptions ).
mo_object_oriented_object_fct->update_descriptions(
is_key = ls_class_key
it_descriptions = lt_descriptions ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_CLAS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_CLAS
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_clas DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_clas_old DEFINITION INHERITING FROM lcl_objects_program.
CLASS zcl_abapgit_object_clas_old DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_program.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -18,7 +9,7 @@ CLASS lcl_object_clas_old DEFINITION INHERITING FROM lcl_objects_program.
iv_language TYPE spras.
PROTECTED SECTION.
DATA: mo_object_oriented_object_fct TYPE REF TO lif_oo_object_fnc,
DATA: mo_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc,
mv_skip_testclass TYPE abap_bool.
METHODS:
@ -40,14 +31,9 @@ CLASS lcl_object_clas_old DEFINITION INHERITING FROM lcl_objects_program.
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_dtel DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_clas IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_clas_old IMPLEMENTATION.
CLASS zcl_abapgit_object_clas_old IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
DATA:
@ -397,296 +383,14 @@ CLASS lcl_object_clas_old IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD constructor.
super->constructor(
is_item = is_item
iv_language = iv_language ).
mo_object_oriented_object_fct = lcl_oo_factory=>make( ms_item-obj_type ).
mo_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ).
ENDMETHOD.
ENDCLASS. "lcl_object_CLAS IMPLEMENTATION
CLASS lcl_oo_class DEFINITION INHERITING FROM lcl_oo_base.
PUBLIC SECTION.
METHODS:
lif_oo_object_fnc~create REDEFINITION,
lif_oo_object_fnc~generate_locals REDEFINITION,
lif_oo_object_fnc~insert_text_pool REDEFINITION,
lif_oo_object_fnc~create_sotr REDEFINITION,
lif_oo_object_fnc~get_includes REDEFINITION,
lif_oo_object_fnc~get_class_properties REDEFINITION,
lif_oo_object_fnc~read_text_pool REDEFINITION,
lif_oo_object_fnc~read_sotr REDEFINITION,
lif_oo_object_fnc~delete REDEFINITION.
ENDCLASS.
CLASS lcl_oo_class IMPLEMENTATION.
METHOD lif_oo_object_fnc~create.
CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE'
EXPORTING
devclass = iv_package
overwrite = iv_overwrite
CHANGING
class = is_properties
EXCEPTIONS
existing = 1
is_interface = 2
db_error = 3
component_error = 4
no_access = 5
other = 6
OTHERS = 7.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~generate_locals.
CALL FUNCTION 'SEO_CLASS_GENERATE_LOCALS'
EXPORTING
clskey = is_key
force = iv_force
locals_def = it_local_definitions
locals_imp = it_local_implementations
locals_mac = it_local_macros
locals_testclasses = it_local_test_classes
EXCEPTIONS
not_existing = 1
model_only = 2
locals_not_generated = 3
locals_not_initialised = 4
OTHERS = 5.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from generate_locals' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~insert_text_pool.
DATA: lv_cp TYPE program.
lv_cp = cl_oo_classname_service=>get_classpool_name( iv_class_name ).
INSERT TEXTPOOL lv_cp
FROM it_text_pool
LANGUAGE iv_language
STATE 'I'.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from INSERT TEXTPOOL' ).
ENDIF.
zcl_abapgit_objects_activation=>add( iv_type = 'REPT'
iv_name = lv_cp ).
ENDMETHOD.
METHOD lif_oo_object_fnc~create_sotr.
DATA: lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt,
lt_objects TYPE sotr_objects,
ls_paket TYPE sotr_pack,
lv_object LIKE LINE OF lt_objects.
FIELD-SYMBOLS: <ls_sotr> LIKE LINE OF lt_sotr.
LOOP AT it_sotr ASSIGNING <ls_sotr>.
CALL FUNCTION 'SOTR_OBJECT_GET_OBJECTS'
EXPORTING
object_vector = <ls_sotr>-header-objid_vec
IMPORTING
objects = lt_objects
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from SOTR_OBJECT_GET_OBJECTS' ).
ENDIF.
READ TABLE lt_objects INDEX 1 INTO lv_object.
ASSERT sy-subrc = 0.
ls_paket-paket = iv_package.
CALL FUNCTION 'SOTR_CREATE_CONCEPT'
EXPORTING
paket = ls_paket
crea_lan = <ls_sotr>-header-crea_lan
alias_name = <ls_sotr>-header-alias_name
object = lv_object
entries = <ls_sotr>-entries
concept_default = <ls_sotr>-header-concept
EXCEPTIONS
package_missing = 1
crea_lan_missing = 2
object_missing = 3
paket_does_not_exist = 4
alias_already_exist = 5
object_type_not_found = 6
langu_missing = 7
identical_context_not_allowed = 8
text_too_long = 9
error_in_update = 10
no_master_langu = 11
error_in_concept_id = 12
alias_not_allowed = 13
tadir_entry_creation_failed = 14
internal_error = 15
error_in_correction = 16
user_cancelled = 17
no_entry_found = 18
OTHERS = 19.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from SOTR_CREATE_CONCEPT' ).
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD lif_oo_object_fnc~get_includes.
* note: includes returned might not exist
* method cl_oo_classname_service=>GET_ALL_CLASS_INCLUDES does not exist in 702
DATA: lv_class_name TYPE seoclsname,
lt_methods TYPE seop_methods_w_include.
FIELD-SYMBOLS: <ls_method> LIKE LINE OF lt_methods.
lv_class_name = iv_object_name.
APPEND cl_oo_classname_service=>get_ccdef_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ccmac_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ccimp_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_cl_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ccau_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_pubsec_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_prosec_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_prisec_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_classpool_name( lv_class_name ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ct_name( lv_class_name ) TO rt_includes.
* skip the CS include, as it is sometimes generated on the fly instead of
* when the methods are changed
* APPEND cl_oo_classname_service=>get_cs_name( lv_class_name ) TO rt_includes.
cl_oo_classname_service=>get_all_method_includes(
EXPORTING
clsname = lv_class_name
RECEIVING
result = lt_methods
EXCEPTIONS
class_not_existing = 1 ).
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Class { lv_class_name } not existing| ).
ENDIF.
LOOP AT lt_methods ASSIGNING <ls_method>.
APPEND <ls_method>-incname TO rt_includes.
ENDLOOP.
ENDMETHOD.
METHOD lif_oo_object_fnc~get_class_properties.
CALL FUNCTION 'SEO_CLIF_GET'
EXPORTING
cifkey = is_class_key
version = seoc_version_active
IMPORTING
class = rs_class_properties
EXCEPTIONS
not_existing = 1
deleted = 2
model_only = 3
OTHERS = 4.
IF sy-subrc = 1.
RETURN. " in case only inactive version exists
ELSEIF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from seo_clif_get' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~read_text_pool.
DATA:
lv_cp TYPE program.
lv_cp = cl_oo_classname_service=>get_classpool_name( iv_class_name ).
READ TEXTPOOL lv_cp INTO rt_text_pool LANGUAGE iv_language. "#EC CI_READ_REP
ENDMETHOD.
METHOD lif_oo_object_fnc~read_sotr.
DATA: lv_concept TYPE sotr_head-concept,
lt_seocompodf TYPE STANDARD TABLE OF seocompodf WITH DEFAULT KEY,
ls_header TYPE sotr_head,
lt_entries TYPE sotr_text_tt.
FIELD-SYMBOLS: <ls_sotr> LIKE LINE OF rt_sotr,
<ls_seocompodf> LIKE LINE OF lt_seocompodf,
<ls_entry> LIKE LINE OF lt_entries.
SELECT * FROM seocompodf
INTO TABLE lt_seocompodf
WHERE clsname = iv_object_name
AND version = '1'
AND exposure = '2'
AND attdecltyp = '2'
AND type = 'SOTR_CONC'
ORDER BY PRIMARY KEY. "#EC CI_SUBRC
LOOP AT lt_seocompodf ASSIGNING <ls_seocompodf>.
lv_concept = translate( val = <ls_seocompodf>-attvalue from = '''' to = '' ).
CALL FUNCTION 'SOTR_GET_CONCEPT'
EXPORTING
concept = lv_concept
IMPORTING
header = ls_header
TABLES
entries = lt_entries
EXCEPTIONS
no_entry_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
CLEAR: ls_header-paket,
ls_header-crea_name,
ls_header-crea_tstut,
ls_header-chan_name,
ls_header-chan_tstut.
LOOP AT lt_entries ASSIGNING <ls_entry>.
CLEAR: <ls_entry>-version,
<ls_entry>-crea_name,
<ls_entry>-crea_tstut,
<ls_entry>-chan_name,
<ls_entry>-chan_tstut.
ENDLOOP.
APPEND INITIAL LINE TO rt_sotr ASSIGNING <ls_sotr>.
<ls_sotr>-header = ls_header.
<ls_sotr>-entries = lt_entries.
ENDLOOP.
ENDMETHOD.
METHOD lif_oo_object_fnc~delete.
CALL FUNCTION 'SEO_CLASS_DELETE_COMPLETE'
EXPORTING
clskey = is_deletion_key
EXCEPTIONS
not_existing = 1
is_interface = 2
db_error = 3
no_access = 4
other = 5
OTHERS = 6.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error from SEO_CLASS_DELETE_COMPLETE' ).
ENDIF.
ENDMETHOD.
ENDCLASS.
ENDCLASS. "zcl_abapgit_object_CLAS IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_CLAS_OLD</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_CMPT
*&---------------------------------------------------------------------*
CLASS lcl_object_cmpt DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_cmpt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
METHODS:
@ -18,7 +14,7 @@ CLASS lcl_object_cmpt DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
CLASS lcl_object_cmpt IMPLEMENTATION.
CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
METHOD constructor.
@ -206,7 +202,7 @@ CLASS lcl_object_cmpt IMPLEMENTATION.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_CMPT</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,11 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_cus0
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_cus0 DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_object_cus0 DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_cus0 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -25,12 +18,9 @@ CLASS lcl_object_cus0 DEFINITION INHERITING FROM lcl_objects_super FINAL.
END OF ty_img_activity.
DATA: mv_img_activity TYPE cus_img_ac.
ENDCLASS. "lcl_object_cus0 DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_cus0 IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_object_cus0 IMPLEMENTATION.
CLASS zcl_abapgit_object_cus0 IMPLEMENTATION.
METHOD constructor.
@ -147,7 +137,7 @@ CLASS lcl_object_cus0 IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_cus0 IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_cus0 IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_CUS0</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,11 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_cus1
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_cus1 DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_object_cus1 DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_cus1 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -36,12 +29,9 @@ CLASS lcl_object_cus1 DEFINITION INHERITING FROM lcl_objects_super FINAL.
DATA: mv_customizing_activity TYPE cus_img_ac.
ENDCLASS. "lcl_object_cus1 DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_cus1 IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_object_cus1 IMPLEMENTATION.
CLASS zcl_abapgit_object_cus1 IMPLEMENTATION.
METHOD constructor.
@ -159,7 +149,7 @@ CLASS lcl_object_cus1 IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_cus1 IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_cus1 IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_CUS1</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,11 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_cus2
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_cus2 DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_object_cus2 DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_cus2 DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -36,12 +29,9 @@ CLASS lcl_object_cus2 DEFINITION INHERITING FROM lcl_objects_super FINAL.
DATA: mv_img_attribute TYPE cus_atr.
ENDCLASS. "lcl_object_cus2 DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_cus2 IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_object_cus2 IMPLEMENTATION.
CLASS zcl_abapgit_object_cus2 IMPLEMENTATION.
METHOD constructor.
@ -152,7 +142,7 @@ CLASS lcl_object_cus2 IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_cus2 IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_cus2 IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_CUS2</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_dcls
*&---------------------------------------------------------------------*
CLASS lcl_object_dcls DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_dcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -10,7 +6,7 @@ CLASS lcl_object_dcls DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
CLASS lcl_object_dcls IMPLEMENTATION.
CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -183,7 +179,7 @@ CLASS lcl_object_dcls IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DCLS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_VIEW
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_view DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_ddls DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -18,14 +9,9 @@ CLASS lcl_object_ddls DEFINITION INHERITING FROM lcl_objects_super FINAL.
IMPORTING iv_ddls_name TYPE tadir-obj_name
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_dtel DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_view IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_ddls IMPLEMENTATION.
CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -240,7 +226,7 @@ CLASS lcl_object_ddls IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD. "zif_abapgit_object~compare_to_remote_version
METHOD open_adt_stob.
@ -297,4 +283,4 @@ CLASS lcl_object_ddls IMPLEMENTATION.
ENDMETHOD. "open_adt_stob
ENDCLASS. "lcl_object_view IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_view IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DDLS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_ddlx
*&---------------------------------------------------------------------*
CLASS lcl_object_ddlx DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_ddlx DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -30,7 +26,7 @@ CLASS lcl_object_ddlx DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
CLASS lcl_object_ddlx IMPLEMENTATION.
CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -179,7 +175,7 @@ CLASS lcl_object_ddlx IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DDLX</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,9 +1,5 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_devc
*&---------------------------------------------------------------------*
CLASS lcl_object_devc DEFINITION
INHERITING FROM lcl_objects_super
CLASS zcl_abapgit_object_devc DEFINITION PUBLIC
INHERITING FROM zcl_abapgit_objects_super
FINAL.
PUBLIC SECTION.
@ -29,7 +25,7 @@ CLASS lcl_object_devc DEFINITION
mv_local_devclass TYPE devclass.
ENDCLASS.
CLASS lcl_object_devc IMPLEMENTATION.
CLASS zcl_abapgit_object_devc IMPLEMENTATION.
METHOD constructor.
super->constructor( is_item = is_item
iv_language = iv_language ).
@ -64,7 +60,7 @@ CLASS lcl_object_devc IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~delete.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DEVC</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,9 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_dial
*&---------------------------------------------------------------------*
CLASS lcl_object_dial DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_dial DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -22,7 +17,7 @@ CLASS lcl_object_dial DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
CLASS lcl_object_dial IMPLEMENTATION.
CLASS zcl_abapgit_object_dial IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -185,7 +180,7 @@ CLASS lcl_object_dial IMPLEMENTATION.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DIAL</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_DOCT
*&---------------------------------------------------------------------*
CLASS lcl_object_doct DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_doct DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -23,14 +19,9 @@ CLASS lcl_object_doct DEFINITION INHERITING FROM lcl_objects_super FINAL.
METHODS: read
RETURNING VALUE(rs_data) TYPE ty_data.
ENDCLASS. "lcl_object_msag DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_view IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_doct IMPLEMENTATION.
CLASS zcl_abapgit_object_doct IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -196,7 +187,7 @@ CLASS lcl_object_doct IMPLEMENTATION.
ENDMETHOD. "serialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_msag IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DOCT</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_DOCT
*&---------------------------------------------------------------------*
CLASS lcl_object_docv DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_docv DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -22,14 +18,9 @@ CLASS lcl_object_docv DEFINITION INHERITING FROM lcl_objects_super FINAL.
METHODS: read
RETURNING VALUE(rs_data) TYPE ty_data.
ENDCLASS. "lcl_object_msag DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_view IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_docv IMPLEMENTATION.
CLASS zcl_abapgit_object_docv IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -159,7 +150,7 @@ CLASS lcl_object_docv IMPLEMENTATION.
ENDMETHOD. "serialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_msag IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DOCV</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_DOMA
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_doma DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_doma DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_doma DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -41,14 +32,9 @@ CLASS lcl_object_doma DEFINITION INHERITING FROM lcl_objects_super FINAL.
it_dd07v TYPE dd07v_tab
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_doma DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_doma IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_doma IMPLEMENTATION.
CLASS zcl_abapgit_object_doma IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -366,7 +352,7 @@ CLASS lcl_object_doma IMPLEMENTATION.
ENDMETHOD. "deserialize_texts
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_doma IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DOMA</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,11 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_dsys
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_dsys DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_object_dsys DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_dsys DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -33,12 +26,9 @@ CLASS lcl_object_dsys DEFINITION INHERITING FROM lcl_objects_super FINAL.
METHODS: read
RETURNING VALUE(rs_data) TYPE ty_data.
ENDCLASS. "lcl_object_dsys DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_dsys IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_object_dsys IMPLEMENTATION.
CLASS zcl_abapgit_object_dsys IMPLEMENTATION.
METHOD constructor.
@ -152,7 +142,7 @@ CLASS lcl_object_dsys IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD read.
@ -172,4 +162,4 @@ CLASS lcl_object_dsys IMPLEMENTATION.
ENDMETHOD.
ENDCLASS. "lcl_object_dsys IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_dsys IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DSYS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_DTEL
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_dtel DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_dtel DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_dtel DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -34,14 +25,9 @@ CLASS lcl_object_dtel DEFINITION INHERITING FROM lcl_objects_super FINAL.
is_dd04v TYPE dd04v
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_dtel DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_dtel IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_dtel IMPLEMENTATION.
CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -330,7 +316,7 @@ CLASS lcl_object_dtel IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_dtel IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_dtel IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_DTEL</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,179 @@
CLASS zcl_abapgit_object_enho DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
PRIVATE SECTION.
METHODS:
factory
IMPORTING
iv_tool TYPE enhtooltype
RETURNING
VALUE(ri_enho) TYPE REF TO zif_abapgit_object_enho
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_enho IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
ENDMETHOD. "zif_abapgit_object~get_metadata
METHOD zif_abapgit_object~changed_by.
rv_user = c_user_unknown. " todo
ENDMETHOD. "zif_abapgit_object~changed_by
METHOD zif_abapgit_object~exists.
DATA: lv_enh_id TYPE enhname.
lv_enh_id = ms_item-obj_name.
TRY.
cl_enh_factory=>get_enhancement(
enhancement_id = lv_enh_id
bypassing_buffer = abap_true ).
rv_bool = abap_true.
CATCH cx_enh_root.
rv_bool = abap_false.
ENDTRY.
ENDMETHOD. "zif_abapgit_object~exists
METHOD zif_abapgit_object~serialize.
DATA: lv_enh_id TYPE enhname,
li_enho TYPE REF TO zif_abapgit_object_enho,
li_enh_tool TYPE REF TO if_enh_tool.
IF zif_abapgit_object~exists( ) = abap_false.
RETURN.
ENDIF.
lv_enh_id = ms_item-obj_name.
TRY.
li_enh_tool = cl_enh_factory=>get_enhancement(
enhancement_id = lv_enh_id
bypassing_buffer = abap_true ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ).
ENDTRY.
li_enho = factory( li_enh_tool->get_tool( ) ).
li_enho->serialize( io_xml = io_xml
ii_enh_tool = li_enh_tool ).
ENDMETHOD. "serialize
METHOD factory.
CASE iv_tool.
WHEN cl_enh_tool_badi_impl=>tooltype.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_badi
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN cl_enh_tool_hook_impl=>tooltype.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_hook
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN cl_enh_tool_class=>tooltype.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_class
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN cl_enh_tool_intf=>tooltype.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_intf
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN cl_wdr_cfg_enhancement=>tooltype.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_wdyc
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN 'FUGRENH'.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_fugr
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN 'WDYENH'.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enho_wdyn
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN OTHERS.
zcx_abapgit_exception=>raise( |Unsupported ENHO type { iv_tool }| ).
ENDCASE.
ENDMETHOD. "factory
METHOD zif_abapgit_object~deserialize.
DATA: lv_tool TYPE enhtooltype,
li_enho TYPE REF TO zif_abapgit_object_enho.
IF zif_abapgit_object~exists( ) = abap_true.
zif_abapgit_object~delete( ).
ENDIF.
io_xml->read( EXPORTING iv_name = 'TOOL'
CHANGING cg_data = lv_tool ).
li_enho = factory( lv_tool ).
li_enho->deserialize( io_xml = io_xml
iv_package = iv_package ).
zcl_abapgit_objects_activation=>add_item( ms_item ).
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~delete.
DATA: lv_enh_id TYPE enhname,
li_enh_object TYPE REF TO if_enh_object.
lv_enh_id = ms_item-obj_name.
TRY.
li_enh_object = cl_enh_factory=>get_enhancement(
enhancement_id = lv_enh_id
lock = abap_true ).
li_enh_object->delete( ).
li_enh_object->save( ).
li_enh_object->unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'Error deleting ENHO' ).
ENDTRY.
ENDMETHOD. "delete
METHOD zif_abapgit_object~jump.
CALL FUNCTION 'RS_TOOL_ACCESS'
EXPORTING
operation = 'SHOW'
object_name = ms_item-obj_name
object_type = 'ENHO'
in_new_window = abap_true.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD. "zif_abapgit_object~compare_to_remote_version
ENDCLASS. "zcl_abapgit_object_enho IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,111 @@
CLASS zcl_abapgit_object_enho_badi DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS zcl_abapgit_object_enho_badi IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~serialize.
DATA: lo_badi_impl TYPE REF TO cl_enh_tool_badi_impl,
lv_spot_name TYPE enhspotname,
lv_shorttext TYPE string,
lt_impl TYPE enh_badi_impl_data_it.
FIELD-SYMBOLS: <ls_impl> LIKE LINE OF lt_impl,
<ls_values> LIKE LINE OF <ls_impl>-filter_values,
<ls_filter> LIKE LINE OF <ls_impl>-filters.
lo_badi_impl ?= ii_enh_tool.
lv_shorttext = lo_badi_impl->if_enh_object_docu~get_shorttext( ).
lv_spot_name = lo_badi_impl->get_spot_name( ).
lt_impl = lo_badi_impl->get_implementations( ).
LOOP AT lt_impl ASSIGNING <ls_impl>.
* make sure the XML serialization does not dump, field type = N
LOOP AT <ls_impl>-filter_values ASSIGNING <ls_values>.
IF <ls_values>-filter_numeric_value1 CA space.
CLEAR <ls_values>-filter_numeric_value1.
ENDIF.
ENDLOOP.
LOOP AT <ls_impl>-filters ASSIGNING <ls_filter>.
IF <ls_filter>-filter_numeric_value1 CA space.
CLEAR <ls_filter>-filter_numeric_value1.
ENDIF.
ENDLOOP.
ENDLOOP.
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( ig_data = lv_shorttext
iv_name = 'SHORTTEXT' ).
io_xml->add( iv_name = 'SPOT_NAME'
ig_data = lv_spot_name ).
io_xml->add( iv_name = 'IMPL'
ig_data = lt_impl ).
ENDMETHOD. "zif_abapgit_object_enho~serialize
METHOD zif_abapgit_object_enho~deserialize.
DATA: lv_spot_name TYPE enhspotname,
lv_shorttext TYPE string,
lv_enhname TYPE enhname,
lo_badi TYPE REF TO cl_enh_tool_badi_impl,
li_tool TYPE REF TO if_enh_tool,
lv_package TYPE devclass,
lt_impl TYPE enh_badi_impl_data_it.
FIELD-SYMBOLS: <ls_impl> LIKE LINE OF lt_impl.
io_xml->read( EXPORTING iv_name = 'SHORTTEXT'
CHANGING cg_data = lv_shorttext ).
io_xml->read( EXPORTING iv_name = 'SPOT_NAME'
CHANGING cg_data = lv_spot_name ).
io_xml->read( EXPORTING iv_name = 'IMPL'
CHANGING cg_data = lt_impl ).
lv_enhname = ms_item-obj_name.
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = lv_enhname
enhtype = cl_abstract_enh_tool_redef=>credefinition
enhtooltype = cl_enh_tool_badi_impl=>tooltype
IMPORTING
enhancement = li_tool
CHANGING
devclass = lv_package ).
lo_badi ?= li_tool.
lo_badi->set_spot_name( lv_spot_name ).
lo_badi->if_enh_object_docu~set_shorttext( lv_shorttext ).
LOOP AT lt_impl ASSIGNING <ls_impl>.
lo_badi->add_implementation( <ls_impl> ).
ENDLOOP.
lo_badi->if_enh_object~save( ).
lo_badi->if_enh_object~unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'error deserializing ENHO badi' ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
ENDCLASS. "zcl_abapgit_object_enho_badi IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_BADI</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,129 @@
CLASS zcl_abapgit_object_enho_class DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
DATA: mo_files TYPE REF TO zcl_abapgit_objects_files.
ENDCLASS.
CLASS zcl_abapgit_object_enho_class IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
mo_files = io_files.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~serialize.
DATA: lo_enh_class TYPE REF TO cl_enh_tool_class,
lt_owr TYPE enhmeth_tabkeys,
lt_pre TYPE enhmeth_tabkeys,
lt_post TYPE enhmeth_tabkeys,
lt_source TYPE rswsourcet,
lv_class TYPE seoclsname,
lv_shorttext TYPE string.
lo_enh_class ?= ii_enh_tool.
lv_shorttext = lo_enh_class->if_enh_object_docu~get_shorttext( ).
lt_owr = lo_enh_class->get_owr_methods( ).
lt_pre = lo_enh_class->get_pre_methods( ).
lt_post = lo_enh_class->get_post_methods( ).
lt_source = lo_enh_class->get_eimp_include( ).
lo_enh_class->get_class( IMPORTING class_name = lv_class ).
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( ig_data = lv_shorttext
iv_name = 'SHORTTEXT' ).
io_xml->add( iv_name = 'CLASS'
ig_data = lv_class ).
io_xml->add( iv_name = 'OWR_METHODS'
ig_data = lt_owr ).
io_xml->add( iv_name = 'PRE_METHODS'
ig_data = lt_pre ).
io_xml->add( iv_name = 'POST_METHODS'
ig_data = lt_post ).
mo_files->add_abap( lt_source ).
zcl_abapgit_object_enho_clif=>serialize(
io_xml = io_xml
io_files = mo_files
io_clif = lo_enh_class ).
ENDMETHOD. "zif_abapgit_object_enho~serialize
METHOD zif_abapgit_object_enho~deserialize.
DATA: lo_enh_class TYPE REF TO cl_enh_tool_class,
lt_owr TYPE enhmeth_tabkeys,
lt_pre TYPE enhmeth_tabkeys,
lt_post TYPE enhmeth_tabkeys,
lt_source TYPE rswsourcet,
li_tool TYPE REF TO if_enh_tool,
lv_shorttext TYPE string,
lv_class TYPE seoclsname,
lv_enhname TYPE enhname,
lv_package TYPE devclass.
io_xml->read( EXPORTING iv_name = 'SHORTTEXT'
CHANGING cg_data = lv_shorttext ).
io_xml->read( EXPORTING iv_name = 'OWR_METHODS'
CHANGING cg_data = lt_owr ).
io_xml->read( EXPORTING iv_name = 'PRE_METHODS'
CHANGING cg_data = lt_pre ).
io_xml->read( EXPORTING iv_name = 'POST_METHODS'
CHANGING cg_data = lt_post ).
io_xml->read( EXPORTING iv_name = 'CLASS'
CHANGING cg_data = lv_class ).
lt_source = mo_files->read_abap( ).
lv_enhname = ms_item-obj_name.
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = lv_enhname
enhtype = ''
enhtooltype = cl_enh_tool_class=>tooltype
IMPORTING
enhancement = li_tool
CHANGING
devclass = lv_package ).
lo_enh_class ?= li_tool.
lo_enh_class->if_enh_object_docu~set_shorttext( lv_shorttext ).
lo_enh_class->set_class( lv_class ).
lo_enh_class->set_owr_methods( version = 'I'
owr_methods = lt_owr ).
lo_enh_class->set_pre_methods( version = 'I'
pre_methods = lt_pre ).
lo_enh_class->set_post_methods( version = 'I'
post_methods = lt_post ).
lo_enh_class->set_eimp_include( version = 'I'
eimp_source = lt_source ).
zcl_abapgit_object_enho_clif=>deserialize(
io_xml = io_xml
io_clif = lo_enh_class ).
lo_enh_class->if_enh_object~save( ).
lo_enh_class->if_enh_object~unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'error deserializing ENHO class' ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
ENDCLASS. "zcl_abapgit_object_enho_class IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_CLASS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,155 @@
CLASS zcl_abapgit_object_enho_clif DEFINITION PUBLIC.
PUBLIC SECTION.
CLASS-METHODS:
deserialize
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input
io_clif TYPE REF TO cl_enh_tool_clif
RAISING zcx_abapgit_exception
cx_enh_root,
serialize
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output
io_files TYPE REF TO zcl_abapgit_objects_files
io_clif TYPE REF TO cl_enh_tool_clif
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-METHODS: serialize_includes
IMPORTING io_files TYPE REF TO zcl_abapgit_objects_files
io_clif TYPE REF TO cl_enh_tool_clif
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_enho_clif IMPLEMENTATION.
METHOD serialize_includes.
DATA: lt_includes TYPE enhnewmeth_tabincl_plus_enha,
lt_source TYPE TABLE OF abaptxt255,
lv_include TYPE programm.
FIELD-SYMBOLS: <ls_include> LIKE LINE OF lt_includes.
lt_includes = io_clif->get_enh_method_includes( ).
LOOP AT lt_includes ASSIGNING <ls_include>.
lv_include = io_clif->if_enh_tool~get_name( ).
TRANSLATE lv_include USING ' ='.
lv_include+30 = 'EM'.
lv_include+32(8) = <ls_include>-includenr.
CALL FUNCTION 'RPY_PROGRAM_READ'
EXPORTING
program_name = lv_include
with_lowercase = abap_true
TABLES
source_extended = lt_source
EXCEPTIONS
cancelled = 1
not_found = 2
permission_error = 3
OTHERS = 4.
IF sy-subrc = 0.
io_files->add_abap( iv_extra = |EM{ <ls_include>-includenr }|
it_abap = lt_source ).
ENDIF.
ENDLOOP.
ENDMETHOD. "serialize_includes
METHOD serialize.
DATA: lt_tab_attributes TYPE enhclasstabattrib,
lt_tab_methods TYPE enhnewmeth_tab.
FIELD-SYMBOLS: <ls_attr> LIKE LINE OF lt_tab_attributes,
<ls_meth> LIKE LINE OF lt_tab_methods.
io_clif->get_enhattributes(
IMPORTING
tab_attributes = lt_tab_attributes ).
io_clif->get_enh_new_methodes(
IMPORTING
tab_methodes = lt_tab_methods ).
serialize_includes( io_clif = io_clif
io_files = io_files ).
LOOP AT lt_tab_attributes ASSIGNING <ls_attr>.
CLEAR: <ls_attr>-author,
<ls_attr>-createdon,
<ls_attr>-changedby,
<ls_attr>-changedon.
ENDLOOP.
LOOP AT lt_tab_methods ASSIGNING <ls_meth>.
CLEAR: <ls_meth>-meth_header-author,
<ls_meth>-meth_header-createdon,
<ls_meth>-meth_header-changedby,
<ls_meth>-meth_header-changedon,
<ls_meth>-meth_header-descript_id.
ENDLOOP.
io_xml->add( iv_name = 'TAB_ATTRIBUTES'
ig_data = lt_tab_attributes ).
io_xml->add( iv_name = 'TAB_METHODS'
ig_data = lt_tab_methods ).
ENDMETHOD. "serialize
METHOD deserialize.
DATA: lt_tab_attributes TYPE enhclasstabattrib,
lt_tab_methods TYPE enhnewmeth_tab,
ls_header TYPE vseomethod,
ls_param TYPE vseomepara,
ls_exc TYPE vseoexcep.
FIELD-SYMBOLS: <ls_method> LIKE LINE OF lt_tab_methods,
<ls_param> LIKE LINE OF <ls_method>-meth_param,
<ls_exc> LIKE LINE OF <ls_method>-meth_exc.
io_xml->read( EXPORTING iv_name = 'TAB_ATTRIBUTES'
CHANGING cg_data = lt_tab_attributes ).
io_xml->read( EXPORTING iv_name = 'TAB_METHODS'
CHANGING cg_data = lt_tab_methods ).
io_clif->set_enhattributes( lt_tab_attributes ).
* todo: deserialize includes
* SAP standard SET_ENH_NEW_METHOS does not work
LOOP AT lt_tab_methods ASSIGNING <ls_method>.
MOVE-CORRESPONDING <ls_method>-meth_header TO ls_header.
io_clif->add_change_new_enh_method(
methkey = <ls_method>-methkey
method_header = ls_header ).
* parameters
LOOP AT <ls_method>-meth_param ASSIGNING <ls_param>.
MOVE-CORRESPONDING <ls_param> TO ls_param.
io_clif->add_change_enh_methparam(
methname = <ls_method>-methkey-cmpname
param_line = ls_param ).
ENDLOOP.
* exceptions
LOOP AT <ls_method>-meth_exc ASSIGNING <ls_exc>.
MOVE-CORRESPONDING <ls_exc> TO ls_exc.
io_clif->add_change_enh_methexc(
methname = <ls_method>-methkey-cmpname
except_line = ls_exc ).
ENDLOOP.
ENDLOOP.
ENDMETHOD. "deserialize
ENDCLASS. "zcl_abapgit_object_enho_clif IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_CLIF</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,118 @@
CLASS zcl_abapgit_object_enho_fugr DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item,
mo_files TYPE REF TO zcl_abapgit_objects_files.
ENDCLASS.
CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
mo_files = io_files.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~deserialize.
DATA: lo_fugrdata TYPE REF TO cl_enh_tool_fugr,
ls_enha_data TYPE enhfugrdata,
li_tool TYPE REF TO if_enh_tool,
tool TYPE enhtooltype,
lv_package TYPE devclass.
FIELD-SYMBOLS: <fuba> TYPE enhfugrfuncdata.
io_xml->read(
EXPORTING
iv_name = 'TOOL'
CHANGING
cg_data = tool ).
io_xml->read(
EXPORTING
iv_name = 'FUGRDATA'
CHANGING
cg_data = ls_enha_data ).
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = |{ ms_item-obj_name }|
enhtype = ''
enhtooltype = tool
IMPORTING
enhancement = li_tool
CHANGING
devclass = lv_package ).
lo_fugrdata ?= li_tool.
lo_fugrdata->set_fugr( ls_enha_data-fugr ).
LOOP AT ls_enha_data-enh_fubas ASSIGNING <fuba>.
lo_fugrdata->set_func_data( func_name = <fuba>-fuba
func_enhadata = <fuba> ).
ENDLOOP.
lo_fugrdata->if_enh_object~save( ).
lo_fugrdata->if_enh_object~unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( |error deserializing ENHO fugrdata { ms_item-obj_name }| ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
METHOD zif_abapgit_object_enho~serialize.
DATA: lo_fugrdata TYPE REF TO cl_enh_tool_fugr,
fugr_name TYPE rs38l-area,
ls_enha_data TYPE enhfugrdata.
FIELD-SYMBOLS: <docuobj> TYPE enhfugrparamdocu.
lo_fugrdata ?= ii_enh_tool.
lo_fugrdata->get_fugr(
IMPORTING
fugr_name = fugr_name ).
TRY.
lo_fugrdata->get_all_data_for_fugr(
EXPORTING
fugr_name = fugr_name
IMPORTING
enha_data = ls_enha_data ).
LOOP AT ls_enha_data-docuobjs ASSIGNING <docuobj>.
CLEAR: <docuobj>-shorttext,
<docuobj>-longtext.
ENDLOOP.
CATCH cx_enh_not_found.
zcx_abapgit_exception=>raise( |error deserializing ENHO fugrdata { ms_item-obj_name }| ).
ENDTRY.
io_xml->add( iv_name = 'TOOL'
ig_data = lo_fugrdata->if_enh_tool~get_tool( ) ).
io_xml->add( iv_name = 'FUGRDATA'
ig_data = ls_enha_data ).
ENDMETHOD. "zif_abapgit_object_enho~serialize
ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_FUGR</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,195 @@
CLASS zcl_abapgit_object_enho_hook DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
TYPES: BEGIN OF ty_spaces,
full_name TYPE string.
TYPES: spaces TYPE STANDARD TABLE OF i WITH DEFAULT KEY,
END OF ty_spaces.
TYPES: ty_spaces_tt TYPE STANDARD TABLE OF ty_spaces WITH DEFAULT KEY.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
DATA: mo_files TYPE REF TO zcl_abapgit_objects_files.
METHODS hook_impl_deserialize
IMPORTING it_spaces TYPE ty_spaces_tt
CHANGING ct_impl TYPE enh_hook_impl_it
RAISING zcx_abapgit_exception.
METHODS hook_impl_serialize
EXPORTING et_spaces TYPE ty_spaces_tt
CHANGING ct_impl TYPE enh_hook_impl_it
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_enho_hook IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
mo_files = io_files.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~serialize.
DATA: lv_shorttext TYPE string,
lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl,
ls_original_object TYPE enh_hook_admin,
lt_spaces TYPE ty_spaces_tt,
lt_enhancements TYPE enh_hook_impl_it.
lo_hook_impl ?= ii_enh_tool.
lv_shorttext = lo_hook_impl->if_enh_object_docu~get_shorttext( ).
lo_hook_impl->get_original_object(
IMPORTING
pgmid = ls_original_object-pgmid
obj_name = ls_original_object-org_obj_name
obj_type = ls_original_object-org_obj_type
main_type = ls_original_object-org_main_type
main_name = ls_original_object-org_main_name
program = ls_original_object-programname ).
ls_original_object-include_bound = lo_hook_impl->get_include_bound( ).
lt_enhancements = lo_hook_impl->get_hook_impls( ).
hook_impl_serialize(
IMPORTING et_spaces = lt_spaces
CHANGING ct_impl = lt_enhancements ).
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( ig_data = lv_shorttext
iv_name = 'SHORTTEXT' ).
io_xml->add( ig_data = ls_original_object
iv_name = 'ORIGINAL_OBJECT' ).
io_xml->add( iv_name = 'ENHANCEMENTS'
ig_data = lt_enhancements ).
io_xml->add( iv_name = 'SPACES'
ig_data = lt_spaces ).
ENDMETHOD. "zif_abapgit_object_enho~serialize
METHOD hook_impl_serialize.
* handle normalization of XML values
* i.e. remove leading spaces
FIELD-SYMBOLS: <ls_impl> LIKE LINE OF ct_impl,
<ls_space> LIKE LINE OF et_spaces,
<lv_space> TYPE i,
<lv_line> TYPE string.
LOOP AT ct_impl ASSIGNING <ls_impl>.
APPEND INITIAL LINE TO et_spaces ASSIGNING <ls_space>.
<ls_space>-full_name = <ls_impl>-full_name.
LOOP AT <ls_impl>-source ASSIGNING <lv_line>.
APPEND INITIAL LINE TO <ls_space>-spaces ASSIGNING <lv_space>.
WHILE strlen( <lv_line> ) >= 1 AND <lv_line>(1) = ` `.
<lv_line> = <lv_line>+1.
<lv_space> = <lv_space> + 1.
ENDWHILE.
ENDLOOP.
ENDLOOP.
ENDMETHOD. "hook_impl_serialize
METHOD hook_impl_deserialize.
FIELD-SYMBOLS: <ls_impl> LIKE LINE OF ct_impl,
<lv_line> TYPE string,
<lv_space> TYPE i,
<ls_spaces> LIKE LINE OF it_spaces.
LOOP AT ct_impl ASSIGNING <ls_impl>.
READ TABLE it_spaces ASSIGNING <ls_spaces> WITH KEY full_name = <ls_impl>-full_name.
IF sy-subrc = 0.
LOOP AT <ls_impl>-source ASSIGNING <lv_line>.
READ TABLE <ls_spaces>-spaces ASSIGNING <lv_space> INDEX sy-tabix.
IF sy-subrc = 0 AND <lv_space> > 0.
DO <lv_space> TIMES.
CONCATENATE space <lv_line> INTO <lv_line> RESPECTING BLANKS.
ENDDO.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDMETHOD. "hook_impl_deserialize
METHOD zif_abapgit_object_enho~deserialize.
DATA: lv_shorttext TYPE string,
lo_hook_impl TYPE REF TO cl_enh_tool_hook_impl,
li_tool TYPE REF TO if_enh_tool,
lv_enhname TYPE enhname,
lv_package TYPE devclass,
ls_original_object TYPE enh_hook_admin,
lt_spaces TYPE ty_spaces_tt,
lt_enhancements TYPE enh_hook_impl_it.
FIELD-SYMBOLS: <ls_enhancement> LIKE LINE OF lt_enhancements.
io_xml->read( EXPORTING iv_name = 'SHORTTEXT'
CHANGING cg_data = lv_shorttext ).
io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT'
CHANGING cg_data = ls_original_object ).
io_xml->read( EXPORTING iv_name = 'ENHANCEMENTS'
CHANGING cg_data = lt_enhancements ).
io_xml->read( EXPORTING iv_name = 'SPACES'
CHANGING cg_data = lt_spaces ).
hook_impl_deserialize( EXPORTING it_spaces = lt_spaces
CHANGING ct_impl = lt_enhancements ).
lv_enhname = ms_item-obj_name.
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = lv_enhname
enhtype = cl_abstract_enh_tool_redef=>credefinition
enhtooltype = cl_enh_tool_hook_impl=>tooltype
IMPORTING
enhancement = li_tool
CHANGING
devclass = lv_package ).
lo_hook_impl ?= li_tool.
lo_hook_impl->if_enh_object_docu~set_shorttext( lv_shorttext ).
lo_hook_impl->set_original_object(
pgmid = ls_original_object-pgmid
obj_name = ls_original_object-org_obj_name
obj_type = ls_original_object-org_obj_type
program = ls_original_object-programname
main_type = ls_original_object-org_main_type
main_name = ls_original_object-org_main_name ).
lo_hook_impl->set_include_bound( ls_original_object-include_bound ).
LOOP AT lt_enhancements ASSIGNING <ls_enhancement>.
lo_hook_impl->add_hook_impl(
overwrite = <ls_enhancement>-overwrite
method = <ls_enhancement>-method
enhmode = <ls_enhancement>-enhmode
full_name = <ls_enhancement>-full_name
source = <ls_enhancement>-source
spot = <ls_enhancement>-spotname
parent_full_name = <ls_enhancement>-parent_full_name ).
ENDLOOP.
lo_hook_impl->if_enh_object~save( ).
lo_hook_impl->if_enh_object~unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'error deserializing ENHO hook' ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
ENDCLASS. "zcl_abapgit_object_enho_hook IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_HOOK</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,94 @@
CLASS zcl_abapgit_object_enho_intf DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item,
mo_files TYPE REF TO zcl_abapgit_objects_files.
ENDCLASS.
CLASS zcl_abapgit_object_enho_intf IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
mo_files = io_files.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~serialize.
DATA: lo_enh_intf TYPE REF TO cl_enh_tool_intf,
lv_class TYPE seoclsname,
lv_shorttext TYPE string.
lo_enh_intf ?= ii_enh_tool.
lv_shorttext = lo_enh_intf->if_enh_object_docu~get_shorttext( ).
lo_enh_intf->get_class( IMPORTING class_name = lv_class ).
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( ig_data = lv_shorttext
iv_name = 'SHORTTEXT' ).
io_xml->add( iv_name = 'CLASS'
ig_data = lv_class ).
zcl_abapgit_object_enho_clif=>serialize(
io_xml = io_xml
io_files = mo_files
io_clif = lo_enh_intf ).
ENDMETHOD. "zif_abapgit_object_enho~serialize
METHOD zif_abapgit_object_enho~deserialize.
DATA: lo_enh_intf TYPE REF TO cl_enh_tool_intf,
li_tool TYPE REF TO if_enh_tool,
lv_shorttext TYPE string,
lv_class TYPE seoclsname,
lv_enhname TYPE enhname,
lv_package TYPE devclass.
io_xml->read( EXPORTING iv_name = 'SHORTTEXT'
CHANGING cg_data = lv_shorttext ).
io_xml->read( EXPORTING iv_name = 'CLASS'
CHANGING cg_data = lv_class ).
lv_enhname = ms_item-obj_name.
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = lv_enhname
enhtype = ''
enhtooltype = cl_enh_tool_intf=>tooltype
IMPORTING
enhancement = li_tool
CHANGING
devclass = lv_package ).
lo_enh_intf ?= li_tool.
lo_enh_intf->if_enh_object_docu~set_shorttext( lv_shorttext ).
lo_enh_intf->set_class( lv_class ).
zcl_abapgit_object_enho_clif=>deserialize(
io_xml = io_xml
io_clif = lo_enh_intf ).
lo_enh_intf->if_enh_object~save( ).
lo_enh_intf->if_enh_object~unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'error deserializing ENHO interface' ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
ENDCLASS. "zcl_abapgit_object_enho_interface IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_INTF</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,100 @@
CLASS zcl_abapgit_object_enho_wdyc DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS zcl_abapgit_object_enho_wdyc IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~deserialize.
DATA: lv_enhname TYPE enhname,
lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement,
li_tool TYPE REF TO if_enh_tool,
ls_obj TYPE wdy_config_key,
lv_package TYPE devclass.
io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT'
CHANGING cg_data = ls_obj ).
lv_enhname = ms_item-obj_name.
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = lv_enhname
enhtype = ''
enhtooltype = cl_wdr_cfg_enhancement=>tooltype
IMPORTING
enhancement = li_tool
CHANGING
devclass = lv_package ).
lo_wdyconf ?= li_tool.
* todo
* io_xml->read_xml()
* CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( )
* lo_wdyconf->set_enhancement_data( )
ASSERT 0 = 1.
lo_wdyconf->if_enh_object~save( ).
lo_wdyconf->if_enh_object~unlock( ).
CATCH cx_enh_root.
zcx_abapgit_exception=>raise( 'error deserializing ENHO wdyconf' ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
METHOD zif_abapgit_object_enho~serialize.
DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement,
lt_data TYPE wdy_cfg_expl_data_tab,
ls_outline TYPE wdy_cfg_outline_data,
ls_obj TYPE wdy_config_key,
li_document TYPE REF TO if_ixml_document,
li_element TYPE REF TO if_ixml_element.
lo_wdyconf ?= ii_enh_tool.
ls_obj = lo_wdyconf->get_original_object( ).
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( iv_name = 'ORIGINAL_OBJECT'
ig_data = ls_obj ).
* only works on new ABAP versions, parameters differ between versions
CALL METHOD lo_wdyconf->('GET_ENHANCEMENT_DATA')
EXPORTING
p_scope = 1
IMPORTING
p_enh_data = lt_data.
CALL METHOD cl_wdr_cfg_persistence_utils=>('COMP_TABLES_TO_XML')
EXPORTING
outline_data = ls_outline
expl_data_tab = lt_data
IMPORTING
element = li_element
CHANGING
document = li_document.
io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA'
ii_xml = li_element ).
ENDMETHOD. "zif_abapgit_object_enho~serialize
ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_WDYC</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,115 @@
CLASS zcl_abapgit_object_enho_wdyn DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
ENDMETHOD. "constructor
METHOD zif_abapgit_object_enho~deserialize.
DATA: ls_enh_data TYPE enhwdyn,
li_tool TYPE REF TO if_enh_tool,
lo_wdyn TYPE REF TO cl_enh_tool_wdy,
tool_type TYPE enhtooltype,
package TYPE devclass.
FIELD-SYMBOLS: <controller_data> TYPE enhwdyc,
<view_data> TYPE enhwdyv.
io_xml->read(
EXPORTING
iv_name = 'TOOL'
CHANGING
cg_data = tool_type ).
io_xml->read(
EXPORTING
iv_name = 'COMPONENT_DATA'
CHANGING
cg_data = ls_enh_data ).
package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = |{ ms_item-obj_name }|
enhtype = ''
enhtooltype = tool_type
IMPORTING
enhancement = li_tool
CHANGING
devclass = package ).
lo_wdyn ?= li_tool.
lo_wdyn->initialize( ls_enh_data-component_name ).
lo_wdyn->set_component_data( ls_enh_data-component_data ).
LOOP AT ls_enh_data-controller_data ASSIGNING <controller_data>.
lo_wdyn->set_controller_data( p_controller_name = <controller_data>-controller_name
p_enh_data = <controller_data> ).
ENDLOOP.
LOOP AT ls_enh_data-view_data ASSIGNING <view_data>.
lo_wdyn->set_view_data( p_view_name = <view_data>-view_name
p_enh_data = <view_data> ).
ENDLOOP.
lo_wdyn->if_enh_object~save( ).
lo_wdyn->if_enh_object~unlock( ).
CATCH cx_root.
zcx_abapgit_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~deserialize
METHOD zif_abapgit_object_enho~serialize.
DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy,
component_name TYPE wdy_component_name,
ls_enh_data TYPE enhwdyn.
lo_wdyn ?= ii_enh_tool.
component_name = lo_wdyn->get_component_name( ).
TRY.
lo_wdyn->get_all_data_for_comp(
EXPORTING
p_component_name = component_name
IMPORTING
p_enh_data = ls_enh_data ).
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( iv_name = 'COMPONENT_DATA'
ig_data = ls_enh_data ).
CATCH cx_enh_not_found.
zcx_abapgit_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ).
ENDTRY.
ENDMETHOD. "zif_abapgit_object_enho~serialize
ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHO_WDYN</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,182 @@
CLASS zcl_abapgit_object_enhs DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
PRIVATE SECTION.
METHODS:
factory
IMPORTING
iv_tool TYPE enhtooltype
RETURNING
VALUE(ri_enho) TYPE REF TO zif_abapgit_object_enhs
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_enhs IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~changed_by.
DATA: lv_spot_name TYPE enhspotname,
li_spot_ref TYPE REF TO if_enh_spot_tool.
lv_spot_name = ms_item-obj_name.
TRY.
li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ).
li_spot_ref->get_attributes( IMPORTING changedby = rv_user ).
CATCH cx_enh_root.
rv_user = c_user_unknown.
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~deserialize.
DATA: lv_parent TYPE enhspotcompositename,
lv_spot_name TYPE enhspotname,
lv_tool TYPE enhspottooltype,
lv_package LIKE iv_package,
li_spot_ref TYPE REF TO if_enh_spot_tool,
li_enhs TYPE REF TO zif_abapgit_object_enhs,
lx_root TYPE REF TO cx_root.
IF zif_abapgit_object~exists( ) = abap_true.
zif_abapgit_object~delete( ).
ENDIF.
io_xml->read( EXPORTING iv_name = 'TOOL'
CHANGING cg_data = lv_tool ).
lv_spot_name = ms_item-obj_name.
lv_package = iv_package.
TRY.
cl_enh_factory=>create_enhancement_spot(
EXPORTING
spot_name = lv_spot_name
tooltype = lv_tool
dark = abap_false
compositename = lv_parent
IMPORTING
spot = li_spot_ref
CHANGING
devclass = lv_package ).
CATCH cx_enh_root INTO lx_root.
zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ).
ENDTRY.
li_enhs = factory( lv_tool ).
li_enhs->deserialize( io_xml = io_xml
iv_package = iv_package
ii_enh_spot_tool = li_spot_ref ).
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~serialize.
DATA: lv_spot_name TYPE enhspotname,
li_spot_ref TYPE REF TO if_enh_spot_tool,
li_enhs TYPE REF TO zif_abapgit_object_enhs,
lx_root TYPE REF TO cx_root.
lv_spot_name = ms_item-obj_name.
TRY.
li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ).
CATCH cx_enh_root INTO lx_root.
zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ).
ENDTRY.
li_enhs = factory( li_spot_ref->get_tool( ) ).
li_enhs->serialize( io_xml = io_xml
ii_enh_spot_tool = li_spot_ref ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~exists.
DATA: lv_spot_name TYPE enhspotname,
li_spot_ref TYPE REF TO if_enh_spot_tool.
lv_spot_name = ms_item-obj_name.
TRY.
li_spot_ref = cl_enh_factory=>get_enhancement_spot( lv_spot_name ).
rv_bool = abap_true.
CATCH cx_enh_root.
rv_bool = abap_false.
ENDTRY.
ENDMETHOD. "exists
METHOD zif_abapgit_object~delete.
DATA: lv_spot_name TYPE enhspotname,
li_enh_object TYPE REF TO if_enh_object,
lx_root TYPE REF TO cx_root.
lv_spot_name = ms_item-obj_name.
TRY.
li_enh_object ?= cl_enh_factory=>get_enhancement_spot( spot_name = lv_spot_name
lock = abap_true ).
li_enh_object->delete( nevertheless_delete = abap_true
run_dark = abap_true ).
li_enh_object->unlock( ).
CATCH cx_enh_root INTO lx_root.
zcx_abapgit_exception=>raise( 'Error from CL_ENH_FACTORY' ).
ENDTRY.
ENDMETHOD. "delete
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
ENDMETHOD. "get_metadata
METHOD zif_abapgit_object~jump.
CALL FUNCTION 'RS_TOOL_ACCESS'
EXPORTING
operation = 'SHOW'
object_name = ms_item-obj_name
object_type = 'ENHS'
in_new_window = abap_true.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD factory.
CASE iv_tool.
WHEN cl_enh_tool_badi_def=>tooltype.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enhs_badi_d.
WHEN cl_enh_tool_hook_def=>tool_type.
CREATE OBJECT ri_enho TYPE zcl_abapgit_object_enhs_hook_d.
WHEN OTHERS.
zcx_abapgit_exception=>raise( |ENHS: Unsupported tool { iv_tool }| ).
ENDCASE.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_enhs

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,91 @@
CLASS zcl_abapgit_object_enhs_badi_d DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES: zif_abapgit_object_enhs.
ENDCLASS.
CLASS zcl_abapgit_object_enhs_badi_d IMPLEMENTATION.
METHOD zif_abapgit_object_enhs~deserialize.
DATA: lv_parent TYPE enhspotcompositename,
lt_enh_badi TYPE enh_badi_data_it,
lo_badidef_tool TYPE REF TO cl_enh_tool_badi_def,
lv_enh_shorttext TYPE string,
* lv_package LIKE iv_package,
li_enh_object TYPE REF TO if_enh_object,
li_enh_object_docu TYPE REF TO if_enh_object_docu,
lv_text TYPE string,
lx_error TYPE REF TO cx_enh_root.
FIELD-SYMBOLS: <ls_enh_badi> LIKE LINE OF lt_enh_badi.
io_xml->read( EXPORTING iv_name = 'PARENT_COMP'
CHANGING cg_data = lv_parent ).
io_xml->read( EXPORTING iv_name = 'BADI_DATA'
CHANGING cg_data = lt_enh_badi ).
io_xml->read( EXPORTING iv_name = 'SHORTTEXT'
CHANGING cg_data = lv_enh_shorttext ).
* lv_package = iv_package.
li_enh_object ?= ii_enh_spot_tool.
li_enh_object_docu ?= ii_enh_spot_tool.
TRY.
li_enh_object_docu->set_shorttext( lv_enh_shorttext ).
lo_badidef_tool ?= ii_enh_spot_tool.
LOOP AT lt_enh_badi ASSIGNING <ls_enh_badi>.
lo_badidef_tool->add_badi_def( <ls_enh_badi> ).
ENDLOOP.
li_enh_object->save( ).
li_enh_object->activate( ).
li_enh_object->unlock( ).
CATCH cx_enh_root INTO lx_error.
lv_text = lx_error->get_text( ).
zcx_abapgit_exception=>raise( lv_text ).
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object_enhs~serialize.
DATA: lv_spot_name TYPE enhspotname,
lv_parent TYPE enhspotcompositename,
lt_enh_badi TYPE enh_badi_data_it,
lo_badidef_tool TYPE REF TO cl_enh_tool_badi_def,
lv_enh_shorttext TYPE string,
li_enh_object_docu TYPE REF TO if_enh_object_docu.
lo_badidef_tool ?= ii_enh_spot_tool.
li_enh_object_docu ?= ii_enh_spot_tool.
lv_enh_shorttext = li_enh_object_docu->get_shorttext( ).
"get parent = composite enhs (ENHC)
lv_parent = cl_r3standard_persistence=>enh_find_parent_composite( lv_spot_name ).
"get subsequent BADI definitions
lt_enh_badi = lo_badidef_tool->get_badi_defs( ).
io_xml->add( ig_data = ii_enh_spot_tool->get_tool( )
iv_name = 'TOOL' ).
io_xml->add( ig_data = lv_enh_shorttext
iv_name = 'SHORTTEXT' ).
io_xml->add( ig_data = lv_parent
iv_name = 'PARENT_COMP' ).
io_xml->add( ig_data = lt_enh_badi
iv_name = 'BADI_DATA' ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHS_BADI_D</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,105 @@
CLASS zcl_abapgit_object_enhs_hook_d DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES: zif_abapgit_object_enhs.
PRIVATE SECTION.
TYPES: BEGIN OF ty_hook_defifnition,
pgmid TYPE pgmid,
obj_name TYPE trobj_name,
obj_type TYPE trobjtype,
main_type TYPE trobjtype,
main_name TYPE eu_aname,
program TYPE progname,
def_hooks TYPE enh_hook_def_ext_it,
END OF ty_hook_defifnition.
ENDCLASS.
CLASS zcl_abapgit_object_enhs_hook_d IMPLEMENTATION.
METHOD zif_abapgit_object_enhs~deserialize.
DATA: lv_enh_shorttext TYPE string,
ls_enh_hook_definition TYPE enh_hook_def,
ls_hook_definition TYPE ty_hook_defifnition,
li_enh_object TYPE REF TO if_enh_object,
li_enh_object_docu TYPE REF TO if_enh_object_docu,
lo_hookdef_tool TYPE REF TO cl_enh_tool_hook_def,
lx_error TYPE REF TO cx_enh_root,
lv_text TYPE string.
FIELD-SYMBOLS: <ls_hook_definition> TYPE enh_hook_def_ext.
io_xml->read( EXPORTING iv_name = 'SHORTTEXT'
CHANGING cg_data = lv_enh_shorttext ).
io_xml->read( EXPORTING iv_name = 'BADI_DATA'
CHANGING cg_data = ls_hook_definition ).
li_enh_object ?= ii_enh_spot_tool.
li_enh_object_docu ?= ii_enh_spot_tool.
TRY.
li_enh_object_docu->set_shorttext( lv_enh_shorttext ).
lo_hookdef_tool ?= ii_enh_spot_tool.
lo_hookdef_tool->set_original_object( pgmid = ls_hook_definition-pgmid
obj_name = ls_hook_definition-obj_name
obj_type = ls_hook_definition-obj_type
program = ls_hook_definition-program
main_type = ls_hook_definition-main_type
main_name = ls_hook_definition-main_name ).
LOOP AT ls_hook_definition-def_hooks ASSIGNING <ls_hook_definition>.
MOVE-CORRESPONDING <ls_hook_definition> TO ls_enh_hook_definition.
lo_hookdef_tool->add_hook_def( ls_enh_hook_definition ).
ENDLOOP.
li_enh_object->save( ).
li_enh_object->activate( ).
li_enh_object->unlock( ).
CATCH cx_enh_root INTO lx_error.
lv_text = lx_error->get_text( ).
zcx_abapgit_exception=>raise( lv_text ).
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object_enhs~serialize.
DATA: lo_hookdef_tool TYPE REF TO cl_enh_tool_hook_def,
lv_enh_shorttext TYPE string,
li_enh_object_docu TYPE REF TO if_enh_object_docu,
ls_hook_definition TYPE ty_hook_defifnition.
lo_hookdef_tool ?= ii_enh_spot_tool.
li_enh_object_docu ?= ii_enh_spot_tool.
lv_enh_shorttext = li_enh_object_docu->get_shorttext( ).
ls_hook_definition-def_hooks = lo_hookdef_tool->get_hook_defs( ).
lo_hookdef_tool->get_original_object(
IMPORTING
pgmid = ls_hook_definition-pgmid
obj_name = ls_hook_definition-obj_name
obj_type = ls_hook_definition-obj_type
main_type = ls_hook_definition-main_type
main_name = ls_hook_definition-main_name
program = ls_hook_definition-program ).
io_xml->add( ig_data = ii_enh_spot_tool->get_tool( )
iv_name = 'TOOL' ).
io_xml->add( ig_data = lv_enh_shorttext
iv_name = 'SHORTTEXT' ).
io_xml->add( ig_data = ls_hook_definition
iv_name = 'BADI_DATA' ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENHS_HOOK_D</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,26 +1,12 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_ENUQ
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_enqu DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_enqu DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_enqu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
ENDCLASS. "lcl_object_dtel DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_dtel IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_enqu IMPLEMENTATION.
CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -186,7 +172,7 @@ CLASS lcl_object_enqu IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_enqu IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_enqu IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENQU</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,22 +1,15 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_ENSC
*&---------------------------------------------------------------------*
CLASS lcl_object_ensc DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_ensc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
ENDCLASS. "lcl_object_ensc
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_ensc IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_object_ensc IMPLEMENTATION.
CLASS zcl_abapgit_object_ensc IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "zif_abapgit_object~has_changed_since
ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
rv_user = c_user_unknown. " todo
@ -191,7 +184,7 @@ CLASS lcl_object_ensc IMPLEMENTATION.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_ensc
ENDCLASS. "zcl_abapgit_object_ensc

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_ENSC</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,10 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_FORM
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_form DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_form DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -47,26 +41,26 @@ CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL.
METHODS _save_form
IMPORTING
it_lines TYPE lcl_object_form=>tyt_lines
it_lines TYPE zcl_abapgit_object_form=>tyt_lines
CHANGING
cs_form_data TYPE lcl_object_form=>tys_form_data.
cs_form_data TYPE zcl_abapgit_object_form=>tys_form_data.
METHODS _extract_tdlines
IMPORTING
is_form_data TYPE lcl_object_form=>tys_form_data
is_form_data TYPE zcl_abapgit_object_form=>tys_form_data
RETURNING
VALUE(et_lines) TYPE lcl_object_form=>tyt_lines
VALUE(et_lines) TYPE zcl_abapgit_object_form=>tyt_lines
RAISING
zcx_abapgit_exception.
METHODS _clear_changed_fields
CHANGING
cs_form_data TYPE lcl_object_form=>tys_form_data.
cs_form_data TYPE zcl_abapgit_object_form=>tys_form_data.
METHODS _compress_lines
IMPORTING
is_form_data TYPE lcl_object_form=>tys_form_data
it_lines TYPE lcl_object_form=>tyt_lines
is_form_data TYPE zcl_abapgit_object_form=>tys_form_data
it_lines TYPE zcl_abapgit_object_form=>tyt_lines
RAISING
zcx_abapgit_exception.
@ -74,22 +68,19 @@ CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL.
IMPORTING
iv_object_name TYPE zif_abapgit_definitions=>ty_item-obj_name
RETURNING
VALUE(et_text_header) TYPE lcl_object_form=>tyt_text_header.
VALUE(et_text_header) TYPE zcl_abapgit_object_form=>tyt_text_header.
METHODS _read_form
IMPORTING
is_text_header TYPE lcl_object_form=>tys_text_header
is_text_header TYPE zcl_abapgit_object_form=>tys_text_header
EXPORTING
ev_form_found TYPE flag
es_form_data TYPE lcl_object_form=>tys_form_data
et_lines TYPE lcl_object_form=>tyt_lines.
es_form_data TYPE zcl_abapgit_object_form=>tys_form_data
et_lines TYPE zcl_abapgit_object_form=>tyt_lines.
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_form IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_object_form IMPLEMENTATION.
CLASS zcl_abapgit_object_form IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -259,7 +250,7 @@ CLASS lcl_object_form IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD _build_extra_from_header.
@ -415,4 +406,4 @@ CLASS lcl_object_form IMPLEMENTATION.
ENDMETHOD.
ENDCLASS. "lcl_object_FORM IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_FORM IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_FORM</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_FUGR
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_fugr DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_fugr DEFINITION INHERITING FROM lcl_objects_program FINAL.
CLASS zcl_abapgit_object_fugr DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_program FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -76,14 +67,9 @@ CLASS lcl_object_fugr DEFINITION INHERITING FROM lcl_objects_program FINAL.
RETURNING VALUE(rv_return) TYPE abap_bool
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_fugr DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_dtel IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_fugr IMPLEMENTATION.
CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -792,7 +778,7 @@ CLASS lcl_object_fugr IMPLEMENTATION.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_fugr IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_fugr IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_FUGR</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_iamu
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_iamu DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iamu DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_iamu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -45,12 +36,7 @@ CLASS lcl_object_iamu DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_iamu IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iamu IMPLEMENTATION.
CLASS zcl_abapgit_object_iamu IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -176,7 +162,7 @@ CLASS lcl_object_iamu IMPLEMENTATION.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_IAMU</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_IARP
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_iarp DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iarp DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_iarp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -24,14 +15,9 @@ CLASS lcl_object_iarp DEFINITION INHERITING FROM lcl_objects_super FINAL.
it_parameters TYPE w3resopara_tabletype
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_dtel DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_iarp IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iarp IMPLEMENTATION.
CLASS zcl_abapgit_object_iarp IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -195,7 +181,7 @@ CLASS lcl_object_iarp IMPLEMENTATION.
ENDMETHOD. "zif_abapgit_object~jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_iarp IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_iarp IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_IARP</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_IASP
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_iasp DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iasp DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_iasp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -24,14 +15,9 @@ CLASS lcl_object_iasp DEFINITION INHERITING FROM lcl_objects_super FINAL.
it_parameters TYPE w3servpara_tabletype
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_dtel DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_iasp IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iasp IMPLEMENTATION.
CLASS zcl_abapgit_object_iasp IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -195,7 +181,7 @@ CLASS lcl_object_iasp IMPLEMENTATION.
ENDMETHOD. "zif_abapgit_object~jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_iasp IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_iasp IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_IASP</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_IATU
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_iatu DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iatu DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_iatu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -24,14 +15,9 @@ CLASS lcl_object_iatu DEFINITION INHERITING FROM lcl_objects_super FINAL.
iv_source TYPE string
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_iatu DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_iatu IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_iatu IMPLEMENTATION.
CLASS zcl_abapgit_object_iatu IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -212,7 +198,7 @@ CLASS lcl_object_iatu IMPLEMENTATION.
ENDMETHOD. "zif_abapgit_object~jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_iatu IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_iatu IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_IATU</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_INTF
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_intf DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_intf DEFINITION FINAL INHERITING FROM lcl_objects_program.
CLASS zcl_abapgit_object_intf DEFINITION PUBLIC FINAL INHERITING FROM zcl_abapgit_objects_program.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
@ -26,21 +17,20 @@ CLASS lcl_object_intf DEFINITION FINAL INHERITING FROM lcl_objects_program.
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
DATA mo_object_oriented_object_fct TYPE REF TO lif_oo_object_fnc.
DATA mo_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc.
METHODS serialize_xml
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_intf DEFINITION
ENDCLASS.
CLASS lcl_object_intf IMPLEMENTATION.
CLASS zcl_abapgit_object_intf IMPLEMENTATION.
METHOD constructor.
super->constructor(
is_item = is_item
iv_language = iv_language ).
mo_object_oriented_object_fct = lcl_oo_factory=>make( iv_object_type = ms_item-obj_type ).
mo_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( iv_object_type = ms_item-obj_type ).
ENDMETHOD.
METHOD zif_abapgit_object~deserialize.
@ -214,7 +204,7 @@ CLASS lcl_object_intf IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~delete.
@ -259,77 +249,3 @@ CLASS lcl_object_intf IMPLEMENTATION.
ENDMETHOD.
ENDCLASS.
CLASS lcl_oo_interface DEFINITION
INHERITING FROM lcl_oo_base.
PUBLIC SECTION.
METHODS:
lif_oo_object_fnc~create REDEFINITION,
lif_oo_object_fnc~get_includes REDEFINITION,
lif_oo_object_fnc~get_interface_properties REDEFINITION,
lif_oo_object_fnc~delete REDEFINITION.
ENDCLASS.
CLASS lcl_oo_interface IMPLEMENTATION.
METHOD lif_oo_object_fnc~create.
CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE'
EXPORTING
devclass = iv_package
overwrite = iv_overwrite
CHANGING
interface = is_properties
EXCEPTIONS
existing = 1
is_class = 2
db_error = 3
component_error = 4
no_access = 5
other = 6
OTHERS = 7.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error from SEO_INTERFACE_CREATE_COMPLETE' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~get_includes.
DATA lv_interface_name TYPE seoclsname.
lv_interface_name = iv_object_name.
APPEND cl_oo_classname_service=>get_interfacepool_name( lv_interface_name ) TO rt_includes.
ENDMETHOD.
METHOD lif_oo_object_fnc~get_interface_properties.
CALL FUNCTION 'SEO_CLIF_GET'
EXPORTING
cifkey = is_interface_key
version = seoc_version_active
IMPORTING
interface = rs_interface_properties
EXCEPTIONS
not_existing = 1
deleted = 2
model_only = 3
OTHERS = 4.
IF sy-subrc = 1.
RETURN. " in case only inactive version exists
ELSEIF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'error from seo_clif_get' ).
ENDIF.
ENDMETHOD.
METHOD lif_oo_object_fnc~delete.
CALL FUNCTION 'SEO_INTERFACE_DELETE_COMPLETE'
EXPORTING
intkey = is_deletion_key
EXCEPTIONS
not_existing = 1
is_class = 2
db_error = 3
no_access = 4
other = 5
OTHERS = 6.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error from SEO_INTERFACE_DELETE_COMPLETE' ).
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_INTF</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_jobd
*&---------------------------------------------------------------------*
CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_jobd DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -12,7 +8,7 @@ CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
CLASS lcl_object_jobd IMPLEMENTATION.
CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -193,7 +189,7 @@ CLASS lcl_object_jobd IMPLEMENTATION.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_JOBD</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_MSAG
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_msag DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_msag DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_msag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -30,14 +21,9 @@ CLASS lcl_object_msag DEFINITION INHERITING FROM lcl_objects_super FINAL.
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_msag DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_view IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_msag IMPLEMENTATION.
CLASS zcl_abapgit_object_msag IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -299,7 +285,7 @@ CLASS lcl_object_msag IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_msag IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_MSAG</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_NROB
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_nrob DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_nrob DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_nrob DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -18,14 +9,9 @@ CLASS lcl_object_nrob DEFINITION INHERITING FROM lcl_objects_super FINAL.
delete_intervals IMPORTING iv_object TYPE inri-object
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_nrob DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_nrob IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_nrob IMPLEMENTATION.
CLASS zcl_abapgit_object_nrob IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -285,7 +271,7 @@ CLASS lcl_object_nrob IMPLEMENTATION.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_nrob IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_nrob IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_NROB</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,26 +1,12 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_PARA
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_para DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_para DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_para DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
ALIASES mo_files FOR zif_abapgit_object~mo_files.
ENDCLASS. "lcl_object_para DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_para IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_para IMPLEMENTATION.
CLASS zcl_abapgit_object_para IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -145,7 +131,7 @@ CLASS lcl_object_para IMPLEMENTATION.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_para IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_para IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_PARA</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_PINF
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_PINF DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_pinf DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_pinf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -38,14 +29,9 @@ CLASS lcl_object_pinf DEFINITION INHERITING FROM lcl_objects_super FINAL.
ii_interface TYPE REF TO if_package_interface
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_PINF DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_PINF IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_pinf IMPLEMENTATION.
CLASS zcl_abapgit_object_pinf IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
@ -356,7 +342,7 @@ CLASS lcl_object_pinf IMPLEMENTATION.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_PINF IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_PINF IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_PINF</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,8 +1,4 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_prag
*&---------------------------------------------------------------------*
CLASS lcl_object_prag DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_prag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -30,7 +26,7 @@ CLASS lcl_object_prag DEFINITION INHERITING FROM lcl_objects_super FINAL.
ENDCLASS.
CLASS lcl_object_prag IMPLEMENTATION.
CLASS zcl_abapgit_object_prag IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -68,7 +64,7 @@ CLASS lcl_object_prag IMPLEMENTATION.
METHOD zif_abapgit_object~serialize.
DATA: lo_pragma TYPE REF TO cl_abap_pragma,
pragma TYPE lcl_object_prag=>ty_pragma.
pragma TYPE zcl_abapgit_object_prag=>ty_pragma.
TRY.
lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ).
@ -151,7 +147,7 @@ CLASS lcl_object_prag IMPLEMENTATION.
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_PRAG</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_PROG
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_prog DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_prog DEFINITION INHERITING FROM lcl_objects_program FINAL.
CLASS zcl_abapgit_object_prog DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_program FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -28,14 +19,9 @@ CLASS lcl_object_prog DEFINITION INHERITING FROM lcl_objects_program FINAL.
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_prog DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_prog IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_prog IMPLEMENTATION.
CLASS zcl_abapgit_object_prog IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
@ -113,7 +99,7 @@ CLASS lcl_object_prog IMPLEMENTATION.
" Texts serializing (translations)
serialize_texts( io_xml ).
ENDMETHOD. "lif_serialize~serialize
ENDMETHOD. "zif_abapgit_serialize~serialize
METHOD zif_abapgit_object~deserialize.
@ -156,10 +142,10 @@ CLASS lcl_object_prog IMPLEMENTATION.
" Texts deserializing (translations)
deserialize_texts( io_xml ).
ENDMETHOD. "lif_serialize~deserialize
ENDMETHOD. "zif_abapgit_serialize~deserialize
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD. "zif_abapgit_object~compare_to_remote_version
METHOD serialize_texts.
@ -213,4 +199,4 @@ CLASS lcl_object_prog IMPLEMENTATION.
ENDMETHOD. "deserialize_texts
ENDCLASS. "lcl_object_prog IMPLEMENTATION
ENDCLASS. "zcl_abapgit_object_prog IMPLEMENTATION

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_PROG</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,31 @@
CLASS zcl_abapgit_object_samc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_saxx_super FINAL.
PROTECTED SECTION.
METHODS:
get_persistence_class_name REDEFINITION,
get_data_class_name REDEFINITION,
get_data_structure_name REDEFINITION.
ENDCLASS.
CLASS zcl_abapgit_object_samc IMPLEMENTATION.
METHOD get_data_class_name.
r_data_class_name = 'CL_AMC_APPLICATION_OBJ_DATA'.
ENDMETHOD.
METHOD get_data_structure_name.
r_data_structure_name = 'AMC_APPLICATION_COMPLETE'.
ENDMETHOD.
METHOD get_persistence_class_name.
r_persistence_class_name = 'CL_AMC_APPLICATION_OBJ_PERS'.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_SAMC</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,31 @@
CLASS zcl_abapgit_object_sapc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_saxx_super FINAL.
PROTECTED SECTION.
METHODS:
get_persistence_class_name REDEFINITION,
get_data_class_name REDEFINITION,
get_data_structure_name REDEFINITION.
ENDCLASS.
CLASS zcl_abapgit_object_sapc IMPLEMENTATION.
METHOD get_data_class_name.
r_data_class_name = 'CL_APC_APPLICATION_OBJ_DATA'.
ENDMETHOD.
METHOD get_data_structure_name.
r_data_structure_name = 'APC_APPLICATION_COMPLETE'.
ENDMETHOD.
METHOD get_persistence_class_name.
r_persistence_class_name = 'CL_APC_APPLICATION_OBJ_PERS'.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_SAPC</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,4 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_SFBF
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_SFBF DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_sfbf DEFINITION INHERITING FROM lcl_objects_super FINAL.
CLASS zcl_abapgit_object_sfbf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
@ -18,57 +9,12 @@ CLASS lcl_object_sfbf DEFINITION INHERITING FROM lcl_objects_super FINAL.
RETURNING VALUE(ro_bf) TYPE REF TO cl_sfw_bf
RAISING zcx_abapgit_exception.
ENDCLASS. "lcl_object_SFBF DEFINITION
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_object_SFBF IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_sfbf IMPLEMENTATION.
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~changed_by.
CLASS ZCL_ABAPGIT_OBJECT_SFBF IMPLEMENTATION.
DATA: ls_data TYPE sfw_bf.
ls_data = get( )->get_header_data( ).
rv_user = ls_data-changedby.
IF rv_user IS INITIAL.
rv_user = ls_data-author.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
rs_metadata-ddic = abap_true.
ENDMETHOD. "zif_abapgit_object~get_metadata
METHOD zif_abapgit_object~exists.
DATA: ls_tadir TYPE tadir,
lv_bf TYPE sfw_bfunction.
lv_bf = ms_item-obj_name.
IF cl_sfw_bf=>check_existence( lv_bf ) = abap_false.
RETURN.
ENDIF.
ls_tadir = lcl_tadir=>read_single(
iv_object = ms_item-obj_type
iv_obj_name = ms_item-obj_name ).
IF ls_tadir IS INITIAL.
RETURN.
ENDIF.
rv_bool = abap_true.
ENDMETHOD. "zif_abapgit_object~exists
METHOD get.
@ -88,68 +34,47 @@ CLASS lcl_object_sfbf IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~serialize.
DATA: lo_bf TYPE REF TO cl_sfw_bf,
ls_header TYPE sfw_bf,
lv_name_32 TYPE sfw_name32,
lv_name_80 TYPE sfw_name80,
lt_assigned_switches TYPE sfw_swbf_outtab,
lt_dependancies TYPE sfw_depend_outtab,
ls_sfw_bfc_kw TYPE sfw_bfc_kw,
ls_sfw_bfc_tc TYPE sfw_bfc_tc,
ls_sfw_bfc_rn TYPE sfw_bfc_rn,
lt_parent_bfs TYPE sfw_bs_bf_outtab.
METHOD zif_abapgit_object~changed_by.
DATA: ls_data TYPE sfw_bf.
IF zif_abapgit_object~exists( ) = abap_false.
RETURN.
ls_data = get( )->get_header_data( ).
rv_user = ls_data-changedby.
IF rv_user IS INITIAL.
rv_user = ls_data-author.
ENDIF.
lo_bf = get( ).
ENDMETHOD.
ls_header = lo_bf->get_header_data( ).
CLEAR: ls_header-author,
ls_header-createdon,
ls_header-changedby,
ls_header-changedon,
ls_header-timestamp.
lo_bf->get_texts(
IMPORTING
p_32 = lv_name_32
p_80 = lv_name_80 ).
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
lt_assigned_switches = lo_bf->get_assigned_switches( ).
lt_dependancies = lo_bf->get_excluded_bf( ).
lo_bf->get_content_data(
IMPORTING
ex_sfw_bfc_kw = ls_sfw_bfc_kw
ex_sfw_bfc_tc = ls_sfw_bfc_tc
ex_sfw_bfc_rn = ls_sfw_bfc_rn ).
lt_parent_bfs = lo_bf->get_parent_bfs( ).
io_xml->add( ig_data = ls_header
iv_name = 'HEADER' ).
io_xml->add( ig_data = lv_name_32
iv_name = 'NAME32' ).
io_xml->add( ig_data = lv_name_80
iv_name = 'NAME80' ).
METHOD zif_abapgit_object~delete.
io_xml->add( ig_data = lt_assigned_switches
iv_name = 'ASSIGNED_SWITCHES' ).
io_xml->add( ig_data = lt_dependancies
iv_name = 'DEPENDANCIES' ).
io_xml->add( ig_data = ls_sfw_bfc_kw
iv_name = 'CONTENT_KW' ).
io_xml->add( ig_data = ls_sfw_bfc_tc
iv_name = 'CONTENT_TC' ).
io_xml->add( ig_data = ls_sfw_bfc_rn
iv_name = 'CONTENT_RN' ).
io_xml->add( ig_data = lt_parent_bfs
iv_name = 'PARENT_BFS' ).
DATA: lv_bf TYPE sfw_bfunction,
lt_delete TYPE sfw_bftab,
lt_msgtab TYPE sprot_u_tab.
lv_bf = ms_item-obj_name.
APPEND lv_bf TO lt_delete.
cl_sfw_activate=>delete_sfbf( EXPORTING p_bfuncts = lt_delete
IMPORTING p_msgtab = lt_msgtab ).
READ TABLE lt_msgtab WITH KEY severity = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
zcx_abapgit_exception=>raise( 'Error deleting SFBF' ).
ENDIF.
ENDMETHOD. "delete
ENDMETHOD. "serialize
METHOD zif_abapgit_object~deserialize.
@ -217,25 +142,39 @@ CLASS lcl_object_sfbf IMPLEMENTATION.
ENDMETHOD. "deserialize
METHOD zif_abapgit_object~delete.
DATA: lv_bf TYPE sfw_bfunction,
lt_delete TYPE sfw_bftab,
lt_msgtab TYPE sprot_u_tab.
METHOD zif_abapgit_object~exists.
DATA: ls_tadir TYPE tadir,
lv_bf TYPE sfw_bfunction.
lv_bf = ms_item-obj_name.
APPEND lv_bf TO lt_delete.
cl_sfw_activate=>delete_sfbf( EXPORTING p_bfuncts = lt_delete
IMPORTING p_msgtab = lt_msgtab ).
READ TABLE lt_msgtab WITH KEY severity = 'E' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
zcx_abapgit_exception=>raise( 'Error deleting SFBF' ).
IF cl_sfw_bf=>check_existence( lv_bf ) = abap_false.
RETURN.
ENDIF.
ENDMETHOD. "delete
SELECT SINGLE * FROM tadir INTO ls_tadir
WHERE pgmid = 'R3TR'
AND object = ms_item-obj_type
AND obj_name = ms_item-obj_name.
IF ls_tadir IS INITIAL.
RETURN.
ENDIF.
rv_bool = abap_true.
ENDMETHOD. "zif_abapgit_object~exists
METHOD zif_abapgit_object~get_metadata.
rs_metadata = get_metadata( ).
rs_metadata-ddic = abap_true.
ENDMETHOD. "zif_abapgit_object~get_metadata
METHOD zif_abapgit_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~jump.
@ -248,8 +187,67 @@ CLASS lcl_object_sfbf IMPLEMENTATION.
ENDMETHOD. "jump
METHOD zif_abapgit_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
ENDMETHOD.
ENDCLASS. "lcl_object_SFBF IMPLEMENTATION
METHOD zif_abapgit_object~serialize.
DATA: lo_bf TYPE REF TO cl_sfw_bf,
ls_header TYPE sfw_bf,
lv_name_32 TYPE sfw_name32,
lv_name_80 TYPE sfw_name80,
lt_assigned_switches TYPE sfw_swbf_outtab,
lt_dependancies TYPE sfw_depend_outtab,
ls_sfw_bfc_kw TYPE sfw_bfc_kw,
ls_sfw_bfc_tc TYPE sfw_bfc_tc,
ls_sfw_bfc_rn TYPE sfw_bfc_rn,
lt_parent_bfs TYPE sfw_bs_bf_outtab.
IF zif_abapgit_object~exists( ) = abap_false.
RETURN.
ENDIF.
lo_bf = get( ).
ls_header = lo_bf->get_header_data( ).
CLEAR: ls_header-author,
ls_header-createdon,
ls_header-changedby,
ls_header-changedon,
ls_header-timestamp.
lo_bf->get_texts(
IMPORTING
p_32 = lv_name_32
p_80 = lv_name_80 ).
lt_assigned_switches = lo_bf->get_assigned_switches( ).
lt_dependancies = lo_bf->get_excluded_bf( ).
lo_bf->get_content_data(
IMPORTING
ex_sfw_bfc_kw = ls_sfw_bfc_kw
ex_sfw_bfc_tc = ls_sfw_bfc_tc
ex_sfw_bfc_rn = ls_sfw_bfc_rn ).
lt_parent_bfs = lo_bf->get_parent_bfs( ).
io_xml->add( ig_data = ls_header
iv_name = 'HEADER' ).
io_xml->add( ig_data = lv_name_32
iv_name = 'NAME32' ).
io_xml->add( ig_data = lv_name_80
iv_name = 'NAME80' ).
io_xml->add( ig_data = lt_assigned_switches
iv_name = 'ASSIGNED_SWITCHES' ).
io_xml->add( ig_data = lt_dependancies
iv_name = 'DEPENDANCIES' ).
io_xml->add( ig_data = ls_sfw_bfc_kw
iv_name = 'CONTENT_KW' ).
io_xml->add( ig_data = ls_sfw_bfc_tc
iv_name = 'CONTENT_TC' ).
io_xml->add( ig_data = ls_sfw_bfc_rn
iv_name = 'CONTENT_RN' ).
io_xml->add( ig_data = lt_parent_bfs
iv_name = 'PARENT_BFS' ).
ENDMETHOD. "serialize
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_SFBF</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

Some files were not shown because too many files have changed in this diff Show More