mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 21:08:01 +08:00
commit
8b3c782ae2
|
@ -4,14 +4,14 @@
|
||||||
|
|
||||||
CLASS ltcl_dot_abapgit DEFINITION DEFERRED.
|
CLASS ltcl_dot_abapgit DEFINITION DEFERRED.
|
||||||
|
|
||||||
|
CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
CONSTANTS: BEGIN OF c_folder_logic,
|
CONSTANTS: BEGIN OF c_folder_logic,
|
||||||
prefix TYPE string VALUE 'PREFIX',
|
prefix TYPE string VALUE 'PREFIX',
|
||||||
full TYPE string VALUE 'FULL',
|
full TYPE string VALUE 'FULL',
|
||||||
END OF c_folder_logic.
|
END OF c_folder_logic.
|
||||||
|
|
||||||
CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
build_default
|
build_default
|
||||||
IMPORTING iv_master_language TYPE spras
|
IMPORTING iv_master_language TYPE spras
|
||||||
|
@ -39,8 +39,10 @@ CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit.
|
||||||
RETURNING VALUE(rv_path) TYPE string,
|
RETURNING VALUE(rv_path) TYPE string,
|
||||||
get_folder_logic
|
get_folder_logic
|
||||||
RETURNING VALUE(rv_logic) TYPE string,
|
RETURNING VALUE(rv_logic) TYPE string,
|
||||||
* set_starting_folder
|
set_folder_logic
|
||||||
* IMPORTING iv_path TYPE string,
|
IMPORTING iv_logic TYPE string,
|
||||||
|
set_starting_folder
|
||||||
|
IMPORTING iv_path TYPE string,
|
||||||
get_master_language
|
get_master_language
|
||||||
RETURNING VALUE(rv_language) TYPE spras,
|
RETURNING VALUE(rv_language) TYPE spras,
|
||||||
* set_master_language
|
* set_master_language
|
||||||
|
@ -220,9 +222,13 @@ CLASS lcl_dot_abapgit IMPLEMENTATION.
|
||||||
rv_logic = ms_data-folder_logic.
|
rv_logic = ms_data-folder_logic.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
* METHOD set_starting_folder.
|
METHOD set_folder_logic.
|
||||||
* ms_data-starting_folder = iv_path.
|
ms_data-folder_logic = iv_logic.
|
||||||
* ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD set_starting_folder.
|
||||||
|
ms_data-starting_folder = iv_path.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD get_master_language.
|
METHOD get_master_language.
|
||||||
rv_language = ms_data-master_language.
|
rv_language = ms_data-master_language.
|
||||||
|
|
|
@ -31,8 +31,9 @@ CLASS lcl_file_status DEFINITION FINAL
|
||||||
run_checks
|
run_checks
|
||||||
IMPORTING io_log TYPE REF TO lcl_log
|
IMPORTING io_log TYPE REF TO lcl_log
|
||||||
it_results TYPE ty_results_tt
|
it_results TYPE ty_results_tt
|
||||||
iv_start TYPE string
|
io_dot TYPE REF TO lcl_dot_abapgit
|
||||||
iv_top TYPE devclass,
|
iv_top TYPE devclass
|
||||||
|
RAISING lcx_exception,
|
||||||
build_existing
|
build_existing
|
||||||
IMPORTING is_local TYPE ty_file_item
|
IMPORTING is_local TYPE ty_file_item
|
||||||
is_remote TYPE ty_file
|
is_remote TYPE ty_file
|
||||||
|
@ -109,8 +110,8 @@ CLASS lcl_file_status IMPLEMENTATION.
|
||||||
" Check that objects are created in package corresponding to folder
|
" Check that objects are created in package corresponding to folder
|
||||||
LOOP AT it_results ASSIGNING <ls_res1>
|
LOOP AT it_results ASSIGNING <ls_res1>
|
||||||
WHERE NOT package IS INITIAL AND NOT path IS INITIAL.
|
WHERE NOT package IS INITIAL AND NOT path IS INITIAL.
|
||||||
lv_path = lcl_folder_logic=>class_to_path( iv_top = iv_top
|
lv_path = lcl_folder_logic=>package_to_path( iv_top = iv_top
|
||||||
iv_start = iv_start
|
io_dot = io_dot
|
||||||
iv_package = <ls_res1>-package ).
|
iv_package = <ls_res1>-package ).
|
||||||
IF lv_path <> <ls_res1>-path.
|
IF lv_path <> <ls_res1>-path.
|
||||||
io_log->add( iv_msgv1 = 'Package and path does not match for object,'
|
io_log->add( iv_msgv1 = 'Package and path does not match for object,'
|
||||||
|
@ -151,7 +152,6 @@ CLASS lcl_file_status IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
rt_results = calculate_status(
|
rt_results = calculate_status(
|
||||||
|
|
||||||
iv_devclass = io_repo->get_package( )
|
iv_devclass = io_repo->get_package( )
|
||||||
it_local = io_repo->get_files_local( io_log = io_log )
|
it_local = io_repo->get_files_local( io_log = io_log )
|
||||||
it_remote = io_repo->get_files_remote( )
|
it_remote = io_repo->get_files_remote( )
|
||||||
|
@ -173,7 +173,7 @@ CLASS lcl_file_status IMPLEMENTATION.
|
||||||
run_checks(
|
run_checks(
|
||||||
io_log = io_log
|
io_log = io_log
|
||||||
it_results = rt_results
|
it_results = rt_results
|
||||||
iv_start = lo_dot_abapgit->get_starting_folder( )
|
io_dot = lo_dot_abapgit
|
||||||
iv_top = io_repo->get_package( ) ).
|
iv_top = io_repo->get_package( ) ).
|
||||||
|
|
||||||
ENDMETHOD. "status
|
ENDMETHOD. "status
|
||||||
|
|
|
@ -6,21 +6,23 @@ CLASS lcl_folder_logic DEFINITION.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
class_to_path
|
package_to_path
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_top TYPE devclass
|
iv_top TYPE devclass
|
||||||
iv_start TYPE string
|
io_dot TYPE REF TO lcl_dot_abapgit
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_path) TYPE string.
|
VALUE(rv_path) TYPE string
|
||||||
|
RAISING lcx_exception,
|
||||||
CLASS-METHODS
|
|
||||||
path_to_package
|
path_to_package
|
||||||
IMPORTING iv_top TYPE devclass
|
IMPORTING
|
||||||
iv_start TYPE string
|
iv_top TYPE devclass
|
||||||
|
io_dot TYPE REF TO lcl_dot_abapgit
|
||||||
iv_path TYPE string
|
iv_path TYPE string
|
||||||
RETURNING VALUE(rv_package) TYPE devclass
|
RETURNING
|
||||||
RAISING lcx_exception.
|
VALUE(rv_package) TYPE devclass
|
||||||
|
RAISING
|
||||||
|
lcx_exception.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -34,7 +36,7 @@ CLASS lcl_folder_logic IMPLEMENTATION.
|
||||||
lv_path TYPE string.
|
lv_path TYPE string.
|
||||||
|
|
||||||
|
|
||||||
lv_length = strlen( iv_start ).
|
lv_length = strlen( io_dot->get_starting_folder( ) ).
|
||||||
lv_path = iv_path+lv_length.
|
lv_path = iv_path+lv_length.
|
||||||
lv_parent = iv_top.
|
lv_parent = iv_top.
|
||||||
rv_package = iv_top.
|
rv_package = iv_top.
|
||||||
|
@ -42,57 +44,354 @@ CLASS lcl_folder_logic IMPLEMENTATION.
|
||||||
WHILE lv_path CA '/'.
|
WHILE lv_path CA '/'.
|
||||||
SPLIT lv_path AT '/' INTO lv_new lv_path.
|
SPLIT lv_path AT '/' INTO lv_new lv_path.
|
||||||
|
|
||||||
|
CASE io_dot->get_folder_logic( ).
|
||||||
|
WHEN lcl_dot_abapgit=>c_folder_logic-full.
|
||||||
|
rv_package = lv_new.
|
||||||
|
TRANSLATE rv_package USING '#/'.
|
||||||
|
IF iv_top(1) = '$'.
|
||||||
|
CONCATENATE '$' rv_package INTO rv_package.
|
||||||
|
ENDIF.
|
||||||
|
WHEN lcl_dot_abapgit=>c_folder_logic-prefix.
|
||||||
CONCATENATE rv_package '_' lv_new INTO rv_package.
|
CONCATENATE rv_package '_' lv_new INTO rv_package.
|
||||||
|
WHEN OTHERS.
|
||||||
|
ASSERT 0 = 1.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
TRANSLATE rv_package TO UPPER CASE.
|
TRANSLATE rv_package TO UPPER CASE.
|
||||||
|
|
||||||
IF lcl_sap_package=>exists( rv_package ) = abap_false.
|
IF lcl_sap_package=>get( rv_package )->exists( ) = abap_false.
|
||||||
lcl_sap_package=>create_child( iv_parent = lv_parent
|
lcl_sap_package=>get( lv_parent )->create_child( rv_package ).
|
||||||
iv_child = rv_package ).
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
lv_parent = rv_package.
|
lv_parent = rv_package.
|
||||||
ENDWHILE.
|
ENDWHILE.
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD class_to_path.
|
METHOD package_to_path.
|
||||||
|
|
||||||
DATA: lv_len TYPE i,
|
DATA: lv_len TYPE i,
|
||||||
lv_path TYPE string,
|
lv_path TYPE string,
|
||||||
|
lv_message TYPE string,
|
||||||
lv_parentcl TYPE tdevc-parentcl.
|
lv_parentcl TYPE tdevc-parentcl.
|
||||||
|
|
||||||
|
|
||||||
IF iv_top = iv_package.
|
IF iv_top = iv_package.
|
||||||
rv_path = iv_start.
|
rv_path = io_dot->get_starting_folder( ).
|
||||||
ELSE.
|
ELSE.
|
||||||
SELECT SINGLE parentcl FROM tdevc INTO lv_parentcl
|
lv_parentcl = lcl_sap_package=>get( iv_package )->read_parent( ).
|
||||||
WHERE devclass = iv_package. "#EC CI_SUBRC "#EC CI_GENBUFF
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
IF lv_parentcl IS INITIAL.
|
IF lv_parentcl IS INITIAL.
|
||||||
rv_path = 'error' ##no_text.
|
lcx_exception=>raise( 'error, expected parent package' ).
|
||||||
ELSE.
|
ELSE.
|
||||||
|
CASE io_dot->get_folder_logic( ).
|
||||||
|
WHEN lcl_dot_abapgit=>c_folder_logic-full.
|
||||||
|
lv_len = 0.
|
||||||
|
IF iv_package(1) = '$'.
|
||||||
|
lv_len = 1.
|
||||||
|
ENDIF.
|
||||||
|
WHEN lcl_dot_abapgit=>c_folder_logic-prefix.
|
||||||
lv_len = strlen( lv_parentcl ).
|
lv_len = strlen( lv_parentcl ).
|
||||||
|
|
||||||
|
IF iv_package(lv_len) <> lv_parentcl.
|
||||||
|
* if abapGit project is installed in package ZZZ, all subpackages should be named
|
||||||
|
* ZZZ_something. This will define the folder name in the zip file to be "something",
|
||||||
|
* similarily with online projects. Alternatively change to FULL folder logic
|
||||||
|
lv_message = 'PREFIX: Unexpected package naming(' && iv_package && ')' ##no_text.
|
||||||
|
lcx_exception=>raise( lv_message ).
|
||||||
|
ENDIF.
|
||||||
|
WHEN OTHERS.
|
||||||
|
ASSERT 0 = 1.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
lv_path = iv_package+lv_len.
|
lv_path = iv_package+lv_len.
|
||||||
IF strlen( lv_path ) = 0.
|
IF strlen( lv_path ) = 0.
|
||||||
RETURN. " prevent dump
|
lcx_exception=>raise( 'Folder logic: length = 0' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF lv_path(1) = '_'.
|
IF lv_path(1) = '_'.
|
||||||
lv_path = lv_path+1.
|
lv_path = lv_path+1.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
TRANSLATE lv_path USING '/#'.
|
||||||
TRANSLATE lv_path TO LOWER CASE.
|
TRANSLATE lv_path TO LOWER CASE.
|
||||||
CONCATENATE lv_path '/' INTO lv_path.
|
CONCATENATE lv_path '/' INTO lv_path.
|
||||||
|
|
||||||
rv_path = class_to_path( iv_top = iv_top
|
rv_path = package_to_path( iv_top = iv_top
|
||||||
iv_start = iv_start
|
io_dot = io_dot
|
||||||
iv_package = lv_parentcl ).
|
iv_package = lv_parentcl ).
|
||||||
|
|
||||||
CONCATENATE rv_path lv_path INTO rv_path.
|
CONCATENATE rv_path lv_path INTO rv_path.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD. "class_to_path
|
ENDMETHOD. "class_to_path
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic_helper DEFINITION FOR TESTING FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: test
|
||||||
|
IMPORTING
|
||||||
|
iv_starting TYPE string
|
||||||
|
iv_top TYPE devclass
|
||||||
|
iv_logic TYPE string
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_path TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic_helper IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD test.
|
||||||
|
|
||||||
|
DATA: lv_path TYPE string,
|
||||||
|
lv_package TYPE devclass,
|
||||||
|
lo_dot TYPE REF TO lcl_dot_abapgit.
|
||||||
|
|
||||||
|
|
||||||
|
lo_dot = lcl_dot_abapgit=>build_default( sy-langu ).
|
||||||
|
lo_dot->set_starting_folder( iv_starting ).
|
||||||
|
lo_dot->set_folder_logic( iv_logic ).
|
||||||
|
|
||||||
|
lv_package = lcl_folder_logic=>path_to_package(
|
||||||
|
iv_top = iv_top
|
||||||
|
io_dot = lo_dot
|
||||||
|
iv_path = iv_path ).
|
||||||
|
|
||||||
|
lv_path = lcl_folder_logic=>package_to_path(
|
||||||
|
iv_top = iv_top
|
||||||
|
io_dot = lo_dot
|
||||||
|
iv_package = iv_package ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_package
|
||||||
|
exp = iv_package ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_path
|
||||||
|
exp = iv_path ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES: lif_sap_package.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
CONSTANTS: lc_top TYPE devclass VALUE '$TOP',
|
||||||
|
lc_src TYPE string VALUE '/src/'.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
setup,
|
||||||
|
teardown,
|
||||||
|
prefix1 FOR TESTING RAISING lcx_exception,
|
||||||
|
prefix2 FOR TESTING RAISING lcx_exception,
|
||||||
|
prefix_error1 FOR TESTING RAISING lcx_exception,
|
||||||
|
full1 FOR TESTING RAISING lcx_exception,
|
||||||
|
full2 FOR TESTING RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "ltcl_convert DEFINITION
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~list_subpackages.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~list_superpackages.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~read_parent.
|
||||||
|
rv_parentcl = '$TOP'.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~create_child.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~exists.
|
||||||
|
rv_bool = abap_true.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD setup.
|
||||||
|
FIELD-SYMBOLS: <ls_inject> LIKE LINE OF lcl_sap_package=>gt_injected.
|
||||||
|
|
||||||
|
CLEAR lcl_sap_package=>gt_injected.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '$TOP'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '$TOP_FOO'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '$FOOBAR'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD teardown.
|
||||||
|
CLEAR lcl_sap_package=>gt_injected.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix1.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix2.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = '$TOP_FOO'
|
||||||
|
iv_path = '/src/foo/' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix_error1.
|
||||||
|
* PREFIX mode, top package is $TOP, so all subpackages should be named $TOP_something
|
||||||
|
TRY.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = '$FOOBAR'
|
||||||
|
iv_path = '/src/' ).
|
||||||
|
cl_abap_unit_assert=>fail( 'Error expected' ).
|
||||||
|
CATCH lcx_exception.
|
||||||
|
ENDTRY.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD full1.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD full2.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = '$TOP_FOO'
|
||||||
|
iv_path = '/src/top_foo/' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic_namespaces DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES: lif_sap_package.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
CONSTANTS: lc_top TYPE devclass VALUE '/TEST/TOOLS',
|
||||||
|
lc_src TYPE string VALUE '/src/'.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
setup,
|
||||||
|
teardown,
|
||||||
|
prefix1 FOR TESTING RAISING lcx_exception,
|
||||||
|
prefix2 FOR TESTING RAISING lcx_exception,
|
||||||
|
full1 FOR TESTING RAISING lcx_exception,
|
||||||
|
full2 FOR TESTING RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "ltcl_convert DEFINITION
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic_namespaces IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~list_subpackages.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~list_superpackages.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~read_parent.
|
||||||
|
rv_parentcl = lc_top.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~create_child.
|
||||||
|
RETURN.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~exists.
|
||||||
|
rv_bool = abap_true.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD setup.
|
||||||
|
FIELD-SYMBOLS: <ls_inject> LIKE LINE OF lcl_sap_package=>gt_injected.
|
||||||
|
|
||||||
|
CLEAR lcl_sap_package=>gt_injected.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '/TEST/TOOLS'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '/TEST/T1'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lcl_sap_package=>gt_injected ASSIGNING <ls_inject>.
|
||||||
|
<ls_inject>-package = '/TEST/TOOLS_T1'.
|
||||||
|
<ls_inject>-object = me.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD teardown.
|
||||||
|
CLEAR lcl_sap_package=>gt_injected.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix1.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD prefix2.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-prefix
|
||||||
|
iv_package = '/TEST/TOOLS_T1'
|
||||||
|
iv_path = '/src/t1/' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD full1.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = lc_top
|
||||||
|
iv_path = lc_src ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD full2.
|
||||||
|
ltcl_folder_logic_helper=>test(
|
||||||
|
iv_starting = lc_src
|
||||||
|
iv_top = lc_top
|
||||||
|
iv_logic = lcl_dot_abapgit=>c_folder_logic-full
|
||||||
|
iv_package = '/TEST/T1'
|
||||||
|
iv_path = '/src/#test#t1/' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
|
@ -80,12 +80,12 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD update_package_tree.
|
METHOD update_package_tree.
|
||||||
|
|
||||||
DATA: lt_packages TYPE lcl_sap_package=>ty_devclass_tt,
|
DATA: lt_packages TYPE lif_sap_package=>ty_devclass_tt,
|
||||||
lv_package LIKE LINE OF lt_packages,
|
lv_package LIKE LINE OF lt_packages,
|
||||||
lv_tree TYPE dirtree-tname.
|
lv_tree TYPE dirtree-tname.
|
||||||
|
|
||||||
|
|
||||||
lt_packages = lcl_sap_package=>list_subpackages( iv_package ).
|
lt_packages = lcl_sap_package=>get( iv_package )->list_subpackages( ).
|
||||||
APPEND iv_package TO lt_packages.
|
APPEND iv_package TO lt_packages.
|
||||||
|
|
||||||
LOOP AT lt_packages INTO lv_package.
|
LOOP AT lt_packages INTO lv_package.
|
||||||
|
@ -597,7 +597,7 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
lv_package = lcl_folder_logic=>path_to_package(
|
lv_package = lcl_folder_logic=>path_to_package(
|
||||||
iv_top = io_repo->get_package( )
|
iv_top = io_repo->get_package( )
|
||||||
iv_start = io_repo->get_dot_abapgit( )->get_starting_folder( )
|
io_dot = io_repo->get_dot_abapgit( )
|
||||||
iv_path = <ls_result>-path ).
|
iv_path = <ls_result>-path ).
|
||||||
|
|
||||||
lv_cancel = warning_package( is_item = ls_item
|
lv_cancel = warning_package( is_item = ls_item
|
||||||
|
|
|
@ -181,12 +181,16 @@ CLASS lcl_repo_content_browser IMPLEMENTATION.
|
||||||
<ls_tadir> LIKE LINE OF lt_tadir.
|
<ls_tadir> LIKE LINE OF lt_tadir.
|
||||||
|
|
||||||
|
|
||||||
lt_tadir = lcl_tadir=>read( mo_repo->get_package( ) ).
|
* todo, offline projects should have an dot abapgit too
|
||||||
|
lt_tadir = lcl_tadir=>read(
|
||||||
|
iv_package = mo_repo->get_package( )
|
||||||
|
io_dot = lcl_dot_abapgit=>build_default( sy-langu ) ).
|
||||||
|
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
APPEND INITIAL LINE TO rt_repo_items ASSIGNING <ls_repo_item>.
|
APPEND INITIAL LINE TO rt_repo_items ASSIGNING <ls_repo_item>.
|
||||||
<ls_repo_item>-obj_type = <ls_tadir>-object.
|
<ls_repo_item>-obj_type = <ls_tadir>-object.
|
||||||
<ls_repo_item>-obj_name = <ls_tadir>-obj_name.
|
<ls_repo_item>-obj_name = <ls_tadir>-obj_name.
|
||||||
<ls_repo_item>-path = '/' && <ls_tadir>-path. " Add root anchor
|
<ls_repo_item>-path = <ls_tadir>-path.
|
||||||
<ls_repo_item>-sortkey = c_sortkey-default. " Default sort key
|
<ls_repo_item>-sortkey = c_sortkey-default. " Default sort key
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
|
@ -537,7 +537,8 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
lt_cache = mt_local.
|
lt_cache = mt_local.
|
||||||
lt_tadir = lcl_tadir=>read(
|
lt_tadir = lcl_tadir=>read(
|
||||||
iv_package = get_package( )
|
iv_package = get_package( )
|
||||||
iv_ignore_subpackages = ignore_subpackages( ) ).
|
iv_ignore_subpackages = ignore_subpackages( )
|
||||||
|
io_dot = get_dot_abapgit( ) ).
|
||||||
|
|
||||||
lt_filter = it_filter.
|
lt_filter = it_filter.
|
||||||
lv_filter_exist = boolc( lines( lt_filter ) > 0 ) .
|
lv_filter_exist = boolc( lines( lt_filter ) > 0 ) .
|
||||||
|
@ -582,7 +583,7 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
iv_language = get_master_language( )
|
iv_language = get_master_language( )
|
||||||
io_log = io_log ).
|
io_log = io_log ).
|
||||||
LOOP AT lt_files ASSIGNING <ls_file>.
|
LOOP AT lt_files ASSIGNING <ls_file>.
|
||||||
<ls_file>-path = mo_dot_abapgit->get_starting_folder( ) && <ls_tadir>-path.
|
<ls_file>-path = <ls_tadir>-path.
|
||||||
<ls_file>-sha1 = lcl_hash=>sha1( iv_type = gc_type-blob iv_data = <ls_file>-data ).
|
<ls_file>-sha1 = lcl_hash=>sha1( iv_type = gc_type-blob iv_data = <ls_file>-data ).
|
||||||
|
|
||||||
APPEND INITIAL LINE TO rt_files ASSIGNING <ls_return>.
|
APPEND INITIAL LINE TO rt_files ASSIGNING <ls_return>.
|
||||||
|
|
|
@ -2,35 +2,65 @@
|
||||||
*& Include ZABAPGIT_SAP_PACKAGE
|
*& Include ZABAPGIT_SAP_PACKAGE
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
|
INTERFACE lif_sap_package.
|
||||||
|
|
||||||
|
TYPES: ty_devclass_tt TYPE STANDARD TABLE OF devclass WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
list_subpackages
|
||||||
|
RETURNING VALUE(rt_list) TYPE ty_devclass_tt,
|
||||||
|
list_superpackages
|
||||||
|
RETURNING VALUE(rt_list) TYPE ty_devclass_tt,
|
||||||
|
read_parent
|
||||||
|
RETURNING VALUE(rv_parentcl) TYPE tdevc-parentcl,
|
||||||
|
create_child
|
||||||
|
IMPORTING iv_child TYPE devclass
|
||||||
|
RAISING lcx_exception,
|
||||||
|
exists
|
||||||
|
RETURNING VALUE(rv_bool) TYPE abap_bool.
|
||||||
|
|
||||||
|
ENDINTERFACE.
|
||||||
|
|
||||||
|
CLASS ltcl_folder_logic DEFINITION DEFERRED.
|
||||||
|
CLASS ltcl_folder_logic_namespaces DEFINITION DEFERRED.
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_package DEFINITION
|
* CLASS lcl_package DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
*
|
*
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_sap_package DEFINITION FINAL.
|
CLASS lcl_sap_package DEFINITION FINAL CREATE PRIVATE
|
||||||
|
FRIENDS
|
||||||
|
ltcl_folder_logic
|
||||||
|
ltcl_folder_logic_namespaces.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
TYPES: ty_devclass_tt TYPE STANDARD TABLE OF devclass WITH DEFAULT KEY.
|
|
||||||
|
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
list_subpackages IMPORTING iv_package TYPE devclass
|
get
|
||||||
RETURNING VALUE(rt_list) TYPE ty_devclass_tt,
|
|
||||||
list_superpackages IMPORTING iv_package TYPE devclass
|
|
||||||
RETURNING VALUE(rt_list) TYPE ty_devclass_tt,
|
|
||||||
create_local
|
|
||||||
IMPORTING iv_package TYPE devclass
|
IMPORTING iv_package TYPE devclass
|
||||||
RAISING lcx_exception,
|
RETURNING VALUE(ri_package) TYPE REF TO lif_sap_package,
|
||||||
create
|
create
|
||||||
IMPORTING is_package TYPE scompkdtln
|
IMPORTING is_package TYPE scompkdtln
|
||||||
RETURNING VALUE(ri_package) TYPE REF TO if_package
|
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
create_child
|
create_local
|
||||||
IMPORTING iv_parent TYPE devclass
|
|
||||||
iv_child TYPE devclass
|
|
||||||
RAISING lcx_exception,
|
|
||||||
exists
|
|
||||||
IMPORTING iv_package TYPE devclass
|
IMPORTING iv_package TYPE devclass
|
||||||
RETURNING VALUE(rv_bool) TYPE abap_bool.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING iv_package TYPE devclass.
|
||||||
|
|
||||||
|
INTERFACES: lif_sap_package.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
TYPES: BEGIN OF ty_injected,
|
||||||
|
package TYPE devclass,
|
||||||
|
object TYPE REF TO lif_sap_package,
|
||||||
|
END OF ty_injected.
|
||||||
|
|
||||||
|
CLASS-DATA: gt_injected TYPE STANDARD TABLE OF ty_injected.
|
||||||
|
|
||||||
|
DATA: mv_package TYPE devclass.
|
||||||
|
|
||||||
ENDCLASS. "lcl_package DEFINITION
|
ENDCLASS. "lcl_package DEFINITION
|
||||||
|
|
||||||
|
@ -41,11 +71,31 @@ ENDCLASS. "lcl_package DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_sap_package IMPLEMENTATION.
|
CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD exists.
|
METHOD get.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_injected> LIKE LINE OF gt_injected.
|
||||||
|
|
||||||
|
IF lines( gt_injected ) > 0.
|
||||||
|
READ TABLE gt_injected ASSIGNING <ls_injected> WITH KEY package = iv_package.
|
||||||
|
ASSERT sy-subrc = 0. " unit test should be in control
|
||||||
|
ri_package = <ls_injected>-object.
|
||||||
|
ELSE.
|
||||||
|
CREATE OBJECT ri_package TYPE lcl_sap_package
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
mv_package = iv_package.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~exists.
|
||||||
|
|
||||||
cl_package_factory=>load_package(
|
cl_package_factory=>load_package(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
i_package_name = iv_package
|
i_package_name = mv_package
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
object_not_existing = 1
|
object_not_existing = 1
|
||||||
unexpected_error = 2
|
unexpected_error = 2
|
||||||
|
@ -56,7 +106,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD create_child.
|
METHOD lif_sap_package~create_child.
|
||||||
|
|
||||||
DATA: li_parent TYPE REF TO if_package,
|
DATA: li_parent TYPE REF TO if_package,
|
||||||
ls_child TYPE scompkdtln.
|
ls_child TYPE scompkdtln.
|
||||||
|
@ -64,7 +114,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
|
|
||||||
cl_package_factory=>load_package(
|
cl_package_factory=>load_package(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
i_package_name = iv_parent
|
i_package_name = mv_package
|
||||||
IMPORTING
|
IMPORTING
|
||||||
e_package = li_parent
|
e_package = li_parent
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
|
@ -80,7 +130,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
ls_child-devclass = iv_child.
|
ls_child-devclass = iv_child.
|
||||||
ls_child-dlvunit = li_parent->software_component.
|
ls_child-dlvunit = li_parent->software_component.
|
||||||
ls_child-ctext = iv_child.
|
ls_child-ctext = iv_child.
|
||||||
ls_child-parentcl = iv_parent.
|
ls_child-parentcl = mv_package.
|
||||||
ls_child-pdevclass = li_parent->transport_layer.
|
ls_child-pdevclass = li_parent->transport_layer.
|
||||||
ls_child-as4user = sy-uname.
|
ls_child-as4user = sy-uname.
|
||||||
|
|
||||||
|
@ -91,6 +141,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
METHOD create.
|
METHOD create.
|
||||||
|
|
||||||
DATA: lv_err TYPE string,
|
DATA: lv_err TYPE string,
|
||||||
|
li_package TYPE REF TO if_package,
|
||||||
ls_package LIKE is_package.
|
ls_package LIKE is_package.
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,7 +173,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
i_reuse_deleted_object = abap_true
|
i_reuse_deleted_object = abap_true
|
||||||
* i_suppress_dialog = abap_true " does not exist in 730
|
* i_suppress_dialog = abap_true " does not exist in 730
|
||||||
IMPORTING
|
IMPORTING
|
||||||
e_package = ri_package
|
e_package = li_package
|
||||||
CHANGING
|
CHANGING
|
||||||
c_package_data = ls_package
|
c_package_data = ls_package
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
|
@ -152,7 +203,7 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
lcx_exception=>raise( |Package { is_package-devclass } could not be created| ).
|
lcx_exception=>raise( |Package { is_package-devclass } could not be created| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ri_package->save(
|
li_package->save(
|
||||||
* EXPORTING
|
* EXPORTING
|
||||||
* i_suppress_dialog = abap_true " Controls whether popups can be transmitted
|
* i_suppress_dialog = abap_true " Controls whether popups can be transmitted
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
|
@ -169,42 +220,50 @@ CLASS lcl_sap_package IMPLEMENTATION.
|
||||||
lcx_exception=>raise( lv_err ).
|
lcx_exception=>raise( lv_err ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ri_package->set_changeable( abap_false ).
|
li_package->set_changeable( abap_false ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD list_superpackages.
|
METHOD lif_sap_package~read_parent.
|
||||||
|
|
||||||
|
SELECT SINGLE parentcl FROM tdevc INTO rv_parentcl
|
||||||
|
WHERE devclass = mv_package. "#EC CI_SUBRC "#EC CI_GENBUFF
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_sap_package~list_superpackages.
|
||||||
|
|
||||||
DATA: lt_list LIKE rt_list,
|
DATA: lt_list LIKE rt_list,
|
||||||
lv_parent TYPE tdevc-parentcl,
|
lv_parent TYPE tdevc-parentcl,
|
||||||
lv_devclass LIKE LINE OF rt_list.
|
lv_devclass LIKE LINE OF rt_list.
|
||||||
|
|
||||||
|
|
||||||
APPEND iv_package TO rt_list.
|
APPEND mv_package TO rt_list.
|
||||||
|
|
||||||
SELECT SINGLE parentcl INTO lv_parent
|
SELECT SINGLE parentcl INTO lv_parent
|
||||||
FROM tdevc WHERE devclass = iv_package. "#EC CI_GENBUFF
|
FROM tdevc WHERE devclass = mv_package. "#EC CI_GENBUFF
|
||||||
|
|
||||||
IF NOT lv_parent IS INITIAL.
|
IF NOT lv_parent IS INITIAL.
|
||||||
APPEND lv_parent TO rt_list.
|
APPEND lv_parent TO rt_list.
|
||||||
lt_list = list_superpackages( lv_devclass ).
|
lt_list = get( lv_devclass )->list_superpackages( ).
|
||||||
APPEND LINES OF lt_list TO rt_list.
|
APPEND LINES OF lt_list TO rt_list.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD list_subpackages.
|
METHOD lif_sap_package~list_subpackages.
|
||||||
|
|
||||||
DATA: lt_list LIKE rt_list,
|
DATA: lt_list LIKE rt_list,
|
||||||
lv_devclass LIKE LINE OF rt_list.
|
lv_devclass LIKE LINE OF rt_list.
|
||||||
|
|
||||||
|
|
||||||
SELECT devclass INTO TABLE rt_list
|
SELECT devclass INTO TABLE rt_list
|
||||||
FROM tdevc WHERE parentcl = iv_package. "#EC CI_GENBUFF
|
FROM tdevc WHERE parentcl = mv_package. "#EC CI_GENBUFF
|
||||||
|
|
||||||
* note the recursion, since packages are added to the list
|
* note the recursion, since packages are added to the list
|
||||||
LOOP AT rt_list INTO lv_devclass.
|
LOOP AT rt_list INTO lv_devclass.
|
||||||
lt_list = list_subpackages( lv_devclass ).
|
lt_list = get( lv_devclass )->list_subpackages( ).
|
||||||
APPEND LINES OF lt_list TO rt_list.
|
APPEND LINES OF lt_list TO rt_list.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ CLASS lcl_tadir DEFINITION FINAL.
|
||||||
read
|
read
|
||||||
IMPORTING iv_package TYPE tadir-devclass
|
IMPORTING iv_package TYPE tadir-devclass
|
||||||
iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
||||||
|
io_dot TYPE REF TO lcl_dot_abapgit OPTIONAL
|
||||||
RETURNING VALUE(rt_tadir) TYPE ty_tadir_tt
|
RETURNING VALUE(rt_tadir) TYPE ty_tadir_tt
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
read_single
|
read_single
|
||||||
|
@ -35,7 +36,8 @@ CLASS lcl_tadir DEFINITION FINAL.
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
build
|
build
|
||||||
IMPORTING iv_package TYPE tadir-devclass
|
IMPORTING iv_package TYPE tadir-devclass
|
||||||
iv_path TYPE string
|
iv_top TYPE tadir-devclass
|
||||||
|
io_dot TYPE REF TO lcl_dot_abapgit
|
||||||
iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
||||||
RETURNING VALUE(rt_tadir) TYPE ty_tadir_tt
|
RETURNING VALUE(rt_tadir) TYPE ty_tadir_tt
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
@ -112,8 +114,10 @@ CLASS lcl_tadir IMPLEMENTATION.
|
||||||
METHOD read.
|
METHOD read.
|
||||||
|
|
||||||
* start recursion
|
* start recursion
|
||||||
|
* hmm, some problems here, should TADIR also build path?
|
||||||
rt_tadir = build( iv_package = iv_package
|
rt_tadir = build( iv_package = iv_package
|
||||||
iv_path = ''
|
iv_top = iv_package
|
||||||
|
io_dot = io_dot
|
||||||
iv_ignore_subpackages = iv_ignore_subpackages ).
|
iv_ignore_subpackages = iv_ignore_subpackages ).
|
||||||
|
|
||||||
rt_tadir = check_exists( rt_tadir ).
|
rt_tadir = check_exists( rt_tadir ).
|
||||||
|
@ -145,15 +149,23 @@ CLASS lcl_tadir IMPLEMENTATION.
|
||||||
AND delflag = abap_false
|
AND delflag = abap_false
|
||||||
ORDER BY PRIMARY KEY. "#EC CI_GENBUFF "#EC CI_SUBRC
|
ORDER BY PRIMARY KEY. "#EC CI_GENBUFF "#EC CI_SUBRC
|
||||||
|
|
||||||
|
IF NOT io_dot IS INITIAL.
|
||||||
|
lv_path = lcl_folder_logic=>package_to_path(
|
||||||
|
iv_top = iv_top
|
||||||
|
io_dot = io_dot
|
||||||
|
iv_package = iv_package ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
LOOP AT rt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT rt_tadir ASSIGNING <ls_tadir>.
|
||||||
lv_index = sy-tabix.
|
lv_index = sy-tabix.
|
||||||
|
|
||||||
<ls_tadir>-path = iv_path.
|
<ls_tadir>-path = lv_path.
|
||||||
|
|
||||||
CASE <ls_tadir>-object.
|
CASE <ls_tadir>-object.
|
||||||
WHEN 'SICF'.
|
WHEN 'SICF'.
|
||||||
<ls_tadir>-obj_name = <ls_tadir>-obj_name(15).
|
<ls_tadir>-obj_name = <ls_tadir>-obj_name(15).
|
||||||
WHEN 'INTF'.
|
WHEN 'INTF'.
|
||||||
|
* todo, move this logic to INTF exists method
|
||||||
SELECT SINGLE category FROM seoclassdf INTO lv_category
|
SELECT SINGLE category FROM seoclassdf INTO lv_category
|
||||||
WHERE clsname = <ls_tadir>-obj_name
|
WHERE clsname = <ls_tadir>-obj_name
|
||||||
AND ( version = '1'
|
AND ( version = '1'
|
||||||
|
@ -172,26 +184,27 @@ CLASS lcl_tadir IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
LOOP AT lt_tdevc ASSIGNING <ls_tdevc>.
|
LOOP AT lt_tdevc ASSIGNING <ls_tdevc>.
|
||||||
lv_len = strlen( iv_package ).
|
* lv_len = strlen( iv_package ).
|
||||||
IF <ls_tdevc>-devclass(lv_len) <> iv_package.
|
* IF <ls_tdevc>-devclass(lv_len) <> iv_package.
|
||||||
* if abapGit project is installed in package ZZZ, all subpackages should be named
|
** if abapGit project is installed in package ZZZ, all subpackages should be named
|
||||||
* ZZZ_something. This will define the folder name in the zip file to be "something",
|
** ZZZ_something. This will define the folder name in the zip file to be "something",
|
||||||
* similarily with online projects
|
** similarily with online projects
|
||||||
lv_message = 'Unexpected package naming(' &&
|
* lv_message = 'Unexpected package naming(' &&
|
||||||
<ls_tdevc>-devclass && ')' ##no_text.
|
* <ls_tdevc>-devclass && ')' ##no_text.
|
||||||
MESSAGE lv_message TYPE 'I'.
|
* MESSAGE lv_message TYPE 'I'.
|
||||||
CONTINUE.
|
* CONTINUE.
|
||||||
ENDIF.
|
* ENDIF.
|
||||||
|
*
|
||||||
lv_path = <ls_tdevc>-devclass+lv_len.
|
* lv_path = <ls_tdevc>-devclass+lv_len.
|
||||||
IF lv_path(1) = '_'.
|
* IF lv_path(1) = '_'.
|
||||||
lv_path = lv_path+1.
|
* lv_path = lv_path+1.
|
||||||
ENDIF.
|
* ENDIF.
|
||||||
TRANSLATE lv_path TO LOWER CASE.
|
* TRANSLATE lv_path TO LOWER CASE.
|
||||||
CONCATENATE iv_path lv_path '/' INTO lv_path.
|
* CONCATENATE iv_path lv_path '/' INTO lv_path.
|
||||||
|
|
||||||
lt_tadir = build( iv_package = <ls_tdevc>-devclass
|
lt_tadir = build( iv_package = <ls_tdevc>-devclass
|
||||||
iv_path = lv_path ).
|
iv_top = iv_top
|
||||||
|
io_dot = io_dot ).
|
||||||
APPEND LINES OF lt_tadir TO rt_tadir.
|
APPEND LINES OF lt_tadir TO rt_tadir.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,8 @@ CLASS lcl_transport IMPLEMENTATION.
|
||||||
METHOD find_top_package.
|
METHOD find_top_package.
|
||||||
* assumption: all objects in transport share a common super package
|
* assumption: all objects in transport share a common super package
|
||||||
|
|
||||||
DATA: lt_obj TYPE lcl_sap_package=>ty_devclass_tt,
|
DATA: lt_obj TYPE lif_sap_package=>ty_devclass_tt,
|
||||||
lt_super TYPE lcl_sap_package=>ty_devclass_tt,
|
lt_super TYPE lif_sap_package=>ty_devclass_tt,
|
||||||
lv_super LIKE LINE OF lt_super,
|
lv_super LIKE LINE OF lt_super,
|
||||||
lv_index TYPE i.
|
lv_index TYPE i.
|
||||||
|
|
||||||
|
@ -79,10 +79,10 @@ CLASS lcl_transport IMPLEMENTATION.
|
||||||
|
|
||||||
READ TABLE it_tadir INDEX 1 ASSIGNING <ls_tadir>.
|
READ TABLE it_tadir INDEX 1 ASSIGNING <ls_tadir>.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
lt_super = lcl_sap_package=>list_superpackages( <ls_tadir>-devclass ).
|
lt_super = lcl_sap_package=>get( <ls_tadir>-devclass )->list_superpackages( ).
|
||||||
|
|
||||||
LOOP AT it_tadir ASSIGNING <ls_tadir>.
|
LOOP AT it_tadir ASSIGNING <ls_tadir>.
|
||||||
lt_obj = lcl_sap_package=>list_superpackages( <ls_tadir>-devclass ).
|
lt_obj = lcl_sap_package=>get( <ls_tadir>-devclass )->list_superpackages( ).
|
||||||
|
|
||||||
* filter out possibilities from lt_super
|
* filter out possibilities from lt_super
|
||||||
LOOP AT lt_super INTO lv_super.
|
LOOP AT lt_super INTO lv_super.
|
||||||
|
|
|
@ -1961,7 +1961,7 @@ CLASS ltcl_file_status2 DEFINITION
|
||||||
INHERITING FROM cl_aunit_assert.
|
INHERITING FROM cl_aunit_assert.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
METHODS check FOR TESTING.
|
METHODS check FOR TESTING RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "ltcl_sap_package
|
ENDCLASS. "ltcl_sap_package
|
||||||
|
|
||||||
|
@ -1986,7 +1986,7 @@ CLASS ltcl_file_status2 IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_file_status=>run_checks( io_log = lo_log
|
lcl_file_status=>run_checks( io_log = lo_log
|
||||||
it_results = lt_results
|
it_results = lt_results
|
||||||
iv_start = '/'
|
io_dot = lcl_dot_abapgit=>build_default( sy-langu )
|
||||||
iv_top = '$Z$' ).
|
iv_top = '$Z$' ).
|
||||||
|
|
||||||
assert_equals( act = lo_log->count( ) exp = 0 ).
|
assert_equals( act = lo_log->count( ) exp = 0 ).
|
||||||
|
@ -2004,7 +2004,7 @@ CLASS ltcl_file_status2 IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_file_status=>run_checks( io_log = lo_log
|
lcl_file_status=>run_checks( io_log = lo_log
|
||||||
it_results = lt_results
|
it_results = lt_results
|
||||||
iv_start = '/'
|
io_dot = lcl_dot_abapgit=>build_default( sy-langu )
|
||||||
iv_top = '$Z$' ).
|
iv_top = '$Z$' ).
|
||||||
|
|
||||||
" This one is not pure - incorrect path also triggers path vs package check
|
" This one is not pure - incorrect path also triggers path vs package check
|
||||||
|
@ -2024,7 +2024,7 @@ CLASS ltcl_file_status2 IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_file_status=>run_checks( io_log = lo_log
|
lcl_file_status=>run_checks( io_log = lo_log
|
||||||
it_results = lt_results
|
it_results = lt_results
|
||||||
iv_start = '/'
|
io_dot = lcl_dot_abapgit=>build_default( sy-langu )
|
||||||
iv_top = '$Z$' ).
|
iv_top = '$Z$' ).
|
||||||
|
|
||||||
assert_equals( act = lo_log->count( ) exp = 1 ).
|
assert_equals( act = lo_log->count( ) exp = 1 ).
|
||||||
|
@ -2043,7 +2043,7 @@ CLASS ltcl_file_status2 IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_file_status=>run_checks( io_log = lo_log
|
lcl_file_status=>run_checks( io_log = lo_log
|
||||||
it_results = lt_results
|
it_results = lt_results
|
||||||
iv_start = '/'
|
io_dot = lcl_dot_abapgit=>build_default( sy-langu )
|
||||||
iv_top = '$Z$' ).
|
iv_top = '$Z$' ).
|
||||||
|
|
||||||
assert_equals( act = lo_log->count( ) exp = 1 ).
|
assert_equals( act = lo_log->count( ) exp = 1 ).
|
||||||
|
@ -2061,7 +2061,7 @@ CLASS ltcl_file_status2 IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_file_status=>run_checks( io_log = lo_log
|
lcl_file_status=>run_checks( io_log = lo_log
|
||||||
it_results = lt_results
|
it_results = lt_results
|
||||||
iv_start = '/'
|
io_dot = lcl_dot_abapgit=>build_default( sy-langu )
|
||||||
iv_top = '$Z$' ).
|
iv_top = '$Z$' ).
|
||||||
|
|
||||||
assert_equals( act = lo_log->count( )
|
assert_equals( act = lo_log->count( )
|
||||||
|
@ -2242,4 +2242,4 @@ CLASS ltcl_persistence_settings IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
INCLUDE ZABAPGIT_UNIT_TEST_CLAS_INTF.
|
INCLUDE zabapgit_unit_test_clas_intf.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user