mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
parent
85d364d460
commit
803148fa0f
|
@ -67,11 +67,11 @@ CLASS ZCL_ABAPGIT_2FA_AUTH_REGISTRY IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD get_authenticator_for_url.
|
||||
FIELD-SYMBOLS: <lo_authenticator> LIKE LINE OF gt_registered_authenticators.
|
||||
FIELD-SYMBOLS: <li_authenticator> LIKE LINE OF gt_registered_authenticators.
|
||||
|
||||
LOOP AT gt_registered_authenticators ASSIGNING <lo_authenticator>.
|
||||
IF <lo_authenticator>->supports_url( iv_url ) = abap_true.
|
||||
ro_authenticator = <lo_authenticator>.
|
||||
LOOP AT gt_registered_authenticators ASSIGNING <li_authenticator>.
|
||||
IF <li_authenticator>->supports_url( iv_url ) = abap_true.
|
||||
ro_authenticator = <li_authenticator>.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
|
|
@ -6,36 +6,46 @@ CLASS zcl_abapgit_object_auth DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_auth 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
|
||||
CLASS ZCL_ABAPGIT_OBJECT_AUTH IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
* looks like "changed by user" is not stored in the database
|
||||
rv_user = c_user_unknown.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: ls_authx TYPE authx.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
SELECT SINGLE * FROM authx INTO ls_authx
|
||||
WHERE fieldname = ms_item-obj_name. "#EC CI_GENBUFF
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_fieldname TYPE authx-fieldname.
|
||||
|
||||
|
||||
lv_fieldname = ms_item-obj_name.
|
||||
|
||||
* there is a bug in SAP standard, the TADIR entries are not deleted
|
||||
* when the AUTH object is deleted in transaction SU20
|
||||
CALL FUNCTION 'SUSR_AUTF_DELETE_FIELD'
|
||||
EXPORTING
|
||||
fieldname = lv_fieldname
|
||||
EXCEPTIONS
|
||||
delete_not_possible = 1
|
||||
field_in_use = 2
|
||||
not_existing = 3
|
||||
no_authority = 4
|
||||
OTHERS = 5.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
zcx_abapgit_exception=>raise( 'error from SUSR_AUTF_DELETE_FIELD' ).
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'AUTHX'
|
||||
ig_data = ls_authx ).
|
||||
ENDMETHOD. "zif_abapgit_object~delete
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
* see include LSAUT_FIELDF02
|
||||
|
@ -63,29 +73,6 @@ CLASS zcl_abapgit_object_auth IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~deserialize
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_fieldname TYPE authx-fieldname.
|
||||
|
||||
|
||||
lv_fieldname = ms_item-obj_name.
|
||||
|
||||
* there is a bug in SAP standard, the TADIR entries are not deleted
|
||||
* when the AUTH object is deleted in transaction SU20
|
||||
CALL FUNCTION 'SUSR_AUTF_DELETE_FIELD'
|
||||
EXPORTING
|
||||
fieldname = lv_fieldname
|
||||
EXCEPTIONS
|
||||
delete_not_possible = 1
|
||||
field_in_use = 2
|
||||
not_existing = 3
|
||||
no_authority = 4
|
||||
OTHERS = 5.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from SUSR_AUTF_DELETE_FIELD' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~delete
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
|
@ -99,22 +86,45 @@ CLASS zcl_abapgit_object_auth IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
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.
|
||||
|
||||
DATA: field TYPE fieldname.
|
||||
DATA: lv_field TYPE fieldname.
|
||||
|
||||
field = ms_item-obj_name.
|
||||
lv_field = ms_item-obj_name.
|
||||
|
||||
* TODO, this function module does not exist in 702
|
||||
CALL FUNCTION 'SU20_MAINTAIN_SNGL'
|
||||
EXPORTING
|
||||
id_field = field
|
||||
id_field = lv_field
|
||||
id_wbo_mode = abap_false.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~jump
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_auth IMPLEMENTATION
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: ls_authx TYPE authx.
|
||||
|
||||
|
||||
SELECT SINGLE * FROM authx INTO ls_authx
|
||||
WHERE fieldname = ms_item-obj_name. "#EC CI_GENBUFF
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'AUTHX'
|
||||
ig_data = ls_authx ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~serialize
|
||||
ENDCLASS.
|
||||
|
|
|
@ -33,150 +33,140 @@ CLASS zcl_abapgit_object_clas_old DEFINITION PUBLIC INHERITING FROM zcl_abapgit_
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_clas_old IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
DATA:
|
||||
lt_includes TYPE seoincl_t.
|
||||
|
||||
FIELD-SYMBOLS <incl> LIKE LINE OF lt_includes.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_CLAS_OLD IMPLEMENTATION.
|
||||
|
||||
lt_includes = mo_object_oriented_object_fct->get_includes( ms_item-obj_name ).
|
||||
LOOP AT lt_includes ASSIGNING <incl>.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = <incl>
|
||||
iv_timestamp = iv_timestamp
|
||||
iv_skip_gui = abap_true ).
|
||||
IF rv_changed = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
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.
|
||||
|
||||
TYPES: BEGIN OF ty_includes,
|
||||
programm TYPE programm,
|
||||
END OF ty_includes.
|
||||
|
||||
TYPES: BEGIN OF ty_reposrc,
|
||||
unam TYPE reposrc-unam,
|
||||
udat TYPE reposrc-udat,
|
||||
utime TYPE reposrc-utime,
|
||||
END OF ty_reposrc.
|
||||
|
||||
DATA: lt_reposrc TYPE STANDARD TABLE OF ty_reposrc,
|
||||
ls_reposrc LIKE LINE OF lt_reposrc,
|
||||
lt_includes TYPE STANDARD TABLE OF ty_includes.
|
||||
|
||||
lt_includes = mo_object_oriented_object_fct->get_includes( ms_item-obj_name ).
|
||||
ASSERT lines( lt_includes ) > 0.
|
||||
|
||||
SELECT unam udat utime FROM reposrc
|
||||
INTO TABLE lt_reposrc
|
||||
FOR ALL ENTRIES IN lt_includes
|
||||
WHERE progname = lt_includes-programm
|
||||
AND r3state = 'A'.
|
||||
IF sy-subrc <> 0.
|
||||
rv_user = c_user_unknown.
|
||||
ELSE.
|
||||
SORT lt_reposrc BY udat DESCENDING utime DESCENDING.
|
||||
READ TABLE lt_reposrc INDEX 1 INTO ls_reposrc.
|
||||
ASSERT sy-subrc = 0.
|
||||
rv_user = ls_reposrc-unam.
|
||||
ENDIF.
|
||||
|
||||
METHOD constructor.
|
||||
super->constructor(
|
||||
is_item = is_item
|
||||
iv_language = iv_language ).
|
||||
mo_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
DATA: ls_class_key TYPE seoclskey.
|
||||
|
||||
METHOD deserialize_abap.
|
||||
|
||||
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.
|
||||
|
||||
rv_bool = mo_object_oriented_object_fct->exists( iv_object_name = ls_class_key ).
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
io_xml->read( EXPORTING iv_name = 'VSEOCLASS'
|
||||
CHANGING cg_data = ls_vseoclass ).
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
mo_object_oriented_object_fct->create(
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = 'CLAS'
|
||||
in_new_window = abap_true.
|
||||
ENDMETHOD. "jump
|
||||
iv_package = iv_package
|
||||
CHANGING
|
||||
is_properties = ls_vseoclass ).
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
DATA: ls_clskey TYPE seoclskey.
|
||||
ls_clskey-clsname = ms_item-obj_name.
|
||||
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->delete( ls_clskey ).
|
||||
ENDMETHOD. "delete
|
||||
mo_object_oriented_object_fct->deserialize_source(
|
||||
is_key = ls_class_key
|
||||
it_source = lt_source ).
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS'
|
||||
CHANGING cg_data = lt_descriptions ).
|
||||
|
||||
DATA: lt_source TYPE seop_source_string,
|
||||
ls_class_key TYPE seoclskey.
|
||||
mo_object_oriented_object_fct->update_descriptions(
|
||||
is_key = ls_class_key
|
||||
it_descriptions = lt_descriptions ).
|
||||
|
||||
ls_class_key-clsname = ms_item-obj_name.
|
||||
mo_object_oriented_object_fct->add_to_activation_list( ms_item ).
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
IF zif_abapgit_object~exists( ) = abap_false.
|
||||
|
||||
METHOD deserialize_docu.
|
||||
|
||||
DATA: lt_lines TYPE tlinetab,
|
||||
lv_object TYPE dokhl-object.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'LINES'
|
||||
CHANGING cg_data = lt_lines ).
|
||||
|
||||
IF lt_lines[] IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SEO_BUFFER_REFRESH'
|
||||
EXPORTING
|
||||
version = seoc_version_active
|
||||
force = seox_true.
|
||||
CALL FUNCTION 'SEO_BUFFER_REFRESH'
|
||||
EXPORTING
|
||||
version = seoc_version_inactive
|
||||
force = seox_true.
|
||||
lv_object = ms_item-obj_name.
|
||||
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap( ls_class_key ).
|
||||
mo_object_oriented_object_fct->create_documentation(
|
||||
it_lines = lt_lines
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
ENDMETHOD.
|
||||
|
||||
mo_files->add_abap( lt_source ).
|
||||
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_locals_def ).
|
||||
IF NOT lt_source[] IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = 'locals_def'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
METHOD deserialize_sotr.
|
||||
"OTR stands for Online Text Repository
|
||||
DATA: lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'SOTR'
|
||||
CHANGING cg_data = lt_sotr ).
|
||||
|
||||
IF lines( lt_sotr ) = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_locals_imp ).
|
||||
IF NOT lt_source[] IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = 'locals_imp'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
mo_object_oriented_object_fct->create_sotr(
|
||||
iv_package = iv_package
|
||||
it_sotr = lt_sotr ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD deserialize_tpool.
|
||||
|
||||
DATA: lv_clsname TYPE seoclsname,
|
||||
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
|
||||
lt_tpool TYPE textpool_table.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'TPOOL'
|
||||
CHANGING cg_data = lt_tpool_ext ).
|
||||
lt_tpool = read_tpool( lt_tpool_ext ).
|
||||
|
||||
IF lt_tpool[] IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_testclasses ).
|
||||
lv_clsname = ms_item-obj_name.
|
||||
|
||||
mv_skip_testclass = mo_object_oriented_object_fct->get_skip_test_classes( ).
|
||||
IF NOT lt_source[] IS INITIAL AND mv_skip_testclass = abap_false.
|
||||
mo_files->add_abap( iv_extra = 'testclasses'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_macros ).
|
||||
IF NOT lt_source[] IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = 'macros'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
serialize_xml( io_xml ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
mo_object_oriented_object_fct->insert_text_pool(
|
||||
iv_class_name = lv_clsname
|
||||
it_text_pool = lt_tpool
|
||||
iv_language = mv_language ).
|
||||
|
||||
ENDMETHOD. "deserialize_textpool
|
||||
|
||||
|
||||
METHOD serialize_xml.
|
||||
|
@ -251,6 +241,56 @@ CLASS zcl_abapgit_object_clas_old IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "serialize_xml
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
TYPES: BEGIN OF ty_includes,
|
||||
programm TYPE programm,
|
||||
END OF ty_includes.
|
||||
|
||||
TYPES: BEGIN OF ty_reposrc,
|
||||
unam TYPE reposrc-unam,
|
||||
udat TYPE reposrc-udat,
|
||||
utime TYPE reposrc-utime,
|
||||
END OF ty_reposrc.
|
||||
|
||||
DATA: lt_reposrc TYPE STANDARD TABLE OF ty_reposrc,
|
||||
ls_reposrc LIKE LINE OF lt_reposrc,
|
||||
lt_includes TYPE STANDARD TABLE OF ty_includes.
|
||||
|
||||
lt_includes = mo_object_oriented_object_fct->get_includes( ms_item-obj_name ).
|
||||
ASSERT lines( lt_includes ) > 0.
|
||||
|
||||
SELECT unam udat utime FROM reposrc
|
||||
INTO TABLE lt_reposrc
|
||||
FOR ALL ENTRIES IN lt_includes
|
||||
WHERE progname = lt_includes-programm
|
||||
AND r3state = 'A'.
|
||||
IF sy-subrc <> 0.
|
||||
rv_user = c_user_unknown.
|
||||
ELSE.
|
||||
SORT lt_reposrc BY udat DESCENDING utime DESCENDING.
|
||||
READ TABLE lt_reposrc INDEX 1 INTO ls_reposrc.
|
||||
ASSERT sy-subrc = 0.
|
||||
rv_user = ls_reposrc-unam.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
DATA: ls_clskey TYPE seoclskey.
|
||||
ls_clskey-clsname = ms_item-obj_name.
|
||||
|
||||
mo_object_oriented_object_fct->delete( ls_clskey ).
|
||||
ENDMETHOD. "delete
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
deserialize_abap( io_xml = io_xml
|
||||
iv_package = iv_package ).
|
||||
|
@ -263,134 +303,109 @@ CLASS zcl_abapgit_object_clas_old IMPLEMENTATION.
|
|||
deserialize_docu( io_xml ).
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
METHOD deserialize_sotr.
|
||||
"OTR stands for Online Text Repository
|
||||
DATA: lt_sotr TYPE zif_abapgit_definitions=>ty_sotr_tt.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'SOTR'
|
||||
CHANGING cg_data = lt_sotr ).
|
||||
METHOD zif_abapgit_object~exists.
|
||||
DATA: ls_class_key TYPE seoclskey.
|
||||
ls_class_key-clsname = ms_item-obj_name.
|
||||
|
||||
IF lines( lt_sotr ) = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_bool = mo_object_oriented_object_fct->exists( iv_object_name = ls_class_key ).
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
DATA: lt_includes TYPE seoincl_t.
|
||||
|
||||
FIELD-SYMBOLS <lv_incl> LIKE LINE OF lt_includes.
|
||||
|
||||
|
||||
lt_includes = mo_object_oriented_object_fct->get_includes( ms_item-obj_name ).
|
||||
LOOP AT lt_includes ASSIGNING <lv_incl>.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = <lv_incl>
|
||||
iv_timestamp = iv_timestamp
|
||||
iv_skip_gui = abap_true ).
|
||||
IF rv_changed = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
mo_object_oriented_object_fct->create_sotr(
|
||||
iv_package = iv_package
|
||||
it_sotr = lt_sotr ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD deserialize_docu.
|
||||
|
||||
DATA: lt_lines TYPE tlinetab,
|
||||
lv_object TYPE dokhl-object.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'LINES'
|
||||
CHANGING cg_data = lt_lines ).
|
||||
|
||||
IF lt_lines[] IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lv_object = ms_item-obj_name.
|
||||
|
||||
mo_object_oriented_object_fct->create_documentation(
|
||||
it_lines = lt_lines
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD deserialize_tpool.
|
||||
|
||||
DATA: lv_clsname TYPE seoclsname,
|
||||
lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt,
|
||||
lt_tpool TYPE textpool_table.
|
||||
METHOD zif_abapgit_object~jump.
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = 'CLAS'
|
||||
in_new_window = abap_true.
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'TPOOL'
|
||||
CHANGING cg_data = lt_tpool_ext ).
|
||||
lt_tpool = read_tpool( lt_tpool_ext ).
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
IF lt_tpool[] IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lv_clsname = ms_item-obj_name.
|
||||
|
||||
mo_object_oriented_object_fct->insert_text_pool(
|
||||
iv_class_name = lv_clsname
|
||||
it_text_pool = lt_tpool
|
||||
iv_language = mv_language ).
|
||||
|
||||
ENDMETHOD. "deserialize_textpool
|
||||
|
||||
METHOD deserialize_abap.
|
||||
|
||||
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
|
||||
DATA: lt_source TYPE seop_source_string,
|
||||
ls_class_key TYPE seoclskey.
|
||||
|
||||
ls_class_key-clsname = ms_item-obj_name.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'VSEOCLASS'
|
||||
CHANGING cg_data = ls_vseoclass ).
|
||||
IF zif_abapgit_object~exists( ) = abap_false.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
mo_object_oriented_object_fct->create(
|
||||
CALL FUNCTION 'SEO_BUFFER_REFRESH'
|
||||
EXPORTING
|
||||
iv_package = iv_package
|
||||
CHANGING
|
||||
is_properties = ls_vseoclass ).
|
||||
version = seoc_version_active
|
||||
force = seox_true.
|
||||
CALL FUNCTION 'SEO_BUFFER_REFRESH'
|
||||
EXPORTING
|
||||
version = seoc_version_inactive
|
||||
force = seox_true.
|
||||
|
||||
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 ).
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap( ls_class_key ).
|
||||
|
||||
mo_object_oriented_object_fct->deserialize_source(
|
||||
is_key = ls_class_key
|
||||
it_source = lt_source ).
|
||||
mo_files->add_abap( lt_source ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DESCRIPTIONS'
|
||||
CHANGING cg_data = lt_descriptions ).
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_locals_def ).
|
||||
IF NOT lt_source[] IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = 'locals_def'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
mo_object_oriented_object_fct->update_descriptions(
|
||||
is_key = ls_class_key
|
||||
it_descriptions = lt_descriptions ).
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_locals_imp ).
|
||||
IF NOT lt_source[] IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = 'locals_imp'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
mo_object_oriented_object_fct->add_to_activation_list( ms_item ).
|
||||
ENDMETHOD. "deserialize
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_testclasses ).
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
mv_skip_testclass = mo_object_oriented_object_fct->get_skip_test_classes( ).
|
||||
IF NOT lt_source[] IS INITIAL AND mv_skip_testclass = abap_false.
|
||||
mo_files->add_abap( iv_extra = 'testclasses'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
METHOD constructor.
|
||||
super->constructor(
|
||||
is_item = is_item
|
||||
iv_language = iv_language ).
|
||||
mo_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ).
|
||||
ENDMETHOD.
|
||||
lt_source = mo_object_oriented_object_fct->serialize_abap(
|
||||
is_class_key = ls_class_key
|
||||
iv_type = seop_ext_class_macros ).
|
||||
IF NOT lt_source[] IS INITIAL.
|
||||
mo_files->add_abap( iv_extra = 'macros'
|
||||
it_abap = lt_source ). "#EC NOTEXT
|
||||
ENDIF.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_CLAS IMPLEMENTATION
|
||||
serialize_xml( io_xml ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
ENDCLASS.
|
||||
|
|
|
@ -14,7 +14,10 @@ CLASS zcl_abapgit_object_cmpt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_CMPT IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
|
@ -31,15 +34,10 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
DATA: mi_cmp_template TYPE REF TO object.
|
||||
DATA: lo_cmp_template TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB')
|
||||
|
@ -47,9 +45,9 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_ref_template = mi_cmp_template.
|
||||
r_ref_template = lo_cmp_template.
|
||||
|
||||
CALL METHOD mi_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER')
|
||||
CALL METHOD lo_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER')
|
||||
RECEIVING
|
||||
r_user = rv_user.
|
||||
|
||||
|
@ -59,77 +57,57 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: name TYPE c LENGTH 30.
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
name = ms_item-obj_name.
|
||||
DATA: lv_deleted TYPE abap_bool.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~DELETE_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = name
|
||||
i_version = 'A'
|
||||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true
|
||||
RECEIVING
|
||||
r_flg_exists = rv_bool.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_template TYPE REF TO data.
|
||||
FIELD-SYMBOLS: <template> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <template>.
|
||||
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~READ_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_template = <template>.
|
||||
|
||||
io_xml->add( iv_name = 'CMPT'
|
||||
ig_data = <template> ).
|
||||
r_flg_deleted = lv_deleted.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
IF lv_deleted = abap_false.
|
||||
zcx_abapgit_exception=>raise( |Error deleting CMPT { ms_item-obj_name }| ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_template TYPE REF TO data.
|
||||
FIELD-SYMBOLS: <template> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_template> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <template>.
|
||||
ASSIGN lr_template->* TO <lg_template>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'CMPT'
|
||||
CHANGING
|
||||
cg_data = <template> ).
|
||||
cg_data = <lg_template> ).
|
||||
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~SAVE_TEMPLATE')
|
||||
EXPORTING
|
||||
i_template_db = <template>
|
||||
i_template_db = <lg_template>
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true.
|
||||
|
||||
|
@ -157,27 +135,39 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: deleted TYPE abap_bool.
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_name TYPE c LENGTH 30.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~DELETE_TEMPLATE')
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
|
||||
EXPORTING
|
||||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true
|
||||
i_name = lv_name
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_flg_deleted = deleted.
|
||||
r_flg_exists = rv_bool.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
IF deleted = abap_false.
|
||||
zcx_abapgit_exception=>raise( |Error deleting CMPT { ms_item-obj_name }| ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -200,10 +190,30 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_template TYPE REF TO data.
|
||||
FIELD-SYMBOLS: <lg_template> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <lg_template>.
|
||||
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~READ_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_template = <lg_template>.
|
||||
|
||||
io_xml->add( iv_name = 'CMPT'
|
||||
ig_data = <lg_template> ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -6,33 +6,97 @@ CLASS zcl_abapgit_object_dcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DCLS IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
|
||||
rs_metadata-ddic = abap_true.
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: li_dcl TYPE REF TO object.
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_dcl TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = li_dcl.
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD li_dcl->('CHECK_EXISTENCE')
|
||||
CALL METHOD lo_dcl->('DELETE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
|
||||
CREATE DATA lr_data TYPE ('ACM_S_DCLSRC').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DCLS'
|
||||
CHANGING
|
||||
cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<lg_field> = mo_files->read_string( 'asdcls' ).
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
iv_put_state = 'A'
|
||||
is_dclsrc = <lg_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'.
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lo_dcl TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('CHECK_EXISTENCE')
|
||||
EXPORTING
|
||||
iv_objectname = ms_item-obj_name
|
||||
RECEIVING
|
||||
|
@ -44,6 +108,20 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
|
||||
rs_metadata-ddic = abap_true.
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
TRY.
|
||||
|
@ -57,129 +135,63 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: li_dcl TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = li_dcl.
|
||||
|
||||
CALL METHOD li_dcl->('DELETE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
li_dcl TYPE REF TO object.
|
||||
lo_dcl TYPE REF TO object.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
CREATE DATA lr_data TYPE ('ACM_S_DCLSRC').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = li_dcl.
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD li_dcl->('READ')
|
||||
CALL METHOD lo_dcl->('READ')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
IMPORTING
|
||||
es_dclsrc = <ls_data>.
|
||||
es_dclsrc = <lg_data>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4DATE' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSIGN COMPONENT 'AS4DATE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4TIME' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSIGN COMPONENT 'AS4TIME' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
mo_files->add_string( iv_ext = 'asdcls' iv_string = <field> ).
|
||||
mo_files->add_string( iv_ext = 'asdcls' iv_string = <lg_field> ).
|
||||
|
||||
CLEAR <field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'DCLS'
|
||||
ig_data = <ls_data> ).
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
li_dcl TYPE REF TO object.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
CREATE DATA lr_data TYPE ('ACM_S_DCLSRC').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DCLS'
|
||||
CHANGING
|
||||
cg_data = <ls_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <ls_data> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<field> = mo_files->read_string( 'asdcls' ).
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = li_dcl.
|
||||
|
||||
CALL METHOD li_dcl->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
iv_put_state = 'A'
|
||||
is_dclsrc = <ls_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'.
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DCLS error' ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -11,40 +11,96 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD open_adt_stob.
|
||||
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
DATA: lo_ddl TYPE REF TO object.
|
||||
|
||||
FIELD-SYMBOLS: <lt_ddnames> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS: <lt_entity_view> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS: <lg_ddnames> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_entity_view> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_ddname> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_ddlname> TYPE any.
|
||||
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
|
||||
ASSIGN lr_data->* TO <lt_ddnames>.
|
||||
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_ddnames>.
|
||||
ASSIGN lr_data->* TO <lg_ddnames>.
|
||||
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
|
||||
ASSIGN lr_data->* TO <lt_entity_view>.
|
||||
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_entity_view>.
|
||||
ASSIGN lr_data->* TO <lg_entity_view>.
|
||||
|
||||
CLEAR <lt_ddnames>.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_ddnames> TO <lg_ddname>.
|
||||
<lg_ddname> = iv_ddls_name.
|
||||
INSERT <lg_ddnames> INTO TABLE <lt_ddnames>.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
|
||||
EXPORTING
|
||||
ddnames = <lt_ddnames>
|
||||
IMPORTING
|
||||
view_of_entity = <lt_entity_view>.
|
||||
|
||||
READ TABLE <lt_entity_view> ASSIGNING <lg_entity_view> INDEX 1.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE <lg_entity_view> TO <lg_ddlname>.
|
||||
|
||||
jump_adt( i_obj_name = <lg_ddlname>
|
||||
i_obj_type = 'DDLS' ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS Jump Error' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "open_adt_stob
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
DATA: li_ddl TYPE REF TO object,
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||
<lv_field> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = li_ddl.
|
||||
handler = lo_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
get_state = 'A'
|
||||
IMPORTING
|
||||
ddddlsrcv_wa = <ls_data>.
|
||||
ddddlsrcv_wa = <lg_data>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <ls_data> TO <lv_field>.
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
rv_user = <lv_field>.
|
||||
rv_user = <lg_field>.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -55,25 +111,88 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~changed_by
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
|
||||
rs_metadata-ddic = abap_true.
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
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
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_state TYPE objstate,
|
||||
li_ddl TYPE REF TO object.
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object.
|
||||
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = li_ddl.
|
||||
handler = lo_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~DELETE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error deleting' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DDLS'
|
||||
CHANGING cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<lg_field> = mo_files->read_string( 'asddls' ) ##no_text.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~WRITE_TADIR')
|
||||
EXPORTING
|
||||
objectname = ms_item-obj_name
|
||||
devclass = iv_package
|
||||
prid = 0.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error writing TADIR' ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_state TYPE objstate,
|
||||
lo_ddl TYPE REF TO object.
|
||||
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
get_state = 'A'
|
||||
|
@ -90,6 +209,20 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
|
||||
rs_metadata-ddic = abap_true.
|
||||
rs_metadata-delete_tadir = 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.
|
||||
|
||||
DATA: lv_typename TYPE typename.
|
||||
|
@ -113,174 +246,54 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: li_ddl TYPE REF TO object.
|
||||
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = li_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~DELETE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error deleting' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: li_ddl TYPE REF TO object,
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||
<lv_field> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = li_ddl.
|
||||
handler = lo_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
get_state = 'A'
|
||||
IMPORTING
|
||||
ddddlsrcv_wa = <ls_data>.
|
||||
ddddlsrcv_wa = <lg_data>.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error reading' ).
|
||||
ENDTRY.
|
||||
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <ls_data> TO <lv_field>.
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lv_field>.
|
||||
ASSIGN COMPONENT 'AS4DATE' OF STRUCTURE <ls_data> TO <lv_field>.
|
||||
CLEAR <lg_field>.
|
||||
ASSIGN COMPONENT 'AS4DATE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lv_field>.
|
||||
ASSIGN COMPONENT 'AS4TIME' OF STRUCTURE <ls_data> TO <lv_field>.
|
||||
CLEAR <lg_field>.
|
||||
ASSIGN COMPONENT 'AS4TIME' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lv_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <ls_data> TO <lv_field>.
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
mo_files->add_string( iv_ext = 'asddls'
|
||||
iv_string = <lv_field> ) ##no_text.
|
||||
iv_string = <lg_field> ) ##no_text.
|
||||
|
||||
CLEAR <lv_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'DDLS'
|
||||
ig_data = <ls_data> ).
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: li_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||
<lv_field> TYPE any.
|
||||
|
||||
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DDLS'
|
||||
CHANGING cg_data = <ls_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <ls_data> TO <lv_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<lv_field> = mo_files->read_string( 'asddls' ) ##no_text.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = li_ddl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <ls_data>.
|
||||
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~WRITE_TADIR')
|
||||
EXPORTING
|
||||
objectname = ms_item-obj_name
|
||||
devclass = iv_package
|
||||
prid = 0.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS error writing TADIR' ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
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
|
||||
|
||||
METHOD open_adt_stob.
|
||||
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
DATA: li_ddl TYPE REF TO object.
|
||||
FIELD-SYMBOLS: <lt_ddnames> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS: <lt_entity_view> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS: <ls_ddnames> TYPE any.
|
||||
FIELD-SYMBOLS: <ls_entity_view> TYPE any.
|
||||
FIELD-SYMBOLS: <lv_ddname> TYPE any.
|
||||
FIELD-SYMBOLS: <lv_ddlname> TYPE any.
|
||||
TRY.
|
||||
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
|
||||
ASSIGN lr_data->* TO <lt_ddnames>.
|
||||
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_ddnames>.
|
||||
ASSIGN lr_data->* TO <ls_ddnames>.
|
||||
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
|
||||
ASSIGN lr_data->* TO <lt_entity_view>.
|
||||
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_entity_view>.
|
||||
ASSIGN lr_data->* TO <ls_entity_view>.
|
||||
|
||||
CLEAR <lt_ddnames>.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <ls_ddnames> TO <lv_ddname>.
|
||||
<lv_ddname> = iv_ddls_name.
|
||||
INSERT <ls_ddnames> INTO TABLE <lt_ddnames>.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = li_ddl.
|
||||
|
||||
CALL METHOD li_ddl->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
|
||||
EXPORTING
|
||||
ddnames = <lt_ddnames>
|
||||
IMPORTING
|
||||
view_of_entity = <lt_entity_view>.
|
||||
|
||||
READ TABLE <lt_entity_view> ASSIGNING <ls_entity_view> INDEX 1.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE <ls_entity_view> TO <lv_ddlname>.
|
||||
|
||||
jump_adt( i_obj_name = <lv_ddlname>
|
||||
i_obj_type = 'DDLS' ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'DDLS Jump Error' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "open_adt_stob
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_view IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -26,156 +26,55 @@ CLASS zcl_abapgit_object_ddlx DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown.
|
||||
ENDMETHOD.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DDLX IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
METHOD clear_field.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey.
|
||||
FIELD-SYMBOLS: <lg_field> TYPE data.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
ASSIGN COMPONENT iv_fieldname
|
||||
OF STRUCTURE cs_metadata
|
||||
TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
TRY.
|
||||
get_persistence( )->get( p_object_key = lv_object_key
|
||||
p_version = swbm_version_active
|
||||
p_existence_check_only = abap_true ).
|
||||
|
||||
CATCH cx_swb_exception.
|
||||
rv_bool = abap_false.
|
||||
ENDTRY.
|
||||
CLEAR: <lg_field>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
TRY.
|
||||
jump_adt( i_obj_name = ms_item-obj_name
|
||||
i_obj_type = ms_item-obj_type ).
|
||||
METHOD clear_fields.
|
||||
|
||||
CATCH zcx_abapgit_exception.
|
||||
zcx_abapgit_exception=>raise( 'DDLX Jump Error' ).
|
||||
ENDTRY.
|
||||
FIELD-SYMBOLS: <lg_metadata> TYPE any.
|
||||
|
||||
ENDMETHOD.
|
||||
ASSIGN COMPONENT 'METADATA'
|
||||
OF STRUCTURE cs_data
|
||||
TO <lg_metadata>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
clear_field( EXPORTING iv_fieldname = 'CHANGED_AT'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
lo_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
clear_field( EXPORTING iv_fieldname = 'CHANGED_BY'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
clear_field( EXPORTING iv_fieldname = 'CREATED_AT'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT lo_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
clear_field( EXPORTING iv_fieldname = 'CREATED_BY'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
get_persistence( )->delete( p_object_key = lv_object_key
|
||||
p_version = swbm_version_active ).
|
||||
clear_field( EXPORTING iv_fieldname = 'RESPONSIBLE'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
clear_field( EXPORTING iv_fieldname = 'PACKAGE_REF-NAME'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
ENDMETHOD.
|
||||
clear_field( EXPORTING iv_fieldname = 'CONTAINER_REF-PACKAGE_NAME'
|
||||
CHANGING cs_metadata = <lg_metadata> ).
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
lo_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lo_persistence TYPE REF TO if_wb_object_persist,
|
||||
lr_data TYPE REF TO data,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
|
||||
CREATE OBJECT lo_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
lo_persistence = get_persistence( ).
|
||||
lo_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_version = swbm_version_active
|
||||
CHANGING
|
||||
p_object_data = lo_data_model ).
|
||||
|
||||
lo_data_model->get_data(
|
||||
IMPORTING
|
||||
p_data = <ls_data> ).
|
||||
|
||||
clear_fields( CHANGING cs_data = <ls_data> ).
|
||||
|
||||
io_xml->add( iv_name = 'DDLX'
|
||||
ig_data = <ls_data> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lo_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lr_data TYPE REF TO data,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DDLX'
|
||||
CHANGING
|
||||
cg_data = <ls_data> ).
|
||||
|
||||
CREATE OBJECT lo_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
lo_data_model->set_data( <ls_data> ).
|
||||
|
||||
get_persistence( )->save( lo_data_model ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -198,50 +97,161 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_fields.
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown.
|
||||
ENDMETHOD.
|
||||
|
||||
FIELD-SYMBOLS: <metadata> TYPE any.
|
||||
|
||||
ASSIGN COMPONENT 'METADATA'
|
||||
OF STRUCTURE cs_data
|
||||
TO <metadata>.
|
||||
ASSERT sy-subrc = 0.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CHANGED_AT'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CHANGED_BY'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CREATED_AT'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CREATED_BY'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'RESPONSIBLE'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'PACKAGE_REF-NAME'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
TRY.
|
||||
CREATE OBJECT li_data_model TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CONTAINER_REF-PACKAGE_NAME'
|
||||
CHANGING cs_metadata = <metadata> ).
|
||||
get_persistence( )->delete( p_object_key = lv_object_key
|
||||
p_version = swbm_version_active ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_field.
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
FIELD-SYMBOLS: <field> TYPE data.
|
||||
DATA: li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lr_data TYPE REF TO data,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
ASSIGN COMPONENT iv_fieldname
|
||||
OF STRUCTURE cs_metadata
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any.
|
||||
|
||||
CLEAR: <field>.
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DDLX'
|
||||
CHANGING
|
||||
cg_data = <lg_data> ).
|
||||
|
||||
CREATE OBJECT li_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
li_data_model->set_data( <lg_data> ).
|
||||
|
||||
get_persistence( )->save( li_data_model ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
TRY.
|
||||
get_persistence( )->get( p_object_key = lv_object_key
|
||||
p_version = swbm_version_active
|
||||
p_existence_check_only = abap_true ).
|
||||
|
||||
CATCH cx_swb_exception.
|
||||
rv_bool = abap_false.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-ddic = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
TRY.
|
||||
jump_adt( i_obj_name = ms_item-obj_name
|
||||
i_obj_type = ms_item-obj_type ).
|
||||
|
||||
CATCH zcx_abapgit_exception.
|
||||
zcx_abapgit_exception=>raise( 'DDLX Jump Error' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
li_persistence TYPE REF TO if_wb_object_persist,
|
||||
lr_data TYPE REF TO data,
|
||||
lv_text TYPE string,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CREATE OBJECT li_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
li_persistence = get_persistence( ).
|
||||
li_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_version = swbm_version_active
|
||||
CHANGING
|
||||
p_object_data = li_data_model ).
|
||||
|
||||
li_data_model->get_data(
|
||||
IMPORTING
|
||||
p_data = <lg_data> ).
|
||||
|
||||
clear_fields( CHANGING cs_data = <lg_data> ).
|
||||
|
||||
io_xml->add( iv_name = 'DDLX'
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -25,13 +25,18 @@ CLASS zcl_abapgit_object_devc DEFINITION PUBLIC
|
|||
mv_local_devclass TYPE devclass.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DEVC IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
super->constructor( is_item = is_item
|
||||
iv_language = iv_language ).
|
||||
mv_local_devclass = is_item-devclass.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_package.
|
||||
IF me->zif_abapgit_object~exists( ) = abap_true.
|
||||
cl_package_factory=>load_package(
|
||||
|
@ -55,14 +60,154 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_lock.
|
||||
DATA: lv_changeable TYPE abap_bool.
|
||||
|
||||
ii_package->get_changeable( IMPORTING e_changeable = lv_changeable ).
|
||||
IF lv_changeable <> iv_lock.
|
||||
ii_package->set_changeable(
|
||||
EXPORTING
|
||||
i_changeable = iv_lock
|
||||
EXCEPTIONS
|
||||
object_locked_by_other_user = 1
|
||||
permission_failure = 2
|
||||
object_already_changeable = 3
|
||||
object_already_unlocked = 4
|
||||
object_just_created = 5
|
||||
object_deleted = 6
|
||||
object_modified = 7
|
||||
object_not_existing = 8
|
||||
object_invalid = 9
|
||||
unexpected_error = 10
|
||||
OTHERS = 11 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_CHANGEABLE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ii_package->set_permissions_changeable(
|
||||
EXPORTING
|
||||
i_changeable = iv_lock
|
||||
i_suppress_dialog = abap_true
|
||||
EXCEPTIONS
|
||||
object_already_changeable = 1
|
||||
object_already_unlocked = 2
|
||||
object_locked_by_other_user = 3
|
||||
object_modified = 4
|
||||
object_just_created = 5
|
||||
object_deleted = 6
|
||||
permission_failure = 7
|
||||
object_invalid = 8
|
||||
unexpected_error = 9
|
||||
OTHERS = 10 ).
|
||||
IF ( sy-subrc = 1 AND iv_lock = abap_true ) OR ( sy-subrc = 2 AND iv_lock = abap_false ).
|
||||
" There's no getter to find out beforehand...
|
||||
ELSEIF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_PERMISSIONS_CHANGEABLE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD update_pinf_usages.
|
||||
DATA: lt_current_permissions TYPE tpak_permission_to_use_list,
|
||||
li_usage TYPE REF TO if_package_permission_to_use,
|
||||
ls_data_sign TYPE scomppsign,
|
||||
ls_add_permission_data TYPE pkgpermdat,
|
||||
lt_handled TYPE SORTED TABLE OF i WITH UNIQUE KEY table_line.
|
||||
FIELD-SYMBOLS: <ls_usage_data> LIKE LINE OF it_usage_data.
|
||||
|
||||
" Get the current permissions
|
||||
ii_package->get_permissions_to_use(
|
||||
IMPORTING
|
||||
e_permissions = lt_current_permissions
|
||||
EXCEPTIONS
|
||||
object_invalid = 1
|
||||
unexpected_error = 2
|
||||
OTHERS = 3 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE=>GET_PERMISSIONS_TO_USE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ls_data_sign-err_sever = abap_true.
|
||||
|
||||
" New permissions
|
||||
LOOP AT it_usage_data ASSIGNING <ls_usage_data>.
|
||||
READ TABLE lt_current_permissions
|
||||
WITH KEY table_line->package_interface_name = <ls_usage_data>-intf_name
|
||||
INTO li_usage.
|
||||
|
||||
IF sy-subrc = 0 AND li_usage IS BOUND.
|
||||
INSERT sy-tabix INTO TABLE lt_handled.
|
||||
|
||||
" Permission already exists, update attributes
|
||||
li_usage->set_all_attributes(
|
||||
EXPORTING
|
||||
i_permission_data = <ls_usage_data>
|
||||
i_data_sign = ls_data_sign
|
||||
EXCEPTIONS
|
||||
object_not_changeable = 1
|
||||
object_invalid = 2
|
||||
intern_err = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise(
|
||||
|Error from IF_PACKAGE_PERMISSION_TO_USE->SET_ALL_ATTRIBUTES { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ELSE.
|
||||
" Permission does not exist yet, add it
|
||||
MOVE-CORRESPONDING <ls_usage_data> TO ls_add_permission_data.
|
||||
ii_package->add_permission_to_use(
|
||||
EXPORTING
|
||||
i_pkg_permission_data = ls_add_permission_data
|
||||
EXCEPTIONS
|
||||
object_not_changeable = 1
|
||||
object_access_error = 2
|
||||
object_already_existing = 3
|
||||
object_invalid = 4
|
||||
unexpected_error = 5
|
||||
OTHERS = 6 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->ADD_PERMISSION_TO_USE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
FREE li_usage.
|
||||
ENDLOOP.
|
||||
|
||||
" Delete missing usages
|
||||
LOOP AT lt_current_permissions INTO li_usage.
|
||||
READ TABLE lt_handled WITH TABLE KEY table_line = sy-tabix TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc = 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
li_usage->delete(
|
||||
EXCEPTIONS
|
||||
object_not_changeable = 1
|
||||
object_invalid = 2
|
||||
deletion_not_allowed = 3
|
||||
intern_err = 4
|
||||
OTHERS = 5 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->DELETE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = get_package( )->changed_by.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
" Package deletion is a bit tricky. A package can only be deleted if there are no objects
|
||||
" contained in it. This includes subpackages, so first the leaf packages need to be deleted.
|
||||
|
@ -71,6 +216,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
" -> Package deletion is currently not supported by abapGit
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
DATA: li_package TYPE REF TO if_package,
|
||||
ls_package_data TYPE scompkdtln,
|
||||
|
@ -234,6 +380,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
set_lock( ii_package = li_package iv_lock = abap_false ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
" Check remote package if deserialize has not been called before this
|
||||
|
@ -254,14 +401,17 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
|
@ -278,6 +428,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
DATA: ls_package_data TYPE scompkdtln,
|
||||
li_package TYPE REF TO if_package,
|
||||
|
@ -286,7 +437,8 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ls_usage_data TYPE scomppdtln,
|
||||
li_usage TYPE REF TO if_package_permission_to_use.
|
||||
|
||||
FIELD-SYMBOLS: <field> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_field> TYPE any.
|
||||
|
||||
|
||||
li_package = get_package( ).
|
||||
IF li_package IS NOT BOUND.
|
||||
|
@ -323,9 +475,9 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
ASSIGN COMPONENT 'TRANSLATION_GRAPH_DEPTH_TEXT'
|
||||
OF STRUCTURE ls_package_data
|
||||
TO <field>.
|
||||
TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR: <field>.
|
||||
CLEAR: <lg_field>.
|
||||
ENDIF.
|
||||
|
||||
" Clear things related to local installation package
|
||||
|
@ -338,9 +490,9 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
ASSIGN COMPONENT 'TRANSLATION_GRAPH_DEPTH'
|
||||
OF STRUCTURE ls_package_data
|
||||
TO <field>.
|
||||
TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR: <field>.
|
||||
CLEAR: <lg_field>.
|
||||
ENDIF.
|
||||
|
||||
CLEAR: ls_package_data-korrflag.
|
||||
|
@ -381,139 +533,4 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'PERMISSION' ig_data = lt_usage_data ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD update_pinf_usages.
|
||||
DATA: lt_current_permissions TYPE tpak_permission_to_use_list,
|
||||
li_usage TYPE REF TO if_package_permission_to_use,
|
||||
ls_data_sign TYPE scomppsign,
|
||||
ls_add_permission_data TYPE pkgpermdat,
|
||||
lt_handled TYPE SORTED TABLE OF i WITH UNIQUE KEY table_line.
|
||||
FIELD-SYMBOLS: <ls_usage_data> LIKE LINE OF it_usage_data.
|
||||
|
||||
" Get the current permissions
|
||||
ii_package->get_permissions_to_use(
|
||||
IMPORTING
|
||||
e_permissions = lt_current_permissions
|
||||
EXCEPTIONS
|
||||
object_invalid = 1
|
||||
unexpected_error = 2
|
||||
OTHERS = 3 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE=>GET_PERMISSIONS_TO_USE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ls_data_sign-err_sever = abap_true.
|
||||
|
||||
" New permissions
|
||||
LOOP AT it_usage_data ASSIGNING <ls_usage_data>.
|
||||
READ TABLE lt_current_permissions
|
||||
WITH KEY table_line->package_interface_name = <ls_usage_data>-intf_name
|
||||
INTO li_usage.
|
||||
|
||||
IF sy-subrc = 0 AND li_usage IS BOUND.
|
||||
INSERT sy-tabix INTO TABLE lt_handled.
|
||||
|
||||
" Permission already exists, update attributes
|
||||
li_usage->set_all_attributes(
|
||||
EXPORTING
|
||||
i_permission_data = <ls_usage_data>
|
||||
i_data_sign = ls_data_sign
|
||||
EXCEPTIONS
|
||||
object_not_changeable = 1
|
||||
object_invalid = 2
|
||||
intern_err = 3
|
||||
OTHERS = 4 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise(
|
||||
|Error from IF_PACKAGE_PERMISSION_TO_USE->SET_ALL_ATTRIBUTES { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ELSE.
|
||||
" Permission does not exist yet, add it
|
||||
MOVE-CORRESPONDING <ls_usage_data> TO ls_add_permission_data.
|
||||
ii_package->add_permission_to_use(
|
||||
EXPORTING
|
||||
i_pkg_permission_data = ls_add_permission_data
|
||||
EXCEPTIONS
|
||||
object_not_changeable = 1
|
||||
object_access_error = 2
|
||||
object_already_existing = 3
|
||||
object_invalid = 4
|
||||
unexpected_error = 5
|
||||
OTHERS = 6 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->ADD_PERMISSION_TO_USE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
FREE li_usage.
|
||||
ENDLOOP.
|
||||
|
||||
" Delete missing usages
|
||||
LOOP AT lt_current_permissions INTO li_usage.
|
||||
READ TABLE lt_handled WITH TABLE KEY table_line = sy-tabix TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc = 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
li_usage->delete(
|
||||
EXCEPTIONS
|
||||
object_not_changeable = 1
|
||||
object_invalid = 2
|
||||
deletion_not_allowed = 3
|
||||
intern_err = 4
|
||||
OTHERS = 5 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->DELETE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_lock.
|
||||
DATA: lv_changeable TYPE abap_bool.
|
||||
|
||||
ii_package->get_changeable( IMPORTING e_changeable = lv_changeable ).
|
||||
IF lv_changeable <> iv_lock.
|
||||
ii_package->set_changeable(
|
||||
EXPORTING
|
||||
i_changeable = iv_lock
|
||||
EXCEPTIONS
|
||||
object_locked_by_other_user = 1
|
||||
permission_failure = 2
|
||||
object_already_changeable = 3
|
||||
object_already_unlocked = 4
|
||||
object_just_created = 5
|
||||
object_deleted = 6
|
||||
object_modified = 7
|
||||
object_not_existing = 8
|
||||
object_invalid = 9
|
||||
unexpected_error = 10
|
||||
OTHERS = 11 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_CHANGEABLE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ii_package->set_permissions_changeable(
|
||||
EXPORTING
|
||||
i_changeable = iv_lock
|
||||
i_suppress_dialog = abap_true
|
||||
EXCEPTIONS
|
||||
object_already_changeable = 1
|
||||
object_already_unlocked = 2
|
||||
object_locked_by_other_user = 3
|
||||
object_modified = 4
|
||||
object_just_created = 5
|
||||
object_deleted = 6
|
||||
permission_failure = 7
|
||||
object_invalid = 8
|
||||
unexpected_error = 9
|
||||
OTHERS = 10 ).
|
||||
IF ( sy-subrc = 1 AND iv_lock = abap_true ) OR ( sy-subrc = 2 AND iv_lock = abap_false ).
|
||||
" There's no getter to find out beforehand...
|
||||
ELSEIF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from IF_PACKAGE->SET_PERMISSIONS_CHANGEABLE { sy-subrc }| ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -17,13 +17,10 @@ CLASS zcl_abapgit_object_dial DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_dial IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DIAL IMPLEMENTATION.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -31,70 +28,13 @@ CLASS zcl_abapgit_object_dial IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: ls_tdct TYPE tdct.
|
||||
|
||||
ls_tdct = _read_tdct( ).
|
||||
|
||||
rv_bool = boolc( ls_tdct IS NOT INITIAL ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: ls_dialog_module TYPE ty_dialog_module.
|
||||
|
||||
ls_dialog_module-tdct = _read_tdct( ).
|
||||
|
||||
SELECT * FROM diapar
|
||||
INTO TABLE ls_dialog_module-dia_pars
|
||||
WHERE dnam = ls_dialog_module-tdct-dnam.
|
||||
|
||||
io_xml->add( iv_name = 'DIAL'
|
||||
ig_data = ls_dialog_module ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: ls_dialog_module TYPE ty_dialog_module.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DIAL'
|
||||
CHANGING
|
||||
cg_data = ls_dialog_module ).
|
||||
|
||||
CALL FUNCTION 'RS_DIALOG_CREATE'
|
||||
EXPORTING
|
||||
dialogname = ls_dialog_module-tdct-dnam
|
||||
dynpronumber = ls_dialog_module-tdct-dynr
|
||||
programname = ls_dialog_module-tdct-prog
|
||||
suppress_corr_check = abap_false
|
||||
* It seems that dia_par parameter doesn't do anything, but we can't omit it
|
||||
* Parameters are inserted below
|
||||
TABLES
|
||||
dia_par = ls_dialog_module-dia_pars
|
||||
EXCEPTIONS
|
||||
dialog_already_exists = 1
|
||||
invalid_name = 2
|
||||
OTHERS = 3.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error deserializing dialogmodule { ms_item-obj_name }| ).
|
||||
ENDIF.
|
||||
|
||||
" It seems that there's no API for diapar, therefore we manipulate it directly
|
||||
INSERT diapar FROM TABLE ls_dialog_module-dia_pars.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
|
@ -158,15 +98,75 @@ CLASS zcl_abapgit_object_dial IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: ls_dialog_module TYPE ty_dialog_module.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DIAL'
|
||||
CHANGING
|
||||
cg_data = ls_dialog_module ).
|
||||
|
||||
CALL FUNCTION 'RS_DIALOG_CREATE'
|
||||
EXPORTING
|
||||
dialogname = ls_dialog_module-tdct-dnam
|
||||
dynpronumber = ls_dialog_module-tdct-dynr
|
||||
programname = ls_dialog_module-tdct-prog
|
||||
suppress_corr_check = abap_false
|
||||
* It seems that dia_par parameter doesn't do anything, but we can't omit it
|
||||
* Parameters are inserted below
|
||||
TABLES
|
||||
dia_par = ls_dialog_module-dia_pars
|
||||
EXCEPTIONS
|
||||
dialog_already_exists = 1
|
||||
invalid_name = 2
|
||||
OTHERS = 3.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error deserializing dialogmodule { ms_item-obj_name }| ).
|
||||
ENDIF.
|
||||
|
||||
" It seems that there's no API for diapar, therefore we manipulate it directly
|
||||
INSERT diapar FROM TABLE ls_dialog_module-dia_pars.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: ls_tdct TYPE tdct.
|
||||
|
||||
ls_tdct = _read_tdct( ).
|
||||
|
||||
rv_bool = boolc( ls_tdct IS NOT INITIAL ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: objectname TYPE tdct-dnam.
|
||||
DATA: lv_objectname TYPE tdct-dnam.
|
||||
|
||||
objectname = ms_item-obj_name.
|
||||
lv_objectname = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'RS_DIALOG_SHOW'
|
||||
EXPORTING
|
||||
objectname = objectname
|
||||
objectname = lv_objectname
|
||||
type = 'VW'
|
||||
EXCEPTIONS
|
||||
object_not_found = 1
|
||||
|
@ -178,23 +178,32 @@ CLASS zcl_abapgit_object_dial IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: ls_dialog_module TYPE ty_dialog_module.
|
||||
|
||||
ls_dialog_module-tdct = _read_tdct( ).
|
||||
|
||||
SELECT * FROM diapar
|
||||
INTO TABLE ls_dialog_module-dia_pars
|
||||
WHERE dnam = ls_dialog_module-tdct-dnam.
|
||||
|
||||
io_xml->add( iv_name = 'DIAL'
|
||||
ig_data = ls_dialog_module ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD _read_tdct.
|
||||
|
||||
DATA: dnam TYPE tdct-dnam.
|
||||
DATA: lv_dnam TYPE tdct-dnam.
|
||||
|
||||
dnam = ms_item-obj_name.
|
||||
lv_dnam = ms_item-obj_name.
|
||||
|
||||
SELECT SINGLE * FROM tdct
|
||||
INTO rs_tdct
|
||||
WHERE dnam = dnam.
|
||||
WHERE dnam = lv_dnam.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -34,25 +34,150 @@ CLASS zcl_abapgit_object_doma DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
DATA: lv_date TYPE dats,
|
||||
lv_time TYPE tims.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_DOMA IMPLEMENTATION.
|
||||
|
||||
SELECT SINGLE as4date as4time FROM dd01l
|
||||
INTO (lv_date, lv_time)
|
||||
WHERE domname = ms_item-obj_name
|
||||
AND as4local = 'A'
|
||||
AND as4vers = '0000'.
|
||||
|
||||
rv_changed = check_timestamp(
|
||||
iv_timestamp = iv_timestamp
|
||||
iv_date = lv_date
|
||||
iv_time = lv_time ).
|
||||
METHOD deserialize_texts.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd01v_tmp TYPE dd01v,
|
||||
lt_dd07v_tmp TYPE TABLE OF dd07v,
|
||||
lt_i18n_langs TYPE TABLE OF langu,
|
||||
lt_dd01_texts TYPE tt_dd01_texts,
|
||||
lt_dd07_texts TYPE tt_dd07_texts.
|
||||
|
||||
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
|
||||
<ls_dd07v> LIKE LINE OF it_dd07v,
|
||||
<ls_dd01_text> LIKE LINE OF lt_dd01_texts,
|
||||
<ls_dd07_text> LIKE LINE OF lt_dd07_texts.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'I18N_LANGS'
|
||||
CHANGING cg_data = lt_i18n_langs ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD01_TEXTS'
|
||||
CHANGING cg_data = lt_dd01_texts ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD07_TEXTS'
|
||||
CHANGING cg_data = lt_dd07_texts ).
|
||||
|
||||
SORT lt_i18n_langs.
|
||||
SORT lt_dd07_texts BY ddlanguage. " Optimization
|
||||
|
||||
LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.
|
||||
|
||||
" Domain description
|
||||
ls_dd01v_tmp = is_dd01v.
|
||||
READ TABLE lt_dd01_texts ASSIGNING <ls_dd01_text> WITH KEY ddlanguage = <lv_lang>.
|
||||
IF sy-subrc > 0.
|
||||
zcx_abapgit_exception=>raise( |DD01_TEXTS cannot find lang { <lv_lang> } in XML| ).
|
||||
ENDIF.
|
||||
MOVE-CORRESPONDING <ls_dd01_text> TO ls_dd01v_tmp.
|
||||
|
||||
" Domain values
|
||||
lt_dd07v_tmp = it_dd07v.
|
||||
LOOP AT lt_dd07v_tmp ASSIGNING <ls_dd07v>.
|
||||
READ TABLE lt_dd07_texts ASSIGNING <ls_dd07_text>
|
||||
WITH KEY ddlanguage = <lv_lang> valpos = <ls_dd07v>-valpos.
|
||||
CHECK sy-subrc = 0. " ! no translation -> master translation remain (maybe not OK)
|
||||
MOVE-CORRESPONDING <ls_dd07_text> TO <ls_dd07v>.
|
||||
DELETE lt_dd07_texts INDEX sy-tabix. " Optimization
|
||||
ENDLOOP.
|
||||
|
||||
CALL FUNCTION 'DDIF_DOMA_PUT'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
dd01v_wa = ls_dd01v_tmp
|
||||
TABLES
|
||||
dd07v_tab = lt_dd07v_tmp
|
||||
EXCEPTIONS
|
||||
doma_not_found = 1
|
||||
name_inconsistent = 2
|
||||
doma_inconsistent = 3
|
||||
put_failure = 4
|
||||
put_refused = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from DDIF_DOMA_PUT @TEXTS' ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "deserialize_texts
|
||||
|
||||
|
||||
METHOD serialize_texts.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
lv_index TYPE i,
|
||||
ls_dd01v TYPE dd01v,
|
||||
lt_dd07v TYPE TABLE OF dd07v,
|
||||
lt_i18n_langs TYPE TABLE OF langu,
|
||||
lt_dd01_texts TYPE tt_dd01_texts,
|
||||
lt_dd07_texts TYPE tt_dd07_texts.
|
||||
|
||||
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
|
||||
<ls_dd07v> LIKE LINE OF lt_dd07v,
|
||||
<ls_dd01_text> LIKE LINE OF lt_dd01_texts,
|
||||
<ls_dd07_text> LIKE LINE OF lt_dd07_texts.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
" Collect additional languages, skip master lang - it was serialized already
|
||||
SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs
|
||||
FROM dd01v
|
||||
WHERE domname = lv_name
|
||||
AND ddlanguage <> mv_language. "#EC CI_SUBRC
|
||||
|
||||
LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.
|
||||
lv_index = sy-tabix.
|
||||
|
||||
CALL FUNCTION 'DDIF_DOMA_GET'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
langu = <lv_lang>
|
||||
IMPORTING
|
||||
dd01v_wa = ls_dd01v
|
||||
TABLES
|
||||
dd07v_tab = lt_dd07v
|
||||
EXCEPTIONS
|
||||
illegal_input = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0 OR ls_dd01v-ddlanguage IS INITIAL.
|
||||
DELETE lt_i18n_langs INDEX lv_index. " Don't save this lang
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
APPEND INITIAL LINE TO lt_dd01_texts ASSIGNING <ls_dd01_text>.
|
||||
MOVE-CORRESPONDING ls_dd01v TO <ls_dd01_text>.
|
||||
|
||||
LOOP AT lt_dd07v ASSIGNING <ls_dd07v>.
|
||||
APPEND INITIAL LINE TO lt_dd07_texts ASSIGNING <ls_dd07_text>.
|
||||
MOVE-CORRESPONDING <ls_dd07v> TO <ls_dd07_text>.
|
||||
ENDLOOP.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
SORT lt_i18n_langs ASCENDING.
|
||||
SORT lt_dd01_texts BY ddlanguage ASCENDING.
|
||||
SORT lt_dd07_texts BY valpos ASCENDING ddlanguage ASCENDING.
|
||||
|
||||
IF lines( lt_i18n_langs ) > 0.
|
||||
io_xml->add( iv_name = 'I18N_LANGS'
|
||||
ig_data = lt_i18n_langs ).
|
||||
|
||||
io_xml->add( iv_name = 'DD01_TEXTS'
|
||||
ig_data = lt_dd01_texts ).
|
||||
|
||||
io_xml->add( iv_name = 'DD07_TEXTS'
|
||||
ig_data = lt_dd07_texts ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "serialize_texts
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -66,30 +191,11 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
DATA: lv_domname TYPE dd01l-domname.
|
||||
|
||||
|
||||
SELECT SINGLE domname FROM dd01l INTO lv_domname
|
||||
WHERE domname = ms_item-obj_name
|
||||
AND as4local = 'A'
|
||||
AND as4vers = '0000'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
jump_se11( iv_radio = 'RSRD1-DOMA'
|
||||
iv_field = 'RSRD1-DOMA_VAL' ).
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
* see class CL_WB_DDIC
|
||||
|
@ -115,6 +221,102 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
* package SEDD
|
||||
* package SDIC
|
||||
|
||||
* fm TR_TADIR_INTERFACE
|
||||
* fm RS_CORR_INSERT ?
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd01v TYPE dd01v,
|
||||
lt_dd07v TYPE TABLE OF dd07v.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD01V'
|
||||
CHANGING cg_data = ls_dd01v ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD07V_TAB'
|
||||
CHANGING cg_data = lt_dd07v ).
|
||||
|
||||
corr_insert( iv_package ).
|
||||
|
||||
lv_name = ms_item-obj_name. " type conversion
|
||||
|
||||
CALL FUNCTION 'DDIF_DOMA_PUT'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
dd01v_wa = ls_dd01v
|
||||
TABLES
|
||||
dd07v_tab = lt_dd07v
|
||||
EXCEPTIONS
|
||||
doma_not_found = 1
|
||||
name_inconsistent = 2
|
||||
doma_inconsistent = 3
|
||||
put_failure = 4
|
||||
put_refused = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from DDIF_DOMA_PUT' ).
|
||||
ENDIF.
|
||||
|
||||
deserialize_texts( io_xml = io_xml
|
||||
is_dd01v = ls_dd01v
|
||||
it_dd07v = lt_dd07v ).
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_domname TYPE dd01l-domname.
|
||||
|
||||
|
||||
SELECT SINGLE domname FROM dd01l INTO lv_domname
|
||||
WHERE domname = ms_item-obj_name
|
||||
AND as4local = 'A'
|
||||
AND as4vers = '0000'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
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.
|
||||
|
||||
DATA: lv_date TYPE dats,
|
||||
lv_time TYPE tims.
|
||||
|
||||
SELECT SINGLE as4date as4time FROM dd01l
|
||||
INTO (lv_date, lv_time)
|
||||
WHERE domname = ms_item-obj_name
|
||||
AND as4local = 'A'
|
||||
AND as4vers = '0000'.
|
||||
|
||||
rv_changed = check_timestamp(
|
||||
iv_timestamp = iv_timestamp
|
||||
iv_date = lv_date
|
||||
iv_time = lv_time ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
jump_se11( iv_radio = 'RSRD1-DOMA'
|
||||
iv_field = 'RSRD1-DOMA_VAL' ).
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
|
@ -166,193 +368,4 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION.
|
|||
serialize_texts( io_xml ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
* package SEDD
|
||||
* package SDIC
|
||||
|
||||
* fm TR_TADIR_INTERFACE
|
||||
* fm RS_CORR_INSERT ?
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd01v TYPE dd01v,
|
||||
lt_dd07v TYPE TABLE OF dd07v.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD01V'
|
||||
CHANGING cg_data = ls_dd01v ).
|
||||
io_xml->read( EXPORTING iv_name = 'DD07V_TAB'
|
||||
CHANGING cg_data = lt_dd07v ).
|
||||
|
||||
corr_insert( iv_package ).
|
||||
|
||||
lv_name = ms_item-obj_name. " type conversion
|
||||
|
||||
CALL FUNCTION 'DDIF_DOMA_PUT'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
dd01v_wa = ls_dd01v
|
||||
TABLES
|
||||
dd07v_tab = lt_dd07v
|
||||
EXCEPTIONS
|
||||
doma_not_found = 1
|
||||
name_inconsistent = 2
|
||||
doma_inconsistent = 3
|
||||
put_failure = 4
|
||||
put_refused = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from DDIF_DOMA_PUT' ).
|
||||
ENDIF.
|
||||
|
||||
deserialize_texts( io_xml = io_xml
|
||||
is_dd01v = ls_dd01v
|
||||
it_dd07v = lt_dd07v ).
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
METHOD serialize_texts.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
lv_index TYPE i,
|
||||
ls_dd01v TYPE dd01v,
|
||||
lt_dd07v TYPE TABLE OF dd07v,
|
||||
lt_i18n_langs TYPE TABLE OF langu,
|
||||
lt_dd01_texts TYPE tt_dd01_texts,
|
||||
lt_dd07_texts TYPE tt_dd07_texts.
|
||||
|
||||
FIELD-SYMBOLS: <lang> LIKE LINE OF lt_i18n_langs,
|
||||
<dd07v> LIKE LINE OF lt_dd07v,
|
||||
<dd01_text> LIKE LINE OF lt_dd01_texts,
|
||||
<dd07_text> LIKE LINE OF lt_dd07_texts.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
" Collect additional languages, skip master lang - it was serialized already
|
||||
SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs
|
||||
FROM dd01v
|
||||
WHERE domname = lv_name
|
||||
AND ddlanguage <> mv_language. "#EC CI_SUBRC
|
||||
|
||||
LOOP AT lt_i18n_langs ASSIGNING <lang>.
|
||||
lv_index = sy-tabix.
|
||||
|
||||
CALL FUNCTION 'DDIF_DOMA_GET'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
langu = <lang>
|
||||
IMPORTING
|
||||
dd01v_wa = ls_dd01v
|
||||
TABLES
|
||||
dd07v_tab = lt_dd07v
|
||||
EXCEPTIONS
|
||||
illegal_input = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0 OR ls_dd01v-ddlanguage IS INITIAL.
|
||||
DELETE lt_i18n_langs INDEX lv_index. " Don't save this lang
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
APPEND INITIAL LINE TO lt_dd01_texts ASSIGNING <dd01_text>.
|
||||
MOVE-CORRESPONDING ls_dd01v TO <dd01_text>.
|
||||
|
||||
LOOP AT lt_dd07v ASSIGNING <dd07v>.
|
||||
APPEND INITIAL LINE TO lt_dd07_texts ASSIGNING <dd07_text>.
|
||||
MOVE-CORRESPONDING <dd07v> TO <dd07_text>.
|
||||
ENDLOOP.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
SORT lt_i18n_langs ASCENDING.
|
||||
SORT lt_dd01_texts BY ddlanguage ASCENDING.
|
||||
SORT lt_dd07_texts BY valpos ASCENDING ddlanguage ASCENDING.
|
||||
|
||||
IF lines( lt_i18n_langs ) > 0.
|
||||
io_xml->add( iv_name = 'I18N_LANGS'
|
||||
ig_data = lt_i18n_langs ).
|
||||
|
||||
io_xml->add( iv_name = 'DD01_TEXTS'
|
||||
ig_data = lt_dd01_texts ).
|
||||
|
||||
io_xml->add( iv_name = 'DD07_TEXTS'
|
||||
ig_data = lt_dd07_texts ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "serialize_texts
|
||||
|
||||
METHOD deserialize_texts.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd01v_tmp TYPE dd01v,
|
||||
lt_dd07v_tmp TYPE TABLE OF dd07v,
|
||||
lt_i18n_langs TYPE TABLE OF langu,
|
||||
lt_dd01_texts TYPE tt_dd01_texts,
|
||||
lt_dd07_texts TYPE tt_dd07_texts.
|
||||
|
||||
FIELD-SYMBOLS: <lang> LIKE LINE OF lt_i18n_langs,
|
||||
<dd07v> LIKE LINE OF it_dd07v,
|
||||
<dd01_text> LIKE LINE OF lt_dd01_texts,
|
||||
<dd07_text> LIKE LINE OF lt_dd07_texts.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'I18N_LANGS'
|
||||
CHANGING cg_data = lt_i18n_langs ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD01_TEXTS'
|
||||
CHANGING cg_data = lt_dd01_texts ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DD07_TEXTS'
|
||||
CHANGING cg_data = lt_dd07_texts ).
|
||||
|
||||
SORT lt_i18n_langs.
|
||||
SORT lt_dd07_texts BY ddlanguage. " Optimization
|
||||
|
||||
LOOP AT lt_i18n_langs ASSIGNING <lang>.
|
||||
|
||||
" Domain description
|
||||
ls_dd01v_tmp = is_dd01v.
|
||||
READ TABLE lt_dd01_texts ASSIGNING <dd01_text> WITH KEY ddlanguage = <lang>.
|
||||
IF sy-subrc > 0.
|
||||
zcx_abapgit_exception=>raise( |DD01_TEXTS cannot find lang { <lang> } in XML| ).
|
||||
ENDIF.
|
||||
MOVE-CORRESPONDING <dd01_text> TO ls_dd01v_tmp.
|
||||
|
||||
" Domain values
|
||||
lt_dd07v_tmp = it_dd07v.
|
||||
LOOP AT lt_dd07v_tmp ASSIGNING <dd07v>.
|
||||
READ TABLE lt_dd07_texts ASSIGNING <dd07_text>
|
||||
WITH KEY ddlanguage = <lang> valpos = <dd07v>-valpos.
|
||||
CHECK sy-subrc = 0. " ! no translation -> master translation remain (maybe not OK)
|
||||
MOVE-CORRESPONDING <dd07_text> TO <dd07v>.
|
||||
DELETE lt_dd07_texts INDEX sy-tabix. " Optimization
|
||||
ENDLOOP.
|
||||
|
||||
CALL FUNCTION 'DDIF_DOMA_PUT'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
dd01v_wa = ls_dd01v_tmp
|
||||
TABLES
|
||||
dd07v_tab = lt_dd07v_tmp
|
||||
EXCEPTIONS
|
||||
doma_not_found = 1
|
||||
name_inconsistent = 2
|
||||
doma_inconsistent = 3
|
||||
put_failure = 4
|
||||
put_refused = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from DDIF_DOMA_PUT @TEXTS' ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "deserialize_texts
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -13,28 +13,32 @@ CLASS zcl_abapgit_object_enho_fugr DEFINITION PUBLIC.
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION.
|
||||
|
||||
|
||||
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_tool TYPE enhtooltype,
|
||||
lv_package TYPE devclass.
|
||||
|
||||
FIELD-SYMBOLS: <fuba> TYPE enhfugrfuncdata.
|
||||
FIELD-SYMBOLS: <ls_fuba> TYPE enhfugrfuncdata.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'TOOL'
|
||||
CHANGING
|
||||
cg_data = tool ).
|
||||
cg_data = lv_tool ).
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
|
@ -49,7 +53,7 @@ CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION.
|
|||
EXPORTING
|
||||
enhname = |{ ms_item-obj_name }|
|
||||
enhtype = ''
|
||||
enhtooltype = tool
|
||||
enhtooltype = lv_tool
|
||||
IMPORTING
|
||||
enhancement = li_tool
|
||||
CHANGING
|
||||
|
@ -59,10 +63,10 @@ CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION.
|
|||
|
||||
lo_fugrdata->set_fugr( ls_enha_data-fugr ).
|
||||
|
||||
LOOP AT ls_enha_data-enh_fubas ASSIGNING <fuba>.
|
||||
LOOP AT ls_enha_data-enh_fubas ASSIGNING <ls_fuba>.
|
||||
|
||||
lo_fugrdata->set_func_data( func_name = <fuba>-fuba
|
||||
func_enhadata = <fuba> ).
|
||||
lo_fugrdata->set_func_data( func_name = <ls_fuba>-fuba
|
||||
func_enhadata = <ls_fuba> ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -75,32 +79,32 @@ CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION.
|
|||
|
||||
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,
|
||||
lv_fugr_name TYPE rs38l-area,
|
||||
ls_enha_data TYPE enhfugrdata.
|
||||
|
||||
FIELD-SYMBOLS: <docuobj> TYPE enhfugrparamdocu.
|
||||
FIELD-SYMBOLS: <ls_docuobj> TYPE enhfugrparamdocu.
|
||||
|
||||
|
||||
lo_fugrdata ?= ii_enh_tool.
|
||||
|
||||
lo_fugrdata->get_fugr(
|
||||
IMPORTING
|
||||
fugr_name = fugr_name ).
|
||||
fugr_name = lv_fugr_name ).
|
||||
|
||||
TRY.
|
||||
lo_fugrdata->get_all_data_for_fugr(
|
||||
EXPORTING
|
||||
fugr_name = fugr_name
|
||||
fugr_name = lv_fugr_name
|
||||
IMPORTING
|
||||
enha_data = ls_enha_data ).
|
||||
|
||||
LOOP AT ls_enha_data-docuobjs ASSIGNING <docuobj>.
|
||||
|
||||
CLEAR: <docuobj>-shorttext,
|
||||
<docuobj>-longtext.
|
||||
|
||||
LOOP AT ls_enha_data-docuobjs ASSIGNING <ls_docuobj>.
|
||||
CLEAR: <ls_docuobj>-shorttext,
|
||||
<ls_docuobj>-longtext.
|
||||
ENDLOOP.
|
||||
|
||||
CATCH cx_enh_not_found.
|
||||
|
@ -114,5 +118,4 @@ CLASS zcl_abapgit_object_enho_fugr IMPLEMENTATION.
|
|||
ig_data = ls_enha_data ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object_enho~serialize
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -12,28 +12,33 @@ CLASS zcl_abapgit_object_enho_wdyn DEFINITION PUBLIC.
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION.
|
||||
|
||||
|
||||
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.
|
||||
DATA: ls_enh_data TYPE enhwdyn,
|
||||
li_tool TYPE REF TO if_enh_tool,
|
||||
lo_wdyn TYPE REF TO cl_enh_tool_wdy,
|
||||
lv_tool_type TYPE enhtooltype,
|
||||
lv_package TYPE devclass.
|
||||
|
||||
FIELD-SYMBOLS: <ls_controller_data> TYPE enhwdyc,
|
||||
<ls_view_data> TYPE enhwdyv.
|
||||
|
||||
FIELD-SYMBOLS: <controller_data> TYPE enhwdyc,
|
||||
<view_data> TYPE enhwdyv.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'TOOL'
|
||||
CHANGING
|
||||
cg_data = tool_type ).
|
||||
cg_data = lv_tool_type ).
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
|
@ -41,18 +46,18 @@ CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION.
|
|||
CHANGING
|
||||
cg_data = ls_enh_data ).
|
||||
|
||||
package = iv_package.
|
||||
lv_package = iv_package.
|
||||
|
||||
TRY.
|
||||
cl_enh_factory=>create_enhancement(
|
||||
EXPORTING
|
||||
enhname = |{ ms_item-obj_name }|
|
||||
enhtype = ''
|
||||
enhtooltype = tool_type
|
||||
enhtooltype = lv_tool_type
|
||||
IMPORTING
|
||||
enhancement = li_tool
|
||||
CHANGING
|
||||
devclass = package ).
|
||||
devclass = lv_package ).
|
||||
|
||||
lo_wdyn ?= li_tool.
|
||||
|
||||
|
@ -60,17 +65,17 @@ CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION.
|
|||
|
||||
lo_wdyn->set_component_data( ls_enh_data-component_data ).
|
||||
|
||||
LOOP AT ls_enh_data-controller_data ASSIGNING <controller_data>.
|
||||
LOOP AT ls_enh_data-controller_data ASSIGNING <ls_controller_data>.
|
||||
|
||||
lo_wdyn->set_controller_data( p_controller_name = <controller_data>-controller_name
|
||||
p_enh_data = <controller_data> ).
|
||||
lo_wdyn->set_controller_data( p_controller_name = <ls_controller_data>-controller_name
|
||||
p_enh_data = <ls_controller_data> ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT ls_enh_data-view_data ASSIGNING <view_data>.
|
||||
LOOP AT ls_enh_data-view_data ASSIGNING <ls_view_data>.
|
||||
|
||||
lo_wdyn->set_view_data( p_view_name = <view_data>-view_name
|
||||
p_enh_data = <view_data> ).
|
||||
lo_wdyn->set_view_data( p_view_name = <ls_view_data>-view_name
|
||||
p_enh_data = <ls_view_data> ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -83,20 +88,21 @@ CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy,
|
||||
lv_component_name TYPE wdy_component_name,
|
||||
ls_enh_data TYPE enhwdyn.
|
||||
|
||||
|
||||
lo_wdyn ?= ii_enh_tool.
|
||||
|
||||
component_name = lo_wdyn->get_component_name( ).
|
||||
lv_component_name = lo_wdyn->get_component_name( ).
|
||||
|
||||
TRY.
|
||||
lo_wdyn->get_all_data_for_comp(
|
||||
EXPORTING
|
||||
p_component_name = component_name
|
||||
p_component_name = lv_component_name
|
||||
IMPORTING
|
||||
p_enh_data = ls_enh_data ).
|
||||
|
||||
|
@ -111,5 +117,4 @@ CLASS zcl_abapgit_object_enho_wdyn IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object_enho~serialize
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_enho_wdyconf IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -69,125 +69,40 @@ CLASS zcl_abapgit_object_fugr DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
DATA: lt_functab TYPE ty_rs38l_incl_tt,
|
||||
lt_includes TYPE rso_t_objnm.
|
||||
|
||||
FIELD-SYMBOLS: <ls_func> LIKE LINE OF lt_functab,
|
||||
<include_name> LIKE LINE OF lt_includes.
|
||||
|
||||
lt_includes = includes( ). " Main prog also included here
|
||||
|
||||
LOOP AT lt_includes ASSIGNING <include_name>.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = <include_name>
|
||||
iv_timestamp = iv_timestamp ).
|
||||
IF rv_changed = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
lt_functab = functions( ).
|
||||
|
||||
LOOP AT lt_functab ASSIGNING <ls_func>.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = <ls_func>-include
|
||||
iv_timestamp = iv_timestamp ).
|
||||
IF rv_changed = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
TYPES: BEGIN OF ty_stamps,
|
||||
user TYPE xubname,
|
||||
date TYPE d,
|
||||
time TYPE t,
|
||||
END OF ty_stamps.
|
||||
|
||||
DATA: lt_stamps TYPE STANDARD TABLE OF ty_stamps WITH DEFAULT KEY,
|
||||
lv_program TYPE program,
|
||||
lt_includes TYPE rso_t_objnm.
|
||||
|
||||
FIELD-SYMBOLS: <ls_stamp> LIKE LINE OF lt_stamps,
|
||||
<lv_include> LIKE LINE OF lt_includes.
|
||||
|
||||
|
||||
lv_program = main_name( ).
|
||||
CLASS ZCL_ABAPGIT_OBJECT_FUGR IMPLEMENTATION.
|
||||
|
||||
CALL FUNCTION 'RS_GET_ALL_INCLUDES'
|
||||
|
||||
METHOD are_exceptions_class_based.
|
||||
DATA:
|
||||
lt_dokumentation TYPE TABLE OF funct,
|
||||
lt_exception_list TYPE TABLE OF rsexc,
|
||||
lt_export_parameter TYPE TABLE OF rsexp,
|
||||
lt_import_parameter TYPE TABLE OF rsimp,
|
||||
lt_tables_parameter TYPE TABLE OF rstbl.
|
||||
|
||||
CALL FUNCTION 'FUNCTION_IMPORT_DOKU'
|
||||
EXPORTING
|
||||
program = lv_program
|
||||
funcname = iv_function_name
|
||||
IMPORTING
|
||||
exception_class = rv_return
|
||||
TABLES
|
||||
includetab = lt_includes
|
||||
dokumentation = lt_dokumentation
|
||||
exception_list = lt_exception_list
|
||||
export_parameter = lt_export_parameter
|
||||
import_parameter = lt_import_parameter
|
||||
tables_parameter = lt_tables_parameter
|
||||
EXCEPTIONS
|
||||
not_existent = 1
|
||||
no_program = 2
|
||||
OTHERS = 3.
|
||||
error_message = 1
|
||||
function_not_found = 2
|
||||
invalid_name = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Error from RS_GET_ALL_INCLUDES' ).
|
||||
zcx_abapgit_exception=>raise( 'Error from FUNCTION_IMPORT_DOKU' ).
|
||||
ENDIF.
|
||||
|
||||
SELECT unam AS user udat AS date utime AS time FROM reposrc
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE progname = lv_program
|
||||
AND r3state = 'A'. "#EC CI_SUBRC
|
||||
|
||||
LOOP AT lt_includes ASSIGNING <lv_include>.
|
||||
SELECT unam AS user udat AS date utime AS time FROM reposrc
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE progname = <lv_include>
|
||||
AND r3state = 'A'. "#EC CI_SUBRC
|
||||
ENDLOOP.
|
||||
|
||||
SELECT unam AS user udat AS date utime AS time FROM repotext " Program text pool
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE progname = lv_program
|
||||
AND r3state = 'A'. "#EC CI_SUBRC
|
||||
|
||||
SELECT vautor AS user vdatum AS date vzeit AS time FROM eudb " GUI
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE relid = 'CU'
|
||||
AND name = lv_program
|
||||
AND srtf2 = 0 ##TOO_MANY_ITAB_FIELDS.
|
||||
|
||||
* Screens: username not stored in D020S database table
|
||||
|
||||
SORT lt_stamps BY date DESCENDING time DESCENDING.
|
||||
|
||||
READ TABLE lt_stamps INDEX 1 ASSIGNING <ls_stamp>.
|
||||
IF sy-subrc = 0.
|
||||
rv_user = <ls_stamp>-user.
|
||||
ELSE.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_pool TYPE tlibg-area.
|
||||
|
||||
|
||||
lv_pool = ms_item-obj_name.
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_EXISTS'
|
||||
EXPORTING
|
||||
function_pool = lv_pool
|
||||
EXCEPTIONS
|
||||
pool_not_exists = 1.
|
||||
rv_bool = boolc( sy-subrc <> 1 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
METHOD deserialize_functions.
|
||||
|
||||
|
@ -283,6 +198,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "deserialize_functions
|
||||
|
||||
|
||||
METHOD deserialize_includes.
|
||||
|
||||
DATA: lo_xml TYPE REF TO zcl_abapgit_xml_input,
|
||||
|
@ -326,6 +242,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "deserialize_includes
|
||||
|
||||
|
||||
METHOD deserialize_xml.
|
||||
|
||||
DATA: lv_complete TYPE rs38l-area,
|
||||
|
@ -390,25 +307,31 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "deserialize_xml
|
||||
|
||||
METHOD serialize_xml.
|
||||
|
||||
DATA: lt_includes TYPE rso_t_objnm,
|
||||
lv_areat TYPE tlibt-areat.
|
||||
METHOD functions.
|
||||
|
||||
DATA: lv_area TYPE rs38l-area.
|
||||
|
||||
|
||||
SELECT SINGLE areat INTO lv_areat
|
||||
FROM tlibt
|
||||
WHERE spras = mv_language
|
||||
AND area = ms_item-obj_name. "#EC CI_GENBUFF "#EC CI_SUBRC
|
||||
lv_area = ms_item-obj_name.
|
||||
|
||||
lt_includes = includes( ).
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_CONTENTS'
|
||||
EXPORTING
|
||||
function_pool = lv_area
|
||||
TABLES
|
||||
functab = rt_functab
|
||||
EXCEPTIONS
|
||||
function_pool_not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Error from RS_FUNCTION_POOL_CONTENTS' ).
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'AREAT'
|
||||
ig_data = lv_areat ).
|
||||
io_xml->add( iv_name = 'INCLUDES'
|
||||
ig_data = lt_includes ).
|
||||
SORT rt_functab BY funcname ASCENDING.
|
||||
DELETE ADJACENT DUPLICATES FROM rt_functab COMPARING funcname.
|
||||
|
||||
ENDMETHOD. "functions
|
||||
|
||||
ENDMETHOD. "serialize_xml
|
||||
|
||||
METHOD includes.
|
||||
|
||||
|
@ -487,29 +410,6 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "includes
|
||||
|
||||
METHOD functions.
|
||||
|
||||
DATA: lv_area TYPE rs38l-area.
|
||||
|
||||
|
||||
lv_area = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_CONTENTS'
|
||||
EXPORTING
|
||||
function_pool = lv_area
|
||||
TABLES
|
||||
functab = rt_functab
|
||||
EXCEPTIONS
|
||||
function_pool_not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Error from RS_FUNCTION_POOL_CONTENTS' ).
|
||||
ENDIF.
|
||||
|
||||
SORT rt_functab BY funcname ASCENDING.
|
||||
DELETE ADJACENT DUPLICATES FROM rt_functab COMPARING funcname.
|
||||
|
||||
ENDMETHOD. "functions
|
||||
|
||||
METHOD main_name.
|
||||
|
||||
|
@ -547,6 +447,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "main_name
|
||||
|
||||
|
||||
METHOD serialize_functions.
|
||||
|
||||
DATA:
|
||||
|
@ -615,6 +516,7 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "serialize_functions
|
||||
|
||||
|
||||
METHOD serialize_includes.
|
||||
|
||||
DATA: lt_includes TYPE rso_t_objnm.
|
||||
|
@ -636,35 +538,232 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "serialize_includes
|
||||
|
||||
METHOD are_exceptions_class_based.
|
||||
DATA:
|
||||
lt_dokumentation TYPE TABLE OF funct,
|
||||
lt_exception_list TYPE TABLE OF rsexc,
|
||||
lt_export_parameter TYPE TABLE OF rsexp,
|
||||
lt_import_parameter TYPE TABLE OF rsimp,
|
||||
lt_tables_parameter TYPE TABLE OF rstbl.
|
||||
|
||||
CALL FUNCTION 'FUNCTION_IMPORT_DOKU'
|
||||
METHOD serialize_xml.
|
||||
|
||||
DATA: lt_includes TYPE rso_t_objnm,
|
||||
lv_areat TYPE tlibt-areat.
|
||||
|
||||
|
||||
SELECT SINGLE areat INTO lv_areat
|
||||
FROM tlibt
|
||||
WHERE spras = mv_language
|
||||
AND area = ms_item-obj_name. "#EC CI_GENBUFF "#EC CI_SUBRC
|
||||
|
||||
lt_includes = includes( ).
|
||||
|
||||
io_xml->add( iv_name = 'AREAT'
|
||||
ig_data = lv_areat ).
|
||||
io_xml->add( iv_name = 'INCLUDES'
|
||||
ig_data = lt_includes ).
|
||||
|
||||
ENDMETHOD. "serialize_xml
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
TYPES: BEGIN OF ty_stamps,
|
||||
user TYPE xubname,
|
||||
date TYPE d,
|
||||
time TYPE t,
|
||||
END OF ty_stamps.
|
||||
|
||||
DATA: lt_stamps TYPE STANDARD TABLE OF ty_stamps WITH DEFAULT KEY,
|
||||
lv_program TYPE program,
|
||||
lt_includes TYPE rso_t_objnm.
|
||||
|
||||
FIELD-SYMBOLS: <ls_stamp> LIKE LINE OF lt_stamps,
|
||||
<lv_include> LIKE LINE OF lt_includes.
|
||||
|
||||
|
||||
lv_program = main_name( ).
|
||||
|
||||
CALL FUNCTION 'RS_GET_ALL_INCLUDES'
|
||||
EXPORTING
|
||||
funcname = iv_function_name
|
||||
IMPORTING
|
||||
exception_class = rv_return
|
||||
program = lv_program
|
||||
TABLES
|
||||
dokumentation = lt_dokumentation
|
||||
exception_list = lt_exception_list
|
||||
export_parameter = lt_export_parameter
|
||||
import_parameter = lt_import_parameter
|
||||
tables_parameter = lt_tables_parameter
|
||||
includetab = lt_includes
|
||||
EXCEPTIONS
|
||||
error_message = 1
|
||||
function_not_found = 2
|
||||
invalid_name = 3
|
||||
OTHERS = 4.
|
||||
not_existent = 1
|
||||
no_program = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Error from FUNCTION_IMPORT_DOKU' ).
|
||||
zcx_abapgit_exception=>raise( 'Error from RS_GET_ALL_INCLUDES' ).
|
||||
ENDIF.
|
||||
|
||||
SELECT unam AS user udat AS date utime AS time FROM reposrc
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE progname = lv_program
|
||||
AND r3state = 'A'. "#EC CI_SUBRC
|
||||
|
||||
LOOP AT lt_includes ASSIGNING <lv_include>.
|
||||
SELECT unam AS user udat AS date utime AS time FROM reposrc
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE progname = <lv_include>
|
||||
AND r3state = 'A'. "#EC CI_SUBRC
|
||||
ENDLOOP.
|
||||
|
||||
SELECT unam AS user udat AS date utime AS time FROM repotext " Program text pool
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE progname = lv_program
|
||||
AND r3state = 'A'. "#EC CI_SUBRC
|
||||
|
||||
SELECT vautor AS user vdatum AS date vzeit AS time FROM eudb " GUI
|
||||
APPENDING CORRESPONDING FIELDS OF TABLE lt_stamps
|
||||
WHERE relid = 'CU'
|
||||
AND name = lv_program
|
||||
AND srtf2 = 0 ##TOO_MANY_ITAB_FIELDS.
|
||||
|
||||
* Screens: username not stored in D020S database table
|
||||
|
||||
SORT lt_stamps BY date DESCENDING time DESCENDING.
|
||||
|
||||
READ TABLE lt_stamps INDEX 1 ASSIGNING <ls_stamp>.
|
||||
IF sy-subrc = 0.
|
||||
rv_user = <ls_stamp>-user.
|
||||
ELSE.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_area TYPE rs38l-area.
|
||||
|
||||
|
||||
lv_area = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_DELETE'
|
||||
EXPORTING
|
||||
area = lv_area
|
||||
suppress_popups = abap_true
|
||||
skip_progress_ind = abap_true
|
||||
EXCEPTIONS
|
||||
canceled_in_corr = 1
|
||||
enqueue_system_failure = 2
|
||||
function_exist = 3
|
||||
not_executed = 4
|
||||
no_modify_permission = 5
|
||||
no_show_permission = 6
|
||||
permission_failure = 7
|
||||
pool_not_exist = 8
|
||||
cancelled = 9
|
||||
OTHERS = 10.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from RS_FUNCTION_POOL_DELETE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lv_program_name TYPE programm,
|
||||
lt_functions TYPE ty_function_tt,
|
||||
lt_dynpros TYPE ty_dynpro_tt,
|
||||
ls_cua TYPE ty_cua.
|
||||
|
||||
|
||||
deserialize_xml(
|
||||
io_xml = io_xml
|
||||
iv_package = iv_package ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'FUNCTIONS'
|
||||
CHANGING cg_data = lt_functions ).
|
||||
deserialize_functions( lt_functions ).
|
||||
|
||||
deserialize_includes(
|
||||
io_xml = io_xml
|
||||
iv_package = iv_package ).
|
||||
|
||||
lv_program_name = main_name( ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DYNPROS'
|
||||
CHANGING cg_data = lt_dynpros ).
|
||||
deserialize_dynpros( it_dynpros = lt_dynpros ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'CUA'
|
||||
CHANGING cg_data = ls_cua ).
|
||||
deserialize_cua( iv_program_name = lv_program_name
|
||||
is_cua = ls_cua ).
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_pool TYPE tlibg-area.
|
||||
|
||||
|
||||
lv_pool = ms_item-obj_name.
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_EXISTS'
|
||||
EXPORTING
|
||||
function_pool = lv_pool
|
||||
EXCEPTIONS
|
||||
pool_not_exists = 1.
|
||||
rv_bool = boolc( sy-subrc <> 1 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
DATA: lt_functab TYPE ty_rs38l_incl_tt,
|
||||
lt_includes TYPE rso_t_objnm.
|
||||
|
||||
FIELD-SYMBOLS: <ls_func> LIKE LINE OF lt_functab,
|
||||
<lv_include_name> LIKE LINE OF lt_includes.
|
||||
|
||||
|
||||
lt_includes = includes( ). " Main prog also included here
|
||||
|
||||
LOOP AT lt_includes ASSIGNING <lv_include_name>.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = <lv_include_name>
|
||||
iv_timestamp = iv_timestamp ).
|
||||
IF rv_changed = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
lt_functab = functions( ).
|
||||
|
||||
LOOP AT lt_functab ASSIGNING <ls_func>.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = <ls_func>-include
|
||||
iv_timestamp = iv_timestamp ).
|
||||
IF rv_changed = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = 'FUGR'
|
||||
in_new_window = abap_true.
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
* function group SEUF
|
||||
|
@ -703,82 +802,4 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lv_program_name TYPE programm,
|
||||
lt_functions TYPE ty_function_tt,
|
||||
lt_dynpros TYPE ty_dynpro_tt,
|
||||
ls_cua TYPE ty_cua.
|
||||
|
||||
|
||||
deserialize_xml(
|
||||
io_xml = io_xml
|
||||
iv_package = iv_package ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'FUNCTIONS'
|
||||
CHANGING cg_data = lt_functions ).
|
||||
deserialize_functions( lt_functions ).
|
||||
|
||||
deserialize_includes(
|
||||
io_xml = io_xml
|
||||
iv_package = iv_package ).
|
||||
|
||||
lv_program_name = main_name( ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DYNPROS'
|
||||
CHANGING cg_data = lt_dynpros ).
|
||||
deserialize_dynpros( it_dynpros = lt_dynpros ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'CUA'
|
||||
CHANGING cg_data = ls_cua ).
|
||||
deserialize_cua( iv_program_name = lv_program_name
|
||||
is_cua = ls_cua ).
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_area TYPE rs38l-area.
|
||||
|
||||
|
||||
lv_area = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_DELETE'
|
||||
EXPORTING
|
||||
area = lv_area
|
||||
suppress_popups = abap_true
|
||||
skip_progress_ind = abap_true
|
||||
EXCEPTIONS
|
||||
canceled_in_corr = 1
|
||||
enqueue_system_failure = 2
|
||||
function_exist = 3
|
||||
not_executed = 4
|
||||
no_modify_permission = 5
|
||||
no_show_permission = 6
|
||||
permission_failure = 7
|
||||
pool_not_exist = 8
|
||||
cancelled = 9
|
||||
OTHERS = 10.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from RS_FUNCTION_POOL_DELETE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = 'FUGR'
|
||||
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.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_fugr IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -8,13 +8,10 @@ CLASS zcl_abapgit_object_jobd DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_JOBD IMPLEMENTATION.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -22,140 +19,25 @@ CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: jd_name TYPE ty_jd_name.
|
||||
|
||||
jd_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE')
|
||||
EXPORTING
|
||||
im_jd_name = jd_name
|
||||
IMPORTING
|
||||
ex_is_existing = rv_bool.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |JOBD not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_job_definition TYPE REF TO data,
|
||||
lo_job_definition TYPE REF TO object,
|
||||
jd_name TYPE ty_jd_name.
|
||||
|
||||
FIELD-SYMBOLS: <ls_job_definition> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
jd_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
|
||||
ASSIGN lr_job_definition->* TO <ls_job_definition>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
|
||||
EXPORTING
|
||||
im_jd_name = jd_name.
|
||||
|
||||
CALL METHOD lo_job_definition->('GET_JD_ATTRIBUTES')
|
||||
IMPORTING
|
||||
ex_jd_attributes = <ls_job_definition>.
|
||||
|
||||
ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'BTCJOB_USER' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'OWNER' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_TIME' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_DATE' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_TIME' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
CLEAR <field>.
|
||||
|
||||
io_xml->add( iv_name = 'JOBD'
|
||||
ig_data = <ls_job_definition> ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |Error serializing JOBD| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_job_definition TYPE REF TO data,
|
||||
lo_job_definition TYPE REF TO object,
|
||||
jd_name TYPE ty_jd_name.
|
||||
|
||||
FIELD-SYMBOLS: <ls_job_definition> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
jd_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
|
||||
ASSIGN lr_job_definition->* TO <ls_job_definition>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'JOBD'
|
||||
CHANGING
|
||||
cg_data = <ls_job_definition> ).
|
||||
|
||||
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
|
||||
EXPORTING
|
||||
im_jd_name = jd_name.
|
||||
|
||||
|
||||
ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE <ls_job_definition> TO <field>.
|
||||
|
||||
<field> = iv_package.
|
||||
|
||||
CALL METHOD lo_job_definition->('CREATE_JD')
|
||||
EXPORTING
|
||||
im_jd_attributes = <ls_job_definition>.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |Error deserializing JOBD| ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_job_definition TYPE REF TO object,
|
||||
jd_name TYPE c LENGTH 32.
|
||||
lv_name TYPE c LENGTH 32.
|
||||
|
||||
jd_name = ms_item-obj_name.
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
|
||||
EXPORTING
|
||||
im_jd_name = jd_name.
|
||||
im_jd_name = lv_name.
|
||||
|
||||
CALL METHOD lo_job_definition->('DELETE_JD').
|
||||
|
||||
|
@ -165,17 +47,98 @@ CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_job_definition TYPE REF TO data,
|
||||
lo_job_definition TYPE REF TO object,
|
||||
lv_name TYPE ty_jd_name.
|
||||
|
||||
FIELD-SYMBOLS: <lg_job_definition> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
|
||||
ASSIGN lr_job_definition->* TO <lg_job_definition>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'JOBD'
|
||||
CHANGING
|
||||
cg_data = <lg_job_definition> ).
|
||||
|
||||
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
|
||||
EXPORTING
|
||||
im_jd_name = lv_name.
|
||||
|
||||
ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE <lg_job_definition> TO <lg_field>.
|
||||
|
||||
<lg_field> = iv_package.
|
||||
|
||||
CALL METHOD lo_job_definition->('CREATE_JD')
|
||||
EXPORTING
|
||||
im_jd_attributes = <lg_job_definition>.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |Error deserializing JOBD| ).
|
||||
ENDTRY.
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_name TYPE ty_jd_name.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE')
|
||||
EXPORTING
|
||||
im_jd_name = lv_name
|
||||
IMPORTING
|
||||
ex_is_existing = rv_bool.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |JOBD not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: obj_name TYPE e071-obj_name.
|
||||
DATA: lv_obj_name TYPE e071-obj_name.
|
||||
|
||||
obj_name = ms_item-obj_name.
|
||||
|
||||
lv_obj_name = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL'
|
||||
EXPORTING
|
||||
iv_pgmid = 'R3TR'
|
||||
iv_object = ms_item-obj_type
|
||||
iv_obj_name = obj_name
|
||||
iv_obj_name = lv_obj_name
|
||||
iv_action = 'SHOW'
|
||||
EXCEPTIONS
|
||||
jump_not_possible = 1
|
||||
|
@ -187,10 +150,59 @@ CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_job_definition TYPE REF TO data,
|
||||
lo_job_definition TYPE REF TO object,
|
||||
lv_name TYPE ty_jd_name.
|
||||
|
||||
FIELD-SYMBOLS: <ls_job_definition> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
|
||||
ASSIGN lr_job_definition->* TO <ls_job_definition>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
|
||||
EXPORTING
|
||||
im_jd_name = lv_name.
|
||||
|
||||
CALL METHOD lo_job_definition->('GET_JD_ATTRIBUTES')
|
||||
IMPORTING
|
||||
ex_jd_attributes = <ls_job_definition>.
|
||||
|
||||
ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'BTCJOB_USER' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'OWNER' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_TIME' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_DATE' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_TIME' OF STRUCTURE <ls_job_definition> TO <lg_field>.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'JOBD'
|
||||
ig_data = <ls_job_definition> ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |Error serializing JOBD| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -26,13 +26,10 @@ CLASS zcl_abapgit_object_prag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_prag IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_PRAG IMPLEMENTATION.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -40,79 +37,13 @@ CLASS zcl_abapgit_object_prag IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
TRY.
|
||||
cl_abap_pragma=>get_ref( ms_item-obj_name ).
|
||||
|
||||
CATCH cx_abap_pragma_not_exists.
|
||||
rv_bool = abap_false.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lo_pragma TYPE REF TO cl_abap_pragma,
|
||||
pragma TYPE zcl_abapgit_object_prag=>ty_pragma.
|
||||
|
||||
TRY.
|
||||
lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ).
|
||||
|
||||
pragma-pragma = lo_pragma->pragma.
|
||||
pragma-extension = lo_pragma->extension.
|
||||
pragma-signature = lo_pragma->signature.
|
||||
pragma-description = lo_pragma->description.
|
||||
|
||||
io_xml->add( iv_name = 'PRAG'
|
||||
ig_data = pragma ).
|
||||
|
||||
CATCH cx_abap_pragma_not_exists.
|
||||
_raise_pragma_not_exists( ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: pragma TYPE ty_pragma,
|
||||
lo_pragma TYPE REF TO cl_abap_pragma.
|
||||
|
||||
TRY.
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'PRAG'
|
||||
CHANGING
|
||||
cg_data = pragma ).
|
||||
|
||||
lo_pragma = cl_abap_pragma=>create( p_pragma = ms_item-obj_name
|
||||
p_package = iv_package ).
|
||||
|
||||
lo_pragma->set_info( p_description = pragma-description
|
||||
p_signature = pragma-signature
|
||||
p_extension = pragma-extension ).
|
||||
|
||||
lo_pragma->save( ).
|
||||
|
||||
CATCH cx_abap_pragma_not_exists.
|
||||
_raise_pragma_not_exists( ).
|
||||
CATCH cx_abap_pragma_exists.
|
||||
_raise_pragma_exists( ).
|
||||
CATCH cx_abap_pragma_enqueue.
|
||||
_raise_pragma_enqueue( ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
|
@ -131,6 +62,69 @@ CLASS zcl_abapgit_object_prag IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: ls_pragma TYPE ty_pragma,
|
||||
lo_pragma TYPE REF TO cl_abap_pragma.
|
||||
|
||||
TRY.
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'PRAG'
|
||||
CHANGING
|
||||
cg_data = ls_pragma ).
|
||||
|
||||
lo_pragma = cl_abap_pragma=>create( p_pragma = ms_item-obj_name
|
||||
p_package = iv_package ).
|
||||
|
||||
lo_pragma->set_info( p_description = ls_pragma-description
|
||||
p_signature = ls_pragma-signature
|
||||
p_extension = ls_pragma-extension ).
|
||||
|
||||
lo_pragma->save( ).
|
||||
|
||||
CATCH cx_abap_pragma_not_exists.
|
||||
_raise_pragma_not_exists( ).
|
||||
CATCH cx_abap_pragma_exists.
|
||||
_raise_pragma_exists( ).
|
||||
CATCH cx_abap_pragma_enqueue.
|
||||
_raise_pragma_enqueue( ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
TRY.
|
||||
cl_abap_pragma=>get_ref( ms_item-obj_name ).
|
||||
|
||||
CATCH cx_abap_pragma_not_exists.
|
||||
rv_bool = abap_false.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
|
@ -145,28 +139,47 @@ CLASS zcl_abapgit_object_prag IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lo_pragma TYPE REF TO cl_abap_pragma,
|
||||
ls_pragma TYPE zcl_abapgit_object_prag=>ty_pragma.
|
||||
|
||||
TRY.
|
||||
lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ).
|
||||
|
||||
ls_pragma-pragma = lo_pragma->pragma.
|
||||
ls_pragma-extension = lo_pragma->extension.
|
||||
ls_pragma-signature = lo_pragma->signature.
|
||||
ls_pragma-description = lo_pragma->description.
|
||||
|
||||
io_xml->add( iv_name = 'PRAG'
|
||||
ig_data = ls_pragma ).
|
||||
|
||||
CATCH cx_abap_pragma_not_exists.
|
||||
_raise_pragma_not_exists( ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD _raise_pragma_enqueue.
|
||||
|
||||
zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } enqueue error| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD _raise_pragma_exists.
|
||||
|
||||
zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } exists| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD _raise_pragma_not_exists.
|
||||
|
||||
zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } doesn't exist| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -21,15 +21,64 @@ CLASS zcl_abapgit_object_prog DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = ms_item-obj_name
|
||||
iv_timestamp = iv_timestamp ).
|
||||
CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD deserialize_texts.
|
||||
|
||||
DATA: lt_tpool_i18n TYPE tt_tpool_i18n,
|
||||
lt_tpool TYPE textpool_table.
|
||||
|
||||
FIELD-SYMBOLS <tpool> LIKE LINE OF lt_tpool_i18n.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'I18N_TPOOL'
|
||||
CHANGING cg_data = lt_tpool_i18n ).
|
||||
|
||||
LOOP AT lt_tpool_i18n ASSIGNING <tpool>.
|
||||
lt_tpool = read_tpool( <tpool>-textpool ).
|
||||
deserialize_textpool( iv_program = ms_item-obj_name
|
||||
iv_language = <tpool>-language
|
||||
it_tpool = lt_tpool ).
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "deserialize_texts
|
||||
|
||||
|
||||
METHOD serialize_texts.
|
||||
|
||||
DATA: lt_tpool_i18n TYPE tt_tpool_i18n,
|
||||
lt_tpool TYPE textpool_table.
|
||||
|
||||
FIELD-SYMBOLS <ls_tpool> LIKE LINE OF lt_tpool_i18n.
|
||||
|
||||
|
||||
" Table d010tinf stores info. on languages in which program is maintained
|
||||
" Select all active translations of program texts
|
||||
" Skip master language - it was already serialized
|
||||
SELECT DISTINCT language
|
||||
INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n
|
||||
FROM d010tinf
|
||||
WHERE r3state = 'A'
|
||||
AND prog = ms_item-obj_name
|
||||
AND language <> mv_language.
|
||||
|
||||
SORT lt_tpool_i18n BY language ASCENDING.
|
||||
LOOP AT lt_tpool_i18n ASSIGNING <ls_tpool>.
|
||||
READ TEXTPOOL ms_item-obj_name
|
||||
LANGUAGE <ls_tpool>-language
|
||||
INTO lt_tpool.
|
||||
<ls_tpool>-textpool = add_tpool( lt_tpool ).
|
||||
ENDLOOP.
|
||||
|
||||
IF lines( lt_tpool_i18n ) > 0.
|
||||
io_xml->add( iv_name = 'I18N_TPOOL'
|
||||
ig_data = lt_tpool_i18n ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "serialize_texts
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
SELECT SINGLE unam FROM reposrc INTO rv_user
|
||||
|
@ -40,31 +89,11 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDMETHOD. "zif_abapgit_object~changed_by
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
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
|
||||
|
||||
DATA: lv_progname TYPE reposrc-progname.
|
||||
|
||||
SELECT SINGLE progname FROM reposrc INTO lv_progname
|
||||
WHERE progname = ms_item-obj_name
|
||||
AND r3state = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = 'PROG'
|
||||
in_new_window = abap_true.
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
|
@ -90,16 +119,6 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
serialize_program( io_xml = io_xml
|
||||
is_item = ms_item
|
||||
io_files = mo_files ).
|
||||
|
||||
" Texts serializing (translations)
|
||||
serialize_texts( io_xml ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_serialize~serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
|
@ -144,59 +163,53 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_serialize~deserialize
|
||||
|
||||
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
|
||||
|
||||
METHOD serialize_texts.
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lt_tpool_i18n TYPE tt_tpool_i18n,
|
||||
lt_tpool TYPE textpool_table.
|
||||
DATA: lv_progname TYPE reposrc-progname.
|
||||
|
||||
FIELD-SYMBOLS <tpool> LIKE LINE OF lt_tpool_i18n.
|
||||
SELECT SINGLE progname FROM reposrc INTO lv_progname
|
||||
WHERE progname = ms_item-obj_name
|
||||
AND r3state = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
" Table d010tinf stores info. on languages in which program is maintained
|
||||
" Select all active translations of program texts
|
||||
" Skip master language - it was already serialized
|
||||
SELECT DISTINCT language
|
||||
INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n
|
||||
FROM d010tinf
|
||||
WHERE r3state = 'A'
|
||||
AND prog = ms_item-obj_name
|
||||
AND language <> mv_language.
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
SORT lt_tpool_i18n BY language ASCENDING.
|
||||
LOOP AT lt_tpool_i18n ASSIGNING <tpool>.
|
||||
READ TEXTPOOL ms_item-obj_name
|
||||
LANGUAGE <tpool>-language
|
||||
INTO lt_tpool.
|
||||
<tpool>-textpool = add_tpool( lt_tpool ).
|
||||
ENDLOOP.
|
||||
|
||||
IF lines( lt_tpool_i18n ) > 0.
|
||||
io_xml->add( iv_name = 'I18N_TPOOL'
|
||||
ig_data = lt_tpool_i18n ).
|
||||
ENDIF.
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
ENDMETHOD. "serialize_texts
|
||||
|
||||
METHOD deserialize_texts.
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
DATA: lt_tpool_i18n TYPE tt_tpool_i18n,
|
||||
lt_tpool TYPE textpool_table.
|
||||
rv_changed = check_prog_changed_since(
|
||||
iv_program = ms_item-obj_name
|
||||
iv_timestamp = iv_timestamp ).
|
||||
|
||||
FIELD-SYMBOLS <tpool> LIKE LINE OF lt_tpool_i18n.
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'I18N_TPOOL'
|
||||
CHANGING cg_data = lt_tpool_i18n ).
|
||||
|
||||
LOOP AT lt_tpool_i18n ASSIGNING <tpool>.
|
||||
lt_tpool = read_tpool( <tpool>-textpool ).
|
||||
deserialize_textpool( iv_program = ms_item-obj_name
|
||||
iv_language = <tpool>-language
|
||||
it_tpool = lt_tpool ).
|
||||
ENDLOOP.
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
ENDMETHOD. "deserialize_texts
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = 'PROG'
|
||||
in_new_window = abap_true.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_prog IMPLEMENTATION
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
serialize_program( io_xml = io_xml
|
||||
is_item = ms_item
|
||||
io_files = mo_files ).
|
||||
|
||||
" Texts serializing (translations)
|
||||
serialize_texts( io_xml ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_serialize~serialize
|
||||
ENDCLASS.
|
||||
|
|
|
@ -19,104 +19,10 @@ CLASS zcl_abapgit_object_sfpf DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_sfpf 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.
|
||||
|
||||
SELECT SINGLE lastuser FROM fplayout
|
||||
INTO rv_user
|
||||
WHERE name = ms_item-obj_name
|
||||
AND state = 'A'.
|
||||
IF rv_user IS INITIAL.
|
||||
SELECT SINGLE firstuser FROM fplayout
|
||||
INTO rv_user
|
||||
WHERE name = ms_item-obj_name
|
||||
AND state = 'A'.
|
||||
ENDIF.
|
||||
IF rv_user IS INITIAL.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_name TYPE fpname.
|
||||
|
||||
SELECT SINGLE name FROM fplayout
|
||||
INTO lv_name
|
||||
WHERE name = ms_item-obj_name
|
||||
AND state = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = ms_item-obj_type.
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_name TYPE fpname,
|
||||
lo_wb_form TYPE REF TO cl_fp_wb_form.
|
||||
|
||||
|
||||
lo_wb_form ?= load( ).
|
||||
CLASS ZCL_ABAPGIT_OBJECT_SFPF IMPLEMENTATION.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
lo_wb_form->delete( lv_name ).
|
||||
CATCH cx_fp_api.
|
||||
zcx_abapgit_exception=>raise( 'SFPI error, delete' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
METHOD load.
|
||||
|
||||
DATA: lv_name TYPE fpname.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
ri_wb_form = cl_fp_wb_form=>load( lv_name ).
|
||||
CATCH cx_fp_api.
|
||||
zcx_abapgit_exception=>raise( 'SFPF error, load' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD form_to_xstring.
|
||||
|
||||
DATA: li_fp_form TYPE REF TO if_fp_form,
|
||||
li_wb_form TYPE REF TO if_fp_wb_form.
|
||||
|
||||
|
||||
TRY.
|
||||
li_wb_form = load( ).
|
||||
li_fp_form ?= li_wb_form->get_object( ).
|
||||
rv_xstr = cl_fp_helper=>convert_form_to_xstring( li_fp_form ).
|
||||
CATCH cx_fp_api.
|
||||
zcx_abapgit_exception=>raise( 'SFPF error, form_to_xstring' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD fix_oref.
|
||||
|
||||
|
@ -129,11 +35,11 @@ CLASS zcl_abapgit_object_sfpf IMPLEMENTATION.
|
|||
li_node TYPE REF TO if_ixml_node.
|
||||
|
||||
DEFINE _lookup.
|
||||
read table lt_map from &1 transporting no fields.
|
||||
if sy-subrc <> 0.
|
||||
append &1 to lt_map.
|
||||
read table lt_map from &1 transporting no fields.
|
||||
endif.
|
||||
READ TABLE lt_map FROM &1 TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc <> 0.
|
||||
APPEND &1 TO lt_map.
|
||||
READ TABLE lt_map FROM &1 TRANSPORTING NO FIELDS.
|
||||
ENDIF.
|
||||
lv_new = sy-tabix + 100.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
|
@ -168,18 +74,82 @@ CLASS zcl_abapgit_object_sfpf IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_xstr TYPE xstring,
|
||||
li_document TYPE REF TO if_ixml_document.
|
||||
METHOD form_to_xstring.
|
||||
|
||||
DATA: li_fp_form TYPE REF TO if_fp_form,
|
||||
li_wb_form TYPE REF TO if_fp_wb_form.
|
||||
|
||||
|
||||
lv_xstr = form_to_xstring( ).
|
||||
li_document = cl_ixml_80_20=>parse_to_document( stream_xstring = lv_xstr ).
|
||||
fix_oref( li_document ).
|
||||
io_xml->set_raw( li_document->get_root_element( ) ).
|
||||
TRY.
|
||||
li_wb_form = load( ).
|
||||
li_fp_form ?= li_wb_form->get_object( ).
|
||||
rv_xstr = cl_fp_helper=>convert_form_to_xstring( li_fp_form ).
|
||||
CATCH cx_fp_api.
|
||||
zcx_abapgit_exception=>raise( 'SFPF error, form_to_xstring' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD load.
|
||||
|
||||
DATA: lv_name TYPE fpname.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
ri_wb_form = cl_fp_wb_form=>load( lv_name ).
|
||||
CATCH cx_fp_api.
|
||||
zcx_abapgit_exception=>raise( 'SFPF error, load' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
SELECT SINGLE lastuser FROM fplayout
|
||||
INTO rv_user
|
||||
WHERE name = ms_item-obj_name
|
||||
AND state = 'A'.
|
||||
IF rv_user IS INITIAL.
|
||||
SELECT SINGLE firstuser FROM fplayout
|
||||
INTO rv_user
|
||||
WHERE name = ms_item-obj_name
|
||||
AND state = 'A'.
|
||||
ENDIF.
|
||||
IF rv_user IS INITIAL.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_name TYPE fpname,
|
||||
lo_wb_form TYPE REF TO cl_fp_wb_form.
|
||||
|
||||
|
||||
lo_wb_form ?= load( ).
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
lo_wb_form->delete( lv_name ).
|
||||
CATCH cx_fp_api.
|
||||
zcx_abapgit_exception=>raise( 'SFPI error, delete' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
|
@ -207,8 +177,51 @@ CLASS zcl_abapgit_object_sfpf IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_name TYPE fpname.
|
||||
|
||||
SELECT SINGLE name FROM fplayout
|
||||
INTO lv_name
|
||||
WHERE name = ms_item-obj_name
|
||||
AND state = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
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.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = ms_item-obj_type.
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_xstr TYPE xstring,
|
||||
li_document TYPE REF TO if_ixml_document.
|
||||
|
||||
|
||||
lv_xstr = form_to_xstring( ).
|
||||
li_document = cl_ixml_80_20=>parse_to_document( stream_xstring = lv_xstr ).
|
||||
fix_oref( li_document ).
|
||||
io_xml->set_raw( li_document->get_root_element( ) ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
ENDCLASS.
|
||||
|
|
|
@ -5,13 +5,10 @@ CLASS zcl_abapgit_object_srfc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_srfc IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -19,102 +16,62 @@ CLASS zcl_abapgit_object_srfc IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lo_object_data TYPE REF TO if_wb_object_data_model,
|
||||
lo_srfc_persist TYPE REF TO if_wb_object_persist.
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT lo_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
|
||||
lo_srfc_persist->get(
|
||||
EXPORTING
|
||||
p_object_key = |{ ms_item-obj_name }|
|
||||
p_version = 'A'
|
||||
CHANGING
|
||||
p_object_data = lo_object_data ).
|
||||
|
||||
CATCH cx_root.
|
||||
rv_bool = abap_false.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lo_object_data TYPE REF TO if_wb_object_data_model,
|
||||
lo_srfc_persist TYPE REF TO if_wb_object_persist,
|
||||
lr_srfc_data TYPE REF TO data,
|
||||
DATA: li_srfc_persist TYPE REF TO if_wb_object_persist,
|
||||
lx_error TYPE REF TO cx_root,
|
||||
lv_text TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_srfc_data> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_srfc_data TYPE ('UCONRFCSERV_COMPLETE').
|
||||
ASSIGN lr_srfc_data->* TO <ls_srfc_data>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
|
||||
CREATE OBJECT lo_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
|
||||
lo_srfc_persist->get(
|
||||
EXPORTING
|
||||
p_object_key = |{ ms_item-obj_name }|
|
||||
p_version = 'A'
|
||||
CHANGING
|
||||
p_object_data = lo_object_data ).
|
||||
|
||||
lo_object_data->get_data(
|
||||
IMPORTING
|
||||
p_data = <ls_srfc_data> ).
|
||||
li_srfc_persist->delete( p_object_key = |{ ms_item-obj_name }|
|
||||
p_version = 'A' ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
io_xml->add( iv_name = 'SRFC'
|
||||
ig_data = <ls_srfc_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lo_srfc_persist TYPE REF TO if_wb_object_persist,
|
||||
lo_object_data TYPE REF TO if_wb_object_data_model,
|
||||
DATA: li_srfc_persist TYPE REF TO if_wb_object_persist,
|
||||
li_object_data TYPE REF TO if_wb_object_data_model,
|
||||
lv_text TYPE string,
|
||||
lr_srfc_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <ls_srfc_data> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_srfc_data> TYPE any.
|
||||
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_srfc_data TYPE ('UCONRFCSERV_COMPLETE').
|
||||
ASSIGN lr_srfc_data->* TO <ls_srfc_data>.
|
||||
ASSIGN lr_srfc_data->* TO <lg_srfc_data>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'SRFC'
|
||||
CHANGING
|
||||
cg_data = <ls_srfc_data> ).
|
||||
cg_data = <lg_srfc_data> ).
|
||||
|
||||
CREATE OBJECT lo_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
CREATE OBJECT lo_object_data TYPE ('CL_UCONRFC_OBJECT_DATA').
|
||||
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
CREATE OBJECT li_object_data TYPE ('CL_UCONRFC_OBJECT_DATA').
|
||||
|
||||
lo_object_data->set_data( <ls_srfc_data> ).
|
||||
li_object_data->set_data( <lg_srfc_data> ).
|
||||
|
||||
lo_srfc_persist->save( lo_object_data ).
|
||||
li_srfc_persist->save( li_object_data ).
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
|
@ -125,23 +82,44 @@ CLASS zcl_abapgit_object_srfc IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_srfc_persist TYPE REF TO if_wb_object_persist,
|
||||
lx_error TYPE REF TO cx_root,
|
||||
lv_text TYPE string.
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: li_object_data TYPE REF TO if_wb_object_data_model,
|
||||
li_srfc_persist TYPE REF TO if_wb_object_persist.
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT lo_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
|
||||
lo_srfc_persist->delete( p_object_key = |{ ms_item-obj_name }|
|
||||
p_version = 'A' ).
|
||||
li_srfc_persist->get(
|
||||
EXPORTING
|
||||
p_object_key = |{ ms_item-obj_name }|
|
||||
p_version = 'A'
|
||||
CHANGING
|
||||
p_object_data = li_object_data ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
CATCH cx_root.
|
||||
rv_bool = abap_false.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -164,10 +142,43 @@ CLASS zcl_abapgit_object_srfc IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: li_object_data TYPE REF TO if_wb_object_data_model,
|
||||
li_srfc_persist TYPE REF TO if_wb_object_persist,
|
||||
lr_srfc_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root,
|
||||
lv_text TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_srfc_data> TYPE any.
|
||||
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_srfc_data TYPE ('UCONRFCSERV_COMPLETE').
|
||||
ASSIGN lr_srfc_data->* TO <ls_srfc_data>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
CREATE OBJECT li_srfc_persist TYPE ('CL_UCONRFC_OBJECT_PERSIST').
|
||||
|
||||
li_srfc_persist->get(
|
||||
EXPORTING
|
||||
p_object_key = |{ ms_item-obj_name }|
|
||||
p_version = 'A'
|
||||
CHANGING
|
||||
p_object_data = li_object_data ).
|
||||
|
||||
li_object_data->get_data(
|
||||
IMPORTING
|
||||
p_data = <ls_srfc_data> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
lv_text = lx_error->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
io_xml->add( iv_name = 'SRFC'
|
||||
ig_data = <ls_srfc_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -12,11 +12,24 @@ CLASS zcl_abapgit_object_ssst DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_ssst IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_SSST IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD validate_font.
|
||||
|
||||
DATA: lv_tdfamily TYPE tfo01-tdfamily.
|
||||
|
||||
|
||||
SELECT SINGLE tdfamily FROM tfo01 INTO lv_tdfamily
|
||||
WHERE tdfamily = iv_tdfamily.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Font family not found' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "validate_font
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -28,10 +41,107 @@ CLASS zcl_abapgit_object_ssst IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_stylename TYPE tdssname.
|
||||
|
||||
|
||||
lv_stylename = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'SSF_DELETE_STYLE'
|
||||
EXPORTING
|
||||
i_stylename = lv_stylename
|
||||
i_with_dialog = abap_false
|
||||
i_with_confirm_dialog = abap_false
|
||||
EXCEPTIONS
|
||||
no_name = 1
|
||||
no_style = 2
|
||||
style_locked = 3
|
||||
cancelled = 4
|
||||
no_access_permission = 5
|
||||
illegal_language = 6
|
||||
OTHERS = 7.
|
||||
IF sy-subrc <> 0 AND sy-subrc <> 2.
|
||||
zcx_abapgit_exception=>raise( 'error from SSF_DELETE_STYLE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
* see fm SSF_UPLOAD_STYLE
|
||||
|
||||
DATA: ls_header TYPE ssfcats,
|
||||
ls_new_header TYPE ssfcats,
|
||||
lt_paragraphs TYPE TABLE OF ssfparas,
|
||||
lt_strings TYPE TABLE OF ssfstrings,
|
||||
lt_tabstops TYPE TABLE OF stxstab.
|
||||
|
||||
FIELD-SYMBOLS: <lv_spras> TYPE spras.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'HEADER'
|
||||
CHANGING cg_data = ls_header ).
|
||||
io_xml->read( EXPORTING iv_name = 'SSFPARAS'
|
||||
CHANGING cg_data = lt_paragraphs ).
|
||||
io_xml->read( EXPORTING iv_name = 'SSFSTRINGS'
|
||||
CHANGING cg_data = lt_strings ).
|
||||
io_xml->read( EXPORTING iv_name = 'STXSTAB'
|
||||
CHANGING cg_data = lt_tabstops ).
|
||||
|
||||
validate_font( ls_header-tdfamily ).
|
||||
|
||||
CALL FUNCTION 'SSF_READ_STYLE' "Just load FG
|
||||
EXPORTING
|
||||
i_style_name = ls_header-stylename
|
||||
i_style_active_flag = 'A'
|
||||
EXCEPTIONS
|
||||
OTHERS = 0.
|
||||
IF sy-subrc <> 0.
|
||||
ENDIF.
|
||||
|
||||
SET PARAMETER ID 'EUK' FIELD iv_package.
|
||||
ASSIGN ('(SAPLSTXBS)MASTER_LANGUAGE') TO <lv_spras>.
|
||||
IF sy-subrc = 0.
|
||||
<lv_spras> = ls_header-masterlang.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SSF_SAVE_STYLE'
|
||||
EXPORTING
|
||||
i_header = ls_header
|
||||
IMPORTING
|
||||
e_header = ls_new_header
|
||||
TABLES
|
||||
i_paragraphs = lt_paragraphs
|
||||
i_strings = lt_strings
|
||||
i_tabstops = lt_tabstops.
|
||||
|
||||
IF ls_new_header IS NOT INITIAL.
|
||||
|
||||
CALL FUNCTION 'SSF_ACTIVATE_STYLE'
|
||||
EXPORTING
|
||||
i_stylename = ls_header-stylename
|
||||
EXCEPTIONS
|
||||
no_name = 1
|
||||
no_style = 2
|
||||
cancelled = 3
|
||||
no_access_permission = 4
|
||||
illegal_language = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from SSF_ACTIVATE_STYLE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
|
@ -46,18 +156,54 @@ CLASS zcl_abapgit_object_ssst IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
METHOD validate_font.
|
||||
|
||||
DATA: lv_tdfamily TYPE tfo01-tdfamily.
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
|
||||
SELECT SINGLE tdfamily FROM tfo01 INTO lv_tdfamily
|
||||
WHERE tdfamily = iv_tdfamily.
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: ls_bcdata TYPE bdcdata,
|
||||
lt_bcdata TYPE STANDARD TABLE OF bdcdata.
|
||||
|
||||
ls_bcdata-program = 'SAPMSSFS'.
|
||||
ls_bcdata-dynpro = '0100'.
|
||||
ls_bcdata-dynbegin = 'X'.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'SSFSCREENS-SNAME'.
|
||||
ls_bcdata-fval = ms_item-obj_name.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'BDC_OKCODE'.
|
||||
ls_bcdata-fval = '=DISPLAY'.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||
STARTING NEW TASK 'GIT'
|
||||
EXPORTING
|
||||
tcode = 'SMARTSTYLES'
|
||||
mode_val = 'E'
|
||||
TABLES
|
||||
using_tab = lt_bcdata
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Font family not found' ).
|
||||
zcx_abapgit_exception=>raise( 'error from ABAP4_CALL_TRANSACTION, SSST' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "validate_font
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
* see fm SSF_DOWNLOAD_STYLE
|
||||
|
@ -117,137 +263,4 @@ CLASS zcl_abapgit_object_ssst IMPLEMENTATION.
|
|||
iv_name = 'STXSTAB' ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
* see fm SSF_UPLOAD_STYLE
|
||||
|
||||
DATA: ls_header TYPE ssfcats,
|
||||
ls_new_header TYPE ssfcats,
|
||||
lt_paragraphs TYPE TABLE OF ssfparas,
|
||||
lt_strings TYPE TABLE OF ssfstrings,
|
||||
lt_tabstops TYPE TABLE OF stxstab.
|
||||
FIELD-SYMBOLS: <spras> TYPE spras.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'HEADER'
|
||||
CHANGING cg_data = ls_header ).
|
||||
io_xml->read( EXPORTING iv_name = 'SSFPARAS'
|
||||
CHANGING cg_data = lt_paragraphs ).
|
||||
io_xml->read( EXPORTING iv_name = 'SSFSTRINGS'
|
||||
CHANGING cg_data = lt_strings ).
|
||||
io_xml->read( EXPORTING iv_name = 'STXSTAB'
|
||||
CHANGING cg_data = lt_tabstops ).
|
||||
|
||||
validate_font( ls_header-tdfamily ).
|
||||
|
||||
CALL FUNCTION 'SSF_READ_STYLE' "Just load FG
|
||||
EXPORTING
|
||||
i_style_name = ls_header-stylename
|
||||
i_style_active_flag = 'A'
|
||||
EXCEPTIONS
|
||||
OTHERS = 0.
|
||||
IF sy-subrc <> 0.
|
||||
ENDIF.
|
||||
|
||||
SET PARAMETER ID 'EUK' FIELD iv_package.
|
||||
ASSIGN ('(SAPLSTXBS)MASTER_LANGUAGE') TO <spras>.
|
||||
IF sy-subrc = 0.
|
||||
<spras> = ls_header-masterlang.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SSF_SAVE_STYLE'
|
||||
EXPORTING
|
||||
i_header = ls_header
|
||||
IMPORTING
|
||||
e_header = ls_new_header
|
||||
TABLES
|
||||
i_paragraphs = lt_paragraphs
|
||||
i_strings = lt_strings
|
||||
i_tabstops = lt_tabstops.
|
||||
|
||||
IF ls_new_header IS NOT INITIAL.
|
||||
|
||||
CALL FUNCTION 'SSF_ACTIVATE_STYLE'
|
||||
EXPORTING
|
||||
i_stylename = ls_header-stylename
|
||||
EXCEPTIONS
|
||||
no_name = 1
|
||||
no_style = 2
|
||||
cancelled = 3
|
||||
no_access_permission = 4
|
||||
illegal_language = 5
|
||||
OTHERS = 6.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from SSF_ACTIVATE_STYLE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_stylename TYPE tdssname.
|
||||
|
||||
|
||||
lv_stylename = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'SSF_DELETE_STYLE'
|
||||
EXPORTING
|
||||
i_stylename = lv_stylename
|
||||
i_with_dialog = abap_false
|
||||
i_with_confirm_dialog = abap_false
|
||||
EXCEPTIONS
|
||||
no_name = 1
|
||||
no_style = 2
|
||||
style_locked = 3
|
||||
cancelled = 4
|
||||
no_access_permission = 5
|
||||
illegal_language = 6
|
||||
OTHERS = 7.
|
||||
IF sy-subrc <> 0 AND sy-subrc <> 2.
|
||||
zcx_abapgit_exception=>raise( 'error from SSF_DELETE_STYLE' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: ls_bcdata TYPE bdcdata,
|
||||
lt_bcdata TYPE STANDARD TABLE OF bdcdata.
|
||||
|
||||
ls_bcdata-program = 'SAPMSSFS'.
|
||||
ls_bcdata-dynpro = '0100'.
|
||||
ls_bcdata-dynbegin = 'X'.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'SSFSCREENS-SNAME'.
|
||||
ls_bcdata-fval = ms_item-obj_name.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'BDC_OKCODE'.
|
||||
ls_bcdata-fval = '=DISPLAY'.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||
STARTING NEW TASK 'GIT'
|
||||
EXPORTING
|
||||
tcode = 'SMARTSTYLES'
|
||||
mode_val = 'E'
|
||||
TABLES
|
||||
using_tab = lt_bcdata
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from ABAP4_CALL_TRANSACTION, SSST' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_ssst IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -73,7 +73,7 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
lv_no_ask TYPE abap_bool,
|
||||
lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any.
|
||||
|
||||
|
||||
lv_objname = ms_item-obj_name.
|
||||
|
@ -86,8 +86,8 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
IF sy-subrc = 0 AND lv_tabclass = 'TRANSP'.
|
||||
* it cannot delete table with table wihtout asking
|
||||
CREATE DATA lr_data TYPE (lv_objname).
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
SELECT SINGLE * FROM (lv_objname) INTO <ls_data>.
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
SELECT SINGLE * FROM (lv_objname) INTO <lg_data>.
|
||||
IF sy-subrc = 0.
|
||||
lv_no_ask = abap_false.
|
||||
ENDIF.
|
||||
|
|
|
@ -40,31 +40,57 @@ CLASS zcl_abapgit_object_tran DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_tran 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.
|
||||
rv_user = c_user_unknown. " todo
|
||||
ENDMETHOD.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_TRAN IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
METHOD split_parameters_comp.
|
||||
DATA: lv_off TYPE i.
|
||||
METHOD deserialize_texts.
|
||||
|
||||
IF iv_param CS iv_type.
|
||||
lv_off = sy-fdpos + strlen( iv_type ).
|
||||
cg_value = iv_param+lv_off.
|
||||
IF cg_value CA '\'.
|
||||
CLEAR cg_value+sy-fdpos.
|
||||
DATA lt_tpool_i18n TYPE TABLE OF tstct.
|
||||
|
||||
FIELD-SYMBOLS <ls_tpool> LIKE LINE OF lt_tpool_i18n.
|
||||
|
||||
|
||||
" Read XML-files data
|
||||
io_xml->read( EXPORTING iv_name = 'I18N_TPOOL'
|
||||
CHANGING cg_data = lt_tpool_i18n ).
|
||||
|
||||
" Force t-code name (security reasons)
|
||||
LOOP AT lt_tpool_i18n ASSIGNING <ls_tpool>.
|
||||
<ls_tpool>-tcode = ms_item-obj_name.
|
||||
ENDLOOP.
|
||||
|
||||
IF lines( lt_tpool_i18n ) > 0.
|
||||
MODIFY tstct FROM TABLE lt_tpool_i18n.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Update of t-code translations failed' ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDMETHOD. "split_parameters_comp
|
||||
|
||||
ENDMETHOD. "deserialize_texts
|
||||
|
||||
|
||||
METHOD serialize_texts.
|
||||
|
||||
DATA lt_tpool_i18n TYPE TABLE OF tstct.
|
||||
|
||||
" Skip master language - it was already serialized
|
||||
" Don't serialize t-code itself
|
||||
SELECT sprsl ttext
|
||||
INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n
|
||||
FROM tstct
|
||||
WHERE sprsl <> mv_language
|
||||
AND tcode = ms_item-obj_name. "#EC CI_GENBUFF
|
||||
|
||||
IF lines( lt_tpool_i18n ) > 0.
|
||||
SORT lt_tpool_i18n BY sprsl ASCENDING.
|
||||
io_xml->add( iv_name = 'I18N_TPOOL'
|
||||
ig_data = lt_tpool_i18n ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "serialize_texts
|
||||
|
||||
|
||||
METHOD split_parameters.
|
||||
* see subroutine split_parameters in include LSEUKF01
|
||||
|
@ -195,52 +221,29 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDMETHOD. "split_parameters
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_tcode TYPE tstc-tcode.
|
||||
METHOD split_parameters_comp.
|
||||
DATA: lv_off TYPE i.
|
||||
|
||||
IF iv_param CS iv_type.
|
||||
lv_off = sy-fdpos + strlen( iv_type ).
|
||||
cg_value = iv_param+lv_off.
|
||||
IF cg_value CA '\'.
|
||||
CLEAR cg_value+sy-fdpos.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDMETHOD. "split_parameters_comp
|
||||
|
||||
|
||||
SELECT SINGLE tcode FROM tstc INTO lv_tcode
|
||||
WHERE tcode = ms_item-obj_name. "#EC CI_GENBUFF
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: lt_bdcdata TYPE TABLE OF bdcdata.
|
||||
|
||||
FIELD-SYMBOLS: <ls_bdcdata> LIKE LINE OF lt_bdcdata.
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown. " todo
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||
<ls_bdcdata>-program = 'SAPLSEUK'.
|
||||
<ls_bdcdata>-dynpro = '0390'.
|
||||
<ls_bdcdata>-dynbegin = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||
<ls_bdcdata>-fnam = 'BDC_OKCODE'.
|
||||
<ls_bdcdata>-fval = '=SHOW'.
|
||||
|
||||
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||
<ls_bdcdata>-fnam = 'TSTC-TCODE'.
|
||||
<ls_bdcdata>-fval = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||
STARTING NEW TASK 'GIT'
|
||||
EXPORTING
|
||||
tcode = 'SE93'
|
||||
mode_val = 'E'
|
||||
TABLES
|
||||
using_tab = lt_bdcdata
|
||||
EXCEPTIONS
|
||||
system_failure = 1
|
||||
communication_failure = 2
|
||||
resource_failure = 3
|
||||
OTHERS = 4
|
||||
##fm_subrc_ok. "#EC CI_SUBRC
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
|
@ -262,6 +265,7 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "delete
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
CONSTANTS: lc_hex_tra TYPE x VALUE '00',
|
||||
|
@ -356,6 +360,66 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "deserialize
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_tcode TYPE tstc-tcode.
|
||||
|
||||
|
||||
SELECT SINGLE tcode FROM tstc INTO lv_tcode
|
||||
WHERE tcode = ms_item-obj_name. "#EC CI_GENBUFF
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
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.
|
||||
|
||||
DATA: lt_bdcdata TYPE TABLE OF bdcdata.
|
||||
|
||||
FIELD-SYMBOLS: <ls_bdcdata> LIKE LINE OF lt_bdcdata.
|
||||
|
||||
|
||||
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||
<ls_bdcdata>-program = 'SAPLSEUK'.
|
||||
<ls_bdcdata>-dynpro = '0390'.
|
||||
<ls_bdcdata>-dynbegin = abap_true.
|
||||
|
||||
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||
<ls_bdcdata>-fnam = 'BDC_OKCODE'.
|
||||
<ls_bdcdata>-fval = '=SHOW'.
|
||||
|
||||
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||
<ls_bdcdata>-fnam = 'TSTC-TCODE'.
|
||||
<ls_bdcdata>-fval = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||
STARTING NEW TASK 'GIT'
|
||||
EXPORTING
|
||||
tcode = 'SE93'
|
||||
mode_val = 'E'
|
||||
TABLES
|
||||
using_tab = lt_bdcdata
|
||||
EXCEPTIONS
|
||||
system_failure = 1
|
||||
communication_failure = 2
|
||||
resource_failure = 3
|
||||
OTHERS = 4
|
||||
##fm_subrc_ok. "#EC CI_SUBRC
|
||||
|
||||
ENDMETHOD. "jump
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_transaction TYPE tstc-tcode,
|
||||
|
@ -414,52 +478,4 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION.
|
|||
serialize_texts( io_xml ).
|
||||
|
||||
ENDMETHOD. "serialize
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD serialize_texts.
|
||||
|
||||
DATA lt_tpool_i18n TYPE TABLE OF tstct.
|
||||
|
||||
" Skip master language - it was already serialized
|
||||
" Don't serialize t-code itself
|
||||
SELECT sprsl ttext
|
||||
INTO CORRESPONDING FIELDS OF TABLE lt_tpool_i18n
|
||||
FROM tstct
|
||||
WHERE sprsl <> mv_language
|
||||
AND tcode = ms_item-obj_name. "#EC CI_GENBUFF
|
||||
|
||||
IF lines( lt_tpool_i18n ) > 0.
|
||||
SORT lt_tpool_i18n BY sprsl ASCENDING.
|
||||
io_xml->add( iv_name = 'I18N_TPOOL'
|
||||
ig_data = lt_tpool_i18n ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "serialize_texts
|
||||
|
||||
METHOD deserialize_texts.
|
||||
|
||||
DATA lt_tpool_i18n TYPE TABLE OF tstct.
|
||||
|
||||
FIELD-SYMBOLS <tpool> LIKE LINE OF lt_tpool_i18n.
|
||||
|
||||
" Read XML-files data
|
||||
io_xml->read( EXPORTING iv_name = 'I18N_TPOOL'
|
||||
CHANGING cg_data = lt_tpool_i18n ).
|
||||
|
||||
" Force t-code name (security reasons)
|
||||
LOOP AT lt_tpool_i18n ASSIGNING <tpool>.
|
||||
<tpool>-tcode = ms_item-obj_name.
|
||||
ENDLOOP.
|
||||
|
||||
IF lines( lt_tpool_i18n ) > 0.
|
||||
MODIFY tstct FROM TABLE lt_tpool_i18n.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Update of t-code translations failed' ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "deserialize_texts
|
||||
ENDCLASS. "zcl_abapgit_object_tran IMPLEMENTATION
|
||||
ENDCLASS.
|
||||
|
|
|
@ -26,27 +26,150 @@ CLASS zcl_abapgit_object_ucsa DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_ucsa IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_UCSA IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clear_dynamic_fields.
|
||||
|
||||
FIELD-SYMBOLS: <lg_header> TYPE any.
|
||||
|
||||
|
||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE cs_complete_comm_assembly
|
||||
TO <lg_header>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CREATEDBY'
|
||||
CHANGING cs_header = <lg_header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CREATEDON'
|
||||
CHANGING cs_header = <lg_header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CREATEDAT'
|
||||
CHANGING cs_header = <lg_header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CHANGEDBY'
|
||||
CHANGING cs_header = <lg_header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CHANGEDON'
|
||||
CHANGING cs_header = <lg_header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CHANGEDAT'
|
||||
CHANGING cs_header = <lg_header> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_field.
|
||||
|
||||
FIELD-SYMBOLS: <field> TYPE any.
|
||||
|
||||
ASSIGN COMPONENT iv_fieldname OF STRUCTURE cs_header
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR: <field>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_persistence.
|
||||
|
||||
CALL METHOD ('CL_UCON_SA_DB_PERSIST')=>('IF_UCON_SA_PERSIST~GET_INSTANCE')
|
||||
EXPORTING
|
||||
id = iv_id
|
||||
RECEIVING
|
||||
instance = ro_persistence.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
rv_user = c_user_unknown.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_id TYPE ty_id,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_text TYPE string,
|
||||
lo_persistence TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
lv_id = ms_item-obj_name.
|
||||
|
||||
lo_persistence = get_persistence( lv_id ).
|
||||
|
||||
CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~DELETE')
|
||||
EXPORTING
|
||||
version = zif_abapgit_definitions=>gc_version-active.
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
lv_text = lx_root->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lv_id TYPE ty_id,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_text TYPE string,
|
||||
lo_persistence TYPE REF TO object,
|
||||
lr_complete_comm_assembly TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <lg_complete_comm_assembly> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_complete_comm_assembly TYPE ('UCONSERVASCOMPLETE').
|
||||
ASSIGN lr_complete_comm_assembly->* TO <lg_complete_comm_assembly>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'UCSA'
|
||||
CHANGING
|
||||
cg_data = <lg_complete_comm_assembly> ).
|
||||
|
||||
lv_id = ms_item-obj_name.
|
||||
|
||||
lo_persistence = get_persistence( lv_id ).
|
||||
|
||||
CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~CREATE').
|
||||
|
||||
CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~SAVE')
|
||||
EXPORTING
|
||||
sa = <lg_complete_comm_assembly>
|
||||
version = zif_abapgit_definitions=>gc_version-active.
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
lv_text = lx_root->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_id TYPE ty_id,
|
||||
|
@ -75,6 +198,42 @@ CLASS zcl_abapgit_object_ucsa IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
|
||||
rv_changed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = ms_item-obj_type
|
||||
in_new_window = abap_true
|
||||
EXCEPTIONS
|
||||
not_executed = 1
|
||||
invalid_object_type = 2
|
||||
OTHERS = 3.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from RS_TOOL_ACCESS' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_id TYPE ty_id,
|
||||
|
@ -112,150 +271,4 @@ CLASS zcl_abapgit_object_ucsa IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lv_id TYPE ty_id,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_text TYPE string,
|
||||
lo_persistence TYPE REF TO object,
|
||||
lr_complete_comm_assembly TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_complete_comm_assembly> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_complete_comm_assembly TYPE ('UCONSERVASCOMPLETE').
|
||||
ASSIGN lr_complete_comm_assembly->* TO <ls_complete_comm_assembly>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'UCSA'
|
||||
CHANGING
|
||||
cg_data = <ls_complete_comm_assembly> ).
|
||||
|
||||
lv_id = ms_item-obj_name.
|
||||
|
||||
lo_persistence = get_persistence( lv_id ).
|
||||
|
||||
CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~CREATE').
|
||||
|
||||
CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~SAVE')
|
||||
EXPORTING
|
||||
sa = <ls_complete_comm_assembly>
|
||||
version = zif_abapgit_definitions=>gc_version-active.
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
lv_text = lx_root->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_id TYPE ty_id,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_text TYPE string,
|
||||
lo_persistence TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
lv_id = ms_item-obj_name.
|
||||
|
||||
lo_persistence = get_persistence( lv_id ).
|
||||
|
||||
CALL METHOD lo_persistence->('IF_UCON_SA_PERSIST~DELETE')
|
||||
EXPORTING
|
||||
version = zif_abapgit_definitions=>gc_version-active.
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
lv_text = lx_root->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = ms_item-obj_type
|
||||
in_new_window = abap_true
|
||||
EXCEPTIONS
|
||||
not_executed = 1
|
||||
invalid_object_type = 2
|
||||
OTHERS = 3.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from RS_TOOL_ACCESS' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_persistence.
|
||||
|
||||
CALL METHOD ('CL_UCON_SA_DB_PERSIST')=>('IF_UCON_SA_PERSIST~GET_INSTANCE')
|
||||
EXPORTING
|
||||
id = iv_id
|
||||
RECEIVING
|
||||
instance = ro_persistence.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD clear_dynamic_fields.
|
||||
|
||||
FIELD-SYMBOLS: <header> TYPE any.
|
||||
|
||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE cs_complete_comm_assembly
|
||||
TO <header>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CREATEDBY'
|
||||
CHANGING cs_header = <header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CREATEDON'
|
||||
CHANGING cs_header = <header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CREATEDAT'
|
||||
CHANGING cs_header = <header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CHANGEDBY'
|
||||
CHANGING cs_header = <header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CHANGEDON'
|
||||
CHANGING cs_header = <header> ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING iv_fieldname = 'CHANGEDAT'
|
||||
CHANGING cs_header = <header> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD clear_field.
|
||||
|
||||
FIELD-SYMBOLS: <field> TYPE any.
|
||||
|
||||
ASSIGN COMPONENT iv_fieldname OF STRUCTURE cs_header
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR: <field>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -46,87 +46,10 @@ CLASS zcl_abapgit_object_webi DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_webi 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.
|
||||
rv_user = c_user_unknown. " todo
|
||||
ENDMETHOD. "zif_abapgit_object~changed_by
|
||||
CLASS ZCL_ABAPGIT_OBJECT_WEBI IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: ls_webi TYPE ty_webi,
|
||||
lt_modilog TYPE STANDARD TABLE OF smodilog WITH DEFAULT KEY,
|
||||
li_vi TYPE REF TO if_ws_md_vif,
|
||||
lv_name TYPE vepname.
|
||||
|
||||
FIELD-SYMBOLS: <ls_header> LIKE LINE OF ls_webi-pvepheader,
|
||||
<ls_endpoint> LIKE LINE OF ls_webi-pvependpoint.
|
||||
|
||||
CALL FUNCTION 'WEBI_GET_OBJECT'
|
||||
EXPORTING
|
||||
webiname = ms_item-obj_name
|
||||
TABLES
|
||||
psmodilog = lt_modilog
|
||||
pvepheader = ls_webi-pvepheader
|
||||
pvepfunction = ls_webi-pvepfunction
|
||||
pvepfault = ls_webi-pvepfault
|
||||
pvepparameter = ls_webi-pvepparameter
|
||||
pveptype = ls_webi-pveptype
|
||||
pvepelemtype = ls_webi-pvepelemtype
|
||||
pveptabletype = ls_webi-pveptabletype
|
||||
pvepstrutype = ls_webi-pvepstrutype
|
||||
pveptypesoapext = ls_webi-pveptypesoapext
|
||||
pvepeletypsoap = ls_webi-pvepeletypsoap
|
||||
pveptabtypsoap = ls_webi-pveptabtypsoap
|
||||
pvepfuncsoapext = ls_webi-pvepfuncsoapext
|
||||
pvepfieldref = ls_webi-pvepfieldref
|
||||
pvependpoint = ls_webi-pvependpoint
|
||||
pvepvisoapext = ls_webi-pvepvisoapext
|
||||
pvepparasoapext = ls_webi-pvepparasoapext
|
||||
EXCEPTIONS
|
||||
version_not_found = 1
|
||||
webi_not_exist = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from WEBI_GET_OBJECT' ).
|
||||
ENDIF.
|
||||
|
||||
SORT ls_webi-pveptype BY
|
||||
vepname ASCENDING
|
||||
version ASCENDING
|
||||
typename ASCENDING.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
TRY.
|
||||
li_vi = cl_ws_md_factory=>get_vif_root( )->get_virtual_interface( lv_name ).
|
||||
ls_webi-veptext = li_vi->get_short_text( sews_c_vif_version-active ).
|
||||
CATCH cx_ws_md_exception.
|
||||
zcx_abapgit_exception=>raise( 'error serializing WEBI' ).
|
||||
ENDTRY.
|
||||
|
||||
LOOP AT ls_webi-pvepheader ASSIGNING <ls_header>.
|
||||
CLEAR <ls_header>-author.
|
||||
CLEAR <ls_header>-createdon.
|
||||
CLEAR <ls_header>-changedby.
|
||||
CLEAR <ls_header>-changedon.
|
||||
CLEAR <ls_header>-ctime.
|
||||
CLEAR <ls_header>-text_id.
|
||||
CLEAR <ls_header>-utime.
|
||||
CLEAR <ls_header>-wsint_version.
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT ls_webi-pvependpoint ASSIGNING <ls_endpoint>.
|
||||
CLEAR: <ls_endpoint>-clustd.
|
||||
ENDLOOP.
|
||||
|
||||
io_xml->add( iv_name = 'WEBI'
|
||||
ig_data = ls_webi ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~serialize
|
||||
|
||||
METHOD handle_endpoint.
|
||||
|
||||
|
@ -167,12 +90,13 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "handle_endpoint
|
||||
|
||||
|
||||
METHOD handle_function.
|
||||
|
||||
CONSTANTS: BEGIN OF co_parameter_type,
|
||||
CONSTANTS: BEGIN OF lc_parameter_type,
|
||||
import TYPE vepparamtype VALUE 'I',
|
||||
export TYPE vepparamtype VALUE 'O',
|
||||
END OF co_parameter_type.
|
||||
END OF lc_parameter_type.
|
||||
|
||||
DATA: li_parameter TYPE REF TO if_ws_md_vif_param,
|
||||
li_soap TYPE REF TO if_ws_md_soap_ext_func,
|
||||
|
@ -202,12 +126,12 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
WHERE function = <ls_function>-function.
|
||||
|
||||
CASE <ls_parameter>-vepparamtype.
|
||||
WHEN co_parameter_type-import.
|
||||
WHEN lc_parameter_type-import.
|
||||
|
||||
li_parameter = li_function->create_incoming_parameter(
|
||||
<ls_parameter>-vepparam ).
|
||||
|
||||
WHEN co_parameter_type-export.
|
||||
WHEN lc_parameter_type-export.
|
||||
|
||||
li_parameter = li_function->create_outgoing_parameter(
|
||||
<ls_parameter>-vepparam ).
|
||||
|
@ -244,6 +168,26 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "handle_function
|
||||
|
||||
|
||||
METHOD handle_soap.
|
||||
|
||||
DATA: li_soap TYPE REF TO if_ws_md_soap_ext_virtinfc,
|
||||
ls_soap LIKE LINE OF is_webi-pvepvisoapext.
|
||||
|
||||
|
||||
READ TABLE is_webi-pvepvisoapext INDEX 1 INTO ls_soap.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
IF mi_vi->has_soap_extension_virtinfc( sews_c_vif_version-active ) = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
li_soap = mi_vi->create_soap_extension_virtinfc( ls_soap-soap_appl_uri ).
|
||||
li_soap->set_namespace( ls_soap-namespace ).
|
||||
|
||||
ENDMETHOD. "handle_soap
|
||||
|
||||
|
||||
METHOD handle_types.
|
||||
|
||||
DATA: lv_index TYPE i,
|
||||
|
@ -325,23 +269,34 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "handle_types
|
||||
|
||||
METHOD handle_soap.
|
||||
|
||||
DATA: li_soap TYPE REF TO if_ws_md_soap_ext_virtinfc,
|
||||
ls_soap LIKE LINE OF is_webi-pvepvisoapext.
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown. " todo
|
||||
ENDMETHOD. "zif_abapgit_object~changed_by
|
||||
|
||||
|
||||
READ TABLE is_webi-pvepvisoapext INDEX 1 INTO ls_soap.
|
||||
ASSERT sy-subrc = 0.
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
IF mi_vi->has_soap_extension_virtinfc( sews_c_vif_version-active ) = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
li_soap = mi_vi->create_soap_extension_virtinfc( ls_soap-soap_appl_uri ).
|
||||
li_soap->set_namespace( ls_soap-namespace ).
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_name TYPE vepname,
|
||||
lo_vif TYPE REF TO cl_ws_md_vif_root.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
CREATE OBJECT lo_vif.
|
||||
TRY.
|
||||
lo_vif->if_ws_md_vif_root~delete_virtual_interface( lv_name ).
|
||||
CATCH cx_ws_md_exception.
|
||||
zcx_abapgit_exception=>raise( 'error deleting WEBI' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~delete
|
||||
|
||||
ENDMETHOD. "handle_soap
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
|
@ -399,22 +354,6 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~deserialize
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_name TYPE vepname,
|
||||
lo_vif TYPE REF TO cl_ws_md_vif_root.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
CREATE OBJECT lo_vif.
|
||||
TRY.
|
||||
lo_vif->if_ws_md_vif_root~delete_virtual_interface( lv_name ).
|
||||
CATCH cx_ws_md_exception.
|
||||
zcx_abapgit_exception=>raise( 'error deleting WEBI' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~delete
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
|
@ -429,6 +368,17 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~exists
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
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.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
|
@ -440,12 +390,76 @@ CLASS zcl_abapgit_object_webi IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "zif_abapgit_object~jump
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD. "zif_abapgit_object~get_metadata
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
ENDCLASS. "zcl_abapgit_object_webi IMPLEMENTATION
|
||||
DATA: ls_webi TYPE ty_webi,
|
||||
lt_modilog TYPE STANDARD TABLE OF smodilog WITH DEFAULT KEY,
|
||||
li_vi TYPE REF TO if_ws_md_vif,
|
||||
lv_name TYPE vepname.
|
||||
|
||||
FIELD-SYMBOLS: <ls_header> LIKE LINE OF ls_webi-pvepheader,
|
||||
<ls_endpoint> LIKE LINE OF ls_webi-pvependpoint.
|
||||
|
||||
CALL FUNCTION 'WEBI_GET_OBJECT'
|
||||
EXPORTING
|
||||
webiname = ms_item-obj_name
|
||||
TABLES
|
||||
psmodilog = lt_modilog
|
||||
pvepheader = ls_webi-pvepheader
|
||||
pvepfunction = ls_webi-pvepfunction
|
||||
pvepfault = ls_webi-pvepfault
|
||||
pvepparameter = ls_webi-pvepparameter
|
||||
pveptype = ls_webi-pveptype
|
||||
pvepelemtype = ls_webi-pvepelemtype
|
||||
pveptabletype = ls_webi-pveptabletype
|
||||
pvepstrutype = ls_webi-pvepstrutype
|
||||
pveptypesoapext = ls_webi-pveptypesoapext
|
||||
pvepeletypsoap = ls_webi-pvepeletypsoap
|
||||
pveptabtypsoap = ls_webi-pveptabtypsoap
|
||||
pvepfuncsoapext = ls_webi-pvepfuncsoapext
|
||||
pvepfieldref = ls_webi-pvepfieldref
|
||||
pvependpoint = ls_webi-pvependpoint
|
||||
pvepvisoapext = ls_webi-pvepvisoapext
|
||||
pvepparasoapext = ls_webi-pvepparasoapext
|
||||
EXCEPTIONS
|
||||
version_not_found = 1
|
||||
webi_not_exist = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from WEBI_GET_OBJECT' ).
|
||||
ENDIF.
|
||||
|
||||
SORT ls_webi-pveptype BY
|
||||
vepname ASCENDING
|
||||
version ASCENDING
|
||||
typename ASCENDING.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
TRY.
|
||||
li_vi = cl_ws_md_factory=>get_vif_root( )->get_virtual_interface( lv_name ).
|
||||
ls_webi-veptext = li_vi->get_short_text( sews_c_vif_version-active ).
|
||||
CATCH cx_ws_md_exception.
|
||||
zcx_abapgit_exception=>raise( 'error serializing WEBI' ).
|
||||
ENDTRY.
|
||||
|
||||
LOOP AT ls_webi-pvepheader ASSIGNING <ls_header>.
|
||||
CLEAR <ls_header>-author.
|
||||
CLEAR <ls_header>-createdon.
|
||||
CLEAR <ls_header>-changedby.
|
||||
CLEAR <ls_header>-changedon.
|
||||
CLEAR <ls_header>-ctime.
|
||||
CLEAR <ls_header>-text_id.
|
||||
CLEAR <ls_header>-utime.
|
||||
CLEAR <ls_header>-wsint_version.
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT ls_webi-pvependpoint ASSIGNING <ls_endpoint>.
|
||||
CLEAR: <ls_endpoint>-clustd.
|
||||
ENDLOOP.
|
||||
|
||||
io_xml->add( iv_name = 'WEBI'
|
||||
ig_data = ls_webi ).
|
||||
|
||||
ENDMETHOD. "zif_abapgit_object~serialize
|
||||
ENDCLASS.
|
||||
|
|
|
@ -50,12 +50,118 @@ CLASS zcl_abapgit_objects_saxx_super DEFINITION PUBLIC ABSTRACT
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECTS_SAXX_SUPER IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create_channel_objects.
|
||||
|
||||
get_names( ).
|
||||
|
||||
TRY.
|
||||
IF mo_appl_obj_data IS NOT BOUND.
|
||||
CREATE OBJECT mo_appl_obj_data TYPE (mv_appl_obj_cls_name).
|
||||
ENDIF.
|
||||
|
||||
IF mo_persistence IS NOT BOUND.
|
||||
CREATE OBJECT mo_persistence TYPE (mv_persistence_cls_name).
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_data.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
mo_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_version = 'A'
|
||||
CHANGING
|
||||
p_object_data = mo_appl_obj_data ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
mo_appl_obj_data->get_data(
|
||||
IMPORTING
|
||||
p_data = p_data ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_names.
|
||||
|
||||
IF mv_data_structure_name IS INITIAL.
|
||||
mv_data_structure_name = get_data_structure_name( ).
|
||||
ENDIF.
|
||||
|
||||
IF mv_appl_obj_cls_name IS INITIAL.
|
||||
mv_appl_obj_cls_name = get_data_class_name( ).
|
||||
ENDIF.
|
||||
|
||||
IF mv_persistence_cls_name IS INITIAL.
|
||||
mv_persistence_cls_name = get_persistence_class_name( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD lock.
|
||||
|
||||
DATA: lv_objname TYPE trobj_name,
|
||||
lv_object_key TYPE seu_objkey,
|
||||
lv_objtype TYPE trobjtype.
|
||||
|
||||
|
||||
lv_objname = ms_item-obj_name.
|
||||
lv_object_key = ms_item-obj_name.
|
||||
lv_objtype = ms_item-obj_type.
|
||||
|
||||
mo_persistence->lock(
|
||||
EXPORTING
|
||||
p_objname_tr = lv_objname
|
||||
p_object_key = lv_object_key
|
||||
p_objtype_tr = lv_objtype
|
||||
EXCEPTIONS
|
||||
foreign_lock = 1
|
||||
error_occurred = 2
|
||||
OTHERS = 3 ).
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error occured while locking { ms_item-obj_type } | && lv_objname ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "lock
|
||||
|
||||
|
||||
METHOD unlock.
|
||||
|
||||
DATA: lv_objname TYPE trobj_name,
|
||||
lv_object_key TYPE seu_objkey,
|
||||
lv_objtype TYPE trobjtype.
|
||||
|
||||
lv_objname = ms_item-obj_name.
|
||||
lv_object_key = ms_item-obj_name.
|
||||
lv_objtype = ms_item-obj_type.
|
||||
|
||||
mo_persistence->unlock( p_objname_tr = lv_objname
|
||||
p_object_key = lv_object_key
|
||||
p_objtype_tr = lv_objtype ).
|
||||
|
||||
ENDMETHOD. "unlock
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
|
@ -91,106 +197,45 @@ CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: object_key TYPE seu_objkey.
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey.
|
||||
|
||||
create_channel_objects( ).
|
||||
|
||||
object_key = ms_item-obj_name.
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
mo_persistence->get( p_object_key = object_key
|
||||
p_version = 'A'
|
||||
p_existence_check_only = abap_true ).
|
||||
lock( ).
|
||||
|
||||
CATCH cx_swb_object_does_not_exist cx_swb_exception.
|
||||
rv_bool = abap_false.
|
||||
RETURN.
|
||||
mo_persistence->delete( lv_object_key ).
|
||||
|
||||
unlock( ).
|
||||
|
||||
CATCH cx_swb_exception.
|
||||
zcx_abapgit_exception=>raise( |Error occured while deleting { ms_item-obj_type }| ).
|
||||
ENDTRY.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any,
|
||||
<ls_header> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
create_channel_objects( ).
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE (mv_data_structure_name).
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
get_data(
|
||||
IMPORTING
|
||||
p_data = <ls_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <ls_data> TO <ls_header>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE <ls_header> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <field>.
|
||||
|
||||
io_xml->add( iv_name = ms_item-obj_type
|
||||
ig_data = <ls_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <ls_data> TYPE any.
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any.
|
||||
|
||||
create_channel_objects( ).
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE (mv_data_structure_name).
|
||||
ASSIGN lr_data->* TO <ls_data>.
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||
|
@ -200,7 +245,7 @@ CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
|
|||
EXPORTING
|
||||
iv_name = ms_item-obj_type
|
||||
CHANGING
|
||||
cg_data = <ls_data> ).
|
||||
cg_data = <lg_data> ).
|
||||
|
||||
IF zif_abapgit_object~exists( ) = abap_true.
|
||||
zif_abapgit_object~delete( ).
|
||||
|
@ -227,7 +272,7 @@ CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( |Error occured while creating { ms_item-obj_type }| ).
|
||||
ENDIF.
|
||||
|
||||
mo_appl_obj_data->set_data( <ls_data> ).
|
||||
mo_appl_obj_data->set_data( <lg_data> ).
|
||||
|
||||
mo_persistence->save( mo_appl_obj_data ).
|
||||
|
||||
|
@ -239,27 +284,41 @@ CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: object_key TYPE seu_objkey.
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey.
|
||||
|
||||
create_channel_objects( ).
|
||||
|
||||
object_key = ms_item-obj_name.
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
lock( ).
|
||||
mo_persistence->get( p_object_key = lv_object_key
|
||||
p_version = 'A'
|
||||
p_existence_check_only = abap_true ).
|
||||
|
||||
mo_persistence->delete( object_key ).
|
||||
|
||||
unlock( ).
|
||||
|
||||
CATCH cx_swb_exception.
|
||||
zcx_abapgit_exception=>raise( |Error occured while deleting { ms_item-obj_type }| ).
|
||||
CATCH cx_swb_object_does_not_exist cx_swb_exception.
|
||||
rv_bool = abap_false.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~has_changed_since.
|
||||
rv_changed = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
|
@ -270,109 +329,66 @@ CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD create_channel_objects.
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
get_names( ).
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_header> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
create_channel_objects( ).
|
||||
|
||||
TRY.
|
||||
IF mo_appl_obj_data IS NOT BOUND.
|
||||
CREATE OBJECT mo_appl_obj_data TYPE (mv_appl_obj_cls_name).
|
||||
ENDIF.
|
||||
|
||||
IF mo_persistence IS NOT BOUND.
|
||||
CREATE OBJECT mo_persistence TYPE (mv_persistence_cls_name).
|
||||
ENDIF.
|
||||
CREATE DATA lr_data TYPE (mv_data_structure_name).
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_data.
|
||||
|
||||
DATA: object_key TYPE seu_objkey.
|
||||
|
||||
object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
mo_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = object_key
|
||||
p_version = 'A'
|
||||
CHANGING
|
||||
p_object_data = mo_appl_obj_data ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } not supported| ).
|
||||
ENDTRY.
|
||||
|
||||
mo_appl_obj_data->get_data(
|
||||
get_data(
|
||||
IMPORTING
|
||||
p_data = p_data ).
|
||||
p_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'HEADER' OF STRUCTURE <lg_data> TO <lg_header>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_AT' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_CLNT' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_ON' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_AT' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_CLNT' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = ms_item-obj_type
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lock.
|
||||
|
||||
DATA: objname TYPE trobj_name,
|
||||
object_key TYPE seu_objkey,
|
||||
objtype TYPE trobjtype.
|
||||
|
||||
objname = ms_item-obj_name.
|
||||
object_key = ms_item-obj_name.
|
||||
objtype = ms_item-obj_type.
|
||||
|
||||
mo_persistence->lock(
|
||||
EXPORTING
|
||||
p_objname_tr = objname
|
||||
p_object_key = object_key
|
||||
p_objtype_tr = objtype
|
||||
EXCEPTIONS
|
||||
foreign_lock = 1
|
||||
error_occurred = 2
|
||||
OTHERS = 3 ).
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error occured while locking { ms_item-obj_type } | && objname ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD. "lock
|
||||
|
||||
METHOD unlock.
|
||||
|
||||
DATA: objname TYPE trobj_name,
|
||||
object_key TYPE seu_objkey,
|
||||
objtype TYPE trobjtype.
|
||||
|
||||
objname = ms_item-obj_name.
|
||||
object_key = ms_item-obj_name.
|
||||
objtype = ms_item-obj_type.
|
||||
|
||||
mo_persistence->unlock( p_objname_tr = objname
|
||||
p_object_key = object_key
|
||||
p_objtype_tr = objtype ).
|
||||
|
||||
ENDMETHOD. "unlock
|
||||
|
||||
METHOD get_names.
|
||||
|
||||
IF mv_data_structure_name IS INITIAL.
|
||||
mv_data_structure_name = get_data_structure_name( ).
|
||||
ENDIF.
|
||||
|
||||
IF mv_appl_obj_cls_name IS INITIAL.
|
||||
mv_appl_obj_cls_name = get_data_class_name( ).
|
||||
ENDIF.
|
||||
|
||||
IF mv_persistence_cls_name IS INITIAL.
|
||||
mv_persistence_cls_name = get_persistence_class_name( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -132,15 +132,15 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
|
|||
|
||||
METHOD is_adt_jump_possible.
|
||||
|
||||
DATA: li_wb_request TYPE REF TO cl_wb_request,
|
||||
li_adt_uri_mapper_vit TYPE REF TO object,
|
||||
is_vit_wb_request TYPE abap_bool.
|
||||
DATA: lo_wb_request TYPE REF TO cl_wb_request,
|
||||
lo_adt_uri_mapper_vit TYPE REF TO object,
|
||||
lv_vit_wb_request TYPE abap_bool.
|
||||
|
||||
cl_wb_request=>create_from_object_ref(
|
||||
EXPORTING
|
||||
p_wb_object = io_object
|
||||
RECEIVING
|
||||
p_wb_request = li_wb_request
|
||||
p_wb_request = lo_wb_request
|
||||
EXCEPTIONS
|
||||
illegal_operation = 1
|
||||
cancelled = 2
|
||||
|
@ -153,15 +153,15 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
|
|||
TRY.
|
||||
CALL METHOD io_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER_VIT')
|
||||
RECEIVING
|
||||
result = li_adt_uri_mapper_vit.
|
||||
result = lo_adt_uri_mapper_vit.
|
||||
|
||||
CALL METHOD li_adt_uri_mapper_vit->('IF_ADT_URI_MAPPER_VIT~IS_VIT_WB_REQUEST')
|
||||
CALL METHOD lo_adt_uri_mapper_vit->('IF_ADT_URI_MAPPER_VIT~IS_VIT_WB_REQUEST')
|
||||
EXPORTING
|
||||
wb_request = li_wb_request
|
||||
wb_request = lo_wb_request
|
||||
RECEIVING
|
||||
result = is_vit_wb_request.
|
||||
result = lv_vit_wb_request.
|
||||
|
||||
IF is_vit_wb_request = abap_true.
|
||||
IF lv_vit_wb_request = abap_true.
|
||||
r_is_adt_jump_possible = abap_false.
|
||||
ELSE.
|
||||
r_is_adt_jump_possible = abap_true.
|
||||
|
@ -176,52 +176,58 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
|
|||
|
||||
METHOD jump_adt.
|
||||
|
||||
DATA: adt_link TYPE string,
|
||||
obj_type TYPE trobjtype,
|
||||
obj_name TYPE trobj_name,
|
||||
li_object TYPE REF TO cl_wb_object,
|
||||
li_adt TYPE REF TO object,
|
||||
li_adt_uri_mapper TYPE REF TO object,
|
||||
li_adt_objref TYPE REF TO object ##needed.
|
||||
DATA: lv_adt_link TYPE string,
|
||||
lv_obj_type TYPE trobjtype,
|
||||
lv_obj_name TYPE trobj_name,
|
||||
lo_object TYPE REF TO cl_wb_object,
|
||||
lo_adt TYPE REF TO object,
|
||||
lo_adt_uri_mapper TYPE REF TO object,
|
||||
lo_adt_objref TYPE REF TO object ##needed.
|
||||
|
||||
FIELD-SYMBOLS: <uri> TYPE string.
|
||||
FIELD-SYMBOLS: <lv_uri> TYPE string.
|
||||
|
||||
obj_name = i_obj_name.
|
||||
obj_type = i_obj_type.
|
||||
|
||||
lv_obj_name = i_obj_name.
|
||||
lv_obj_type = i_obj_type.
|
||||
|
||||
TRY.
|
||||
cl_wb_object=>create_from_transport_key( EXPORTING p_object = obj_type p_obj_name = obj_name
|
||||
RECEIVING p_wb_object = li_object
|
||||
EXCEPTIONS OTHERS = 1 ).
|
||||
cl_wb_object=>create_from_transport_key(
|
||||
EXPORTING
|
||||
p_object = lv_obj_type
|
||||
p_obj_name = lv_obj_name
|
||||
RECEIVING
|
||||
p_wb_object = lo_object
|
||||
EXCEPTIONS
|
||||
OTHERS = 1 ).
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'ADT Jump Error' ).
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE')
|
||||
RECEIVING
|
||||
result = li_adt.
|
||||
result = lo_adt.
|
||||
|
||||
IF is_adt_jump_possible( io_object = li_object
|
||||
io_adt = li_adt ) = abap_false.
|
||||
IF is_adt_jump_possible( io_object = lo_object
|
||||
io_adt = lo_adt ) = abap_false.
|
||||
zcx_abapgit_exception=>raise( 'ADT Jump Error' ).
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD li_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER')
|
||||
CALL METHOD lo_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER')
|
||||
RECEIVING
|
||||
result = li_adt_uri_mapper.
|
||||
result = lo_adt_uri_mapper.
|
||||
|
||||
CALL METHOD li_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF')
|
||||
CALL METHOD lo_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF')
|
||||
EXPORTING
|
||||
wb_object = li_object
|
||||
wb_object = lo_object
|
||||
RECEIVING
|
||||
result = li_adt_objref.
|
||||
result = lo_adt_objref.
|
||||
|
||||
ASSIGN ('li_adt_objref->ref_data-uri') TO <uri>.
|
||||
ASSIGN ('li_adt_objref->ref_data-uri') TO <lv_uri>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
CONCATENATE 'adt://' sy-sysid <uri> INTO adt_link.
|
||||
CONCATENATE 'adt://' sy-sysid <lv_uri> INTO lv_adt_link.
|
||||
|
||||
cl_gui_frontend_services=>execute( EXPORTING document = adt_link
|
||||
cl_gui_frontend_services=>execute( EXPORTING document = lv_adt_link
|
||||
EXCEPTIONS OTHERS = 1 ).
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
|
|
|
@ -63,7 +63,16 @@ CLASS zcl_abapgit_oo_class_new DEFINITION PUBLIC INHERITING FROM zcl_abapgit_oo_
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_oo_class_new IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OO_CLASS_NEW IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create_report.
|
||||
INSERT REPORT iv_program FROM it_source EXTENSION TYPE iv_extension STATE iv_version PROGRAM TYPE iv_program_type.
|
||||
ASSERT sy-subrc = 0.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD determine_method_include.
|
||||
|
||||
|
@ -109,30 +118,45 @@ CLASS zcl_abapgit_oo_class_new IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~create.
|
||||
* same as in super class, but with "version = seoc_version_active"
|
||||
|
||||
CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE'
|
||||
METHOD generate_classpool.
|
||||
|
||||
DATA: ls_clskey TYPE seoclskey.
|
||||
|
||||
ls_clskey-clsname = iv_name.
|
||||
|
||||
CALL FUNCTION 'SEO_CLASS_GENERATE_CLASSPOOL'
|
||||
EXPORTING
|
||||
devclass = iv_package
|
||||
overwrite = iv_overwrite
|
||||
version = seoc_version_active
|
||||
CHANGING
|
||||
class = is_properties
|
||||
clskey = ls_clskey
|
||||
suppress_corr = seox_true
|
||||
EXCEPTIONS
|
||||
existing = 1
|
||||
is_interface = 2
|
||||
db_error = 3
|
||||
component_error = 4
|
||||
no_access = 5
|
||||
other = 6
|
||||
OTHERS = 7.
|
||||
not_existing = 1
|
||||
model_only = 2
|
||||
class_pool_not_generated = 3
|
||||
class_stment_not_generated = 4
|
||||
locals_not_generated = 5
|
||||
macros_not_generated = 6
|
||||
public_sec_not_generated = 7
|
||||
protected_sec_not_generated = 8
|
||||
private_sec_not_generated = 9
|
||||
typeref_not_generated = 10
|
||||
class_pool_not_initialised = 11
|
||||
class_stment_not_initialised = 12
|
||||
locals_not_initialised = 13
|
||||
macros_not_initialised = 14
|
||||
public_sec_not_initialised = 15
|
||||
protected_sec_not_initialised = 16
|
||||
private_sec_not_initialised = 17
|
||||
typeref_not_initialised = 18
|
||||
_internal_class_overflow = 19
|
||||
OTHERS = 20.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from SEO_CLASS_CREATE_COMPLETE' ).
|
||||
zcx_abapgit_exception=>raise( 'error from SEO_CLASS_GENERATE_CLASSPOOL' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD init_scanner.
|
||||
|
||||
TRY.
|
||||
|
@ -146,50 +170,53 @@ CLASS zcl_abapgit_oo_class_new IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD update_report.
|
||||
|
||||
DATA: lt_old TYPE string_table.
|
||||
METHOD update_cs_number_of_methods.
|
||||
|
||||
READ REPORT iv_program INTO lt_old.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Fatal error. Include { iv_program } should have been created previously!| ).
|
||||
ENDIF.
|
||||
" Indirect access to keep downward compatibility
|
||||
DATA lr_cache_entry TYPE REF TO data.
|
||||
FIELD-SYMBOLS: <ls_cache_entry> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
IF lt_old <> it_source.
|
||||
INSERT REPORT iv_program FROM it_source.
|
||||
ASSERT sy-subrc = 0.
|
||||
rv_updated = abap_true.
|
||||
ELSE.
|
||||
rv_updated = abap_false.
|
||||
ENDIF.
|
||||
CREATE DATA lr_cache_entry TYPE ('SEO_CS_CACHE').
|
||||
ASSIGN lr_cache_entry->* TO <ls_cache_entry>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ASSIGN COMPONENT 'CLSNAME' OF STRUCTURE <ls_cache_entry>
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<field> = iv_classname.
|
||||
|
||||
ASSIGN COMPONENT 'NO_OF_METHOD_IMPLS' OF STRUCTURE <ls_cache_entry>
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<field> = iv_number_of_impl_methods.
|
||||
|
||||
MODIFY ('SEO_CS_CACHE') FROM <ls_cache_entry>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~generate_locals.
|
||||
|
||||
DATA: lv_program TYPE programm.
|
||||
METHOD update_full_class_include.
|
||||
|
||||
CONSTANTS: lc_class_source_extension TYPE sychar02 VALUE 'CS',
|
||||
lc_include_program_type TYPE sychar01 VALUE 'I',
|
||||
lc_active_version TYPE r3state VALUE 'A'.
|
||||
|
||||
|
||||
lv_program = cl_oo_classname_service=>get_ccdef_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_definitions ).
|
||||
create_report( iv_program = cl_oo_classname_service=>get_cs_name( iv_classname )
|
||||
it_source = it_source
|
||||
iv_extension = lc_class_source_extension
|
||||
iv_program_type = lc_include_program_type
|
||||
iv_version = lc_active_version ).
|
||||
|
||||
lv_program = cl_oo_classname_service=>get_ccimp_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_implementations ).
|
||||
|
||||
lv_program = cl_oo_classname_service=>get_ccmac_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_macros ).
|
||||
|
||||
IF lines( it_local_test_classes ) > 0.
|
||||
lv_program = cl_oo_classname_service=>get_ccau_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_test_classes ).
|
||||
ENDIF.
|
||||
" Assuming that all methods that were scanned are implemented
|
||||
update_cs_number_of_methods( iv_classname = iv_classname
|
||||
iv_number_of_impl_methods = lines( it_methods ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD update_meta.
|
||||
|
||||
DATA: lo_update TYPE REF TO cl_oo_class_section_source,
|
||||
|
@ -242,43 +269,52 @@ CLASS zcl_abapgit_oo_class_new IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD generate_classpool.
|
||||
|
||||
DATA: ls_clskey TYPE seoclskey.
|
||||
METHOD update_report.
|
||||
|
||||
ls_clskey-clsname = iv_name.
|
||||
DATA: lt_old TYPE string_table.
|
||||
|
||||
CALL FUNCTION 'SEO_CLASS_GENERATE_CLASSPOOL'
|
||||
EXPORTING
|
||||
clskey = ls_clskey
|
||||
suppress_corr = seox_true
|
||||
EXCEPTIONS
|
||||
not_existing = 1
|
||||
model_only = 2
|
||||
class_pool_not_generated = 3
|
||||
class_stment_not_generated = 4
|
||||
locals_not_generated = 5
|
||||
macros_not_generated = 6
|
||||
public_sec_not_generated = 7
|
||||
protected_sec_not_generated = 8
|
||||
private_sec_not_generated = 9
|
||||
typeref_not_generated = 10
|
||||
class_pool_not_initialised = 11
|
||||
class_stment_not_initialised = 12
|
||||
locals_not_initialised = 13
|
||||
macros_not_initialised = 14
|
||||
public_sec_not_initialised = 15
|
||||
protected_sec_not_initialised = 16
|
||||
private_sec_not_initialised = 17
|
||||
typeref_not_initialised = 18
|
||||
_internal_class_overflow = 19
|
||||
OTHERS = 20.
|
||||
READ REPORT iv_program INTO lt_old.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from SEO_CLASS_GENERATE_CLASSPOOL' ).
|
||||
zcx_abapgit_exception=>raise( |Fatal error. Include { iv_program } should have been created previously!| ).
|
||||
ENDIF.
|
||||
|
||||
IF lt_old <> it_source.
|
||||
INSERT REPORT iv_program FROM it_source.
|
||||
ASSERT sy-subrc = 0.
|
||||
rv_updated = abap_true.
|
||||
ELSE.
|
||||
rv_updated = abap_false.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~create.
|
||||
* same as in super class, but with "version = seoc_version_active"
|
||||
|
||||
CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE'
|
||||
EXPORTING
|
||||
devclass = iv_package
|
||||
overwrite = iv_overwrite
|
||||
version = seoc_version_active
|
||||
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 zif_abapgit_oo_object_fnc~deserialize_source.
|
||||
|
||||
DATA: lv_updated TYPE abap_bool,
|
||||
|
@ -356,51 +392,29 @@ CLASS zcl_abapgit_oo_class_new IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD update_full_class_include.
|
||||
CONSTANTS c_class_source_extension TYPE sychar02 VALUE 'CS'.
|
||||
CONSTANTS c_include_program_type TYPE sychar01 VALUE 'I'.
|
||||
CONSTANTS c_active_version TYPE r3state VALUE 'A'.
|
||||
|
||||
create_report( iv_program = cl_oo_classname_service=>get_cs_name( iv_classname )
|
||||
it_source = it_source
|
||||
iv_extension = c_class_source_extension
|
||||
iv_program_type = c_include_program_type
|
||||
iv_version = c_active_version ).
|
||||
METHOD zif_abapgit_oo_object_fnc~generate_locals.
|
||||
|
||||
" Assuming that all methods that were scanned are implemented
|
||||
update_cs_number_of_methods( iv_classname = iv_classname
|
||||
iv_number_of_impl_methods = lines( it_methods ) ).
|
||||
DATA: lv_program TYPE programm.
|
||||
|
||||
|
||||
lv_program = cl_oo_classname_service=>get_ccdef_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_definitions ).
|
||||
|
||||
lv_program = cl_oo_classname_service=>get_ccimp_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_implementations ).
|
||||
|
||||
lv_program = cl_oo_classname_service=>get_ccmac_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_macros ).
|
||||
|
||||
IF lines( it_local_test_classes ) > 0.
|
||||
lv_program = cl_oo_classname_service=>get_ccau_name( is_key-clsname ).
|
||||
update_report( iv_program = lv_program
|
||||
it_source = it_local_test_classes ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD create_report.
|
||||
INSERT REPORT iv_program FROM it_source EXTENSION TYPE iv_extension STATE iv_version PROGRAM TYPE iv_program_type.
|
||||
ASSERT sy-subrc = 0.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD update_cs_number_of_methods.
|
||||
|
||||
" Indirect access to keep downward compatibility
|
||||
DATA lr_cache_entry TYPE REF TO data.
|
||||
FIELD-SYMBOLS: <ls_cache_entry> TYPE any,
|
||||
<field> TYPE any.
|
||||
|
||||
CREATE DATA lr_cache_entry TYPE ('SEO_CS_CACHE').
|
||||
ASSIGN lr_cache_entry->* TO <ls_cache_entry>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ASSIGN COMPONENT 'CLSNAME' OF STRUCTURE <ls_cache_entry>
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<field> = iv_classname.
|
||||
|
||||
ASSIGN COMPONENT 'NO_OF_METHOD_IMPLS' OF STRUCTURE <ls_cache_entry>
|
||||
TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
<field> = iv_number_of_impl_methods.
|
||||
|
||||
MODIFY ('SEO_CS_CACHE') FROM <ls_cache_entry>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -129,26 +129,26 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
|
||||
METHOD migrate_settings.
|
||||
|
||||
DATA: lr_settings TYPE REF TO zcl_abapgit_settings.
|
||||
DATA: lr_persist_settings TYPE REF TO zcl_abapgit_persist_settings.
|
||||
DATA: lv_critical_tests_as_string TYPE string.
|
||||
DATA: lv_critical_tests_as_boolean TYPE abap_bool.
|
||||
DATA: lv_max_lines_as_string TYPE string.
|
||||
DATA: lv_flag TYPE abap_bool.
|
||||
DATA: lv_max_lines_as_integer TYPE i.
|
||||
DATA: lv_s_param_value TYPE string.
|
||||
DATA: lv_i_param_value TYPE i.
|
||||
DATA: lv_adt_jump_enabled_as_string TYPE string.
|
||||
DATA: lv_adt_jump_enabled_as_boolean TYPE abap_bool.
|
||||
DATA: lo_settings TYPE REF TO zcl_abapgit_settings,
|
||||
lo_persist_settings TYPE REF TO zcl_abapgit_persist_settings,
|
||||
lv_critical_tests_as_string TYPE string,
|
||||
lv_critical_tests_as_boolean TYPE abap_bool,
|
||||
lv_max_lines_as_string TYPE string,
|
||||
lv_flag TYPE abap_bool,
|
||||
lv_max_lines_as_integer TYPE i,
|
||||
lv_s_param_value TYPE string,
|
||||
lv_i_param_value TYPE i,
|
||||
lv_adt_jump_enabled_as_string TYPE string,
|
||||
lv_adt_jump_enabled_as_boolean TYPE abap_bool.
|
||||
|
||||
|
||||
lr_persist_settings = zcl_abapgit_persist_settings=>get_instance( ).
|
||||
lo_persist_settings = zcl_abapgit_persist_settings=>get_instance( ).
|
||||
|
||||
CREATE OBJECT lr_settings.
|
||||
lr_settings->set_defaults( ).
|
||||
CREATE OBJECT lo_settings.
|
||||
lo_settings->set_defaults( ).
|
||||
|
||||
TRY.
|
||||
lr_settings->set_proxy_url(
|
||||
lo_settings->set_proxy_url(
|
||||
zcl_abapgit_persistence_db=>get_instance( )->read(
|
||||
iv_type = 'SETTINGS'
|
||||
iv_value = 'PROXY_URL' ) ).
|
||||
|
@ -156,7 +156,7 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
lr_settings->set_proxy_port(
|
||||
lo_settings->set_proxy_port(
|
||||
zcl_abapgit_persistence_db=>get_instance( )->read(
|
||||
iv_type = 'SETTINGS'
|
||||
iv_value = 'PROXY_PORT' ) ).
|
||||
|
@ -167,7 +167,7 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
lv_flag = zcl_abapgit_persistence_db=>get_instance( )->read(
|
||||
iv_type = 'SETTINGS'
|
||||
iv_value = 'PROXY_AUTH' ).
|
||||
lr_settings->set_proxy_authentication( lv_flag ).
|
||||
lo_settings->set_proxy_authentication( lv_flag ).
|
||||
CATCH zcx_abapgit_not_found.
|
||||
ENDTRY.
|
||||
|
||||
|
@ -176,7 +176,7 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
iv_type = 'SETTINGS'
|
||||
iv_value = 'CRIT_TESTS' ).
|
||||
lv_critical_tests_as_boolean = lv_critical_tests_as_string.
|
||||
lr_settings->set_run_critical_tests( lv_critical_tests_as_boolean ).
|
||||
lo_settings->set_run_critical_tests( lv_critical_tests_as_boolean ).
|
||||
CATCH zcx_abapgit_not_found.
|
||||
ENDTRY.
|
||||
|
||||
|
@ -185,7 +185,7 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
iv_type = 'SETTINGS'
|
||||
iv_value = 'MAX_LINES' ).
|
||||
lv_max_lines_as_integer = lv_max_lines_as_string.
|
||||
lr_settings->set_max_lines( lv_max_lines_as_integer ).
|
||||
lo_settings->set_max_lines( lv_max_lines_as_integer ).
|
||||
CATCH zcx_abapgit_not_found cx_sy_conversion_no_number.
|
||||
ENDTRY.
|
||||
|
||||
|
@ -194,7 +194,7 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
iv_type = 'SETTINGS'
|
||||
iv_value = 'ADT_JUMP' ).
|
||||
lv_adt_jump_enabled_as_boolean = lv_adt_jump_enabled_as_string.
|
||||
lr_settings->set_adt_jump_enanbled( lv_adt_jump_enabled_as_boolean ).
|
||||
lo_settings->set_adt_jump_enanbled( lv_adt_jump_enabled_as_boolean ).
|
||||
CATCH zcx_abapgit_not_found.
|
||||
ENDTRY.
|
||||
|
||||
|
@ -203,7 +203,7 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
iv_type = 'SETTINGS'
|
||||
iv_value = 'COMMENT_LEN' ).
|
||||
lv_i_param_value = lv_s_param_value.
|
||||
lr_settings->set_commitmsg_comment_length( lv_i_param_value ).
|
||||
lo_settings->set_commitmsg_comment_length( lv_i_param_value ).
|
||||
CATCH zcx_abapgit_not_found cx_sy_conversion_no_number.
|
||||
ENDTRY.
|
||||
|
||||
|
@ -212,11 +212,11 @@ CLASS ZCL_ABAPGIT_PERSIST_MIGRATE IMPLEMENTATION.
|
|||
iv_type = 'SETTINGS'
|
||||
iv_value = 'BODY_SIZE' ).
|
||||
lv_i_param_value = lv_s_param_value.
|
||||
lr_settings->set_commitmsg_body_size( lv_i_param_value ).
|
||||
lo_settings->set_commitmsg_body_size( lv_i_param_value ).
|
||||
CATCH zcx_abapgit_not_found cx_sy_conversion_no_number.
|
||||
ENDTRY.
|
||||
|
||||
lr_persist_settings->modify( lr_settings ).
|
||||
lo_persist_settings->modify( lo_settings ).
|
||||
|
||||
TRY.
|
||||
zcl_abapgit_persistence_db=>get_instance( )->delete(
|
||||
|
|
|
@ -38,17 +38,19 @@ CLASS ZCL_ABAPGIT_PERSIST_SETTINGS IMPLEMENTATION.
|
|||
|
||||
METHOD modify.
|
||||
|
||||
DATA: settings TYPE string.
|
||||
settings = io_settings->get_settings_xml( ).
|
||||
DATA: lv_settings TYPE string.
|
||||
|
||||
|
||||
lv_settings = io_settings->get_settings_xml( ).
|
||||
|
||||
zcl_abapgit_persistence_db=>get_instance( )->modify(
|
||||
iv_type = zcl_abapgit_persistence_db=>c_type_settings
|
||||
iv_value = ''
|
||||
iv_data = settings ).
|
||||
iv_data = lv_settings ).
|
||||
|
||||
" Settings have been modified: Update Buffered Settings
|
||||
IF mo_settings IS BOUND.
|
||||
mo_settings->set_xml_settings( settings ).
|
||||
mo_settings->set_xml_settings( lv_settings ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -64,11 +64,11 @@ CLASS ltcl_syntax_cases IMPLEMENTATION.
|
|||
METHOD do_test.
|
||||
|
||||
DATA: lt_matches_act TYPE zcl_abapgit_syntax_highlighter=>ty_match_tt,
|
||||
lo TYPE REF TO zcl_abapgit_syntax_highlighter.
|
||||
lo_syntax TYPE REF TO zcl_abapgit_syntax_highlighter.
|
||||
|
||||
|
||||
lo = zcl_abapgit_syntax_highlighter=>create( iv_filename ).
|
||||
lo->parse_line( EXPORTING iv_line = iv_line
|
||||
lo_syntax = zcl_abapgit_syntax_highlighter=>create( iv_filename ).
|
||||
lo_syntax->parse_line( EXPORTING iv_line = iv_line
|
||||
IMPORTING et_matches = lt_matches_act ).
|
||||
|
||||
SORT lt_matches_act BY offset.
|
||||
|
@ -77,15 +77,18 @@ CLASS ltcl_syntax_cases IMPLEMENTATION.
|
|||
act = lt_matches_act
|
||||
msg = | Error during parsing: { iv_line }| ).
|
||||
|
||||
lo->order_matches( EXPORTING iv_line = iv_line
|
||||
lo_syntax->order_matches( EXPORTING iv_line = iv_line
|
||||
CHANGING ct_matches = lt_matches_act ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = mt_after_order
|
||||
act = lt_matches_act
|
||||
msg = | Error during ordering: { iv_line }| ).
|
||||
|
||||
lo->extend_matches( EXPORTING iv_line = iv_line
|
||||
CHANGING ct_matches = lt_matches_act ).
|
||||
lo_syntax->extend_matches(
|
||||
EXPORTING
|
||||
iv_line = iv_line
|
||||
CHANGING
|
||||
ct_matches = lt_matches_act ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = mt_after_extend
|
||||
act = lt_matches_act
|
||||
|
|
|
@ -66,17 +66,17 @@ CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
|||
|
||||
METHOD get_images.
|
||||
|
||||
FIELD-SYMBOLS <image> LIKE LINE OF rt_images.
|
||||
FIELD-SYMBOLS <ls_image> LIKE LINE OF rt_images.
|
||||
|
||||
rt_images = get_inline_images( ).
|
||||
|
||||
" Convert to xstring
|
||||
LOOP AT rt_images ASSIGNING <image>.
|
||||
LOOP AT rt_images ASSIGNING <ls_image>.
|
||||
CALL FUNCTION 'SSFC_BASE64_DECODE'
|
||||
EXPORTING
|
||||
b64data = <image>-base64
|
||||
b64data = <ls_image>-base64
|
||||
IMPORTING
|
||||
bindata = <image>-content
|
||||
bindata = <ls_image>-content
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ASSERT sy-subrc = 0. " Image data error
|
||||
|
|
|
@ -99,7 +99,7 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
|||
|
||||
DATA: lv_system TYPE string.
|
||||
|
||||
FIELD-SYMBOLS <state> TYPE char1.
|
||||
FIELD-SYMBOLS <lv_state> TYPE char1.
|
||||
|
||||
|
||||
rv_html = '<span class="state-block">'.
|
||||
|
@ -107,14 +107,14 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
|||
DO 2 TIMES.
|
||||
CASE sy-index.
|
||||
WHEN 1.
|
||||
ASSIGN iv1 TO <state>.
|
||||
ASSIGN iv1 TO <lv_state>.
|
||||
lv_system = 'Local:'.
|
||||
WHEN 2.
|
||||
ASSIGN iv2 TO <state>.
|
||||
ASSIGN iv2 TO <lv_state>.
|
||||
lv_system = 'Remote:'.
|
||||
ENDCASE.
|
||||
|
||||
CASE <state>.
|
||||
CASE <lv_state>.
|
||||
WHEN zif_abapgit_definitions=>gc_state-unchanged. "None or unchanged
|
||||
IF iv1 = zif_abapgit_definitions=>gc_state-added OR iv2 = zif_abapgit_definitions=>gc_state-added.
|
||||
rv_html = rv_html && |<span class="none" title="{ lv_system } Not exists">X</span>|.
|
||||
|
@ -153,7 +153,7 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
|||
lv_display TYPE string,
|
||||
lt_log TYPE zcl_abapgit_news=>tt_log.
|
||||
|
||||
FIELD-SYMBOLS: <line> LIKE LINE OF lt_log.
|
||||
FIELD-SYMBOLS: <ls_line> LIKE LINE OF lt_log.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
|
@ -187,18 +187,18 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
|||
|
||||
" Generate news
|
||||
ro_html->add( |<div class="newslist">| ).
|
||||
LOOP AT lt_log ASSIGNING <line>.
|
||||
IF <line>-is_header = abap_true.
|
||||
IF <line>-pos_to_cur > 0.
|
||||
lv_text = <line>-text && '<span class="version-marker update">update</span>'.
|
||||
ELSEIF <line>-pos_to_cur = 0.
|
||||
lv_text = <line>-text && '<span class="version-marker">current</span>'.
|
||||
LOOP AT lt_log ASSIGNING <ls_line>.
|
||||
IF <ls_line>-is_header = abap_true.
|
||||
IF <ls_line>-pos_to_cur > 0.
|
||||
lv_text = <ls_line>-text && '<span class="version-marker update">update</span>'.
|
||||
ELSEIF <ls_line>-pos_to_cur = 0.
|
||||
lv_text = <ls_line>-text && '<span class="version-marker">current</span>'.
|
||||
ELSE. " < 0
|
||||
lv_text = <line>-text.
|
||||
lv_text = <ls_line>-text.
|
||||
ENDIF.
|
||||
ro_html->add( |<h1>{ lv_text }</h1>| ).
|
||||
ELSE.
|
||||
ro_html->add( |<li>{ <line>-text }</li>| ).
|
||||
ro_html->add( |<li>{ <ls_line>-text }</li>| ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ro_html->add( '</div>' ).
|
||||
|
|
|
@ -62,7 +62,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_BOVERVIEW IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD body.
|
||||
DATA: tag TYPE string.
|
||||
DATA: lv_tag TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_commit> LIKE LINE OF mt_commits,
|
||||
<ls_create> LIKE LINE OF <ls_commit>-create.
|
||||
|
@ -126,13 +126,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_BOVERVIEW IMPLEMENTATION.
|
|||
" Therefore we concatenate them.
|
||||
" https://github.com/nicoespeon/gitgraph.js/issues/143
|
||||
|
||||
tag = concat_lines_of( table = <ls_commit>-tags
|
||||
sep = ` | ` ).
|
||||
lv_tag = concat_lines_of( table = <ls_commit>-tags
|
||||
sep = ` | ` ).
|
||||
|
||||
ro_html->add( |{ escape_branch( <ls_commit>-branch ) }.commit(\{message: "{
|
||||
escape_message( <ls_commit>-message ) }", author: "{
|
||||
<ls_commit>-author }", sha1: "{
|
||||
<ls_commit>-sha1(7) }", tag: "{ tag }"\});| ).
|
||||
<ls_commit>-sha1(7) }", tag: "{ lv_tag }"\});| ).
|
||||
ELSE.
|
||||
ro_html->add( |{ escape_branch( <ls_commit>-merge ) }.merge({
|
||||
escape_branch( <ls_commit>-branch ) }, \{message: "{
|
||||
|
|
|
@ -29,17 +29,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD explain_content.
|
||||
DATA: lv_result TYPE match_result,
|
||||
lv_match TYPE submatch_result,
|
||||
|
||||
DATA: ls_result TYPE match_result,
|
||||
ls_match TYPE submatch_result,
|
||||
lv_cnt TYPE i.
|
||||
|
||||
|
||||
CASE is_data-type.
|
||||
WHEN 'REPO'.
|
||||
FIND FIRST OCCURRENCE OF REGEX '<url>(.*)</url>'
|
||||
IN is_data-data_str IGNORING CASE RESULTS lv_result.
|
||||
READ TABLE lv_result-submatches INTO lv_match INDEX 1.
|
||||
IN is_data-data_str IGNORING CASE RESULTS ls_result.
|
||||
READ TABLE ls_result-submatches INTO ls_match INDEX 1.
|
||||
IF sy-subrc IS INITIAL.
|
||||
rv_text = is_data-data_str+lv_match-offset(lv_match-length).
|
||||
rv_text = is_data-data_str+ls_match-offset(ls_match-length).
|
||||
ENDIF.
|
||||
|
||||
FIND FIRST OCCURRENCE OF REGEX '<OFFLINE/>'
|
||||
|
@ -53,12 +55,12 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
|
|||
|
||||
WHEN 'BACKGROUND'.
|
||||
FIND FIRST OCCURRENCE OF REGEX '<method>(.*)</method>'
|
||||
IN is_data-data_str IGNORING CASE RESULTS lv_result.
|
||||
READ TABLE lv_result-submatches INTO lv_match INDEX 1.
|
||||
IN is_data-data_str IGNORING CASE RESULTS ls_result.
|
||||
READ TABLE ls_result-submatches INTO ls_match INDEX 1.
|
||||
IF sy-subrc IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_text = |Method: { is_data-data_str+lv_match-offset(lv_match-length) }, |
|
||||
rv_text = |Method: { is_data-data_str+ls_match-offset(ls_match-length) }, |
|
||||
&& |Repository: { zcl_abapgit_repo_srv=>get_instance( )->get( is_data-value )->get_name( ) }|.
|
||||
|
||||
WHEN 'USER'.
|
||||
|
|
|
@ -76,7 +76,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
|
|||
lv_list TYPE string,
|
||||
ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||
|
||||
FIELD-SYMBOLS <object> LIKE LINE OF lt_objects.
|
||||
FIELD-SYMBOLS <ls_object> LIKE LINE OF lt_objects.
|
||||
|
||||
CALL FUNCTION 'TR_OBJECT_TABLE'
|
||||
TABLES
|
||||
|
@ -84,8 +84,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION.
|
|||
EXCEPTIONS
|
||||
OTHERS = 1 ##FM_SUBRC_OK.
|
||||
|
||||
LOOP AT lt_objects ASSIGNING <object> WHERE pgmid = 'R3TR'.
|
||||
ls_item-obj_type = <object>-object.
|
||||
LOOP AT lt_objects ASSIGNING <ls_object> WHERE pgmid = 'R3TR'.
|
||||
ls_item-obj_type = <ls_object>-object.
|
||||
IF zcl_abapgit_objects=>is_supported( is_item = ls_item iv_native_only = abap_true ) = abap_true.
|
||||
IF lv_list IS INITIAL.
|
||||
lv_list = ls_item-obj_type.
|
||||
|
|
|
@ -180,13 +180,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
lt_types TYPE string_table,
|
||||
lt_users TYPE string_table.
|
||||
|
||||
FIELD-SYMBOLS: <diff> LIKE LINE OF mt_diff_files,
|
||||
<i> TYPE string.
|
||||
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF mt_diff_files,
|
||||
<lv_i> TYPE string.
|
||||
|
||||
" Get unique
|
||||
LOOP AT mt_diff_files ASSIGNING <diff>.
|
||||
APPEND <diff>-type TO lt_types.
|
||||
APPEND <diff>-changed_by TO lt_users.
|
||||
LOOP AT mt_diff_files ASSIGNING <ls_diff>.
|
||||
APPEND <ls_diff>-type TO lt_types.
|
||||
APPEND <ls_diff>-changed_by TO lt_users.
|
||||
ENDLOOP.
|
||||
|
||||
SORT: lt_types, lt_users.
|
||||
|
@ -207,8 +207,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
" File types
|
||||
IF lines( lt_types ) > 1.
|
||||
lo_sub->add( iv_txt = 'TYPE' iv_typ = zif_abapgit_definitions=>gc_action_type-separator ).
|
||||
LOOP AT lt_types ASSIGNING <i>.
|
||||
lo_sub->add( iv_txt = <i>
|
||||
LOOP AT lt_types ASSIGNING <lv_i>.
|
||||
lo_sub->add( iv_txt = <lv_i>
|
||||
iv_typ = zif_abapgit_definitions=>gc_action_type-onclick
|
||||
iv_aux = 'type'
|
||||
iv_chk = abap_true ).
|
||||
|
@ -218,8 +218,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
" Changed by
|
||||
IF lines( lt_users ) > 1.
|
||||
lo_sub->add( iv_txt = 'CHANGED BY' iv_typ = zif_abapgit_definitions=>gc_action_type-separator ).
|
||||
LOOP AT lt_users ASSIGNING <i>.
|
||||
lo_sub->add( iv_txt = <i>
|
||||
LOOP AT lt_users ASSIGNING <lv_i>.
|
||||
lo_sub->add( iv_txt = <lv_i>
|
||||
iv_typ = zif_abapgit_definitions=>gc_action_type-onclick
|
||||
iv_aux = 'changed-by'
|
||||
iv_chk = abap_true ).
|
||||
|
@ -306,15 +306,16 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
lv_idx TYPE i,
|
||||
lv_x TYPE x.
|
||||
|
||||
FIELD-SYMBOLS <data> LIKE iv_d1.
|
||||
FIELD-SYMBOLS <lv_data> LIKE iv_d1.
|
||||
|
||||
|
||||
IF iv_d1 IS NOT INITIAL. " One of them might be new and so empty
|
||||
ASSIGN iv_d1 TO <data>.
|
||||
ASSIGN iv_d1 TO <lv_data>.
|
||||
ELSE.
|
||||
ASSIGN iv_d2 TO <data>.
|
||||
ASSIGN iv_d2 TO <lv_data>.
|
||||
ENDIF.
|
||||
|
||||
lv_len = xstrlen( <data> ).
|
||||
lv_len = xstrlen( <lv_data> ).
|
||||
IF lv_len = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -327,7 +328,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
" stackoverflow.com/questions/277521/how-to-identify-the-file-content-as-ascii-or-binary
|
||||
DO lv_len TIMES. " I'm sure there is more efficient way ...
|
||||
lv_idx = sy-index - 1.
|
||||
lv_x = <data>+lv_idx(1).
|
||||
lv_x = <lv_data>+lv_idx(1).
|
||||
|
||||
IF NOT ( lv_x BETWEEN 9 AND 13 OR lv_x BETWEEN 32 AND 126 ).
|
||||
rv_yes = abap_true.
|
||||
|
@ -563,24 +564,24 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
|
||||
METHOD render_line_unified.
|
||||
|
||||
FIELD-SYMBOLS <diff_line> LIKE LINE OF mt_delayed_lines.
|
||||
FIELD-SYMBOLS <ls_diff_line> LIKE LINE OF mt_delayed_lines.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
" Release delayed subsequent update lines
|
||||
IF is_diff_line-result <> zif_abapgit_definitions=>c_diff-update.
|
||||
LOOP AT mt_delayed_lines ASSIGNING <diff_line>.
|
||||
LOOP AT mt_delayed_lines ASSIGNING <ls_diff_line>.
|
||||
ro_html->add( '<tr>' ). "#EC NOTEXT
|
||||
ro_html->add( |<td class="num" line-num="{ <diff_line>-old_num }"></td>|
|
||||
ro_html->add( |<td class="num" line-num="{ <ls_diff_line>-old_num }"></td>|
|
||||
&& |<td class="num" line-num=""></td>|
|
||||
&& |<td class="code diff_del">-{ <diff_line>-old }</td>| ).
|
||||
&& |<td class="code diff_del">-{ <ls_diff_line>-old }</td>| ).
|
||||
ro_html->add( '</tr>' ). "#EC NOTEXT
|
||||
ENDLOOP.
|
||||
LOOP AT mt_delayed_lines ASSIGNING <diff_line>.
|
||||
LOOP AT mt_delayed_lines ASSIGNING <ls_diff_line>.
|
||||
ro_html->add( '<tr>' ). "#EC NOTEXT
|
||||
ro_html->add( |<td class="num" line-num=""></td>|
|
||||
&& |<td class="num" line-num="{ <diff_line>-new_num }"></td>|
|
||||
&& |<td class="code diff_ins">+{ <diff_line>-new }</td>| ).
|
||||
&& |<td class="num" line-num="{ <ls_diff_line>-new_num }"></td>|
|
||||
&& |<td class="code diff_ins">+{ <ls_diff_line>-new }</td>| ).
|
||||
ro_html->add( '</tr>' ). "#EC NOTEXT
|
||||
ENDLOOP.
|
||||
CLEAR mt_delayed_lines.
|
||||
|
|
|
@ -125,7 +125,7 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
|
||||
DATA ls_field LIKE LINE OF ct.
|
||||
|
||||
FIELD-SYMBOLS <src> TYPE any.
|
||||
FIELD-SYMBOLS <lg_src> TYPE any.
|
||||
|
||||
ls_field-name = name.
|
||||
|
||||
|
@ -133,9 +133,9 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
WHEN cl_abap_typedescr=>kind_elem.
|
||||
ls_field-value = iv.
|
||||
WHEN cl_abap_typedescr=>kind_struct.
|
||||
ASSIGN COMPONENT name OF STRUCTURE iv TO <src>.
|
||||
ASSERT <src> IS ASSIGNED.
|
||||
ls_field-value = <src>.
|
||||
ASSIGN COMPONENT name OF STRUCTURE iv TO <lg_src>.
|
||||
ASSERT <lg_src> IS ASSIGNED.
|
||||
ls_field-value = <lg_src>.
|
||||
WHEN OTHERS.
|
||||
ASSERT 0 = 1.
|
||||
ENDCASE.
|
||||
|
@ -232,13 +232,13 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
|
||||
METHOD field_keys_to_upper.
|
||||
|
||||
FIELD-SYMBOLS <field> LIKE LINE OF ct_fields.
|
||||
FIELD-SYMBOLS <ls_field> LIKE LINE OF ct_fields.
|
||||
|
||||
LOOP AT ct_fields ASSIGNING <field>.
|
||||
<field>-name = to_upper( <field>-name ).
|
||||
LOOP AT ct_fields ASSIGNING <ls_field>.
|
||||
<ls_field>-name = to_upper( <ls_field>-name ).
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD. "field_keys_to_upper
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD file_encode.
|
||||
|
@ -282,7 +282,7 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
METHOD get_field.
|
||||
|
||||
FIELD-SYMBOLS: <ls_field> LIKE LINE OF it,
|
||||
<dest> TYPE any.
|
||||
<lg_dest> TYPE any.
|
||||
|
||||
|
||||
READ TABLE it ASSIGNING <ls_field> WITH KEY name = name.
|
||||
|
@ -294,9 +294,9 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
WHEN cl_abap_typedescr=>kind_elem.
|
||||
cv = <ls_field>-value.
|
||||
WHEN cl_abap_typedescr=>kind_struct.
|
||||
ASSIGN COMPONENT name OF STRUCTURE cv TO <dest>.
|
||||
ASSERT <dest> IS ASSIGNED.
|
||||
<dest> = <ls_field>-value.
|
||||
ASSIGN COMPONENT name OF STRUCTURE cv TO <lg_dest>.
|
||||
ASSERT <lg_dest> IS ASSIGNED.
|
||||
<lg_dest> = <ls_field>-value.
|
||||
WHEN OTHERS.
|
||||
ASSERT 0 = 1.
|
||||
ENDCASE.
|
||||
|
@ -350,7 +350,7 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
DATA: lv_string TYPE string,
|
||||
lt_fields TYPE tihttpnvp.
|
||||
|
||||
FIELD-SYMBOLS <body> TYPE string.
|
||||
FIELD-SYMBOLS <lv_body> TYPE string.
|
||||
|
||||
CLEAR es_fields.
|
||||
|
||||
|
@ -366,35 +366,36 @@ CLASS ZCL_ABAPGIT_HTML_ACTION_UTILS IMPLEMENTATION.
|
|||
get_field( EXPORTING name = 'COMMENT' it = lt_fields CHANGING cv = es_fields ).
|
||||
get_field( EXPORTING name = 'BODY' it = lt_fields CHANGING cv = es_fields ).
|
||||
|
||||
ASSIGN COMPONENT 'BODY' OF STRUCTURE es_fields TO <body>.
|
||||
ASSERT <body> IS ASSIGNED.
|
||||
REPLACE ALL OCCURRENCES OF lc_replace IN <body> WITH zif_abapgit_definitions=>gc_newline.
|
||||
ASSIGN COMPONENT 'BODY' OF STRUCTURE es_fields TO <lv_body>.
|
||||
ASSERT <lv_body> IS ASSIGNED.
|
||||
REPLACE ALL OCCURRENCES OF lc_replace IN <lv_body> WITH zif_abapgit_definitions=>gc_newline.
|
||||
|
||||
ENDMETHOD. "parse_commit_request
|
||||
|
||||
|
||||
METHOD parse_fields.
|
||||
|
||||
DATA: substrings TYPE stringtab,
|
||||
field LIKE LINE OF rt_fields.
|
||||
DATA: lt_substrings TYPE stringtab,
|
||||
ls_field LIKE LINE OF rt_fields.
|
||||
|
||||
FIELD-SYMBOLS: <substring> LIKE LINE OF substrings.
|
||||
FIELD-SYMBOLS: <lv_substring> LIKE LINE OF lt_substrings.
|
||||
|
||||
SPLIT iv_string AT '&' INTO TABLE substrings.
|
||||
|
||||
LOOP AT substrings ASSIGNING <substring>.
|
||||
SPLIT iv_string AT '&' INTO TABLE lt_substrings.
|
||||
|
||||
CLEAR: field.
|
||||
LOOP AT lt_substrings ASSIGNING <lv_substring>.
|
||||
|
||||
field-name = substring_before( val = <substring>
|
||||
CLEAR: ls_field.
|
||||
|
||||
ls_field-name = substring_before( val = <lv_substring>
|
||||
sub = '=' ).
|
||||
field-name = unescape( field-name ).
|
||||
ls_field-name = unescape( ls_field-name ).
|
||||
|
||||
field-value = substring_after( val = <substring>
|
||||
ls_field-value = substring_after( val = <lv_substring>
|
||||
sub = '=' ).
|
||||
field-value = unescape( field-value ).
|
||||
ls_field-value = unescape( ls_field-value ).
|
||||
|
||||
INSERT field INTO TABLE rt_fields.
|
||||
INSERT ls_field INTO TABLE rt_fields.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
|
|
|
@ -163,29 +163,30 @@ CLASS ltcl_html_action_utils IMPLEMENTATION.
|
|||
|
||||
METHOD parse_fields_german_umlauts.
|
||||
|
||||
DATA: ae TYPE string,
|
||||
oe TYPE string,
|
||||
ue TYPE string,
|
||||
ae_oe_ue TYPE string.
|
||||
DATA: lv_ae TYPE string,
|
||||
lv_oe TYPE string,
|
||||
lv_ue TYPE string,
|
||||
lv_ae_oe_ue TYPE string.
|
||||
|
||||
ae = ms_german_umlaut_as_char-lower_case_ae.
|
||||
oe = ms_german_umlaut_as_char-lower_case_oe.
|
||||
ue = ms_german_umlaut_as_char-lower_case_ue.
|
||||
|
||||
ae_oe_ue = ae && oe && ue.
|
||||
lv_ae = ms_german_umlaut_as_char-lower_case_ae.
|
||||
lv_oe = ms_german_umlaut_as_char-lower_case_oe.
|
||||
lv_ue = ms_german_umlaut_as_char-lower_case_ue.
|
||||
|
||||
_given_string_is( |committer_name=Christian G{ ue }nter&|
|
||||
lv_ae_oe_ue = lv_ae && lv_oe && lv_ue.
|
||||
|
||||
_given_string_is( |committer_name=Christian G{ lv_ue }nter&|
|
||||
&& |committer_email=guenne@googlemail.com&|
|
||||
&& |comment={ ae_oe_ue }&|
|
||||
&& |body=Message body<<new>><<new>>with line break<<new>>and umlauts. { ae_oe_ue }&|
|
||||
&& |author_name=Gerd Schr{ oe }der&|
|
||||
&& |comment={ lv_ae_oe_ue }&|
|
||||
&& |body=Message body<<new>><<new>>with line break<<new>>and umlauts. { lv_ae_oe_ue }&|
|
||||
&& |author_name=Gerd Schr{ lv_oe }der&|
|
||||
&& |author_email=gerd@schroeder.com| ).
|
||||
|
||||
_when_fields_are_parsed( ).
|
||||
|
||||
_then_fields_should_be( index = 1
|
||||
name = `COMMITTER_NAME`
|
||||
value = |Christian G{ ue }nter| ).
|
||||
value = |Christian G{ lv_ue }nter| ).
|
||||
|
||||
_then_fields_should_be( index = 2
|
||||
name = `COMMITTER_EMAIL`
|
||||
|
@ -193,15 +194,15 @@ CLASS ltcl_html_action_utils IMPLEMENTATION.
|
|||
|
||||
_then_fields_should_be( index = 3
|
||||
name = `COMMENT`
|
||||
value = ae_oe_ue ).
|
||||
value = lv_ae_oe_ue ).
|
||||
|
||||
_then_fields_should_be( index = 4
|
||||
name = `BODY`
|
||||
value = |Message body<<new>><<new>>with line break<<new>>and umlauts. { ae_oe_ue }| ).
|
||||
value = |Message body<<new>><<new>>with line break<<new>>and umlauts. { lv_ae_oe_ue }| ).
|
||||
|
||||
_then_fields_should_be( index = 5
|
||||
name = `AUTHOR_NAME`
|
||||
value = |Gerd Schr{ oe }der| ).
|
||||
value = |Gerd Schr{ lv_oe }der| ).
|
||||
|
||||
_then_fields_should_be( index = 6
|
||||
name = `AUTHOR_EMAIL`
|
||||
|
@ -223,19 +224,19 @@ CLASS ltcl_html_action_utils IMPLEMENTATION.
|
|||
|
||||
METHOD _then_fields_should_be.
|
||||
|
||||
FIELD-SYMBOLS: <parsed_field> LIKE LINE OF mt_parsed_fields.
|
||||
FIELD-SYMBOLS: <ls_parsed_field> LIKE LINE OF mt_parsed_fields.
|
||||
|
||||
READ TABLE mt_parsed_fields ASSIGNING <parsed_field>
|
||||
READ TABLE mt_parsed_fields ASSIGNING <ls_parsed_field>
|
||||
INDEX index.
|
||||
|
||||
cl_abap_unit_assert=>assert_subrc( exp = 0
|
||||
msg = |No parsed field found at index { index }| ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( act = <parsed_field>-name
|
||||
cl_abap_unit_assert=>assert_equals( act = <ls_parsed_field>-name
|
||||
exp = name
|
||||
msg = |Name at index { index } should be { name }| ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( act = <parsed_field>-value
|
||||
cl_abap_unit_assert=>assert_equals( act = <ls_parsed_field>-value
|
||||
exp = value
|
||||
msg = |Value at index { index } should be { value }| ).
|
||||
|
||||
|
@ -243,10 +244,10 @@ CLASS ltcl_html_action_utils IMPLEMENTATION.
|
|||
|
||||
METHOD _hex_to_char.
|
||||
|
||||
DATA lr_conv TYPE REF TO cl_abap_conv_in_ce.
|
||||
DATA lo_conv TYPE REF TO cl_abap_conv_in_ce.
|
||||
|
||||
lr_conv = cl_abap_conv_in_ce=>create( ).
|
||||
lr_conv->convert( EXPORTING input = i_x IMPORTING data = r_s ).
|
||||
lo_conv = cl_abap_conv_in_ce=>create( ).
|
||||
lo_conv->convert( EXPORTING input = i_x IMPORTING data = r_s ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -378,12 +378,12 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
|||
DATA: lr_struct TYPE REF TO data,
|
||||
lt_components TYPE cl_abap_structdescr=>component_table,
|
||||
lo_struct_descr TYPE REF TO cl_abap_structdescr,
|
||||
struct_descr TYPE REF TO cl_abap_structdescr.
|
||||
struct_descr TYPE REF TO cl_abap_structdescr.
|
||||
|
||||
FIELD-SYMBOLS: <table> TYPE STANDARD TABLE,
|
||||
FIELD-SYMBOLS: <lt_table> TYPE STANDARD TABLE,
|
||||
<component> TYPE abap_componentdescr,
|
||||
<line> TYPE data,
|
||||
<data> TYPE any.
|
||||
<lg_data> TYPE any.
|
||||
|
||||
mo_table_descr ?= cl_abap_tabledescr=>describe_by_data( it_list ).
|
||||
lo_struct_descr ?= mo_table_descr->get_table_line_type( ).
|
||||
|
@ -399,18 +399,18 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
|||
mo_table_descr = cl_abap_tabledescr=>create( struct_descr ).
|
||||
|
||||
CREATE DATA mr_table TYPE HANDLE mo_table_descr.
|
||||
ASSIGN mr_table->* TO <table>.
|
||||
ASSIGN mr_table->* TO <lt_table>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
CREATE DATA lr_struct TYPE HANDLE struct_descr.
|
||||
ASSIGN lr_struct->* TO <line>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
LOOP AT it_list ASSIGNING <data>.
|
||||
LOOP AT it_list ASSIGNING <lg_data>.
|
||||
|
||||
CLEAR: <line>.
|
||||
MOVE-CORRESPONDING <data> TO <line>.
|
||||
INSERT <line> INTO TABLE <table>.
|
||||
MOVE-CORRESPONDING <lg_data> TO <line>.
|
||||
INSERT <line> INTO TABLE <lt_table>.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -971,17 +971,18 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD popup_to_select_transports.
|
||||
DATA: lrs_trfunction TYPE trsel_trs_function,
|
||||
lv_types TYPE string,
|
||||
ls_ranges TYPE trsel_ts_ranges.
|
||||
|
||||
DATA: ls_trfunction TYPE trsel_trs_function,
|
||||
lv_types TYPE string,
|
||||
ls_ranges TYPE trsel_ts_ranges.
|
||||
|
||||
" Fill all request types
|
||||
lv_types = 'KWTCOEMPDRSXQFG'.
|
||||
lrs_trfunction-sign = 'I'.
|
||||
lrs_trfunction-option = 'EQ'.
|
||||
ls_trfunction-sign = 'I'.
|
||||
ls_trfunction-option = 'EQ'.
|
||||
WHILE lv_types <> space.
|
||||
lrs_trfunction-low = lv_types(1).
|
||||
APPEND lrs_trfunction TO ls_ranges-request_funcs.
|
||||
ls_trfunction-low = lv_types(1).
|
||||
APPEND ls_trfunction TO ls_ranges-request_funcs.
|
||||
SHIFT lv_types.
|
||||
ENDWHILE.
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
|
||||
METHOD run.
|
||||
|
||||
CONSTANTS: c_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'.
|
||||
CONSTANTS: lc_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'.
|
||||
|
||||
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
|
||||
lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
||||
|
@ -219,7 +219,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
CALL FUNCTION 'ENQUEUE_EZABAPGIT'
|
||||
EXPORTING
|
||||
mode_zabapgit = 'E'
|
||||
type = c_enq_type
|
||||
type = lc_enq_type
|
||||
_scope = '3'
|
||||
EXCEPTIONS
|
||||
foreign_lock = 1
|
||||
|
@ -262,7 +262,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
|
||||
CALL FUNCTION 'DEQUEUE_EZABAPGIT'
|
||||
EXPORTING
|
||||
type = c_enq_type.
|
||||
type = lc_enq_type.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -2,39 +2,39 @@ CLASS ltcl_file_status DEFINITION DEFERRED.
|
|||
CLASS zcl_abapgit_file_status DEFINITION LOCAL FRIENDS ltcl_file_status.
|
||||
|
||||
DEFINE _append_state.
|
||||
APPEND INITIAL LINE TO lt_state ASSIGNING <state>.
|
||||
<state>-path = '/'.
|
||||
<state>-filename = &1.
|
||||
<state>-sha1 = &2.
|
||||
APPEND INITIAL LINE TO lt_state ASSIGNING <ls_state>.
|
||||
<ls_state>-path = '/'.
|
||||
<ls_state>-filename = &1.
|
||||
<ls_state>-sha1 = &2.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
DEFINE _append_local.
|
||||
APPEND INITIAL LINE TO lt_local ASSIGNING <local>.
|
||||
<local>-item-obj_type = &1.
|
||||
<local>-item-obj_name = &2.
|
||||
<local>-item-devclass = '$Z$'.
|
||||
<local>-file-path = '/'.
|
||||
<local>-file-filename = &3.
|
||||
<local>-file-sha1 = &4.
|
||||
APPEND INITIAL LINE TO lt_local ASSIGNING <ls_local>.
|
||||
<ls_local>-item-obj_type = &1.
|
||||
<ls_local>-item-obj_name = &2.
|
||||
<ls_local>-item-devclass = '$Z$'.
|
||||
<ls_local>-file-path = '/'.
|
||||
<ls_local>-file-filename = &3.
|
||||
<ls_local>-file-sha1 = &4.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
DEFINE _append_remote.
|
||||
APPEND INITIAL LINE TO lt_remote ASSIGNING <remote>.
|
||||
<remote>-path = '/'.
|
||||
<remote>-filename = &1.
|
||||
<remote>-sha1 = &2.
|
||||
APPEND INITIAL LINE TO lt_remote ASSIGNING <ls_remote>.
|
||||
<ls_remote>-path = '/'.
|
||||
<ls_remote>-filename = &1.
|
||||
<ls_remote>-sha1 = &2.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
DEFINE _append_result.
|
||||
APPEND INITIAL LINE TO lt_results ASSIGNING <result>.
|
||||
<result>-obj_type = &1.
|
||||
<result>-obj_name = &2.
|
||||
<result>-match = &3.
|
||||
<result>-lstate = &4.
|
||||
<result>-rstate = &5.
|
||||
<result>-package = &6.
|
||||
<result>-path = &7.
|
||||
<result>-filename = &8.
|
||||
APPEND INITIAL LINE TO lt_results ASSIGNING <ls_result>.
|
||||
<ls_result>-obj_type = &1.
|
||||
<ls_result>-obj_name = &2.
|
||||
<ls_result>-match = &3.
|
||||
<ls_result>-lstate = &4.
|
||||
<ls_result>-rstate = &5.
|
||||
<ls_result>-package = &6.
|
||||
<ls_result>-path = &7.
|
||||
<ls_result>-filename = &8.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
CLASS ltcl_file_status DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
||||
|
@ -58,10 +58,10 @@ CLASS ltcl_file_status IMPLEMENTATION.
|
|||
lt_results_exp TYPE zif_abapgit_definitions=>ty_results_tt,
|
||||
lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
|
||||
|
||||
FIELD-SYMBOLS: <local> LIKE LINE OF lt_local,
|
||||
<remote> LIKE LINE OF lt_remote,
|
||||
<result> LIKE LINE OF lt_results,
|
||||
<state> LIKE LINE OF lt_state.
|
||||
FIELD-SYMBOLS: <ls_local> LIKE LINE OF lt_local,
|
||||
<ls_remote> LIKE LINE OF lt_remote,
|
||||
<ls_result> LIKE LINE OF lt_results,
|
||||
<ls_state> LIKE LINE OF lt_state.
|
||||
|
||||
"STATE FILE SHA1
|
||||
_append_state '$$zclass1.clas.xml' 'C1_F1'.
|
||||
|
@ -164,7 +164,7 @@ CLASS ltcl_file_status2 IMPLEMENTATION.
|
|||
DATA: lt_results TYPE zif_abapgit_definitions=>ty_results_tt,
|
||||
lo_log TYPE REF TO zcl_abapgit_log.
|
||||
|
||||
FIELD-SYMBOLS: <result> LIKE LINE OF lt_results.
|
||||
FIELD-SYMBOLS: <ls_result> LIKE LINE OF lt_results.
|
||||
|
||||
*** 0 Positive
|
||||
|
||||
|
|
|
@ -87,26 +87,27 @@ CLASS ZCL_ABAPGIT_MIGRATIONS IMPLEMENTATION.
|
|||
lv_index TYPE i,
|
||||
lo_repo TYPE REF TO zcl_abapgit_repo_online.
|
||||
|
||||
FIELD-SYMBOLS: <repo> LIKE LINE OF lt_repos.
|
||||
FIELD-SYMBOLS: <lo_repo> LIKE LINE OF lt_repos.
|
||||
|
||||
|
||||
lt_repos = zcl_abapgit_repo_srv=>get_instance( )->list( ).
|
||||
|
||||
LOOP AT lt_repos ASSIGNING <repo>.
|
||||
LOOP AT lt_repos ASSIGNING <lo_repo>.
|
||||
lv_index = sy-tabix.
|
||||
|
||||
IF <repo>->is_offline( ) = abap_true. " Skip local repos
|
||||
IF <lo_repo>->is_offline( ) = abap_true. " Skip local repos
|
||||
DELETE lt_repos INDEX lv_index.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
" Ignore empty repos or repos with file checksums
|
||||
IF lines( <repo>->get_local_checksums( ) ) = 0
|
||||
OR lines( <repo>->get_local_checksums_per_file( ) ) > 0.
|
||||
IF lines( <lo_repo>->get_local_checksums( ) ) = 0
|
||||
OR lines( <lo_repo>->get_local_checksums_per_file( ) ) > 0.
|
||||
DELETE lt_repos INDEX lv_index.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
lv_repo_list = lv_repo_list && `, ` && <repo>->get_name( ).
|
||||
lv_repo_list = lv_repo_list && `, ` && <lo_repo>->get_name( ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -138,8 +139,8 @@ CLASS ZCL_ABAPGIT_MIGRATIONS IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT lt_repos ASSIGNING <repo>.
|
||||
lo_repo ?= <repo>.
|
||||
LOOP AT lt_repos ASSIGNING <lo_repo>.
|
||||
lo_repo ?= <lo_repo>.
|
||||
lo_repo->rebuild_local_checksums( ).
|
||||
ENDLOOP.
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ CLASS ZCL_ABAPGIT_NEWS IMPLEMENTATION.
|
|||
lv_url TYPE string,
|
||||
lo_repo_online TYPE REF TO zcl_abapgit_repo_online.
|
||||
|
||||
FIELD-SYMBOLS <file> LIKE LINE OF lt_remote.
|
||||
FIELD-SYMBOLS <ls_file> LIKE LINE OF lt_remote.
|
||||
|
||||
|
||||
IF io_repo->is_offline( ) = abap_true.
|
||||
|
@ -162,13 +162,13 @@ CLASS ZCL_ABAPGIT_NEWS IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
READ TABLE lt_remote ASSIGNING <file>
|
||||
READ TABLE lt_remote ASSIGNING <ls_file>
|
||||
WITH KEY path = lc_log_path filename = lc_log_filename.
|
||||
|
||||
IF sy-subrc = 0.
|
||||
CREATE OBJECT ro_instance
|
||||
EXPORTING
|
||||
iv_rawdata = <file>-data
|
||||
iv_rawdata = <ls_file>-data
|
||||
iv_current_version = zif_abapgit_definitions=>gc_abap_version " TODO refactor
|
||||
iv_lastseen_version = normalize_version( lv_last_seen ).
|
||||
ENDIF.
|
||||
|
@ -235,10 +235,11 @@ CLASS ZCL_ABAPGIT_NEWS IMPLEMENTATION.
|
|||
lv_version TYPE string,
|
||||
ls_log LIKE LINE OF rt_log.
|
||||
|
||||
FIELD-SYMBOLS: <line> LIKE LINE OF it_lines.
|
||||
FIELD-SYMBOLS: <lv_line> LIKE LINE OF it_lines.
|
||||
|
||||
LOOP AT it_lines ASSIGNING <line>.
|
||||
ls_log = parse_line( iv_line = <line> iv_current_version = iv_current_version ).
|
||||
|
||||
LOOP AT it_lines ASSIGNING <lv_line>.
|
||||
ls_log = parse_line( iv_line = <lv_line> iv_current_version = iv_current_version ).
|
||||
|
||||
" Skip until first version head and Skip empty lines
|
||||
CHECK ls_log IS NOT INITIAL AND
|
||||
|
|
|
@ -184,7 +184,7 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
|
|||
DATA: ls_remote_file TYPE zif_abapgit_definitions=>ty_file,
|
||||
lo_remote_version TYPE REF TO zcl_abapgit_xml_input,
|
||||
lv_count TYPE i,
|
||||
lo_comparison_result TYPE REF TO zif_abapgit_comparison_result.
|
||||
li_comparison_result TYPE REF TO zif_abapgit_comparison_result.
|
||||
|
||||
|
||||
FIND ALL OCCURRENCES OF '.' IN is_result-filename MATCH COUNT lv_count.
|
||||
|
@ -201,10 +201,10 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
|
|||
CREATE OBJECT lo_remote_version
|
||||
EXPORTING
|
||||
iv_xml = zcl_abapgit_convert=>xstring_to_string_utf8( ls_remote_file-data ).
|
||||
lo_comparison_result = io_object->compare_to_remote_version( lo_remote_version ).
|
||||
lo_comparison_result->show_confirmation_dialog( ).
|
||||
li_comparison_result = io_object->compare_to_remote_version( lo_remote_version ).
|
||||
li_comparison_result->show_confirmation_dialog( ).
|
||||
|
||||
IF lo_comparison_result->is_result_complete_halt( ) = abap_true.
|
||||
IF li_comparison_result->is_result_complete_halt( ) = abap_true.
|
||||
zcx_abapgit_exception=>raise( 'Deserialization aborted by user' ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
|
|
@ -133,7 +133,7 @@ CLASS ZCL_ABAPGIT_SAP_PACKAGE IMPLEMENTATION.
|
|||
object_not_changeable = 2
|
||||
object_invalid = 3
|
||||
intern_err = 4
|
||||
others = 5 ).
|
||||
OTHERS = 5 ).
|
||||
|
||||
zcx_abapgit_exception=>raise( lv_err ).
|
||||
|
||||
|
|
|
@ -137,14 +137,15 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
|||
|
||||
METHOD get_settings_xml.
|
||||
|
||||
DATA: lr_output TYPE REF TO zcl_abapgit_xml_output.
|
||||
DATA: lo_output TYPE REF TO zcl_abapgit_xml_output.
|
||||
|
||||
CREATE OBJECT lr_output.
|
||||
|
||||
lr_output->add( iv_name = zcl_abapgit_persistence_db=>c_type_settings
|
||||
CREATE OBJECT lo_output.
|
||||
|
||||
lo_output->add( iv_name = zcl_abapgit_persistence_db=>c_type_settings
|
||||
ig_data = ms_settings ).
|
||||
|
||||
ev_settings_xml = lr_output->render( ).
|
||||
ev_settings_xml = lo_output->render( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -211,14 +212,18 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
|||
|
||||
METHOD set_xml_settings.
|
||||
|
||||
DATA: lr_input TYPE REF TO zcl_abapgit_xml_input.
|
||||
DATA: lo_input TYPE REF TO zcl_abapgit_xml_input.
|
||||
|
||||
CREATE OBJECT lr_input EXPORTING iv_xml = iv_settings_xml.
|
||||
|
||||
CREATE OBJECT lo_input EXPORTING iv_xml = iv_settings_xml.
|
||||
|
||||
CLEAR ms_settings.
|
||||
|
||||
lr_input->read( EXPORTING iv_name = zcl_abapgit_persistence_db=>c_type_settings
|
||||
CHANGING cg_data = ms_settings ).
|
||||
lo_input->read(
|
||||
EXPORTING
|
||||
iv_name = zcl_abapgit_persistence_db=>c_type_settings
|
||||
CHANGING
|
||||
cg_data = ms_settings ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -24,16 +24,19 @@ CLASS ZCL_ABAPGIT_SKIP_OBJECTS IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD has_sadl_superclass.
|
||||
DATA: lo_oo_functions TYPE REF TO zif_abapgit_oo_object_fnc,
|
||||
|
||||
DATA: li_oo_functions TYPE REF TO zif_abapgit_oo_object_fnc,
|
||||
lv_class_name TYPE seoclsname,
|
||||
lv_superclass TYPE seoclsname.
|
||||
|
||||
lo_oo_functions = zcl_abapgit_oo_factory=>make( is_class-object ).
|
||||
|
||||
li_oo_functions = zcl_abapgit_oo_factory=>make( is_class-object ).
|
||||
lv_class_name = is_class-obj_name.
|
||||
lv_superclass = lo_oo_functions->read_superclass( lv_class_name ).
|
||||
lv_superclass = li_oo_functions->read_superclass( lv_class_name ).
|
||||
IF lv_superclass = 'CL_SADL_GTK_EXPOSURE_MPC'.
|
||||
rv_return = abap_true.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -335,13 +335,14 @@ CLASS ltcl_transport_objects IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD then_it_should_raise_exception.
|
||||
DATA: lo_exception TYPE REF TO zcx_abapgit_exception.
|
||||
DATA: lx_exception TYPE REF TO zcx_abapgit_exception.
|
||||
|
||||
TRY.
|
||||
when_staging( ).
|
||||
cl_abap_unit_assert=>fail( 'Should have raised exception').
|
||||
CATCH zcx_abapgit_exception INTO lo_exception.
|
||||
CATCH zcx_abapgit_exception INTO lx_exception.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_exception->text
|
||||
act = lx_exception->text
|
||||
exp = with_text ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -180,21 +180,21 @@ CLASS ZCL_ABAPGIT_ZLIB IMPLEMENTATION.
|
|||
APPEND 16 TO lt_order.
|
||||
APPEND 17 TO lt_order.
|
||||
APPEND 18 TO lt_order.
|
||||
APPEND 0 TO lt_order.
|
||||
APPEND 8 TO lt_order.
|
||||
APPEND 7 TO lt_order.
|
||||
APPEND 9 TO lt_order.
|
||||
APPEND 6 TO lt_order.
|
||||
APPEND 0 TO lt_order.
|
||||
APPEND 8 TO lt_order.
|
||||
APPEND 7 TO lt_order.
|
||||
APPEND 9 TO lt_order.
|
||||
APPEND 6 TO lt_order.
|
||||
APPEND 10 TO lt_order.
|
||||
APPEND 5 TO lt_order.
|
||||
APPEND 5 TO lt_order.
|
||||
APPEND 11 TO lt_order.
|
||||
APPEND 4 TO lt_order.
|
||||
APPEND 4 TO lt_order.
|
||||
APPEND 12 TO lt_order.
|
||||
APPEND 3 TO lt_order.
|
||||
APPEND 3 TO lt_order.
|
||||
APPEND 13 TO lt_order.
|
||||
APPEND 2 TO lt_order.
|
||||
APPEND 2 TO lt_order.
|
||||
APPEND 14 TO lt_order.
|
||||
APPEND 1 TO lt_order.
|
||||
APPEND 1 TO lt_order.
|
||||
APPEND 15 TO lt_order.
|
||||
|
||||
lv_nlen = go_stream->take_int( 5 ) + 257.
|
||||
|
|
Loading…
Reference in New Issue
Block a user