mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Compare commits
No commits in common. "main" and "v1.128.0" have entirely different histories.
|
@ -1,10 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "abapGit",
|
"name": "abapGit",
|
||||||
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-20",
|
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-12",
|
||||||
"customizations": {
|
"extensions": ["larshp.vscode-abaplint"],
|
||||||
"vscode": {
|
|
||||||
"extensions": ["larshp.vscode-abaplint"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"postCreateCommand": "npm install"
|
"postCreateCommand": "npm install"
|
||||||
}
|
}
|
14
.eslintrc.yaml
Normal file
14
.eslintrc.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
parserOptions:
|
||||||
|
ecmaVersion: 5
|
||||||
|
env:
|
||||||
|
browser: true
|
||||||
|
extends:
|
||||||
|
- eslint:recommended
|
||||||
|
rules:
|
||||||
|
quotes: ['error', 'double', { 'avoidEscape': true }]
|
||||||
|
semi: ['error', 'always', { 'omitLastInOneLineBlock': true}]
|
||||||
|
no-console: off
|
||||||
|
indent: ['error', 2]
|
||||||
|
no-trailing-spaces: ['error']
|
||||||
|
no-unused-vars: ['warn']
|
7
.github/workflows/ajson_mirror.yaml
vendored
7
.github/workflows/ajson_mirror.yaml
vendored
|
@ -19,8 +19,11 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-node@v4
|
- name: Use Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
- name: run
|
- name: run
|
||||||
run: |
|
run: |
|
||||||
git clone https://github.com/abapGit/ajson_mirror.git
|
git clone https://github.com/abapGit/ajson_mirror.git
|
||||||
|
|
23
.github/workflows/main-build.yml
vendored
23
.github/workflows/main-build.yml
vendored
|
@ -9,8 +9,11 @@ jobs:
|
||||||
build-merged:
|
build-merged:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-node@v4
|
- name: Use Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
- name: Run npm steps
|
- name: Run npm steps
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install
|
||||||
|
@ -41,10 +44,12 @@ jobs:
|
||||||
outputs:
|
outputs:
|
||||||
pushedTag: ${{ steps.deploy-release-tag.outputs.pushedTag }}
|
pushedTag: ${{ steps.deploy-release-tag.outputs.pushedTag }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 2
|
fetch-depth: 2
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
- name: deploy-release-tag
|
- name: deploy-release-tag
|
||||||
id: deploy-release-tag
|
id: deploy-release-tag
|
||||||
if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
|
if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
|
||||||
|
@ -59,12 +64,12 @@ jobs:
|
||||||
needs: [build-merged, auto-tag]
|
needs: [build-merged, auto-tag]
|
||||||
if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit' && !!needs.auto-tag.outputs.pushedTag
|
if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit' && !!needs.auto-tag.outputs.pushedTag
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: abapGit/build
|
repository: abapGit/build
|
||||||
path: build
|
path: build
|
||||||
ssh-key: ${{ secrets.DEPLOY_ABAPGIT_BUILD }}
|
ssh-key: ${{ secrets.DEPLOY_ABAPGIT_BUILD }}
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: abapGit
|
path: abapGit
|
||||||
- name: mirror tag to the artifact
|
- name: mirror tag to the artifact
|
||||||
|
@ -79,8 +84,10 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
- name: npm run unit
|
- name: npm run unit
|
||||||
run: |
|
run: |
|
||||||
npm install
|
npm install
|
||||||
|
|
4
.github/workflows/reuse.yml
vendored
4
.github/workflows/reuse.yml
vendored
|
@ -6,6 +6,6 @@ jobs:
|
||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- name: REUSE Compliance Check
|
- name: REUSE Compliance Check
|
||||||
uses: fsfe/reuse-action@v5
|
uses: fsfe/reuse-action@v1
|
||||||
|
|
36
.github/workflows/test-pr.yml
vendored
36
.github/workflows/test-pr.yml
vendored
|
@ -11,9 +11,12 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v3
|
||||||
- run: |
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
- name: npm install
|
||||||
|
run: |
|
||||||
npm install
|
npm install
|
||||||
npm run eslint
|
npm run eslint
|
||||||
npm run merge
|
npm run merge
|
||||||
|
@ -29,21 +32,30 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v3
|
||||||
- run: npm install
|
with:
|
||||||
- run: npm run unit
|
node-version: '20'
|
||||||
- run: npm run coverage
|
- name: npm install
|
||||||
|
run: npm install
|
||||||
|
- name: npm run unit
|
||||||
|
run: npm run unit
|
||||||
|
- name: npm run coverage
|
||||||
|
run: npm run coverage
|
||||||
|
|
||||||
integration:
|
integration:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: unit-tests
|
needs: unit-tests
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v3
|
||||||
- run: npm install
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
- name: npm install
|
||||||
|
run: npm install
|
||||||
- name: start gitea
|
- name: start gitea
|
||||||
working-directory: test/gitea/
|
working-directory: test/gitea/
|
||||||
run: npm install && npm run gitea
|
run: npm install && npm run gitea
|
||||||
- run: npm run integration
|
- name: npm run integration
|
||||||
|
run: npm run integration
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://api.reuse.software/info/github.com/abapGit/abapGit)
|
[](https://api.reuse.software/info/github.com/abapGit/abapGit)
|
||||||
[](https://communityinviter.com/apps/abapgit/abap)
|
[](https://communityinviter.com/apps/abapgit/abap)
|
||||||
[](https://github.com/abapGit/abapGit/blob/main/src/zif_abapgit_version.intf.abap)
|
[](https://github.com/abapGit/abapGit/blob/main/src/zif_abapgit_version.intf.abap)
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<picture>
|
<picture>
|
||||||
|
@ -68,5 +69,4 @@ For questions/comments/bugs/feature requests/wishes please create an [issue](htt
|
||||||
|
|
||||||
- Icons used in abapGit are created from [Font Awesome](https://fontawesome.com/) free icon set ([CC-BY-4.0](LICENSES/CC-BY-4.0.txt))
|
- Icons used in abapGit are created from [Font Awesome](https://fontawesome.com/) free icon set ([CC-BY-4.0](LICENSES/CC-BY-4.0.txt))
|
||||||
- [AJSON](https://github.com/sbcgua/ajson) and [String-Map](https://github.com/sbcgua/abap-string-map) are developed by Alexander Tsybulsky ([MIT](LICENSES/MIT.txt))
|
- [AJSON](https://github.com/sbcgua/ajson) and [String-Map](https://github.com/sbcgua/abap-string-map) are developed by Alexander Tsybulsky ([MIT](LICENSES/MIT.txt))
|
||||||
- [AFF](https://github.com/SAP/abap-file-formats) formats are by SAP ([MIT](LICENSES/MIT.txt))
|
|
||||||
|
|
||||||
|
|
|
@ -11,43 +11,11 @@
|
||||||
"folder": "/deps"
|
"folder": "/deps"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"url": "https://github.com/abaplint/deps",
|
|
||||||
"files": "/src/**/*.*",
|
"files": "/src/**/*.*",
|
||||||
"folder": "/lint_deps"
|
"folder": "/lint_deps",
|
||||||
|
"url": "https://github.com/abaplint/deps"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"syntax": {
|
|
||||||
"errorNamespace": "^(Z|Y|LT?CL_|TY_|LIF_|C_|.*ABAPGIT)",
|
|
||||||
"globalConstants": [
|
|
||||||
"abap_func_exporting",
|
|
||||||
"abap_func_tables",
|
|
||||||
"cssf_formtype_text",
|
|
||||||
"seok_access_free",
|
|
||||||
"seok_access_modify",
|
|
||||||
"sews_c_vif_version",
|
|
||||||
"skwfc_obtype_folder",
|
|
||||||
"skwfc_obtype_loio",
|
|
||||||
"so2_controller",
|
|
||||||
"srext_ext_class_pool",
|
|
||||||
"srext_ext_interface_pool",
|
|
||||||
"ststc_c_type_dialog",
|
|
||||||
"ststc_c_type_object",
|
|
||||||
"ststc_c_type_parameters",
|
|
||||||
"ststc_c_type_report",
|
|
||||||
"swbm_c_op_delete_no_dialog",
|
|
||||||
"swbm_c_type_ddic_db_tabxinx",
|
|
||||||
"swbm_c_type_wdy_application",
|
|
||||||
"swbm_version_active",
|
|
||||||
"swbm_version_inactive",
|
|
||||||
"swfco_org_standard_task",
|
|
||||||
"swfco_org_workflow_template",
|
|
||||||
"wbmr_c_skwf_folder_class",
|
|
||||||
"wdyn_limu_component_controller",
|
|
||||||
"wdyn_limu_component_definition",
|
|
||||||
"wdyn_limu_component_view"
|
|
||||||
],
|
|
||||||
"version": "v702"
|
|
||||||
},
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"7bit_ascii": {
|
"7bit_ascii": {
|
||||||
"exclude": [
|
"exclude": [
|
||||||
|
@ -57,11 +25,6 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"abapdoc": false,
|
"abapdoc": false,
|
||||||
"align_type_expressions": true,
|
|
||||||
"align_pseudo_comments": false,
|
|
||||||
"invalid_table_index": true,
|
|
||||||
"tables_declared_locally": true,
|
|
||||||
"unused_macros": true,
|
|
||||||
"align_parameters": false,
|
"align_parameters": false,
|
||||||
"allowed_object_naming": true,
|
"allowed_object_naming": true,
|
||||||
"allowed_object_types": {
|
"allowed_object_types": {
|
||||||
|
@ -158,11 +121,8 @@
|
||||||
},
|
},
|
||||||
"double_space": true,
|
"double_space": true,
|
||||||
"downport": false,
|
"downport": false,
|
||||||
"add_test_attributes": true,
|
|
||||||
"implicit_start_of_selection": true,
|
|
||||||
"empty_event": true,
|
|
||||||
"dynpro_checks": false,
|
"dynpro_checks": false,
|
||||||
"easy_to_find_messages": false,
|
"easy_to_find_messages": true,
|
||||||
"empty_line_in_statement": {
|
"empty_line_in_statement": {
|
||||||
"allowChained": true
|
"allowChained": true
|
||||||
},
|
},
|
||||||
|
@ -171,7 +131,6 @@
|
||||||
"at": true,
|
"at": true,
|
||||||
"case": true,
|
"case": true,
|
||||||
"do": true,
|
"do": true,
|
||||||
"loopAllowIfSubrc": false,
|
|
||||||
"if": false,
|
"if": false,
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"select": true,
|
"select": true,
|
||||||
|
@ -225,8 +184,8 @@
|
||||||
"^if_adt_lock_handle$",
|
"^if_adt_lock_handle$",
|
||||||
"^if_aff_",
|
"^if_aff_",
|
||||||
"^if_satc_ci_variant_access$",
|
"^if_satc_ci_variant_access$",
|
||||||
"^if_saunit_internal_result_type$",
|
|
||||||
"^if_saunit_internal_result$",
|
"^if_saunit_internal_result$",
|
||||||
|
"^if_saunit_internal_result_type$",
|
||||||
"^if_srvd_types$",
|
"^if_srvd_types$",
|
||||||
"^if_wb_adt_plugin_resource_co$",
|
"^if_wb_adt_plugin_resource_co$",
|
||||||
"^if_wb_object_data_selection_co$",
|
"^if_wb_object_data_selection_co$",
|
||||||
|
@ -234,7 +193,6 @@
|
||||||
"^if_xco_",
|
"^if_xco_",
|
||||||
"^int4$",
|
"^int4$",
|
||||||
"^numc2$",
|
"^numc2$",
|
||||||
"^pgmid$",
|
|
||||||
"^sabp_t_tadir_keys$",
|
"^sabp_t_tadir_keys$",
|
||||||
"^sap_bool$",
|
"^sap_bool$",
|
||||||
"^srcsystem$",
|
"^srcsystem$",
|
||||||
|
@ -244,7 +202,6 @@
|
||||||
"^sychar70$",
|
"^sychar70$",
|
||||||
"^sydatum$",
|
"^sydatum$",
|
||||||
"^sylangu$",
|
"^sylangu$",
|
||||||
"^syst_langu$",
|
|
||||||
"^syst_title$",
|
"^syst_title$",
|
||||||
"^syuzeit$",
|
"^syuzeit$",
|
||||||
"^xubname$"
|
"^xubname$"
|
||||||
|
@ -293,7 +250,7 @@
|
||||||
"/json/",
|
"/json/",
|
||||||
"zcl_abapgit_object_pdts.clas.testclasses.abap"
|
"zcl_abapgit_object_pdts.clas.testclasses.abap"
|
||||||
],
|
],
|
||||||
"length": 125
|
"length": 120
|
||||||
},
|
},
|
||||||
"line_only_punc": {
|
"line_only_punc": {
|
||||||
"ignoreExceptions": true
|
"ignoreExceptions": true
|
||||||
|
@ -319,9 +276,6 @@
|
||||||
"message_exists": true,
|
"message_exists": true,
|
||||||
"method_implemented_twice": true,
|
"method_implemented_twice": true,
|
||||||
"method_length": {
|
"method_length": {
|
||||||
"exclude": [
|
|
||||||
"zcl_abapgit_convert.clas.locals_imp.abap"
|
|
||||||
],
|
|
||||||
"checkForms": true,
|
"checkForms": true,
|
||||||
"errorWhenEmpty": false,
|
"errorWhenEmpty": false,
|
||||||
"ignoreTestClasses": false,
|
"ignoreTestClasses": false,
|
||||||
|
@ -505,5 +459,37 @@
|
||||||
"when_others_last": true,
|
"when_others_last": true,
|
||||||
"whitespace_end": true,
|
"whitespace_end": true,
|
||||||
"xml_consistency": true
|
"xml_consistency": true
|
||||||
|
},
|
||||||
|
"syntax": {
|
||||||
|
"errorNamespace": "^(Z|Y|LT?CL_|TY_|LIF_|C_|.*ABAPGIT)",
|
||||||
|
"globalConstants": [
|
||||||
|
"abap_func_exporting",
|
||||||
|
"abap_func_tables",
|
||||||
|
"cssf_formtype_text",
|
||||||
|
"seok_access_free",
|
||||||
|
"seok_access_modify",
|
||||||
|
"sews_c_vif_version",
|
||||||
|
"skwfc_obtype_folder",
|
||||||
|
"skwfc_obtype_loio",
|
||||||
|
"so2_controller",
|
||||||
|
"srext_ext_class_pool",
|
||||||
|
"srext_ext_interface_pool",
|
||||||
|
"ststc_c_type_dialog",
|
||||||
|
"ststc_c_type_object",
|
||||||
|
"ststc_c_type_parameters",
|
||||||
|
"ststc_c_type_report",
|
||||||
|
"swbm_c_op_delete_no_dialog",
|
||||||
|
"swbm_c_type_ddic_db_tabxinx",
|
||||||
|
"swbm_c_type_wdy_application",
|
||||||
|
"swbm_version_active",
|
||||||
|
"swbm_version_inactive",
|
||||||
|
"swfco_org_standard_task",
|
||||||
|
"swfco_org_workflow_template",
|
||||||
|
"wbmr_c_skwf_folder_class",
|
||||||
|
"wdyn_limu_component_controller",
|
||||||
|
"wdyn_limu_component_definition",
|
||||||
|
"wdyn_limu_component_view"
|
||||||
|
],
|
||||||
|
"version": "v702"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,94 +8,6 @@ Legend
|
||||||
+ : added
|
+ : added
|
||||||
- : removed
|
- : 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
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
! PROG: Store flow logic as separate ABAP files (#7066)
|
|
||||||
! WDYN: Store controller code as separate ABAP files (#7069)
|
|
||||||
! SSFO: Store smartform code as separate ABAP files (#7071)
|
|
||||||
+ CLIF: Add missing translations for classes and interfaces (#6963)
|
|
||||||
+ UIAD: Add support for Launchpad App Descriptor Item (#6969)
|
|
||||||
+ BGQC: Add support for Background Processing Context (#6974)
|
|
||||||
+ DSFD: CDS Scalar Function Definition (#6951)
|
|
||||||
+ DRAS: CDS Aspect (#6953)
|
|
||||||
+ DSFI: CDS Scalar Function Implementation (#6952)
|
|
||||||
+ Add support for Software Component Relations (#7012)
|
|
||||||
* ENHO: Fix diff in generated comments of class enhancements (#6962)
|
|
||||||
* SXSD: Fix check if BADI exists (#6961)
|
|
||||||
* CDBO: Fix missing parameters in `constructor` (#6966)
|
|
||||||
* Fix dump in activation error handling (#6967)
|
|
||||||
* Fix deserialize SEOCLASSTX for INTF [AFF] (#6983)
|
|
||||||
* Allow staging for empty repositories (#6981)
|
|
||||||
* fix: syst_langu does not exist on older releases (#6999)
|
|
||||||
* fix sticky header with browser control warning (#6997)
|
|
||||||
* DSFI: Updated object handler to match the latest AFF definition (#7013)
|
|
||||||
* Filenames for translation are case sensitive (#6995)
|
|
||||||
* Enable deserialization of DSFD, DSFI and DRAS (#7029)
|
|
||||||
* PROG: Support dynpros with splitter control (#7035, #7038)
|
|
||||||
* Fix `CX_SY_ZERODIVIDE` dump in progress bar (#7036)
|
|
||||||
* JOBD: Clear `changedby` field (#7039)
|
|
||||||
* SFPF: Add syntax highlighting for `xdp` files (#7040)
|
|
||||||
* SFPF: Fix check if object exists (#7041)
|
|
||||||
* Add package check when creating repository (#7037)
|
|
||||||
* FUGS: serialization (#7045)
|
|
||||||
* Enable CDS types (#7048)
|
|
||||||
* Don't discard includes of nonexistent FUGR (#7053)
|
|
||||||
* Added enhanced method resolution for background exit (#7059)
|
|
||||||
* TABU: Display transport requests (#7063)
|
|
||||||
* Show diffs in case of trailing spaces (#7062)
|
|
||||||
- remove 200% icon scaling (#7003)
|
|
||||||
|
|
||||||
2024-07-01 v1.129.0
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
+ DEVC,NSPC: Serialize software component for add-ons (#6891)
|
|
||||||
+ Where-used page (#6897)
|
|
||||||
+ CDBO: Customer Data Browser Object (#6930)
|
|
||||||
+ VIEW: Add authorization group to serialize and deserialize (#6918)
|
|
||||||
+ Exclude files from remote (#6942)
|
|
||||||
+ Read-only support for SXSD - Classic BAdI definition (#6958)
|
|
||||||
* Change message if local packages got lost (#6905)
|
|
||||||
* SOTS: Remove from TADIR selection (#6906)
|
|
||||||
* Fix bug in "Object to Files" Page. (#6908)
|
|
||||||
* DEVC: Fix "Package must be assigned to the software component LOCAL" (#6912)
|
|
||||||
* Improve error message for SUSH objects not being supported. (#6916)
|
|
||||||
* Use bcp47 language code for AFF (#6915)
|
|
||||||
* Suppress popup when using background API (#6926)
|
|
||||||
* Fix Issue Encountered on "Data Config" Page. (#6913)
|
|
||||||
* Bugfix, new pull page: decide package warnings (#6932)
|
|
||||||
* Set Character Limit for "Table" Field in Data Config page (#6934)
|
|
||||||
* ENHO: workaround dump during serialization (#6935)
|
|
||||||
* HOOK: catch exception (#6937)
|
|
||||||
* Sync UI theme in dark mode (#6940)
|
|
||||||
* Set Default Git User Details (#6920)
|
|
||||||
* Small performance improvement in folder logic (#6941)
|
|
||||||
* Fix folder logic buffer (#6945)
|
|
||||||
* Fix yank mode - copy to clipboad (#6946)
|
|
||||||
* Data serializer: fix carriage return problem (#6957)
|
|
||||||
* TABL: Clear DBINCLEXCL and DBSYSSELx fields (#6960)
|
|
||||||
|
|
||||||
2024-04-05 v1.128.0
|
2024-04-05 v1.128.0
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
105
deps/e070.tabl.xml
vendored
105
deps/e070.tabl.xml
vendored
|
@ -1,105 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<DD02V>
|
|
||||||
<TABNAME>E070</TABNAME>
|
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
|
||||||
<TABCLASS>TRANSP</TABCLASS>
|
|
||||||
<DDTEXT>E070</DDTEXT>
|
|
||||||
<CONTFLAG>A</CONTFLAG>
|
|
||||||
<EXCLASS>1</EXCLASS>
|
|
||||||
</DD02V>
|
|
||||||
<DD09L>
|
|
||||||
<TABNAME>ZE070</TABNAME>
|
|
||||||
<AS4LOCAL>A</AS4LOCAL>
|
|
||||||
<TABKAT>0</TABKAT>
|
|
||||||
<TABART>APPL0</TABART>
|
|
||||||
<BUFALLOW>N</BUFALLOW>
|
|
||||||
</DD09L>
|
|
||||||
<DD03P_TABLE>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TRKORR</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ROLLNAME>TRKORR</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TRFUNCTION</FIELDNAME>
|
|
||||||
<ROLLNAME>TRFUNCTION</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<VALEXI>X</VALEXI>
|
|
||||||
<SHLPORIGIN>F</SHLPORIGIN>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TRSTATUS</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TARSYSTEM</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000020</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000010</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>KORRDEV</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000008</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000004</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>AS4USER</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000024</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000012</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>AS4DATE</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>D</INTTYPE>
|
|
||||||
<INTLEN>000016</INTLEN>
|
|
||||||
<DATATYPE>DATS</DATATYPE>
|
|
||||||
<LENG>000008</LENG>
|
|
||||||
<MASK> DATS</MASK>
|
|
||||||
<SHLPORIGIN>T</SHLPORIGIN>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>AS4TIME</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>T</INTTYPE>
|
|
||||||
<INTLEN>000012</INTLEN>
|
|
||||||
<DATATYPE>TIMS</DATATYPE>
|
|
||||||
<LENG>000006</LENG>
|
|
||||||
<MASK> TIMS</MASK>
|
|
||||||
<SHLPORIGIN>T</SHLPORIGIN>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>STRKORR</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000040</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000020</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
</DD03P_TABLE>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
116
deps/e071.tabl.xml
vendored
116
deps/e071.tabl.xml
vendored
|
@ -1,116 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<DD02V>
|
|
||||||
<TABNAME>E071</TABNAME>
|
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
|
||||||
<TABCLASS>TRANSP</TABCLASS>
|
|
||||||
<DDTEXT>E071</DDTEXT>
|
|
||||||
<CONTFLAG>A</CONTFLAG>
|
|
||||||
<EXCLASS>1</EXCLASS>
|
|
||||||
</DD02V>
|
|
||||||
<DD09L>
|
|
||||||
<TABNAME>ZE071</TABNAME>
|
|
||||||
<AS4LOCAL>A</AS4LOCAL>
|
|
||||||
<TABKAT>0</TABKAT>
|
|
||||||
<TABART>APPL0</TABART>
|
|
||||||
<BUFALLOW>N</BUFALLOW>
|
|
||||||
</DD09L>
|
|
||||||
<DD03P_TABLE>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TRKORR</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ROLLNAME>TRKORR</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>AS4POS</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>N</INTTYPE>
|
|
||||||
<INTLEN>000012</INTLEN>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>NUMC</DATATYPE>
|
|
||||||
<LENG>000006</LENG>
|
|
||||||
<MASK> NUMC</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>PGMID</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000008</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000004</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>OBJECT</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000008</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000004</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>OBJ_NAME</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000240</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000120</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>OBJFUNC</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>LOCKFLAG</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>GENNUM</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000006</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000003</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>LANG</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>LANG</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> LANG</MASK>
|
|
||||||
<LANGUFLAG>X</LANGUFLAG>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>ACTIVITY</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000040</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000020</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
</DD03P_TABLE>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
158
deps/e071k.tabl.xml
vendored
158
deps/e071k.tabl.xml
vendored
|
@ -1,158 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<DD02V>
|
|
||||||
<TABNAME>E071K</TABNAME>
|
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
|
||||||
<TABCLASS>TRANSP</TABCLASS>
|
|
||||||
<DDTEXT>E071K</DDTEXT>
|
|
||||||
<CONTFLAG>A</CONTFLAG>
|
|
||||||
<EXCLASS>1</EXCLASS>
|
|
||||||
</DD02V>
|
|
||||||
<DD09L>
|
|
||||||
<TABNAME>ZE071K</TABNAME>
|
|
||||||
<AS4LOCAL>A</AS4LOCAL>
|
|
||||||
<TABKAT>0</TABKAT>
|
|
||||||
<TABART>APPL0</TABART>
|
|
||||||
<BUFALLOW>N</BUFALLOW>
|
|
||||||
</DD09L>
|
|
||||||
<DD03P_TABLE>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TRKORR</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ROLLNAME>TRKORR</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>PGMID</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000008</INTLEN>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000004</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>OBJECT</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000008</INTLEN>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000004</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>OBJNAME</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000060</INTLEN>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000030</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>AS4POS</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>N</INTTYPE>
|
|
||||||
<INTLEN>000012</INTLEN>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>NUMC</DATATYPE>
|
|
||||||
<LENG>000006</LENG>
|
|
||||||
<MASK> NUMC</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>MASTERTYPE</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000008</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000004</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>MASTERNAME</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000080</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000040</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>VIEWNAME</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000060</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000030</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>OBJFUNC</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TABKEY</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000240</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000120</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>SORTFLAG</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>FLAG</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>LANG</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<DATATYPE>LANG</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> LANG</MASK>
|
|
||||||
<LANGUFLAG>X</LANGUFLAG>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>ACTIVITY</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000040</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000020</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
</DD03P_TABLE>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
54
deps/e07t.tabl.xml
vendored
54
deps/e07t.tabl.xml
vendored
|
@ -1,54 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<DD02V>
|
|
||||||
<TABNAME>E07T</TABNAME>
|
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
|
||||||
<TABCLASS>TRANSP</TABCLASS>
|
|
||||||
<DDTEXT>E07T</DDTEXT>
|
|
||||||
<CONTFLAG>A</CONTFLAG>
|
|
||||||
<EXCLASS>1</EXCLASS>
|
|
||||||
</DD02V>
|
|
||||||
<DD09L>
|
|
||||||
<TABNAME>ZE07T</TABNAME>
|
|
||||||
<AS4LOCAL>A</AS4LOCAL>
|
|
||||||
<TABKAT>0</TABKAT>
|
|
||||||
<TABART>APPL0</TABART>
|
|
||||||
<UEBERSETZ>N</UEBERSETZ>
|
|
||||||
<BUFALLOW>N</BUFALLOW>
|
|
||||||
</DD09L>
|
|
||||||
<DD03P_TABLE>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>TRKORR</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ROLLNAME>TRKORR</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>LANGU</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000002</INTLEN>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>LANG</DATATYPE>
|
|
||||||
<LENG>000001</LENG>
|
|
||||||
<MASK> LANG</MASK>
|
|
||||||
<LANGUFLAG>X</LANGUFLAG>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>AS4TEXT</FIELDNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<INTTYPE>C</INTTYPE>
|
|
||||||
<INTLEN>000120</INTLEN>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
|
||||||
<LENG>000060</LENG>
|
|
||||||
<MASK> CHAR</MASK>
|
|
||||||
</DD03P>
|
|
||||||
</DD03P_TABLE>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
3
deps/if_package.intf.abap
vendored
3
deps/if_package.intf.abap
vendored
|
@ -1,8 +1,5 @@
|
||||||
INTERFACE if_package PUBLIC.
|
INTERFACE if_package PUBLIC.
|
||||||
DATA wbo_korr_flag TYPE c LENGTH 1 READ-ONLY.
|
DATA wbo_korr_flag TYPE c LENGTH 1 READ-ONLY.
|
||||||
DATA package_name TYPE string READ-ONLY.
|
|
||||||
DATA short_text TYPE string READ-ONLY.
|
|
||||||
DATA super_package_name TYPE string READ-ONLY.
|
|
||||||
DATA software_component TYPE string READ-ONLY.
|
DATA software_component TYPE string READ-ONLY.
|
||||||
DATA application_component TYPE string READ-ONLY.
|
DATA application_component TYPE string READ-ONLY.
|
||||||
DATA transport_layer TYPE string READ-ONLY.
|
DATA transport_layer TYPE string READ-ONLY.
|
||||||
|
|
48
deps/seoclasstx.tabl.xml
vendored
48
deps/seoclasstx.tabl.xml
vendored
|
@ -1,48 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<DD02V>
|
|
||||||
<TABNAME>SEOCLASSTX</TABNAME>
|
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
|
||||||
<TABCLASS>TRANSP</TABCLASS>
|
|
||||||
<DDTEXT>SEOCLASSTX</DDTEXT>
|
|
||||||
<CONTFLAG>A</CONTFLAG>
|
|
||||||
<EXCLASS>1</EXCLASS>
|
|
||||||
</DD02V>
|
|
||||||
<DD09L>
|
|
||||||
<TABNAME>SEOCLASSTX</TABNAME>
|
|
||||||
<AS4LOCAL>A</AS4LOCAL>
|
|
||||||
<TABKAT>0</TABKAT>
|
|
||||||
<TABART>APPL0</TABART>
|
|
||||||
<UEBERSETZ>N</UEBERSETZ>
|
|
||||||
<BUFALLOW>N</BUFALLOW>
|
|
||||||
</DD09L>
|
|
||||||
<DD03P_TABLE>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>CLSNAME</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ROLLNAME>SEOCLSNAME</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>LANGU</FIELDNAME>
|
|
||||||
<KEYFLAG>X</KEYFLAG>
|
|
||||||
<ROLLNAME>LANGU</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
<LANGUFLAG>X</LANGUFLAG>
|
|
||||||
</DD03P>
|
|
||||||
<DD03P>
|
|
||||||
<FIELDNAME>DESCRIPT</FIELDNAME>
|
|
||||||
<ROLLNAME>SEODESCR</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
|
||||||
<COMPTYPE>E</COMPTYPE>
|
|
||||||
</DD03P>
|
|
||||||
</DD03P_TABLE>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
4
deps/tcdrs.tabl.xml
vendored
4
deps/tcdrs.tabl.xml
vendored
|
@ -14,9 +14,9 @@
|
||||||
<FIELDNAME>TABNAME</FIELDNAME>
|
<FIELDNAME>TABNAME</FIELDNAME>
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<INTTYPE>C</INTTYPE>
|
<INTTYPE>C</INTTYPE>
|
||||||
<INTLEN>000060</INTLEN>
|
<INTLEN>000002</INTLEN>
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
<LENG>000030</LENG>
|
<LENG>000001</LENG>
|
||||||
<MASK> CHAR</MASK>
|
<MASK> CHAR</MASK>
|
||||||
</DD03P>
|
</DD03P>
|
||||||
</DD03P_TABLE>
|
</DD03P_TABLE>
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
import js from "@eslint/js";
|
|
||||||
import globals from "globals";
|
|
||||||
|
|
||||||
export default [
|
|
||||||
js.configs.recommended,
|
|
||||||
{
|
|
||||||
"languageOptions": {
|
|
||||||
"parserOptions": {
|
|
||||||
"ecmaVersion": 2015
|
|
||||||
},
|
|
||||||
"sourceType": "script",
|
|
||||||
"globals": globals.browser,
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"quotes": [
|
|
||||||
"error",
|
|
||||||
"double",
|
|
||||||
{
|
|
||||||
"avoidEscape": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"semi": [
|
|
||||||
"error",
|
|
||||||
"always",
|
|
||||||
{
|
|
||||||
"omitLastInOneLineBlock": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"no-console": "off",
|
|
||||||
"indent": [
|
|
||||||
"error",
|
|
||||||
2
|
|
||||||
],
|
|
||||||
"no-trailing-spaces": [
|
|
||||||
"error"
|
|
||||||
],
|
|
||||||
"no-unused-vars": [
|
|
||||||
"warn"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
24
package.json
24
package.json
|
@ -5,10 +5,10 @@
|
||||||
"test": "npm run eslint && npm run abaplint",
|
"test": "npm run eslint && npm run abaplint",
|
||||||
"merge": "abapmerge -f src/zabapgit.prog.abap -c zabapgit_standalone -o zabapgit.abap",
|
"merge": "abapmerge -f src/zabapgit.prog.abap -c zabapgit_standalone -o zabapgit.abap",
|
||||||
"merge.ci": "cp zabapgit.abap ci/zabapgit_standalone.prog.abap && cd ci && abaplint --format codeframe && cd ..",
|
"merge.ci": "cp zabapgit.abap ci/zabapgit_standalone.prog.abap && cd ci && abaplint --format codeframe && cd ..",
|
||||||
"build": "rm -rf output && abap_transpile test/abap_transpile.json && cp -f src/ui/zabapgit_icon_font.w3mi.data.woff output/",
|
"build": "rm -rf output && abap_transpile test/abap_transpile.json",
|
||||||
"unit": "npm run build && echo RUNNING && node output/index.mjs --skip-critical",
|
"unit": "npm run build && echo RUNNING && node output/index.mjs",
|
||||||
"coverage": "npm run unit && c8 node output/index.mjs --skip-critical && c8 report --reporter=html",
|
"coverage": "npm run unit && c8 node output/index.mjs && c8 report --reporter=html",
|
||||||
"integration": "npm run build && echo RUNNING && node output/index.mjs --only-critical",
|
"integration": "rm -rf output && cp test/abap_transpile.json test/abap_transpile_int.json && sed -i 's/src,deps/test\\\/src,src,deps/g' test/abap_transpile_int.json && abap_transpile test/abap_transpile_int.json && echo RUNNING && node output/index.mjs",
|
||||||
"abaplint": "abaplint --format codeframe",
|
"abaplint": "abaplint --format codeframe",
|
||||||
"eslint": "eslint src"
|
"eslint": "eslint src"
|
||||||
},
|
},
|
||||||
|
@ -23,14 +23,12 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@abaplint/cli": "^2.113.110",
|
"@abaplint/cli": "^2.106.5",
|
||||||
"@abaplint/database-sqlite": "^2.10.24",
|
"@abaplint/database-sqlite": "^2.8.0",
|
||||||
"@abaplint/runtime": "^2.10.44",
|
"@abaplint/runtime": "^2.8.22",
|
||||||
"express": "^4.21.2",
|
"@abaplint/transpiler-cli": "^2.8.22",
|
||||||
"@abaplint/transpiler-cli": "^2.10.44",
|
"abapmerge": "^0.16.0",
|
||||||
"globals": "^16.0.0",
|
"c8": "^9.1.0",
|
||||||
"abapmerge": "^0.16.6",
|
"eslint": "^8.57.0"
|
||||||
"c8": "^10.1.3",
|
|
||||||
"eslint": "^9.25.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,7 +178,7 @@ CLASS zcl_abapgit_apack_migration IMPLEMENTATION.
|
||||||
component_error = 4
|
component_error = 4
|
||||||
no_access = 5
|
no_access = 5
|
||||||
other = 6
|
other = 6
|
||||||
OTHERS = 7 ##FM_SUBRC_OK.
|
OTHERS = 7.
|
||||||
CATCH cx_sy_dyn_call_param_not_found.
|
CATCH cx_sy_dyn_call_param_not_found.
|
||||||
CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE'
|
CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
*"* use this source file for your ABAP unit test classes
|
||||||
CLASS ltcl_apack_manifest_reader DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
CLASS ltcl_apack_manifest_reader DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS:
|
METHODS:
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
*"* use this source file for your ABAP unit test classes
|
||||||
CLASS ltcl_apack_manifest_writer DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
CLASS ltcl_apack_manifest_writer DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS: the_serializator FOR TESTING RAISING cx_static_check.
|
METHODS: the_serializator FOR TESTING RAISING cx_static_check.
|
||||||
|
|
|
@ -26,7 +26,6 @@ CLASS zcl_abapgit_background DEFINITION
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
CONSTANTS c_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'.
|
CONSTANTS c_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'.
|
||||||
CONSTANTS c_interface TYPE seoclskey VALUE 'ZIF_ABAPGIT_BACKGROUND'.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,68 +60,35 @@ CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||||
METHOD list_methods.
|
METHOD list_methods.
|
||||||
|
|
||||||
DATA: ls_method LIKE LINE OF rt_methods,
|
DATA: ls_method LIKE LINE OF rt_methods,
|
||||||
|
ls_key TYPE seoclskey,
|
||||||
lt_implementing TYPE seor_implementing_keys,
|
lt_implementing TYPE seor_implementing_keys,
|
||||||
ls_implementing LIKE LINE OF lt_implementing,
|
ls_implementing LIKE LINE OF lt_implementing.
|
||||||
lt_interf TYPE abap_intfdescr_tab,
|
|
||||||
lt_local_classes TYPE STANDARD TABLE OF scompo,
|
|
||||||
lv_classname TYPE string,
|
|
||||||
lr_typedescr TYPE REF TO cl_abap_typedescr,
|
|
||||||
lr_typedescr_class TYPE REF TO cl_abap_classdescr.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_local_class> LIKE LINE OF lt_local_classes,
|
FIELD-SYMBOLS: <ls_method> LIKE LINE OF rt_methods.
|
||||||
<ls_method> LIKE LINE OF rt_methods.
|
|
||||||
|
|
||||||
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
|
|
||||||
" Assume the standalone version runs.
|
|
||||||
CALL FUNCTION 'WB_TREE_GET_OBJECTS'
|
|
||||||
EXPORTING
|
|
||||||
include = ' '
|
|
||||||
otype = 'L'
|
|
||||||
program = sy-repid
|
|
||||||
TABLES
|
|
||||||
olist = lt_local_classes.
|
|
||||||
|
|
||||||
LOOP AT lt_local_classes ASSIGNING <ls_local_class>.
|
* in order to handle local classes in the compiled report
|
||||||
lv_classname = |\\PROGRAM={ sy-repid }\\CLASS={ <ls_local_class>-name }|.
|
ls_method-class = 'ZCL_ABAPGIT_BACKGROUND_PULL'.
|
||||||
cl_abap_typedescr=>describe_by_name(
|
INSERT ls_method INTO TABLE rt_methods.
|
||||||
EXPORTING
|
ls_method-class = 'ZCL_ABAPGIT_BACKGROUND_PUSH_AU'.
|
||||||
p_name = lv_classname
|
INSERT ls_method INTO TABLE rt_methods.
|
||||||
RECEIVING
|
ls_method-class = 'ZCL_ABAPGIT_BACKGROUND_PUSH_FI'.
|
||||||
p_descr_ref = lr_typedescr
|
|
||||||
EXCEPTIONS
|
|
||||||
type_not_found = 1
|
|
||||||
OTHERS = 2 ).
|
|
||||||
|
|
||||||
IF sy-subrc = 0 AND lr_typedescr IS BOUND.
|
|
||||||
lr_typedescr_class ?= lr_typedescr.
|
|
||||||
IF lr_typedescr_class IS BOUND.
|
|
||||||
lt_interf = lr_typedescr_class->interfaces.
|
|
||||||
READ TABLE lt_interf WITH TABLE KEY name = c_interface TRANSPORTING NO FIELDS.
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
ls_method-class = <ls_local_class>-name.
|
|
||||||
INSERT ls_method INTO TABLE rt_methods.
|
INSERT ls_method INTO TABLE rt_methods.
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ELSE.
|
ls_key-clsname = 'ZIF_ABAPGIT_BACKGROUND'.
|
||||||
" Assume the developer version runs.
|
|
||||||
CALL FUNCTION 'SEO_INTERFACE_IMPLEM_GET_ALL'
|
CALL FUNCTION 'SEO_INTERFACE_IMPLEM_GET_ALL'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
intkey = c_interface
|
intkey = ls_key
|
||||||
IMPORTING
|
IMPORTING
|
||||||
impkeys = lt_implementing
|
impkeys = lt_implementing
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
not_existing = 1
|
not_existing = 1
|
||||||
OTHERS = 2.
|
OTHERS = 2 ##FM_SUBRC_OK.
|
||||||
IF sy-subrc = 0.
|
|
||||||
LOOP AT lt_implementing INTO ls_implementing.
|
LOOP AT lt_implementing INTO ls_implementing.
|
||||||
ls_method-class = ls_implementing-clsname.
|
ls_method-class = ls_implementing-clsname.
|
||||||
INSERT ls_method INTO TABLE rt_methods.
|
INSERT ls_method INTO TABLE rt_methods.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
LOOP AT rt_methods ASSIGNING <ls_method>.
|
LOOP AT rt_methods ASSIGNING <ls_method>.
|
||||||
CALL METHOD (<ls_method>-class)=>zif_abapgit_background~get_description
|
CALL METHOD (<ls_method>-class)=>zif_abapgit_background~get_description
|
||||||
|
@ -135,10 +101,9 @@ CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD run.
|
METHOD run.
|
||||||
|
|
||||||
DATA:
|
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
|
||||||
li_repo TYPE REF TO zif_abapgit_repo,
|
lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
||||||
li_repo_online TYPE REF TO zif_abapgit_repo_online,
|
lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys,
|
||||||
lt_list TYPE zif_abapgit_persist_background=>ty_background_keys,
|
|
||||||
li_background TYPE REF TO zif_abapgit_background,
|
li_background TYPE REF TO zif_abapgit_background,
|
||||||
li_log TYPE REF TO zif_abapgit_log,
|
li_log TYPE REF TO zif_abapgit_log,
|
||||||
lx_error TYPE REF TO zcx_abapgit_exception,
|
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||||
|
@ -153,7 +118,8 @@ CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
lt_list = zcl_abapgit_persist_factory=>get_background( )->list( ).
|
CREATE OBJECT lo_per.
|
||||||
|
lt_list = lo_per->list( ).
|
||||||
|
|
||||||
WRITE: / 'Background mode'.
|
WRITE: / 'Background mode'.
|
||||||
|
|
||||||
|
@ -161,30 +127,24 @@ CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||||
CREATE OBJECT li_log TYPE zcl_abapgit_log.
|
CREATE OBJECT li_log TYPE zcl_abapgit_log.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ).
|
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ).
|
||||||
li_repo_online ?= li_repo.
|
lv_repo_name = lo_repo->get_name( ).
|
||||||
lv_repo_name = li_repo->get_name( ).
|
|
||||||
WRITE: / <ls_list>-method, lv_repo_name.
|
WRITE: / <ls_list>-method, lv_repo_name.
|
||||||
|
|
||||||
zcl_abapgit_login_manager=>set(
|
zcl_abapgit_login_manager=>set(
|
||||||
iv_uri = li_repo_online->get_url( )
|
iv_uri = lo_repo->get_url( )
|
||||||
iv_username = <ls_list>-username
|
iv_username = <ls_list>-username
|
||||||
iv_password = <ls_list>-password ).
|
iv_password = <ls_list>-password ).
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE OBJECT li_background TYPE (<ls_list>-method).
|
CREATE OBJECT li_background TYPE (<ls_list>-method).
|
||||||
|
|
||||||
li_background->run(
|
li_background->run(
|
||||||
ii_repo_online = li_repo_online
|
io_repo = lo_repo
|
||||||
ii_log = li_log
|
ii_log = li_log
|
||||||
it_settings = <ls_list>-settings ).
|
it_settings = <ls_list>-settings ).
|
||||||
CATCH cx_sy_create_object_error.
|
|
||||||
li_log->add_warning( |{ <ls_list>-method } could not be executed,|
|
|
||||||
& | as it is not accessible (local/global class).| ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
" Decrease memory usage for repository already processed (but keep log)
|
" Decrease memory usage for repository already processed (but keep log)
|
||||||
li_repo->refresh(
|
lo_repo->refresh(
|
||||||
iv_drop_cache = abap_true
|
iv_drop_cache = abap_true
|
||||||
iv_drop_log = abap_false ).
|
iv_drop_log = abap_false ).
|
||||||
CATCH zcx_abapgit_exception INTO lx_error.
|
CATCH zcx_abapgit_exception INTO lx_error.
|
||||||
|
|
|
@ -28,37 +28,19 @@ CLASS zcl_abapgit_background_pull IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_background~run.
|
METHOD zif_abapgit_background~run.
|
||||||
|
|
||||||
DATA: ls_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks,
|
DATA: ls_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks.
|
||||||
lo_settings TYPE REF TO zcl_abapgit_settings,
|
|
||||||
li_repo TYPE REF TO zif_abapgit_repo,
|
|
||||||
lv_activation_setting TYPE zif_abapgit_definitions=>ty_s_user_settings-activate_wo_popup.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_overwrite> LIKE LINE OF ls_checks-overwrite.
|
FIELD-SYMBOLS: <ls_overwrite> LIKE LINE OF ls_checks-overwrite.
|
||||||
|
|
||||||
li_repo = ii_repo_online.
|
|
||||||
|
|
||||||
ls_checks = li_repo->deserialize_checks( ).
|
ls_checks = io_repo->deserialize_checks( ).
|
||||||
|
|
||||||
LOOP AT ls_checks-overwrite ASSIGNING <ls_overwrite>.
|
LOOP AT ls_checks-overwrite ASSIGNING <ls_overwrite>.
|
||||||
<ls_overwrite>-decision = zif_abapgit_definitions=>c_yes.
|
<ls_overwrite>-decision = zif_abapgit_definitions=>c_yes.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
io_repo->deserialize( is_checks = ls_checks
|
||||||
lv_activation_setting = lo_settings->get_activate_wo_popup( ).
|
|
||||||
|
|
||||||
lo_settings->set_activate_wo_popup( abap_true ).
|
|
||||||
|
|
||||||
|
|
||||||
" pass decisions to delete
|
|
||||||
zcl_abapgit_services_repo=>delete_unnecessary_objects(
|
|
||||||
ii_repo = li_repo
|
|
||||||
is_checks = ls_checks
|
|
||||||
ii_log = ii_log ).
|
ii_log = ii_log ).
|
||||||
|
|
||||||
li_repo->deserialize( is_checks = ls_checks
|
|
||||||
ii_log = ii_log ).
|
|
||||||
|
|
||||||
lo_settings->set_activate_wo_popup( lv_activation_setting ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -17,7 +17,7 @@ CLASS zcl_abapgit_background_push_au DEFINITION
|
||||||
VALUE(rv_comment) TYPE string .
|
VALUE(rv_comment) TYPE string .
|
||||||
METHODS push_auto
|
METHODS push_auto
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS determine_user_details
|
METHODS determine_user_details
|
||||||
|
@ -27,7 +27,7 @@ CLASS zcl_abapgit_background_push_au DEFINITION
|
||||||
VALUE(rs_user) TYPE zif_abapgit_git_definitions=>ty_git_user .
|
VALUE(rs_user) TYPE zif_abapgit_git_definitions=>ty_git_user .
|
||||||
METHODS push_deletions
|
METHODS push_deletions
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
|
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
@ -69,12 +69,12 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD determine_user_details.
|
METHOD determine_user_details.
|
||||||
|
|
||||||
DATA li_user_record TYPE REF TO zif_abapgit_user_record.
|
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
||||||
|
|
||||||
|
|
||||||
li_user_record = zcl_abapgit_env_factory=>get_user_record( ).
|
lo_user_record = zcl_abapgit_user_record=>get_instance( iv_changed_by ).
|
||||||
rs_user-name = li_user_record->get_name( iv_changed_by ).
|
rs_user-name = lo_user_record->get_name( ).
|
||||||
rs_user-email = li_user_record->get_email( iv_changed_by ).
|
rs_user-email = lo_user_record->get_email( ).
|
||||||
|
|
||||||
* If no email, fall back to localhost/default email
|
* If no email, fall back to localhost/default email
|
||||||
IF rs_user-email IS INITIAL.
|
IF rs_user-email IS INITIAL.
|
||||||
|
@ -110,7 +110,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
<ls_local> LIKE LINE OF ls_files-local.
|
<ls_local> LIKE LINE OF ls_files-local.
|
||||||
|
|
||||||
|
|
||||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||||
|
|
||||||
LOOP AT ls_files-local ASSIGNING <ls_local>.
|
LOOP AT ls_files-local ASSIGNING <ls_local>.
|
||||||
lv_changed_by = zcl_abapgit_objects=>changed_by(
|
lv_changed_by = zcl_abapgit_objects=>changed_by(
|
||||||
|
@ -172,12 +172,12 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
|
|
||||||
ls_comment-comment = build_comment( ls_user_files ).
|
ls_comment-comment = build_comment( ls_user_files ).
|
||||||
|
|
||||||
ii_repo_online->push( is_comment = ls_comment
|
io_repo->push( is_comment = ls_comment
|
||||||
io_stage = lo_stage ).
|
io_stage = lo_stage ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
IF lines( ls_files-remote ) > 0.
|
IF lines( ls_files-remote ) > 0.
|
||||||
push_deletions( ii_repo_online = ii_repo_online
|
push_deletions( io_repo = io_repo
|
||||||
is_files = ls_files ).
|
is_files = ls_files ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
ls_comment-committer-name = 'Deletion'.
|
ls_comment-committer-name = 'Deletion'.
|
||||||
ls_comment-committer-email = 'deletion@localhost'.
|
ls_comment-committer-email = 'deletion@localhost'.
|
||||||
|
|
||||||
ii_repo_online->push( is_comment = ls_comment
|
io_repo->push( is_comment = ls_comment
|
||||||
io_stage = lo_stage ).
|
io_stage = lo_stage ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -237,14 +237,14 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
|
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
|
||||||
|
|
||||||
mi_log = ii_log.
|
mi_log = ii_log.
|
||||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||||
|
|
||||||
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
||||||
ii_log->add_info( 'Nothing to stage' ).
|
ii_log->add_info( 'Nothing to stage' ).
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
push_auto( ii_repo_online ).
|
push_auto( io_repo ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -22,7 +22,7 @@ CLASS zcl_abapgit_background_push_fi DEFINITION
|
||||||
VALUE(rv_comment) TYPE string .
|
VALUE(rv_comment) TYPE string .
|
||||||
METHODS push_fixed
|
METHODS push_fixed
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
!iv_name TYPE string
|
!iv_name TYPE string
|
||||||
!iv_email TYPE string
|
!iv_email TYPE string
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -73,7 +73,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
||||||
<ls_remote> LIKE LINE OF ls_files-remote.
|
<ls_remote> LIKE LINE OF ls_files-remote.
|
||||||
|
|
||||||
|
|
||||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||||
ASSERT lines( ls_files-local ) > 0
|
ASSERT lines( ls_files-local ) > 0
|
||||||
OR lines( ls_files-remote ) > 0.
|
OR lines( ls_files-remote ) > 0.
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
||||||
ls_comment-committer-email = iv_email.
|
ls_comment-committer-email = iv_email.
|
||||||
ls_comment-comment = build_comment( ls_files ).
|
ls_comment-comment = build_comment( ls_files ).
|
||||||
|
|
||||||
ii_repo_online->push( is_comment = ls_comment
|
io_repo->push( is_comment = ls_comment
|
||||||
io_stage = lo_stage ).
|
io_stage = lo_stage ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -142,7 +142,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
||||||
lv_email TYPE string.
|
lv_email TYPE string.
|
||||||
|
|
||||||
mi_log = ii_log.
|
mi_log = ii_log.
|
||||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||||
|
|
||||||
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
||||||
ii_log->add_info( 'Nothing to stage' ).
|
ii_log->add_info( 'Nothing to stage' ).
|
||||||
|
@ -156,7 +156,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
||||||
lv_email = ls_setting-value.
|
lv_email = ls_setting-value.
|
||||||
|
|
||||||
push_fixed(
|
push_fixed(
|
||||||
ii_repo_online = ii_repo_online
|
io_repo = io_repo
|
||||||
iv_name = lv_name
|
iv_name = lv_name
|
||||||
iv_email = lv_email ).
|
iv_email = lv_email ).
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ INTERFACE zif_abapgit_background
|
||||||
ct_settings TYPE ty_settings_tt .
|
ct_settings TYPE ty_settings_tt .
|
||||||
METHODS run
|
METHODS run
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
!ii_log TYPE REF TO zif_abapgit_log
|
!ii_log TYPE REF TO zif_abapgit_log
|
||||||
!it_settings TYPE ty_settings_tt OPTIONAL
|
!it_settings TYPE ty_settings_tt OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
|
|
|
@ -21,7 +21,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
||||||
"! @raising zcx_abapgit_exception | Object is not locked in a transport
|
"! @raising zcx_abapgit_exception | Object is not locked in a transport
|
||||||
METHODS get_current_transport_for_obj
|
METHODS get_current_transport_for_obj
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||||
!iv_object_type TYPE trobjtype
|
!iv_object_type TYPE trobjtype
|
||||||
!iv_object_name TYPE sobj_name
|
!iv_object_name TYPE sobj_name
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -36,7 +36,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
||||||
"! @raising zcx_abapgit_exception | Object is not locked in a transport
|
"! @raising zcx_abapgit_exception | Object is not locked in a transport
|
||||||
METHODS get_current_transport_from_db
|
METHODS get_current_transport_from_db
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||||
!iv_object_type TYPE trobjtype
|
!iv_object_type TYPE trobjtype
|
||||||
!iv_object_name TYPE sobj_name
|
!iv_object_name TYPE sobj_name
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -51,7 +51,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
||||||
"! @raising zcx_abapgit_exception | Object type is not lockable
|
"! @raising zcx_abapgit_exception | Object type is not lockable
|
||||||
METHODS is_object_locked_in_transport
|
METHODS is_object_locked_in_transport
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||||
!iv_object_type TYPE trobjtype
|
!iv_object_type TYPE trobjtype
|
||||||
!iv_object_name TYPE sobj_name
|
!iv_object_name TYPE sobj_name
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -64,7 +64,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
||||||
"! @parameter rv_lockable | Lockable
|
"! @parameter rv_lockable | Lockable
|
||||||
METHODS is_object_type_lockable
|
METHODS is_object_type_lockable
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||||
!iv_object_type TYPE trobjtype
|
!iv_object_type TYPE trobjtype
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_lockable) TYPE abap_bool .
|
VALUE(rv_lockable) TYPE abap_bool .
|
||||||
|
@ -74,7 +74,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
||||||
"! @parameter rv_transportable | Transportable
|
"! @parameter rv_transportable | Transportable
|
||||||
METHODS is_object_type_transportable
|
METHODS is_object_type_transportable
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||||
!iv_object_type TYPE trobjtype
|
!iv_object_type TYPE trobjtype
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_transportable) TYPE abap_bool .
|
VALUE(rv_transportable) TYPE abap_bool .
|
||||||
|
@ -89,9 +89,6 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
DATA: lv_object_lockable TYPE abap_bool,
|
DATA: lv_object_lockable TYPE abap_bool,
|
||||||
lv_locked TYPE abap_bool,
|
lv_locked TYPE abap_bool,
|
||||||
lv_transport_request TYPE trkorr,
|
lv_transport_request TYPE trkorr,
|
||||||
ls_tlock TYPE tlock,
|
|
||||||
lt_tlock TYPE STANDARD TABLE OF tlock WITH DEFAULT KEY,
|
|
||||||
lt_transports TYPE STANDARD TABLE OF trkorr WITH DEFAULT KEY,
|
|
||||||
lv_task TYPE trkorr,
|
lv_task TYPE trkorr,
|
||||||
lv_tr_object_name TYPE trobj_name.
|
lv_tr_object_name TYPE trobj_name.
|
||||||
|
|
||||||
|
@ -107,8 +104,6 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
we_locked = lv_locked
|
we_locked = lv_locked
|
||||||
we_lock_order = lv_transport_request
|
we_lock_order = lv_transport_request
|
||||||
we_lock_task = lv_task
|
we_lock_task = lv_task
|
||||||
TABLES
|
|
||||||
wt_tlock = lt_tlock
|
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
empty_key = 1
|
empty_key = 1
|
||||||
no_systemname = 2
|
no_systemname = 2
|
||||||
|
@ -127,15 +122,7 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise( |Object type { iv_program_id }-{ iv_object_type } not lockable| ).
|
zcx_abapgit_exception=>raise( |Object type { iv_program_id }-{ iv_object_type } not lockable| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
LOOP AT lt_tlock INTO ls_tlock.
|
|
||||||
COLLECT ls_tlock-trkorr INTO lt_transports.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
IF lines( lt_transports ) = 1.
|
|
||||||
rv_transport = lv_transport_request.
|
rv_transport = lv_transport_request.
|
||||||
ELSE.
|
|
||||||
rv_transport = zif_abapgit_definitions=>c_multiple_transports.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -222,7 +209,7 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
IMPORTING
|
IMPORTING
|
||||||
pe_result = lv_type_check_result.
|
pe_result = lv_type_check_result.
|
||||||
|
|
||||||
rv_transportable = boolc( lv_type_check_result CA 'RTL' OR iv_object_type = 'TABU' ).
|
rv_transportable = boolc( lv_type_check_result CA 'RTL' ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -358,9 +345,6 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
DATA lt_table_keys TYPE STANDARD TABLE OF e071k.
|
DATA lt_table_keys TYPE STANDARD TABLE OF e071k.
|
||||||
DATA lv_with_dialog TYPE abap_bool.
|
DATA lv_with_dialog TYPE abap_bool.
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_table> LIKE LINE OF lt_tables.
|
|
||||||
FIELD-SYMBOLS <ls_table_key> LIKE LINE OF lt_table_keys.
|
|
||||||
|
|
||||||
cl_table_utilities_brf=>create_transport_entries(
|
cl_table_utilities_brf=>create_transport_entries(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
it_table_ins = it_table_ins
|
it_table_ins = it_table_ins
|
||||||
|
@ -376,7 +360,6 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
CALL FUNCTION 'TR_OBJECTS_CHECK'
|
CALL FUNCTION 'TR_OBJECTS_CHECK'
|
||||||
TABLES
|
TABLES
|
||||||
wt_ko200 = lt_tables
|
wt_ko200 = lt_tables
|
||||||
wt_e071k = lt_table_keys
|
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
cancel_edit_other_error = 1
|
cancel_edit_other_error = 1
|
||||||
show_only_other_error = 2
|
show_only_other_error = 2
|
||||||
|
@ -389,24 +372,15 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
lv_with_dialog = abap_true.
|
lv_with_dialog = abap_true.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
READ TABLE lt_tables ASSIGNING <ls_table> INDEX 1.
|
CALL FUNCTION 'TRINT_OBJECTS_CHECK_AND_INSERT'
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
LOOP AT lt_table_keys ASSIGNING <ls_table_key>.
|
|
||||||
<ls_table_key>-objfunc = <ls_table>-objfunc.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
CALL FUNCTION 'TR_OBJECT_INSERT'
|
|
||||||
EXPORTING
|
EXPORTING
|
||||||
wi_order = iv_transport
|
iv_order = iv_transport
|
||||||
wi_ko200 = <ls_table>
|
iv_with_dialog = lv_with_dialog
|
||||||
iv_no_show_option = abap_true
|
CHANGING
|
||||||
TABLES
|
ct_ko200 = lt_tables
|
||||||
wt_e071k = lt_table_keys
|
ct_e071k = lt_table_keys
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
cancel_edit_other_error = 1
|
OTHERS = 1.
|
||||||
show_only_other_error = 2
|
|
||||||
OTHERS = 3.
|
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -483,12 +457,8 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
WHERE object = ls_lock_key-obj
|
WHERE object = ls_lock_key-obj
|
||||||
AND hikey >= ls_lock_key-low
|
AND hikey >= ls_lock_key-low
|
||||||
AND lokey <= ls_lock_key-hi. "#EC PORTABLE
|
AND lokey <= ls_lock_key-hi. "#EC PORTABLE
|
||||||
IF lv_request IS INITIAL.
|
|
||||||
lv_request = <ls_tlock>-trkorr.
|
lv_request = <ls_tlock>-trkorr.
|
||||||
ELSE.
|
|
||||||
lv_request = zif_abapgit_definitions=>c_multiple_transports.
|
|
||||||
EXIT.
|
EXIT.
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ELSEIF is_object_type_transportable( <ls_item>-obj_type ) = abap_true.
|
ELSEIF is_object_type_transportable( <ls_item>-obj_type ) = abap_true.
|
||||||
lv_request = get_current_transport_from_db(
|
lv_request = get_current_transport_from_db(
|
||||||
|
@ -640,7 +610,7 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
||||||
ev_object = ls_list-object
|
ev_object = ls_list-object
|
||||||
ev_obj_name = ls_list-obj_name ).
|
ev_obj_name = ls_list-obj_name ).
|
||||||
INSERT ls_list INTO TABLE rt_list.
|
INSERT ls_list INTO TABLE rt_list.
|
||||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
CATCH zcx_abapgit_exception.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
|
@ -5,14 +5,19 @@ CLASS zcl_abapgit_default_transport DEFINITION
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
INTERFACES zif_abapgit_default_transport.
|
INTERFACES zif_abapgit_default_transport.
|
||||||
|
|
||||||
METHODS constructor.
|
METHODS
|
||||||
|
constructor
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA mv_is_set_by_abapgit TYPE abap_bool .
|
DATA mv_is_set_by_abapgit TYPE abap_bool .
|
||||||
DATA ms_save TYPE e070use .
|
DATA ms_save TYPE e070use .
|
||||||
|
|
||||||
METHODS store.
|
METHODS store
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS restore
|
METHODS restore
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
@ -30,7 +35,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_default_transport IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_DEFAULT_TRANSPORT IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD clear.
|
METHOD clear.
|
||||||
|
@ -111,11 +116,7 @@ CLASS zcl_abapgit_default_transport IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD store.
|
METHOD store.
|
||||||
|
|
||||||
TRY.
|
|
||||||
ms_save = zif_abapgit_default_transport~get( ).
|
ms_save = zif_abapgit_default_transport~get( ).
|
||||||
CATCH zcx_abapgit_exception.
|
|
||||||
CLEAR ms_save.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_transport IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_all_objects_to_trans_req.
|
METHOD add_all_objects_to_trans_req.
|
||||||
|
@ -146,7 +146,7 @@ CLASS zcl_abapgit_transport IMPLEMENTATION.
|
||||||
lt_objects TYPE scts_tadir,
|
lt_objects TYPE scts_tadir,
|
||||||
lt_objects_all LIKE lt_objects,
|
lt_objects_all LIKE lt_objects,
|
||||||
ls_e071 LIKE LINE OF rt_objects,
|
ls_e071 LIKE LINE OF rt_objects,
|
||||||
li_repo TYPE REF TO zif_abapgit_repo,
|
lo_repo TYPE REF TO zcl_abapgit_repo,
|
||||||
lv_package TYPE zif_abapgit_persistence=>ty_repo-package,
|
lv_package TYPE zif_abapgit_persistence=>ty_repo-package,
|
||||||
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt.
|
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt.
|
||||||
|
|
||||||
|
@ -154,8 +154,8 @@ CLASS zcl_abapgit_transport IMPLEMENTATION.
|
||||||
<lv_package> TYPE devclass,
|
<lv_package> TYPE devclass,
|
||||||
<ls_object> TYPE tadir.
|
<ls_object> TYPE tadir.
|
||||||
|
|
||||||
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||||
lv_package = li_repo->get_package( ).
|
lv_package = lo_repo->get_package( ).
|
||||||
lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ).
|
lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ).
|
||||||
INSERT lv_package INTO TABLE lt_packages.
|
INSERT lv_package INTO TABLE lt_packages.
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ CLASS zcl_abapgit_transport_2_branch DEFINITION
|
||||||
|
|
||||||
METHODS create
|
METHODS create
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repository TYPE REF TO zcl_abapgit_repo_online
|
||||||
!is_transport_to_branch TYPE zif_abapgit_definitions=>ty_transport_to_branch
|
!is_transport_to_branch TYPE zif_abapgit_definitions=>ty_transport_to_branch
|
||||||
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt
|
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -46,13 +46,13 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
|
||||||
lv_branch_name = zcl_abapgit_git_branch_list=>complete_heads_branch_name(
|
lv_branch_name = zcl_abapgit_git_branch_list=>complete_heads_branch_name(
|
||||||
zcl_abapgit_git_branch_list=>normalize_branch_name( is_transport_to_branch-branch_name ) ).
|
zcl_abapgit_git_branch_list=>normalize_branch_name( is_transport_to_branch-branch_name ) ).
|
||||||
|
|
||||||
ii_repo_online->create_branch( lv_branch_name ).
|
io_repository->create_branch( lv_branch_name ).
|
||||||
|
|
||||||
CREATE OBJECT lo_stage.
|
CREATE OBJECT lo_stage.
|
||||||
|
|
||||||
ls_stage_objects = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
ls_stage_objects = zcl_abapgit_factory=>get_stage_logic( )->get( io_repository ).
|
||||||
|
|
||||||
lt_object_statuses = zcl_abapgit_repo_status=>calculate( ii_repo_online ).
|
lt_object_statuses = zcl_abapgit_repo_status=>calculate( io_repository ).
|
||||||
|
|
||||||
stage_transport_objects(
|
stage_transport_objects(
|
||||||
it_transport_objects = it_transport_objects
|
it_transport_objects = it_transport_objects
|
||||||
|
@ -62,7 +62,7 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
|
||||||
|
|
||||||
ls_comment = generate_commit_message( is_transport_to_branch ).
|
ls_comment = generate_commit_message( is_transport_to_branch ).
|
||||||
|
|
||||||
ii_repo_online->push( is_comment = ls_comment
|
io_repository->push( is_comment = ls_comment
|
||||||
io_stage = lo_stage ).
|
io_stage = lo_stage ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -38,10 +38,9 @@ CLASS zcl_abapgit_transport_objects IMPLEMENTATION.
|
||||||
|
|
||||||
LOOP AT mt_transport_objects INTO ls_transport_object.
|
LOOP AT mt_transport_objects INTO ls_transport_object.
|
||||||
LOOP AT it_object_statuses INTO ls_object_status
|
LOOP AT it_object_statuses INTO ls_object_status
|
||||||
" USING KEY sec_key " syntax error in 754
|
|
||||||
WHERE obj_name = ls_transport_object-obj_name
|
WHERE obj_name = ls_transport_object-obj_name
|
||||||
AND obj_type = ls_transport_object-object
|
AND obj_type = ls_transport_object-object
|
||||||
AND NOT lstate IS INITIAL ##PRIMKEY[SEC_KEY].
|
AND NOT lstate IS INITIAL.
|
||||||
|
|
||||||
CASE ls_object_status-lstate.
|
CASE ls_object_status-lstate.
|
||||||
WHEN zif_abapgit_definitions=>c_state-added OR zif_abapgit_definitions=>c_state-modified.
|
WHEN zif_abapgit_definitions=>c_state-added OR zif_abapgit_definitions=>c_state-modified.
|
||||||
|
|
|
@ -60,9 +60,9 @@ INTERFACE zif_abapgit_cts_api
|
||||||
METHODS create_transport_entries
|
METHODS create_transport_entries
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_transport TYPE trkorr
|
!iv_transport TYPE trkorr
|
||||||
!it_table_ins TYPE ANY TABLE OPTIONAL
|
!it_table_ins TYPE ANY TABLE
|
||||||
!it_table_upd TYPE ANY TABLE OPTIONAL
|
!it_table_upd TYPE ANY TABLE
|
||||||
!it_table_del TYPE ANY TABLE OPTIONAL
|
!it_table_del TYPE ANY TABLE
|
||||||
!iv_tabname TYPE tabname
|
!iv_tabname TYPE tabname
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<VSEOINTERF>
|
<VSEOINTERF>
|
||||||
<CLSNAME>ZIF_ABAPGIT_DEFAULT_TRANSPORT</CLSNAME>
|
<CLSNAME>ZIF_ABAPGIT_DEFAULT_TRANSPORT</CLSNAME>
|
||||||
<LANGU>E</LANGU>
|
<LANGU>E</LANGU>
|
||||||
<DESCRIPT>abapGit - Default Transport</DESCRIPT>
|
<DESCRIPT>ZIF_ABAPGIT_DEFAULT_TRANSPORT</DESCRIPT>
|
||||||
<EXPOSURE>2</EXPOSURE>
|
<EXPOSURE>2</EXPOSURE>
|
||||||
<STATE>1</STATE>
|
<STATE>1</STATE>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
|
|
@ -44,7 +44,7 @@ CLASS zcl_abapgit_data_deserializer DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS determine_transport_request
|
METHODS determine_transport_request
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ii_repo TYPE REF TO zif_abapgit_repo
|
io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_transport_request) TYPE trkorr.
|
VALUE(rv_transport_request) TYPE trkorr.
|
||||||
|
@ -88,11 +88,11 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
|
||||||
|
|
||||||
" Use transport from repo settings if maintained, or determine via user exit.
|
" Use transport from repo settings if maintained, or determine via user exit.
|
||||||
" If transport keeps empty here, it'll requested later via popup.
|
" If transport keeps empty here, it'll requested later via popup.
|
||||||
rv_transport_request = ii_repo->get_local_settings( )-customizing_request.
|
rv_transport_request = io_repo->get_local_settings( )-customizing_request.
|
||||||
|
|
||||||
li_exit->determine_transport_request(
|
li_exit->determine_transport_request(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
ii_repo = ii_repo
|
io_repo = io_repo
|
||||||
iv_transport_type = iv_transport_type
|
iv_transport_type = iv_transport_type
|
||||||
CHANGING
|
CHANGING
|
||||||
cv_transport_request = rv_transport_request ).
|
cv_transport_request = rv_transport_request ).
|
||||||
|
@ -337,7 +337,7 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
|
||||||
rs_checks-type-request = zif_abapgit_cts_api=>c_transport_type-cust_request.
|
rs_checks-type-request = zif_abapgit_cts_api=>c_transport_type-cust_request.
|
||||||
rs_checks-type-task = zif_abapgit_cts_api=>c_transport_type-cust_task.
|
rs_checks-type-task = zif_abapgit_cts_api=>c_transport_type-cust_task.
|
||||||
rs_checks-transport = determine_transport_request(
|
rs_checks-transport = determine_transport_request(
|
||||||
ii_repo = ii_repo
|
io_repo = io_repo
|
||||||
iv_transport_type = rs_checks-type ).
|
iv_transport_type = rs_checks-type ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_data_utils IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_DATA_UTILS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD build_config_filename.
|
METHOD build_config_filename.
|
||||||
|
@ -196,7 +196,7 @@ CLASS zcl_abapgit_data_utils IMPLEMENTATION.
|
||||||
db_not_exists = 3
|
db_not_exists = 3
|
||||||
no_permission = 4
|
no_permission = 4
|
||||||
no_change_allowed = 5
|
no_change_allowed = 5
|
||||||
* table_is_gtt = 6 " not in lower releases
|
table_is_gtt = 6
|
||||||
OTHERS = 7.
|
OTHERS = 7.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
zcx_abapgit_exception=>raise( |Table { is_item-obj_name } cannot be displayed| ).
|
zcx_abapgit_exception=>raise( |Table { is_item-obj_name } cannot be displayed| ).
|
||||||
|
|
|
@ -15,7 +15,7 @@ INTERFACE zif_abapgit_data_deserializer
|
||||||
|
|
||||||
METHODS deserialize_check
|
METHODS deserialize_check
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
!ii_config TYPE REF TO zif_abapgit_data_config
|
!ii_config TYPE REF TO zif_abapgit_data_config
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks-customizing
|
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks-customizing
|
||||||
|
|
|
@ -26,8 +26,6 @@ CLASS lcl_environment IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_environment~get_basis_release.
|
METHOD zif_abapgit_environment~get_basis_release.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_environment~get_available_user_sessions.
|
|
||||||
ENDMETHOD.
|
|
||||||
METHOD zif_abapgit_environment~get_system_language_filter.
|
METHOD zif_abapgit_environment~get_system_language_filter.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_environment~is_merged.
|
METHOD zif_abapgit_environment~is_merged.
|
||||||
|
@ -42,8 +40,6 @@ CLASS lcl_environment IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_environment~init_parallel_processing.
|
METHOD zif_abapgit_environment~init_parallel_processing.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
METHOD zif_abapgit_environment~check_parallel_processing.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -81,12 +77,10 @@ CLASS ltcl_abap_language_version DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
" Cloud package hardcoded in cl_abap_language_version
|
" Cloud package hardcoded in cl_abap_language_version
|
||||||
CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'.
|
CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'.
|
||||||
CONSTANTS c_language_cfg TYPE seoclsname VALUE 'CL_ABAP_LANGUAGE_VERSION_CFG'.
|
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
mt_versions TYPE string_table,
|
mt_versions TYPE string_table,
|
||||||
mv_has_cloud_package TYPE abap_bool,
|
mv_has_cloud_package TYPE abap_bool,
|
||||||
mv_has_language_cfg TYPE abap_bool,
|
|
||||||
mo_environment TYPE REF TO lcl_environment,
|
mo_environment TYPE REF TO lcl_environment,
|
||||||
mi_persistency TYPE REF TO zif_abapgit_persist_settings,
|
mi_persistency TYPE REF TO zif_abapgit_persist_settings,
|
||||||
mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit,
|
mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit,
|
||||||
|
@ -370,11 +364,9 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
||||||
" Assume on-prem (no cloud)
|
" Assume on-prem (no cloud)
|
||||||
set_environment( abap_false ).
|
set_environment( abap_false ).
|
||||||
|
|
||||||
IF mv_has_language_cfg = abap_true.
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
||||||
exp = iv_standard ).
|
exp = iv_standard ).
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF mv_has_cloud_package = abap_true.
|
IF mv_has_cloud_package = abap_true.
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
@ -389,11 +381,9 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
||||||
" Assume cloud platform
|
" Assume cloud platform
|
||||||
set_environment( abap_true ).
|
set_environment( abap_true ).
|
||||||
|
|
||||||
IF mv_has_language_cfg = abap_true.
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
||||||
exp = iv_standard ).
|
exp = iv_standard ).
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF mv_has_cloud_package = abap_true.
|
IF mv_has_cloud_package = abap_true.
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
@ -412,11 +402,6 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
||||||
|
|
||||||
DATA lv_version TYPE string.
|
DATA lv_version TYPE string.
|
||||||
|
|
||||||
" 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
|
|
||||||
mv_has_language_cfg = zcl_abapgit_oo_factory=>get_by_type( 'CLAS' )->exists( c_language_cfg ).
|
|
||||||
|
|
||||||
LOOP AT mt_versions INTO lv_version.
|
LOOP AT mt_versions INTO lv_version.
|
||||||
|
|
||||||
CASE lv_version.
|
CASE lv_version.
|
||||||
|
|
21
src/env/zcl_abapgit_env_factory.clas.abap
vendored
21
src/env/zcl_abapgit_env_factory.clas.abap
vendored
|
@ -1,21 +0,0 @@
|
||||||
CLASS zcl_abapgit_env_factory DEFINITION PUBLIC GLOBAL FRIENDS zcl_abapgit_env_injector.
|
|
||||||
PUBLIC SECTION.
|
|
||||||
CLASS-METHODS get_user_record
|
|
||||||
RETURNING
|
|
||||||
VALUE(ri_user_record) TYPE REF TO zif_abapgit_user_record.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
CLASS-DATA gi_user_record TYPE REF TO zif_abapgit_user_record.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_env_factory IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD get_user_record.
|
|
||||||
IF gi_user_record IS NOT BOUND.
|
|
||||||
CREATE OBJECT gi_user_record TYPE zcl_abapgit_user_record.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ri_user_record = gi_user_record.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
16
src/env/zcl_abapgit_env_factory.clas.xml
vendored
16
src/env/zcl_abapgit_env_factory.clas.xml
vendored
|
@ -1,16 +0,0 @@
|
||||||
<?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_ENV_FACTORY</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - Environment Factory</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
14
src/env/zcl_abapgit_env_injector.clas.abap
vendored
14
src/env/zcl_abapgit_env_injector.clas.abap
vendored
|
@ -1,14 +0,0 @@
|
||||||
CLASS zcl_abapgit_env_injector DEFINITION PUBLIC.
|
|
||||||
PUBLIC SECTION.
|
|
||||||
CLASS-METHODS set_user_record
|
|
||||||
IMPORTING
|
|
||||||
!ii_user_record TYPE REF TO zif_abapgit_user_record.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_env_injector IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD set_user_record.
|
|
||||||
zcl_abapgit_env_factory=>gi_user_record = ii_user_record.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
16
src/env/zcl_abapgit_env_injector.clas.xml
vendored
16
src/env/zcl_abapgit_env_injector.clas.xml
vendored
|
@ -1,16 +0,0 @@
|
||||||
<?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_ENV_INJECTOR</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - Environment Injector</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
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
|
PUBLIC
|
||||||
FINAL
|
FINAL
|
||||||
CREATE PRIVATE
|
CREATE PRIVATE
|
||||||
GLOBAL FRIENDS zcl_abapgit_factory.
|
GLOBAL FRIENDS zcl_abapgit_factory .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
INTERFACES zif_abapgit_environment.
|
INTERFACES zif_abapgit_environment .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ CLASS zcl_abapgit_environment DEFINITION
|
||||||
|
|
||||||
METHODS is_system_changes_allowed
|
METHODS is_system_changes_allowed
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_result) TYPE abap_bool.
|
VALUE(rv_result) TYPE abap_bool .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,74 +76,11 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD zif_abapgit_environment~compare_with_inactive.
|
||||||
rv_result = zif_abapgit_environment~is_sap_cloud_platform( ).
|
rv_result = zif_abapgit_environment~is_sap_cloud_platform( ).
|
||||||
ENDMETHOD.
|
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.
|
METHOD zif_abapgit_environment~get_basis_release.
|
||||||
|
|
||||||
SELECT SINGLE release extrelease FROM cvers INTO (rs_result-release, rs_result-sp)
|
SELECT SINGLE release extrelease FROM cvers INTO (rs_result-release, rs_result-sp)
|
||||||
|
@ -152,78 +89,6 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD zif_abapgit_environment~is_merged.
|
||||||
DATA lr_marker TYPE REF TO data ##NEEDED.
|
DATA lr_marker TYPE REF TO data ##NEEDED.
|
||||||
|
|
||||||
|
@ -290,6 +155,50 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
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.
|
METHOD zif_abapgit_environment~is_variant_maintenance.
|
||||||
|
|
||||||
|
@ -303,4 +212,30 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
||||||
rv_is_variant_maintenance = boolc( lines( lt_variscreens ) > 0 ).
|
rv_is_variant_maintenance = boolc( lines( lt_variscreens ) > 0 ).
|
||||||
|
|
||||||
ENDMETHOD.
|
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.
|
ENDCLASS.
|
||||||
|
|
36
src/env/zcl_abapgit_settings.clas.abap
vendored
36
src/env/zcl_abapgit_settings.clas.abap
vendored
|
@ -156,18 +156,6 @@ CLASS zcl_abapgit_settings DEFINITION
|
||||||
METHODS set_activate_wo_popup
|
METHODS set_activate_wo_popup
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_act_wo_popup TYPE zif_abapgit_definitions=>ty_s_user_settings-activate_wo_popup .
|
!iv_act_wo_popup TYPE zif_abapgit_definitions=>ty_s_user_settings-activate_wo_popup .
|
||||||
METHODS set_default_git_uname
|
|
||||||
IMPORTING
|
|
||||||
!iv_default_git_uname TYPE string.
|
|
||||||
METHODS get_default_git_uname
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_default_git_uname) TYPE string.
|
|
||||||
METHODS set_default_git_email
|
|
||||||
IMPORTING
|
|
||||||
!iv_default_git_email TYPE string.
|
|
||||||
METHODS get_default_git_email
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_default_git_email) TYPE string.
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES: BEGIN OF ty_s_settings,
|
TYPES: BEGIN OF ty_s_settings,
|
||||||
|
@ -334,11 +322,7 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
|
||||||
WHEN 'Belize'.
|
WHEN 'Belize'.
|
||||||
rv_ui_theme = c_ui_theme-belize.
|
rv_ui_theme = c_ui_theme-belize.
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
IF lv_frontend_theme CS 'dark'.
|
|
||||||
rv_ui_theme = c_ui_theme-dark.
|
|
||||||
ELSE.
|
|
||||||
rv_ui_theme = c_ui_theme-default.
|
rv_ui_theme = c_ui_theme-default.
|
||||||
ENDIF.
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -503,24 +487,4 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
|
||||||
cg_data = ms_settings ).
|
cg_data = ms_settings ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_default_git_uname.
|
|
||||||
rv_default_git_uname = ms_user_settings-default_git_uname.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD set_default_git_uname.
|
|
||||||
ms_user_settings-default_git_uname = iv_default_git_uname.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_default_git_email.
|
|
||||||
rv_default_git_email = ms_user_settings-default_git_email.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD set_default_git_email.
|
|
||||||
ms_user_settings-default_git_email = iv_default_git_email.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
196
src/env/zcl_abapgit_user_record.clas.abap
vendored
196
src/env/zcl_abapgit_user_record.clas.abap
vendored
|
@ -1,26 +1,45 @@
|
||||||
CLASS zcl_abapgit_user_record DEFINITION
|
CLASS zcl_abapgit_user_record DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
FINAL
|
FINAL
|
||||||
CREATE PRIVATE
|
CREATE PRIVATE.
|
||||||
GLOBAL FRIENDS zcl_abapgit_env_factory.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-METHODS reset.
|
CLASS-METHODS reset.
|
||||||
|
CLASS-METHODS get_instance
|
||||||
INTERFACES zif_abapgit_user_record.
|
IMPORTING
|
||||||
|
!iv_user TYPE sy-uname
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_user) TYPE REF TO zcl_abapgit_user_record.
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
!iv_user TYPE sy-uname.
|
||||||
|
METHODS get_name
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_name) TYPE string.
|
||||||
|
METHODS get_email
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_email) TYPE string.
|
||||||
|
CLASS-METHODS get_title
|
||||||
|
IMPORTING
|
||||||
|
iv_username TYPE sy-uname
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_title) TYPE string.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_user,
|
BEGIN OF ty_user,
|
||||||
user TYPE sy-uname,
|
user TYPE sy-uname,
|
||||||
name TYPE string,
|
o_user TYPE REF TO zcl_abapgit_user_record,
|
||||||
email TYPE string,
|
|
||||||
END OF ty_user.
|
END OF ty_user.
|
||||||
|
|
||||||
CLASS-DATA gt_user TYPE HASHED TABLE OF ty_user WITH UNIQUE KEY user.
|
CLASS-DATA gt_user TYPE HASHED TABLE OF ty_user WITH UNIQUE KEY user.
|
||||||
|
|
||||||
CLASS-METHODS check_user_exists
|
DATA: BEGIN OF ms_user,
|
||||||
|
name TYPE string,
|
||||||
|
email TYPE string,
|
||||||
|
END OF ms_user .
|
||||||
|
|
||||||
|
METHODS check_user_exists
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_user TYPE sy-uname
|
iv_user TYPE sy-uname
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -29,51 +48,35 @@ CLASS zcl_abapgit_user_record DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
CLASS-METHODS get_user_dtls_from_other_clnt
|
METHODS get_user_dtls_from_other_clnt
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_user TYPE sy-uname
|
iv_user TYPE sy-uname.
|
||||||
RETURNING
|
|
||||||
VALUE(rs_user) TYPE ty_user.
|
|
||||||
|
|
||||||
CLASS-METHODS build_cache
|
|
||||||
IMPORTING
|
|
||||||
iv_user TYPE sy-uname
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_user) TYPE ty_user.
|
|
||||||
|
|
||||||
CLASS-METHODS read_cache
|
|
||||||
IMPORTING
|
|
||||||
iv_user TYPE sy-uname
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_user) TYPE ty_user.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_USER_RECORD IMPLEMENTATION.
|
CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD build_cache.
|
METHOD get_title.
|
||||||
|
* the queried username might not exist, so this method is static
|
||||||
|
|
||||||
" Get user details
|
DATA ls_user_address TYPE addr3_val.
|
||||||
TRY.
|
|
||||||
check_user_exists(
|
CALL FUNCTION 'SUSR_USER_ADDRESS_READ'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_user = iv_user
|
user_name = iv_username
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ev_fullname = rs_user-name
|
user_address = ls_user_address
|
||||||
ev_email = rs_user-email ).
|
EXCEPTIONS
|
||||||
CATCH zcx_abapgit_exception.
|
user_address_not_found = 1
|
||||||
" Could not find user, try to get from other clients
|
OTHERS = 2.
|
||||||
rs_user = get_user_dtls_from_other_clnt( iv_user ).
|
IF sy-subrc = 0.
|
||||||
ENDTRY.
|
rv_title = ls_user_address-name_text.
|
||||||
|
ENDIF.
|
||||||
rs_user-user = iv_user.
|
|
||||||
INSERT rs_user INTO TABLE gt_user.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD check_user_exists.
|
METHOD check_user_exists.
|
||||||
|
|
||||||
DATA lt_return TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY.
|
DATA lt_return TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY.
|
||||||
|
@ -106,6 +109,63 @@ CLASS ZCL_ABAPGIT_USER_RECORD IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
DATA ls_user TYPE ty_user.
|
||||||
|
|
||||||
|
" Get user details
|
||||||
|
TRY.
|
||||||
|
check_user_exists(
|
||||||
|
EXPORTING
|
||||||
|
iv_user = iv_user
|
||||||
|
IMPORTING
|
||||||
|
ev_fullname = ms_user-name
|
||||||
|
ev_email = ms_user-email ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
" Could not find user, try to get from other clients
|
||||||
|
get_user_dtls_from_other_clnt( iv_user ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
" If the user has been found add it to the list
|
||||||
|
IF ms_user-name IS NOT INITIAL AND ms_user-email IS NOT INITIAL.
|
||||||
|
ls_user-user = iv_user.
|
||||||
|
ls_user-o_user = me.
|
||||||
|
INSERT ls_user INTO TABLE gt_user.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_email.
|
||||||
|
|
||||||
|
rv_email = ms_user-email.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_instance.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ls_user> TYPE ty_user.
|
||||||
|
|
||||||
|
READ TABLE gt_user ASSIGNING <ls_user> WITH TABLE KEY user = iv_user.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
ro_user = <ls_user>-o_user.
|
||||||
|
ELSE.
|
||||||
|
CREATE OBJECT ro_user
|
||||||
|
EXPORTING
|
||||||
|
iv_user = iv_user.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_name.
|
||||||
|
|
||||||
|
rv_name = ms_user-name.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_user_dtls_from_other_clnt.
|
METHOD get_user_dtls_from_other_clnt.
|
||||||
|
|
||||||
CONSTANTS lc_cc_category TYPE string VALUE 'C'.
|
CONSTANTS lc_cc_category TYPE string VALUE 'C'.
|
||||||
|
@ -119,7 +179,7 @@ CLASS ZCL_ABAPGIT_USER_RECORD IMPLEMENTATION.
|
||||||
ORDER BY PRIMARY KEY.
|
ORDER BY PRIMARY KEY.
|
||||||
|
|
||||||
LOOP AT lt_dev_clients ASSIGNING <lv_dev_client>.
|
LOOP AT lt_dev_clients ASSIGNING <lv_dev_client>.
|
||||||
SELECT SINGLE u~bname p~name_text a~smtp_addr INTO (rs_user-user, rs_user-name, rs_user-email)
|
SELECT SINGLE p~name_text a~smtp_addr INTO (ms_user-name, ms_user-email)
|
||||||
FROM usr21 AS u
|
FROM usr21 AS u
|
||||||
INNER JOIN adrp AS p ON p~persnumber = u~persnumber
|
INNER JOIN adrp AS p ON p~persnumber = u~persnumber
|
||||||
AND p~client = u~mandt
|
AND p~client = u~mandt
|
||||||
|
@ -140,61 +200,7 @@ CLASS ZCL_ABAPGIT_USER_RECORD IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD read_cache.
|
|
||||||
|
|
||||||
READ TABLE gt_user INTO rs_user WITH TABLE KEY user = iv_user.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
rs_user = build_cache( iv_user ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD reset.
|
METHOD reset.
|
||||||
CLEAR gt_user.
|
CLEAR gt_user.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_user_record~get_email.
|
|
||||||
|
|
||||||
rv_email = read_cache( iv_username )-email.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_user_record~get_name.
|
|
||||||
|
|
||||||
rv_name = read_cache( iv_username )-name.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_user_record~get_title.
|
|
||||||
* the queried username might not exist, refactored for open-abap compatibility
|
|
||||||
|
|
||||||
DATA lr_addr3 TYPE REF TO data.
|
|
||||||
FIELD-SYMBOLS <ls_addr3> TYPE any.
|
|
||||||
FIELD-SYMBOLS <lv_simple> TYPE simple.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE DATA lr_addr3 TYPE ('ADDR3_VAL').
|
|
||||||
CATCH cx_sy_create_data_error.
|
|
||||||
RETURN.
|
|
||||||
ENDTRY.
|
|
||||||
ASSIGN lr_addr3->* TO <ls_addr3>.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SUSR_USER_ADDRESS_READ'
|
|
||||||
EXPORTING
|
|
||||||
user_name = iv_username
|
|
||||||
IMPORTING
|
|
||||||
user_address = <ls_addr3>
|
|
||||||
EXCEPTIONS
|
|
||||||
user_address_not_found = 1
|
|
||||||
OTHERS = 2.
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
ASSIGN COMPONENT 'NAME_TEXT' OF STRUCTURE <ls_addr3> TO <lv_simple>.
|
|
||||||
rv_title = <lv_simple>.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -16,10 +16,10 @@ ENDCLASS.
|
||||||
CLASS ltcl_user_record IMPLEMENTATION.
|
CLASS ltcl_user_record IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD test_invalid_user.
|
METHOD test_invalid_user.
|
||||||
DATA li_user_record TYPE REF TO zif_abapgit_user_record.
|
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
||||||
|
|
||||||
zcl_abapgit_user_record=>reset( ).
|
zcl_abapgit_user_record=>reset( ).
|
||||||
li_user_record = zcl_abapgit_env_factory=>get_user_record( ).
|
lo_user_record = zcl_abapgit_user_record=>get_instance( c_wrong_user ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
exp = 0
|
exp = 0
|
||||||
|
|
8
src/env/zif_abapgit_environment.intf.abap
vendored
8
src/env/zif_abapgit_environment.intf.abap
vendored
|
@ -39,13 +39,5 @@ INTERFACE zif_abapgit_environment
|
||||||
iv_group TYPE clike
|
iv_group TYPE clike
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_free_work_processes) TYPE i.
|
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.
|
ENDINTERFACE.
|
||||||
|
|
21
src/env/zif_abapgit_user_record.intf.abap
vendored
21
src/env/zif_abapgit_user_record.intf.abap
vendored
|
@ -1,21 +0,0 @@
|
||||||
INTERFACE zif_abapgit_user_record PUBLIC.
|
|
||||||
|
|
||||||
METHODS get_name
|
|
||||||
IMPORTING
|
|
||||||
iv_username TYPE sy-uname
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_name) TYPE string.
|
|
||||||
|
|
||||||
METHODS get_email
|
|
||||||
IMPORTING
|
|
||||||
iv_username TYPE sy-uname
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_email) TYPE string.
|
|
||||||
|
|
||||||
METHODS get_title
|
|
||||||
IMPORTING
|
|
||||||
iv_username TYPE sy-uname
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_title) TYPE string.
|
|
||||||
|
|
||||||
ENDINTERFACE.
|
|
15
src/env/zif_abapgit_user_record.intf.xml
vendored
15
src/env/zif_abapgit_user_record.intf.xml
vendored
|
@ -1,15 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<VSEOINTERF>
|
|
||||||
<CLSNAME>ZIF_ABAPGIT_USER_RECORD</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - User Record</DESCRIPT>
|
|
||||||
<EXPOSURE>2</EXPOSURE>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOINTERF>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -317,7 +317,7 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
|
||||||
TRY.
|
TRY.
|
||||||
gi_exit->determine_transport_request(
|
gi_exit->determine_transport_request(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
ii_repo = ii_repo
|
io_repo = io_repo
|
||||||
iv_transport_type = iv_transport_type
|
iv_transport_type = iv_transport_type
|
||||||
CHANGING
|
CHANGING
|
||||||
cv_transport_request = cv_transport_request ).
|
cv_transport_request = cv_transport_request ).
|
||||||
|
@ -328,18 +328,6 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_exit~enhance_any_toolbar.
|
|
||||||
|
|
||||||
IF gi_exit IS NOT INITIAL.
|
|
||||||
TRY.
|
|
||||||
gi_exit->enhance_any_toolbar( io_menu ).
|
|
||||||
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
|
|
||||||
ENDTRY.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_exit~enhance_repo_toolbar.
|
METHOD zif_abapgit_exit~enhance_repo_toolbar.
|
||||||
|
|
||||||
IF gi_exit IS NOT INITIAL.
|
IF gi_exit IS NOT INITIAL.
|
||||||
|
@ -454,7 +442,7 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
|
||||||
gi_exit->validate_before_push(
|
gi_exit->validate_before_push(
|
||||||
is_comment = is_comment
|
is_comment = is_comment
|
||||||
io_stage = io_stage
|
io_stage = io_stage
|
||||||
ii_repo_online = ii_repo_online ).
|
io_repo = io_repo ).
|
||||||
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
|
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
*"* use this source file for your ABAP unit test classes
|
||||||
|
|
||||||
CLASS ltcl_test DEFINITION DEFERRED.
|
CLASS ltcl_test DEFINITION DEFERRED.
|
||||||
CLASS zcl_abapgit_exit DEFINITION LOCAL FRIENDS ltcl_test.
|
CLASS zcl_abapgit_exit DEFINITION LOCAL FRIENDS ltcl_test.
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
INTERFACE zif_abapgit_exit PUBLIC.
|
INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_ci_repo,
|
BEGIN OF ty_ci_repo,
|
||||||
name TYPE string,
|
name TYPE string,
|
||||||
clone_url TYPE string,
|
clone_url TYPE string,
|
||||||
END OF ty_ci_repo.
|
END OF ty_ci_repo.
|
||||||
|
TYPES:
|
||||||
TYPES ty_ci_repos TYPE STANDARD TABLE OF ty_ci_repo WITH DEFAULT KEY.
|
ty_ci_repos TYPE TABLE OF ty_ci_repo.
|
||||||
|
TYPES:
|
||||||
TYPES ty_object_types TYPE HASHED TABLE OF tadir-object WITH UNIQUE KEY table_line.
|
ty_object_types TYPE STANDARD TABLE OF tadir-object WITH DEFAULT KEY.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_class_key,
|
BEGIN OF ty_class_key,
|
||||||
clsname TYPE abap_classname,
|
clsname TYPE abap_classname,
|
||||||
|
@ -25,58 +25,47 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
!cv_display_url TYPE csequence
|
!cv_display_url TYPE csequence
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS adjust_display_filename
|
METHODS adjust_display_filename
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
||||||
!iv_filename TYPE string
|
!iv_filename TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_filename) TYPE string.
|
VALUE(rv_filename) TYPE string.
|
||||||
|
|
||||||
METHODS allow_sap_objects
|
METHODS allow_sap_objects
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_allowed) TYPE abap_bool.
|
VALUE(rv_allowed) TYPE abap_bool.
|
||||||
|
|
||||||
METHODS change_local_host
|
METHODS change_local_host
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_hosts TYPE zif_abapgit_definitions=>ty_string_tt.
|
!ct_hosts TYPE zif_abapgit_definitions=>ty_string_tt.
|
||||||
|
|
||||||
METHODS change_max_parallel_processes
|
METHODS change_max_parallel_processes
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
CHANGING
|
CHANGING
|
||||||
!cv_max_processes TYPE i.
|
!cv_max_processes TYPE i.
|
||||||
|
|
||||||
METHODS change_proxy_authentication
|
METHODS change_proxy_authentication
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_repo_url TYPE csequence
|
!iv_repo_url TYPE csequence
|
||||||
CHANGING
|
CHANGING
|
||||||
!cv_proxy_authentication TYPE abap_bool.
|
!cv_proxy_authentication TYPE abap_bool.
|
||||||
|
|
||||||
METHODS change_proxy_port
|
METHODS change_proxy_port
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_repo_url TYPE csequence
|
!iv_repo_url TYPE csequence
|
||||||
CHANGING
|
CHANGING
|
||||||
!cv_proxy_port TYPE string.
|
!cv_proxy_port TYPE string.
|
||||||
|
|
||||||
METHODS change_proxy_url
|
METHODS change_proxy_url
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_repo_url TYPE csequence
|
!iv_repo_url TYPE csequence
|
||||||
CHANGING
|
CHANGING
|
||||||
!cv_proxy_url TYPE string.
|
!cv_proxy_url TYPE string.
|
||||||
|
|
||||||
METHODS change_rfc_server_group
|
METHODS change_rfc_server_group
|
||||||
CHANGING
|
CHANGING
|
||||||
!cv_group TYPE rzlli_apcl.
|
!cv_group TYPE rzlli_apcl.
|
||||||
|
|
||||||
METHODS change_supported_data_objects
|
METHODS change_supported_data_objects
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_objects TYPE zif_abapgit_data_supporter=>ty_objects.
|
!ct_objects TYPE zif_abapgit_data_supporter=>ty_objects.
|
||||||
|
|
||||||
METHODS change_supported_object_types
|
METHODS change_supported_object_types
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_types TYPE ty_object_types.
|
!ct_types TYPE ty_object_types.
|
||||||
|
|
||||||
METHODS change_tadir
|
METHODS change_tadir
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
|
@ -86,7 +75,6 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
|
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
||||||
|
|
||||||
METHODS create_http_client
|
METHODS create_http_client
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_url TYPE string
|
!iv_url TYPE string
|
||||||
|
@ -94,7 +82,6 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
VALUE(ri_client) TYPE REF TO if_http_client
|
VALUE(ri_client) TYPE REF TO if_http_client
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS custom_serialize_abap_clif
|
METHODS custom_serialize_abap_clif
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_class_key TYPE ty_class_key
|
!is_class_key TYPE ty_class_key
|
||||||
|
@ -103,44 +90,33 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
|
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS deserialize_postprocess
|
METHODS deserialize_postprocess
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_step TYPE zif_abapgit_objects=>ty_step_data
|
!is_step TYPE zif_abapgit_objects=>ty_step_data
|
||||||
!ii_log TYPE REF TO zif_abapgit_log.
|
!ii_log TYPE REF TO zif_abapgit_log.
|
||||||
|
|
||||||
METHODS determine_transport_request
|
METHODS determine_transport_request
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
!iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
!iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
||||||
CHANGING
|
CHANGING
|
||||||
!cv_transport_request TYPE trkorr.
|
!cv_transport_request TYPE trkorr.
|
||||||
|
|
||||||
METHODS enhance_any_toolbar
|
|
||||||
IMPORTING
|
|
||||||
!io_menu TYPE REF TO zcl_abapgit_html_toolbar.
|
|
||||||
|
|
||||||
METHODS enhance_repo_toolbar
|
METHODS enhance_repo_toolbar
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_menu TYPE REF TO zcl_abapgit_html_toolbar
|
!io_menu TYPE REF TO zcl_abapgit_html_toolbar
|
||||||
!iv_key TYPE zif_abapgit_persistence=>ty_value
|
!iv_key TYPE zif_abapgit_persistence=>ty_value
|
||||||
!iv_act TYPE string.
|
!iv_act TYPE string.
|
||||||
|
|
||||||
METHODS get_ci_tests
|
METHODS get_ci_tests
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_object TYPE tadir-object
|
!iv_object TYPE tadir-object
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_ci_repos TYPE ty_ci_repos.
|
!ct_ci_repos TYPE ty_ci_repos.
|
||||||
|
|
||||||
METHODS get_ssl_id
|
METHODS get_ssl_id
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_ssl_id) TYPE ssfapplssl.
|
VALUE(rv_ssl_id) TYPE ssfapplssl.
|
||||||
|
|
||||||
METHODS http_client
|
METHODS http_client
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_url TYPE string
|
!iv_url TYPE string
|
||||||
!ii_client TYPE REF TO if_http_client.
|
!ii_client TYPE REF TO if_http_client.
|
||||||
|
|
||||||
METHODS on_event
|
METHODS on_event
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_event TYPE REF TO zif_abapgit_gui_event
|
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||||
|
@ -148,7 +124,6 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
|
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS pre_calculate_repo_status
|
METHODS pre_calculate_repo_status
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
||||||
|
@ -157,26 +132,22 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
||||||
!ct_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
|
!ct_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS serialize_postprocess
|
METHODS serialize_postprocess
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
!ii_log TYPE REF TO zif_abapgit_log
|
!ii_log TYPE REF TO zif_abapgit_log
|
||||||
CHANGING
|
CHANGING
|
||||||
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt.
|
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt.
|
||||||
|
|
||||||
METHODS validate_before_push
|
METHODS validate_before_push
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
|
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
|
||||||
!io_stage TYPE REF TO zcl_abapgit_stage
|
!io_stage TYPE REF TO zcl_abapgit_stage
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS wall_message_list
|
METHODS wall_message_list
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_html TYPE REF TO zif_abapgit_html.
|
!ii_html TYPE REF TO zif_abapgit_html.
|
||||||
|
|
||||||
METHODS wall_message_repo
|
METHODS wall_message_repo
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
*"* use this source file for your ABAP unit test classes
|
||||||
|
|
||||||
CLASS ltcl_calculate_patch DEFINITION FINAL FOR TESTING
|
CLASS ltcl_calculate_patch DEFINITION FINAL FOR TESTING
|
||||||
DURATION SHORT
|
DURATION SHORT
|
||||||
RISK LEVEL HARMLESS.
|
RISK LEVEL HARMLESS.
|
||||||
|
|
|
@ -178,18 +178,14 @@ CLASS zcl_abapgit_git_pack IMPLEMENTATION.
|
||||||
lv_data = iv_data.
|
lv_data = iv_data.
|
||||||
|
|
||||||
* header
|
* header
|
||||||
IF xstrlen( lv_data ) < 4.
|
IF NOT xstrlen( lv_data ) > 4 OR lv_data(4) <> c_pack_start.
|
||||||
zcx_abapgit_exception=>raise( |Unexpected pack header, short reply| ).
|
zcx_abapgit_exception=>raise( |Unexpected pack header| ).
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF lv_data(4) <> c_pack_start.
|
|
||||||
zcx_abapgit_exception=>raise( |Unexpected pack header, { lv_data(4) }| ).
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
lv_data = lv_data+4.
|
lv_data = lv_data+4.
|
||||||
|
|
||||||
* version
|
* version
|
||||||
IF lv_data(4) <> c_version.
|
IF lv_data(4) <> c_version.
|
||||||
zcx_abapgit_exception=>raise( |Version not supported, { lv_data(4) }| ).
|
zcx_abapgit_exception=>raise( |Version not supported| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
lv_data = lv_data+4.
|
lv_data = lv_data+4.
|
||||||
|
|
||||||
|
@ -485,10 +481,9 @@ CLASS zcl_abapgit_git_pack IMPLEMENTATION.
|
||||||
ls_node-chmod = lv_chmod.
|
ls_node-chmod = lv_chmod.
|
||||||
IF ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-dir
|
IF ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-dir
|
||||||
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-file
|
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-file
|
||||||
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-symbolic_link
|
|
||||||
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-executable
|
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-executable
|
||||||
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-submodule.
|
AND ls_node-chmod <> zif_abapgit_git_definitions=>c_chmod-submodule.
|
||||||
zcx_abapgit_exception=>raise( |Unknown chmod { ls_node-chmod }| ).
|
zcx_abapgit_exception=>raise( |Unknown chmod| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
lv_offset = lv_match + 1.
|
lv_offset = lv_match + 1.
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
*"* use this source file for any type of declarations (class
|
||||||
|
*"* definitions, interfaces or type declarations) you need for
|
||||||
|
*"* components in the private section
|
||||||
|
|
||||||
CLASS lcl_stream DEFINITION FINAL.
|
CLASS lcl_stream DEFINITION FINAL.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
TYPES: ty_hex TYPE x LENGTH 1.
|
TYPES: ty_hex TYPE x LENGTH 1.
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
*"* use this source file for the definition and implementation of
|
||||||
|
*"* local helper classes, interface definitions and type
|
||||||
|
*"* declarations
|
||||||
|
|
||||||
CLASS lcl_stream IMPLEMENTATION.
|
CLASS lcl_stream IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
|
|
@ -809,7 +809,6 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
|
||||||
CASE <ls_node>-chmod.
|
CASE <ls_node>-chmod.
|
||||||
WHEN zif_abapgit_git_definitions=>c_chmod-file
|
WHEN zif_abapgit_git_definitions=>c_chmod-file
|
||||||
OR zif_abapgit_git_definitions=>c_chmod-executable
|
OR zif_abapgit_git_definitions=>c_chmod-executable
|
||||||
OR zif_abapgit_git_definitions=>c_chmod-symbolic_link
|
|
||||||
OR zif_abapgit_git_definitions=>c_chmod-submodule.
|
OR zif_abapgit_git_definitions=>c_chmod-submodule.
|
||||||
APPEND INITIAL LINE TO rt_expanded ASSIGNING <ls_exp>.
|
APPEND INITIAL LINE TO rt_expanded ASSIGNING <ls_exp>.
|
||||||
<ls_exp>-path = iv_base.
|
<ls_exp>-path = iv_base.
|
||||||
|
@ -823,7 +822,7 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
|
||||||
iv_base = iv_base && <ls_node>-name && '/' ).
|
iv_base = iv_base && <ls_node>-name && '/' ).
|
||||||
APPEND LINES OF lt_expanded TO rt_expanded.
|
APPEND LINES OF lt_expanded TO rt_expanded.
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
zcx_abapgit_exception=>raise( |walk_tree: unknown chmod { <ls_node>-chmod }| ).
|
zcx_abapgit_exception=>raise( 'walk_tree: unknown chmod' ).
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,6 @@ INTERFACE zif_abapgit_git_definitions
|
||||||
executable TYPE ty_chmod VALUE '100755',
|
executable TYPE ty_chmod VALUE '100755',
|
||||||
dir TYPE ty_chmod VALUE '40000 ',
|
dir TYPE ty_chmod VALUE '40000 ',
|
||||||
submodule TYPE ty_chmod VALUE '160000',
|
submodule TYPE ty_chmod VALUE '160000',
|
||||||
symbolic_link TYPE ty_chmod VALUE '120000',
|
|
||||||
END OF c_chmod .
|
END OF c_chmod .
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
|
|
|
@ -7,7 +7,7 @@ CLASS zcl_abapgit_git_url DEFINITION
|
||||||
|
|
||||||
METHODS get_commit_display_url
|
METHODS get_commit_display_url
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_url) TYPE string
|
VALUE(rv_url) TYPE string
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -40,21 +40,18 @@ CLASS zcl_abapgit_git_url IMPLEMENTATION.
|
||||||
METHOD get_commit_display_url.
|
METHOD get_commit_display_url.
|
||||||
|
|
||||||
DATA li_exit TYPE REF TO zif_abapgit_exit.
|
DATA li_exit TYPE REF TO zif_abapgit_exit.
|
||||||
DATA li_repo TYPE REF TO zif_abapgit_repo.
|
|
||||||
|
|
||||||
li_repo = ii_repo_online.
|
|
||||||
|
|
||||||
rv_url = get_default_commit_display_url(
|
rv_url = get_default_commit_display_url(
|
||||||
iv_repo_url = ii_repo_online->get_url( )
|
iv_repo_url = io_repo->get_url( )
|
||||||
iv_hash = ii_repo_online->get_current_remote( ) ).
|
iv_hash = io_repo->get_current_remote( ) ).
|
||||||
|
|
||||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||||
li_exit->adjust_display_commit_url(
|
li_exit->adjust_display_commit_url(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_repo_url = ii_repo_online->get_url( )
|
iv_repo_url = io_repo->get_url( )
|
||||||
iv_repo_name = li_repo->get_name( )
|
iv_repo_name = io_repo->get_name( )
|
||||||
iv_repo_key = li_repo->get_key( )
|
iv_repo_key = io_repo->get_key( )
|
||||||
iv_commit_hash = ii_repo_online->get_current_remote( )
|
iv_commit_hash = io_repo->get_current_remote( )
|
||||||
CHANGING
|
CHANGING
|
||||||
cv_display_url = rv_url ).
|
cv_display_url = rv_url ).
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ CLASS zcl_abapgit_pr_enumerator IMPLEMENTATION.
|
||||||
mv_repo_url = to_lower( iv_url ).
|
mv_repo_url = to_lower( iv_url ).
|
||||||
TRY.
|
TRY.
|
||||||
mi_enum_provider = create_provider( mv_repo_url ).
|
mi_enum_provider = create_provider( mv_repo_url ).
|
||||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
CATCH zcx_abapgit_exception.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -62,7 +62,7 @@ CLASS zcl_abapgit_pr_enumerator IMPLEMENTATION.
|
||||||
DATA lv_user TYPE string.
|
DATA lv_user TYPE string.
|
||||||
DATA lv_repo TYPE string.
|
DATA lv_repo TYPE string.
|
||||||
|
|
||||||
li_agent = zcl_abapgit_http_agent=>create( ).
|
li_agent = zcl_abapgit_factory=>get_http_agent( ).
|
||||||
|
|
||||||
FIND ALL OCCURRENCES OF REGEX 'github\.com\/([^\/]+)\/([^\/]+)'
|
FIND ALL OCCURRENCES OF REGEX 'github\.com\/([^\/]+)\/([^\/]+)'
|
||||||
IN iv_repo_url
|
IN iv_repo_url
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
CLASS zcl_abapgit_code_inspector DEFINITION
|
CLASS zcl_abapgit_code_inspector DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
CREATE PROTECTED.
|
CREATE PROTECTED
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_factory .
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
@ -12,19 +13,6 @@ CLASS zcl_abapgit_code_inspector DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
CLASS-METHODS get_code_inspector
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
RETURNING
|
|
||||||
VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
CLASS-METHODS set_code_inspector
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
!ii_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
DATA mv_package TYPE devclass .
|
DATA mv_package TYPE devclass .
|
||||||
|
|
||||||
|
@ -47,15 +35,6 @@ CLASS zcl_abapgit_code_inspector DEFINITION
|
||||||
VALUE(rv_skip) TYPE abap_bool.
|
VALUE(rv_skip) TYPE abap_bool.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_code_inspector_pack,
|
|
||||||
package TYPE devclass,
|
|
||||||
instance TYPE REF TO zif_abapgit_code_inspector,
|
|
||||||
END OF ty_code_inspector_pack,
|
|
||||||
ty_code_inspector_packs TYPE HASHED TABLE OF ty_code_inspector_pack WITH UNIQUE KEY package.
|
|
||||||
|
|
||||||
CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs.
|
|
||||||
|
|
||||||
DATA mv_success TYPE abap_bool .
|
DATA mv_success TYPE abap_bool .
|
||||||
DATA mv_summary TYPE string.
|
DATA mv_summary TYPE string.
|
||||||
|
|
||||||
|
@ -287,28 +266,6 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_code_inspector.
|
|
||||||
|
|
||||||
DATA ls_code_inspector LIKE LINE OF gt_code_inspector.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_code_inspector> TYPE ty_code_inspector_pack.
|
|
||||||
|
|
||||||
READ TABLE gt_code_inspector ASSIGNING <ls_code_inspector> WITH TABLE KEY package = iv_package.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
ls_code_inspector-package = iv_package.
|
|
||||||
|
|
||||||
CREATE OBJECT ls_code_inspector-instance TYPE zcl_abapgit_code_inspector
|
|
||||||
EXPORTING
|
|
||||||
iv_package = iv_package.
|
|
||||||
|
|
||||||
INSERT ls_code_inspector INTO TABLE gt_code_inspector ASSIGNING <ls_code_inspector>.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ri_code_inspector = <ls_code_inspector>-instance.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD run_inspection.
|
METHOD run_inspection.
|
||||||
|
|
||||||
io_inspection->run(
|
io_inspection->run(
|
||||||
|
@ -333,24 +290,6 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_code_inspector.
|
|
||||||
|
|
||||||
DATA ls_code_inspector LIKE LINE OF gt_code_inspector.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_code_inspector> LIKE LINE OF gt_code_inspector.
|
|
||||||
|
|
||||||
READ TABLE gt_code_inspector ASSIGNING <ls_code_inspector> WITH TABLE KEY package = iv_package.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
ls_code_inspector-package = iv_package.
|
|
||||||
|
|
||||||
INSERT ls_code_inspector INTO TABLE gt_code_inspector ASSIGNING <ls_code_inspector>.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
<ls_code_inspector>-instance = ii_code_inspector.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD skip_object.
|
METHOD skip_object.
|
||||||
|
|
||||||
DATA ls_program_type TYPE subc.
|
DATA ls_program_type TYPE subc.
|
||||||
|
|
|
@ -1,442 +0,0 @@
|
||||||
CLASS zcl_abapgit_where_used_tools DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
TYPES ty_devc_range TYPE RANGE OF tadir-devclass.
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_dependency,
|
|
||||||
package TYPE devclass,
|
|
||||||
obj_type TYPE tadir-object,
|
|
||||||
obj_prog_type TYPE trdir-subc,
|
|
||||||
obj_name TYPE tadir-obj_name,
|
|
||||||
obj_cls TYPE string,
|
|
||||||
dep_package TYPE devclass,
|
|
||||||
dep_obj_type TYPE tadir-object,
|
|
||||||
dep_obj_name TYPE tadir-obj_name,
|
|
||||||
dep_used_cls TYPE string,
|
|
||||||
dep_used_obj TYPE string,
|
|
||||||
END OF ty_dependency.
|
|
||||||
TYPES:
|
|
||||||
ty_dependency_tt TYPE STANDARD TABLE OF ty_dependency WITH DEFAULT KEY.
|
|
||||||
|
|
||||||
CLASS-METHODS new
|
|
||||||
RETURNING
|
|
||||||
VALUE(ro_instance) TYPE REF TO zcl_abapgit_where_used_tools.
|
|
||||||
|
|
||||||
" the initial version of this utility is also available as a standalone tool
|
|
||||||
" here: https://github.com/sbcgua/crossdeps
|
|
||||||
METHODS select_external_usages
|
|
||||||
IMPORTING
|
|
||||||
iv_package TYPE tadir-devclass
|
|
||||||
iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
|
|
||||||
ir_package_scope TYPE ty_devc_range OPTIONAL
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_objs) TYPE ty_dependency_tt
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_obj_signature,
|
|
||||||
package TYPE devclass,
|
|
||||||
obj_type TYPE tadir-object,
|
|
||||||
obj_name TYPE tadir-obj_name,
|
|
||||||
END OF ty_obj_signature.
|
|
||||||
|
|
||||||
TYPES ty_where_used_tt TYPE STANDARD TABLE OF rsfindlst WITH DEFAULT KEY.
|
|
||||||
TYPES ty_seu_obj TYPE STANDARD TABLE OF seu_obj WITH DEFAULT KEY.
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_dev_object,
|
|
||||||
type TYPE seu_stype,
|
|
||||||
tadir TYPE trobjtype,
|
|
||||||
END OF ty_dev_object.
|
|
||||||
|
|
||||||
DATA mt_object_packages TYPE HASHED TABLE OF ty_obj_signature WITH UNIQUE KEY obj_type obj_name.
|
|
||||||
DATA mt_dev_obj_cache TYPE HASHED TABLE OF ty_dev_object WITH UNIQUE KEY type.
|
|
||||||
|
|
||||||
METHODS get_where_used
|
|
||||||
IMPORTING
|
|
||||||
iv_obj_type TYPE euobj-id
|
|
||||||
iv_obj_name TYPE tadir-obj_name
|
|
||||||
it_scope TYPE ty_seu_obj OPTIONAL
|
|
||||||
ir_package_scope TYPE ty_devc_range OPTIONAL
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_findings) TYPE ty_where_used_tt
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
METHODS get_obj_package
|
|
||||||
IMPORTING
|
|
||||||
iv_obj_type TYPE tadir-object
|
|
||||||
iv_obj_name TYPE tadir-obj_name
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_package) TYPE tadir-devclass.
|
|
||||||
|
|
||||||
METHODS get_func_package
|
|
||||||
IMPORTING
|
|
||||||
iv_func_name TYPE tadir-obj_name
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_package) TYPE tadir-devclass.
|
|
||||||
|
|
||||||
METHODS get_incl_package
|
|
||||||
IMPORTING
|
|
||||||
iv_prog_name TYPE tadir-obj_name
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_package) TYPE tadir-devclass.
|
|
||||||
|
|
||||||
METHODS build_package_scope
|
|
||||||
IMPORTING
|
|
||||||
it_tadir TYPE STANDARD TABLE
|
|
||||||
ir_package_scope TYPE ty_devc_range
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_package_scope) TYPE ty_devc_range.
|
|
||||||
|
|
||||||
METHODS collect_where_used
|
|
||||||
IMPORTING
|
|
||||||
it_tadir TYPE STANDARD TABLE
|
|
||||||
ir_package_scope TYPE ty_devc_range
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_objs) TYPE ty_dependency_tt
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
METHODS convert_list
|
|
||||||
IMPORTING
|
|
||||||
iv_package TYPE ty_dependency-dep_package
|
|
||||||
iv_obj_type TYPE ty_dependency-dep_obj_type
|
|
||||||
iv_obj_name TYPE ty_dependency-dep_obj_name
|
|
||||||
it_where_used TYPE ty_where_used_tt
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_objs) TYPE ty_dependency_tt.
|
|
||||||
|
|
||||||
METHODS decode_obj_type
|
|
||||||
IMPORTING
|
|
||||||
iv_type TYPE rsfindlst-object_cls
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_type) TYPE ty_dev_object-tadir.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_where_used_tools IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD build_package_scope.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_tadir> TYPE zif_abapgit_definitions=>ty_tadir.
|
|
||||||
FIELD-SYMBOLS <ls_pkg> LIKE LINE OF rt_package_scope.
|
|
||||||
|
|
||||||
rt_package_scope = ir_package_scope.
|
|
||||||
LOOP AT it_tadir ASSIGNING <ls_tadir>.
|
|
||||||
CHECK <ls_tadir>-object = 'DEVC'.
|
|
||||||
APPEND INITIAL LINE TO rt_package_scope ASSIGNING <ls_pkg>.
|
|
||||||
<ls_pkg>-sign = 'E'.
|
|
||||||
<ls_pkg>-option = 'EQ'.
|
|
||||||
<ls_pkg>-low = <ls_tadir>-obj_name.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD collect_where_used.
|
|
||||||
|
|
||||||
DATA li_progress TYPE REF TO zif_abapgit_progress.
|
|
||||||
DATA lt_where_used TYPE ty_where_used_tt.
|
|
||||||
DATA lt_objs_portion LIKE rt_objs.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_tadir> TYPE zif_abapgit_definitions=>ty_tadir.
|
|
||||||
|
|
||||||
li_progress = zcl_abapgit_progress=>get_instance( lines( it_tadir ) ).
|
|
||||||
|
|
||||||
LOOP AT it_tadir ASSIGNING <ls_tadir>.
|
|
||||||
CHECK <ls_tadir>-object <> 'DEVC'.
|
|
||||||
|
|
||||||
li_progress->show(
|
|
||||||
iv_current = sy-tabix
|
|
||||||
iv_text = |{ <ls_tadir>-object } { <ls_tadir>-obj_name }| ).
|
|
||||||
|
|
||||||
lt_where_used = get_where_used(
|
|
||||||
iv_obj_type = |{ <ls_tadir>-object }|
|
|
||||||
iv_obj_name = <ls_tadir>-obj_name
|
|
||||||
ir_package_scope = ir_package_scope ).
|
|
||||||
|
|
||||||
lt_objs_portion = convert_list(
|
|
||||||
iv_package = <ls_tadir>-devclass
|
|
||||||
iv_obj_type = <ls_tadir>-object
|
|
||||||
iv_obj_name = <ls_tadir>-obj_name
|
|
||||||
it_where_used = lt_where_used ).
|
|
||||||
|
|
||||||
APPEND LINES OF lt_objs_portion TO rt_objs.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
li_progress->off( ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD convert_list.
|
|
||||||
|
|
||||||
" See also CL_FINB_GN_BBI=>GET_CROSSREF
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_dep> LIKE LINE OF rt_objs.
|
|
||||||
FIELD-SYMBOLS <ls_use> LIKE LINE OF it_where_used.
|
|
||||||
|
|
||||||
LOOP AT it_where_used ASSIGNING <ls_use>.
|
|
||||||
|
|
||||||
APPEND INITIAL LINE TO rt_objs ASSIGNING <ls_dep>.
|
|
||||||
<ls_dep>-dep_package = iv_package.
|
|
||||||
<ls_dep>-dep_obj_type = iv_obj_type.
|
|
||||||
<ls_dep>-dep_obj_name = iv_obj_name.
|
|
||||||
|
|
||||||
<ls_dep>-dep_used_obj = <ls_use>-used_obj.
|
|
||||||
<ls_dep>-dep_used_cls = <ls_use>-used_cls.
|
|
||||||
|
|
||||||
<ls_dep>-obj_cls = <ls_use>-object_cls.
|
|
||||||
<ls_dep>-obj_name = <ls_use>-encl_objec.
|
|
||||||
IF <ls_dep>-obj_name IS INITIAL.
|
|
||||||
<ls_dep>-obj_name = <ls_use>-object.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF <ls_use>-object_cls = 'FF'. " Function module
|
|
||||||
<ls_dep>-obj_type = 'FUNC'.
|
|
||||||
<ls_dep>-package = get_func_package( <ls_dep>-obj_name ).
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
<ls_dep>-obj_type = decode_obj_type( <ls_use>-object_cls ).
|
|
||||||
|
|
||||||
<ls_dep>-package = get_obj_package(
|
|
||||||
iv_obj_type = <ls_dep>-obj_type
|
|
||||||
iv_obj_name = <ls_dep>-obj_name ).
|
|
||||||
|
|
||||||
IF <ls_dep>-package IS INITIAL AND <ls_dep>-obj_type = 'CLAS'.
|
|
||||||
<ls_dep>-package = get_obj_package(
|
|
||||||
iv_obj_type = 'INTF'
|
|
||||||
iv_obj_name = <ls_dep>-obj_name ).
|
|
||||||
IF <ls_dep>-package IS NOT INITIAL.
|
|
||||||
<ls_dep>-obj_type = 'INTF'.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF <ls_dep>-package IS INITIAL.
|
|
||||||
IF <ls_dep>-obj_type = 'PROG'. " Maybe it is an include
|
|
||||||
|
|
||||||
<ls_dep>-package = get_incl_package( <ls_dep>-obj_name ).
|
|
||||||
IF <ls_dep>-package IS INITIAL.
|
|
||||||
SELECT SINGLE subc INTO <ls_dep>-obj_prog_type FROM trdir WHERE name = <ls_dep>-obj_name.
|
|
||||||
IF <ls_dep>-obj_prog_type IS NOT INITIAL AND <ls_dep>-obj_prog_type <> '1'. " Exec. prog
|
|
||||||
<ls_dep>-obj_type = 'INCL'.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF <ls_dep>-package IS INITIAL.
|
|
||||||
<ls_dep>-package = '????'.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
" some includes are ENHO ...
|
|
||||||
" include detection TRDIR, D010INC ???
|
|
||||||
" how to find connection with ENHO ?
|
|
||||||
" Useful: https://github.com/abaplint/abaplint-sci-client/blob/main/src/deps/zcl_abaplint_deps_find.clas.abap
|
|
||||||
" And cl_wb_manager->if_wb_manager~request_tool_access
|
|
||||||
" And discussions in https://github.com/abapGit/abapGit/pull/6897
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD decode_obj_type.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_devobj> LIKE LINE OF mt_dev_obj_cache.
|
|
||||||
|
|
||||||
IF mt_dev_obj_cache IS INITIAL.
|
|
||||||
SELECT type tadir INTO TABLE mt_dev_obj_cache
|
|
||||||
FROM euobjedit.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
READ TABLE mt_dev_obj_cache ASSIGNING <ls_devobj> WITH KEY type = iv_type.
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
rv_type = <ls_devobj>-tadir.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_func_package.
|
|
||||||
|
|
||||||
" See also: FUNCTION_INCLUDE_INFO, TFDIR, find main program -> get its pkg
|
|
||||||
|
|
||||||
DATA ls_obj_sig LIKE LINE OF mt_object_packages.
|
|
||||||
|
|
||||||
READ TABLE mt_object_packages INTO ls_obj_sig WITH KEY obj_type = 'FUNC' obj_name = iv_func_name.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
SELECT SINGLE devclass INTO ls_obj_sig-package
|
|
||||||
FROM info_func
|
|
||||||
WHERE funcname = iv_func_name.
|
|
||||||
IF ls_obj_sig-package IS NOT INITIAL.
|
|
||||||
ls_obj_sig-obj_type = 'FUNC'.
|
|
||||||
ls_obj_sig-obj_name = iv_func_name.
|
|
||||||
INSERT ls_obj_sig INTO TABLE mt_object_packages.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
rv_package = ls_obj_sig-package.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_incl_package.
|
|
||||||
|
|
||||||
DATA lv_program TYPE progname.
|
|
||||||
DATA lv_area TYPE rs38l_area.
|
|
||||||
|
|
||||||
lv_program = iv_prog_name.
|
|
||||||
|
|
||||||
CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE'
|
|
||||||
CHANGING
|
|
||||||
program = lv_program
|
|
||||||
complete_area = lv_area
|
|
||||||
EXCEPTIONS
|
|
||||||
not_enough_input = 1
|
|
||||||
no_function_pool = 2
|
|
||||||
delimiter_wrong_position = 3
|
|
||||||
OTHERS = 4 ##FM_SUBRC_OK.
|
|
||||||
|
|
||||||
IF lv_area IS INITIAL.
|
|
||||||
SELECT SINGLE master FROM d010inc INTO lv_program
|
|
||||||
WHERE include = iv_prog_name.
|
|
||||||
|
|
||||||
CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE'
|
|
||||||
CHANGING
|
|
||||||
program = lv_program
|
|
||||||
complete_area = lv_area
|
|
||||||
EXCEPTIONS
|
|
||||||
not_enough_input = 1
|
|
||||||
no_function_pool = 2
|
|
||||||
delimiter_wrong_position = 3
|
|
||||||
OTHERS = 4 ##FM_SUBRC_OK.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF lv_area IS NOT INITIAL.
|
|
||||||
rv_package = get_obj_package(
|
|
||||||
iv_obj_type = 'FUGR'
|
|
||||||
iv_obj_name = |{ lv_area }| ).
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
" TODO more ...
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_obj_package.
|
|
||||||
|
|
||||||
" see also zcl_abapgit_tadir->get_object_package for checks
|
|
||||||
|
|
||||||
DATA ls_obj_sig LIKE LINE OF mt_object_packages.
|
|
||||||
|
|
||||||
READ TABLE mt_object_packages INTO ls_obj_sig WITH KEY obj_type = iv_obj_type obj_name = iv_obj_name.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
ls_obj_sig-package = zcl_abapgit_factory=>get_tadir( )->read_single(
|
|
||||||
iv_object = iv_obj_type
|
|
||||||
iv_obj_name = iv_obj_name )-devclass.
|
|
||||||
IF ls_obj_sig-package IS NOT INITIAL.
|
|
||||||
ls_obj_sig-obj_type = iv_obj_type.
|
|
||||||
ls_obj_sig-obj_name = iv_obj_name.
|
|
||||||
INSERT ls_obj_sig INTO TABLE mt_object_packages.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
rv_package = ls_obj_sig-package.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_where_used.
|
|
||||||
|
|
||||||
DATA lt_findstrings TYPE string_table.
|
|
||||||
DATA lt_scope LIKE it_scope.
|
|
||||||
DATA lv_findstring LIKE LINE OF lt_findstrings.
|
|
||||||
|
|
||||||
IF iv_obj_name IS INITIAL.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
lt_scope = it_scope.
|
|
||||||
|
|
||||||
lv_findstring = iv_obj_name.
|
|
||||||
INSERT lv_findstring INTO TABLE lt_findstrings.
|
|
||||||
|
|
||||||
CALL FUNCTION 'RS_EU_CROSSREF'
|
|
||||||
EXPORTING
|
|
||||||
i_find_obj_cls = iv_obj_type
|
|
||||||
no_dialog = abap_true
|
|
||||||
without_text = abap_true
|
|
||||||
TABLES
|
|
||||||
i_findstrings = lt_findstrings
|
|
||||||
o_founds = rt_findings
|
|
||||||
i_scope_object_cls = lt_scope
|
|
||||||
i_scope_devclass = ir_package_scope
|
|
||||||
EXCEPTIONS
|
|
||||||
not_executed = 1
|
|
||||||
not_found = 2
|
|
||||||
illegal_object = 3
|
|
||||||
no_cross_for_this_object = 4
|
|
||||||
batch = 5
|
|
||||||
batchjob_error = 6
|
|
||||||
wrong_type = 7
|
|
||||||
object_not_exist = 8
|
|
||||||
OTHERS = 9.
|
|
||||||
|
|
||||||
IF sy-subrc = 1 OR sy-subrc = 2 OR lines( rt_findings ) = 0.
|
|
||||||
RETURN.
|
|
||||||
ELSEIF sy-subrc > 2.
|
|
||||||
zcx_abapgit_exception=>raise( |RS_EU_CROSSREF({ sy-subrc }) for { iv_obj_type } { iv_obj_name }| ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD new.
|
|
||||||
CREATE OBJECT ro_instance.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD select_external_usages.
|
|
||||||
|
|
||||||
DATA lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
|
||||||
DATA lt_package_scope LIKE ir_package_scope.
|
|
||||||
|
|
||||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
|
|
||||||
iv_package = iv_package
|
|
||||||
iv_ignore_subpackages = iv_ignore_subpackages ).
|
|
||||||
|
|
||||||
lt_package_scope = build_package_scope(
|
|
||||||
ir_package_scope = ir_package_scope
|
|
||||||
it_tadir = lt_tadir ).
|
|
||||||
|
|
||||||
rt_objs = collect_where_used(
|
|
||||||
ir_package_scope = lt_package_scope
|
|
||||||
it_tadir = lt_tadir ).
|
|
||||||
|
|
||||||
SORT rt_objs.
|
|
||||||
DELETE ADJACENT DUPLICATES FROM rt_objs.
|
|
||||||
" Duplicates happen e.g. because where-used is found by method.
|
|
||||||
" However here this functionality aggregates them to the object
|
|
||||||
" These are not true duplicates, so if ever the method name (or any other duplicate cause)
|
|
||||||
" will be extracted, this sort can be removed
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_WHERE_USED_TOOLS</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - Where-used Utilities</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -50,7 +50,7 @@ CLASS zcl_abapgit_ajson DEFINITION
|
||||||
|
|
||||||
CLASS-METHODS parse
|
CLASS-METHODS parse
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_json TYPE any
|
!iv_json TYPE string
|
||||||
!iv_freeze TYPE abap_bool DEFAULT abap_false
|
!iv_freeze TYPE abap_bool DEFAULT abap_false
|
||||||
!ii_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
|
!ii_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
|
||||||
!iv_keep_item_order TYPE abap_bool DEFAULT abap_false
|
!iv_keep_item_order TYPE abap_bool DEFAULT abap_false
|
||||||
|
@ -848,8 +848,6 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
||||||
DATA lv_path_pattern TYPE string.
|
DATA lv_path_pattern TYPE string.
|
||||||
|
|
||||||
CREATE OBJECT lo_section.
|
CREATE OBJECT lo_section.
|
||||||
lo_section->mi_custom_mapping = mi_custom_mapping.
|
|
||||||
|
|
||||||
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
||||||
lv_path_len = strlen( lv_normalized_path ).
|
lv_path_len = strlen( lv_normalized_path ).
|
||||||
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
||||||
|
|
|
@ -20,27 +20,27 @@ INTERFACE lif_kind.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF numeric,
|
BEGIN OF numeric,
|
||||||
int1 TYPE ty_kind VALUE cl_abap_typedescr=>typekind_int1,
|
int1 TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_int1,
|
||||||
int2 TYPE ty_kind VALUE cl_abap_typedescr=>typekind_int2,
|
int2 TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_int2,
|
||||||
int4 TYPE ty_kind VALUE cl_abap_typedescr=>typekind_int,
|
int4 TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_int,
|
||||||
int8 TYPE ty_kind VALUE '8', " cl_abap_typedescr=>typekind_int8 not in lower releases
|
int8 TYPE ty_kind VALUE '8', " cl_abap_tabledescr=>typekind_int8 not in lower releases
|
||||||
float TYPE ty_kind VALUE cl_abap_typedescr=>typekind_float,
|
float TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_float,
|
||||||
packed TYPE ty_kind VALUE cl_abap_typedescr=>typekind_packed,
|
packed TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_packed,
|
||||||
decfloat16 TYPE ty_kind VALUE cl_abap_typedescr=>typekind_decfloat16,
|
decfloat16 TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_decfloat16,
|
||||||
decfloat34 TYPE ty_kind VALUE cl_abap_typedescr=>typekind_decfloat34,
|
decfloat34 TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_decfloat34,
|
||||||
END OF numeric.
|
END OF numeric.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF texts,
|
BEGIN OF texts,
|
||||||
char TYPE ty_kind VALUE cl_abap_typedescr=>typekind_char,
|
char TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_char,
|
||||||
numc TYPE ty_kind VALUE cl_abap_typedescr=>typekind_num,
|
numc TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_num,
|
||||||
string TYPE ty_kind VALUE cl_abap_typedescr=>typekind_string,
|
string TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_string,
|
||||||
END OF texts.
|
END OF texts.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF binary,
|
BEGIN OF binary,
|
||||||
hex TYPE ty_kind VALUE cl_abap_typedescr=>typekind_hex,
|
hex TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_hex,
|
||||||
xstring TYPE ty_kind VALUE cl_abap_typedescr=>typekind_xstring,
|
xstring TYPE ty_kind VALUE cl_abap_tabledescr=>typekind_xstring,
|
||||||
END OF binary.
|
END OF binary.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
|
@ -80,25 +80,6 @@ CLASS lcl_utils DEFINITION FINAL.
|
||||||
iv_str TYPE string
|
iv_str TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_xstr) TYPE xstring.
|
VALUE(rv_xstr) TYPE xstring.
|
||||||
CLASS-METHODS xstring_to_string_utf8
|
|
||||||
IMPORTING
|
|
||||||
iv_xstr TYPE xstring
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_str) TYPE string.
|
|
||||||
CLASS-METHODS any_to_xstring
|
|
||||||
IMPORTING
|
|
||||||
iv_data TYPE any
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_xstr) TYPE xstring
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_ajson_error.
|
|
||||||
CLASS-METHODS any_to_string
|
|
||||||
IMPORTING
|
|
||||||
iv_data TYPE any
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_str) TYPE string
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_ajson_error.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -135,37 +116,6 @@ CLASS lcl_utils IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD xstring_to_string_utf8.
|
|
||||||
|
|
||||||
DATA lo_conv TYPE REF TO object.
|
|
||||||
DATA lv_in_ce TYPE string.
|
|
||||||
|
|
||||||
lv_in_ce = 'CL_ABAP_CONV_IN_CE'.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
|
||||||
RECEIVING
|
|
||||||
instance = lo_conv.
|
|
||||||
CALL METHOD lo_conv->('IF_ABAP_CONV_IN~CONVERT')
|
|
||||||
EXPORTING
|
|
||||||
source = iv_xstr
|
|
||||||
RECEIVING
|
|
||||||
result = rv_str.
|
|
||||||
CATCH cx_sy_dyn_call_illegal_class.
|
|
||||||
CALL METHOD (lv_in_ce)=>create
|
|
||||||
EXPORTING
|
|
||||||
encoding = 'UTF-8'
|
|
||||||
RECEIVING
|
|
||||||
conv = lo_conv.
|
|
||||||
CALL METHOD lo_conv->('CONVERT')
|
|
||||||
EXPORTING
|
|
||||||
data = iv_xstr
|
|
||||||
IMPORTING
|
|
||||||
buffer = rv_str.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD validate_array_index.
|
METHOD validate_array_index.
|
||||||
|
|
||||||
IF NOT iv_index CO '0123456789'.
|
IF NOT iv_index CO '0123456789'.
|
||||||
|
@ -226,74 +176,6 @@ CLASS lcl_utils IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD any_to_xstring.
|
|
||||||
" supports xstring, char, string, or string_table as input
|
|
||||||
|
|
||||||
DATA lo_type TYPE REF TO cl_abap_typedescr.
|
|
||||||
DATA lo_table_type TYPE REF TO cl_abap_tabledescr.
|
|
||||||
DATA lv_str TYPE string.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <data> TYPE STANDARD TABLE.
|
|
||||||
|
|
||||||
lo_type = cl_abap_typedescr=>describe_by_data( iv_data ).
|
|
||||||
|
|
||||||
CASE lo_type->type_kind.
|
|
||||||
WHEN lif_kind=>binary-xstring.
|
|
||||||
rv_xstr = iv_data.
|
|
||||||
WHEN lif_kind=>texts-string OR lif_kind=>texts-char.
|
|
||||||
rv_xstr = string_to_xstring_utf8( iv_data ).
|
|
||||||
WHEN lif_kind=>table.
|
|
||||||
lo_table_type ?= lo_type.
|
|
||||||
IF lo_table_type->table_kind <> cl_abap_tabledescr=>tablekind_std.
|
|
||||||
zcx_abapgit_ajson_error=>raise( 'Unsupported type of input table (must be standard table)' ).
|
|
||||||
ENDIF.
|
|
||||||
TRY.
|
|
||||||
ASSIGN iv_data TO <data>.
|
|
||||||
lv_str = concat_lines_of( table = <data>
|
|
||||||
sep = cl_abap_char_utilities=>newline ).
|
|
||||||
rv_xstr = string_to_xstring_utf8( lv_str ).
|
|
||||||
CATCH cx_root.
|
|
||||||
zcx_abapgit_ajson_error=>raise( 'Error converting input table (should be string_table)' ).
|
|
||||||
ENDTRY.
|
|
||||||
WHEN OTHERS.
|
|
||||||
zcx_abapgit_ajson_error=>raise( 'Unsupported type of input (must be char, string, string_table, or xstring)' ).
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD any_to_string.
|
|
||||||
" supports xstring, char, string, or string_table as input
|
|
||||||
|
|
||||||
DATA lo_type TYPE REF TO cl_abap_typedescr.
|
|
||||||
DATA lo_table_type TYPE REF TO cl_abap_tabledescr.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <data> TYPE STANDARD TABLE.
|
|
||||||
|
|
||||||
lo_type = cl_abap_typedescr=>describe_by_data( iv_data ).
|
|
||||||
|
|
||||||
CASE lo_type->type_kind.
|
|
||||||
WHEN lif_kind=>binary-xstring.
|
|
||||||
rv_str = xstring_to_string_utf8( iv_data ).
|
|
||||||
WHEN lif_kind=>texts-string OR lif_kind=>texts-char.
|
|
||||||
rv_str = iv_data.
|
|
||||||
WHEN lif_kind=>table.
|
|
||||||
lo_table_type ?= lo_type.
|
|
||||||
IF lo_table_type->table_kind <> cl_abap_tabledescr=>tablekind_std.
|
|
||||||
zcx_abapgit_ajson_error=>raise( 'Unsupported type of input table (must be standard table)' ).
|
|
||||||
ENDIF.
|
|
||||||
TRY.
|
|
||||||
ASSIGN iv_data TO <data>.
|
|
||||||
rv_str = concat_lines_of( table = <data>
|
|
||||||
sep = cl_abap_char_utilities=>newline ).
|
|
||||||
CATCH cx_root.
|
|
||||||
zcx_abapgit_ajson_error=>raise( 'Error converting input table (should be string_table)' ).
|
|
||||||
ENDTRY.
|
|
||||||
WHEN OTHERS.
|
|
||||||
zcx_abapgit_ajson_error=>raise( 'Unsupported type of input (must be char, string, string_table, or xstring)' ).
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -306,7 +188,7 @@ CLASS lcl_json_parser DEFINITION FINAL.
|
||||||
|
|
||||||
METHODS parse
|
METHODS parse
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_json TYPE any
|
iv_json TYPE string
|
||||||
iv_keep_item_order TYPE abap_bool DEFAULT abap_false
|
iv_keep_item_order TYPE abap_bool DEFAULT abap_false
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_json_tree) TYPE zif_abapgit_ajson_types=>ty_nodes_tt
|
VALUE(rt_json_tree) TYPE zif_abapgit_ajson_types=>ty_nodes_tt
|
||||||
|
@ -330,7 +212,7 @@ CLASS lcl_json_parser DEFINITION FINAL.
|
||||||
|
|
||||||
METHODS _parse
|
METHODS _parse
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_json TYPE xstring
|
iv_json TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_json_tree) TYPE zif_abapgit_ajson_types=>ty_nodes_tt
|
VALUE(rt_json_tree) TYPE zif_abapgit_ajson_types=>ty_nodes_tt
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -351,20 +233,17 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
||||||
DATA lx_sxml_parse TYPE REF TO cx_sxml_parse_error.
|
DATA lx_sxml_parse TYPE REF TO cx_sxml_parse_error.
|
||||||
DATA lx_sxml TYPE REF TO cx_dynamic_check.
|
DATA lx_sxml TYPE REF TO cx_dynamic_check.
|
||||||
DATA lv_location TYPE string.
|
DATA lv_location TYPE string.
|
||||||
DATA lv_json TYPE xstring.
|
|
||||||
|
|
||||||
mv_keep_item_order = iv_keep_item_order.
|
mv_keep_item_order = iv_keep_item_order.
|
||||||
|
|
||||||
lv_json = lcl_utils=>any_to_xstring( iv_json ).
|
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
" TODO sane JSON check:
|
" TODO sane JSON check:
|
||||||
" JSON can be true,false,null,(-)digits
|
" JSON can be true,false,null,(-)digits
|
||||||
" or start from " or from {
|
" or start from " or from {
|
||||||
rt_json_tree = _parse( lv_json ).
|
rt_json_tree = _parse( iv_json ).
|
||||||
CATCH cx_sxml_parse_error INTO lx_sxml_parse.
|
CATCH cx_sxml_parse_error INTO lx_sxml_parse.
|
||||||
lv_location = _get_location(
|
lv_location = _get_location(
|
||||||
iv_json = lcl_utils=>any_to_string( iv_json )
|
iv_json = iv_json
|
||||||
iv_offset = lx_sxml_parse->xml_offset ).
|
iv_offset = lx_sxml_parse->xml_offset ).
|
||||||
zcx_abapgit_ajson_error=>raise(
|
zcx_abapgit_ajson_error=>raise(
|
||||||
iv_msg = |Json parsing error (SXML): { lx_sxml_parse->get_text( ) }|
|
iv_msg = |Json parsing error (SXML): { lx_sxml_parse->get_text( ) }|
|
||||||
|
@ -426,7 +305,7 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
||||||
IF iv_json IS INITIAL.
|
IF iv_json IS INITIAL.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
lo_reader = cl_sxml_string_reader=>create( iv_json ).
|
lo_reader = cl_sxml_string_reader=>create( lcl_utils=>string_to_xstring_utf8( iv_json ) ).
|
||||||
|
|
||||||
" TODO: self protection, check non-empty, check starting from object ...
|
" TODO: self protection, check non-empty, check starting from object ...
|
||||||
|
|
||||||
|
@ -1017,8 +896,6 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
||||||
IF is_parent_type-tab_item_buf IS NOT BOUND. " Indirect hint that table was srt/hsh, see get_node_type
|
IF is_parent_type-tab_item_buf IS NOT BOUND. " Indirect hint that table was srt/hsh, see get_node_type
|
||||||
APPEND INITIAL LINE TO <parent_stdtab> REFERENCE INTO lr_target_field.
|
APPEND INITIAL LINE TO <parent_stdtab> REFERENCE INTO lr_target_field.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
ELSE.
|
|
||||||
CLEAR <tab_item>.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
WHEN lif_kind=>struct_flat OR lif_kind=>struct_deep.
|
WHEN lif_kind=>struct_flat OR lif_kind=>struct_deep.
|
||||||
|
@ -1932,13 +1809,8 @@ CLASS lcl_filter_runner IMPLEMENTATION.
|
||||||
METHOD walk.
|
METHOD walk.
|
||||||
|
|
||||||
DATA ls_node TYPE zif_abapgit_ajson_types=>ty_node.
|
DATA ls_node TYPE zif_abapgit_ajson_types=>ty_node.
|
||||||
DATA lv_tab_key TYPE string.
|
|
||||||
|
|
||||||
IF cs_parent-type = zif_abapgit_ajson_types=>node_type-array.
|
LOOP AT mr_source_tree->* INTO ls_node WHERE path = iv_path.
|
||||||
lv_tab_key = 'array_index'. " path + index
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
LOOP AT mr_source_tree->* INTO ls_node USING KEY (lv_tab_key) WHERE path = iv_path.
|
|
||||||
CASE ls_node-type.
|
CASE ls_node-type.
|
||||||
WHEN zif_abapgit_ajson_types=>node_type-boolean OR zif_abapgit_ajson_types=>node_type-null
|
WHEN zif_abapgit_ajson_types=>node_type-boolean OR zif_abapgit_ajson_types=>node_type-null
|
||||||
OR zif_abapgit_ajson_types=>node_type-number OR zif_abapgit_ajson_types=>node_type-string.
|
OR zif_abapgit_ajson_types=>node_type-number OR zif_abapgit_ajson_types=>node_type-string.
|
||||||
|
|
|
@ -85,10 +85,6 @@ CLASS ltcl_parser_test DEFINITION FINAL
|
||||||
METHODS parse_date FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS parse_date FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS parse_bare_values FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS parse_bare_values FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS parse_error FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS parse_error FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS parse_input_xstring FOR TESTING RAISING zcx_abapgit_ajson_error.
|
|
||||||
METHODS parse_input_string FOR TESTING RAISING zcx_abapgit_ajson_error.
|
|
||||||
METHODS parse_input_string_table FOR TESTING RAISING zcx_abapgit_ajson_error.
|
|
||||||
METHODS parse_input_error FOR TESTING RAISING zcx_abapgit_ajson_error.
|
|
||||||
METHODS duplicate_key FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS duplicate_key FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS non_json FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS non_json FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
|
||||||
|
@ -252,78 +248,6 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
||||||
exp = mo_nodes->mt_nodes ).
|
exp = mo_nodes->mt_nodes ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD parse_input_xstring.
|
|
||||||
mo_nodes->add( ' | |object | | |1' ).
|
|
||||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
|
||||||
|
|
||||||
DATA lt_act TYPE zif_abapgit_ajson_types=>ty_nodes_tt.
|
|
||||||
DATA lv_xstr TYPE xstring.
|
|
||||||
|
|
||||||
lv_xstr = '7B22737472696E67223A2022616263227D0A'.
|
|
||||||
lt_act = mo_cut->parse( lv_xstr ).
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lt_act
|
|
||||||
exp = mo_nodes->mt_nodes ).
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD parse_input_string.
|
|
||||||
mo_nodes->add( ' | |object | | |1' ).
|
|
||||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
|
||||||
|
|
||||||
DATA lt_act TYPE zif_abapgit_ajson_types=>ty_nodes_tt.
|
|
||||||
DATA lv_str TYPE string.
|
|
||||||
|
|
||||||
lv_str = `{"string": "abc"}`.
|
|
||||||
lt_act = mo_cut->parse( lv_str ).
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lt_act
|
|
||||||
exp = mo_nodes->mt_nodes ).
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD parse_input_string_table.
|
|
||||||
mo_nodes->add( ' | |object | | |2' ).
|
|
||||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
|
||||||
mo_nodes->add( '/ |number |num |123 | |0' ).
|
|
||||||
|
|
||||||
DATA lt_act TYPE zif_abapgit_ajson_types=>ty_nodes_tt.
|
|
||||||
DATA lt_json TYPE string_table.
|
|
||||||
|
|
||||||
INSERT `{` INTO TABLE lt_json.
|
|
||||||
INSERT `"string": "abc",` INTO TABLE lt_json.
|
|
||||||
INSERT `"number": 123` INTO TABLE lt_json.
|
|
||||||
INSERT `}` INTO TABLE lt_json.
|
|
||||||
|
|
||||||
lt_act = mo_cut->parse( lt_json ).
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lt_act
|
|
||||||
exp = mo_nodes->mt_nodes ).
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD parse_input_error.
|
|
||||||
|
|
||||||
DATA lo_cut TYPE REF TO lcl_json_parser.
|
|
||||||
DATA lx TYPE REF TO zcx_abapgit_ajson_error.
|
|
||||||
DATA lv_numc TYPE n LENGTH 10.
|
|
||||||
DATA lt_hashed TYPE HASHED TABLE OF string WITH UNIQUE DEFAULT KEY.
|
|
||||||
|
|
||||||
CREATE OBJECT lo_cut.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lo_cut->parse( lv_numc ).
|
|
||||||
cl_abap_unit_assert=>fail( ).
|
|
||||||
CATCH zcx_abapgit_ajson_error INTO lx.
|
|
||||||
cl_abap_unit_assert=>assert_not_initial( lx ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lo_cut->parse( lt_hashed ).
|
|
||||||
cl_abap_unit_assert=>fail( ).
|
|
||||||
CATCH zcx_abapgit_ajson_error INTO lx.
|
|
||||||
cl_abap_unit_assert=>assert_not_initial( lx ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD sample_json.
|
METHOD sample_json.
|
||||||
|
|
||||||
rv_json =
|
rv_json =
|
||||||
|
@ -1542,21 +1466,6 @@ CLASS ltcl_json_to_abap DEFINITION
|
||||||
METHODS to_abap_str_to_packed
|
METHODS to_abap_str_to_packed
|
||||||
FOR TESTING
|
FOR TESTING
|
||||||
RAISING cx_static_check.
|
RAISING cx_static_check.
|
||||||
METHODS to_abap_compressed_stdrd
|
|
||||||
FOR TESTING
|
|
||||||
RAISING cx_static_check.
|
|
||||||
METHODS to_abap_compressed_stdrd_key
|
|
||||||
FOR TESTING
|
|
||||||
RAISING cx_static_check.
|
|
||||||
METHODS to_abap_compressed_sort
|
|
||||||
FOR TESTING
|
|
||||||
RAISING cx_static_check.
|
|
||||||
METHODS to_abap_compressed_sort_unique
|
|
||||||
FOR TESTING
|
|
||||||
RAISING cx_static_check.
|
|
||||||
METHODS to_abap_compressed_hash
|
|
||||||
FOR TESTING
|
|
||||||
RAISING cx_static_check.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS zcl_abapgit_ajson DEFINITION LOCAL FRIENDS ltcl_json_to_abap.
|
CLASS zcl_abapgit_ajson DEFINITION LOCAL FRIENDS ltcl_json_to_abap.
|
||||||
|
@ -2280,171 +2189,6 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD to_abap_compressed_stdrd.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_foo_bar,
|
|
||||||
foo TYPE string,
|
|
||||||
bar TYPE string,
|
|
||||||
END OF ty_foo_bar.
|
|
||||||
|
|
||||||
DATA lt_foo_bar TYPE STANDARD TABLE OF ty_foo_bar.
|
|
||||||
DATA ls_foo_bar LIKE LINE OF lt_foo_bar.
|
|
||||||
DATA lo_ajson TYPE REF TO zcl_abapgit_ajson.
|
|
||||||
DATA lv_json TYPE string.
|
|
||||||
|
|
||||||
lv_json =
|
|
||||||
'[' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "abc",' &&
|
|
||||||
' "bar": "123"' &&
|
|
||||||
' },' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "cde"' &&
|
|
||||||
' }' &&
|
|
||||||
']'.
|
|
||||||
|
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( lv_json ).
|
|
||||||
|
|
||||||
lo_ajson->to_abap( IMPORTING ev_container = lt_foo_bar ).
|
|
||||||
|
|
||||||
READ TABLE lt_foo_bar WITH KEY foo = 'cde' INTO ls_foo_bar.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_initial( act = ls_foo_bar-bar ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD to_abap_compressed_stdrd_key.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_foo_bar,
|
|
||||||
foo TYPE string,
|
|
||||||
bar TYPE string,
|
|
||||||
END OF ty_foo_bar.
|
|
||||||
|
|
||||||
DATA lt_foo_bar TYPE STANDARD TABLE OF ty_foo_bar WITH NON-UNIQUE KEY foo.
|
|
||||||
DATA ls_foo_bar LIKE LINE OF lt_foo_bar.
|
|
||||||
DATA lo_ajson TYPE REF TO zcl_abapgit_ajson.
|
|
||||||
DATA lv_json TYPE string.
|
|
||||||
|
|
||||||
lv_json =
|
|
||||||
'[' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "abc",' &&
|
|
||||||
' "bar": "123"' &&
|
|
||||||
' },' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "cde"' &&
|
|
||||||
' }' &&
|
|
||||||
']'.
|
|
||||||
|
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( lv_json ).
|
|
||||||
|
|
||||||
lo_ajson->to_abap( IMPORTING ev_container = lt_foo_bar ).
|
|
||||||
|
|
||||||
READ TABLE lt_foo_bar WITH KEY foo = 'cde' INTO ls_foo_bar.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_initial( act = ls_foo_bar-bar ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD to_abap_compressed_sort.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_foo_bar,
|
|
||||||
foo TYPE string,
|
|
||||||
bar TYPE string,
|
|
||||||
END OF ty_foo_bar.
|
|
||||||
|
|
||||||
DATA lt_foo_bar TYPE SORTED TABLE OF ty_foo_bar WITH NON-UNIQUE KEY foo.
|
|
||||||
DATA ls_foo_bar LIKE LINE OF lt_foo_bar.
|
|
||||||
DATA lo_ajson TYPE REF TO zcl_abapgit_ajson.
|
|
||||||
DATA lv_json TYPE string.
|
|
||||||
|
|
||||||
lv_json =
|
|
||||||
'[' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "abc",' &&
|
|
||||||
' "bar": "123"' &&
|
|
||||||
' },' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "cde"' &&
|
|
||||||
' }' &&
|
|
||||||
']'.
|
|
||||||
|
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( lv_json ).
|
|
||||||
|
|
||||||
lo_ajson->to_abap( IMPORTING ev_container = lt_foo_bar ).
|
|
||||||
|
|
||||||
READ TABLE lt_foo_bar WITH KEY foo = 'cde' INTO ls_foo_bar.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_initial( act = ls_foo_bar-bar ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD to_abap_compressed_sort_unique.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_foo_bar,
|
|
||||||
foo TYPE string,
|
|
||||||
bar TYPE string,
|
|
||||||
END OF ty_foo_bar.
|
|
||||||
|
|
||||||
DATA lt_foo_bar TYPE SORTED TABLE OF ty_foo_bar WITH UNIQUE KEY foo.
|
|
||||||
DATA ls_foo_bar LIKE LINE OF lt_foo_bar.
|
|
||||||
DATA lo_ajson TYPE REF TO zcl_abapgit_ajson.
|
|
||||||
DATA lv_json TYPE string.
|
|
||||||
|
|
||||||
lv_json =
|
|
||||||
'[' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "abc",' &&
|
|
||||||
' "bar": "123"' &&
|
|
||||||
' },' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "cde"' &&
|
|
||||||
' }' &&
|
|
||||||
']'.
|
|
||||||
|
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( lv_json ).
|
|
||||||
|
|
||||||
lo_ajson->to_abap( IMPORTING ev_container = lt_foo_bar ).
|
|
||||||
|
|
||||||
READ TABLE lt_foo_bar WITH KEY foo = 'cde' INTO ls_foo_bar.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_initial( act = ls_foo_bar-bar ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD to_abap_compressed_hash.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_foo_bar,
|
|
||||||
foo TYPE string,
|
|
||||||
bar TYPE string,
|
|
||||||
END OF ty_foo_bar.
|
|
||||||
|
|
||||||
DATA lt_foo_bar TYPE HASHED TABLE OF ty_foo_bar WITH UNIQUE KEY foo.
|
|
||||||
DATA ls_foo_bar LIKE LINE OF lt_foo_bar.
|
|
||||||
DATA lo_ajson TYPE REF TO zcl_abapgit_ajson.
|
|
||||||
DATA lv_json TYPE string.
|
|
||||||
|
|
||||||
lv_json =
|
|
||||||
'[' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "abc",' &&
|
|
||||||
' "bar": "123"' &&
|
|
||||||
' },' &&
|
|
||||||
' {' &&
|
|
||||||
' "foo": "cde"' &&
|
|
||||||
' }' &&
|
|
||||||
']'.
|
|
||||||
|
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( lv_json ).
|
|
||||||
|
|
||||||
lo_ajson->to_abap( IMPORTING ev_container = lt_foo_bar ).
|
|
||||||
|
|
||||||
READ TABLE lt_foo_bar WITH KEY foo = 'cde' INTO ls_foo_bar.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_initial( act = ls_foo_bar-bar ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
|
@ -2477,7 +2221,6 @@ CLASS ltcl_writer_test DEFINITION FINAL
|
||||||
METHODS set_bool_tab FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_bool_tab FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_str FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_str FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_int FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_int FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_number FOR TESTING RAISING zcx_abapgit_ajson_error.
|
|
||||||
METHODS set_date FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_date FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_timestamp FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_timestamp FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS read_only FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS read_only FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
@ -3318,27 +3061,6 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD set_number.
|
|
||||||
|
|
||||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
|
||||||
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
|
||||||
DATA lv_p TYPE p LENGTH 5 DECIMALS 2 VALUE '123.45'.
|
|
||||||
|
|
||||||
li_json = zcl_abapgit_ajson=>create_empty( ).
|
|
||||||
CREATE OBJECT lo_nodes_exp.
|
|
||||||
lo_nodes_exp->add( ' | |object | ||1' ).
|
|
||||||
lo_nodes_exp->add( '/ |a |num |123.45 ||0' ).
|
|
||||||
|
|
||||||
li_json->set(
|
|
||||||
iv_path = '/a'
|
|
||||||
iv_val = lv_p ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = li_json->mt_json_tree
|
|
||||||
exp = lo_nodes_exp->sorted( ) ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD set_date.
|
METHOD set_date.
|
||||||
|
|
||||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||||
|
@ -4686,47 +4408,15 @@ CLASS ltcl_filter_test IMPLEMENTATION.
|
||||||
lo_json->push(
|
lo_json->push(
|
||||||
iv_path = '/'
|
iv_path = '/'
|
||||||
iv_val = 'b' ).
|
iv_val = 'b' ).
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'c' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'd' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'e' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'f' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'g' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'h' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'i' ).
|
|
||||||
lo_json->push(
|
|
||||||
iv_path = '/'
|
|
||||||
iv_val = 'j' ).
|
|
||||||
|
|
||||||
lo_json_filtered = zcl_abapgit_ajson=>create_from(
|
lo_json_filtered = zcl_abapgit_ajson=>create_from(
|
||||||
ii_source_json = lo_json
|
ii_source_json = lo_json
|
||||||
ii_filter = me ).
|
ii_filter = me ).
|
||||||
|
|
||||||
CREATE OBJECT lo_nodes_exp.
|
CREATE OBJECT lo_nodes_exp.
|
||||||
lo_nodes_exp->add( ' | |array | | |10' ).
|
lo_nodes_exp->add( ' | |array | | |2' ).
|
||||||
lo_nodes_exp->add( '/ |1 |str |a |1|0' ).
|
lo_nodes_exp->add( '/ |1 |str |a |1|0' ).
|
||||||
lo_nodes_exp->add( '/ |2 |str |b |2|0' ).
|
lo_nodes_exp->add( '/ |2 |str |b |2|0' ).
|
||||||
lo_nodes_exp->add( '/ |3 |str |c |3|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |4 |str |d |4|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |5 |str |e |5|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |6 |str |f |6|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |7 |str |g |7|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |8 |str |h |8|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |9 |str |i |9|0' ).
|
|
||||||
lo_nodes_exp->add( '/ |10 |str |j |10|0' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_json_filtered->mt_json_tree
|
act = lo_json_filtered->mt_json_tree
|
||||||
|
|
|
@ -72,7 +72,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
LOOP AT it_skip_paths INTO lv_s.
|
LOOP AT it_skip_paths INTO lv_s.
|
||||||
lv_s = condense( lv_s ).
|
lv_s = to_lower( lv_s ).
|
||||||
APPEND lv_s TO lt_tab.
|
APPEND lv_s TO lt_tab.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
||||||
DELETE lt_tab INDEX sy-tabix.
|
DELETE lt_tab INDEX sy-tabix.
|
||||||
CONTINUE.
|
CONTINUE.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
<s> = condense( <s> ).
|
<s> = condense( to_lower( <s> ) ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ CLASS ltcl_filters_test DEFINITION FINAL
|
||||||
METHODS path_filter_w_patterns FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS path_filter_w_patterns FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS mixed_case_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -228,36 +227,4 @@ CLASS ltcl_filters_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD mixed_case_filter.
|
|
||||||
|
|
||||||
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
|
||||||
DATA li_json_filtered TYPE REF TO zif_abapgit_ajson.
|
|
||||||
|
|
||||||
li_json = zcl_abapgit_ajson=>create_empty( ).
|
|
||||||
li_json->set(
|
|
||||||
iv_path = '/a'
|
|
||||||
iv_val = '1' ).
|
|
||||||
li_json->set(
|
|
||||||
iv_path = '/bB'
|
|
||||||
iv_val = '2' ).
|
|
||||||
li_json->set(
|
|
||||||
iv_path = '/CC'
|
|
||||||
iv_val = '3' ).
|
|
||||||
li_json->set(
|
|
||||||
iv_path = '/cc'
|
|
||||||
iv_val = '4' ).
|
|
||||||
li_json->set(
|
|
||||||
iv_path = '/d'
|
|
||||||
iv_val = 5 ).
|
|
||||||
|
|
||||||
li_json_filtered = zcl_abapgit_ajson=>create_from(
|
|
||||||
ii_source_json = li_json
|
|
||||||
ii_filter = zcl_abapgit_ajson_filter_lib=>create_path_filter( iv_skip_paths = '/bB,/CC' ) ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = li_json_filtered->stringify( )
|
|
||||||
exp = '{"a":"1","cc":"4","d":5}' ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -358,7 +358,6 @@ CLASS ltcl_fields DEFINITION FINAL FOR TESTING
|
||||||
to_json_without_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
to_json_without_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
to_json_with_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
to_json_with_path FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
to_abap FOR TESTING RAISING zcx_abapgit_ajson_error,
|
to_abap FOR TESTING RAISING zcx_abapgit_ajson_error,
|
||||||
to_abap_with_slice FOR TESTING RAISING zcx_abapgit_ajson_error,
|
|
||||||
to_json IMPORTING iv_path TYPE string RETURNING VALUE(rv_result) TYPE string RAISING zcx_abapgit_ajson_error.
|
to_json IMPORTING iv_path TYPE string RETURNING VALUE(rv_result) TYPE string RAISING zcx_abapgit_ajson_error.
|
||||||
|
|
||||||
|
|
||||||
|
@ -404,33 +403,6 @@ CLASS ltcl_fields IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD to_abap_with_slice.
|
|
||||||
|
|
||||||
DATA: BEGIN OF ls_act,
|
|
||||||
y TYPE i,
|
|
||||||
END OF ls_act.
|
|
||||||
|
|
||||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
|
||||||
DATA lt_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields.
|
|
||||||
DATA ls_mapping_field LIKE LINE OF lt_mapping_fields.
|
|
||||||
|
|
||||||
CLEAR ls_mapping_field.
|
|
||||||
ls_mapping_field-abap = 'Y'.
|
|
||||||
ls_mapping_field-json = 'c'.
|
|
||||||
INSERT ls_mapping_field INTO TABLE lt_mapping_fields.
|
|
||||||
|
|
||||||
lo_cut = zcl_abapgit_ajson=>parse( iv_json = '{"a":1,"b":{"c":2},"d":{"e":3}}'
|
|
||||||
ii_custom_mapping = zcl_abapgit_ajson_mapping=>create_field_mapping( lt_mapping_fields )
|
|
||||||
)->slice( `/b` ).
|
|
||||||
|
|
||||||
lo_cut->to_abap( IMPORTING ev_container = ls_act ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = ls_act-y
|
|
||||||
exp = 2 ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD to_json_without_path.
|
METHOD to_json_without_path.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
INTERFACE zif_abapgit_ajson
|
INTERFACE zif_abapgit_ajson
|
||||||
PUBLIC.
|
PUBLIC.
|
||||||
|
|
||||||
CONSTANTS version TYPE string VALUE 'v1.1.11'. "#EC NOTEXT
|
CONSTANTS version TYPE string VALUE 'v1.1.10'. "#EC NOTEXT
|
||||||
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
|
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
|
||||||
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
|
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION.
|
CLASS zcl_abapgit_aff_registry IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -46,30 +46,19 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD initialize_registry_table.
|
METHOD initialize_registry_table.
|
||||||
register( 'APLO' ).
|
|
||||||
register( 'BGQC' ).
|
|
||||||
register( 'CDBO' ).
|
|
||||||
register( 'CHKC' ).
|
register( 'CHKC' ).
|
||||||
register( 'CHKO' ).
|
register( 'CHKO' ).
|
||||||
register( 'CHKV' ).
|
register( 'CHKV' ).
|
||||||
register( 'COTA' ).
|
|
||||||
register( 'DRTY' ).
|
register( 'DRTY' ).
|
||||||
register( 'DTEB' ).
|
register( 'DTEB' ).
|
||||||
register( 'DSFI' ).
|
|
||||||
register( 'DRAS' ).
|
|
||||||
register( 'DSFD' ).
|
|
||||||
register( 'EVTB' ).
|
register( 'EVTB' ).
|
||||||
register( 'EEEC' ).
|
register( 'EEEC' ).
|
||||||
register( 'GSMP' ).
|
register( 'GSMP' ).
|
||||||
register( iv_obj_type = 'INTF'
|
register( iv_obj_type = 'INTF'
|
||||||
iv_experimental = abap_true ).
|
iv_experimental = abap_true ).
|
||||||
register( 'SAJT' ).
|
|
||||||
register( 'SAJC' ).
|
|
||||||
register( 'SMBC' ).
|
register( 'SMBC' ).
|
||||||
register( 'SWCR' ).
|
|
||||||
register( 'NONT' ).
|
register( 'NONT' ).
|
||||||
register( 'RONT' ).
|
register( 'RONT' ).
|
||||||
register( 'UIAD' ).
|
|
||||||
register( 'UIPG' ).
|
register( 'UIPG' ).
|
||||||
register( 'UIST' ).
|
register( 'UIST' ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -18,7 +18,7 @@ CLASS zcl_abapgit_json_handler DEFINITION
|
||||||
mappings TYPE ty_json_abap_mappings,
|
mappings TYPE ty_json_abap_mappings,
|
||||||
END OF ty_enum_mapping .
|
END OF ty_enum_mapping .
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_enum_mappings TYPE STANDARD TABLE OF ty_enum_mapping WITH DEFAULT KEY .
|
ty_enum_mappings TYPE TABLE OF ty_enum_mapping WITH DEFAULT KEY .
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_path_value_pair,
|
BEGIN OF ty_path_value_pair,
|
||||||
path TYPE string,
|
path TYPE string,
|
||||||
|
@ -51,7 +51,7 @@ CLASS zcl_abapgit_json_handler DEFINITION
|
||||||
"! @parameter ev_data | data of the xstring
|
"! @parameter ev_data | data of the xstring
|
||||||
METHODS deserialize
|
METHODS deserialize
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_content TYPE string
|
!iv_content TYPE xstring
|
||||||
!iv_defaults TYPE ty_skip_paths OPTIONAL
|
!iv_defaults TYPE ty_skip_paths OPTIONAL
|
||||||
!iv_enum_mappings TYPE ty_enum_mappings OPTIONAL
|
!iv_enum_mappings TYPE ty_enum_mappings OPTIONAL
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -99,11 +99,14 @@ CLASS zcl_abapgit_json_handler IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD deserialize.
|
METHOD deserialize.
|
||||||
|
DATA lv_json TYPE string.
|
||||||
DATA lo_ajson TYPE REF TO zif_abapgit_ajson.
|
DATA lo_ajson TYPE REF TO zif_abapgit_ajson.
|
||||||
|
|
||||||
CLEAR ev_data.
|
CLEAR ev_data.
|
||||||
|
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( iv_content
|
lv_json = zcl_abapgit_convert=>xstring_to_string_utf8( iv_content ).
|
||||||
|
|
||||||
|
lo_ajson = zcl_abapgit_ajson=>parse( lv_json
|
||||||
)->map( zcl_abapgit_ajson_mapping=>create_to_snake_case( ) ).
|
)->map( zcl_abapgit_ajson_mapping=>create_to_snake_case( ) ).
|
||||||
|
|
||||||
map2abap_original_language( CHANGING co_ajson = lo_ajson ).
|
map2abap_original_language( CHANGING co_ajson = lo_ajson ).
|
||||||
|
@ -158,13 +161,17 @@ CLASS zcl_abapgit_json_handler IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD map2abap_original_language.
|
METHOD map2abap_original_language.
|
||||||
DATA:
|
DATA:
|
||||||
lv_bcp47_language TYPE string,
|
lv_iso_language TYPE laiso,
|
||||||
lv_original_language TYPE sy-langu.
|
lv_original_language TYPE sy-langu.
|
||||||
|
|
||||||
|
|
||||||
lv_bcp47_language = co_ajson->get_string( '/header/original_language' ).
|
lv_iso_language = co_ajson->get_string( '/header/original_language' ).
|
||||||
|
|
||||||
lv_original_language = zcl_abapgit_convert=>language_bcp47_to_sap1( lv_bcp47_language ).
|
CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
|
||||||
|
EXPORTING
|
||||||
|
input = lv_iso_language
|
||||||
|
IMPORTING
|
||||||
|
output = lv_original_language.
|
||||||
|
|
||||||
co_ajson->set_string( iv_path = '/header/original_language'
|
co_ajson->set_string( iv_path = '/header/original_language'
|
||||||
iv_val = lv_original_language ).
|
iv_val = lv_original_language ).
|
||||||
|
@ -212,16 +219,17 @@ CLASS zcl_abapgit_json_handler IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD map2json_original_language.
|
METHOD map2json_original_language.
|
||||||
DATA:
|
DATA:
|
||||||
lv_bcp47_language TYPE string,
|
lv_iso_language TYPE laiso,
|
||||||
lv_original_language TYPE sy-langu.
|
lv_original_language TYPE sy-langu.
|
||||||
|
|
||||||
|
|
||||||
lv_original_language = co_ajson->get_string( '/header/originalLanguage' ).
|
lv_original_language = co_ajson->get_string( '/header/originalLanguage' ).
|
||||||
|
|
||||||
lv_bcp47_language = zcl_abapgit_convert=>language_sap1_to_bcp47( lv_original_language ).
|
lv_iso_language = zcl_abapgit_convert=>conversion_exit_isola_output( lv_original_language ).
|
||||||
|
|
||||||
|
TRANSLATE lv_iso_language TO LOWER CASE.
|
||||||
co_ajson->set_string( iv_path = '/header/originalLanguage'
|
co_ajson->set_string( iv_path = '/header/originalLanguage'
|
||||||
iv_val = lv_bcp47_language ).
|
iv_val = lv_iso_language ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,24 +6,14 @@ CLASS zcl_abapgit_json_path DEFINITION PUBLIC CREATE PUBLIC.
|
||||||
RAISING zcx_abapgit_exception.
|
RAISING zcx_abapgit_exception.
|
||||||
METHODS: deserialize
|
METHODS: deserialize
|
||||||
IMPORTING it_json_path TYPE string_table
|
IMPORTING it_json_path TYPE string_table
|
||||||
RETURNING VALUE(rv_result) TYPE string
|
RETURNING VALUE(rv_result) TYPE xstring
|
||||||
RAISING zcx_abapgit_exception.
|
RAISING zcx_abapgit_exception.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_json_path IMPLEMENTATION.
|
CLASS zcl_abapgit_json_path IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD deserialize.
|
|
||||||
|
|
||||||
rv_result = lcl_json_path=>deserialize( it_json_path ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD serialize.
|
METHOD serialize.
|
||||||
DATA: lo_json_path TYPE REF TO lcl_json_path,
|
DATA: lo_json_path TYPE REF TO lcl_json_path,
|
||||||
lv_json_xstring TYPE xstring,
|
lv_json_xstring TYPE xstring,
|
||||||
|
@ -49,4 +39,11 @@ CLASS zcl_abapgit_json_path IMPLEMENTATION.
|
||||||
it_path = lt_root_path
|
it_path = lt_root_path
|
||||||
CHANGING ct_json_paths = rt_result ).
|
CHANGING ct_json_paths = rt_result ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
rv_result = lcl_json_path=>deserialize( it_json_path ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -13,7 +13,7 @@ CLASS lcl_json_path DEFINITION CREATE PUBLIC.
|
||||||
|
|
||||||
CLASS-METHODS: deserialize
|
CLASS-METHODS: deserialize
|
||||||
IMPORTING it_json_path TYPE string_table
|
IMPORTING it_json_path TYPE string_table
|
||||||
RETURNING VALUE(rv_result) TYPE string
|
RETURNING VALUE(rv_result) TYPE xstring
|
||||||
RAISING zcx_abapgit_exception.
|
RAISING zcx_abapgit_exception.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
@ -343,7 +343,8 @@ CLASS lcl_json_path IMPLEMENTATION.
|
||||||
DATA: lo_merged TYPE REF TO zif_abapgit_ajson,
|
DATA: lo_merged TYPE REF TO zif_abapgit_ajson,
|
||||||
lv_json_path TYPE string,
|
lv_json_path TYPE string,
|
||||||
lo_deserialization_result TYPE REF TO zif_abapgit_ajson,
|
lo_deserialization_result TYPE REF TO zif_abapgit_ajson,
|
||||||
lx_ajson TYPE REF TO zcx_abapgit_ajson_error.
|
lx_ajson TYPE REF TO zcx_abapgit_ajson_error,
|
||||||
|
lv_result_as_string TYPE string.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
lo_merged = zcl_abapgit_ajson=>parse( `` ).
|
lo_merged = zcl_abapgit_ajson=>parse( `` ).
|
||||||
|
@ -373,7 +374,8 @@ CLASS lcl_json_path IMPLEMENTATION.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
rv_result = lo_merged->stringify( 2 ).
|
lv_result_as_string = lo_merged->stringify( 2 ).
|
||||||
|
rv_result = zcl_abapgit_convert=>string_to_xstring( lv_result_as_string ).
|
||||||
CATCH zcx_abapgit_ajson_error INTO lx_ajson.
|
CATCH zcx_abapgit_ajson_error INTO lx_ajson.
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_ajson ).
|
zcx_abapgit_exception=>raise_with_text( lx_ajson ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
|
@ -145,6 +145,7 @@ CLASS ltcl_json_path IMPLEMENTATION.
|
||||||
METHOD deserialize_nested_arrays.
|
METHOD deserialize_nested_arrays.
|
||||||
DATA: lt_file TYPE string_table,
|
DATA: lt_file TYPE string_table,
|
||||||
lo_cut TYPE REF TO zcl_abapgit_json_path,
|
lo_cut TYPE REF TO zcl_abapgit_json_path,
|
||||||
|
lv_xact TYPE xstring,
|
||||||
lv_act TYPE string,
|
lv_act TYPE string,
|
||||||
lv_exp TYPE string,
|
lv_exp TYPE string,
|
||||||
lt_exp TYPE string_table,
|
lt_exp TYPE string_table,
|
||||||
|
@ -155,7 +156,7 @@ CLASS ltcl_json_path IMPLEMENTATION.
|
||||||
APPEND `$.descriptions.methods[?(@.name=='METH1')].parameters[?(@.name=='param2')].description=ABC` TO lt_file.
|
APPEND `$.descriptions.methods[?(@.name=='METH1')].parameters[?(@.name=='param2')].description=ABC` TO lt_file.
|
||||||
|
|
||||||
CREATE OBJECT lo_cut.
|
CREATE OBJECT lo_cut.
|
||||||
lv_act = lo_cut->deserialize( lt_file ).
|
lv_xact = lo_cut->deserialize( lt_file ).
|
||||||
|
|
||||||
APPEND `{ "header": { "description": "Text" } ,` TO lt_exp.
|
APPEND `{ "header": { "description": "Text" } ,` TO lt_exp.
|
||||||
APPEND `"descriptions": {` TO lt_exp.
|
APPEND `"descriptions": {` TO lt_exp.
|
||||||
|
@ -169,6 +170,8 @@ CLASS ltcl_json_path IMPLEMENTATION.
|
||||||
lv_exp = concat_lines_of( table = lt_exp
|
lv_exp = concat_lines_of( table = lt_exp
|
||||||
sep = cl_abap_char_utilities=>newline ).
|
sep = cl_abap_char_utilities=>newline ).
|
||||||
|
|
||||||
|
lv_act = zcl_abapgit_convert=>xstring_to_string_utf8( lv_xact ).
|
||||||
|
|
||||||
lv_is_equal = zcl_abapgit_ajson_utilities=>new( )->is_equal( iv_json_a = lv_act
|
lv_is_equal = zcl_abapgit_ajson_utilities=>new( )->is_equal( iv_json_a = lv_act
|
||||||
iv_json_b = lv_exp ).
|
iv_json_b = lv_exp ).
|
||||||
|
|
||||||
|
@ -180,13 +183,16 @@ CLASS ltcl_json_path IMPLEMENTATION.
|
||||||
METHOD deserialize_simple.
|
METHOD deserialize_simple.
|
||||||
DATA: lt_file TYPE string_table,
|
DATA: lt_file TYPE string_table,
|
||||||
lo_cut TYPE REF TO zcl_abapgit_json_path,
|
lo_cut TYPE REF TO zcl_abapgit_json_path,
|
||||||
|
lv_xact TYPE xstring,
|
||||||
|
|
||||||
lv_act TYPE string,
|
lv_act TYPE string,
|
||||||
lv_is_equal TYPE abap_bool.
|
lv_is_equal TYPE abap_bool.
|
||||||
|
|
||||||
APPEND `$.header.description=Text` TO lt_file.
|
APPEND `$.header.description=Text` TO lt_file.
|
||||||
|
|
||||||
CREATE OBJECT lo_cut.
|
CREATE OBJECT lo_cut.
|
||||||
lv_act = lo_cut->deserialize( lt_file ).
|
lv_xact = lo_cut->deserialize( lt_file ).
|
||||||
|
lv_act = zcl_abapgit_convert=>xstring_to_string_utf8( lv_xact ).
|
||||||
|
|
||||||
lv_is_equal = zcl_abapgit_ajson_utilities=>new( )->is_equal(
|
lv_is_equal = zcl_abapgit_ajson_utilities=>new( )->is_equal(
|
||||||
iv_json_a = lv_act
|
iv_json_a = lv_act
|
||||||
|
@ -200,6 +206,7 @@ CLASS ltcl_json_path IMPLEMENTATION.
|
||||||
METHOD deserialize_with_comments.
|
METHOD deserialize_with_comments.
|
||||||
DATA: lt_file TYPE string_table,
|
DATA: lt_file TYPE string_table,
|
||||||
lo_cut TYPE REF TO zcl_abapgit_json_path,
|
lo_cut TYPE REF TO zcl_abapgit_json_path,
|
||||||
|
lv_xact TYPE xstring,
|
||||||
lv_act TYPE string.
|
lv_act TYPE string.
|
||||||
|
|
||||||
APPEND `# comment = abc` TO lt_file.
|
APPEND `# comment = abc` TO lt_file.
|
||||||
|
@ -207,7 +214,9 @@ CLASS ltcl_json_path IMPLEMENTATION.
|
||||||
APPEND `` TO lt_file.
|
APPEND `` TO lt_file.
|
||||||
|
|
||||||
CREATE OBJECT lo_cut.
|
CREATE OBJECT lo_cut.
|
||||||
lv_act = lo_cut->deserialize( lt_file ).
|
lv_xact = lo_cut->deserialize( lt_file ).
|
||||||
|
lv_act = zcl_abapgit_convert=>xstring_to_string_utf8( lv_xact ).
|
||||||
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_initial( lv_act ).
|
cl_abap_unit_assert=>assert_initial( lv_act ).
|
||||||
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_aplo DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
METHODS zif_abapgit_object~changed_by
|
|
||||||
REDEFINITION .
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_OBJECT_APLO IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
CLEAR rv_user.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_APLO</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - APLO - Application Log Object</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,56 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_bgqc DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff FINAL
|
|
||||||
CREATE PUBLIC.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
CONSTANTS c_bgqc_name TYPE string VALUE 'BGQCNAME'.
|
|
||||||
CONSTANTS c_bgqc_wbi_p TYPE string VALUE 'CL_BGQC_WBI_P'.
|
|
||||||
CONSTANTS c_select_changed_by TYPE string VALUE 'IF_BGQC_WBI_P~SELECT_CHANGED_BY'.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_bgqc IMPLEMENTATION.
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
DATA lo_bgqc_wbi_p TYPE REF TO object.
|
|
||||||
DATA lv_ref_bgqc_name TYPE REF TO data.
|
|
||||||
DATA lv_changed_by TYPE syuname.
|
|
||||||
DATA lv_subrc TYPE sy-subrc.
|
|
||||||
DATA lx_root TYPE REF TO cx_root.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <lv_ref_bgqc_name> TYPE any.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
|
|
||||||
CREATE DATA lv_ref_bgqc_name TYPE (c_bgqc_name).
|
|
||||||
ASSIGN lv_ref_bgqc_name->* TO <lv_ref_bgqc_name>.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
me->ms_item-obj_name = <lv_ref_bgqc_name>.
|
|
||||||
|
|
||||||
CREATE OBJECT lo_bgqc_wbi_p TYPE (c_bgqc_wbi_p).
|
|
||||||
|
|
||||||
CALL METHOD lo_bgqc_wbi_p->(c_select_changed_by)
|
|
||||||
EXPORTING
|
|
||||||
iv_bgqc_name = <lv_ref_bgqc_name>
|
|
||||||
IMPORTING
|
|
||||||
ev_changed_by = lv_changed_by
|
|
||||||
ev_subrc = lv_subrc.
|
|
||||||
|
|
||||||
IF lv_subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
rv_user = lv_changed_by.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_root.
|
|
||||||
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
|
||||||
|
|
||||||
ENDTRY.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_BGQC</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - BGQC - Background Processing Context</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,57 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_cdbo DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
METHODS constructor
|
|
||||||
IMPORTING
|
|
||||||
!is_item TYPE zif_abapgit_definitions=>ty_item
|
|
||||||
!iv_language TYPE spras
|
|
||||||
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
|
|
||||||
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
|
|
||||||
CONSTANTS c_table_name TYPE tabname VALUE 'CDB_OBJH' ##NO_TEXT.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_cdbo IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
|
|
||||||
super->constructor( is_item = is_item
|
|
||||||
iv_language = iv_language
|
|
||||||
io_files = io_files
|
|
||||||
io_i18n_params = io_i18n_params ).
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lv_user TYPE string,
|
|
||||||
lx_error TYPE REF TO cx_root.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
SELECT SINGLE changed_by FROM (c_table_name) INTO lv_user WHERE obj_name = ms_item-obj_name.
|
|
||||||
IF lv_user IS INITIAL.
|
|
||||||
SELECT SINGLE created_by FROM (c_table_name) INTO lv_user WHERE obj_name = ms_item-obj_name.
|
|
||||||
ENDIF.
|
|
||||||
rv_user = lv_user.
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_CDBO</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - CDBO - Customer Data Browser Object</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -30,7 +30,7 @@ CLASS zcl_abapgit_object_common_aff DEFINITION
|
||||||
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
|
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
|
||||||
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
|
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_type_not_supported.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
TYPES: BEGIN OF ty_extension_mapper_pair,
|
TYPES: BEGIN OF ty_extension_mapper_pair,
|
||||||
|
@ -55,9 +55,7 @@ CLASS zcl_abapgit_object_common_aff DEFINITION
|
||||||
|
|
||||||
METHODS create_aff_setting_deserialize FINAL
|
METHODS create_aff_setting_deserialize FINAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_settings_deserialize) TYPE REF TO object
|
VALUE(ro_settings_deserialize) TYPE REF TO object.
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS is_file_empty
|
METHODS is_file_empty
|
||||||
|
@ -106,35 +104,12 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
IF lv_is_supported IS INITIAL.
|
IF lv_is_supported IS INITIAL.
|
||||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
zcx_abapgit_exception=>raise( |Object type { is_item-obj_type } is not supported by this system| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD create_aff_setting_deserialize.
|
|
||||||
IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version AND
|
|
||||||
ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
|
||||||
TRY.
|
|
||||||
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
|
|
||||||
EXPORTING
|
|
||||||
version = 'A'
|
|
||||||
language = mv_language
|
|
||||||
user = sy-uname
|
|
||||||
abap_language_version = ms_item-abap_language_version.
|
|
||||||
CATCH cx_root.
|
|
||||||
zcx_abapgit_exception=>raise( |System does not supported ABAP language version for AFF| ).
|
|
||||||
ENDTRY.
|
|
||||||
ELSE.
|
|
||||||
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
|
|
||||||
EXPORTING
|
|
||||||
version = 'A'
|
|
||||||
language = mv_language
|
|
||||||
user = sy-uname.
|
|
||||||
ENDIF.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_additional_extensions.
|
METHOD get_additional_extensions.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -437,6 +412,25 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create_aff_setting_deserialize.
|
||||||
|
IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version AND
|
||||||
|
ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||||
|
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
|
||||||
|
EXPORTING
|
||||||
|
version = 'A'
|
||||||
|
language = mv_language
|
||||||
|
user = sy-uname
|
||||||
|
abap_language_version = ms_item-abap_language_version.
|
||||||
|
ELSE.
|
||||||
|
CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
|
||||||
|
EXPORTING
|
||||||
|
version = 'A'
|
||||||
|
language = mv_language
|
||||||
|
user = sy-uname.
|
||||||
|
ENDIF.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~exists.
|
METHOD zif_abapgit_object~exists.
|
||||||
DATA: lr_intf_aff_obj TYPE REF TO data,
|
DATA: lr_intf_aff_obj TYPE REF TO data,
|
||||||
lo_object_handler TYPE REF TO object,
|
lo_object_handler TYPE REF TO object,
|
||||||
|
|
|
@ -226,9 +226,7 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION.
|
||||||
is_item = ls_item
|
is_item = ls_item
|
||||||
iv_language = 'E'.
|
iv_language = 'E'.
|
||||||
|
|
||||||
TRY.
|
|
||||||
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
|
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
|
||||||
|
|
||||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
|
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
|
||||||
RECEIVING
|
RECEIVING
|
||||||
result = lv_act_setting_abap_lv.
|
result = lv_act_setting_abap_lv.
|
||||||
|
@ -257,11 +255,6 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION.
|
||||||
act = lv_act_setting_user
|
act = lv_act_setting_user
|
||||||
exp = sy-uname ).
|
exp = sy-uname ).
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
" System doesn't support AFF with ABAP language version
|
|
||||||
RETURN.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD abap_language_version_standard.
|
METHOD abap_language_version_standard.
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_cota DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
METHODS zif_abapgit_object~delete REDEFINITION.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_cota IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
DATA lx_error TYPE REF TO cx_root.
|
|
||||||
TRY.
|
|
||||||
SELECT SINGLE changedby FROM ('sapcontargethead') INTO rv_user
|
|
||||||
WHERE id = ms_item-obj_name AND version = 'I'.
|
|
||||||
|
|
||||||
IF rv_user IS INITIAL.
|
|
||||||
SELECT SINGLE changedby FROM ('sapcontargethead') INTO rv_user
|
|
||||||
WHERE id = ms_item-obj_name AND version = 'A'.
|
|
||||||
ENDIF.
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~delete.
|
|
||||||
DATA lx_error TYPE REF TO cx_root.
|
|
||||||
DATA lv_cota_name TYPE c LENGTH 30.
|
|
||||||
TRY.
|
|
||||||
lv_cota_name = ms_item-obj_name.
|
|
||||||
CALL METHOD ('CL_COTA_FACTORY')=>('DELETE_COTA')
|
|
||||||
EXPORTING
|
|
||||||
cota_name = lv_cota_name
|
|
||||||
korrnum = iv_transport.
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_COTA</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - COTA - Communication Target</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,68 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_dras DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
METHODS get_additional_extensions REDEFINITION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_dras IMPLEMENTATION.
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lo_dras_handler TYPE REF TO object,
|
|
||||||
lo_dras_source_container TYPE REF TO object,
|
|
||||||
lv_object_key TYPE seu_objkey,
|
|
||||||
lv_exists TYPE abap_bool,
|
|
||||||
lx_error TYPE REF TO cx_root.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lv_object_key = ms_item-obj_name.
|
|
||||||
CALL METHOD ('CL_DRAS_AFF_OBJECT_HANDLER')=>('GET_DDIC_HANDLER')
|
|
||||||
EXPORTING
|
|
||||||
object_key = lv_object_key
|
|
||||||
RECEIVING
|
|
||||||
handler = lo_dras_handler.
|
|
||||||
|
|
||||||
CALL METHOD lo_dras_handler->('IF_DD_DRAS_WB_HANDLER~CHECK_EXISTENCE')
|
|
||||||
EXPORTING
|
|
||||||
iv_as4local = 'A'
|
|
||||||
RECEIVING
|
|
||||||
rv_exists = lv_exists.
|
|
||||||
|
|
||||||
IF lv_exists = abap_true.
|
|
||||||
CALL METHOD lo_dras_handler->('IF_DD_DRAS_WB_HANDLER~GET_SOURCE_CONTAINER')
|
|
||||||
EXPORTING
|
|
||||||
iv_as4local = 'A'
|
|
||||||
RECEIVING
|
|
||||||
ro_result = lo_dras_source_container.
|
|
||||||
CALL METHOD lo_dras_source_container->('IF_DD_DRAS_SOURCE_CONTAINER~GET_AS4USER')
|
|
||||||
RECEIVING
|
|
||||||
rv_as4user = rv_user.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
|
||||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD get_additional_extensions.
|
|
||||||
DATA ls_additional_extension LIKE LINE OF rv_additional_extensions.
|
|
||||||
ls_additional_extension-extension = 'acds'.
|
|
||||||
CALL METHOD ('CL_CDS_AFF_FILE_NAME_MAPPER')=>for_cds
|
|
||||||
RECEIVING
|
|
||||||
result = ls_additional_extension-file_name_mapper.
|
|
||||||
APPEND ls_additional_extension TO rv_additional_extensions.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_DRAS</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - DRAS - CDS Aspect</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,69 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_dsfd DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
METHODS get_additional_extensions REDEFINITION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_dsfd IMPLEMENTATION.
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lo_dsfd_handler TYPE REF TO object,
|
|
||||||
lo_dsfd_source_container TYPE REF TO object,
|
|
||||||
lv_object_key TYPE seu_objkey,
|
|
||||||
lv_exists TYPE abap_bool,
|
|
||||||
lx_error TYPE REF TO cx_root.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lv_object_key = ms_item-obj_name.
|
|
||||||
CALL METHOD ('CL_DSFD_AFF_OBJECT_HANDLER')=>('GET_DDIC_HANDLER')
|
|
||||||
EXPORTING
|
|
||||||
object_key = lv_object_key
|
|
||||||
RECEIVING
|
|
||||||
handler = lo_dsfd_handler.
|
|
||||||
|
|
||||||
CALL METHOD lo_dsfd_handler->('IF_DD_DSFD_WB_HANDLER~CHECK_EXISTENCE')
|
|
||||||
EXPORTING
|
|
||||||
iv_as4local = 'A'
|
|
||||||
RECEIVING
|
|
||||||
rv_exists = lv_exists.
|
|
||||||
|
|
||||||
IF lv_exists = abap_true.
|
|
||||||
CALL METHOD lo_dsfd_handler->('IF_DD_DSFD_WB_HANDLER~GET_SOURCE_CONTAINER')
|
|
||||||
EXPORTING
|
|
||||||
iv_as4local = 'A'
|
|
||||||
RECEIVING
|
|
||||||
ro_result = lo_dsfd_source_container.
|
|
||||||
|
|
||||||
CALL METHOD lo_dsfd_source_container->('IF_DD_DSFD_CONTAINER_SRC~GET_AS4USER')
|
|
||||||
RECEIVING
|
|
||||||
rv_as4user = rv_user.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
|
||||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD get_additional_extensions.
|
|
||||||
DATA ls_additional_extension LIKE LINE OF rv_additional_extensions.
|
|
||||||
ls_additional_extension-extension = 'acds'.
|
|
||||||
CALL METHOD ('CL_CDS_AFF_FILE_NAME_MAPPER')=>for_cds
|
|
||||||
RECEIVING
|
|
||||||
result = ls_additional_extension-file_name_mapper.
|
|
||||||
APPEND ls_additional_extension TO rv_additional_extensions.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_DSFD</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - DSFD - CDS Scalar Function Definition</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,64 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_dsfi DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_dsfi IMPLEMENTATION.
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lo_dsfi_handler TYPE REF TO object,
|
|
||||||
lo_dsfi_source_container TYPE REF TO object,
|
|
||||||
lv_object_key TYPE seu_objkey,
|
|
||||||
lv_exists TYPE abap_bool,
|
|
||||||
lx_error TYPE REF TO cx_root.
|
|
||||||
FIELD-SYMBOLS: <lv_active> TYPE any.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lv_object_key = ms_item-obj_name.
|
|
||||||
CALL METHOD ('CL_DSFI_AFF_OBJECT_HANDLER')=>('GET_DDIC_HANDLER')
|
|
||||||
EXPORTING
|
|
||||||
object_key = lv_object_key
|
|
||||||
RECEIVING
|
|
||||||
handler = lo_dsfi_handler.
|
|
||||||
|
|
||||||
ASSIGN ('CE_DD_DSFI_AS4LOCAL=>EN_STATE-ACTIVE')
|
|
||||||
TO <lv_active>.
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
CALL METHOD lo_dsfi_handler->('IF_DD_DSFI_WB_HANDLER~CHECK_EXISTENCE')
|
|
||||||
EXPORTING
|
|
||||||
iv_as4local = <lv_active>
|
|
||||||
RECEIVING
|
|
||||||
rv_exists = lv_exists.
|
|
||||||
|
|
||||||
IF lv_exists = abap_true.
|
|
||||||
CALL METHOD lo_dsfi_handler->('IF_DD_DSFI_WB_HANDLER~GET_SOURCE_CONTAINER')
|
|
||||||
EXPORTING
|
|
||||||
iv_as4local = <lv_active>
|
|
||||||
RECEIVING
|
|
||||||
ro_result = lo_dsfi_source_container.
|
|
||||||
|
|
||||||
CALL METHOD lo_dsfi_source_container->('IF_DD_DSFI_SRC_CONTAINER~GET_AS4USER')
|
|
||||||
RECEIVING
|
|
||||||
rv_result = rv_user.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
|
||||||
APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_DSFI</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - DSFI - CDS Scalar Function Implementation</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,38 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_sajc DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
METHODS zif_abapgit_object~changed_by
|
|
||||||
REDEFINITION .
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_OBJECT_SAJC IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
CONSTANTS lc_table_name TYPE tabname VALUE 'APJ_W_JCE_ROOT'.
|
|
||||||
|
|
||||||
SELECT SINGLE lst_ch_user_acct
|
|
||||||
FROM (lc_table_name)
|
|
||||||
INTO rv_user
|
|
||||||
WHERE job_catalog_entry_name = ms_item-obj_name
|
|
||||||
AND job_catalog_entry_version = 'I'.
|
|
||||||
|
|
||||||
IF rv_user IS INITIAL.
|
|
||||||
SELECT SINGLE lst_ch_user_acct
|
|
||||||
FROM (lc_table_name)
|
|
||||||
INTO rv_user
|
|
||||||
WHERE job_catalog_entry_name = ms_item-obj_name
|
|
||||||
AND job_catalog_entry_version = 'A'.
|
|
||||||
ENDIF.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_SAJC</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - SAJC - Application Job Catalog Entry</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,39 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_sajt DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
METHODS zif_abapgit_object~changed_by
|
|
||||||
REDEFINITION .
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_OBJECT_SAJT IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
CONSTANTS lc_table_name TYPE tabname VALUE 'APJ_W_JT_ROOT'.
|
|
||||||
|
|
||||||
SELECT SINGLE lst_ch_user_acct
|
|
||||||
FROM (lc_table_name)
|
|
||||||
INTO rv_user
|
|
||||||
WHERE job_template_name = ms_item-obj_name
|
|
||||||
AND job_template_version = 'I'.
|
|
||||||
|
|
||||||
IF rv_user IS INITIAL.
|
|
||||||
SELECT SINGLE lst_ch_user_acct
|
|
||||||
FROM (lc_table_name)
|
|
||||||
INTO rv_user
|
|
||||||
WHERE job_template_name = ms_item-obj_name
|
|
||||||
AND job_template_version = 'A'.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_SAJT</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - SAJT - Application Job Template</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -6,44 +6,13 @@ CLASS zcl_abapgit_object_smbc DEFINITION
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
METHODS zif_abapgit_object~changed_by REDEFINITION.
|
||||||
METHODS constructor
|
|
||||||
IMPORTING
|
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
|
||||||
iv_language TYPE spras
|
|
||||||
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
|
|
||||||
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_type_not_supported.
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_smbc IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECT_SMBC IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
|
|
||||||
DATA: lo_handler TYPE REF TO object,
|
|
||||||
lo_db_api TYPE REF TO object,
|
|
||||||
lr_data TYPE REF TO data.
|
|
||||||
|
|
||||||
super->constructor(
|
|
||||||
is_item = is_item
|
|
||||||
iv_language = iv_language
|
|
||||||
io_files = io_files
|
|
||||||
io_i18n_params = io_i18n_params ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CREATE OBJECT lo_handler TYPE ('CL_SMBC_AFF_OBJECT_HANDLER').
|
|
||||||
CREATE OBJECT lo_db_api TYPE ('CL_MBC_BUSINESS_CONFIG_DB').
|
|
||||||
CREATE DATA lr_data TYPE ('SMBC_CONFIG').
|
|
||||||
CATCH cx_sy_create_object_error
|
|
||||||
cx_sy_create_data_error.
|
|
||||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
METHOD zif_abapgit_object~changed_by.
|
||||||
|
@ -55,12 +24,15 @@ CLASS zcl_abapgit_object_smbc IMPLEMENTATION.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_smbc_config> TYPE any,
|
FIELD-SYMBOLS: <ls_smbc_config> TYPE any,
|
||||||
<lv_smbc_changed_by> TYPE any.
|
<lv_smbc_changed_by> TYPE any.
|
||||||
|
TRY.
|
||||||
CREATE OBJECT lo_handler TYPE ('CL_SMBC_AFF_OBJECT_HANDLER').
|
CREATE OBJECT lo_handler TYPE ('CL_SMBC_AFF_OBJECT_HANDLER').
|
||||||
CREATE OBJECT lo_db_api TYPE ('CL_MBC_BUSINESS_CONFIG_DB').
|
CREATE OBJECT lo_db_api TYPE ('CL_MBC_BUSINESS_CONFIG_DB').
|
||||||
CREATE DATA lr_data TYPE ('SMBC_CONFIG').
|
CREATE DATA lr_data TYPE ('SMBC_CONFIG').
|
||||||
ASSIGN lr_data->* TO <ls_smbc_config>.
|
ASSIGN lr_data->* TO <ls_smbc_config>.
|
||||||
|
CATCH cx_sy_create_object_error
|
||||||
|
cx_sy_create_data_error.
|
||||||
|
zcx_abapgit_exception=>raise( 'SMBC not supported' ).
|
||||||
|
ENDTRY.
|
||||||
lv_technical_id = ms_item-obj_name.
|
lv_technical_id = ms_item-obj_name.
|
||||||
CALL METHOD lo_db_api->('IF_MBC_BUSINESS_CONFIG_DB~READ')
|
CALL METHOD lo_db_api->('IF_MBC_BUSINESS_CONFIG_DB~READ')
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_swcr DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS: zif_abapgit_object~changed_by REDEFINITION.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_swcr IMPLEMENTATION.
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lr_data TYPE REF TO data,
|
|
||||||
lo_swcr_db_api TYPE REF TO object,
|
|
||||||
lv_name TYPE c LENGTH 30,
|
|
||||||
lx_error TYPE REF TO cx_root.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_swcr_header> TYPE any,
|
|
||||||
<ls_swcr_user> TYPE any.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CALL METHOD ('CL_SCR_DB_ACCESS')=>('CREATE_INSTANCE')
|
|
||||||
RECEIVING
|
|
||||||
result = lo_swcr_db_api.
|
|
||||||
CREATE DATA lr_data TYPE ('IF_SCR_TYPES=>TY_S_HEADER').
|
|
||||||
ASSIGN lr_data->* TO <ls_swcr_header>.
|
|
||||||
|
|
||||||
lv_name = ms_item-obj_name.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CALL METHOD lo_swcr_db_api->('IF_SCR_DB_ACCESS~READ_HEADER')
|
|
||||||
EXPORTING
|
|
||||||
software_component = lv_name
|
|
||||||
version = 'A'
|
|
||||||
RECEIVING
|
|
||||||
result = <ls_swcr_header>.
|
|
||||||
CATCH cx_root. " no active version found, try to find an inactive version
|
|
||||||
CALL METHOD lo_swcr_db_api->('IF_SCR_DB_ACCESS~READ_HEADER')
|
|
||||||
EXPORTING
|
|
||||||
software_component = lv_name
|
|
||||||
version = 'I'
|
|
||||||
RECEIVING
|
|
||||||
result = <ls_swcr_header>.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'LAST_CHANGED_BY' OF STRUCTURE <ls_swcr_header> TO <ls_swcr_user>.
|
|
||||||
rv_user = <ls_swcr_user>.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_error.
|
|
||||||
zcx_abapgit_exception=>raise( iv_text = lx_error->get_text( )
|
|
||||||
ix_previous = lx_error ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_SWCR</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - SWCR - Software Component Relations</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,85 +0,0 @@
|
||||||
CLASS zcl_abapgit_object_uiad DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
INHERITING FROM zcl_abapgit_object_common_aff
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
METHODS zif_abapgit_object~changed_by
|
|
||||||
REDEFINITION .
|
|
||||||
METHODS constructor
|
|
||||||
IMPORTING
|
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
|
||||||
iv_language TYPE spras
|
|
||||||
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
|
|
||||||
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_type_not_supported.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_uiad IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
|
|
||||||
DATA: lo_db_api TYPE REF TO object,
|
|
||||||
lr_data TYPE REF TO data.
|
|
||||||
|
|
||||||
super->constructor(
|
|
||||||
is_item = is_item
|
|
||||||
iv_language = iv_language
|
|
||||||
io_files = io_files
|
|
||||||
io_i18n_params = io_i18n_params ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CALL METHOD ('CL_SUI_UIAD_DB_ACCESS')=>('GET_INSTANCE')
|
|
||||||
RECEIVING
|
|
||||||
ro_instance = lo_db_api.
|
|
||||||
CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
|
|
||||||
CATCH cx_sy_dyn_call_error
|
|
||||||
cx_sy_create_data_error.
|
|
||||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
|
||||||
|
|
||||||
DATA: lo_db_api TYPE REF TO object,
|
|
||||||
lr_data TYPE REF TO data,
|
|
||||||
lv_object_key TYPE c LENGTH 32,
|
|
||||||
lx_root TYPE REF TO cx_root.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_metadata> TYPE any,
|
|
||||||
<lv_changed_by> TYPE any.
|
|
||||||
|
|
||||||
CALL METHOD ('CL_SUI_UIAD_DB_ACCESS')=>('GET_INSTANCE')
|
|
||||||
RECEIVING
|
|
||||||
ro_instance = lo_db_api.
|
|
||||||
CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
|
|
||||||
ASSIGN lr_data->* TO <ls_metadata>.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lv_object_key = ms_item-obj_name.
|
|
||||||
CALL METHOD lo_db_api->('IF_SUI_UIAD_DB_ACCESS~READ_WB_METADATA')
|
|
||||||
EXPORTING
|
|
||||||
iv_id = lv_object_key
|
|
||||||
iv_version = 'A'
|
|
||||||
iv_language = mv_language
|
|
||||||
RECEIVING
|
|
||||||
rs_metadata = <ls_metadata>.
|
|
||||||
|
|
||||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_metadata> TO <lv_changed_by>.
|
|
||||||
rv_user = <lv_changed_by>.
|
|
||||||
|
|
||||||
CATCH cx_root INTO lx_root.
|
|
||||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?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_UIAD</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abapGit - UIAD - Launchpad App Descriptor Item</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -8,44 +8,13 @@ CLASS zcl_abapgit_object_uipg DEFINITION
|
||||||
|
|
||||||
METHODS zif_abapgit_object~changed_by
|
METHODS zif_abapgit_object~changed_by
|
||||||
REDEFINITION .
|
REDEFINITION .
|
||||||
METHODS constructor
|
|
||||||
IMPORTING
|
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
|
||||||
iv_language TYPE spras
|
|
||||||
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
|
|
||||||
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_type_not_supported.
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_object_uipg IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECT_UIPG IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
|
|
||||||
DATA: lo_db_api TYPE REF TO object,
|
|
||||||
lr_data TYPE REF TO data.
|
|
||||||
|
|
||||||
super->constructor(
|
|
||||||
is_item = is_item
|
|
||||||
iv_language = iv_language
|
|
||||||
io_files = io_files
|
|
||||||
io_i18n_params = io_i18n_params ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
CALL METHOD ('/UI2/CL_UIPG_DB_ACCESS')=>('GET_INSTANCE')
|
|
||||||
RECEIVING
|
|
||||||
ro_instance = lo_db_api.
|
|
||||||
CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
|
|
||||||
CATCH cx_sy_dyn_call_error
|
|
||||||
cx_sy_create_data_error.
|
|
||||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
METHOD zif_abapgit_object~changed_by.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user