mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Merge branch 'main' into newObjectTypeCOTA
This commit is contained in:
commit
bc9bb8f983
|
@ -8,6 +8,27 @@ Legend
|
|||
+ : added
|
||||
- : removed
|
||||
|
||||
2025-01-01 v1.131.0
|
||||
-------------------
|
||||
|
||||
! Remove need to `parallel_generators` server group (#7119)
|
||||
+ VIEW: save `tddat` entries to transport (#7042)
|
||||
+ Support for HTTP Destination (#7100)
|
||||
+ Enhance logging with message id and number (#7111)
|
||||
* Fix language conversion for language A (#7076)
|
||||
* longtexts: workaround strange object names dump (#7077)
|
||||
* SRVB: Clear fields and fix deserialize order (#7085)
|
||||
* MSAG: Fix error handling during deletion (#7093)
|
||||
* Fix error handling in exception viewer (#7095)
|
||||
* Fix dark theme CSS whitespace (#7104)
|
||||
* MSAG: Fix deletion of message longtexts (#7109)
|
||||
* Fix RFC error handling (#7102)
|
||||
* IDOC/IEXT: Fix deserialize in background (#7113)
|
||||
* USCA: Fix missing transport entry (#7110)
|
||||
* FUGS: Fix activation error (#7115)
|
||||
* Limit number of GUI sessions (#7080)
|
||||
* Fix dump when converting `xstring` to `bintab` (#7120)
|
||||
|
||||
2024-11-04 v1.130.0
|
||||
-------------------
|
||||
|
||||
|
|
4
deps/tcdrs.tabl.xml
vendored
4
deps/tcdrs.tabl.xml
vendored
|
@ -14,9 +14,9 @@
|
|||
<FIELDNAME>TABNAME</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000002</INTLEN>
|
||||
<INTLEN>000060</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000001</LENG>
|
||||
<LENG>000030</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
</DD03P_TABLE>
|
||||
|
|
14
package.json
14
package.json
|
@ -23,14 +23,14 @@
|
|||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@abaplint/cli": "^2.113.31",
|
||||
"@abaplint/cli": "^2.113.82",
|
||||
"@abaplint/database-sqlite": "^2.10.20",
|
||||
"@abaplint/runtime": "^2.10.20",
|
||||
"express": "^4.21.1",
|
||||
"@abaplint/transpiler-cli": "^2.10.20",
|
||||
"globals": "^15.11.0",
|
||||
"@abaplint/runtime": "^2.10.23",
|
||||
"express": "^4.21.2",
|
||||
"@abaplint/transpiler-cli": "^2.10.23",
|
||||
"globals": "^15.13.0",
|
||||
"abapmerge": "^0.16.6",
|
||||
"c8": "^10.1.2",
|
||||
"eslint": "^9.13.0"
|
||||
"c8": "^10.1.3",
|
||||
"eslint": "^9.17.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -178,7 +178,7 @@ CLASS zcl_abapgit_apack_migration IMPLEMENTATION.
|
|||
component_error = 4
|
||||
no_access = 5
|
||||
other = 6
|
||||
OTHERS = 7.
|
||||
OTHERS = 7 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE'
|
||||
EXPORTING
|
||||
|
|
|
@ -623,7 +623,7 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
ev_object = ls_list-object
|
||||
ev_obj_name = ls_list-obj_name ).
|
||||
INSERT ls_list INTO TABLE rt_list.
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDCASE.
|
||||
ENDLOOP.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_DEFAULT_TRANSPORT</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ZIF_ABAPGIT_DEFAULT_TRANSPORT</DESCRIPT>
|
||||
<DESCRIPT>abapGit - Default Transport</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
|
|
|
@ -49,7 +49,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_DATA_UTILS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_data_utils IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD build_config_filename.
|
||||
|
@ -196,7 +196,7 @@ CLASS ZCL_ABAPGIT_DATA_UTILS IMPLEMENTATION.
|
|||
db_not_exists = 3
|
||||
no_permission = 4
|
||||
no_change_allowed = 5
|
||||
table_is_gtt = 6
|
||||
* table_is_gtt = 6 " not in lower releases
|
||||
OTHERS = 7.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Table { is_item-obj_name } cannot be displayed| ).
|
||||
|
|
|
@ -26,6 +26,8 @@ CLASS lcl_environment IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~get_basis_release.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~get_available_user_sessions.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~get_system_language_filter.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~is_merged.
|
||||
|
@ -40,6 +42,8 @@ CLASS lcl_environment IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~init_parallel_processing.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~check_parallel_processing.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -77,10 +81,12 @@ CLASS ltcl_abap_language_version DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
|||
PRIVATE SECTION.
|
||||
" Cloud package hardcoded in cl_abap_language_version
|
||||
CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'.
|
||||
CONSTANTS c_language_cfg TYPE seoclsname VALUE 'CL_ABAP_LANGUAGE_VERSION_CFG'.
|
||||
|
||||
DATA:
|
||||
mt_versions TYPE string_table,
|
||||
mv_has_cloud_package TYPE abap_bool,
|
||||
mv_has_language_cfg TYPE abap_bool,
|
||||
mo_environment TYPE REF TO lcl_environment,
|
||||
mi_persistency TYPE REF TO zif_abapgit_persist_settings,
|
||||
mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit,
|
||||
|
@ -364,9 +370,11 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
|||
" Assume on-prem (no cloud)
|
||||
set_environment( abap_false ).
|
||||
|
||||
IF mv_has_language_cfg = abap_true.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
||||
exp = iv_standard ).
|
||||
ENDIF.
|
||||
|
||||
IF mv_has_cloud_package = abap_true.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -381,9 +389,11 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
|||
" Assume cloud platform
|
||||
set_environment( abap_true ).
|
||||
|
||||
IF mv_has_language_cfg = abap_true.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
||||
exp = iv_standard ).
|
||||
ENDIF.
|
||||
|
||||
IF mv_has_cloud_package = abap_true.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -401,6 +411,19 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
|||
METHOD is_import_allowed.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
DATA ls_clskey TYPE seoclskey.
|
||||
|
||||
ls_clskey-clsname = c_language_cfg.
|
||||
|
||||
" Tests using ABAP language version "standard" only work if the required
|
||||
" SAP class is available. In older releases, all packages will have
|
||||
" ABAP language version "undefined" and are handled like a new package
|
||||
CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK'
|
||||
EXPORTING
|
||||
clskey = ls_clskey
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
mv_has_language_cfg = boolc( sy-subrc = 0 ).
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
|
|
211
src/env/zcl_abapgit_environment.clas.abap
vendored
211
src/env/zcl_abapgit_environment.clas.abap
vendored
|
@ -2,11 +2,11 @@ CLASS zcl_abapgit_environment DEFINITION
|
|||
PUBLIC
|
||||
FINAL
|
||||
CREATE PRIVATE
|
||||
GLOBAL FRIENDS zcl_abapgit_factory .
|
||||
GLOBAL FRIENDS zcl_abapgit_factory.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES zif_abapgit_environment .
|
||||
INTERFACES zif_abapgit_environment.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
|
@ -16,7 +16,7 @@ CLASS zcl_abapgit_environment DEFINITION
|
|||
|
||||
METHODS is_system_changes_allowed
|
||||
RETURNING
|
||||
VALUE(rv_result) TYPE abap_bool .
|
||||
VALUE(rv_result) TYPE abap_bool.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -76,11 +76,74 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~check_parallel_processing.
|
||||
|
||||
" If check fails, see transactions RZ12
|
||||
DATA:
|
||||
lt_setup TYPE STANDARD TABLE OF rzllitab,
|
||||
ls_setup LIKE LINE OF lt_setup,
|
||||
lt_erfc_setup TYPE STANDARD TABLE OF rzlliclass,
|
||||
lt_instances TYPE STANDARD TABLE OF msxxlist WITH DEFAULT KEY.
|
||||
|
||||
" Check if server group for parallel processing exists
|
||||
CALL FUNCTION 'SMLG_GET_SETUP'
|
||||
EXPORTING
|
||||
grouptype = 'S'
|
||||
TABLES
|
||||
setup = lt_setup
|
||||
erfc_setup = lt_erfc_setup
|
||||
EXCEPTIONS
|
||||
foreign_lock = 1
|
||||
system_failure = 2
|
||||
invalid_group_type = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_setup INTO ls_setup WITH KEY classname = iv_group.
|
||||
IF sy-subrc = 0 AND ls_setup-applserver IS NOT INITIAL.
|
||||
|
||||
" Check if assigned server instance exists
|
||||
CALL FUNCTION 'TH_SERVER_LIST'
|
||||
TABLES
|
||||
list = lt_instances.
|
||||
|
||||
READ TABLE lt_instances TRANSPORTING NO FIELDS WITH KEY name = ls_setup-applserver.
|
||||
IF sy-subrc = 0.
|
||||
rv_checked = abap_true.
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~compare_with_inactive.
|
||||
rv_result = zif_abapgit_environment~is_sap_cloud_platform( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~get_available_user_sessions.
|
||||
|
||||
DATA:
|
||||
lv_act_sessions TYPE i,
|
||||
lv_max_sessions TYPE i,
|
||||
lv_subrc TYPE sy-subrc.
|
||||
|
||||
CALL FUNCTION 'TH_USER_INFO'
|
||||
IMPORTING
|
||||
act_sessions = lv_act_sessions
|
||||
max_sessions = lv_max_sessions
|
||||
rc = lv_subrc.
|
||||
|
||||
IF lv_subrc = 0.
|
||||
rv_sessions = lv_max_sessions - lv_act_sessions.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~get_basis_release.
|
||||
|
||||
SELECT SINGLE release extrelease FROM cvers INTO (rs_result-release, rs_result-sp)
|
||||
|
@ -89,6 +152,78 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~get_system_language_filter.
|
||||
DATA lv_translation_detective_lang TYPE spras.
|
||||
DATA lv_pseudo_translation_language TYPE spras.
|
||||
FIELD-SYMBOLS <ls_system_language_filter> LIKE LINE OF rt_system_language_filter.
|
||||
|
||||
" Translation Object Detective
|
||||
" https://help.sap.com/docs/ABAP_PLATFORM_NEW/ceb25152cb0d4adba664cebea2bf4670/88a3d3cbccf64601975acabaccdfde45.html
|
||||
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
|
||||
EXPORTING
|
||||
input = '1Q'
|
||||
IMPORTING
|
||||
output = lv_translation_detective_lang
|
||||
EXCEPTIONS
|
||||
unknown_language = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 1.
|
||||
" The language for Translation Object Detective was not setup
|
||||
ENDIF.
|
||||
IF NOT lv_translation_detective_lang IS INITIAL.
|
||||
APPEND INITIAL LINE TO rt_system_language_filter ASSIGNING <ls_system_language_filter>.
|
||||
<ls_system_language_filter>-sign = 'E'.
|
||||
<ls_system_language_filter>-option = 'EQ'.
|
||||
<ls_system_language_filter>-low = lv_translation_detective_lang.
|
||||
ENDIF.
|
||||
" 1943470 - Using technical language key 2Q to create pseudo-translations of ABAP developments
|
||||
" https://launchpad.support.sap.com/#/notes/1943470
|
||||
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
|
||||
EXPORTING
|
||||
input = '2Q'
|
||||
IMPORTING
|
||||
output = lv_pseudo_translation_language
|
||||
EXCEPTIONS
|
||||
unknown_language = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 1.
|
||||
" The language for Pseudo Translation was not setup
|
||||
ENDIF.
|
||||
IF NOT lv_pseudo_translation_language IS INITIAL.
|
||||
APPEND INITIAL LINE TO rt_system_language_filter ASSIGNING <ls_system_language_filter>.
|
||||
<ls_system_language_filter>-sign = 'E'.
|
||||
<ls_system_language_filter>-option = 'EQ'.
|
||||
<ls_system_language_filter>-low = lv_pseudo_translation_language.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~init_parallel_processing.
|
||||
|
||||
DATA: lv_group TYPE rzlli_apcl.
|
||||
|
||||
lv_group = iv_group.
|
||||
|
||||
" SPBT_INITIALIZE gives error PBT_ENV_ALREADY_INITIALIZED if called
|
||||
" multiple times in same session
|
||||
CALL FUNCTION 'SPBT_INITIALIZE'
|
||||
EXPORTING
|
||||
group_name = lv_group
|
||||
IMPORTING
|
||||
free_pbt_wps = rv_free_work_processes
|
||||
EXCEPTIONS
|
||||
invalid_group_name = 1
|
||||
internal_error = 2
|
||||
pbt_env_already_initialized = 3
|
||||
currently_no_resources_avail = 4
|
||||
no_pbt_resources_found = 5
|
||||
cant_init_different_pbt_groups = 6
|
||||
OTHERS = 7 ##FM_SUBRC_OK.
|
||||
" If SPBT_INITIALIZE fails, check transactions RZ12, SM50, SM21, SARFC
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_environment~is_merged.
|
||||
DATA lr_marker TYPE REF TO data ##NEEDED.
|
||||
|
||||
|
@ -155,50 +290,6 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~get_system_language_filter.
|
||||
DATA lv_translation_detective_lang TYPE spras.
|
||||
DATA lv_pseudo_translation_language TYPE spras.
|
||||
FIELD-SYMBOLS <ls_system_language_filter> LIKE LINE OF rt_system_language_filter.
|
||||
|
||||
" Translation Object Detective
|
||||
" https://help.sap.com/docs/ABAP_PLATFORM_NEW/ceb25152cb0d4adba664cebea2bf4670/88a3d3cbccf64601975acabaccdfde45.html
|
||||
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
|
||||
EXPORTING
|
||||
input = '1Q'
|
||||
IMPORTING
|
||||
output = lv_translation_detective_lang
|
||||
EXCEPTIONS
|
||||
unknown_language = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 1.
|
||||
" The language for Translation Object Detective was not setup
|
||||
ENDIF.
|
||||
IF NOT lv_translation_detective_lang IS INITIAL.
|
||||
APPEND INITIAL LINE TO rt_system_language_filter ASSIGNING <ls_system_language_filter>.
|
||||
<ls_system_language_filter>-sign = 'E'.
|
||||
<ls_system_language_filter>-option = 'EQ'.
|
||||
<ls_system_language_filter>-low = lv_translation_detective_lang.
|
||||
ENDIF.
|
||||
" 1943470 - Using technical language key 2Q to create pseudo-translations of ABAP developments
|
||||
" https://launchpad.support.sap.com/#/notes/1943470
|
||||
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
|
||||
EXPORTING
|
||||
input = '2Q'
|
||||
IMPORTING
|
||||
output = lv_pseudo_translation_language
|
||||
EXCEPTIONS
|
||||
unknown_language = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 1.
|
||||
" The language for Pseudo Translation was not setup
|
||||
ENDIF.
|
||||
IF NOT lv_pseudo_translation_language IS INITIAL.
|
||||
APPEND INITIAL LINE TO rt_system_language_filter ASSIGNING <ls_system_language_filter>.
|
||||
<ls_system_language_filter>-sign = 'E'.
|
||||
<ls_system_language_filter>-option = 'EQ'.
|
||||
<ls_system_language_filter>-low = lv_pseudo_translation_language.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~is_variant_maintenance.
|
||||
|
||||
|
@ -212,30 +303,4 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
|||
rv_is_variant_maintenance = boolc( lines( lt_variscreens ) > 0 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~init_parallel_processing.
|
||||
|
||||
DATA: lv_group TYPE rzlli_apcl.
|
||||
|
||||
lv_group = iv_group.
|
||||
|
||||
" SPBT_INITIALIZE gives error PBT_ENV_ALREADY_INITIALIZED if called
|
||||
" multiple times in same session
|
||||
CALL FUNCTION 'SPBT_INITIALIZE'
|
||||
EXPORTING
|
||||
group_name = lv_group
|
||||
IMPORTING
|
||||
free_pbt_wps = rv_free_work_processes
|
||||
EXCEPTIONS
|
||||
invalid_group_name = 1
|
||||
internal_error = 2
|
||||
pbt_env_already_initialized = 3
|
||||
currently_no_resources_avail = 4
|
||||
no_pbt_resources_found = 5
|
||||
cant_init_different_pbt_groups = 6
|
||||
OTHERS = 7.
|
||||
" If SPBT_INITIALIZE fails, check transactions RZ12, SM50, SM21, SARFC
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
8
src/env/zif_abapgit_environment.intf.abap
vendored
8
src/env/zif_abapgit_environment.intf.abap
vendored
|
@ -39,5 +39,13 @@ INTERFACE zif_abapgit_environment
|
|||
iv_group TYPE clike
|
||||
RETURNING
|
||||
VALUE(rv_free_work_processes) TYPE i.
|
||||
METHODS check_parallel_processing
|
||||
IMPORTING
|
||||
iv_group TYPE clike
|
||||
RETURNING
|
||||
VALUE(rv_checked) TYPE abap_bool.
|
||||
METHODS get_available_user_sessions
|
||||
RETURNING
|
||||
VALUE(rv_sessions) TYPE i.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -7,7 +7,7 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
clone_url TYPE string,
|
||||
END OF ty_ci_repo.
|
||||
TYPES:
|
||||
ty_ci_repos TYPE TABLE OF ty_ci_repo.
|
||||
ty_ci_repos TYPE STANDARD TABLE OF ty_ci_repo WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
ty_object_types TYPE STANDARD TABLE OF tadir-object WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
|
|
|
@ -50,7 +50,7 @@ CLASS zcl_abapgit_pr_enumerator IMPLEMENTATION.
|
|||
mv_repo_url = to_lower( iv_url ).
|
||||
TRY.
|
||||
mi_enum_provider = create_provider( mv_repo_url ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -124,7 +124,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_WHERE_USED_TOOLS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_where_used_tools IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD build_package_scope.
|
||||
|
@ -311,7 +311,7 @@ CLASS ZCL_ABAPGIT_WHERE_USED_TOOLS IMPLEMENTATION.
|
|||
not_enough_input = 1
|
||||
no_function_pool = 2
|
||||
delimiter_wrong_position = 3
|
||||
OTHERS = 4.
|
||||
OTHERS = 4 ##FM_SUBRC_OK.
|
||||
|
||||
IF lv_area IS INITIAL.
|
||||
SELECT SINGLE master FROM d010inc INTO lv_program
|
||||
|
@ -325,7 +325,7 @@ CLASS ZCL_ABAPGIT_WHERE_USED_TOOLS IMPLEMENTATION.
|
|||
not_enough_input = 1
|
||||
no_function_pool = 2
|
||||
delimiter_wrong_position = 3
|
||||
OTHERS = 4.
|
||||
OTHERS = 4 ##FM_SUBRC_OK.
|
||||
ENDIF.
|
||||
|
||||
IF lv_area IS NOT INITIAL.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_WHERE_USED_TOOLS</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit where used utilities</DESCRIPT>
|
||||
<DESCRIPT>abapGit - Where-used Utilities</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
|
|
|
@ -18,7 +18,7 @@ CLASS zcl_abapgit_json_handler DEFINITION
|
|||
mappings TYPE ty_json_abap_mappings,
|
||||
END OF ty_enum_mapping .
|
||||
TYPES:
|
||||
ty_enum_mappings TYPE TABLE OF ty_enum_mapping WITH DEFAULT KEY .
|
||||
ty_enum_mappings TYPE STANDARD TABLE OF ty_enum_mapping WITH DEFAULT KEY .
|
||||
TYPES:
|
||||
BEGIN OF ty_path_value_pair,
|
||||
path TYPE string,
|
||||
|
|
|
@ -61,7 +61,7 @@ CLASS zcl_abapgit_dependencies IMPLEMENTATION.
|
|||
INSERT ls_ddls_name INTO TABLE lt_ddls_name.
|
||||
|
||||
PERFORM ('DDLS_GET_DEP') IN PROGRAM ('RADMASDL')
|
||||
TABLES lt_ddls_name rt_dependency.
|
||||
TABLES lt_ddls_name rt_dependency ##PERF_NO_FORM.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -119,7 +119,7 @@ CLASS zcl_abapgit_dependencies IMPLEMENTATION.
|
|||
" AUTH after DCLS
|
||||
<ls_tadir>-korrnum = '715000'.
|
||||
WHEN 'SUSH'.
|
||||
" SUSH after SUSC
|
||||
" SUSH after SUSC and SRVB
|
||||
<ls_tadir>-korrnum = '712000'.
|
||||
WHEN 'SUSC'.
|
||||
" SUSC after SUSO
|
||||
|
@ -130,6 +130,14 @@ CLASS zcl_abapgit_dependencies IMPLEMENTATION.
|
|||
WHEN 'DCLS'.
|
||||
" AUTH and SUSO after DCLS
|
||||
<ls_tadir>-korrnum = '705000'.
|
||||
WHEN 'G4BA' OR 'G4BS' OR 'IWMO' OR 'IWSV' OR 'IWVB'.
|
||||
" after SRVB
|
||||
<ls_tadir>-korrnum = '610000'.
|
||||
WHEN 'SRVB'.
|
||||
" after SRVD
|
||||
<ls_tadir>-korrnum = '600500'.
|
||||
WHEN 'SRVD'.
|
||||
<ls_tadir>-korrnum = '600000'.
|
||||
WHEN 'IASP'.
|
||||
<ls_tadir>-korrnum = '552000'.
|
||||
WHEN 'IARP'.
|
||||
|
|
|
@ -214,6 +214,9 @@ CLASS zcl_abapgit_file_deserialize IMPLEMENTATION.
|
|||
DELETE lt_requires WHERE obj_type <> 'IASP'
|
||||
AND obj_type <> 'PROG'
|
||||
AND obj_type <> 'IARP'.
|
||||
WHEN 'IDOC' OR 'IEXT'.
|
||||
lt_requires = lt_items.
|
||||
DELETE lt_requires WHERE obj_type <> 'TABL'.
|
||||
WHEN 'DCLS'.
|
||||
lt_requires = lt_items.
|
||||
DELETE lt_requires WHERE obj_type <> 'DDLS'.
|
||||
|
@ -245,6 +248,15 @@ CLASS zcl_abapgit_file_deserialize IMPLEMENTATION.
|
|||
WHEN 'ENSC'.
|
||||
lt_requires = lt_items.
|
||||
DELETE lt_requires WHERE obj_type <> 'ENHS'.
|
||||
WHEN 'IWMO' OR 'IWSV' OR 'IWVB'.
|
||||
lt_requires = lt_items.
|
||||
DELETE lt_requires WHERE obj_type <> 'SRVB'.
|
||||
WHEN 'SUSH'.
|
||||
lt_requires = lt_items.
|
||||
DELETE lt_requires WHERE obj_type <> 'SRVB' AND obj_type <> 'HTTP'.
|
||||
WHEN 'SRVB'.
|
||||
lt_requires = lt_items.
|
||||
DELETE lt_requires WHERE obj_type <> 'SRVD'.
|
||||
ENDCASE.
|
||||
* TODO: END extract to object handler method
|
||||
|
||||
|
|
|
@ -310,7 +310,7 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
|
|||
excecution_error = 1
|
||||
cancelled = 2
|
||||
insert_into_corr_error = 3
|
||||
OTHERS = 4 ##SUBRC_OK.
|
||||
OTHERS = 4 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||
EXPORTING
|
||||
|
@ -324,7 +324,7 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
|
|||
excecution_error = 1
|
||||
cancelled = 2
|
||||
insert_into_corr_error = 3
|
||||
OTHERS = 4 ##SUBRC_OK.
|
||||
OTHERS = 4 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
CASE sy-subrc.
|
||||
WHEN 1 OR 3 OR 4.
|
||||
|
@ -398,9 +398,18 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
|
|||
WHERE type = <ls_message>-show_req->object_type.
|
||||
ENDIF.
|
||||
LOOP AT <ls_message>-mtext ASSIGNING <lv_msg>.
|
||||
IF sy-tabix = 1.
|
||||
ii_log->add(
|
||||
iv_type = 'E'
|
||||
iv_msg = <lv_msg>
|
||||
iv_class = <ls_message>-message-msgid
|
||||
iv_number = <ls_message>-message-msgno
|
||||
is_item = ls_item ).
|
||||
ELSE.
|
||||
ii_log->add_error(
|
||||
iv_msg = <lv_msg>
|
||||
is_item = ls_item ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -440,7 +449,9 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
|
|||
|
||||
LOOP AT lt_lines ASSIGNING <ls_line>.
|
||||
ii_log->add( iv_msg = <ls_line>-line
|
||||
iv_type = <ls_line>-severity ).
|
||||
iv_type = <ls_line>-severity
|
||||
iv_class = <ls_line>-class
|
||||
iv_number = |{ <ls_line>-number }| ).
|
||||
ENDLOOP.
|
||||
|
||||
ii_log->add_info( |View complete activation log in program RSPUTPRT (type D, log name { iv_logname })| ).
|
||||
|
|
|
@ -99,6 +99,11 @@ CLASS zcl_abapgit_serialize DEFINITION
|
|||
VALUE(ct_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS determine_rfc_server_group
|
||||
RETURNING
|
||||
VALUE(rv_group) TYPE rzlli_apcl
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS determine_max_processes
|
||||
IMPORTING
|
||||
!iv_force_sequential TYPE abap_bool DEFAULT abap_false
|
||||
|
@ -255,11 +260,7 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
|
||||
METHOD constructor.
|
||||
|
||||
DATA li_exit TYPE REF TO zif_abapgit_exit.
|
||||
|
||||
mv_group = 'parallel_generators'.
|
||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||
li_exit->change_rfc_server_group( CHANGING cv_group = mv_group ).
|
||||
mv_group = determine_rfc_server_group( ).
|
||||
|
||||
mo_dot_abapgit = io_dot_abapgit.
|
||||
ms_local_settings = is_local_settings.
|
||||
|
@ -280,6 +281,7 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
|
||||
METHOD determine_max_processes.
|
||||
DATA: li_exit TYPE REF TO zif_abapgit_exit.
|
||||
DATA lv_available_sessions TYPE i.
|
||||
|
||||
IF iv_force_sequential = abap_true.
|
||||
rv_processes = 1.
|
||||
|
@ -319,6 +321,40 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
|
||||
ASSERT rv_processes >= 1. " check exit above
|
||||
|
||||
" Avoid going over the maximum available user sessions
|
||||
IF sy-batch IS INITIAL.
|
||||
lv_available_sessions = zcl_abapgit_factory=>get_environment( )->get_available_user_sessions( ).
|
||||
|
||||
IF rv_processes > lv_available_sessions AND lv_available_sessions <> 0.
|
||||
rv_processes = lv_available_sessions.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ASSERT rv_processes >= 1.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD determine_rfc_server_group.
|
||||
|
||||
DATA:
|
||||
li_exit TYPE REF TO zif_abapgit_exit,
|
||||
lv_exists TYPE abap_bool.
|
||||
|
||||
" According to SAP Note 3215918 it's recommended NOT to use this group anymore.
|
||||
" However, we keep it for compatibility. If it does not exist, we switch to the
|
||||
" recommended DEFAULT behaviour.
|
||||
rv_group = 'parallel_generators'.
|
||||
|
||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||
li_exit->change_rfc_server_group( CHANGING cv_group = rv_group ).
|
||||
|
||||
" Check if RFC server group exists and fallback to the default
|
||||
lv_exists = zcl_abapgit_factory=>get_environment( )->check_parallel_processing( rv_group ).
|
||||
IF lv_exists = abap_false.
|
||||
rv_group = ''.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -432,7 +468,7 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
METHOD filter_unsupported_objects.
|
||||
|
||||
DATA: ls_unsupported_count TYPE ty_unsupported_count,
|
||||
lt_supported_types TYPE zcl_abapgit_objects=>ty_types_tt,
|
||||
lt_supported_types TYPE zif_abapgit_objects=>ty_types_tt,
|
||||
lt_unsupported_count TYPE ty_unsupported_count_tt.
|
||||
|
||||
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF ct_tadir,
|
||||
|
@ -483,7 +519,6 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
|
||||
rv_result = boolc( zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_false
|
||||
AND zcl_abapgit_persist_factory=>get_settings( )->read( )->get_parallel_proc_disabled( ) = abap_false
|
||||
AND mv_group IS NOT INITIAL
|
||||
" The function module below should always exist here as is_merged evaluated to false above.
|
||||
" It does however not exist in the transpiled version which then causes unit tests to fail.
|
||||
" Therefore the check needs to stay.
|
||||
|
@ -545,6 +580,7 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
|
||||
DO.
|
||||
lv_task = |{ iv_task }-{ sy-index }|.
|
||||
" An initial server group is handled like DEFAULT meaning all instances are used
|
||||
CALL FUNCTION 'Z_ABAPGIT_SERIALIZE_PARALLEL'
|
||||
STARTING NEW TASK lv_task
|
||||
DESTINATION IN GROUP mv_group
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
CLASS ltcl_determine_max_processes DEFINITION DEFERRED.
|
||||
CLASS zcl_abapgit_serialize DEFINITION LOCAL FRIENDS ltcl_determine_max_processes.
|
||||
CLASS ltcl_determine_server_group DEFINITION DEFERRED.
|
||||
CLASS zcl_abapgit_serialize DEFINITION LOCAL FRIENDS ltcl_determine_max_processes ltcl_determine_server_group.
|
||||
|
||||
CLASS ltd_settings DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
|
@ -67,15 +68,23 @@ CLASS ltd_environment DEFINITION FINAL FOR TESTING
|
|||
zif_abapgit_environment.
|
||||
|
||||
METHODS:
|
||||
set_server_group
|
||||
IMPORTING iv_group TYPE rzlli_apcl,
|
||||
|
||||
set_is_merged
|
||||
IMPORTING iv_is_merged TYPE abap_bool,
|
||||
|
||||
set_available_sessions
|
||||
IMPORTING iv_available_sessions TYPE i,
|
||||
|
||||
set_free_work_processes
|
||||
IMPORTING iv_free_work_processes TYPE i.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mv_group TYPE rzlli_apcl,
|
||||
mv_is_merged TYPE abap_bool,
|
||||
mv_available_sessions TYPE i,
|
||||
mv_free_work_processes TYPE i.
|
||||
|
||||
ENDCLASS.
|
||||
|
@ -89,6 +98,10 @@ CLASS ltd_environment IMPLEMENTATION.
|
|||
METHOD zif_abapgit_environment~get_basis_release.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~get_available_user_sessions.
|
||||
rv_sessions = mv_available_sessions.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~get_system_language_filter.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -115,12 +128,25 @@ CLASS ltd_environment IMPLEMENTATION.
|
|||
rv_free_work_processes = mv_free_work_processes.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_is_merged.
|
||||
me->mv_is_merged = iv_is_merged.
|
||||
METHOD zif_abapgit_environment~check_parallel_processing.
|
||||
rv_checked = boolc( iv_group = mv_group ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_server_group.
|
||||
mv_group = iv_group.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_is_merged.
|
||||
mv_is_merged = iv_is_merged.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_available_sessions.
|
||||
mv_available_sessions = iv_available_sessions.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_free_work_processes.
|
||||
me->mv_free_work_processes = iv_free_work_processes.
|
||||
mv_free_work_processes = iv_free_work_processes.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
@ -134,12 +160,16 @@ CLASS ltd_exit DEFINITION FINAL FOR TESTING
|
|||
zif_abapgit_exit.
|
||||
|
||||
METHODS:
|
||||
set_server_group
|
||||
IMPORTING iv_group TYPE rzlli_apcl,
|
||||
|
||||
set_max_parallel_processes
|
||||
IMPORTING
|
||||
iv_max_parallel_processes TYPE i.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mv_group TYPE rzlli_apcl,
|
||||
mv_max_parallel_processes TYPE i.
|
||||
|
||||
ENDCLASS.
|
||||
|
@ -175,6 +205,9 @@ CLASS ltd_exit IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_exit~change_rfc_server_group.
|
||||
IF mv_group IS NOT INITIAL.
|
||||
cv_group = mv_group.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_exit~change_supported_data_objects.
|
||||
|
@ -228,6 +261,10 @@ CLASS ltd_exit IMPLEMENTATION.
|
|||
METHOD zif_abapgit_exit~wall_message_repo.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_server_group.
|
||||
mv_group = iv_group.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_max_parallel_processes.
|
||||
mv_max_parallel_processes = iv_max_parallel_processes.
|
||||
ENDMETHOD.
|
||||
|
@ -235,6 +272,110 @@ CLASS ltd_exit IMPLEMENTATION.
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_determine_server_group DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mo_cut TYPE REF TO zcl_abapgit_serialize,
|
||||
mo_environment_double TYPE REF TO ltd_environment,
|
||||
mo_exit TYPE REF TO ltd_exit,
|
||||
mv_act_group TYPE rzlli_apcl.
|
||||
|
||||
METHODS:
|
||||
setup,
|
||||
|
||||
default_server_group FOR TESTING RAISING zcx_abapgit_exception,
|
||||
legacy_server_group FOR TESTING RAISING zcx_abapgit_exception,
|
||||
exit_server_group FOR TESTING RAISING zcx_abapgit_exception,
|
||||
exit_not_exist_server_group FOR TESTING RAISING zcx_abapgit_exception,
|
||||
|
||||
teardown,
|
||||
|
||||
given_db_server_group
|
||||
IMPORTING
|
||||
iv_group TYPE rzlli_apcl,
|
||||
|
||||
given_exit_chg_server_group
|
||||
IMPORTING
|
||||
iv_group TYPE rzlli_apcl,
|
||||
|
||||
when_determine_server_group
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
|
||||
then_we_shd_have_server_group
|
||||
IMPORTING
|
||||
iv_exp_group TYPE rzlli_apcl.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_determine_server_group IMPLEMENTATION.
|
||||
|
||||
METHOD setup.
|
||||
|
||||
CREATE OBJECT mo_environment_double.
|
||||
zcl_abapgit_injector=>set_environment( mo_environment_double ).
|
||||
|
||||
CREATE OBJECT mo_exit.
|
||||
zcl_abapgit_injector=>set_exit( mo_exit ).
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT mo_cut.
|
||||
CATCH zcx_abapgit_exception.
|
||||
cl_abap_unit_assert=>fail( 'Error creating serializer' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD teardown.
|
||||
CLEAR: mo_cut->mv_group.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD default_server_group.
|
||||
when_determine_server_group( ).
|
||||
then_we_shd_have_server_group( '' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD legacy_server_group.
|
||||
given_db_server_group( 'parallel_generators' ).
|
||||
when_determine_server_group( ).
|
||||
then_we_shd_have_server_group( 'parallel_generators' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD exit_server_group.
|
||||
given_db_server_group( 'my_group' ).
|
||||
given_exit_chg_server_group( 'my_group' ).
|
||||
when_determine_server_group( ).
|
||||
then_we_shd_have_server_group( 'my_group' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD exit_not_exist_server_group.
|
||||
given_exit_chg_server_group( 'my_servers' ).
|
||||
when_determine_server_group( ).
|
||||
then_we_shd_have_server_group( '' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD given_db_server_group.
|
||||
mo_environment_double->set_server_group( iv_group ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD given_exit_chg_server_group.
|
||||
mo_exit->set_server_group( iv_group ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD when_determine_server_group.
|
||||
mv_act_group = mo_cut->determine_rfc_server_group( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD then_we_shd_have_server_group.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mv_act_group
|
||||
exp = iv_exp_group ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_determine_max_processes DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
@ -255,6 +396,7 @@ CLASS ltcl_determine_max_processes DEFINITION FOR TESTING DURATION SHORT RISK LE
|
|||
determine_max_processes_no_pp FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_merged FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_exit FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_capped FOR TESTING RAISING zcx_abapgit_exception,
|
||||
force FOR TESTING RAISING zcx_abapgit_exception,
|
||||
|
||||
teardown,
|
||||
|
@ -267,6 +409,10 @@ CLASS ltcl_determine_max_processes DEFINITION FOR TESTING DURATION SHORT RISK LE
|
|||
IMPORTING
|
||||
iv_is_merged TYPE abap_bool,
|
||||
|
||||
given_available_sessions
|
||||
IMPORTING
|
||||
iv_available_sessions TYPE i,
|
||||
|
||||
given_free_work_processes
|
||||
IMPORTING
|
||||
iv_free_work_processes TYPE i,
|
||||
|
@ -390,6 +536,19 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD determine_max_processes_capped.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
given_is_merged( abap_false ).
|
||||
given_free_work_processes( 50 ). " big system
|
||||
given_available_sessions( 10 ). " but user session is capped
|
||||
|
||||
when_determine_max_processes( ).
|
||||
|
||||
then_we_shd_have_n_processes( 10 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD force.
|
||||
|
||||
|
@ -413,6 +572,12 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD given_available_sessions.
|
||||
|
||||
mo_environment_double->set_available_sessions( iv_available_sessions ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD given_free_work_processes.
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ CLASS zcl_abapgit_ecatt_helper IMPLEMENTATION.
|
|||
lv_text = lx_ecatt->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
" note, exception cx_ecatt_ui_attachment doesn't exist in 702
|
||||
CATCH cx_ecatt.
|
||||
CATCH cx_ecatt ##NO_HANDLER.
|
||||
"will never be raised from download, when called with mv_generate_xml_no_download = 'X'.
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_ECATT_SP_DOWNLOAD IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_ecatt_sp_download IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD download.
|
||||
|
@ -93,7 +93,7 @@ CLASS ZCL_ABAPGIT_ECATT_SP_DOWNLOAD IMPLEMENTATION.
|
|||
CALL METHOD lo_ecatt_sp->('GET_SP_ATTRIBUTES')
|
||||
IMPORTING
|
||||
e_sp_xml = lv_sp_xml.
|
||||
CATCH cx_ecatt_apl.
|
||||
CATCH cx_ecatt_apl ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
CALL FUNCTION 'SDIXML_XML_TO_DOM'
|
||||
|
|
|
@ -27,7 +27,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_ECATT_SP_UPLOAD IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_ecatt_sp_upload IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD get_ecatt_sp.
|
||||
|
@ -129,7 +129,6 @@ CLASS ZCL_ABAPGIT_ECATT_SP_UPLOAD IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
ASSIGN ecatt_object TO <lg_ecatt_sp>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
lo_ecatt_sp = <lg_ecatt_sp>.
|
||||
|
||||
|
@ -162,13 +161,12 @@ CLASS ZCL_ABAPGIT_ECATT_SP_UPLOAD IMPLEMENTATION.
|
|||
CATCH cx_ecatt_apl INTO lx_ecatt.
|
||||
lv_exc_occ = 'X'.
|
||||
ENDTRY.
|
||||
* Devesh,C5129871 18.07.2011 Releasing enqueue after uploading
|
||||
*begin
|
||||
" Releasing enqueue after uploading
|
||||
TRY.
|
||||
ecatt_object->close_object( im_suppress_events = 'X' ).
|
||||
CATCH cx_ecatt_apl INTO lx_ecatt.
|
||||
CATCH cx_ecatt_apl INTO lx_ecatt ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
*end
|
||||
|
||||
* get devclass from existing object
|
||||
TRY.
|
||||
cl_apl_ecatt_object=>get_tadir_entry(
|
||||
|
|
|
@ -62,7 +62,7 @@ CLASS zcl_abapgit_object_enho_clif IMPLEMENTATION.
|
|||
TRY.
|
||||
io_clif->add_change_enha_type( type_line = ls_type_line ).
|
||||
CATCH cx_enh_mod_not_allowed
|
||||
cx_enh_is_not_enhanceable.
|
||||
cx_enh_is_not_enhanceable ##NO_HANDLER.
|
||||
" TODO
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
|
|
@ -253,7 +253,8 @@ CLASS zcl_abapgit_gui_jumper IMPLEMENTATION.
|
|||
EXCEPTIONS
|
||||
communication_failure = 1 MESSAGE lv_msg
|
||||
system_failure = 2 MESSAGE lv_msg
|
||||
OTHERS = 3.
|
||||
resource_failure = 3
|
||||
OTHERS = 4.
|
||||
|
||||
lv_subrc = sy-subrc.
|
||||
|
||||
|
|
|
@ -611,7 +611,7 @@ CLASS zcl_abapgit_oo_class IMPLEMENTATION.
|
|||
component_error = 4
|
||||
no_access = 5
|
||||
other = 6
|
||||
OTHERS = 7.
|
||||
OTHERS = 7 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'SEO_CLASS_CREATE_COMPLETE'
|
||||
EXPORTING
|
||||
|
@ -628,7 +628,7 @@ CLASS zcl_abapgit_oo_class IMPLEMENTATION.
|
|||
component_error = 4
|
||||
no_access = 5
|
||||
other = 6
|
||||
OTHERS = 7.
|
||||
OTHERS = 7 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
|
@ -998,5 +998,4 @@ CLASS zcl_abapgit_oo_class IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( |Class { ls_clskey-clsname } has syntax errors | ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -212,7 +212,7 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION.
|
|||
component_error = 4
|
||||
no_access = 5
|
||||
other = 6
|
||||
OTHERS = 7.
|
||||
OTHERS = 7 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE'
|
||||
EXPORTING
|
||||
|
@ -229,7 +229,7 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION.
|
|||
component_error = 4
|
||||
no_access = 5
|
||||
other = 6
|
||||
OTHERS = 7.
|
||||
OTHERS = 7 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
|
@ -368,5 +368,4 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( |Interface { ls_intkey-clsname } has syntax errors | ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -151,7 +151,7 @@ CLASS zcl_abapgit_oo_serializer IMPLEMENTATION.
|
|||
lv_program = ls_include.
|
||||
TRY.
|
||||
lt_source = zcl_abapgit_factory=>get_sap_report( )->read_report( lv_program ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
* ignore if the report is not found, sometimes the CCDEF include does not exist
|
||||
ENDTRY.
|
||||
rt_source = lt_source.
|
||||
|
|
|
@ -37,10 +37,7 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
|||
RETURNING
|
||||
VALUE(ri_rules) TYPE REF TO zif_abapgit_field_rules,
|
||||
apply_clear_logic FOR TESTING,
|
||||
apply_fill_logic FOR TESTING,
|
||||
get_utc_timestamp
|
||||
RETURNING
|
||||
VALUE(rv_timestamp) TYPE timestamp.
|
||||
apply_fill_logic FOR TESTING.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -88,7 +85,7 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
|
||||
METHOD fill3.
|
||||
DATA lv_timestamp TYPE timestamp.
|
||||
lv_timestamp = get_utc_timestamp( ).
|
||||
GET TIME STAMP FIELD lv_timestamp.
|
||||
fill_value(
|
||||
iv_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp
|
||||
iv_len = 10
|
||||
|
@ -205,6 +202,8 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
lv_ts TYPE string,
|
||||
lv_timestamp TYPE timestamp.
|
||||
|
||||
GET TIME STAMP FIELD lv_timestamp.
|
||||
|
||||
ls_act-key = 1.
|
||||
INSERT ls_act INTO TABLE lt_act.
|
||||
ls_act-key = 2.
|
||||
|
@ -241,17 +240,16 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
act = ls_act-time(4)
|
||||
exp = sy-uzeit(4) ). " avoid comparing seconds
|
||||
|
||||
lv_timestamp = get_utc_timestamp( ).
|
||||
lv_ts = ls_act-ts.
|
||||
lv_ts = lv_ts(12).
|
||||
lv_ts = lv_ts(10).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_ts
|
||||
exp = |{ lv_timestamp DIV 100 }| ). " avoid comparing second
|
||||
exp = |{ lv_timestamp DIV 10000 }| ). " avoid comparing second
|
||||
lv_ts = ls_act-tl.
|
||||
lv_ts = lv_ts(12).
|
||||
lv_ts = lv_ts(10).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_ts
|
||||
exp = |{ lv_timestamp DIV 100 }| ). " avoid comparing seconds
|
||||
exp = |{ lv_timestamp DIV 10000 }| ). " avoid comparing seconds
|
||||
|
||||
READ TABLE lt_act INTO ls_act INDEX 2.
|
||||
|
||||
|
@ -269,21 +267,4 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
exp = sy-uzeit(4) ). " avoid comparing seconds
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_utc_timestamp.
|
||||
DATA lv_syst_timezone TYPE timezone.
|
||||
CALL FUNCTION 'GET_SYSTEM_TIMEZONE'
|
||||
IMPORTING
|
||||
timezone = lv_syst_timezone
|
||||
EXCEPTIONS
|
||||
customizing_missing = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
cl_abap_unit_assert=>fail( 'Could not get system timezone' ).
|
||||
ENDIF.
|
||||
|
||||
CONVERT DATE sy-datum TIME sy-uzeit
|
||||
INTO TIME STAMP rv_timestamp
|
||||
TIME ZONE lv_syst_timezone.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -47,7 +47,7 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
no_show_permission = 7
|
||||
permission_failure = 8
|
||||
request_language_denied = 9
|
||||
OTHERS = 10.
|
||||
OTHERS = 10 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'RS_ACCESS_PERMISSION'
|
||||
EXPORTING
|
||||
|
@ -67,7 +67,7 @@ CLASS zcl_abapgit_sap_report IMPLEMENTATION.
|
|||
no_show_permission = 7
|
||||
permission_failure = 8
|
||||
request_language_denied = 9
|
||||
OTHERS = 10.
|
||||
OTHERS = 10 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
|
|
|
@ -84,7 +84,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clear_dd03p_fields.
|
||||
|
@ -838,6 +838,14 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
ENDIF.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
" Skip TABL generated by CHDO
|
||||
IF rv_bool = abap_true.
|
||||
SELECT SINGLE tabname FROM tcdrs INTO lv_tabname WHERE tabname = lv_tabname.
|
||||
IF sy-subrc = 0.
|
||||
rv_bool = abap_false.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_TABL_DDL IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_tabl_ddl IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD deserialize.
|
||||
|
@ -158,9 +158,9 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL_DDL IMPLEMENTATION.
|
|||
start TYPE i VALUE 0,
|
||||
colon TYPE i VALUE 1,
|
||||
type TYPE i VALUE 2,
|
||||
aftertype TYPE i VALUE 2,
|
||||
null TYPE i VALUE 2,
|
||||
afternull TYPE i VALUE 2,
|
||||
aftertype TYPE i VALUE 3,
|
||||
null TYPE i VALUE 4,
|
||||
afternull TYPE i VALUE 5,
|
||||
END OF lc_mode.
|
||||
|
||||
DATA lv_field TYPE string.
|
||||
|
|
|
@ -64,6 +64,10 @@ CLASS zcl_abapgit_longtexts IMPLEMENTATION.
|
|||
|
||||
FIELD-SYMBOLS: <ls_dokil> LIKE LINE OF lt_dokil.
|
||||
|
||||
IF iv_object_name CA '#'.
|
||||
zcx_abapgit_exception=>raise( |Invalid name for longtext: { iv_longtext_id } { iv_object_name }| ).
|
||||
ENDIF.
|
||||
|
||||
lv_object = escape_name(
|
||||
iv_longtext_id = iv_longtext_id
|
||||
iv_object_name = iv_object_name ).
|
||||
|
@ -77,7 +81,6 @@ CLASS zcl_abapgit_longtexts IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ELSEIF iv_longtext_id IS NOT INITIAL.
|
||||
IF lv_object NA '#'.
|
||||
IF iv_main_lang_only = abap_true.
|
||||
SELECT * FROM dokil
|
||||
INTO TABLE lt_dokil
|
||||
|
@ -92,7 +95,6 @@ CLASS zcl_abapgit_longtexts IMPLEMENTATION.
|
|||
AND object LIKE lv_object ESCAPE '#'
|
||||
ORDER BY PRIMARY KEY.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
|
||||
zcx_abapgit_exception=>raise( |serialize_longtexts parameter error| ).
|
||||
|
|
|
@ -383,7 +383,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
packages = '' ).
|
||||
CATCH cx_abap_not_a_table INTO lx_abap_not_a_table.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_abap_not_a_table ).
|
||||
CATCH cx_abap_not_in_package.
|
||||
CATCH cx_abap_not_in_package ##NO_HANDLER.
|
||||
"that's fine
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ CLASS zcl_abapgit_object_auth IMPLEMENTATION.
|
|||
CALL FUNCTION 'SU20_MAINTAIN_SNGL'
|
||||
EXPORTING
|
||||
id_field = mv_fieldname
|
||||
id_wbo_mode = abap_false.
|
||||
id_wbo_mode = abap_false ##EXISTS.
|
||||
rv_exit = abap_true.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -38,6 +38,7 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
r_ref_db_access = mo_cmp_db.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
mv_name = ms_item-obj_name.
|
||||
|
|
|
@ -72,7 +72,8 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
lx_error TYPE REF TO cx_root,
|
||||
lv_abap_language_version TYPE uccheck.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
@ -91,6 +92,12 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<lg_field> = mo_files->read_string( 'asdcls' ).
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
lv_abap_language_version = <lg_field>.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
TRY.
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
|
@ -98,6 +105,16 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
TRY.
|
||||
CALL METHOD lo_dcl->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
iv_put_state = 'I'
|
||||
is_dclsrc = <lg_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'
|
||||
iv_abap_language_version = lv_abap_language_version.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL METHOD lo_dcl->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
|
@ -105,6 +122,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
is_dclsrc = <lg_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'.
|
||||
ENDTRY.
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
|
@ -236,7 +254,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
|
|
|
@ -280,7 +280,8 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
<lg_data_baseinfo> TYPE any,
|
||||
<lg_source> TYPE any,
|
||||
<lg_baseinfo_string> TYPE any,
|
||||
<lg_baseinfo_ddlname> TYPE any.
|
||||
<lg_baseinfo_ddlname> TYPE any,
|
||||
<lg_abap_language_version> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
|
@ -293,6 +294,11 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<lg_source> = mo_files->read_string( 'asddls' ).
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
|
@ -310,12 +316,22 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<lg_baseinfo_ddlname> = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>
|
||||
baseinfo_string = <lg_data_baseinfo>
|
||||
save_language_version = abap_true.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>
|
||||
baseinfo_string = <lg_data_baseinfo>.
|
||||
ENDTRY.
|
||||
ELSE.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
|
@ -453,7 +469,8 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
<lt_data_baseinfo> TYPE ANY TABLE,
|
||||
<lg_data_baseinfo> TYPE any,
|
||||
<lg_ddlname> TYPE any,
|
||||
<lg_as4local> TYPE any.
|
||||
<lg_as4local> TYPE any,
|
||||
<lg_abap_language_version> TYPE any.
|
||||
|
||||
|
||||
TRY.
|
||||
|
@ -506,12 +523,16 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
APPEND 'AS4USER' TO lt_clr_comps.
|
||||
APPEND 'AS4DATE' TO lt_clr_comps.
|
||||
APPEND 'AS4TIME' TO lt_clr_comps.
|
||||
APPEND 'ACTFLAG' TO lt_clr_comps.
|
||||
APPEND 'CHGFLAG' TO lt_clr_comps.
|
||||
APPEND 'ABAP_LANGUAGE_VERSION' TO lt_clr_comps.
|
||||
APPEND 'ABAP_LANGU_VERSION' TO lt_clr_comps.
|
||||
|
||||
LOOP AT lt_clr_comps ASSIGNING <lv_comp>.
|
||||
|
|
|
@ -80,8 +80,6 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
clear_field( EXPORTING iv_fieldname = 'ABAP_LANGUAGE_VERSION'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'ABAP_LANGU_VERSION'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -184,7 +182,8 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
<lg_version> TYPE data,
|
||||
<lg_package> TYPE data,
|
||||
<lg_changed_by> TYPE syuname,
|
||||
<lg_changed_at> TYPE xsddatetime_z.
|
||||
<lg_changed_at> TYPE xsddatetime_z,
|
||||
<lg_abap_language_version> TYPE data.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
|
@ -197,6 +196,11 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
CHANGING
|
||||
cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_source>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
|
@ -367,6 +371,11 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
li_data_model->get_data( IMPORTING p_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
|
||||
ENDIF.
|
||||
|
||||
clear_fields( CHANGING cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
|
|
|
@ -43,7 +43,7 @@ CLASS zcl_abapgit_object_doma DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
METHODS handle_dependencies
|
||||
IMPORTING
|
||||
!iv_step TYPE zif_abapgit_definitions=>ty_deserialization_step
|
||||
!iv_step TYPE zif_abapgit_objects=>ty_deserialization_step
|
||||
CHANGING
|
||||
!cv_exit TYPE dd01v-convexit
|
||||
!cv_done TYPE abap_bool.
|
||||
|
|
|
@ -786,7 +786,8 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
CHANGING
|
||||
include = lv_include
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
OTHERS = 1 ##FM_SUBRC_OK.
|
||||
|
||||
IF lv_function_group(1) = 'X'. " "EXIT"-function-module
|
||||
ls_tadir-object = 'FUGS'.
|
||||
ENDIF.
|
||||
|
@ -1276,6 +1277,14 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
pool_not_exists = 1.
|
||||
rv_bool = boolc( sy-subrc <> 1 ).
|
||||
|
||||
" Skip FUGR generated by CHDO
|
||||
IF rv_bool = abap_true.
|
||||
SELECT SINGLE fgrp FROM tcdrp INTO lv_pool WHERE fgrp = lv_pool.
|
||||
IF sy-subrc = 0.
|
||||
rv_bool = abap_false.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_OBJECT_FUGS</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit - FUGS</DESCRIPT>
|
||||
<DESCRIPT>abapGit - FUGS - Function Group (SAP)</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
|
|
283
src/objects/zcl_abapgit_object_http.clas.abap
Normal file
283
src/objects/zcl_abapgit_object_http.clas.abap
Normal file
|
@ -0,0 +1,283 @@
|
|||
CLASS zcl_abapgit_object_http DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM zcl_abapgit_objects_super
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES zif_abapgit_object.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
TYPES: BEGIN OF ty_uconservhttphandler,
|
||||
id TYPE c LENGTH 30,
|
||||
version TYPE c LENGTH 1,
|
||||
serviceorder TYPE n LENGTH 2,
|
||||
servicehandler TYPE c LENGTH 30,
|
||||
END OF ty_uconservhttphandler.
|
||||
TYPES: BEGIN OF ty_uconhttpservtext,
|
||||
id TYPE c LENGTH 30,
|
||||
version TYPE c LENGTH 1,
|
||||
lang TYPE c LENGTH 1,
|
||||
shorttext TYPE c LENGTH 255,
|
||||
END OF ty_uconhttpservtext.
|
||||
TYPES: BEGIN OF ty_handler,
|
||||
id TYPE c LENGTH 30,
|
||||
version TYPE c LENGTH 1,
|
||||
serviceorder TYPE n LENGTH 2,
|
||||
servicehandler TYPE c LENGTH 30,
|
||||
END OF ty_handler.
|
||||
TYPES: BEGIN OF ty_gs_object_version,
|
||||
id TYPE c LENGTH 1,
|
||||
object_state TYPE c LENGTH 1,
|
||||
END OF ty_gs_object_version.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
TRY.
|
||||
SELECT SINGLE changedby FROM ('UCONHTTPSERVHEAD') INTO rv_user WHERE id = ms_item-obj_name.
|
||||
IF sy-subrc <> 0.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA lv_name TYPE c LENGTH 30.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
TRY.
|
||||
CALL METHOD ('CL_UCON_API_FACTORY')=>('DELETE_HTTP_SERVICE')
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
devclass = iv_package.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lv_http_servid TYPE c LENGTH 30,
|
||||
lt_handler TYPE TABLE OF ty_handler,
|
||||
ls_handler LIKE LINE OF lt_handler,
|
||||
ls_description TYPE ty_uconhttpservtext,
|
||||
lv_check_object_name TYPE c LENGTH 40,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_id TYPE c LENGTH 30,
|
||||
lo_http TYPE REF TO object,
|
||||
ls_abap_lang TYPE ty_gs_object_version,
|
||||
lo_instance TYPE REF TO object,
|
||||
lv_tadir_name TYPE tadir-obj_name,
|
||||
lt_ret TYPE STANDARD TABLE OF bapiret2.
|
||||
|
||||
TRY.
|
||||
io_xml->read(
|
||||
EXPORTING iv_name = 'HTTPID'
|
||||
CHANGING cg_data = lv_http_servid ).
|
||||
io_xml->read(
|
||||
EXPORTING iv_name = 'HTTPTEXT'
|
||||
CHANGING cg_data = ls_description ).
|
||||
io_xml->read(
|
||||
EXPORTING iv_name = 'HTTPHDL'
|
||||
CHANGING cg_data = lt_handler ).
|
||||
|
||||
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'.
|
||||
IF sy-subrc = 0.
|
||||
"update
|
||||
CALL METHOD ('CL_UCON_API_FACTORY')=>('GET_HTTP_SERVICE')
|
||||
EXPORTING
|
||||
name = lv_http_servid
|
||||
no_auth_check = abap_true
|
||||
RECEIVING
|
||||
http_service = lo_http.
|
||||
ELSE.
|
||||
"create
|
||||
CALL METHOD ('CL_UCON_API_FACTORY')=>('NEW_HTTP_SERVICE')
|
||||
EXPORTING
|
||||
name = lv_http_servid
|
||||
RECEIVING
|
||||
http_service = lo_http.
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_HANDLER')
|
||||
EXPORTING
|
||||
handler = lt_handler.
|
||||
IF lt_handler IS NOT INITIAL.
|
||||
READ TABLE lt_handler INTO ls_handler INDEX 1.
|
||||
"get language version from abap class
|
||||
|
||||
lv_check_object_name = ls_handler-servicehandler.
|
||||
IF lv_check_object_name IS NOT INITIAL.
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_LANGUAGE_VERSION')=>('GET_INSTANCE')
|
||||
RECEIVING
|
||||
ro_version_handler = lo_instance.
|
||||
CALL METHOD lo_instance->('IF_ABAP_LANGUAGE_VERSION~GET_VERSION_OF_OBJECT')
|
||||
EXPORTING
|
||||
iv_object_type = 'CLAS'
|
||||
iv_object_name = lv_check_object_name
|
||||
RECEIVING
|
||||
rs_object_version = ls_abap_lang.
|
||||
|
||||
IF ls_abap_lang-id = 'X'. "language version X not supported, use space instead
|
||||
ls_abap_lang-id = space.
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_LANGUAGE_VERSION')
|
||||
EXPORTING
|
||||
iv_langu_version = ls_abap_lang-id.
|
||||
CATCH cx_root ##NO_HANDLER.
|
||||
" ABAP language version not supported in this system
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
|
||||
EXPORTING
|
||||
texts = ls_description.
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
|
||||
EXPORTING
|
||||
run_dark = abap_true
|
||||
dev_class = iv_package
|
||||
korrnum = iv_transport.
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
|
||||
|
||||
lv_tadir_name = lv_http_servid.
|
||||
CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE')
|
||||
EXPORTING
|
||||
iv_type = 'HTTP'
|
||||
iv_name = lv_tadir_name
|
||||
iv_silent = abap_true
|
||||
iv_task = iv_transport
|
||||
IMPORTING
|
||||
et_log = lt_ret.
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA lv_id TYPE c LENGTH 30.
|
||||
|
||||
TRY.
|
||||
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = ms_item-obj_name AND version = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_comparator.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_deserialize_order.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-abap TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~is_active.
|
||||
rv_active = is_active( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~is_locked.
|
||||
rv_is_locked = abap_false.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~map_filename_to_object.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~map_object_to_filename.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_http_srv_id TYPE c LENGTH 30,
|
||||
lo_serv TYPE REF TO object, "if_ucon_api_http_service
|
||||
lt_handler TYPE TABLE OF ty_uconservhttphandler,
|
||||
ls_description TYPE ty_uconhttpservtext,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_name TYPE c LENGTH 30.
|
||||
|
||||
TRY.
|
||||
lv_http_srv_id = ms_item-obj_name.
|
||||
"read http service object
|
||||
CALL METHOD ('CL_UCON_API_FACTORY')=>('GET_HTTP_SERVICE')
|
||||
EXPORTING
|
||||
name = lv_http_srv_id
|
||||
no_auth_check = abap_true
|
||||
RECEIVING
|
||||
http_service = lo_serv.
|
||||
|
||||
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_HANDLER') RECEIVING handler = lt_handler.
|
||||
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_DESCRIPTION')
|
||||
EXPORTING
|
||||
lang = sy-langu
|
||||
RECEIVING
|
||||
text = ls_description.
|
||||
|
||||
"add data to output
|
||||
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_NAME') RECEIVING name = lv_name.
|
||||
|
||||
io_xml->add(
|
||||
iv_name = 'HTTPID'
|
||||
ig_data = lv_name ).
|
||||
|
||||
io_xml->add(
|
||||
iv_name = 'HTTPTEXT'
|
||||
ig_data = ls_description ).
|
||||
|
||||
io_xml->add(
|
||||
iv_name = 'HTTPHDL'
|
||||
ig_data = lt_handler ).
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
16
src/objects/zcl_abapgit_object_http.clas.xml
Normal file
16
src/objects/zcl_abapgit_object_http.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_OBJECT_HTTP</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit - HTTP - HTTP Destination</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -163,6 +163,9 @@ CLASS zcl_abapgit_object_idoc IMPLEMENTATION.
|
|||
MOVE-CORRESPONDING ls_idoc-attributes TO ls_attributes.
|
||||
|
||||
IF zif_abapgit_object~exists( ) = abap_false.
|
||||
" Avoid popup asking for package
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CALL FUNCTION 'IDOCTYPE_CREATE'
|
||||
EXPORTING
|
||||
pi_idoctyp = mv_idoctyp
|
||||
|
|
|
@ -53,8 +53,9 @@ CLASS zcl_abapgit_object_iext IMPLEMENTATION.
|
|||
pe_attributes = ls_attributes
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
|
||||
IF sy-subrc = 0.
|
||||
rv_user = ls_attributes-plast.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -96,6 +97,9 @@ CLASS zcl_abapgit_object_iext IMPLEMENTATION.
|
|||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ELSE.
|
||||
" Avoid popup asking for package
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CALL FUNCTION 'EXTTYPE_CREATE'
|
||||
EXPORTING
|
||||
pi_cimtyp = mv_extension
|
||||
|
|
|
@ -61,7 +61,7 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
iobj_not_found = 1
|
||||
illegal_input = 2
|
||||
bct_comp_invalid = 3
|
||||
not_authorized = 4
|
||||
* not_authorized = 4 " not in lower releases
|
||||
OTHERS = 5.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'TSTPNM' OF STRUCTURE <lg_viobj> TO <lg_tstpnm>.
|
||||
|
@ -200,6 +200,7 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
|
||||
IF zif_abapgit_object~exists( ) = abap_false.
|
||||
TRY.
|
||||
CALL FUNCTION 'BAPI_IOBJ_CREATE'
|
||||
EXPORTING
|
||||
details = <lg_details>
|
||||
|
@ -213,8 +214,23 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
hierarchycharacteristics = <lt_hierarchycharacteristics>
|
||||
elimination = <lt_elimination>
|
||||
hanafieldsmapping = <lt_hanafieldsmapping>
|
||||
xxlattributes = <lt_xxlattributes>.
|
||||
xxlattributes = <lt_xxlattributes> ##ARG_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'BAPI_IOBJ_CREATE'
|
||||
EXPORTING
|
||||
details = <lg_details>
|
||||
IMPORTING
|
||||
return = ls_return
|
||||
TABLES
|
||||
compounds = <lt_compounds>
|
||||
attributes = <lt_attributes>
|
||||
navigationattributes = <lt_navigationattributes>
|
||||
atrnavinfoprovider = <lt_atrnavinfoprovider>
|
||||
hierarchycharacteristics = <lt_hierarchycharacteristics>
|
||||
elimination = <lt_elimination>.
|
||||
ENDTRY.
|
||||
ELSE.
|
||||
TRY.
|
||||
CALL FUNCTION 'BAPI_IOBJ_CHANGE'
|
||||
EXPORTING
|
||||
infoobject = <lg_infoobject>
|
||||
|
@ -229,7 +245,22 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
hierarchycharacteristics = <lt_hierarchycharacteristics>
|
||||
elimination = <lt_elimination>
|
||||
hanafieldsmapping = <lt_hanafieldsmapping>
|
||||
xxlattributes = <lt_xxlattributes>.
|
||||
xxlattributes = <lt_xxlattributes> ##ARG_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'BAPI_IOBJ_CHANGE'
|
||||
EXPORTING
|
||||
infoobject = <lg_infoobject>
|
||||
details = <lg_details>
|
||||
IMPORTING
|
||||
return = ls_return
|
||||
TABLES
|
||||
compounds = <lt_compounds>
|
||||
attributes = <lt_attributes>
|
||||
navigationattributes = <lt_navigationattributes>
|
||||
atrnavinfoprovider = <lt_atrnavinfoprovider>
|
||||
hierarchycharacteristics = <lt_hierarchycharacteristics>
|
||||
elimination = <lt_elimination>.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
||||
IF ls_return-type = 'E'.
|
||||
|
@ -409,6 +440,7 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
|
||||
lv_iobjnam = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CALL FUNCTION 'BAPI_IOBJ_GETDETAIL'
|
||||
EXPORTING
|
||||
infoobject = lv_iobjnam
|
||||
|
@ -423,7 +455,22 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
hierarchycharacteristics = <lt_hierarchycharacteristics>
|
||||
elimination = <lt_elimination>
|
||||
hanafieldsmapping = <lt_hanafieldsmapping>
|
||||
xxlattributes = <lt_xxlattributes>.
|
||||
xxlattributes = <lt_xxlattributes> ##ARG_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'BAPI_IOBJ_GETDETAIL'
|
||||
EXPORTING
|
||||
infoobject = lv_iobjnam
|
||||
IMPORTING
|
||||
details = <lg_details>
|
||||
return = ls_return
|
||||
TABLES
|
||||
compounds = <lt_compounds>
|
||||
attributes = <lt_attributes>
|
||||
navigationattributes = <lt_navigationattributes>
|
||||
atrnavinfoprovider = <lt_atrnavinfoprovider>
|
||||
hierarchycharacteristics = <lt_hierarchycharacteristics>
|
||||
elimination = <lt_elimination>.
|
||||
ENDTRY.
|
||||
|
||||
IF ls_return-type = 'E'.
|
||||
zcx_abapgit_exception=>raise( |Error getting details of InfoObject: { ls_return-message }| ).
|
||||
|
|
|
@ -124,7 +124,11 @@ CLASS zcl_abapgit_object_iwpr IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
SUBMIT /iwbep/r_sbui_service_builder
|
||||
DATA lv_prog TYPE progname.
|
||||
|
||||
lv_prog = '/IWBEP/R_SBUI_SERVICE_BUILDER'.
|
||||
|
||||
SUBMIT (lv_prog)
|
||||
WITH i_prname = ms_item-obj_name
|
||||
AND RETURN.
|
||||
|
||||
|
|
|
@ -131,7 +131,11 @@ CLASS zcl_abapgit_object_iwvb IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
SUBMIT /iwbep/r_dst_vocan_register
|
||||
DATA lv_prog TYPE progname.
|
||||
|
||||
lv_prog = '/IWBEP/R_DST_VOCAN_REGISTER'.
|
||||
|
||||
SUBMIT (lv_prog)
|
||||
WITH ip_aname = ms_item-obj_name
|
||||
WITH ip_avers = ms_item-obj_name+32(4)
|
||||
AND RETURN.
|
||||
|
|
|
@ -37,13 +37,17 @@ CLASS zcl_abapgit_object_msag DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
zcx_abapgit_exception .
|
||||
METHODS delete_msgid
|
||||
IMPORTING
|
||||
!iv_message_id TYPE arbgb .
|
||||
!iv_message_id TYPE arbgb
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS free_access_permission
|
||||
IMPORTING
|
||||
!iv_message_id TYPE arbgb .
|
||||
METHODS delete_documentation
|
||||
IMPORTING
|
||||
!iv_message_id TYPE arbgb .
|
||||
!iv_message_id TYPE arbgb
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -61,9 +65,7 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
|
|||
element = iv_message_id
|
||||
addition = ' '
|
||||
IMPORTING
|
||||
object = lv_key_s
|
||||
EXCEPTIONS
|
||||
OTHERS = 0.
|
||||
object = lv_key_s.
|
||||
|
||||
CALL FUNCTION 'DOKU_DELETE_ALL'
|
||||
EXPORTING
|
||||
|
@ -80,7 +82,11 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
|
|||
no_docu_found = 4
|
||||
object_is_already_enqueued = 5
|
||||
object_is_enqueued_by_corr = 6
|
||||
user_break = 7.
|
||||
user_break = 7
|
||||
OTHERS = 8.
|
||||
IF sy-subrc <> 0 AND sy-subrc <> 4.
|
||||
zcx_abapgit_exception=>raise( 'Error deleting longtext for message' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ CLASS zcl_abapgit_object_oa2p IMPLEMENTATION.
|
|||
|
||||
"authority check
|
||||
AUTHORITY-CHECK OBJECT 'S_OA2C_ADM'
|
||||
ID 'ACTVT' FIELD lc_actvt.
|
||||
ID 'ACTVT' FIELD lc_actvt ##AUTH_OBJ_OK.
|
||||
IF sy-subrc <> 0.
|
||||
MESSAGE e463(01) WITH mv_profile INTO zcx_abapgit_exception=>null.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
|
@ -104,7 +104,7 @@ CLASS zcl_abapgit_object_oa2p IMPLEMENTATION.
|
|||
CALL METHOD lo_persist->('IF_WB_OBJECT_PERSIST~DELETE')
|
||||
EXPORTING
|
||||
p_object_key = lv_profile_key. " Object Key
|
||||
CATCH cx_swb_object_does_not_exist.
|
||||
CATCH cx_swb_object_does_not_exist ##NO_HANDLER.
|
||||
CATCH cx_swb_exception.
|
||||
zcx_abapgit_exception=>raise( |Error when deleting OAuth2 Profile { lv_profile_key }.| ).
|
||||
ENDTRY.
|
||||
|
|
|
@ -137,7 +137,7 @@ CLASS zcl_abapgit_object_otgr IMPLEMENTATION.
|
|||
TRY.
|
||||
CREATE DATA lo_parents TYPE TABLE OF ('CLS_TYGR_PARENT').
|
||||
ASSIGN lo_parents->* TO <lt_parents>.
|
||||
CATCH cx_sy_create_data_error.
|
||||
CATCH cx_sy_create_data_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
IF <lt_parents> IS ASSIGNED.
|
||||
|
@ -288,7 +288,7 @@ CLASS zcl_abapgit_object_otgr IMPLEMENTATION.
|
|||
TRY.
|
||||
CREATE DATA lo_parents TYPE TABLE OF ('CLS_TYGR_PARENT').
|
||||
ASSIGN lo_parents->* TO <lt_parents>.
|
||||
CATCH cx_sy_create_data_error.
|
||||
CATCH cx_sy_create_data_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
|
|
|
@ -172,7 +172,7 @@ CLASS lcl_task_definition IMPLEMENTATION.
|
|||
IF sy-subrc <> 0.
|
||||
TRY.
|
||||
li_container->element_remove( name = lv_element ).
|
||||
CATCH cx_swf_cnt_container.
|
||||
CATCH cx_swf_cnt_container ##NO_HANDLER.
|
||||
"Shouldn't happen, doesn't matter if it does
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
|
|
@ -77,7 +77,7 @@ CLASS zcl_abapgit_object_pdxx_super IMPLEMENTATION.
|
|||
enqueue_failed = 1
|
||||
object_not_deleted = 2
|
||||
object_not_found = 3
|
||||
OTHERS = 4. "#EC SUBRC_OK
|
||||
OTHERS = 4 ##FM_SUBRC_OK.
|
||||
|
||||
check_subrc_for( `RH_HRSOBJECT_DELETE` ).
|
||||
|
||||
|
|
|
@ -279,6 +279,15 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
|||
WHERE progname = ms_item-obj_name.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
" Skip PROG generated by CHDO
|
||||
IF rv_bool = abap_true.
|
||||
FIND REGEX '^F.*CD[C|F|T|V]' IN ms_item-obj_name.
|
||||
IF sy-subrc <> 0.
|
||||
FIND REGEX '^/.*/F.*CD[C|F|T|V]' IN ms_item-obj_name.
|
||||
ENDIF.
|
||||
rv_bool = boolc( sy-subrc <> 0 ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -486,7 +486,8 @@ CLASS zcl_abapgit_object_scp1 IMPLEMENTATION.
|
|||
TABLES
|
||||
texts = ls_scp1-scprtext
|
||||
EXCEPTIONS
|
||||
no_text_found = 1.
|
||||
no_text_found = 1
|
||||
OTHERS = 2 ##FM_SUBRC_OK.
|
||||
|
||||
IF ls_scp1-scprattr-type = 'TMP'.
|
||||
load_hier( CHANGING cs_scp1 = ls_scp1 ).
|
||||
|
|
|
@ -134,7 +134,7 @@ CLASS zcl_abapgit_object_sfpf IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
rv_xstr = cl_fp_helper=>convert_form_to_xstring( li_fp_form ).
|
||||
CATCH cx_fp_api INTO lx_fp_conv_err.
|
||||
CATCH cx_fp_api INTO lx_fp_conv_err ##NO_HANDLER.
|
||||
" Pass - the exception is handled below!
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ CLASS zcl_abapgit_object_shlp DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
METHODS handle_dependencies
|
||||
IMPORTING
|
||||
!iv_step TYPE zif_abapgit_definitions=>ty_deserialization_step
|
||||
!iv_step TYPE zif_abapgit_objects=>ty_deserialization_step
|
||||
CHANGING
|
||||
!cv_exit TYPE dd30v-selmexit
|
||||
!cv_done TYPE abap_bool.
|
||||
|
|
|
@ -129,6 +129,18 @@ CLASS zcl_abapgit_object_srvb IMPLEMENTATION.
|
|||
CHANGING
|
||||
cs_service_binding = cs_service_binding ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING
|
||||
iv_fieldname = 'METADATA-RESPONSIBLE'
|
||||
CHANGING
|
||||
cs_service_binding = cs_service_binding ).
|
||||
|
||||
clear_field(
|
||||
EXPORTING
|
||||
iv_fieldname = 'METADATA-MASTER_LANGUAGE'
|
||||
CHANGING
|
||||
cs_service_binding = cs_service_binding ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -23,10 +23,10 @@ CLASS zcl_abapgit_object_sush DEFINITION
|
|||
METHODS clear_metadata
|
||||
CHANGING
|
||||
cs_data_head TYPE any
|
||||
ct_usobx TYPE table
|
||||
ct_usobt TYPE table
|
||||
ct_usobx_ext TYPE table
|
||||
ct_usobt_ext TYPE table.
|
||||
ct_usobx TYPE STANDARD TABLE
|
||||
ct_usobt TYPE STANDARD TABLE
|
||||
ct_usobx_ext TYPE STANDARD TABLE
|
||||
ct_usobt_ext TYPE STANDARD TABLE.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
|
|
@ -158,6 +158,8 @@ CLASS zcl_abapgit_object_ucsa IMPLEMENTATION.
|
|||
|
||||
tadir_delete( ).
|
||||
|
||||
corr_insert( iv_package ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -195,6 +197,8 @@ CLASS zcl_abapgit_object_ucsa IMPLEMENTATION.
|
|||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
corr_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
lv_text = lx_root->get_text( ).
|
||||
zcx_abapgit_exception=>raise( lv_text ).
|
||||
|
|
|
@ -569,7 +569,7 @@ CLASS zcl_abapgit_object_ueno IMPLEMENTATION.
|
|||
header = ls_docu-header
|
||||
content = ls_docu-content
|
||||
itf = ls_docu-itf
|
||||
pstatus = lv_error_status.
|
||||
pstatus = lv_error_status ##ARG_OK.
|
||||
|
||||
CHECK lv_error_status = 'S'. "Success
|
||||
|
||||
|
|
|
@ -303,7 +303,7 @@ CLASS zcl_abapgit_object_wdca IMPLEMENTATION.
|
|||
WHERE config_id = ls_outline-config_id
|
||||
AND config_type = ls_outline-config_type
|
||||
AND config_var = ls_outline-config_var.
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
" File not found
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ CLASS zcl_abapgit_object_xinx IMPLEMENTATION.
|
|||
suppress_transport = 'X'
|
||||
EXCEPTIONS
|
||||
no_docu_found = 1
|
||||
OTHERS = 2.
|
||||
OTHERS = 2 ##FM_SUBRC_OK.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -317,6 +317,9 @@ CLASS zcl_abapgit_object_xinx IMPLEMENTATION.
|
|||
EXCEPTIONS
|
||||
illegal_input = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Error reading index' ).
|
||||
ENDIF.
|
||||
|
||||
rv_bool = boolc( ls_dd12v IS NOT INITIAL ).
|
||||
|
||||
|
|
|
@ -4,9 +4,6 @@ CLASS zcl_abapgit_objects DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
TYPES:
|
||||
ty_types_tt TYPE SORTED TABLE OF tadir-object WITH UNIQUE KEY table_line .
|
||||
|
||||
CLASS-METHODS serialize
|
||||
IMPORTING
|
||||
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
|
@ -71,7 +68,7 @@ CLASS zcl_abapgit_objects DEFINITION
|
|||
VALUE(rv_bool) TYPE abap_bool .
|
||||
CLASS-METHODS supported_list
|
||||
RETURNING
|
||||
VALUE(rt_types) TYPE ty_types_tt .
|
||||
VALUE(rt_types) TYPE zif_abapgit_objects=>ty_types_tt.
|
||||
CLASS-METHODS is_active
|
||||
IMPORTING
|
||||
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
|
@ -663,7 +660,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
|||
li_progress TYPE REF TO zif_abapgit_progress,
|
||||
lv_path TYPE string,
|
||||
lt_items TYPE zif_abapgit_definitions=>ty_items_tt,
|
||||
lt_steps_id TYPE zif_abapgit_definitions=>ty_deserialization_step_tt,
|
||||
lt_steps_id TYPE zif_abapgit_objects=>ty_deserialization_step_tt,
|
||||
lt_steps TYPE zif_abapgit_objects=>ty_step_data_tt,
|
||||
lx_exc TYPE REF TO zcx_abapgit_exception.
|
||||
DATA lo_folder_logic TYPE REF TO zcl_abapgit_folder_logic.
|
||||
|
@ -672,7 +669,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
|||
DATA lo_abap_language_vers TYPE REF TO zcl_abapgit_abap_language_vers.
|
||||
|
||||
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result,
|
||||
<lv_step_id> TYPE LINE OF zif_abapgit_definitions=>ty_deserialization_step_tt,
|
||||
<lv_step_id> TYPE LINE OF zif_abapgit_objects=>ty_deserialization_step_tt,
|
||||
<ls_step> TYPE LINE OF zif_abapgit_objects=>ty_step_data_tt,
|
||||
<ls_deser> TYPE LINE OF zif_abapgit_objects=>ty_deserialization_tt.
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ CLASS ltcl_object_types IMPLEMENTATION.
|
|||
|
||||
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||
lv_exists TYPE abap_bool,
|
||||
lt_types TYPE zcl_abapgit_objects=>ty_types_tt.
|
||||
lt_types TYPE zif_abapgit_objects=>ty_types_tt.
|
||||
|
||||
FIELD-SYMBOLS: <lv_type> LIKE LINE OF lt_types.
|
||||
|
||||
|
|
|
@ -601,7 +601,8 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
IF lv_state = c_state-inactive. "Textpool in main language needs to be activated
|
||||
"Textpool in main language needs to be activated (not for FUGS/FUGX)
|
||||
IF lv_state = c_state-inactive AND iv_program NP 'SAPLX*'.
|
||||
zcl_abapgit_objects_activation=>add(
|
||||
iv_type = 'REPT'
|
||||
iv_name = iv_program
|
||||
|
@ -650,7 +651,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
cancelled = 2
|
||||
name_not_allowed = 3
|
||||
permission_error = 4
|
||||
OTHERS = 5.
|
||||
OTHERS = 5 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL FUNCTION 'RPY_PROGRAM_INSERT'
|
||||
EXPORTING
|
||||
|
@ -667,7 +668,7 @@ CLASS zcl_abapgit_objects_program IMPLEMENTATION.
|
|||
cancelled = 2
|
||||
name_not_allowed = 3
|
||||
permission_error = 4
|
||||
OTHERS = 5.
|
||||
OTHERS = 5 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
IF sy-subrc = 3.
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
|||
object_not_specified = 3
|
||||
permission_failure = 4
|
||||
dialog_needed = 5
|
||||
OTHERS = 6.
|
||||
OTHERS = 6 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
TRY.
|
||||
" try to force deletion for APPENDs
|
||||
|
@ -207,7 +207,7 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
|||
object_not_specified = 3
|
||||
permission_failure = 4
|
||||
dialog_needed = 5
|
||||
OTHERS = 6.
|
||||
OTHERS = 6 ##FM_SUBRC_OK.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
" no_ask_delete_append and aie_force_deletion not available in lower releases
|
||||
CALL FUNCTION 'RS_DD_DELETE_OBJ'
|
||||
|
@ -221,7 +221,7 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
|||
object_not_specified = 3
|
||||
permission_failure = 4
|
||||
dialog_needed = 5
|
||||
OTHERS = 6.
|
||||
OTHERS = 6 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
INTERFACE zif_abapgit_object
|
||||
PUBLIC .
|
||||
INTERFACE zif_abapgit_object PUBLIC.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF gc_step_id,
|
||||
early TYPE zif_abapgit_definitions=>ty_deserialization_step VALUE `EARLY`,
|
||||
abap TYPE zif_abapgit_definitions=>ty_deserialization_step VALUE `ABAP`,
|
||||
ddic TYPE zif_abapgit_definitions=>ty_deserialization_step VALUE `DDIC`,
|
||||
late TYPE zif_abapgit_definitions=>ty_deserialization_step VALUE `LATE`,
|
||||
early TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'EARLY',
|
||||
abap TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'ABAP',
|
||||
ddic TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'DDIC',
|
||||
late TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'LATE',
|
||||
END OF gc_step_id.
|
||||
|
||||
METHODS serialize
|
||||
|
@ -19,7 +18,7 @@ INTERFACE zif_abapgit_object
|
|||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_input
|
||||
!iv_step TYPE zif_abapgit_definitions=>ty_deserialization_step
|
||||
!iv_step TYPE zif_abapgit_objects=>ty_deserialization_step
|
||||
!ii_log TYPE REF TO zif_abapgit_log
|
||||
!iv_transport TYPE trkorr
|
||||
RAISING
|
||||
|
@ -78,7 +77,7 @@ INTERFACE zif_abapgit_object
|
|||
|
||||
METHODS get_deserialize_steps
|
||||
RETURNING
|
||||
VALUE(rt_steps) TYPE zif_abapgit_definitions=>ty_deserialization_step_tt .
|
||||
VALUE(rt_steps) TYPE zif_abapgit_objects=>ty_deserialization_step_tt.
|
||||
|
||||
METHODS get_deserialize_order
|
||||
IMPORTING
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
INTERFACE zif_abapgit_objects
|
||||
PUBLIC.
|
||||
INTERFACE zif_abapgit_objects PUBLIC.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_serialization,
|
||||
|
@ -15,9 +14,15 @@ INTERFACE zif_abapgit_objects
|
|||
END OF ty_deserialization .
|
||||
TYPES:
|
||||
ty_deserialization_tt TYPE STANDARD TABLE OF ty_deserialization WITH DEFAULT KEY .
|
||||
TYPES:
|
||||
ty_types_tt TYPE SORTED TABLE OF tadir-object WITH UNIQUE KEY table_line.
|
||||
TYPES:
|
||||
ty_deserialization_step TYPE string.
|
||||
TYPES:
|
||||
ty_deserialization_step_tt TYPE STANDARD TABLE OF ty_deserialization_step WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
BEGIN OF ty_step_data,
|
||||
step_id TYPE zif_abapgit_definitions=>ty_deserialization_step,
|
||||
step_id TYPE ty_deserialization_step,
|
||||
order TYPE i,
|
||||
descr TYPE string,
|
||||
syntax_check TYPE abap_bool,
|
||||
|
|
|
@ -53,7 +53,7 @@ CLASS zcl_abapgit_persist_migrate IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
lcl_cua_interface=>new( )->put_own_cua( ls_cua ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -70,7 +70,7 @@ CLASS zcl_abapgit_persist_migrate IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
ls_own_cua = lcl_cua_interface=>new( )->get_own_cua( ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
IF ls_own_cua IS INITIAL.
|
||||
|
|
|
@ -19,12 +19,8 @@ CLASS zcl_abapgit_repo_filter DEFINITION
|
|||
ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
METHODS filter_generated_tadir
|
||||
CHANGING
|
||||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt .
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -41,8 +37,6 @@ CLASS zcl_abapgit_repo_filter IMPLEMENTATION.
|
|||
|
||||
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF ct_tadir.
|
||||
|
||||
filter_generated_tadir( CHANGING ct_tadir = ct_tadir ).
|
||||
|
||||
IF lines( it_filter ) = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -96,13 +90,6 @@ CLASS zcl_abapgit_repo_filter IMPLEMENTATION.
|
|||
|
||||
INSERT ls_tadir INTO TABLE lt_tadir.
|
||||
|
||||
filter_generated_tadir( CHANGING ct_tadir = lt_tadir ).
|
||||
|
||||
IF lt_tadir IS INITIAL.
|
||||
DELETE ct_files.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_filter TRANSPORTING NO FIELDS
|
||||
WITH KEY object = ls_tadir-object
|
||||
obj_name = ls_tadir-obj_name
|
||||
|
@ -115,52 +102,4 @@ CLASS zcl_abapgit_repo_filter IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD filter_generated_tadir.
|
||||
|
||||
DATA: ls_tadir TYPE zif_abapgit_definitions=>ty_tadir,
|
||||
ls_tadir_gen TYPE zif_abapgit_definitions=>ty_tadir,
|
||||
lv_cd_object TYPE cdobjectcl,
|
||||
lt_cd_names TYPE STANDARD TABLE OF cdnames,
|
||||
ls_cd_names TYPE cdnames,
|
||||
lt_tcdrs TYPE STANDARD TABLE OF tcdrs,
|
||||
ls_tcdrs TYPE tcdrs.
|
||||
|
||||
LOOP AT ct_tadir INTO ls_tadir WHERE pgmid = 'R3TR' AND object = 'CHDO'.
|
||||
CLEAR: lv_cd_object, lt_cd_names, ls_tadir_gen, lt_tcdrs, ls_tcdrs.
|
||||
|
||||
lv_cd_object = ls_tadir-obj_name.
|
||||
|
||||
CALL FUNCTION 'CDNAMES_GET'
|
||||
EXPORTING
|
||||
iv_object = lv_cd_object
|
||||
TABLES
|
||||
it_names = lt_cd_names
|
||||
it_tcdrs = lt_tcdrs
|
||||
EXCEPTIONS
|
||||
object_space = 1
|
||||
object_not_found = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT lt_cd_names INTO ls_cd_names.
|
||||
DELETE ct_tadir WHERE pgmid = 'R3TR'
|
||||
AND ( ( object = 'PROG'
|
||||
AND ( obj_name = ls_cd_names-repnamec
|
||||
OR obj_name = ls_cd_names-repnamet
|
||||
OR obj_name = ls_cd_names-repnamefix
|
||||
OR obj_name = ls_cd_names-repnamevar ) )
|
||||
OR object = 'FUGR' AND obj_name = ls_cd_names-fgrp ).
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT lt_tcdrs INTO ls_tcdrs.
|
||||
DELETE ct_tadir WHERE pgmid = 'R3TR' AND object = 'TABL' AND obj_name = ls_tcdrs-tabname.
|
||||
ENDLOOP.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -136,7 +136,7 @@ CLASS zcl_abapgit_repo_labels IMPLEMENTATION.
|
|||
TRY.
|
||||
validate_one_label_color( <ls_c> ).
|
||||
APPEND <ls_c> TO lt_normalized.
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -225,7 +225,7 @@ CLASS zcl_abapgit_repo_labels IMPLEMENTATION.
|
|||
ro_map->set(
|
||||
iv_key = <ls_c>-label
|
||||
iv_val = <ls_c>-color ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD bind_listener.
|
||||
|
@ -402,7 +402,7 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
|||
METHOD get_unsupported_objects_local.
|
||||
|
||||
DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt,
|
||||
lt_supported_types TYPE zcl_abapgit_objects=>ty_types_tt.
|
||||
lt_supported_types TYPE zif_abapgit_objects=>ty_types_tt.
|
||||
|
||||
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF lt_tadir,
|
||||
<ls_object> LIKE LINE OF rt_objects.
|
||||
|
|
|
@ -115,7 +115,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD back.
|
||||
|
@ -373,7 +373,7 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
li_modal ?= ii_page.
|
||||
rv_yes = li_modal->is_modal( ).
|
||||
ENDIF.
|
||||
CATCH cx_sy_move_cast_error.
|
||||
CATCH cx_sy_move_cast_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -48,6 +48,7 @@ CLASS zcl_abapgit_html DEFINITION
|
|||
within_style TYPE abap_bool,
|
||||
within_js TYPE abap_bool,
|
||||
within_textarea TYPE abap_bool,
|
||||
within_pre TYPE abap_bool,
|
||||
indent TYPE i,
|
||||
indent_str TYPE string,
|
||||
END OF ty_indent_context .
|
||||
|
@ -59,6 +60,8 @@ CLASS zcl_abapgit_html DEFINITION
|
|||
script_close TYPE abap_bool,
|
||||
textarea_open TYPE abap_bool,
|
||||
textarea_close TYPE abap_bool,
|
||||
pre_open TYPE abap_bool,
|
||||
pre_close TYPE abap_bool,
|
||||
tag_close TYPE abap_bool,
|
||||
curly_close TYPE abap_bool,
|
||||
openings TYPE i,
|
||||
|
@ -85,7 +88,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_html IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD checkbox.
|
||||
|
@ -120,10 +123,6 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_debug_mode.
|
||||
gv_debug_mode = iv_mode.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD create.
|
||||
CREATE OBJECT ri_instance TYPE zcl_abapgit_html.
|
||||
IF iv_initial_chunk IS NOT INITIAL.
|
||||
|
@ -181,6 +180,17 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
" No indent for pre tags
|
||||
IF ls_study-pre_open = abap_true.
|
||||
cs_context-within_pre = abap_true.
|
||||
RETURN.
|
||||
ELSEIF ls_study-pre_close = abap_true.
|
||||
cs_context-within_pre = abap_false.
|
||||
RETURN.
|
||||
ELSEIF cs_context-within_pre = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
" First closing tag - shift back exceptionally
|
||||
IF ( ls_study-script_close = abap_true
|
||||
OR ls_study-style_close = abap_true
|
||||
|
@ -239,6 +249,11 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_debug_mode.
|
||||
gv_debug_mode = iv_mode.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD study_line.
|
||||
|
||||
DATA: lv_line TYPE string,
|
||||
|
@ -309,6 +324,16 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
" Pre (same assumptions as above)
|
||||
IF is_context-within_pre = abap_true AND lv_len >= 5 AND lv_line(5) = '</PRE'.
|
||||
rs_result-pre_close = abap_true.
|
||||
ELSEIF is_context-within_pre = abap_false AND lv_len >= 4 AND lv_line(4) = '<PRE'.
|
||||
FIND FIRST OCCURRENCE OF '</PRE' IN lv_line.
|
||||
IF sy-subrc > 0. " Not found
|
||||
rs_result-pre_open = abap_true.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -34,6 +34,8 @@ CLASS ltcl_html DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|||
indent3 FOR TESTING RAISING zcx_abapgit_exception,
|
||||
indent4 FOR TESTING RAISING zcx_abapgit_exception,
|
||||
indent5 FOR TESTING RAISING zcx_abapgit_exception,
|
||||
indent6 FOR TESTING RAISING zcx_abapgit_exception,
|
||||
indent7 FOR TESTING RAISING zcx_abapgit_exception,
|
||||
style1 FOR TESTING RAISING zcx_abapgit_exception.
|
||||
|
||||
METHODS:
|
||||
|
@ -130,6 +132,59 @@ CLASS ltcl_html IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD indent6.
|
||||
|
||||
" Content of textarea must not be indented
|
||||
DATA lv_exp TYPE string.
|
||||
|
||||
mo_html->add( '<td>' ).
|
||||
mo_html->add( '<textarea name="body" rows="10" cols="72">' ).
|
||||
mo_html->add( 'Some default' ).
|
||||
mo_html->add( 'content' ).
|
||||
mo_html->add( '</textarea>' ).
|
||||
mo_html->add( '</td>' ).
|
||||
|
||||
lv_exp = '<td>' && cl_abap_char_utilities=>newline &&
|
||||
'<textarea name="body" rows="10" cols="72">' && cl_abap_char_utilities=>newline &&
|
||||
'Some default' && cl_abap_char_utilities=>newline &&
|
||||
'content' && cl_abap_char_utilities=>newline &&
|
||||
'</textarea>' && cl_abap_char_utilities=>newline &&
|
||||
'</td>'.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_html->render( )
|
||||
exp = lv_exp ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD indent7.
|
||||
|
||||
" Content of pre tag must not be indented
|
||||
DATA lv_exp TYPE string.
|
||||
|
||||
mo_html->add( '<td>' ).
|
||||
mo_html->add( '<pre>' ).
|
||||
mo_html->add( 'Do not change' ).
|
||||
mo_html->add( ' the indent' ).
|
||||
mo_html->add( ' here' ).
|
||||
mo_html->add( '</pre>' ).
|
||||
mo_html->add( '</td>' ).
|
||||
|
||||
lv_exp = '<td>' && cl_abap_char_utilities=>newline &&
|
||||
'<pre>' && cl_abap_char_utilities=>newline &&
|
||||
'Do not change' && cl_abap_char_utilities=>newline &&
|
||||
' the indent' && cl_abap_char_utilities=>newline &&
|
||||
' here' && cl_abap_char_utilities=>newline &&
|
||||
'</pre>' && cl_abap_char_utilities=>newline &&
|
||||
'</td>'.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_html->render( )
|
||||
exp = lv_exp ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD style1.
|
||||
|
||||
DATA lv_exp TYPE string.
|
||||
|
|
|
@ -146,6 +146,7 @@ CLASS zcl_abapgit_exception_viewer IMPLEMENTATION.
|
|||
|
||||
METHOD goto_message.
|
||||
|
||||
DATA: lv_msg TYPE c LENGTH 100.
|
||||
DATA: lt_bdcdata TYPE STANDARD TABLE OF bdcdata,
|
||||
ls_bdcdata LIKE LINE OF lt_bdcdata.
|
||||
|
||||
|
@ -182,12 +183,13 @@ CLASS zcl_abapgit_exception_viewer IMPLEMENTATION.
|
|||
TABLES
|
||||
using_tab = lt_bdcdata
|
||||
EXCEPTIONS
|
||||
call_transaction_denied = 1
|
||||
tcode_invalid = 2
|
||||
OTHERS = 3.
|
||||
system_failure = 1 MESSAGE lv_msg
|
||||
communication_failure = 2 MESSAGE lv_msg
|
||||
resource_failure = 3
|
||||
OTHERS = 4.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
zcx_abapgit_exception=>raise( lv_msg ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -243,7 +243,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD class_constructor.
|
||||
|
@ -261,7 +261,7 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION.
|
|||
timezone = gv_time_zone
|
||||
EXCEPTIONS
|
||||
customizing_missing = 1
|
||||
OTHERS = 2.
|
||||
OTHERS = 2 ##FM_SUBRC_OK.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -54,7 +54,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_PAGE_HOC IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_page_hoc IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -96,14 +96,14 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_HOC IMPLEMENTATION.
|
|||
IF ls_control-page_menu_provider IS NOT BOUND. " try component itself
|
||||
TRY.
|
||||
ls_control-page_menu_provider ?= ii_child_component.
|
||||
CATCH cx_sy_move_cast_error.
|
||||
CATCH cx_sy_move_cast_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
||||
IF ls_control-page_title_provider IS NOT BOUND. " try component itself
|
||||
TRY.
|
||||
ls_control-page_title_provider ?= ii_child_component.
|
||||
CATCH cx_sy_move_cast_error.
|
||||
CATCH cx_sy_move_cast_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
||||
|
@ -132,7 +132,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_HOC IMPLEMENTATION.
|
|||
TRY.
|
||||
li_modal ?= mi_child.
|
||||
rv_is_modal = li_modal->is_modal( ).
|
||||
CATCH cx_sy_move_cast_error.
|
||||
CATCH cx_sy_move_cast_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -141,7 +141,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_HOC IMPLEMENTATION.
|
|||
METHOD detect_title_provider.
|
||||
TRY.
|
||||
ri_ref ?= mi_child.
|
||||
CATCH cx_sy_move_cast_error.
|
||||
CATCH cx_sy_move_cast_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_GUI_PICKLIST</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit - Pick from list</DESCRIPT>
|
||||
<DESCRIPT>abapGit - GUI Pick List</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
|
|
|
@ -30,6 +30,8 @@ CLASS zcl_abapgit_log_viewer DEFINITION
|
|||
source TYPE icon_d,
|
||||
callstack TYPE icon_d,
|
||||
cell_type TYPE salv_t_int4_column,
|
||||
id TYPE sy-msgid,
|
||||
number TYPE sy-msgno,
|
||||
END OF ty_log_out.
|
||||
TYPES:
|
||||
ty_log_outs TYPE STANDARD TABLE OF ty_log_out
|
||||
|
@ -91,7 +93,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_log_viewer IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD calculate_cell_type.
|
||||
|
@ -268,6 +270,10 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION.
|
|||
CATCH cx_sy_move_cast_error ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ELSEIF lr_message->id IS NOT INITIAL AND lr_message->number IS NOT INITIAL.
|
||||
ls_log-id = lr_message->id.
|
||||
ls_log-number = lr_message->number.
|
||||
ls_log-longtext = icon_system_help.
|
||||
ENDIF.
|
||||
|
||||
ls_log-obj_type = lr_message->obj_type.
|
||||
|
@ -387,6 +393,16 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION.
|
|||
lo_column->set_technical( abap_true ).
|
||||
ENDIF.
|
||||
|
||||
LOOP AT gt_log TRANSPORTING NO FIELDS WHERE id IS NOT INITIAL.
|
||||
EXIT.
|
||||
ENDLOOP.
|
||||
IF sy-subrc <> 0.
|
||||
lo_column = lo_columns->get_column( |ID| ).
|
||||
lo_column->set_technical( abap_true ).
|
||||
lo_column = lo_columns->get_column( |NUMBER| ).
|
||||
lo_column->set_technical( abap_true ).
|
||||
ENDIF.
|
||||
|
||||
ls_position = zcl_abapgit_popups=>center(
|
||||
iv_width = 125
|
||||
iv_height = 20 ).
|
||||
|
@ -424,31 +440,34 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION.
|
|||
lt_dummy2 TYPE TABLE OF dval,
|
||||
ls_help_info TYPE help_info.
|
||||
|
||||
IF is_log-exception IS NOT BOUND.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF is_log-exception IS BOUND.
|
||||
TRY.
|
||||
lx_abapgit ?= is_log-exception.
|
||||
CATCH cx_sy_move_cast_error.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
lv_docu_object = lx_abapgit->if_t100_message~t100key-msgid.
|
||||
lv_docu_object+2 = lx_abapgit->if_t100_message~t100key-msgno.
|
||||
|
||||
ls_help_info-call = 'D'.
|
||||
ls_help_info-spras = sy-langu.
|
||||
lv_docu_object = lx_abapgit->if_t100_message~t100key-msgid && lx_abapgit->if_t100_message~t100key-msgno.
|
||||
ls_help_info-messageid = lx_abapgit->if_t100_message~t100key-msgid.
|
||||
ls_help_info-messagenr = lx_abapgit->if_t100_message~t100key-msgno.
|
||||
ls_help_info-message = is_log-msg.
|
||||
ls_help_info-title = 'Longtext'.
|
||||
ls_help_info-docuid = 'NA'.
|
||||
ls_help_info-docuobject = lv_docu_object.
|
||||
ls_help_info-msgv1 = lx_abapgit->msgv1.
|
||||
ls_help_info-msgv2 = lx_abapgit->msgv2.
|
||||
ls_help_info-msgv3 = lx_abapgit->msgv3.
|
||||
ls_help_info-msgv4 = lx_abapgit->msgv4.
|
||||
ELSEIF is_log-id IS NOT INITIAL AND is_log-number IS NOT INITIAL.
|
||||
lv_docu_object = is_log-id && is_log-number.
|
||||
ls_help_info-messageid = is_log-id.
|
||||
ls_help_info-messagenr = is_log-number.
|
||||
ELSE.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ls_help_info-call = 'D'.
|
||||
ls_help_info-spras = sy-langu.
|
||||
ls_help_info-message = is_log-msg.
|
||||
ls_help_info-title = 'Longtext'.
|
||||
ls_help_info-docuid = 'NA'.
|
||||
ls_help_info-docuobject = condense( lv_docu_object ).
|
||||
|
||||
CALL FUNCTION 'HELP_START'
|
||||
EXPORTING
|
||||
|
|
|
@ -127,7 +127,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_page_codi_base IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD apply_filter_kind.
|
||||
|
@ -256,7 +256,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDCASE.
|
||||
CATCH cx_root.
|
||||
CATCH cx_root ##NO_HANDLER.
|
||||
" leave empty, fallback to default, defined elsewhere
|
||||
ENDTRY.
|
||||
|
||||
|
@ -340,7 +340,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
|
|||
RETURN.
|
||||
|
||||
ENDIF.
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_GUI_PAGE_WHEREUSED</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit where-used page</DESCRIPT>
|
||||
<DESCRIPT>abapGit - GUI Where-used</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
|
|
|
@ -422,7 +422,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
|
|||
DATA:
|
||||
ls_stats TYPE ty_stats,
|
||||
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||
lt_supported_types TYPE zcl_abapgit_objects=>ty_types_tt.
|
||||
lt_supported_types TYPE zif_abapgit_objects=>ty_types_tt.
|
||||
|
||||
ls_stats-measure = 'Number of Objects'.
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@ CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION.
|
|||
lo_colors->set(
|
||||
iv_key = lv_l
|
||||
iv_val = lv_l ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
|
|
|
@ -298,15 +298,15 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION.
|
|||
|
||||
DATA: lv_list TYPE string,
|
||||
li_html TYPE REF TO zif_abapgit_html,
|
||||
lt_types TYPE zcl_abapgit_objects=>ty_types_tt,
|
||||
lt_types TYPE zif_abapgit_objects=>ty_types_tt,
|
||||
lv_type LIKE LINE OF lt_types,
|
||||
lt_obj TYPE STANDARD TABLE OF ko100 WITH DEFAULT KEY,
|
||||
lv_class TYPE seoclsname,
|
||||
li_object TYPE REF TO zif_abapgit_object,
|
||||
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||
ls_metadata TYPE zif_abapgit_definitions=>ty_metadata,
|
||||
lv_step TYPE zif_abapgit_definitions=>ty_deserialization_step,
|
||||
lt_steps TYPE zif_abapgit_definitions=>ty_deserialization_step_tt.
|
||||
lv_step TYPE zif_abapgit_objects=>ty_deserialization_step,
|
||||
lt_steps TYPE zif_abapgit_objects=>ty_deserialization_step_tt.
|
||||
|
||||
FIELD-SYMBOLS: <ls_obj> TYPE ko100.
|
||||
|
||||
|
|
|
@ -528,7 +528,10 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION.
|
|||
lv_patched TYPE abap_bool,
|
||||
lv_is_patch_possible TYPE abap_bool.
|
||||
|
||||
" In case an object is falsely detected as changed, filename is empty and there's no diff object
|
||||
IF iv_filename IS NOT INITIAL.
|
||||
lv_patched = get_diff_object( iv_filename )->is_line_patched( iv_index ).
|
||||
ENDIF.
|
||||
|
||||
lv_is_patch_possible = is_patch_line_possible( is_diff_line ).
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD check_selected.
|
||||
|
@ -281,7 +281,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
|
|||
es_item = ls_item ).
|
||||
ls_changed_by-item = ls_item.
|
||||
INSERT ls_changed_by INTO TABLE lt_changed_by_remote.
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -348,7 +348,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
|
|||
|
||||
rt_transports = li_cts_api->get_transports_for_list( lt_items ).
|
||||
|
||||
CATCH zcx_abapgit_exception.
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -22,6 +22,7 @@ CLASS zcl_abapgit_popup_branch_list DEFINITION
|
|||
!iv_default_branch TYPE string OPTIONAL
|
||||
!iv_show_new_option TYPE abap_bool DEFAULT abap_false.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
DATA mv_repo_url TYPE string.
|
||||
|
@ -41,15 +42,6 @@ ENDCLASS.
|
|||
CLASS zcl_abapgit_popup_branch_list IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create.
|
||||
CREATE OBJECT ri_popup TYPE zcl_abapgit_popup_branch_list
|
||||
EXPORTING
|
||||
iv_url = iv_url
|
||||
iv_default_branch = iv_default_branch
|
||||
iv_show_new_option = iv_show_new_option.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
mv_repo_url = iv_url.
|
||||
mv_default_branch = zif_abapgit_git_definitions=>c_git_branch-heads_prefix && iv_default_branch.
|
||||
|
@ -57,14 +49,12 @@ CLASS zcl_abapgit_popup_branch_list IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_html_popup~create_picklist.
|
||||
|
||||
CREATE OBJECT ro_picklist
|
||||
METHOD create.
|
||||
CREATE OBJECT ri_popup TYPE zcl_abapgit_popup_branch_list
|
||||
EXPORTING
|
||||
iv_title = 'Choose Branch'
|
||||
it_list = fetch_branch_list( )
|
||||
ii_item_renderer = me.
|
||||
|
||||
iv_url = iv_url
|
||||
iv_default_branch = iv_default_branch
|
||||
iv_show_new_option = iv_show_new_option.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -109,7 +99,6 @@ CLASS zcl_abapgit_popup_branch_list IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <ls_b> TYPE zif_abapgit_git_definitions=>ty_git_branch.
|
||||
|
||||
ASSIGN iv_item TO <ls_b>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
" TODO render mv_default_branch properly, needs respecting support from the picklist components
|
||||
|
||||
|
@ -120,4 +109,15 @@ CLASS zcl_abapgit_popup_branch_list IMPLEMENTATION.
|
|||
ri_html = zcl_abapgit_html=>create( |{ <ls_b>-display_name }{ lv_head_marker }| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_html_popup~create_picklist.
|
||||
|
||||
CREATE OBJECT ro_picklist
|
||||
EXPORTING
|
||||
iv_title = 'Choose Branch'
|
||||
it_list = fetch_branch_list( )
|
||||
ii_item_renderer = me.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -24,7 +24,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_POPUP_CODE_INSP IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_popup_code_insp IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create.
|
||||
|
@ -44,7 +44,6 @@ CLASS ZCL_ABAPGIT_POPUP_CODE_INSP IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <ls_item> TYPE LINE OF zif_abapgit_code_inspector=>ty_variants.
|
||||
|
||||
ASSIGN iv_item TO <ls_item>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ri_html = zcl_abapgit_html=>create( |<b>{ <ls_item>-name }</b> - { <ls_item>-description }| ).
|
||||
|
||||
|
|
|
@ -67,7 +67,6 @@ CLASS zcl_abapgit_popup_pull_request IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <ls_pr> TYPE zif_abapgit_pr_enum_provider=>ty_pull_request.
|
||||
|
||||
ASSIGN iv_item TO <ls_pr>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ri_html = zcl_abapgit_html=>create( |<b>{ <ls_pr>-number }</b> - { <ls_pr>-title } @{ <ls_pr>-user }| ).
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ CLASS zcl_abapgit_popup_tag_list DEFINITION
|
|||
IMPORTING
|
||||
iv_url TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
DATA mv_repo_url TYPE string.
|
||||
|
@ -34,26 +35,15 @@ ENDCLASS.
|
|||
CLASS zcl_abapgit_popup_tag_list IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create.
|
||||
CREATE OBJECT ri_popup TYPE zcl_abapgit_popup_tag_list
|
||||
EXPORTING
|
||||
iv_url = iv_url.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
mv_repo_url = iv_url.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_html_popup~create_picklist.
|
||||
|
||||
CREATE OBJECT ro_picklist
|
||||
METHOD create.
|
||||
CREATE OBJECT ri_popup TYPE zcl_abapgit_popup_tag_list
|
||||
EXPORTING
|
||||
iv_title = 'Choose Tag'
|
||||
it_list = fetch_tag_list( )
|
||||
ii_item_renderer = me.
|
||||
|
||||
iv_url = iv_url.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -80,9 +70,19 @@ CLASS zcl_abapgit_popup_tag_list IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <ls_tag> TYPE zif_abapgit_git_definitions=>ty_git_branch.
|
||||
|
||||
ASSIGN iv_item TO <ls_tag>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ri_html = zcl_abapgit_html=>create( |{ <ls_tag>-display_name }| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_html_popup~create_picklist.
|
||||
|
||||
CREATE OBJECT ro_picklist
|
||||
EXPORTING
|
||||
iv_title = 'Choose Tag'
|
||||
it_list = fetch_tag_list( )
|
||||
ii_item_renderer = me.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -186,7 +186,8 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
|||
EXCEPTIONS
|
||||
communication_failure = 1 MESSAGE lv_msg
|
||||
system_failure = 2 MESSAGE lv_msg
|
||||
OTHERS = 3.
|
||||
resource_failure = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
lv_msg = |Error starting transaction { iv_tcode }: { lv_msg }|.
|
||||
MESSAGE lv_msg TYPE 'I'.
|
||||
|
@ -478,6 +479,22 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD go_stage_transport.
|
||||
|
||||
DATA lt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
|
||||
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
|
||||
|
||||
lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ).
|
||||
|
||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
|
||||
CREATE OBJECT ro_filter.
|
||||
ro_filter->set_filter_values( iv_package = lo_repo->get_package( )
|
||||
it_r_trkorr = lt_r_trkorr ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD jump_display_transport.
|
||||
|
||||
DATA:
|
||||
|
@ -762,6 +779,28 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zip_export_transport.
|
||||
|
||||
DATA lo_obj_filter_trans TYPE REF TO zcl_abapgit_object_filter_tran.
|
||||
DATA lt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
|
||||
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
|
||||
lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ).
|
||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
lo_repo->refresh( ).
|
||||
CREATE OBJECT lo_obj_filter_trans.
|
||||
lo_obj_filter_trans->set_filter_values( iv_package = lo_repo->get_package( )
|
||||
it_r_trkorr = lt_r_trkorr ).
|
||||
|
||||
lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local_filtered( lo_obj_filter_trans ) ).
|
||||
lo_repo->refresh( ).
|
||||
file_download( iv_package = lo_repo->get_package( )
|
||||
iv_xstr = lv_xstr ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zip_services.
|
||||
|
||||
DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
|
||||
|
@ -860,40 +899,4 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
|||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zip_export_transport.
|
||||
|
||||
DATA lo_obj_filter_trans TYPE REF TO zcl_abapgit_object_filter_tran.
|
||||
DATA lt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
|
||||
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
|
||||
lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ).
|
||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
lo_repo->refresh( ).
|
||||
CREATE OBJECT lo_obj_filter_trans.
|
||||
lo_obj_filter_trans->set_filter_values( iv_package = lo_repo->get_package( )
|
||||
it_r_trkorr = lt_r_trkorr ).
|
||||
|
||||
lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local_filtered( lo_obj_filter_trans ) ).
|
||||
lo_repo->refresh( ).
|
||||
file_download( iv_package = lo_repo->get_package( )
|
||||
iv_xstr = lv_xstr ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD go_stage_transport.
|
||||
|
||||
DATA lt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
|
||||
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
|
||||
|
||||
lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ).
|
||||
|
||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
|
||||
CREATE OBJECT ro_filter.
|
||||
ro_filter->set_filter_values( iv_package = lo_repo->get_package( )
|
||||
it_r_trkorr = lt_r_trkorr ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -263,4 +263,4 @@ div.log { color: var(--theme-greyscale-dark); }
|
|||
.dialog input[readonly] {
|
||||
background-color: var(--theme-greyscale-dark);
|
||||
color: var(--theme-greyscale-medium);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -248,7 +248,7 @@ CLASS lcl_object_decision_list IMPLEMENTATION.
|
|||
TRY.
|
||||
lo_columns->get_column( |{ c_fieldname_obj_type }| ).
|
||||
lv_object_list = abap_true.
|
||||
CATCH cx_salv_not_found.
|
||||
CATCH cx_salv_not_found ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
setup_columns(
|
||||
|
|
|
@ -12,7 +12,7 @@ INTERFACE zif_abapgit_popups
|
|||
show_icon TYPE abap_bool,
|
||||
center TYPE abap_bool,
|
||||
END OF ty_alv_column,
|
||||
ty_alv_column_tt TYPE TABLE OF ty_alv_column WITH DEFAULT KEY.
|
||||
ty_alv_column_tt TYPE STANDARD TABLE OF ty_alv_column WITH DEFAULT KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_popup_position,
|
||||
|
|
|
@ -85,7 +85,7 @@ CLASS zcl_abapgit_convert DEFINITION
|
|||
VALUE(rv_xstr) TYPE xstring .
|
||||
CLASS-METHODS xstring_to_bintab
|
||||
IMPORTING
|
||||
!iv_xstr TYPE xstring
|
||||
!iv_xstr TYPE xsequence
|
||||
EXPORTING
|
||||
!ev_size TYPE i
|
||||
!et_bintab TYPE STANDARD TABLE .
|
||||
|
@ -144,6 +144,7 @@ ENDCLASS.
|
|||
|
||||
CLASS zcl_abapgit_convert IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD base64_to_xstring.
|
||||
|
||||
rv_xstr = cl_http_utility=>decode_x_base64( iv_base64 ).
|
||||
|
@ -207,32 +208,6 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD language_sap1_to_bcp47.
|
||||
DATA lv_converter_instance TYPE REF TO object.
|
||||
DATA lv_converter_class_name TYPE string VALUE `CL_AFF_LANGUAGE_CONVERTER`.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (lv_converter_class_name)=>create_instance
|
||||
RECEIVING
|
||||
result = lv_converter_instance.
|
||||
|
||||
TRY.
|
||||
CALL METHOD lv_converter_instance->(`IF_AFF_LANGUAGE_CONVERTER~SAP1_TO_BCP47`)
|
||||
EXPORTING
|
||||
language = im_lang_sap1
|
||||
RECEIVING
|
||||
result = re_lang_bcp47.
|
||||
CATCH cx_static_check.
|
||||
RAISE no_assignment.
|
||||
ENDTRY.
|
||||
CATCH cx_sy_dyn_call_error.
|
||||
TRY.
|
||||
re_lang_bcp47 = lcl_bcp47_language_table=>sap1_to_bcp47( im_lang_sap1 ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
RAISE no_assignment.
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD language_bcp47_to_sap1.
|
||||
DATA lv_converter_instance TYPE REF TO object.
|
||||
|
@ -289,6 +264,35 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD language_sap1_to_bcp47.
|
||||
DATA lv_converter_instance TYPE REF TO object.
|
||||
DATA lv_converter_class_name TYPE string VALUE `CL_AFF_LANGUAGE_CONVERTER`.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (lv_converter_class_name)=>create_instance
|
||||
RECEIVING
|
||||
result = lv_converter_instance.
|
||||
|
||||
TRY.
|
||||
CALL METHOD lv_converter_instance->(`IF_AFF_LANGUAGE_CONVERTER~SAP1_TO_BCP47`)
|
||||
EXPORTING
|
||||
language = im_lang_sap1
|
||||
RECEIVING
|
||||
result = re_lang_bcp47.
|
||||
CATCH cx_static_check.
|
||||
RAISE no_assignment.
|
||||
ENDTRY.
|
||||
CATCH cx_sy_dyn_call_error.
|
||||
TRY.
|
||||
re_lang_bcp47 = lcl_bcp47_language_table=>sap1_to_bcp47( im_lang_sap1 ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
RAISE no_assignment.
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD language_sap1_to_sap2.
|
||||
|
||||
TRY.
|
||||
|
@ -381,6 +385,42 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD uccp.
|
||||
|
||||
DATA lv_class TYPE string.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
DATA lo_instance TYPE REF TO object.
|
||||
|
||||
lv_class = 'CL_ABAP_CONV_IN_CE'.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (lv_class)=>uccp
|
||||
EXPORTING
|
||||
uccp = iv_uccp
|
||||
RECEIVING
|
||||
char = rv_char.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
lv_xstr = iv_uccp.
|
||||
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
||||
EXPORTING
|
||||
codepage = 'UTF-16'
|
||||
RECEIVING
|
||||
instance = lo_instance.
|
||||
|
||||
* convert endianness
|
||||
CONCATENATE lv_xstr+1(1) lv_xstr(1) INTO lv_xstr IN BYTE MODE.
|
||||
|
||||
CALL METHOD lo_instance->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = lv_xstr
|
||||
RECEIVING
|
||||
result = rv_char.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD xstring_remove_bom.
|
||||
|
||||
rv_xstr = iv_xstr.
|
||||
|
@ -405,10 +445,13 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
|
|||
|
||||
FIELD-SYMBOLS <lg_line> TYPE any.
|
||||
|
||||
|
||||
CLEAR et_bintab.
|
||||
ev_size = xstrlen( iv_xstr ).
|
||||
|
||||
IF iv_xstr IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
APPEND INITIAL LINE TO et_bintab ASSIGNING <lg_line>.
|
||||
lv_struct = boolc(
|
||||
cl_abap_typedescr=>describe_by_data( <lg_line> )->type_kind = cl_abap_typedescr=>typekind_struct1 ).
|
||||
|
@ -418,7 +461,9 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
|
|||
<lg_line> = iv_xstr.
|
||||
|
||||
lv_length = cl_abap_typedescr=>describe_by_data( <lg_line> )->length.
|
||||
lv_iterations = ev_size DIV lv_length.
|
||||
ASSERT lv_length > 0.
|
||||
|
||||
lv_iterations = ( ev_size - 1 ) DIV lv_length.
|
||||
|
||||
DO lv_iterations TIMES.
|
||||
lv_offset = sy-index * lv_length.
|
||||
|
@ -493,39 +538,4 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
|
|||
GET BIT 8 OF iv_x INTO rv_bitbyte+7(1).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD uccp.
|
||||
|
||||
DATA lv_class TYPE string.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
DATA lo_instance TYPE REF TO object.
|
||||
|
||||
lv_class = 'CL_ABAP_CONV_IN_CE'.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (lv_class)=>uccp
|
||||
EXPORTING
|
||||
uccp = iv_uccp
|
||||
RECEIVING
|
||||
char = rv_char.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
lv_xstr = iv_uccp.
|
||||
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
||||
EXPORTING
|
||||
codepage = 'UTF-16'
|
||||
RECEIVING
|
||||
instance = lo_instance.
|
||||
|
||||
* convert endianness
|
||||
CONCATENATE lv_xstr+1(1) lv_xstr(1) INTO lv_xstr IN BYTE MODE.
|
||||
|
||||
CALL METHOD lo_instance->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = lv_xstr
|
||||
RECEIVING
|
||||
result = rv_char.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -125,16 +125,22 @@ CLASS lcl_bcp47_language_table DEFINITION CREATE PRIVATE.
|
|||
bcp47_code TYPE string,
|
||||
END OF ty_language_mapping,
|
||||
ty_language_mappings TYPE STANDARD TABLE OF ty_language_mapping WITH DEFAULT KEY.
|
||||
CLASS-DATA gv_language_mappings TYPE ty_language_mappings.
|
||||
CLASS-DATA gt_language_mappings TYPE ty_language_mappings.
|
||||
CLASS-METHODS:
|
||||
sap1_to_sap2
|
||||
IMPORTING im_sap1 TYPE sy-langu
|
||||
RETURNING VALUE(re_sap2) TYPE laiso
|
||||
RAISING zcx_abapgit_exception,
|
||||
IMPORTING
|
||||
im_sap1 TYPE sy-langu
|
||||
RETURNING
|
||||
VALUE(re_sap2) TYPE laiso
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
sap2_to_sap1
|
||||
IMPORTING im_sap2 TYPE laiso
|
||||
RETURNING VALUE(re_sap1) TYPE sy-langu
|
||||
RAISING zcx_abapgit_exception,
|
||||
IMPORTING
|
||||
im_sap2 TYPE laiso
|
||||
RETURNING
|
||||
VALUE(re_sap1) TYPE sy-langu
|
||||
RAISING
|
||||
zcx_abapgit_exception,
|
||||
sap1_to_bcp47
|
||||
IMPORTING
|
||||
im_sap1 TYPE sy-langu
|
||||
|
@ -168,11 +174,11 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
|
|||
METHOD sap1_to_bcp47.
|
||||
DATA lv_language_mapping TYPE ty_language_mapping.
|
||||
|
||||
IF gv_language_mappings IS INITIAL OR lines( gv_language_mappings ) = 0.
|
||||
IF gt_language_mappings IS INITIAL OR lines( gt_language_mappings ) = 0.
|
||||
fill_language_mappings( ).
|
||||
ENDIF.
|
||||
|
||||
LOOP AT gv_language_mappings INTO lv_language_mapping WHERE sap1_code = im_sap1.
|
||||
LOOP AT gt_language_mappings INTO lv_language_mapping WHERE sap1_code = im_sap1.
|
||||
IF re_bcp47 IS INITIAL OR strlen( re_bcp47 ) > strlen( lv_language_mapping-bcp47_code ).
|
||||
re_bcp47 = lv_language_mapping-bcp47_code.
|
||||
ENDIF.
|
||||
|
@ -186,11 +192,11 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
|
|||
METHOD bcp47_to_sap1.
|
||||
DATA lv_language_mapping TYPE ty_language_mapping.
|
||||
|
||||
IF gv_language_mappings IS INITIAL OR lines( gv_language_mappings ) = 0.
|
||||
IF gt_language_mappings IS INITIAL OR lines( gt_language_mappings ) = 0.
|
||||
fill_language_mappings( ).
|
||||
ENDIF.
|
||||
|
||||
LOOP AT gv_language_mappings INTO lv_language_mapping.
|
||||
LOOP AT gt_language_mappings INTO lv_language_mapping.
|
||||
IF to_lower( lv_language_mapping-bcp47_code ) = to_lower( im_bcp47 ) AND re_sap1 IS INITIAL.
|
||||
re_sap1 = lv_language_mapping-sap1_code.
|
||||
ENDIF.
|
||||
|
@ -205,26 +211,26 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
|
|||
METHOD sap1_to_sap2.
|
||||
DATA lv_language_mapping TYPE ty_language_mapping.
|
||||
|
||||
IF gv_language_mappings IS INITIAL.
|
||||
IF gt_language_mappings IS INITIAL.
|
||||
fill_language_mappings( ).
|
||||
ENDIF.
|
||||
|
||||
READ TABLE gv_language_mappings WITH KEY sap1_code = im_sap1 INTO lv_language_mapping.
|
||||
READ TABLE gt_language_mappings WITH KEY sap1_code = im_sap1 INTO lv_language_mapping.
|
||||
re_sap2 = lv_language_mapping-sap2_code.
|
||||
|
||||
IF re_sap2 IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |Could not convert SAP1 language code { im_sap1 } to SAP2 language code.| ).
|
||||
zcx_abapgit_exception=>raise( |Could not map SAP1 language code { im_sap1 } to SAP2 language code.| ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sap2_to_sap1.
|
||||
DATA lv_language_mapping TYPE ty_language_mapping.
|
||||
|
||||
IF gv_language_mappings IS INITIAL.
|
||||
IF gt_language_mappings IS INITIAL.
|
||||
fill_language_mappings( ).
|
||||
ENDIF.
|
||||
|
||||
READ TABLE gv_language_mappings WITH KEY sap2_code = im_sap2 INTO lv_language_mapping.
|
||||
READ TABLE gt_language_mappings WITH KEY sap2_code = im_sap2 INTO lv_language_mapping.
|
||||
re_sap1 = lv_language_mapping-sap1_code.
|
||||
|
||||
IF re_sap1 IS INITIAL.
|
||||
|
@ -237,7 +243,13 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
|
|||
DATA lv_sap1 TYPE sy-langu.
|
||||
|
||||
IF strlen( im_sap1 ) = 4.
|
||||
TRY.
|
||||
lv_sap1 = zcl_abapgit_convert=>uccp( im_sap1 ).
|
||||
CATCH cx_root.
|
||||
" Language is not supported in this system -> ignore it
|
||||
" Should someone try to use the language in a repo, it will result in an error (see above)
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
ELSEIF strlen( im_sap1 ) = 1.
|
||||
lv_sap1 = im_sap1.
|
||||
ENDIF.
|
||||
|
@ -246,7 +258,7 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
|
|||
lv_line-sap2_code = im_sap2.
|
||||
lv_line-sap1_code = lv_sap1.
|
||||
|
||||
APPEND lv_line TO gv_language_mappings.
|
||||
APPEND lv_line TO gt_language_mappings.
|
||||
CLEAR lv_line.
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -19,6 +19,9 @@ CLASS ltcl_convert DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FIN
|
|||
METHODS string_to_xstring FOR TESTING RAISING zcx_abapgit_exception.
|
||||
METHODS xstring_to_bintab FOR TESTING.
|
||||
METHODS xstring_to_bintab_with_field FOR TESTING.
|
||||
METHODS xstring_to_bintab_initial FOR TESTING.
|
||||
METHODS xstring_to_bintab_long FOR TESTING.
|
||||
METHODS xstring_to_bintab_exact FOR TESTING.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -74,6 +77,89 @@ CLASS ltcl_convert IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD xstring_to_bintab_initial.
|
||||
|
||||
DATA lt_bintab TYPE TABLE OF w3mime.
|
||||
DATA lv_size TYPE i.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
|
||||
zcl_abapgit_convert=>xstring_to_bintab(
|
||||
EXPORTING
|
||||
iv_xstr = lv_xstr
|
||||
IMPORTING
|
||||
ev_size = lv_size
|
||||
et_bintab = lt_bintab ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_size
|
||||
exp = 0 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lines( lt_bintab )
|
||||
exp = 0 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD xstring_to_bintab_long.
|
||||
|
||||
DATA lt_bintab TYPE TABLE OF w3mime. " x(255)
|
||||
DATA lv_bin LIKE LINE OF lt_bintab.
|
||||
DATA lv_size TYPE i.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
|
||||
lv_xstr = repeat(
|
||||
val = '1122334455'
|
||||
occ = 200 ).
|
||||
|
||||
zcl_abapgit_convert=>xstring_to_bintab(
|
||||
EXPORTING
|
||||
iv_xstr = lv_xstr
|
||||
IMPORTING
|
||||
ev_size = lv_size
|
||||
et_bintab = lt_bintab ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_size
|
||||
exp = 1000 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lines( lt_bintab )
|
||||
exp = 4 ).
|
||||
|
||||
READ TABLE lt_bintab INTO lv_bin INDEX 4.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_bin-line+230(10)
|
||||
exp = '11223344550000000000' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD xstring_to_bintab_exact.
|
||||
|
||||
TYPES ty_line TYPE x LENGTH 5.
|
||||
DATA lv_xdata TYPE x LENGTH 10.
|
||||
DATA lt_bintab TYPE TABLE OF ty_line.
|
||||
DATA lv_size TYPE i.
|
||||
|
||||
lv_xdata = '1122334455FFEEDDCCBB'.
|
||||
|
||||
" must not dump if content fits exactly into bintab
|
||||
zcl_abapgit_convert=>xstring_to_bintab(
|
||||
EXPORTING
|
||||
iv_xstr = lv_xdata
|
||||
IMPORTING
|
||||
ev_size = lv_size
|
||||
et_bintab = lt_bintab ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_size
|
||||
exp = 10 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lines( lt_bintab )
|
||||
exp = 2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD string_to_xstring.
|
||||
|
||||
|
@ -331,12 +417,15 @@ CLASS ltcl_bcp47_to_sap1 IMPLEMENTATION.
|
|||
DATA lv_result TYPE sy-langu.
|
||||
lv_result = zcl_abapgit_convert=>language_bcp47_to_sap1( im_from ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = im_to
|
||||
act = lv_result ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = im_to
|
||||
act = lv_result
|
||||
msg = |Converting "{ im_from }" should result in "{ im_to }"| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_bcp47_to_sap1_fail.
|
||||
DATA lv_result TYPE string.
|
||||
DATA lv_act TYPE sy-subrc.
|
||||
|
||||
zcl_abapgit_convert=>language_bcp47_to_sap1(
|
||||
EXPORTING
|
||||
|
@ -347,8 +436,13 @@ CLASS ltcl_bcp47_to_sap1 IMPLEMENTATION.
|
|||
no_assignment = 1
|
||||
OTHERS = 2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1
|
||||
act = sy-subrc ).
|
||||
" Assert itself might change sy-subrc (it does in 702!)
|
||||
lv_act = sy-subrc.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 1
|
||||
act = lv_act
|
||||
msg = |Converting "{ im_from }" should fail| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD english.
|
||||
|
@ -466,14 +560,18 @@ CLASS ltcl_sap1_to_bcp47 IMPLEMENTATION.
|
|||
|
||||
METHOD assert_sap1_to_bcp47.
|
||||
DATA lv_result TYPE string.
|
||||
|
||||
lv_result = zcl_abapgit_convert=>language_sap1_to_bcp47( im_from ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = im_to
|
||||
act = lv_result ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = im_to
|
||||
act = lv_result
|
||||
msg = |Converting "{ im_from }" should result in "{ im_to }"| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_sap1_to_bcp47_fail.
|
||||
DATA lv_result TYPE string.
|
||||
DATA lv_act TYPE sy-subrc.
|
||||
|
||||
zcl_abapgit_convert=>language_sap1_to_bcp47(
|
||||
EXPORTING
|
||||
|
@ -484,8 +582,13 @@ CLASS ltcl_sap1_to_bcp47 IMPLEMENTATION.
|
|||
no_assignment = 1
|
||||
OTHERS = 2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1
|
||||
act = sy-subrc ).
|
||||
" Assert itself might change sy-subrc (it does in 702!)
|
||||
lv_act = sy-subrc.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 1
|
||||
act = lv_act
|
||||
msg = |Converting "{ im_from }" should fail| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD english.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user