mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Compare commits
81 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
34ec448b39 | ||
![]() |
efbc0245ce | ||
![]() |
220417e73f | ||
![]() |
781313ad7c | ||
![]() |
402ec37b3b | ||
![]() |
5e087d33c7 | ||
![]() |
267c210c5a | ||
![]() |
2b0f4e74d9 | ||
![]() |
3f673ebe8c | ||
![]() |
b9389bde33 | ||
![]() |
cc414d26e0 | ||
![]() |
becfe9bb08 | ||
![]() |
c21dc53e00 | ||
![]() |
96a010614b | ||
![]() |
1fa75ebb47 | ||
![]() |
b6e375b3d6 | ||
![]() |
b2d0d98ec0 | ||
![]() |
c0ce2cb2e2 | ||
![]() |
b55791765f | ||
![]() |
a4019f38fb | ||
![]() |
d79887c0a2 | ||
![]() |
aaec314b14 | ||
![]() |
edfbfab6ce | ||
![]() |
301f860821 | ||
![]() |
d73e00bc8a | ||
![]() |
12d6b480b1 | ||
![]() |
6302fa6b1c | ||
![]() |
15584a3da7 | ||
![]() |
fc76035b7b | ||
![]() |
bb9462f979 | ||
![]() |
8b9dd0fdfa | ||
![]() |
220cb9aad1 | ||
![]() |
51d115a1c1 | ||
![]() |
12b93deb1e | ||
![]() |
db0526a3b8 | ||
![]() |
8a72e762f5 | ||
![]() |
663b2b5583 | ||
![]() |
e7af0fb6a0 | ||
![]() |
0ea8aa0f43 | ||
![]() |
5145a6691f | ||
![]() |
74c0979a8c | ||
![]() |
d9c4483cc2 | ||
![]() |
a0e7a47f7a | ||
![]() |
bc104e396e | ||
![]() |
8e02089f8f | ||
![]() |
8984655d86 | ||
![]() |
0af09e13bd | ||
![]() |
464afa8193 | ||
![]() |
b45a4969ba | ||
![]() |
ec12f18b62 | ||
![]() |
aa6e97ac99 | ||
![]() |
1557d8c295 | ||
![]() |
90219ae271 | ||
![]() |
1ef41d3f77 | ||
![]() |
18cf90740d | ||
![]() |
bfc2518658 | ||
![]() |
079e7ce797 | ||
![]() |
dd9790d9bd | ||
![]() |
4469771f01 | ||
![]() |
d374436ae3 | ||
![]() |
2f0281b6ed | ||
![]() |
39fe716022 | ||
![]() |
adc1dad930 | ||
![]() |
91dd6873ab | ||
![]() |
ae9ec4c141 | ||
![]() |
90cb2201fa | ||
![]() |
188bf8d69a | ||
![]() |
626f23d72a | ||
![]() |
2814ade981 | ||
![]() |
d99cc7a9cf | ||
![]() |
f45425f665 | ||
![]() |
160f10c38b | ||
![]() |
f6683582d1 | ||
![]() |
527d512409 | ||
![]() |
99fe0f5240 | ||
![]() |
c08d33bb4a | ||
![]() |
5182ed6213 | ||
![]() |
fd38cd873c | ||
![]() |
bdbfd57248 | ||
![]() |
ee9e32d442 | ||
![]() |
3daf4d3f5c |
|
@ -1,6 +1,10 @@
|
|||
{
|
||||
"name": "abapGit",
|
||||
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-12",
|
||||
"extensions": ["larshp.vscode-abaplint"],
|
||||
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-20",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": ["larshp.vscode-abaplint"]
|
||||
}
|
||||
},
|
||||
"postCreateCommand": "npm install"
|
||||
}
|
||||
}
|
||||
|
|
2
.github/workflows/reuse.yml
vendored
2
.github/workflows/reuse.yml
vendored
|
@ -8,4 +8,4 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@v1
|
||||
uses: fsfe/reuse-action@v5
|
||||
|
|
15
.github/workflows/test-pr.yml
vendored
15
.github/workflows/test-pr.yml
vendored
|
@ -31,12 +31,9 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- name: npm install
|
||||
run: npm install
|
||||
- name: npm run unit
|
||||
run: npm run unit
|
||||
- name: npm run coverage
|
||||
run: npm run coverage
|
||||
- run: npm install
|
||||
- run: npm run unit
|
||||
- run: npm run coverage
|
||||
|
||||
integration:
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -45,10 +42,8 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- name: npm install
|
||||
run: npm install
|
||||
- run: npm install
|
||||
- name: start gitea
|
||||
working-directory: test/gitea/
|
||||
run: npm install && npm run gitea
|
||||
- name: npm run integration
|
||||
run: npm run integration
|
||||
- run: npm run integration
|
||||
|
|
|
@ -3,8 +3,7 @@
|
|||
[](LICENSE)
|
||||
[](https://api.reuse.software/info/github.com/abapGit/abapGit)
|
||||
[](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>
|
||||
|
|
|
@ -225,8 +225,8 @@
|
|||
"^if_adt_lock_handle$",
|
||||
"^if_aff_",
|
||||
"^if_satc_ci_variant_access$",
|
||||
"^if_saunit_internal_result$",
|
||||
"^if_saunit_internal_result_type$",
|
||||
"^if_saunit_internal_result$",
|
||||
"^if_srvd_types$",
|
||||
"^if_wb_adt_plugin_resource_co$",
|
||||
"^if_wb_object_data_selection_co$",
|
||||
|
@ -234,6 +234,7 @@
|
|||
"^if_xco_",
|
||||
"^int4$",
|
||||
"^numc2$",
|
||||
"^pgmid$",
|
||||
"^sabp_t_tadir_keys$",
|
||||
"^sap_bool$",
|
||||
"^srcsystem$",
|
||||
|
@ -318,6 +319,9 @@
|
|||
"message_exists": true,
|
||||
"method_implemented_twice": true,
|
||||
"method_length": {
|
||||
"exclude": [
|
||||
"zcl_abapgit_convert.clas.locals_imp.abap"
|
||||
],
|
||||
"checkForms": true,
|
||||
"errorWhenEmpty": false,
|
||||
"ignoreTestClasses": false,
|
||||
|
|
8
deps/cl_package_factory.clas.abap
vendored
8
deps/cl_package_factory.clas.abap
vendored
|
@ -2,10 +2,10 @@ CLASS cl_package_factory DEFINITION PUBLIC.
|
|||
PUBLIC SECTION.
|
||||
CLASS-METHODS load_package
|
||||
IMPORTING
|
||||
i_package_name TYPE devclass
|
||||
i_package_name TYPE devclass
|
||||
VALUE(i_force_reload) TYPE abap_bool OPTIONAL
|
||||
EXPORTING
|
||||
VALUE(e_package) TYPE REF TO if_package
|
||||
VALUE(e_package) TYPE REF TO if_package
|
||||
EXCEPTIONS
|
||||
object_not_existing
|
||||
unexpected_error
|
||||
|
@ -19,9 +19,9 @@ CLASS cl_package_factory DEFINITION PUBLIC.
|
|||
!i_suppress_dialog TYPE abap_bool DEFAULT abap_false
|
||||
!i_suppress_access_permission TYPE abap_bool DEFAULT abap_false
|
||||
EXPORTING
|
||||
VALUE(e_package) TYPE REF TO if_package
|
||||
VALUE(e_package) TYPE REF TO if_package
|
||||
CHANGING
|
||||
c_package_data TYPE any.
|
||||
c_package_data TYPE any.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS cl_package_factory IMPLEMENTATION.
|
||||
|
|
105
deps/e070.tabl.xml
vendored
Normal file
105
deps/e070.tabl.xml
vendored
Normal file
|
@ -0,0 +1,105 @@
|
|||
<?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
Normal file
116
deps/e071.tabl.xml
vendored
Normal file
|
@ -0,0 +1,116 @@
|
|||
<?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
Normal file
158
deps/e071k.tabl.xml
vendored
Normal file
|
@ -0,0 +1,158 @@
|
|||
<?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
Normal file
54
deps/e07t.tabl.xml
vendored
Normal file
|
@ -0,0 +1,54 @@
|
|||
<?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,5 +1,8 @@
|
|||
INTERFACE if_package PUBLIC.
|
||||
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 application_component TYPE string READ-ONLY.
|
||||
DATA transport_layer TYPE string READ-ONLY.
|
||||
|
|
4
deps/tcdrs.tabl.xml
vendored
4
deps/tcdrs.tabl.xml
vendored
|
@ -14,9 +14,9 @@
|
|||
<FIELDNAME>TABNAME</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000002</INTLEN>
|
||||
<INTLEN>000060</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000001</LENG>
|
||||
<LENG>000030</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
</DD03P_TABLE>
|
||||
|
|
20
package.json
20
package.json
|
@ -5,10 +5,10 @@
|
|||
"test": "npm run eslint && npm run abaplint",
|
||||
"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 ..",
|
||||
"build": "rm -rf output && abap_transpile test/abap_transpile.json",
|
||||
"unit": "npm run build && echo RUNNING && node output/index.mjs",
|
||||
"coverage": "npm run unit && c8 node output/index.mjs && c8 report --reporter=html",
|
||||
"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 && cp -f src/ui/zabapgit_icon_font.w3mi.data.woff output/ && echo RUNNING && node output/index.mjs",
|
||||
"build": "rm -rf output && abap_transpile test/abap_transpile.json && cp -f src/ui/zabapgit_icon_font.w3mi.data.woff output/",
|
||||
"unit": "npm run build && echo RUNNING && node output/index.mjs --skip-critical",
|
||||
"coverage": "npm run unit && c8 node output/index.mjs --skip-critical && c8 report --reporter=html",
|
||||
"integration": "npm run build && echo RUNNING && node output/index.mjs --only-critical",
|
||||
"abaplint": "abaplint --format codeframe",
|
||||
"eslint": "eslint src"
|
||||
},
|
||||
|
@ -23,14 +23,14 @@
|
|||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@abaplint/cli": "^2.113.82",
|
||||
"@abaplint/database-sqlite": "^2.10.20",
|
||||
"@abaplint/runtime": "^2.10.23",
|
||||
"@abaplint/cli": "^2.113.110",
|
||||
"@abaplint/database-sqlite": "^2.10.24",
|
||||
"@abaplint/runtime": "^2.10.44",
|
||||
"express": "^4.21.2",
|
||||
"@abaplint/transpiler-cli": "^2.10.23",
|
||||
"globals": "^15.13.0",
|
||||
"@abaplint/transpiler-cli": "^2.10.44",
|
||||
"globals": "^16.0.0",
|
||||
"abapmerge": "^0.16.6",
|
||||
"c8": "^10.1.3",
|
||||
"eslint": "^9.17.0"
|
||||
"eslint": "^9.25.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD dequeue.
|
||||
|
@ -135,13 +135,14 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
|
||||
METHOD run.
|
||||
|
||||
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
|
||||
lo_repo TYPE REF TO zcl_abapgit_repo_online,
|
||||
lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys,
|
||||
li_background TYPE REF TO zif_abapgit_background,
|
||||
li_log TYPE REF TO zif_abapgit_log,
|
||||
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||
lv_repo_name TYPE string.
|
||||
DATA:
|
||||
li_repo TYPE REF TO zif_abapgit_repo,
|
||||
li_repo_online TYPE REF TO zif_abapgit_repo_online,
|
||||
lt_list TYPE zif_abapgit_persist_background=>ty_background_keys,
|
||||
li_background TYPE REF TO zif_abapgit_background,
|
||||
li_log TYPE REF TO zif_abapgit_log,
|
||||
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||
lv_repo_name TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list.
|
||||
|
||||
|
@ -152,8 +153,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
CREATE OBJECT lo_per.
|
||||
lt_list = lo_per->list( ).
|
||||
lt_list = zcl_abapgit_persist_factory=>get_background( )->list( ).
|
||||
|
||||
WRITE: / 'Background mode'.
|
||||
|
||||
|
@ -161,12 +161,13 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
CREATE OBJECT li_log TYPE zcl_abapgit_log.
|
||||
|
||||
TRY.
|
||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ).
|
||||
lv_repo_name = lo_repo->get_name( ).
|
||||
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ).
|
||||
li_repo_online ?= li_repo.
|
||||
lv_repo_name = li_repo->get_name( ).
|
||||
WRITE: / <ls_list>-method, lv_repo_name.
|
||||
|
||||
zcl_abapgit_login_manager=>set(
|
||||
iv_uri = lo_repo->get_url( )
|
||||
iv_uri = li_repo_online->get_url( )
|
||||
iv_username = <ls_list>-username
|
||||
iv_password = <ls_list>-password ).
|
||||
|
||||
|
@ -174,16 +175,16 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
CREATE OBJECT li_background TYPE (<ls_list>-method).
|
||||
|
||||
li_background->run(
|
||||
io_repo = lo_repo
|
||||
ii_log = li_log
|
||||
it_settings = <ls_list>-settings ).
|
||||
ii_repo_online = li_repo_online
|
||||
ii_log = li_log
|
||||
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)
|
||||
lo_repo->refresh(
|
||||
li_repo->refresh(
|
||||
iv_drop_cache = abap_true
|
||||
iv_drop_log = abap_false ).
|
||||
CATCH zcx_abapgit_exception INTO lx_error.
|
||||
|
|
|
@ -30,12 +30,14 @@ CLASS zcl_abapgit_background_pull IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
li_repo = ii_repo_online.
|
||||
|
||||
ls_checks = io_repo->deserialize_checks( ).
|
||||
ls_checks = li_repo->deserialize_checks( ).
|
||||
|
||||
LOOP AT ls_checks-overwrite ASSIGNING <ls_overwrite>.
|
||||
<ls_overwrite>-decision = zif_abapgit_definitions=>c_yes.
|
||||
|
@ -46,7 +48,14 @@ CLASS zcl_abapgit_background_pull IMPLEMENTATION.
|
|||
|
||||
lo_settings->set_activate_wo_popup( abap_true ).
|
||||
|
||||
io_repo->deserialize( is_checks = ls_checks
|
||||
|
||||
" pass decisions to delete
|
||||
zcl_abapgit_services_repo=>delete_unnecessary_objects(
|
||||
ii_repo = li_repo
|
||||
is_checks = ls_checks
|
||||
ii_log = ii_log ).
|
||||
|
||||
li_repo->deserialize( is_checks = ls_checks
|
||||
ii_log = ii_log ).
|
||||
|
||||
lo_settings->set_activate_wo_popup( lv_activation_setting ).
|
||||
|
|
|
@ -17,7 +17,7 @@ CLASS zcl_abapgit_background_push_au DEFINITION
|
|||
VALUE(rv_comment) TYPE string .
|
||||
METHODS push_auto
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS determine_user_details
|
||||
|
@ -27,8 +27,8 @@ CLASS zcl_abapgit_background_push_au DEFINITION
|
|||
VALUE(rs_user) TYPE zif_abapgit_git_definitions=>ty_git_user .
|
||||
METHODS push_deletions
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
PRIVATE SECTION.
|
||||
|
@ -69,12 +69,12 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
|||
|
||||
METHOD determine_user_details.
|
||||
|
||||
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
||||
DATA li_user_record TYPE REF TO zif_abapgit_user_record.
|
||||
|
||||
|
||||
lo_user_record = zcl_abapgit_user_record=>get_instance( iv_changed_by ).
|
||||
rs_user-name = lo_user_record->get_name( ).
|
||||
rs_user-email = lo_user_record->get_email( ).
|
||||
li_user_record = zcl_abapgit_env_factory=>get_user_record( ).
|
||||
rs_user-name = li_user_record->get_name( iv_changed_by ).
|
||||
rs_user-email = li_user_record->get_email( iv_changed_by ).
|
||||
|
||||
* If no email, fall back to localhost/default email
|
||||
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_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
||||
|
||||
LOOP AT ls_files-local ASSIGNING <ls_local>.
|
||||
lv_changed_by = zcl_abapgit_objects=>changed_by(
|
||||
|
@ -172,13 +172,13 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
|||
|
||||
ls_comment-comment = build_comment( ls_user_files ).
|
||||
|
||||
io_repo->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
ii_repo_online->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
ENDLOOP.
|
||||
|
||||
IF lines( ls_files-remote ) > 0.
|
||||
push_deletions( io_repo = io_repo
|
||||
is_files = ls_files ).
|
||||
push_deletions( ii_repo_online = ii_repo_online
|
||||
is_files = ls_files ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -212,8 +212,8 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
|||
ls_comment-committer-name = 'Deletion'.
|
||||
ls_comment-committer-email = 'deletion@localhost'.
|
||||
|
||||
io_repo->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
ii_repo_online->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -237,14 +237,14 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
|||
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
|
||||
|
||||
mi_log = ii_log.
|
||||
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
||||
|
||||
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
||||
ii_log->add_info( 'Nothing to stage' ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
push_auto( io_repo ).
|
||||
push_auto( ii_repo_online ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -22,9 +22,9 @@ CLASS zcl_abapgit_background_push_fi DEFINITION
|
|||
VALUE(rv_comment) TYPE string .
|
||||
METHODS push_fixed
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||
!iv_name TYPE string
|
||||
!iv_email TYPE string
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
!iv_name TYPE string
|
||||
!iv_email TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
PRIVATE SECTION.
|
||||
|
@ -73,7 +73,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
|||
<ls_remote> LIKE LINE OF ls_files-remote.
|
||||
|
||||
|
||||
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
||||
ASSERT lines( ls_files-local ) > 0
|
||||
OR lines( ls_files-remote ) > 0.
|
||||
|
||||
|
@ -99,8 +99,8 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
|||
ls_comment-committer-email = iv_email.
|
||||
ls_comment-comment = build_comment( ls_files ).
|
||||
|
||||
io_repo->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
ii_repo_online->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -142,7 +142,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
|||
lv_email TYPE string.
|
||||
|
||||
mi_log = ii_log.
|
||||
ls_files = zcl_abapgit_factory=>get_stage_logic( )->get( io_repo ).
|
||||
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
||||
|
||||
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
|
||||
ii_log->add_info( 'Nothing to stage' ).
|
||||
|
@ -156,9 +156,9 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
|
|||
lv_email = ls_setting-value.
|
||||
|
||||
push_fixed(
|
||||
io_repo = io_repo
|
||||
iv_name = lv_name
|
||||
iv_email = lv_email ).
|
||||
ii_repo_online = ii_repo_online
|
||||
iv_name = lv_name
|
||||
iv_email = lv_email ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -18,9 +18,9 @@ INTERFACE zif_abapgit_background
|
|||
ct_settings TYPE ty_settings_tt .
|
||||
METHODS run
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||
!ii_log TYPE REF TO zif_abapgit_log
|
||||
!it_settings TYPE ty_settings_tt OPTIONAL
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
!ii_log TYPE REF TO zif_abapgit_log
|
||||
!it_settings TYPE ty_settings_tt OPTIONAL
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -21,7 +21,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
|||
"! @raising zcx_abapgit_exception | Object is not locked in a transport
|
||||
METHODS get_current_transport_for_obj
|
||||
IMPORTING
|
||||
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object_type TYPE trobjtype
|
||||
!iv_object_name TYPE sobj_name
|
||||
RETURNING
|
||||
|
@ -36,7 +36,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
|||
"! @raising zcx_abapgit_exception | Object is not locked in a transport
|
||||
METHODS get_current_transport_from_db
|
||||
IMPORTING
|
||||
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object_type TYPE trobjtype
|
||||
!iv_object_name TYPE sobj_name
|
||||
RETURNING
|
||||
|
@ -51,7 +51,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
|||
"! @raising zcx_abapgit_exception | Object type is not lockable
|
||||
METHODS is_object_locked_in_transport
|
||||
IMPORTING
|
||||
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object_type TYPE trobjtype
|
||||
!iv_object_name TYPE sobj_name
|
||||
RETURNING
|
||||
|
@ -64,7 +64,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
|||
"! @parameter rv_lockable | Lockable
|
||||
METHODS is_object_type_lockable
|
||||
IMPORTING
|
||||
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object_type TYPE trobjtype
|
||||
RETURNING
|
||||
VALUE(rv_lockable) TYPE abap_bool .
|
||||
|
@ -74,7 +74,7 @@ CLASS zcl_abapgit_cts_api DEFINITION
|
|||
"! @parameter rv_transportable | Transportable
|
||||
METHODS is_object_type_transportable
|
||||
IMPORTING
|
||||
!iv_program_id TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object_type TYPE trobjtype
|
||||
RETURNING
|
||||
VALUE(rv_transportable) TYPE abap_bool .
|
||||
|
@ -89,6 +89,9 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
DATA: lv_object_lockable TYPE abap_bool,
|
||||
lv_locked TYPE abap_bool,
|
||||
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_tr_object_name TYPE trobj_name.
|
||||
|
||||
|
@ -104,6 +107,8 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
we_locked = lv_locked
|
||||
we_lock_order = lv_transport_request
|
||||
we_lock_task = lv_task
|
||||
TABLES
|
||||
wt_tlock = lt_tlock
|
||||
EXCEPTIONS
|
||||
empty_key = 1
|
||||
no_systemname = 2
|
||||
|
@ -122,7 +127,15 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( |Object type { iv_program_id }-{ iv_object_type } not lockable| ).
|
||||
ENDIF.
|
||||
|
||||
rv_transport = lv_transport_request.
|
||||
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.
|
||||
ELSE.
|
||||
rv_transport = zif_abapgit_definitions=>c_multiple_transports.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -470,8 +483,12 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
|
|||
WHERE object = ls_lock_key-obj
|
||||
AND hikey >= ls_lock_key-low
|
||||
AND lokey <= ls_lock_key-hi. "#EC PORTABLE
|
||||
lv_request = <ls_tlock>-trkorr.
|
||||
EXIT.
|
||||
IF lv_request IS INITIAL.
|
||||
lv_request = <ls_tlock>-trkorr.
|
||||
ELSE.
|
||||
lv_request = zif_abapgit_definitions=>c_multiple_transports.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ELSEIF is_object_type_transportable( <ls_item>-obj_type ) = abap_true.
|
||||
lv_request = get_current_transport_from_db(
|
||||
|
|
|
@ -5,19 +5,14 @@ CLASS zcl_abapgit_default_transport DEFINITION
|
|||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_default_transport.
|
||||
|
||||
METHODS
|
||||
constructor
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS constructor.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
DATA mv_is_set_by_abapgit TYPE abap_bool .
|
||||
DATA ms_save TYPE e070use .
|
||||
|
||||
METHODS store
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS store.
|
||||
METHODS restore
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
@ -35,7 +30,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_DEFAULT_TRANSPORT IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_default_transport IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clear.
|
||||
|
@ -116,7 +111,11 @@ CLASS ZCL_ABAPGIT_DEFAULT_TRANSPORT IMPLEMENTATION.
|
|||
|
||||
METHOD store.
|
||||
|
||||
ms_save = zif_abapgit_default_transport~get( ).
|
||||
TRY.
|
||||
ms_save = zif_abapgit_default_transport~get( ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
CLEAR ms_save.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_transport IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD add_all_objects_to_trans_req.
|
||||
|
@ -146,7 +146,7 @@ CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
|
|||
lt_objects TYPE scts_tadir,
|
||||
lt_objects_all LIKE lt_objects,
|
||||
ls_e071 LIKE LINE OF rt_objects,
|
||||
lo_repo TYPE REF TO zcl_abapgit_repo,
|
||||
li_repo TYPE REF TO zif_abapgit_repo,
|
||||
lv_package TYPE zif_abapgit_persistence=>ty_repo-package,
|
||||
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt.
|
||||
|
||||
|
@ -154,8 +154,8 @@ CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
|
|||
<lv_package> TYPE devclass,
|
||||
<ls_object> TYPE tadir.
|
||||
|
||||
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
lv_package = lo_repo->get_package( ).
|
||||
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
|
||||
lv_package = li_repo->get_package( ).
|
||||
lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ).
|
||||
INSERT lv_package INTO TABLE lt_packages.
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ CLASS zcl_abapgit_transport_2_branch DEFINITION
|
|||
|
||||
METHODS create
|
||||
IMPORTING
|
||||
!io_repository TYPE REF TO zcl_abapgit_repo_online
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
!is_transport_to_branch TYPE zif_abapgit_definitions=>ty_transport_to_branch
|
||||
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RAISING
|
||||
|
@ -46,13 +46,13 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
|
|||
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 ) ).
|
||||
|
||||
io_repository->create_branch( lv_branch_name ).
|
||||
ii_repo_online->create_branch( lv_branch_name ).
|
||||
|
||||
CREATE OBJECT lo_stage.
|
||||
|
||||
ls_stage_objects = zcl_abapgit_factory=>get_stage_logic( )->get( io_repository ).
|
||||
ls_stage_objects = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
|
||||
|
||||
lt_object_statuses = zcl_abapgit_repo_status=>calculate( io_repository ).
|
||||
lt_object_statuses = zcl_abapgit_repo_status=>calculate( ii_repo_online ).
|
||||
|
||||
stage_transport_objects(
|
||||
it_transport_objects = it_transport_objects
|
||||
|
@ -62,8 +62,8 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
|
|||
|
||||
ls_comment = generate_commit_message( is_transport_to_branch ).
|
||||
|
||||
io_repository->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
ii_repo_online->push( is_comment = ls_comment
|
||||
io_stage = lo_stage ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -38,9 +38,10 @@ CLASS zcl_abapgit_transport_objects IMPLEMENTATION.
|
|||
|
||||
LOOP AT mt_transport_objects INTO ls_transport_object.
|
||||
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
|
||||
AND obj_type = ls_transport_object-object
|
||||
AND NOT lstate IS INITIAL.
|
||||
AND NOT lstate IS INITIAL ##PRIMKEY[SEC_KEY].
|
||||
|
||||
CASE ls_object_status-lstate.
|
||||
WHEN zif_abapgit_definitions=>c_state-added OR zif_abapgit_definitions=>c_state-modified.
|
||||
|
|
|
@ -44,7 +44,7 @@ CLASS zcl_abapgit_data_deserializer DEFINITION
|
|||
zcx_abapgit_exception .
|
||||
METHODS determine_transport_request
|
||||
IMPORTING
|
||||
io_repo TYPE REF TO zcl_abapgit_repo
|
||||
ii_repo TYPE REF TO zif_abapgit_repo
|
||||
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
||||
RETURNING
|
||||
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.
|
||||
" If transport keeps empty here, it'll requested later via popup.
|
||||
rv_transport_request = io_repo->get_local_settings( )-customizing_request.
|
||||
rv_transport_request = ii_repo->get_local_settings( )-customizing_request.
|
||||
|
||||
li_exit->determine_transport_request(
|
||||
EXPORTING
|
||||
io_repo = io_repo
|
||||
ii_repo = ii_repo
|
||||
iv_transport_type = iv_transport_type
|
||||
CHANGING
|
||||
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-task = zif_abapgit_cts_api=>c_transport_type-cust_task.
|
||||
rs_checks-transport = determine_transport_request(
|
||||
io_repo = io_repo
|
||||
ii_repo = ii_repo
|
||||
iv_transport_type = rs_checks-type ).
|
||||
ENDIF.
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ INTERFACE zif_abapgit_data_deserializer
|
|||
|
||||
METHODS deserialize_check
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
!ii_config TYPE REF TO zif_abapgit_data_config
|
||||
RETURNING
|
||||
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks-customizing
|
||||
|
|
|
@ -411,19 +411,11 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
|||
METHOD is_import_allowed.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
DATA ls_clskey TYPE seoclskey.
|
||||
|
||||
ls_clskey-clsname = c_language_cfg.
|
||||
|
||||
" Tests using ABAP language version "standard" only work if the required
|
||||
" SAP class is available. In older releases, all packages will have
|
||||
" ABAP language version "undefined" and are handled like a new package
|
||||
CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK'
|
||||
EXPORTING
|
||||
clskey = ls_clskey
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
mv_has_language_cfg = boolc( sy-subrc = 0 ).
|
||||
mv_has_language_cfg = zcl_abapgit_oo_factory=>get_by_type( 'CLAS' )->exists( c_language_cfg ).
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
|
|
21
src/env/zcl_abapgit_env_factory.clas.abap
vendored
Normal file
21
src/env/zcl_abapgit_env_factory.clas.abap
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
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
Normal file
16
src/env/zcl_abapgit_env_factory.clas.xml
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_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
Normal file
14
src/env/zcl_abapgit_env_injector.clas.abap
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
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
Normal file
16
src/env/zcl_abapgit_env_injector.clas.xml
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_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>
|
200
src/env/zcl_abapgit_user_record.clas.abap
vendored
200
src/env/zcl_abapgit_user_record.clas.abap
vendored
|
@ -1,45 +1,26 @@
|
|||
CLASS zcl_abapgit_user_record DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PRIVATE.
|
||||
CREATE PRIVATE
|
||||
GLOBAL FRIENDS zcl_abapgit_env_factory.
|
||||
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS reset.
|
||||
CLASS-METHODS get_instance
|
||||
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.
|
||||
|
||||
INTERFACES zif_abapgit_user_record.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_user,
|
||||
user TYPE sy-uname,
|
||||
o_user TYPE REF TO zcl_abapgit_user_record,
|
||||
user TYPE sy-uname,
|
||||
name TYPE string,
|
||||
email TYPE string,
|
||||
END OF ty_user.
|
||||
|
||||
CLASS-DATA gt_user TYPE HASHED TABLE OF ty_user WITH UNIQUE KEY user.
|
||||
|
||||
DATA: BEGIN OF ms_user,
|
||||
name TYPE string,
|
||||
email TYPE string,
|
||||
END OF ms_user .
|
||||
|
||||
METHODS check_user_exists
|
||||
CLASS-METHODS check_user_exists
|
||||
IMPORTING
|
||||
iv_user TYPE sy-uname
|
||||
EXPORTING
|
||||
|
@ -48,35 +29,51 @@ CLASS zcl_abapgit_user_record DEFINITION
|
|||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS get_user_dtls_from_other_clnt
|
||||
CLASS-METHODS get_user_dtls_from_other_clnt
|
||||
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.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_USER_RECORD IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD get_title.
|
||||
* the queried username might not exist, so this method is static
|
||||
METHOD build_cache.
|
||||
|
||||
DATA ls_user_address TYPE addr3_val.
|
||||
" Get user details
|
||||
TRY.
|
||||
check_user_exists(
|
||||
EXPORTING
|
||||
iv_user = iv_user
|
||||
IMPORTING
|
||||
ev_fullname = rs_user-name
|
||||
ev_email = rs_user-email ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
" Could not find user, try to get from other clients
|
||||
rs_user = get_user_dtls_from_other_clnt( iv_user ).
|
||||
ENDTRY.
|
||||
|
||||
CALL FUNCTION 'SUSR_USER_ADDRESS_READ'
|
||||
EXPORTING
|
||||
user_name = iv_username
|
||||
IMPORTING
|
||||
user_address = ls_user_address
|
||||
EXCEPTIONS
|
||||
user_address_not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc = 0.
|
||||
rv_title = ls_user_address-name_text.
|
||||
ENDIF.
|
||||
rs_user-user = iv_user.
|
||||
INSERT rs_user INTO TABLE gt_user.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD check_user_exists.
|
||||
|
||||
DATA lt_return TYPE STANDARD TABLE OF bapiret2 WITH DEFAULT KEY.
|
||||
|
@ -109,63 +106,6 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
CONSTANTS lc_cc_category TYPE string VALUE 'C'.
|
||||
|
@ -179,7 +119,7 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
|||
ORDER BY PRIMARY KEY.
|
||||
|
||||
LOOP AT lt_dev_clients ASSIGNING <lv_dev_client>.
|
||||
SELECT SINGLE p~name_text a~smtp_addr INTO (ms_user-name, ms_user-email)
|
||||
SELECT SINGLE u~bname p~name_text a~smtp_addr INTO (rs_user-user, rs_user-name, rs_user-email)
|
||||
FROM usr21 AS u
|
||||
INNER JOIN adrp AS p ON p~persnumber = u~persnumber
|
||||
AND p~client = u~mandt
|
||||
|
@ -200,7 +140,61 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
|||
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.
|
||||
CLEAR gt_user.
|
||||
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.
|
||||
|
|
|
@ -16,10 +16,10 @@ ENDCLASS.
|
|||
CLASS ltcl_user_record IMPLEMENTATION.
|
||||
|
||||
METHOD test_invalid_user.
|
||||
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
||||
DATA li_user_record TYPE REF TO zif_abapgit_user_record.
|
||||
|
||||
zcl_abapgit_user_record=>reset( ).
|
||||
lo_user_record = zcl_abapgit_user_record=>get_instance( c_wrong_user ).
|
||||
li_user_record = zcl_abapgit_env_factory=>get_user_record( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 0
|
||||
|
|
21
src/env/zif_abapgit_user_record.intf.abap
vendored
Normal file
21
src/env/zif_abapgit_user_record.intf.abap
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
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
Normal file
15
src/env/zif_abapgit_user_record.intf.xml
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?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,8 +317,8 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
|
|||
TRY.
|
||||
gi_exit->determine_transport_request(
|
||||
EXPORTING
|
||||
io_repo = io_repo
|
||||
iv_transport_type = iv_transport_type
|
||||
ii_repo = ii_repo
|
||||
iv_transport_type = iv_transport_type
|
||||
CHANGING
|
||||
cv_transport_request = cv_transport_request ).
|
||||
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
|
||||
|
@ -328,6 +328,18 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
IF gi_exit IS NOT INITIAL.
|
||||
|
@ -440,9 +452,9 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
|
|||
IF gi_exit IS NOT INITIAL.
|
||||
TRY.
|
||||
gi_exit->validate_before_push(
|
||||
is_comment = is_comment
|
||||
io_stage = io_stage
|
||||
io_repo = io_repo ).
|
||||
is_comment = is_comment
|
||||
io_stage = io_stage
|
||||
ii_repo_online = ii_repo_online ).
|
||||
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
INTERFACE zif_abapgit_exit PUBLIC.
|
||||
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_ci_repo,
|
||||
name TYPE string,
|
||||
clone_url TYPE string,
|
||||
END OF ty_ci_repo.
|
||||
TYPES:
|
||||
ty_ci_repos TYPE STANDARD TABLE OF ty_ci_repo WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
ty_object_types TYPE STANDARD TABLE OF tadir-object WITH DEFAULT KEY.
|
||||
|
||||
TYPES ty_ci_repos TYPE STANDARD TABLE OF ty_ci_repo WITH DEFAULT KEY.
|
||||
|
||||
TYPES ty_object_types TYPE HASHED TABLE OF tadir-object WITH UNIQUE KEY table_line.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_class_key,
|
||||
clsname TYPE abap_classname,
|
||||
|
@ -25,47 +25,58 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
!cv_display_url TYPE csequence
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS adjust_display_filename
|
||||
IMPORTING
|
||||
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
||||
!iv_filename TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_filename) TYPE string.
|
||||
|
||||
METHODS allow_sap_objects
|
||||
RETURNING
|
||||
VALUE(rv_allowed) TYPE abap_bool.
|
||||
|
||||
METHODS change_local_host
|
||||
CHANGING
|
||||
!ct_hosts TYPE zif_abapgit_definitions=>ty_string_tt.
|
||||
|
||||
METHODS change_max_parallel_processes
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
CHANGING
|
||||
!cv_max_processes TYPE i.
|
||||
|
||||
METHODS change_proxy_authentication
|
||||
IMPORTING
|
||||
!iv_repo_url TYPE csequence
|
||||
CHANGING
|
||||
!cv_proxy_authentication TYPE abap_bool.
|
||||
|
||||
METHODS change_proxy_port
|
||||
IMPORTING
|
||||
!iv_repo_url TYPE csequence
|
||||
CHANGING
|
||||
!cv_proxy_port TYPE string.
|
||||
|
||||
METHODS change_proxy_url
|
||||
IMPORTING
|
||||
!iv_repo_url TYPE csequence
|
||||
CHANGING
|
||||
!cv_proxy_url TYPE string.
|
||||
|
||||
METHODS change_rfc_server_group
|
||||
CHANGING
|
||||
!cv_group TYPE rzlli_apcl.
|
||||
|
||||
METHODS change_supported_data_objects
|
||||
CHANGING
|
||||
!ct_objects TYPE zif_abapgit_data_supporter=>ty_objects.
|
||||
|
||||
METHODS change_supported_object_types
|
||||
CHANGING
|
||||
!ct_types TYPE ty_object_types.
|
||||
|
||||
METHODS change_tadir
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
|
@ -75,6 +86,7 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
|
||||
CHANGING
|
||||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
||||
|
||||
METHODS create_http_client
|
||||
IMPORTING
|
||||
!iv_url TYPE string
|
||||
|
@ -82,6 +94,7 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
VALUE(ri_client) TYPE REF TO if_http_client
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS custom_serialize_abap_clif
|
||||
IMPORTING
|
||||
!is_class_key TYPE ty_class_key
|
||||
|
@ -90,33 +103,44 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS deserialize_postprocess
|
||||
IMPORTING
|
||||
!is_step TYPE zif_abapgit_objects=>ty_step_data
|
||||
!ii_log TYPE REF TO zif_abapgit_log.
|
||||
|
||||
METHODS determine_transport_request
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
!iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
||||
CHANGING
|
||||
!cv_transport_request TYPE trkorr.
|
||||
|
||||
METHODS enhance_any_toolbar
|
||||
IMPORTING
|
||||
!io_menu TYPE REF TO zcl_abapgit_html_toolbar.
|
||||
|
||||
METHODS enhance_repo_toolbar
|
||||
IMPORTING
|
||||
!io_menu TYPE REF TO zcl_abapgit_html_toolbar
|
||||
!iv_key TYPE zif_abapgit_persistence=>ty_value
|
||||
!iv_act TYPE string.
|
||||
|
||||
METHODS get_ci_tests
|
||||
IMPORTING
|
||||
!iv_object TYPE tadir-object
|
||||
CHANGING
|
||||
!ct_ci_repos TYPE ty_ci_repos.
|
||||
|
||||
METHODS get_ssl_id
|
||||
RETURNING
|
||||
VALUE(rv_ssl_id) TYPE ssfapplssl.
|
||||
|
||||
METHODS http_client
|
||||
IMPORTING
|
||||
!iv_url TYPE string
|
||||
!ii_client TYPE REF TO if_http_client.
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING
|
||||
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||
|
@ -124,6 +148,7 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS pre_calculate_repo_status
|
||||
IMPORTING
|
||||
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
||||
|
@ -132,22 +157,26 @@ INTERFACE zif_abapgit_exit PUBLIC.
|
|||
!ct_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS serialize_postprocess
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!ii_log TYPE REF TO zif_abapgit_log
|
||||
CHANGING
|
||||
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt.
|
||||
|
||||
METHODS validate_before_push
|
||||
IMPORTING
|
||||
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
|
||||
!io_stage TYPE REF TO zcl_abapgit_stage
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
|
||||
!io_stage TYPE REF TO zcl_abapgit_stage
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS wall_message_list
|
||||
IMPORTING
|
||||
!ii_html TYPE REF TO zif_abapgit_html.
|
||||
|
||||
METHODS wall_message_repo
|
||||
IMPORTING
|
||||
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
|
||||
|
|
|
@ -7,9 +7,9 @@ CLASS zcl_abapgit_git_url DEFINITION
|
|||
|
||||
METHODS get_commit_display_url
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo_online
|
||||
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
|
||||
RETURNING
|
||||
VALUE(rv_url) TYPE string
|
||||
VALUE(rv_url) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
|
@ -40,18 +40,21 @@ CLASS zcl_abapgit_git_url IMPLEMENTATION.
|
|||
METHOD get_commit_display_url.
|
||||
|
||||
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(
|
||||
iv_repo_url = io_repo->get_url( )
|
||||
iv_hash = io_repo->get_current_remote( ) ).
|
||||
iv_repo_url = ii_repo_online->get_url( )
|
||||
iv_hash = ii_repo_online->get_current_remote( ) ).
|
||||
|
||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||
li_exit->adjust_display_commit_url(
|
||||
EXPORTING
|
||||
iv_repo_url = io_repo->get_url( )
|
||||
iv_repo_name = io_repo->get_name( )
|
||||
iv_repo_key = io_repo->get_key( )
|
||||
iv_commit_hash = io_repo->get_current_remote( )
|
||||
iv_repo_url = ii_repo_online->get_url( )
|
||||
iv_repo_name = li_repo->get_name( )
|
||||
iv_repo_key = li_repo->get_key( )
|
||||
iv_commit_hash = ii_repo_online->get_current_remote( )
|
||||
CHANGING
|
||||
cv_display_url = rv_url ).
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ CLASS zcl_abapgit_pr_enumerator IMPLEMENTATION.
|
|||
DATA lv_user TYPE string.
|
||||
DATA lv_repo TYPE string.
|
||||
|
||||
li_agent = zcl_abapgit_factory=>get_http_agent( ).
|
||||
li_agent = zcl_abapgit_http_agent=>create( ).
|
||||
|
||||
FIND ALL OCCURRENCES OF REGEX 'github\.com\/([^\/]+)\/([^\/]+)'
|
||||
IN iv_repo_url
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS zcl_abapgit_code_inspector DEFINITION
|
||||
PUBLIC
|
||||
CREATE PROTECTED
|
||||
GLOBAL FRIENDS zcl_abapgit_factory .
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -13,6 +12,19 @@ CLASS zcl_abapgit_code_inspector DEFINITION
|
|||
RAISING
|
||||
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.
|
||||
DATA mv_package TYPE devclass .
|
||||
|
||||
|
@ -35,6 +47,15 @@ CLASS zcl_abapgit_code_inspector DEFINITION
|
|||
VALUE(rv_skip) TYPE abap_bool.
|
||||
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_summary TYPE string.
|
||||
|
||||
|
@ -266,6 +287,28 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
io_inspection->run(
|
||||
|
@ -290,6 +333,24 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
DATA ls_program_type TYPE subc.
|
||||
|
|
|
@ -848,6 +848,8 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
DATA lv_path_pattern TYPE string.
|
||||
|
||||
CREATE OBJECT lo_section.
|
||||
lo_section->mi_custom_mapping = mi_custom_mapping.
|
||||
|
||||
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
||||
lv_path_len = strlen( lv_normalized_path ).
|
||||
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
||||
|
|
|
@ -72,7 +72,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
LOOP AT it_skip_paths INTO lv_s.
|
||||
lv_s = to_lower( lv_s ).
|
||||
lv_s = condense( lv_s ).
|
||||
APPEND lv_s TO lt_tab.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -83,7 +83,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
|||
DELETE lt_tab INDEX sy-tabix.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
<s> = condense( to_lower( <s> ) ).
|
||||
<s> = condense( <s> ).
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ CLASS ltcl_filters_test DEFINITION FINAL
|
|||
METHODS path_filter_w_patterns 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 mixed_case_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -227,4 +228,36 @@ CLASS ltcl_filters_test IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
|
|
@ -358,6 +358,7 @@ CLASS ltcl_fields DEFINITION FINAL FOR TESTING
|
|||
to_json_without_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_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.
|
||||
|
||||
|
||||
|
@ -403,6 +404,33 @@ CLASS ltcl_fields IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
INTERFACE zif_abapgit_ajson
|
||||
PUBLIC.
|
||||
|
||||
CONSTANTS version TYPE string VALUE 'v1.1.10'. "#EC NOTEXT
|
||||
CONSTANTS version TYPE string VALUE 'v1.1.11'. "#EC NOTEXT
|
||||
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
|
||||
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION.
|
|||
register( 'CHKC' ).
|
||||
register( 'CHKO' ).
|
||||
register( 'CHKV' ).
|
||||
register( 'COTA' ).
|
||||
register( 'DRTY' ).
|
||||
register( 'DTEB' ).
|
||||
register( 'DSFI' ).
|
||||
|
|
|
@ -30,7 +30,7 @@ CLASS zcl_abapgit_object_common_aff DEFINITION
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
TYPES: BEGIN OF ty_extension_mapper_pair,
|
||||
|
@ -106,7 +106,7 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
IF lv_is_supported IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |Object type { is_item-obj_type } is not supported by this system| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -228,39 +228,40 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
|
||||
RECEIVING
|
||||
result = lv_act_setting_abap_lv.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected ABAP language version in settings'
|
||||
act = lv_act_setting_abap_lv
|
||||
exp = iv_exp_setting_abap_lv ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_VERSION')
|
||||
RECEIVING
|
||||
result = lv_act_setting_version.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Version in settings'
|
||||
act = lv_act_setting_version
|
||||
exp = 'A' ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_LANGUAGE')
|
||||
RECEIVING
|
||||
result = lv_act_setting_language.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Language in settings'
|
||||
act = lv_act_setting_language
|
||||
exp = 'E' ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_USER')
|
||||
RECEIVING
|
||||
result = lv_act_setting_user.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected User in settings'
|
||||
act = lv_act_setting_user
|
||||
exp = sy-uname ).
|
||||
|
||||
CATCH cx_root.
|
||||
" System doesn't support AFF with ABAP language version
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
|
||||
RECEIVING
|
||||
result = lv_act_setting_abap_lv.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected ABAP language version in settings'
|
||||
act = lv_act_setting_abap_lv
|
||||
exp = iv_exp_setting_abap_lv ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_VERSION')
|
||||
RECEIVING
|
||||
result = lv_act_setting_version.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Version in settings'
|
||||
act = lv_act_setting_version
|
||||
exp = 'A' ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_LANGUAGE')
|
||||
RECEIVING
|
||||
result = lv_act_setting_language.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Language in settings'
|
||||
act = lv_act_setting_language
|
||||
exp = 'E' ).
|
||||
|
||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_USER')
|
||||
RECEIVING
|
||||
result = lv_act_setting_user.
|
||||
cl_abap_unit_assert=>assert_equals( msg = 'Unexpected User in settings'
|
||||
act = lv_act_setting_user
|
||||
exp = sy-uname ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD abap_language_version_standard.
|
||||
|
|
46
src/objects/aff/zcl_abapgit_object_cota.clas.abap
Normal file
46
src/objects/aff/zcl_abapgit_object_cota.clas.abap
Normal file
|
@ -0,0 +1,46 @@
|
|||
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.
|
16
src/objects/aff/zcl_abapgit_object_cota.clas.xml
Normal file
16
src/objects/aff/zcl_abapgit_object_cota.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_OBJECT_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>
|
|
@ -6,13 +6,44 @@ CLASS zcl_abapgit_object_smbc DEFINITION
|
|||
|
||||
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_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.
|
||||
|
@ -24,15 +55,12 @@ CLASS ZCL_ABAPGIT_OBJECT_SMBC IMPLEMENTATION.
|
|||
|
||||
FIELD-SYMBOLS: <ls_smbc_config> TYPE any,
|
||||
<lv_smbc_changed_by> TYPE any.
|
||||
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').
|
||||
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.
|
||||
|
||||
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').
|
||||
ASSIGN lr_data->* TO <ls_smbc_config>.
|
||||
|
||||
lv_technical_id = ms_item-obj_name.
|
||||
CALL METHOD lo_db_api->('IF_MBC_BUSINESS_CONFIG_DB~READ')
|
||||
EXPORTING
|
||||
|
|
|
@ -8,13 +8,44 @@ CLASS zcl_abapgit_object_uiad DEFINITION
|
|||
|
||||
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.
|
||||
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.
|
||||
|
@ -27,16 +58,11 @@ CLASS ZCL_ABAPGIT_OBJECT_UIAD IMPLEMENTATION.
|
|||
FIELD-SYMBOLS: <ls_metadata> TYPE any,
|
||||
<lv_changed_by> TYPE any.
|
||||
|
||||
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').
|
||||
ASSIGN lr_data->* TO <ls_metadata>.
|
||||
CATCH cx_sy_create_object_error
|
||||
cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( 'Object UIAD not supported' ).
|
||||
ENDTRY.
|
||||
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.
|
||||
|
@ -46,7 +72,7 @@ CLASS ZCL_ABAPGIT_OBJECT_UIAD IMPLEMENTATION.
|
|||
iv_version = 'A'
|
||||
iv_language = mv_language
|
||||
RECEIVING
|
||||
rs_metadata = <ls_metadata>.
|
||||
rs_metadata = <ls_metadata>.
|
||||
|
||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <ls_metadata> TO <lv_changed_by>.
|
||||
rv_user = <lv_changed_by>.
|
||||
|
|
|
@ -8,13 +8,44 @@ CLASS zcl_abapgit_object_uipg DEFINITION
|
|||
|
||||
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_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.
|
||||
|
|
|
@ -8,13 +8,42 @@ CLASS zcl_abapgit_object_uist DEFINITION
|
|||
|
||||
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_UIST IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_uist 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.
|
||||
CREATE OBJECT lo_db_api TYPE ('/UI2/CL_UIST_SVAL_SQL').
|
||||
CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
|
||||
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.
|
||||
|
|
|
@ -75,6 +75,10 @@ CLASS ltcl_sap_package IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~get. "##needed
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~exists. "##needed
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -6,7 +6,7 @@ CLASS zcl_abapgit_file_deserialize DEFINITION
|
|||
|
||||
CLASS-METHODS get_results
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
|
||||
RETURNING
|
||||
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt
|
||||
|
@ -139,7 +139,7 @@ CLASS zcl_abapgit_file_deserialize IMPLEMENTATION.
|
|||
DATA lt_results TYPE zif_abapgit_definitions=>ty_results_tt.
|
||||
|
||||
lt_results = filter_files_to_deserialize(
|
||||
it_results = zcl_abapgit_repo_status=>calculate( io_repo )
|
||||
it_results = zcl_abapgit_repo_status=>calculate( ii_repo )
|
||||
ii_log = ii_log ).
|
||||
|
||||
rt_results = prioritize_deser(
|
||||
|
|
|
@ -92,6 +92,10 @@ CLASS ltcl_folder_logic_package IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~get.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~exists.
|
||||
rv_bool = abap_true.
|
||||
ENDMETHOD.
|
||||
|
@ -183,6 +187,10 @@ CLASS ltcl_folder_logic IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~get.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~exists.
|
||||
rv_bool = abap_true.
|
||||
ENDMETHOD.
|
||||
|
@ -401,6 +409,10 @@ CLASS ltcl_folder_logic_namespaces IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~get.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~exists.
|
||||
rv_bool = abap_true.
|
||||
ENDMETHOD.
|
||||
|
@ -536,6 +548,10 @@ CLASS ltcl_folder_logic_no_parent IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~get.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_sap_package~exists.
|
||||
rv_bool = abap_true.
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -6,7 +6,7 @@ CLASS zcl_abapgit_objects_check DEFINITION
|
|||
|
||||
CLASS-METHODS deserialize_checks
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
RETURNING
|
||||
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
|
||||
RAISING
|
||||
|
@ -14,7 +14,7 @@ CLASS zcl_abapgit_objects_check DEFINITION
|
|||
CLASS-METHODS class_constructor.
|
||||
CLASS-METHODS checks_adjust
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
|
||||
CHANGING
|
||||
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
|
||||
|
@ -39,7 +39,7 @@ CLASS zcl_abapgit_objects_check DEFINITION
|
|||
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt.
|
||||
CLASS-METHODS warning_package_adjust
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
!it_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
|
||||
CHANGING
|
||||
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
|
||||
|
@ -48,14 +48,14 @@ CLASS zcl_abapgit_objects_check DEFINITION
|
|||
CLASS-METHODS warning_package_find
|
||||
IMPORTING
|
||||
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
|
||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||
!ii_repo TYPE REF TO zif_abapgit_repo
|
||||
RETURNING
|
||||
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
CLASS-METHODS determine_transport_request
|
||||
IMPORTING
|
||||
io_repo TYPE REF TO zcl_abapgit_repo
|
||||
ii_repo TYPE REF TO zif_abapgit_repo
|
||||
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
|
||||
RETURNING
|
||||
VALUE(rv_transport_request) TYPE trkorr.
|
||||
|
@ -81,7 +81,7 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
|
|||
|
||||
warning_package_adjust(
|
||||
EXPORTING
|
||||
io_repo = io_repo
|
||||
ii_repo = ii_repo
|
||||
it_overwrite = is_checks-warning_package
|
||||
CHANGING
|
||||
ct_results = ct_results ).
|
||||
|
@ -134,23 +134,23 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
|
|||
li_package TYPE REF TO zif_abapgit_sap_package.
|
||||
|
||||
" get unfiltered status to evaluate properly which warnings are required
|
||||
lt_results = zcl_abapgit_repo_status=>calculate( io_repo ).
|
||||
lt_results = zcl_abapgit_repo_status=>calculate( ii_repo ).
|
||||
|
||||
check_multiple_files( lt_results ).
|
||||
|
||||
rs_checks-overwrite = warning_overwrite_find( lt_results ).
|
||||
|
||||
rs_checks-warning_package = warning_package_find(
|
||||
io_repo = io_repo
|
||||
ii_repo = ii_repo
|
||||
it_results = lt_results ).
|
||||
|
||||
IF lines( lt_results ) > 0.
|
||||
li_package = zcl_abapgit_factory=>get_sap_package( io_repo->get_package( ) ).
|
||||
li_package = zcl_abapgit_factory=>get_sap_package( ii_repo->get_package( ) ).
|
||||
rs_checks-transport-required = li_package->are_changes_recorded_in_tr_req( ).
|
||||
IF NOT rs_checks-transport-required IS INITIAL.
|
||||
rs_checks-transport-type = li_package->get_transport_type( ).
|
||||
rs_checks-transport-transport = determine_transport_request(
|
||||
io_repo = io_repo
|
||||
ii_repo = ii_repo
|
||||
iv_transport_type = rs_checks-transport-type ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
@ -162,11 +162,11 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
|
|||
|
||||
" Use transport from repo settings if maintained, or determine via user exit.
|
||||
" If transport keeps empty here, it'll requested later via popup.
|
||||
rv_transport_request = io_repo->get_local_settings( )-transport_request.
|
||||
rv_transport_request = ii_repo->get_local_settings( )-transport_request.
|
||||
|
||||
gi_exit->determine_transport_request(
|
||||
EXPORTING
|
||||
io_repo = io_repo
|
||||
ii_repo = ii_repo
|
||||
iv_transport_type = iv_transport_type
|
||||
CHANGING
|
||||
cv_transport_request = rv_transport_request ).
|
||||
|
@ -310,7 +310,7 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
|
|||
* make sure to get the current status, as something might have changed in the meanwhile
|
||||
lt_overwrite = warning_package_find(
|
||||
it_results = ct_results
|
||||
io_repo = io_repo ).
|
||||
ii_repo = ii_repo ).
|
||||
|
||||
LOOP AT lt_overwrite ASSIGNING <ls_overwrite>.
|
||||
|
||||
|
@ -351,8 +351,8 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
|
|||
LOOP AT it_results ASSIGNING <ls_result> WHERE match IS INITIAL AND packmove IS INITIAL.
|
||||
|
||||
lv_package = lo_folder_logic->path_to_package(
|
||||
iv_top = io_repo->get_package( )
|
||||
io_dot = io_repo->get_dot_abapgit( )
|
||||
iv_top = ii_repo->get_package( )
|
||||
io_dot = ii_repo->get_dot_abapgit( )
|
||||
iv_path = <ls_result>-path
|
||||
iv_create_if_not_exists = abap_false ).
|
||||
|
||||
|
|
|
@ -128,6 +128,12 @@ CLASS zcl_abapgit_serialize DEFINITION
|
|||
RETURNING
|
||||
VALUE(rv_result) TYPE abap_bool.
|
||||
|
||||
METHODS is_no_parallel
|
||||
IMPORTING
|
||||
!iv_object_type TYPE tadir-object
|
||||
RETURNING
|
||||
VALUE(rv_result) TYPE abap_bool.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -272,9 +278,11 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
ms_i18n_params-main_language_only = is_local_settings-main_language_only.
|
||||
ENDIF.
|
||||
|
||||
CREATE OBJECT mo_abap_language_version
|
||||
EXPORTING
|
||||
io_dot_abapgit = mo_dot_abapgit.
|
||||
IF mo_dot_abapgit IS NOT INITIAL.
|
||||
CREATE OBJECT mo_abap_language_version
|
||||
EXPORTING
|
||||
io_dot_abapgit = mo_dot_abapgit.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -312,6 +320,21 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
|
||||
ASSERT rv_processes >= 1.
|
||||
|
||||
" Avoid going over the maximum available user sessions
|
||||
IF sy-batch IS INITIAL.
|
||||
lv_available_sessions = zcl_abapgit_factory=>get_environment( )->get_available_user_sessions( ).
|
||||
|
||||
IF lv_available_sessions = 0.
|
||||
" No available session -> disable parallel processing
|
||||
rv_processes = 1.
|
||||
ELSEIF rv_processes > lv_available_sessions.
|
||||
rv_processes = lv_available_sessions.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ASSERT rv_processes >= 1.
|
||||
|
||||
" Exit setting has highest priority to change maximum sessions
|
||||
li_exit = zcl_abapgit_exit=>get_instance( ).
|
||||
li_exit->change_max_parallel_processes(
|
||||
EXPORTING
|
||||
|
@ -319,17 +342,6 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
CHANGING
|
||||
cv_max_processes = rv_processes ).
|
||||
|
||||
ASSERT rv_processes >= 1. " check exit above
|
||||
|
||||
" Avoid going over the maximum available user sessions
|
||||
IF sy-batch IS INITIAL.
|
||||
lv_available_sessions = zcl_abapgit_factory=>get_environment( )->get_available_user_sessions( ).
|
||||
|
||||
IF rv_processes > lv_available_sessions AND lv_available_sessions <> 0.
|
||||
rv_processes = lv_available_sessions.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ASSERT rv_processes >= 1.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -515,6 +527,18 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD is_no_parallel.
|
||||
|
||||
" Currently know object types that do not support parallel processing:
|
||||
" ECTC/ECTD - ECATT Test Config/Data (see #7148)
|
||||
" Should this list become longer, it should become a flag of the object type serializer
|
||||
IF iv_object_type = 'ECTC' OR iv_object_type = 'ECTD'.
|
||||
rv_result = abap_true.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD is_parallelization_possible.
|
||||
|
||||
rv_result = boolc( zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_false
|
||||
|
@ -684,7 +708,7 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
|||
iv_count = lv_count )->start( ).
|
||||
|
||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||
IF lv_max = 1.
|
||||
IF lv_max = 1 OR is_no_parallel( <ls_tadir>-object ) = abap_true.
|
||||
li_progress->show(
|
||||
iv_current = sy-tabix
|
||||
iv_text = |Serialize { <ls_tadir>-obj_name }, { lv_max } thread| ).
|
||||
|
|
|
@ -84,7 +84,7 @@ CLASS ltd_environment DEFINITION FINAL FOR TESTING
|
|||
DATA:
|
||||
mv_group TYPE rzlli_apcl,
|
||||
mv_is_merged TYPE abap_bool,
|
||||
mv_available_sessions TYPE i,
|
||||
mv_available_sessions TYPE i VALUE 6, " system default
|
||||
mv_free_work_processes TYPE i.
|
||||
|
||||
ENDCLASS.
|
||||
|
@ -231,6 +231,9 @@ CLASS ltd_exit IMPLEMENTATION.
|
|||
METHOD zif_abapgit_exit~determine_transport_request.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_exit~enhance_any_toolbar.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_exit~enhance_repo_toolbar.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -392,10 +395,12 @@ CLASS ltcl_determine_max_processes DEFINITION FOR TESTING DURATION SHORT RISK LE
|
|||
|
||||
determine_max_processes_free FOR TESTING RAISING zcx_abapgit_exception,
|
||||
det_max_processes_not_free FOR TESTING RAISING zcx_abapgit_exception,
|
||||
det_max_proc_none_available FOR TESTING RAISING zcx_abapgit_exception,
|
||||
det_max_proc_amdahls_law FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_no_pp FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_merged FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_exit FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_proc_exit_lower FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_proc_exit_higher FOR TESTING RAISING zcx_abapgit_exception,
|
||||
determine_max_processes_capped FOR TESTING RAISING zcx_abapgit_exception,
|
||||
force FOR TESTING RAISING zcx_abapgit_exception,
|
||||
|
||||
|
@ -457,19 +462,18 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD teardown.
|
||||
|
||||
CLEAR: mo_cut->gv_max_processes.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD determine_max_processes_free.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
given_is_merged( abap_false ).
|
||||
given_free_work_processes( 10 ).
|
||||
given_available_sessions( 10 ).
|
||||
|
||||
when_determine_max_processes( ).
|
||||
|
||||
|
@ -477,7 +481,6 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD det_max_processes_not_free.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
|
@ -490,12 +493,25 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD det_max_proc_none_available.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
given_is_merged( abap_false ).
|
||||
given_free_work_processes( 10 ).
|
||||
given_available_sessions( 0 ).
|
||||
|
||||
when_determine_max_processes( ).
|
||||
|
||||
then_we_shd_have_n_processes( 1 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD det_max_proc_amdahls_law.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
given_is_merged( abap_false ).
|
||||
given_free_work_processes( 50 ).
|
||||
given_available_sessions( 50 ).
|
||||
|
||||
when_determine_max_processes( ).
|
||||
|
||||
|
@ -503,7 +519,6 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD determine_max_processes_no_pp.
|
||||
|
||||
given_parallel_proc_disabled( abap_true ).
|
||||
|
@ -515,7 +530,6 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD determine_max_processes_merged.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
|
@ -527,8 +541,10 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD determine_max_proc_exit_lower.
|
||||
|
||||
METHOD determine_max_processes_exit.
|
||||
given_free_work_processes( 26 ).
|
||||
given_available_sessions( 11 ).
|
||||
|
||||
given_exit_chg_max_processes( 7 ).
|
||||
when_determine_max_processes( ).
|
||||
|
@ -536,6 +552,17 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD determine_max_proc_exit_higher.
|
||||
|
||||
given_free_work_processes( 20 ).
|
||||
given_available_sessions( 15 ).
|
||||
|
||||
given_exit_chg_max_processes( 30 ).
|
||||
when_determine_max_processes( ).
|
||||
then_we_shd_have_n_processes( 30 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD determine_max_processes_capped.
|
||||
|
||||
given_parallel_proc_disabled( abap_false ).
|
||||
|
@ -549,7 +576,6 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD force.
|
||||
|
||||
when_determine_max_processes( abap_true ).
|
||||
|
@ -558,14 +584,12 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD given_parallel_proc_disabled.
|
||||
|
||||
mo_settings_double->set_parallel_proc_disabled( iv_parallel_proc_disabled ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD given_is_merged.
|
||||
|
||||
mo_environment_double->set_is_merged( iv_is_merged ).
|
||||
|
@ -578,14 +602,12 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD given_free_work_processes.
|
||||
|
||||
mo_environment_double->set_free_work_processes( iv_free_work_processes ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD when_determine_max_processes.
|
||||
|
||||
mv_act_processes = mo_cut->determine_max_processes(
|
||||
|
@ -594,7 +616,6 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD then_we_shd_have_n_processes.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -603,7 +624,6 @@ CLASS ltcl_determine_max_processes IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD given_exit_chg_max_processes.
|
||||
|
||||
mo_exit->set_max_parallel_processes( iv_max_processes ).
|
||||
|
@ -683,7 +703,6 @@ CLASS ltcl_serialize IMPLEMENTATION.
|
|||
|
||||
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF lt_tadir.
|
||||
|
||||
|
||||
APPEND INITIAL LINE TO lt_tadir ASSIGNING <ls_tadir>.
|
||||
<ls_tadir>-object = 'ABCD'.
|
||||
<ls_tadir>-obj_name = 'OBJECT'.
|
||||
|
@ -791,7 +810,6 @@ CLASS ltcl_i18n DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
|||
setup,
|
||||
test FOR TESTING RAISING zcx_abapgit_exception.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -868,4 +886,5 @@ CLASS ltcl_i18n IMPLEMENTATION.
|
|||
cl_abap_unit_assert=>assert_subrc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -6,7 +6,7 @@ CLASS zcl_abapgit_object_enhs_hook_d DEFINITION PUBLIC.
|
|||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
TYPES: BEGIN OF ty_hook_defifnition,
|
||||
pgmid TYPE pgmid,
|
||||
pgmid TYPE tadir-pgmid,
|
||||
obj_name TYPE trobj_name,
|
||||
obj_type TYPE trobjtype,
|
||||
main_type TYPE trobjtype,
|
||||
|
|
|
@ -229,7 +229,6 @@ CLASS zcl_abapgit_gui_jumper IMPLEMENTATION.
|
|||
DATA lv_save_sy_langu TYPE sy-langu.
|
||||
DATA lv_subrc TYPE syst-subrc.
|
||||
DATA lv_tcode TYPE tcode.
|
||||
DATA lv_langu_text TYPE string.
|
||||
DATA lv_msg TYPE c LENGTH 200.
|
||||
|
||||
" https://blogs.sap.com/2017/01/13/logon-language-sy-langu-and-rfc/
|
||||
|
@ -264,11 +263,7 @@ CLASS zcl_abapgit_gui_jumper IMPLEMENTATION.
|
|||
WHEN 1.
|
||||
lv_msg = |Communication error { lv_msg }|.
|
||||
WHEN 2.
|
||||
SELECT SINGLE sptxt FROM t002t INTO lv_langu_text WHERE spras = sy-langu AND sprsl = iv_language.
|
||||
IF sy-subrc <> 0.
|
||||
lv_langu_text = iv_language.
|
||||
ENDIF.
|
||||
lv_msg = |Language { lv_langu_text } ({ zcl_abapgit_convert=>language_sap1_to_sap2( iv_language ) })|
|
||||
lv_msg = |Language { iv_language } ({ zcl_abapgit_convert=>language_sap1_to_text( iv_language ) })|
|
||||
&& | is not installed|.
|
||||
WHEN 3.
|
||||
lv_msg = |{ lv_subrc }|.
|
||||
|
|
|
@ -796,9 +796,11 @@ CLASS zcl_abapgit_oo_class IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~exists.
|
||||
DATA ls_object_name TYPE seoclskey.
|
||||
ls_object_name = iv_object_name.
|
||||
CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK'
|
||||
EXPORTING
|
||||
clskey = is_object_name
|
||||
clskey = ls_object_name
|
||||
EXCEPTIONS
|
||||
not_specified = 1
|
||||
not_existing = 2
|
||||
|
|
|
@ -16,11 +16,14 @@ CLASS zcl_abapgit_oo_factory DEFINITION PUBLIC.
|
|||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_oo_factory IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_OO_FACTORY IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD get_by_type.
|
||||
IF iv_object_type = 'CLAS'.
|
||||
|
@ -41,13 +44,13 @@ CLASS zcl_abapgit_oo_factory IMPLEMENTATION.
|
|||
ls_object_name-clsname = to_upper( iv_object_name ).
|
||||
|
||||
CREATE OBJECT li_class TYPE zcl_abapgit_oo_class.
|
||||
IF li_class->exists( ls_object_name ) = abap_true.
|
||||
IF li_class->exists( ls_object_name-clsname ) = abap_true.
|
||||
ri_object_oriented_object = li_class.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CREATE OBJECT li_interface TYPE zcl_abapgit_oo_interface.
|
||||
IF li_interface->exists( ls_object_name ) = abap_true.
|
||||
IF li_interface->exists( ls_object_name-clsname ) = abap_true.
|
||||
ri_object_oriented_object = li_interface.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -55,5 +58,4 @@ CLASS zcl_abapgit_oo_factory IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( |{ iv_object_name } is neither a class nor an interface| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -291,9 +291,11 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~exists.
|
||||
DATA ls_object_name TYPE seoclskey.
|
||||
ls_object_name = iv_object_name.
|
||||
CALL FUNCTION 'SEO_INTERFACE_EXISTENCE_CHECK'
|
||||
EXPORTING
|
||||
intkey = is_object_name
|
||||
intkey = ls_object_name
|
||||
EXCEPTIONS
|
||||
not_specified = 1
|
||||
not_existing = 2
|
||||
|
|
|
@ -119,7 +119,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
zcx_abapgit_exception,
|
||||
exists
|
||||
IMPORTING
|
||||
is_object_name TYPE seoclskey
|
||||
iv_object_name TYPE seoclsname
|
||||
RETURNING
|
||||
VALUE(rv_exists) TYPE abap_bool,
|
||||
serialize_abap
|
||||
|
|
|
@ -10,8 +10,10 @@ CLASS zcl_abapgit_field_rules DEFINITION
|
|||
CLASS-METHODS create
|
||||
RETURNING
|
||||
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_item,
|
||||
tabname TYPE tabname,
|
||||
|
@ -24,10 +26,12 @@ CLASS zcl_abapgit_field_rules DEFINITION
|
|||
|
||||
METHODS fill_value
|
||||
IMPORTING
|
||||
iv_rule TYPE zif_abapgit_field_rules=>ty_fill_rule
|
||||
iv_package TYPE devclass
|
||||
iv_rule TYPE zif_abapgit_field_rules=>ty_fill_rule
|
||||
iv_package TYPE devclass
|
||||
iv_abap_language_version TYPE uccheck OPTIONAL
|
||||
CHANGING
|
||||
cv_value TYPE any.
|
||||
cv_value TYPE any.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -56,6 +60,8 @@ CLASS zcl_abapgit_field_rules IMPLEMENTATION.
|
|||
cv_value = sy-mandt.
|
||||
WHEN zif_abapgit_field_rules=>c_fill_rule-package.
|
||||
cv_value = iv_package.
|
||||
WHEN zif_abapgit_field_rules=>c_fill_rule-abap_language_version.
|
||||
cv_value = iv_abap_language_version.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -109,10 +115,11 @@ CLASS zcl_abapgit_field_rules IMPLEMENTATION.
|
|||
IF sy-subrc = 0.
|
||||
fill_value(
|
||||
EXPORTING
|
||||
iv_rule = ls_item-fill_rule
|
||||
iv_package = iv_package
|
||||
iv_rule = ls_item-fill_rule
|
||||
iv_package = iv_package
|
||||
iv_abap_language_version = iv_abap_language_version
|
||||
CHANGING
|
||||
cv_value = <lv_value> ).
|
||||
cv_value = <lv_value> ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDLOOP.
|
||||
|
|
|
@ -4,8 +4,9 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
|||
PRIVATE SECTION.
|
||||
|
||||
CONSTANTS:
|
||||
c_package TYPE devclass VALUE '$TMP',
|
||||
c_table TYPE tabname VALUE 'ZTEST'.
|
||||
c_abap_cloud TYPE uccheck VALUE '5',
|
||||
c_package TYPE devclass VALUE '$TMP',
|
||||
c_table TYPE tabname VALUE 'ZTEST'.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_test,
|
||||
|
@ -15,6 +16,7 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
|||
time TYPE t,
|
||||
ts TYPE timestamp,
|
||||
tl TYPE timestampl,
|
||||
alav TYPE uccheck,
|
||||
END OF ty_test.
|
||||
|
||||
DATA mo_cut TYPE REF TO zcl_abapgit_field_rules.
|
||||
|
@ -33,6 +35,7 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
|||
fill5 FOR TESTING,
|
||||
fill6 FOR TESTING,
|
||||
fill7 FOR TESTING,
|
||||
fill8 FOR TESTING,
|
||||
get_rules
|
||||
RETURNING
|
||||
VALUE(ri_rules) TYPE REF TO zif_abapgit_field_rules,
|
||||
|
@ -55,10 +58,11 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
|
||||
mo_cut->fill_value(
|
||||
EXPORTING
|
||||
iv_rule = iv_rule
|
||||
iv_package = c_package
|
||||
iv_rule = iv_rule
|
||||
iv_package = c_package
|
||||
iv_abap_language_version = c_abap_cloud
|
||||
CHANGING
|
||||
cv_value = lv_act ).
|
||||
cv_value = lv_act ).
|
||||
|
||||
IF iv_len IS NOT INITIAL.
|
||||
lv_act = lv_act(iv_len).
|
||||
|
@ -116,6 +120,12 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
iv_exp = '' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD fill8.
|
||||
fill_value(
|
||||
iv_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version
|
||||
iv_exp = |{ c_abap_cloud }| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_rules.
|
||||
|
||||
ri_rules = zcl_abapgit_field_rules=>create( )->add(
|
||||
|
@ -137,7 +147,11 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
)->add(
|
||||
iv_table = c_table
|
||||
iv_field = 'TL'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp
|
||||
)->add(
|
||||
iv_table = c_table
|
||||
iv_field = 'ALAV'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -159,6 +173,7 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
ls_act-user = 'FRANK'.
|
||||
ls_act-date = '20230101'.
|
||||
ls_act-time = '000001'.
|
||||
ls_act-alav = '5'. " ABAP Cloud
|
||||
INSERT ls_act INTO TABLE lt_act.
|
||||
|
||||
li_rules = get_rules( ).
|
||||
|
@ -216,10 +231,11 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
|
||||
li_rules->apply_fill_logic(
|
||||
EXPORTING
|
||||
iv_table = c_table
|
||||
iv_package = c_package
|
||||
iv_table = c_table
|
||||
iv_package = c_package
|
||||
iv_abap_language_version = c_abap_cloud
|
||||
CHANGING
|
||||
ct_data = lt_act ).
|
||||
ct_data = lt_act ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lines( lt_act )
|
||||
|
@ -265,6 +281,9 @@ CLASS ltcl_field_rules IMPLEMENTATION.
|
|||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_act-time(4)
|
||||
exp = sy-uzeit(4) ). " avoid comparing seconds
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_act-alav
|
||||
exp = c_abap_cloud ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
INTERFACE zif_abapgit_field_rules
|
||||
PUBLIC .
|
||||
INTERFACE zif_abapgit_field_rules PUBLIC.
|
||||
|
||||
TYPES ty_fill_rule TYPE c LENGTH 2.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_fill_rule,
|
||||
date TYPE ty_fill_rule VALUE 'DT',
|
||||
time TYPE ty_fill_rule VALUE 'TM',
|
||||
timestamp TYPE ty_fill_rule VALUE 'TS',
|
||||
user TYPE ty_fill_rule VALUE 'UR',
|
||||
client TYPE ty_fill_rule VALUE 'CT',
|
||||
package TYPE ty_fill_rule VALUE 'PK',
|
||||
date TYPE ty_fill_rule VALUE 'DT',
|
||||
time TYPE ty_fill_rule VALUE 'TM',
|
||||
timestamp TYPE ty_fill_rule VALUE 'TS',
|
||||
user TYPE ty_fill_rule VALUE 'UR',
|
||||
client TYPE ty_fill_rule VALUE 'CT',
|
||||
package TYPE ty_fill_rule VALUE 'PK',
|
||||
abap_language_version TYPE ty_fill_rule VALUE 'AL',
|
||||
END OF c_fill_rule.
|
||||
|
||||
METHODS add
|
||||
|
@ -18,15 +20,19 @@ INTERFACE zif_abapgit_field_rules
|
|||
iv_fill_rule TYPE ty_fill_rule
|
||||
RETURNING
|
||||
VALUE(ro_self) TYPE REF TO zif_abapgit_field_rules.
|
||||
|
||||
METHODS apply_clear_logic
|
||||
IMPORTING
|
||||
iv_table TYPE tabname
|
||||
CHANGING
|
||||
ct_data TYPE STANDARD TABLE.
|
||||
|
||||
METHODS apply_fill_logic
|
||||
IMPORTING
|
||||
iv_table TYPE tabname
|
||||
iv_package TYPE devclass
|
||||
iv_table TYPE tabname
|
||||
iv_package TYPE devclass
|
||||
iv_abap_language_version TYPE uccheck OPTIONAL
|
||||
CHANGING
|
||||
ct_data TYPE STANDARD TABLE.
|
||||
ct_data TYPE STANDARD TABLE.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -32,6 +32,28 @@ CLASS zcl_abapgit_sap_package IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_transport_layer.
|
||||
|
||||
" Get default transport layer
|
||||
CALL FUNCTION 'TR_GET_TRANSPORT_TARGET'
|
||||
EXPORTING
|
||||
iv_use_default = abap_true
|
||||
iv_get_layer_only = abap_true
|
||||
IMPORTING
|
||||
ev_layer = rv_transport_layer
|
||||
EXCEPTIONS
|
||||
wrong_call = 1
|
||||
invalid_input = 2
|
||||
cts_initialization_failure = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
" Return empty layer (i.e. "local workbench request" for the package)
|
||||
CLEAR rv_transport_layer.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_sap_package~are_changes_recorded_in_tr_req.
|
||||
|
||||
DATA: li_package TYPE REF TO if_package.
|
||||
|
@ -236,25 +258,35 @@ CLASS zcl_abapgit_sap_package IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_transport_layer.
|
||||
METHOD zif_abapgit_sap_package~get.
|
||||
|
||||
" Get default transport layer
|
||||
CALL FUNCTION 'TR_GET_TRANSPORT_TARGET'
|
||||
DATA li_package TYPE REF TO if_package.
|
||||
|
||||
cl_package_factory=>load_package(
|
||||
EXPORTING
|
||||
iv_use_default = abap_true
|
||||
iv_get_layer_only = abap_true
|
||||
i_package_name = mv_package
|
||||
IMPORTING
|
||||
ev_layer = rv_transport_layer
|
||||
e_package = li_package
|
||||
EXCEPTIONS
|
||||
wrong_call = 1
|
||||
invalid_input = 2
|
||||
cts_initialization_failure = 3
|
||||
OTHERS = 4.
|
||||
object_not_existing = 1
|
||||
unexpected_error = 2
|
||||
intern_err = 3
|
||||
no_access = 4
|
||||
object_locked_and_modified = 5
|
||||
OTHERS = 6 ).
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
" Return empty layer (i.e. "local workbench request" for the package)
|
||||
CLEAR rv_transport_layer.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
rs_package-devclass = li_package->package_name.
|
||||
rs_package-dlvunit = li_package->software_component.
|
||||
rs_package-component = li_package->application_component.
|
||||
rs_package-ctext = li_package->short_text.
|
||||
rs_package-parentcl = li_package->super_package_name.
|
||||
rs_package-pdevclass = li_package->transport_layer.
|
||||
rs_package-as4user = li_package->changed_by.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -358,10 +390,26 @@ CLASS zcl_abapgit_sap_package IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_sap_package~read_description.
|
||||
DATA li_package TYPE REF TO if_package.
|
||||
|
||||
SELECT SINGLE ctext FROM tdevct INTO rv_description
|
||||
WHERE devclass = mv_package AND spras = sy-langu ##SUBRC_OK.
|
||||
cl_package_factory=>load_package(
|
||||
EXPORTING
|
||||
i_package_name = mv_package
|
||||
i_force_reload = abap_true
|
||||
IMPORTING
|
||||
e_package = li_package
|
||||
EXCEPTIONS
|
||||
object_not_existing = 1
|
||||
unexpected_error = 2
|
||||
intern_err = 3
|
||||
no_access = 4
|
||||
object_locked_and_modified = 5
|
||||
OTHERS = 6 ).
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
rv_description = li_package->short_text.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,11 @@ INTERFACE zif_abapgit_sap_package
|
|||
as4user TYPE usnam,
|
||||
END OF ty_create.
|
||||
|
||||
METHODS get
|
||||
RETURNING
|
||||
VALUE(rs_package) TYPE ty_create
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS validate_name
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
@ -41,14 +46,10 @@ INTERFACE zif_abapgit_sap_package
|
|||
zcx_abapgit_exception .
|
||||
METHODS read_description
|
||||
RETURNING
|
||||
VALUE(rv_description) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
VALUE(rv_description) TYPE string.
|
||||
METHODS read_responsible
|
||||
RETURNING
|
||||
VALUE(rv_responsible) TYPE usnam
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
VALUE(rv_responsible) TYPE usnam.
|
||||
METHODS create_child
|
||||
IMPORTING
|
||||
!iv_child TYPE devclass
|
||||
|
|
|
@ -84,7 +84,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clear_dd03p_fields.
|
||||
|
@ -838,6 +838,14 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
|
|||
ENDIF.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
" Skip TABL generated by CHDO
|
||||
IF rv_bool = abap_true.
|
||||
SELECT SINGLE tabname FROM tcdrs INTO lv_tabname WHERE tabname = lv_tabname.
|
||||
IF sy-subrc = 0.
|
||||
rv_bool = abap_false.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
CLASS zcl_abapgit_sotr_handler DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -9,15 +9,15 @@ CLASS zcl_abapgit_sotr_handler DEFINITION
|
|||
BEGIN OF ty_sotr,
|
||||
header TYPE sotr_head,
|
||||
entries TYPE sotr_text_tt,
|
||||
END OF ty_sotr .
|
||||
END OF ty_sotr.
|
||||
TYPES:
|
||||
ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY .
|
||||
ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
ty_sotr_use_tt TYPE STANDARD TABLE OF sotr_use WITH DEFAULT KEY .
|
||||
ty_sotr_use_tt TYPE STANDARD TABLE OF sotr_use WITH DEFAULT KEY.
|
||||
|
||||
CLASS-METHODS read_sotr
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
|
||||
|
@ -26,36 +26,49 @@ CLASS zcl_abapgit_sotr_handler DEFINITION
|
|||
!et_sotr TYPE ty_sotr_tt
|
||||
!et_sotr_use TYPE ty_sotr_use_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS create_sotr
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_input
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS create_sotr_from_data
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!it_sotr TYPE ty_sotr_tt
|
||||
!it_sotr_use TYPE ty_sotr_use_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS delete_sotr
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS delete_sotr_package
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS change_sotr_package
|
||||
IMPORTING
|
||||
!iv_old_package TYPE devclass
|
||||
!iv_new_package TYPE devclass
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
CLASS-METHODS get_sotr_usage
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid
|
||||
!iv_pgmid TYPE tadir-pgmid
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
RETURNING
|
||||
|
@ -65,7 +78,8 @@ CLASS zcl_abapgit_sotr_handler DEFINITION
|
|||
IMPORTING
|
||||
!iv_concept TYPE sotr_conc
|
||||
RETURNING
|
||||
VALUE(rs_sotr) TYPE ty_sotr .
|
||||
VALUE(rs_sotr) TYPE ty_sotr.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -74,6 +88,59 @@ ENDCLASS.
|
|||
CLASS zcl_abapgit_sotr_handler IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD change_sotr_package.
|
||||
|
||||
DATA lt_concepts TYPE btfr_conc_tt.
|
||||
|
||||
" Short texts
|
||||
SELECT concept FROM sotr_head INTO TABLE lt_concepts
|
||||
WHERE paket = iv_old_package
|
||||
ORDER BY PRIMARY KEY.
|
||||
|
||||
IF lt_concepts IS NOT INITIAL.
|
||||
CALL FUNCTION 'BTFR_CHANGE_PACKAGE'
|
||||
EXPORTING
|
||||
concept_tab = lt_concepts
|
||||
new_package = iv_new_package
|
||||
flag_string = abap_false
|
||||
flag_ignore_system = abap_true
|
||||
EXCEPTIONS
|
||||
invalid_package = 1
|
||||
invalid_tadir_entry = 2
|
||||
update_error = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
CLEAR lt_concepts.
|
||||
|
||||
" Long texts
|
||||
SELECT concept FROM sotr_headu INTO TABLE lt_concepts
|
||||
WHERE paket = iv_old_package
|
||||
ORDER BY PRIMARY KEY.
|
||||
|
||||
IF lt_concepts IS NOT INITIAL.
|
||||
CALL FUNCTION 'BTFR_CHANGE_PACKAGE'
|
||||
EXPORTING
|
||||
concept_tab = lt_concepts
|
||||
new_package = iv_new_package
|
||||
flag_string = abap_true
|
||||
flag_ignore_system = abap_true
|
||||
EXCEPTIONS
|
||||
invalid_package = 1
|
||||
invalid_tadir_entry = 2
|
||||
update_error = 3
|
||||
OTHERS = 4.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_sotr.
|
||||
|
||||
DATA:
|
||||
|
|
|
@ -17,7 +17,7 @@ CLASS zcl_abapgit_sots_handler DEFINITION
|
|||
|
||||
CLASS-METHODS read_sots
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
|
||||
|
@ -45,7 +45,7 @@ CLASS zcl_abapgit_sots_handler DEFINITION
|
|||
|
||||
CLASS-METHODS delete_sots
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
RAISING
|
||||
|
@ -55,7 +55,7 @@ CLASS zcl_abapgit_sots_handler DEFINITION
|
|||
|
||||
CLASS-METHODS get_sots_usage
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid
|
||||
!iv_pgmid TYPE tadir-pgmid
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
RETURNING
|
||||
|
|
|
@ -15,7 +15,7 @@ CLASS zcl_abapgit_object_aifc DEFINITION
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
TYPES:
|
||||
|
@ -112,7 +112,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD authorization_check.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
|
||||
rv_success = abap_false.
|
||||
|
@ -121,9 +120,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
RECEIVING
|
||||
rv_success = rv_success.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -147,7 +143,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD compress_interface.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
|
@ -157,9 +152,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
RECEIVING
|
||||
rv_success = rv_success.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -183,7 +175,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
rr_abapgit_aifc_util = mo_abapgit_util.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_exc_ref.
|
||||
zcx_abapgit_exception=>raise( 'AIFC not supported' ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -198,7 +190,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <ls_table> TYPE any.
|
||||
FIELD-SYMBOLS: <lv_value> TYPE any.
|
||||
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
|
||||
lr_structdescr ?= cl_abap_typedescr=>describe_by_name( p_name = '/AIF/T_FINF' ).
|
||||
|
@ -241,9 +232,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
rv_success = rv_success.
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -251,7 +239,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD get_content_compress.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
DATA: lo_log TYPE REF TO object.
|
||||
|
||||
|
@ -267,9 +254,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
iv_package = iv_package
|
||||
iv_depl_id = ms_icd_data_key-depl_scenario.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -277,7 +261,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD handle_table_data.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
|
@ -286,9 +269,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
iv_tabname = iv_tabname
|
||||
it_data = it_data.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -296,7 +276,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD validate_interface.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
|
||||
rv_success = abap_false.
|
||||
|
@ -307,9 +286,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
RECEIVING
|
||||
rv_success = rv_success.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -317,25 +293,18 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
DATA lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
|
||||
DATA ls_icd_data_key TYPE ty_icd_data_key.
|
||||
ls_icd_data_key-depl_scenario = ms_icd_data_key-depl_scenario.
|
||||
ls_icd_data_key-ns = ms_icd_data_key-ns.
|
||||
ls_icd_data_key-ifname = ms_icd_data_key-ifname.
|
||||
ls_icd_data_key-ifver2 = ms_icd_data_key-ifver2.
|
||||
|
||||
TRY.
|
||||
CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~CHANGED_BY')
|
||||
EXPORTING
|
||||
is_key = ls_icd_data_key
|
||||
RECEIVING
|
||||
rv_user = rv_user.
|
||||
CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~CHANGED_BY')
|
||||
EXPORTING
|
||||
is_key = ls_icd_data_key
|
||||
RECEIVING
|
||||
rv_user = rv_user.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -458,8 +427,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
|
||||
DATA ls_icd_data_key TYPE ty_icd_data_key.
|
||||
|
||||
ls_icd_data_key-depl_scenario = ms_icd_data_key-depl_scenario.
|
||||
|
@ -469,17 +436,12 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
rv_bool = abap_false.
|
||||
|
||||
TRY.
|
||||
CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~EXISTS')
|
||||
EXPORTING
|
||||
is_key = ls_icd_data_key
|
||||
RECEIVING
|
||||
rv_bool = rv_bool.
|
||||
CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~EXISTS')
|
||||
EXPORTING
|
||||
is_key = ls_icd_data_key
|
||||
RECEIVING
|
||||
rv_bool = rv_bool.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -549,9 +511,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
DATA: lx_root TYPE REF TO cx_root.
|
||||
DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
|
||||
|
||||
DATA lx_root TYPE REF TO cx_root.
|
||||
DATA ls_icd_data_key TYPE ty_icd_data_key.
|
||||
DATA lt_ifdata TYPE ty_table_data_t.
|
||||
|
||||
|
@ -575,17 +535,11 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
ls_icd_data_key-ifname = ms_icd_data_key-ifname.
|
||||
ls_icd_data_key-ifver2 = ms_icd_data_key-ifver2.
|
||||
|
||||
TRY.
|
||||
CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~GET_IF_DATA')
|
||||
EXPORTING
|
||||
is_key = ls_icd_data_key
|
||||
RECEIVING
|
||||
rt_ifdata = lt_ifdata.
|
||||
|
||||
CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
ENDTRY.
|
||||
CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~GET_IF_DATA')
|
||||
EXPORTING
|
||||
is_key = ls_icd_data_key
|
||||
RECEIVING
|
||||
rt_ifdata = lt_ifdata.
|
||||
|
||||
LOOP AT lt_ifdata REFERENCE INTO lr_ifdata.
|
||||
|
||||
|
@ -610,7 +564,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
|
|||
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise( iv_text = 'Serialize not possible'
|
||||
ix_previous = lx_dyn_call_error ).
|
||||
ix_previous = lx_root ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_amsd DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -106,7 +106,7 @@ CLASS zcl_abapgit_object_amsd IMPLEMENTATION.
|
|||
CREATE OBJECT mi_persistence TYPE ('CL_AMDP_SCHEMA_OBJECT_PERSIST').
|
||||
|
||||
CATCH cx_sy_create_error.
|
||||
zcx_abapgit_exception=>raise( |AMSD not supported by your NW release| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -15,7 +15,7 @@ CLASS zcl_abapgit_object_apis DEFINITION
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -42,7 +42,7 @@ CLASS zcl_abapgit_object_apis IMPLEMENTATION.
|
|||
TRY.
|
||||
CREATE DATA lr_data TYPE (c_model).
|
||||
CATCH cx_sy_create_error.
|
||||
zcx_abapgit_exception=>raise( |APIS not supported by your NW release| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_bdef DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -208,7 +208,7 @@ CLASS zcl_abapgit_object_bdef IMPLEMENTATION.
|
|||
CREATE OBJECT mi_persistence TYPE ('CL_BDEF_OBJECT_PERSIST').
|
||||
|
||||
CATCH cx_sy_create_error.
|
||||
zcx_abapgit_exception=>raise( |BDEF not supported by your NW release| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -971,7 +971,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
|
||||
ls_class_key-clsname = ms_item-obj_name.
|
||||
|
||||
rv_bool = mi_object_oriented_object_fct->exists( ls_class_key ).
|
||||
rv_bool = mi_object_oriented_object_fct->exists( ls_class_key-clsname ).
|
||||
|
||||
" Skip classes generated by DDLS (SADL)
|
||||
IF rv_bool = abap_true AND
|
||||
|
|
|
@ -9,7 +9,7 @@ CLASS zcl_abapgit_object_cmpt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
INTERFACES zif_abapgit_object.
|
||||
PROTECTED SECTION.
|
||||
|
@ -38,7 +38,7 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
r_ref_db_access = mo_cmp_db.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
mv_name = ms_item-obj_name.
|
||||
|
@ -50,21 +50,16 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
DATA: lo_cmp_template TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_ref_template = lo_cmp_template.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_ref_template = lo_cmp_template.
|
||||
|
||||
CALL METHOD lo_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER')
|
||||
RECEIVING
|
||||
r_user = rv_user.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
CALL METHOD lo_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER')
|
||||
RECEIVING
|
||||
r_user = rv_user.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -73,19 +68,14 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
DATA: lv_deleted TYPE abap_bool.
|
||||
|
||||
TRY.
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~DELETE_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'A'
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true
|
||||
RECEIVING
|
||||
r_flg_deleted = lv_deleted.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~DELETE_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'A'
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true
|
||||
RECEIVING
|
||||
r_flg_deleted = lv_deleted.
|
||||
|
||||
IF lv_deleted = abap_false.
|
||||
zcx_abapgit_exception=>raise( |Error deleting CMPT { ms_item-obj_name }| ).
|
||||
|
@ -103,37 +93,32 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
<lg_header> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <lg_template>.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <lg_template>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'CMPT'
|
||||
CHANGING
|
||||
cg_data = <lg_template> ).
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'CMPT'
|
||||
CHANGING
|
||||
cg_data = <lg_template> ).
|
||||
|
||||
ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE <lg_template> TO <lg_header>.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
<lg_field> = ms_item-obj_name.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'VERSION' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
<lg_field> = 'A'.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE <lg_template> TO <lg_header>.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
<lg_field> = ms_item-obj_name.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'VERSION' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
<lg_field> = 'A'.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~SAVE_TEMPLATE')
|
||||
EXPORTING
|
||||
i_template_db = <lg_template>
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~SAVE_TEMPLATE')
|
||||
EXPORTING
|
||||
i_template_db = <lg_template>
|
||||
i_flg_header = abap_true
|
||||
i_flg_lines = abap_true.
|
||||
|
||||
corr_insert( iv_package ).
|
||||
|
||||
|
@ -142,24 +127,20 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_flg_exists = rv_bool.
|
||||
IF rv_bool = abap_false.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'I'
|
||||
RECEIVING
|
||||
r_flg_exists = rv_bool.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_flg_exists = rv_bool.
|
||||
IF rv_bool = abap_false.
|
||||
CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
|
||||
EXPORTING
|
||||
i_name = mv_name
|
||||
i_version = 'I'
|
||||
RECEIVING
|
||||
r_flg_exists = rv_bool.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -218,47 +199,42 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
|
|||
<lg_header> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <lg_template>.
|
||||
CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
|
||||
ASSIGN lr_template->* TO <lg_template>.
|
||||
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~READ_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_template = <lg_template>.
|
||||
CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~READ_TEMPLATE')
|
||||
EXPORTING
|
||||
i_name = |{ ms_item-obj_name }|
|
||||
i_version = 'A'
|
||||
RECEIVING
|
||||
r_template = <lg_template>.
|
||||
|
||||
ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE <lg_template> TO <lg_header>.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'VERSION' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'CHANGED_TS' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE <lg_template> TO <lg_header>.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'VERSION' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'CHANGED_TS' OF STRUCTURE <lg_header> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
io_xml->add( iv_name = 'CMPT'
|
||||
ig_data = <lg_template> ).
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
|
||||
ENDTRY.
|
||||
io_xml->add( iv_name = 'CMPT'
|
||||
ig_data = <lg_template> ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -2,18 +2,50 @@ CLASS zcl_abapgit_object_dcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_object.
|
||||
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.
|
||||
DATA: mo_dcl_handler TYPE REF TO object. " CL_ACM_DCL_HANDLER
|
||||
METHODS clear_fields
|
||||
CHANGING
|
||||
!cg_data TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
super->constructor(
|
||||
is_item = is_item
|
||||
iv_language = iv_language
|
||||
io_files = io_files
|
||||
io_i18n_params = io_i18n_params ).
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = mo_dcl_handler.
|
||||
|
||||
CATCH cx_root.
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
|
@ -23,39 +55,31 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('READ')
|
||||
CALL METHOD mo_dcl_handler->('READ')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
IMPORTING
|
||||
es_dclsrc = <lg_data>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
rv_user = <lg_field>.
|
||||
ELSE.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
rv_user = <lg_field>.
|
||||
ELSE.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
DATA: lx_error TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('DELETE')
|
||||
CALL METHOD mo_dcl_handler->('DELETE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name.
|
||||
|
||||
|
@ -70,9 +94,9 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root,
|
||||
lv_abap_language_version TYPE uccheck.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
@ -91,20 +115,33 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<lg_field> = mo_files->read_string( 'asdcls' ).
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
lv_abap_language_version = <lg_field>.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
TRY.
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
iv_put_state = 'I'
|
||||
is_dclsrc = <lg_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'.
|
||||
TRY.
|
||||
CALL METHOD mo_dcl_handler->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
iv_put_state = 'I'
|
||||
is_dclsrc = <lg_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'
|
||||
iv_abap_language_version = lv_abap_language_version.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL METHOD mo_dcl_handler->('SAVE')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
iv_put_state = 'I'
|
||||
is_dclsrc = <lg_data>
|
||||
iv_devclass = iv_package
|
||||
iv_access_mode = 'INSERT'.
|
||||
ENDTRY.
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
|
@ -117,23 +154,11 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('CHECK_EXISTENCE')
|
||||
EXPORTING
|
||||
iv_objectname = ms_item-obj_name
|
||||
RECEIVING
|
||||
rv_exists = rv_bool.
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
CALL METHOD mo_dcl_handler->('CHECK_EXISTENCE')
|
||||
EXPORTING
|
||||
iv_objectname = ms_item-obj_name
|
||||
RECEIVING
|
||||
rv_exists = rv_bool.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -189,7 +214,6 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_dcl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
|
@ -200,60 +224,55 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
|
|||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
ro_handler = lo_dcl.
|
||||
|
||||
CALL METHOD lo_dcl->('READ')
|
||||
CALL METHOD mo_dcl_handler->('READ')
|
||||
EXPORTING
|
||||
iv_dclname = ms_item-obj_name
|
||||
IMPORTING
|
||||
es_dclsrc = <lg_data>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4USER' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4DATE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4TIME' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'AS4LOCAL' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
mo_files->add_string(
|
||||
iv_ext = 'asdcls'
|
||||
iv_string = <lg_field> ).
|
||||
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'DCLS'
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
clear_fields( CHANGING cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
mo_files->add_string(
|
||||
iv_ext = 'asdcls'
|
||||
iv_string = <lg_field> ).
|
||||
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'DCLS'
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_fields.
|
||||
|
||||
DATA:
|
||||
BEGIN OF ls_fields_to_clear,
|
||||
as4user TYPE c,
|
||||
as4date TYPE d,
|
||||
as4time TYPE t,
|
||||
created_by TYPE c,
|
||||
created_date TYPE d,
|
||||
as4local TYPE c,
|
||||
END OF ls_fields_to_clear.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<lg_abap_language_version> TYPE any.
|
||||
|
||||
MOVE-CORRESPONDING ls_fields_to_clear TO cg_data.
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE cg_data TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
METHODS open_adt_stob
|
||||
|
@ -20,6 +20,7 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
zcx_abapgit_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA mo_ddl_handler TYPE REF TO object. " CL_DD_DDL_HANDLER
|
||||
METHODS is_baseinfo_supported
|
||||
RETURNING
|
||||
VALUE(rv_supported) TYPE abap_bool .
|
||||
|
@ -29,6 +30,12 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
METHODS format_source_before_serialize
|
||||
CHANGING
|
||||
cv_string TYPE string.
|
||||
METHODS clear_fields
|
||||
CHANGING
|
||||
!cg_data TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -38,8 +45,6 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
METHOD constructor.
|
||||
|
||||
DATA lo_ddl TYPE REF TO object.
|
||||
|
||||
super->constructor(
|
||||
is_item = is_item
|
||||
iv_language = iv_language
|
||||
|
@ -49,9 +54,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
TRY.
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
handler = mo_ddl_handler.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'Object type DDLS is not supported by this system' ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -93,13 +99,12 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
METHOD is_baseinfo_supported.
|
||||
|
||||
DATA:
|
||||
lr_data_baseinfo TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
lr_data_baseinfo TYPE REF TO data.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data_baseinfo TYPE ('IF_DD_DDL_TYPES=>TY_S_BASEINFO_STRING_SAVE').
|
||||
rv_supported = abap_true.
|
||||
CATCH cx_root INTO lx_error.
|
||||
CATCH cx_root.
|
||||
rv_supported = abap_false.
|
||||
ENDTRY.
|
||||
|
||||
|
@ -108,9 +113,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
METHOD open_adt_stob.
|
||||
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lo_ddl TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS: <lt_ddnames> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS: <lt_entity_view> TYPE STANDARD TABLE.
|
||||
|
@ -120,46 +123,37 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
FIELD-SYMBOLS: <lg_ddlname> TYPE any.
|
||||
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
|
||||
ASSIGN lr_data->* TO <lt_ddnames>.
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
|
||||
ASSIGN lr_data->* TO <lt_ddnames>.
|
||||
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_ddnames>.
|
||||
ASSIGN lr_data->* TO <lg_ddnames>.
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_ddnames>.
|
||||
ASSIGN lr_data->* TO <lg_ddnames>.
|
||||
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
|
||||
ASSIGN lr_data->* TO <lt_entity_view>.
|
||||
CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
|
||||
ASSIGN lr_data->* TO <lt_entity_view>.
|
||||
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_entity_view>.
|
||||
ASSIGN lr_data->* TO <lg_entity_view>.
|
||||
CREATE DATA lr_data LIKE LINE OF <lt_entity_view>.
|
||||
ASSIGN lr_data->* TO <lg_entity_view>.
|
||||
|
||||
CLEAR <lt_ddnames>.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_ddnames> TO <lg_ddname>.
|
||||
<lg_ddname> = iv_ddls_name.
|
||||
INSERT <lg_ddnames> INTO TABLE <lt_ddnames>.
|
||||
CLEAR <lt_ddnames>.
|
||||
ASSIGN COMPONENT 'NAME' OF STRUCTURE <lg_ddnames> TO <lg_ddname>.
|
||||
<lg_ddname> = iv_ddls_name.
|
||||
INSERT <lg_ddnames> INTO TABLE <lt_ddnames>.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
|
||||
EXPORTING
|
||||
ddnames = <lt_ddnames>
|
||||
IMPORTING
|
||||
view_of_entity = <lt_entity_view>.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
|
||||
EXPORTING
|
||||
ddnames = <lt_ddnames>
|
||||
IMPORTING
|
||||
view_of_entity = <lt_entity_view>.
|
||||
READ TABLE <lt_entity_view> ASSIGNING <lg_entity_view> INDEX 1.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE <lg_entity_view> TO <lg_ddlname>.
|
||||
|
||||
READ TABLE <lt_entity_view> ASSIGNING <lg_entity_view> INDEX 1.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE <lg_entity_view> TO <lg_ddlname>.
|
||||
zcl_abapgit_adt_link=>jump( iv_obj_name = <lg_ddlname>
|
||||
iv_obj_type = 'DDLS' ).
|
||||
|
||||
zcl_abapgit_adt_link=>jump( iv_obj_name = <lg_ddlname>
|
||||
iv_obj_type = 'DDLS' ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -180,23 +174,17 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data,
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any.
|
||||
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
get_state = 'A'
|
||||
|
@ -270,22 +258,22 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA:
|
||||
lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data,
|
||||
lr_data_baseinfo TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<lg_data> TYPE any,
|
||||
<lg_data_baseinfo> TYPE any,
|
||||
<lg_source> TYPE any,
|
||||
<lg_baseinfo_string> TYPE any,
|
||||
<lg_baseinfo_ddlname> TYPE any.
|
||||
<lg_data> TYPE any,
|
||||
<lg_data_baseinfo> TYPE any,
|
||||
<lg_source> TYPE any,
|
||||
<lg_baseinfo_string> TYPE any,
|
||||
<lg_baseinfo_ddlname> TYPE any,
|
||||
<lg_abap_language_version> TYPE any.
|
||||
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'DDLS'
|
||||
CHANGING cg_data = <lg_data> ).
|
||||
|
||||
|
@ -293,9 +281,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<lg_source> = mo_files->read_string( 'asddls' ).
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
IF is_baseinfo_supported( ) = abap_true.
|
||||
CREATE DATA lr_data_baseinfo TYPE ('IF_DD_DDL_TYPES=>TY_S_BASEINFO_STRING_SAVE').
|
||||
|
@ -310,21 +299,31 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<lg_baseinfo_ddlname> = ms_item-obj_name.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>
|
||||
baseinfo_string = <lg_data_baseinfo>.
|
||||
TRY.
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>
|
||||
baseinfo_string = <lg_data_baseinfo>
|
||||
save_language_version = abap_true.
|
||||
CATCH cx_sy_dyn_call_param_not_found.
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>
|
||||
baseinfo_string = <lg_data_baseinfo>.
|
||||
ENDTRY.
|
||||
ELSE.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~SAVE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
put_state = 'N'
|
||||
ddddlsrcv_wa = <lg_data>.
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~WRITE_TADIR')
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~WRITE_TADIR')
|
||||
EXPORTING
|
||||
objectname = ms_item-obj_name
|
||||
devclass = iv_package
|
||||
|
@ -333,16 +332,14 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
corr_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
IF lo_ddl IS NOT INITIAL.
|
||||
" Attempt clean-up but catch error if it doesn't work
|
||||
TRY.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~DELETE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
prid = 0.
|
||||
CATCH cx_root ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
" Attempt clean-up but catch error if it doesn't work
|
||||
TRY.
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~DELETE')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
prid = 0.
|
||||
CATCH cx_root ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
@ -354,15 +351,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_state TYPE objstate,
|
||||
lo_ddl TYPE REF TO object.
|
||||
DATA: lv_state TYPE objstate.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
IMPORTING
|
||||
|
@ -441,35 +433,28 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lo_ddl TYPE REF TO object,
|
||||
lr_data TYPE REF TO data,
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lr_data_baseinfo TYPE REF TO data,
|
||||
lt_clr_comps TYPE STANDARD TABLE OF fieldname WITH DEFAULT KEY,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE any,
|
||||
<lv_comp> LIKE LINE OF lt_clr_comps,
|
||||
<lt_data_baseinfo> TYPE ANY TABLE,
|
||||
<lg_data_baseinfo> TYPE any,
|
||||
<lg_ddlname> TYPE any,
|
||||
<lg_as4local> TYPE any.
|
||||
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
CREATE DATA lr_data TYPE ('DDDDLSRCV').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
|
||||
RECEIVING
|
||||
handler = lo_ddl.
|
||||
TRY.
|
||||
|
||||
IF is_baseinfo_supported( ) = abap_true.
|
||||
CREATE DATA lr_data_baseinfo TYPE ('IF_DD_DDL_TYPES=>TY_T_BASEINFO_STRING').
|
||||
ASSIGN lr_data_baseinfo->* TO <lt_data_baseinfo>.
|
||||
ASSIGN lr_data_baseinfo->* TO <lg_data_baseinfo>.
|
||||
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
get_state = 'A'
|
||||
|
@ -494,7 +479,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDLOOP.
|
||||
ELSE.
|
||||
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
|
||||
CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
|
||||
EXPORTING
|
||||
name = ms_item-obj_name
|
||||
get_state = 'A'
|
||||
|
@ -506,20 +491,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
APPEND 'AS4USER' TO lt_clr_comps.
|
||||
APPEND 'AS4DATE' TO lt_clr_comps.
|
||||
APPEND 'AS4TIME' TO lt_clr_comps.
|
||||
APPEND 'ACTFLAG' TO lt_clr_comps.
|
||||
APPEND 'CHGFLAG' TO lt_clr_comps.
|
||||
APPEND 'ABAP_LANGUAGE_VERSION' TO lt_clr_comps.
|
||||
APPEND 'ABAP_LANGU_VERSION' TO lt_clr_comps.
|
||||
|
||||
LOOP AT lt_clr_comps ASSIGNING <lv_comp>.
|
||||
ASSIGN COMPONENT <lv_comp> OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR <lg_field>.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
clear_fields( CHANGING cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
@ -536,4 +508,30 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
|
|||
ig_data = <lg_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_fields.
|
||||
|
||||
DATA:
|
||||
BEGIN OF ls_fields_to_clear,
|
||||
as4user TYPE c,
|
||||
as4date TYPE d,
|
||||
as4time TYPE t,
|
||||
actflag TYPE c,
|
||||
chgflag TYPE c,
|
||||
abap_langu_version TYPE c,
|
||||
END OF ls_fields_to_clear.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<lg_abap_language_version> TYPE any.
|
||||
|
||||
MOVE-CORRESPONDING ls_fields_to_clear TO cg_data.
|
||||
|
||||
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE cg_data TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -2,147 +2,80 @@ CLASS zcl_abapgit_object_ddlx DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_object.
|
||||
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.
|
||||
DATA mi_persistence TYPE REF TO if_wb_object_persist .
|
||||
METHODS get_persistence
|
||||
RETURNING
|
||||
VALUE(ri_persistence) TYPE REF TO if_wb_object_persist
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
DATA mi_persistence TYPE REF TO if_wb_object_persist.
|
||||
DATA mi_data_model TYPE REF TO if_wb_object_data_model.
|
||||
DATA mv_object_key TYPE seu_objkey.
|
||||
METHODS clear_fields
|
||||
CHANGING
|
||||
!cg_data TYPE any .
|
||||
METHODS clear_field
|
||||
IMPORTING
|
||||
!iv_fieldname TYPE csequence
|
||||
CHANGING
|
||||
!cg_metadata TYPE any .
|
||||
!cg_data TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
METHOD clear_field.
|
||||
super->constructor(
|
||||
is_item = is_item
|
||||
iv_language = iv_language
|
||||
io_files = io_files
|
||||
io_i18n_params = io_i18n_params ).
|
||||
|
||||
FIELD-SYMBOLS: <lg_field> TYPE data.
|
||||
|
||||
ASSIGN COMPONENT iv_fieldname
|
||||
OF STRUCTURE cg_metadata
|
||||
TO <lg_field>.
|
||||
IF sy-subrc = 0.
|
||||
CLEAR: <lg_field>.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_fields.
|
||||
|
||||
FIELD-SYMBOLS: <lg_metadata> TYPE any.
|
||||
|
||||
ASSIGN COMPONENT 'METADATA'
|
||||
OF STRUCTURE cg_data
|
||||
TO <lg_metadata>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CHANGED_AT'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CHANGED_BY'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CREATED_AT'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CREATED_BY'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'RESPONSIBLE'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'PACKAGE_REF-NAME'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'CONTAINER_REF-PACKAGE_NAME'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'VERSION'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'RESPONSIBLE'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'MASTER_SYSTEM'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'ABAP_LANGUAGE_VERSION'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'ABAP_LANGU_VERSION'
|
||||
CHANGING cg_metadata = <lg_metadata> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_persistence.
|
||||
|
||||
DATA: lx_error TYPE REF TO cx_root.
|
||||
mv_object_key = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
IF mi_persistence IS NOT BOUND.
|
||||
CREATE OBJECT mi_persistence
|
||||
TYPE ('CL_DDLX_ADT_OBJECT_PERSIST').
|
||||
|
||||
CREATE OBJECT mi_persistence
|
||||
TYPE ('CL_DDLX_ADT_OBJECT_PERSIST').
|
||||
CREATE OBJECT mi_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
CATCH cx_sy_create_object_error.
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ri_persistence = mi_persistence.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
DATA:
|
||||
lv_object_key TYPE seu_objkey,
|
||||
li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
li_persistence TYPE REF TO if_wb_object_persist,
|
||||
lr_data TYPE REF TO data.
|
||||
DATA: lr_data TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<lg_data> TYPE any,
|
||||
<lg_changed_by> TYPE data.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CREATE OBJECT li_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
li_persistence = get_persistence( ).
|
||||
|
||||
li_persistence->get(
|
||||
mi_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_object_key = mv_object_key
|
||||
p_version = swbm_version_active
|
||||
CHANGING
|
||||
p_object_data = li_data_model ).
|
||||
CATCH cx_root.
|
||||
p_object_data = mi_data_model ).
|
||||
CATCH cx_swb_exception.
|
||||
rv_user = c_user_unknown.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
li_data_model->get_data( IMPORTING p_data = <lg_data> ).
|
||||
mi_data_model->get_data( IMPORTING p_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-CHANGED_BY' OF STRUCTURE <lg_data> TO <lg_changed_by>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
@ -153,18 +86,13 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
DATA: lx_error TYPE REF TO cx_swb_exception.
|
||||
|
||||
TRY.
|
||||
mi_persistence->delete( p_object_key = mv_object_key
|
||||
p_version = swbm_version_active ).
|
||||
|
||||
get_persistence( )->delete( p_object_key = lv_object_key
|
||||
p_version = swbm_version_active ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
CATCH cx_swb_exception INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
|
@ -175,73 +103,74 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA: li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_swb_exception.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_source> TYPE data,
|
||||
<lg_version> TYPE data,
|
||||
<lg_package> TYPE data,
|
||||
<lg_changed_by> TYPE syuname,
|
||||
<lg_changed_at> TYPE xsddatetime_z.
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_source> TYPE data,
|
||||
<lg_version> TYPE data,
|
||||
<lg_package> TYPE data,
|
||||
<lg_changed_by> TYPE syuname,
|
||||
<lg_changed_at> TYPE xsddatetime_z,
|
||||
<lg_abap_language_version> TYPE data.
|
||||
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DDLX'
|
||||
CHANGING
|
||||
cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
set_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_source>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
" If the file doesn't exist that's ok, because previously
|
||||
" the source code was stored in the xml. We are downward compatible.
|
||||
<lg_source> = mo_files->read_string( 'asddlxs' ).
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'DDLX'
|
||||
CHANGING
|
||||
cg_data = <lg_data> ).
|
||||
ASSIGN COMPONENT 'METADATA-VERSION' OF STRUCTURE <lg_data> TO <lg_version>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_source>.
|
||||
ASSERT sy-subrc = 0.
|
||||
" We have to always save as inactive. Standard activation below activates then
|
||||
" and also creates transport request entry if necessary
|
||||
<lg_version> = 'inactive'.
|
||||
|
||||
TRY.
|
||||
" If the file doesn't exist that's ok, because previously
|
||||
" the source code was stored in the xml. We are downward compatible.
|
||||
<lg_source> = mo_files->read_string( 'asddlxs' ).
|
||||
CATCH zcx_abapgit_exception ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
"package needed to be able to determine ABAP language version
|
||||
ASSIGN COMPONENT 'METADATA-PACKAGE_REF-NAME' OF STRUCTURE <lg_data> TO <lg_package>.
|
||||
IF <lg_package> IS ASSIGNED.
|
||||
<lg_package> = iv_package.
|
||||
ENDIF.
|
||||
|
||||
CREATE OBJECT li_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
ASSIGN COMPONENT 'METADATA-CHANGED_BY' OF STRUCTURE <lg_data> TO <lg_changed_by>.
|
||||
IF <lg_changed_by> IS ASSIGNED.
|
||||
<lg_changed_by> = sy-uname.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'METADATA-CHANGED_AT' OF STRUCTURE <lg_data> TO <lg_changed_at>.
|
||||
IF <lg_changed_at> IS ASSIGNED.
|
||||
GET TIME STAMP FIELD <lg_changed_at>.
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-VERSION' OF STRUCTURE <lg_data> TO <lg_version>.
|
||||
ASSERT sy-subrc = 0.
|
||||
mi_data_model->set_data( <lg_data> ).
|
||||
|
||||
" We have to always save as inactive. Standard activation below activates then
|
||||
" and also creates transport request entry if necessary
|
||||
<lg_version> = 'inactive'.
|
||||
|
||||
"package needed to be able to determine ABAP language version
|
||||
ASSIGN COMPONENT 'METADATA-PACKAGE_REF-NAME' OF STRUCTURE <lg_data> TO <lg_package>.
|
||||
IF <lg_package> IS ASSIGNED.
|
||||
<lg_package> = iv_package.
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-CHANGED_BY' OF STRUCTURE <lg_data> TO <lg_changed_by>.
|
||||
IF <lg_changed_by> IS ASSIGNED.
|
||||
<lg_changed_by> = sy-uname.
|
||||
ENDIF.
|
||||
ASSIGN COMPONENT 'METADATA-CHANGED_AT' OF STRUCTURE <lg_data> TO <lg_changed_at>.
|
||||
IF <lg_changed_at> IS ASSIGNED.
|
||||
GET TIME STAMP FIELD <lg_changed_at>.
|
||||
ENDIF.
|
||||
|
||||
li_data_model->set_data( <lg_data> ).
|
||||
|
||||
get_persistence( )->save( li_data_model ).
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
TRY.
|
||||
mi_persistence->save( mi_data_model ).
|
||||
CATCH cx_swb_exception INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
|
||||
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -249,16 +178,12 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
rv_bool = abap_true.
|
||||
|
||||
TRY.
|
||||
get_persistence( )->get( p_object_key = lv_object_key
|
||||
p_version = swbm_version_active
|
||||
p_existence_check_only = abap_true ).
|
||||
mi_persistence->get( p_object_key = mv_object_key
|
||||
p_version = swbm_version_active
|
||||
p_existence_check_only = abap_true ).
|
||||
|
||||
CATCH cx_swb_exception.
|
||||
rv_bool = abap_false.
|
||||
|
@ -317,73 +242,99 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_object_key TYPE seu_objkey,
|
||||
li_data_model TYPE REF TO if_wb_object_data_model,
|
||||
li_persistence TYPE REF TO if_wb_object_persist,
|
||||
lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
DATA: lr_data TYPE REF TO data,
|
||||
lx_error TYPE REF TO cx_swb_exception.
|
||||
|
||||
FIELD-SYMBOLS: <lg_data> TYPE any,
|
||||
<lg_field> TYPE data.
|
||||
|
||||
lv_object_key = ms_item-obj_name.
|
||||
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_data
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
|
||||
ASSIGN lr_data->* TO <lg_data>.
|
||||
|
||||
CREATE OBJECT li_data_model
|
||||
TYPE ('CL_DDLX_WB_OBJECT_DATA').
|
||||
|
||||
li_persistence = get_persistence( ).
|
||||
|
||||
IF zcl_abapgit_factory=>get_environment( )->compare_with_inactive( ) = abap_true.
|
||||
"Retrieve inactive version
|
||||
li_persistence->get(
|
||||
mi_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_object_key = mv_object_key
|
||||
p_version = swbm_version_inactive
|
||||
CHANGING
|
||||
p_object_data = li_data_model ).
|
||||
IF li_data_model->get_object_name( ) IS INITIAL.
|
||||
p_object_data = mi_data_model ).
|
||||
IF mi_data_model->get_object_name( ) IS INITIAL.
|
||||
"Fallback: retrieve active version
|
||||
li_persistence->get(
|
||||
mi_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_object_key = mv_object_key
|
||||
p_version = swbm_version_active
|
||||
CHANGING
|
||||
p_object_data = li_data_model ).
|
||||
p_object_data = mi_data_model ).
|
||||
ENDIF.
|
||||
ELSE.
|
||||
"Retrieve active version
|
||||
li_persistence->get(
|
||||
mi_persistence->get(
|
||||
EXPORTING
|
||||
p_object_key = lv_object_key
|
||||
p_object_key = mv_object_key
|
||||
p_version = swbm_version_active
|
||||
CHANGING
|
||||
p_object_data = li_data_model ).
|
||||
p_object_data = mi_data_model ).
|
||||
ENDIF.
|
||||
|
||||
li_data_model->get_data( IMPORTING p_data = <lg_data> ).
|
||||
|
||||
clear_fields( CHANGING cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
mo_files->add_string(
|
||||
iv_ext = 'asddlxs'
|
||||
iv_string = <lg_field> ).
|
||||
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'DDLX'
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
CATCH cx_swb_exception INTO lx_error.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
mi_data_model->get_data( IMPORTING p_data = <lg_data> ).
|
||||
|
||||
clear_fields( CHANGING cg_data = <lg_data> ).
|
||||
|
||||
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
mo_files->add_string(
|
||||
iv_ext = 'asddlxs'
|
||||
iv_string = <lg_field> ).
|
||||
|
||||
CLEAR <lg_field>.
|
||||
|
||||
io_xml->add( iv_name = 'DDLX'
|
||||
ig_data = <lg_data> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_fields.
|
||||
|
||||
DATA:
|
||||
BEGIN OF ls_fields_to_clear,
|
||||
BEGIN OF metadata,
|
||||
changed_at TYPE d,
|
||||
changed_by TYPE c,
|
||||
created_at TYPE d,
|
||||
created_by TYPE c,
|
||||
responsible TYPE c,
|
||||
BEGIN OF package_ref,
|
||||
name TYPE c,
|
||||
END OF package_ref,
|
||||
BEGIN OF container_ref,
|
||||
name TYPE c,
|
||||
END OF container_ref,
|
||||
version TYPE c,
|
||||
master_system TYPE c,
|
||||
END OF metadata,
|
||||
END OF ls_fields_to_clear.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<lg_abap_language_version> TYPE any.
|
||||
|
||||
MOVE-CORRESPONDING ls_fields_to_clear TO cg_data.
|
||||
|
||||
ASSIGN COMPONENT 'METADATA-ABAP_LANGUAGE_VERSION' OF STRUCTURE cg_data TO <lg_abap_language_version>.
|
||||
IF sy-subrc = 0.
|
||||
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -465,7 +465,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
IF lv_package(1) = '$'.
|
||||
zcl_abapgit_persist_packages=>get_instance( )->modify( lv_package ).
|
||||
zcl_abapgit_persist_factory=>get_packages( )->modify( lv_package ).
|
||||
ENDIF.
|
||||
|
||||
set_lock( ii_package = li_package
|
||||
|
@ -571,7 +571,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
" For local packages store application component
|
||||
IF ls_package_data-devclass(1) = '$'.
|
||||
zcl_abapgit_persist_packages=>get_instance( )->modify(
|
||||
zcl_abapgit_persist_factory=>get_packages( )->modify(
|
||||
iv_package = ls_package_data-devclass
|
||||
iv_component = ls_package_data-component
|
||||
iv_comp_posid = ls_package_data-comp_posid ).
|
||||
|
@ -818,7 +818,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
DATA: ls_package_data TYPE scompkdtln,
|
||||
ls_package_comp TYPE zcl_abapgit_persist_packages=>ty_package,
|
||||
ls_package_comp TYPE zif_abapgit_persist_packages=>ty_package,
|
||||
li_package TYPE REF TO if_package,
|
||||
lt_intf_usages TYPE tpak_permission_to_use_list,
|
||||
lt_usage_data TYPE scomppdata,
|
||||
|
@ -847,7 +847,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
" For local packages get application component
|
||||
IF is_local( ls_package_data-devclass ) = abap_true.
|
||||
ls_package_comp = zcl_abapgit_persist_packages=>get_instance( )->read( ls_package_data-devclass ).
|
||||
ls_package_comp = zcl_abapgit_persist_factory=>get_packages( )->read( ls_package_data-devclass ).
|
||||
ls_package_data-component = ls_package_comp-component.
|
||||
ls_package_data-comp_posid = ls_package_comp-comp_posid.
|
||||
ENDIF.
|
||||
|
|
|
@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_drul DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -130,7 +130,7 @@ CLASS zcl_abapgit_object_drul IMPLEMENTATION.
|
|||
CREATE OBJECT mi_persistence TYPE ('CL_DRUL_WB_OBJECT_PERSIST').
|
||||
|
||||
CATCH cx_sy_create_error.
|
||||
zcx_abapgit_exception=>raise( |DRUL not supported by your NW release| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_dtdc DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -151,7 +151,7 @@ CLASS zcl_abapgit_object_dtdc IMPLEMENTATION.
|
|||
CREATE OBJECT mi_persistence TYPE ('CL_DTDC_OBJECT_PERSIST').
|
||||
|
||||
CATCH cx_sy_create_error.
|
||||
zcx_abapgit_exception=>raise( |DTDC not supported by your NW release| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -594,21 +594,7 @@ CLASS zcl_abapgit_object_fdt0 IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~get_comparator.
|
||||
|
||||
DATA lo_local_version_output TYPE REF TO zcl_abapgit_xml_output.
|
||||
DATA lo_local_version_input TYPE REF TO zcl_abapgit_xml_input.
|
||||
|
||||
CREATE OBJECT lo_local_version_output.
|
||||
zif_abapgit_object~serialize( lo_local_version_output ).
|
||||
|
||||
CREATE OBJECT lo_local_version_input
|
||||
EXPORTING
|
||||
iv_xml = lo_local_version_output->zif_abapgit_xml_output~render( ).
|
||||
|
||||
CREATE OBJECT ri_comparator TYPE zcl_abapgit_object_tabl_compar
|
||||
EXPORTING
|
||||
ii_local = lo_local_version_input.
|
||||
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_ftgl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
!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.
|
||||
zcx_abapgit_type_not_supported.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -60,7 +60,7 @@ CLASS zcl_abapgit_object_ftgl IMPLEMENTATION.
|
|||
TRY.
|
||||
CREATE DATA mr_toggle TYPE ('FTGL_S_WB_FEATURE_TOGGLE').
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |FTGL not supported in your NW release| ).
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -516,12 +516,15 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
|
||||
METHOD functions.
|
||||
|
||||
DATA: lv_area TYPE rs38l-area.
|
||||
FIELD-SYMBOLS: <ls_functab> TYPE LINE OF ty_rs38l_incl_tt.
|
||||
DATA: lv_area TYPE rs38l-area,
|
||||
lt_enlfdir TYPE STANDARD TABLE OF enlfdir.
|
||||
DATA lv_index TYPE i.
|
||||
|
||||
FIELD-SYMBOLS: <ls_functab> TYPE LINE OF ty_rs38l_incl_tt,
|
||||
<ls_enlfdir> TYPE enlfdir.
|
||||
|
||||
lv_area = ms_item-obj_name.
|
||||
|
||||
|
||||
CALL FUNCTION 'RS_FUNCTION_POOL_CONTENTS'
|
||||
EXPORTING
|
||||
function_pool = lv_area
|
||||
|
@ -534,9 +537,27 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
* The result can also contain function which are lowercase.
|
||||
"FM is not reliable if Function Group is inconsistent, so cross-check results (#7147)
|
||||
SELECT * FROM enlfdir
|
||||
INTO TABLE lt_enlfdir
|
||||
WHERE area = ms_item-obj_name
|
||||
AND active = abap_true
|
||||
ORDER BY funcname. "#EC CI_SUBRC
|
||||
|
||||
LOOP AT lt_enlfdir ASSIGNING <ls_enlfdir>.
|
||||
TRANSLATE <ls_enlfdir>-funcname TO UPPER CASE.
|
||||
ENDLOOP.
|
||||
|
||||
SORT lt_enlfdir BY funcname ASCENDING.
|
||||
|
||||
"Remove anything not in FM attributes table
|
||||
LOOP AT rt_functab ASSIGNING <ls_functab>.
|
||||
TRANSLATE <ls_functab> TO UPPER CASE.
|
||||
lv_index = sy-tabix.
|
||||
READ TABLE lt_enlfdir WITH KEY funcname = <ls_functab>-funcname TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc <> 0.
|
||||
DELETE rt_functab INDEX lv_index.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
SORT rt_functab BY funcname ASCENDING.
|
||||
|
@ -1277,6 +1298,14 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
|||
pool_not_exists = 1.
|
||||
rv_bool = boolc( sy-subrc <> 1 ).
|
||||
|
||||
" Skip FUGR generated by CHDO
|
||||
IF rv_bool = abap_true.
|
||||
SELECT SINGLE fgrp FROM tcdrp INTO lv_pool WHERE fgrp = lv_pool.
|
||||
IF sy-subrc = 0.
|
||||
rv_bool = abap_false.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,13 @@ CLASS zcl_abapgit_object_g4ba IMPLEMENTATION.
|
|||
iv_field = 'CHANGED_TS'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWBEP/I_V4_MSGR'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,13 @@ CLASS zcl_abapgit_object_g4bs IMPLEMENTATION.
|
|||
iv_field = 'CHANGED_TS'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWBEP/I_V4_MSRV'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,14 @@ CLASS zcl_abapgit_object_http DEFINITION
|
|||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES zif_abapgit_object.
|
||||
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.
|
||||
|
@ -34,23 +42,42 @@ CLASS zcl_abapgit_object_http DEFINITION
|
|||
object_state TYPE c LENGTH 1,
|
||||
END OF ty_gs_object_version.
|
||||
|
||||
TYPES: BEGIN OF ty_icf_node,
|
||||
icfname TYPE c LENGTH 15,
|
||||
icfparguid TYPE c LENGTH 25,
|
||||
END OF ty_icf_node.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA: lr_dummy 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 DATA lr_dummy TYPE ('UCONHTTPSERVHEAD').
|
||||
CATCH cx_root.
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
TRY.
|
||||
SELECT SINGLE changedby FROM ('UCONHTTPSERVHEAD') INTO rv_user WHERE id = ms_item-obj_name.
|
||||
IF sy-subrc <> 0.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
|
||||
ENDTRY.
|
||||
SELECT SINGLE changedby FROM ('UCONHTTPSERVHEAD') INTO rv_user WHERE id = ms_item-obj_name.
|
||||
IF sy-subrc <> 0.
|
||||
rv_user = c_user_unknown.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -60,14 +87,11 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
DATA lv_name TYPE c LENGTH 30.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
TRY.
|
||||
CALL METHOD ('CL_UCON_API_FACTORY')=>('DELETE_HTTP_SERVICE')
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
devclass = iv_package.
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
|
||||
ENDTRY.
|
||||
|
||||
CALL METHOD ('CL_UCON_API_FACTORY')=>('DELETE_HTTP_SERVICE')
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
devclass = iv_package.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -84,8 +108,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
lo_http TYPE REF TO object,
|
||||
ls_abap_lang TYPE ty_gs_object_version,
|
||||
lo_instance TYPE REF TO object,
|
||||
lv_tadir_name TYPE tadir-obj_name,
|
||||
lt_ret TYPE STANDARD TABLE OF bapiret2.
|
||||
lv_icfnode TYPE ty_icf_node.
|
||||
|
||||
TRY.
|
||||
io_xml->read(
|
||||
|
@ -98,6 +121,14 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
EXPORTING iv_name = 'HTTPHDL'
|
||||
CHANGING cg_data = lt_handler ).
|
||||
|
||||
TRY.
|
||||
"link to icf node (in releases older than 757, a http service requires a icf node to function)
|
||||
io_xml->read(
|
||||
EXPORTING iv_name = 'HTTPICFNODE'
|
||||
CHANGING cg_data = lv_icfnode ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = lv_http_servid AND version = 'A'.
|
||||
IF sy-subrc = 0.
|
||||
"update
|
||||
|
@ -152,6 +183,9 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_DESCRIPTION')
|
||||
EXPORTING
|
||||
texts = ls_description.
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SET_ICF_SERVICE')
|
||||
EXPORTING
|
||||
iv_icfservice = lv_icfnode.
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~SAVE')
|
||||
EXPORTING
|
||||
run_dark = abap_true
|
||||
|
@ -159,16 +193,6 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
korrnum = iv_transport.
|
||||
CALL METHOD lo_http->('IF_UCON_API_HTTP_SERVICE~FREE').
|
||||
|
||||
lv_tadir_name = lv_http_servid.
|
||||
CALL METHOD ('CL_AUTH_START_TOOLS')=>('SUSH_CREATE')
|
||||
EXPORTING
|
||||
iv_type = 'HTTP'
|
||||
iv_name = lv_tadir_name
|
||||
iv_silent = abap_true
|
||||
iv_task = iv_transport
|
||||
IMPORTING
|
||||
et_log = lt_ret.
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
@ -180,12 +204,8 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
|
||||
DATA lv_id TYPE c LENGTH 30.
|
||||
|
||||
TRY.
|
||||
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = ms_item-obj_name AND version = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( 'HTTP not supported' ).
|
||||
ENDTRY.
|
||||
SELECT SINGLE id FROM ('UCONHTTPSERVHEAD') INTO lv_id WHERE id = ms_item-obj_name AND version = 'A'.
|
||||
rv_bool = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -241,6 +261,7 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
lt_handler TYPE TABLE OF ty_uconservhttphandler,
|
||||
ls_description TYPE ty_uconhttpservtext,
|
||||
lx_root TYPE REF TO cx_root,
|
||||
lv_icfnode TYPE ty_icf_node,
|
||||
lv_name TYPE c LENGTH 30.
|
||||
|
||||
TRY.
|
||||
|
@ -275,6 +296,15 @@ CLASS zcl_abapgit_object_http IMPLEMENTATION.
|
|||
iv_name = 'HTTPHDL'
|
||||
ig_data = lt_handler ).
|
||||
|
||||
TRY.
|
||||
"link to icf node (in releases older than 757, a http service requires a icf node to function)
|
||||
CALL METHOD lo_serv->('IF_UCON_API_HTTP_SERVICE~GET_ICF_SERVICE') IMPORTING ev_icfservice = lv_icfnode.
|
||||
io_xml->add(
|
||||
iv_name = 'HTTPICFNODE'
|
||||
ig_data = lv_icfnode ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
CATCH cx_root INTO lx_root.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_root ).
|
||||
ENDTRY.
|
||||
|
|
|
@ -673,7 +673,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
ls_class_key-clsname = ms_item-obj_name.
|
||||
|
||||
rv_bool = mi_object_oriented_object_fct->exists( ls_class_key ).
|
||||
rv_bool = mi_object_oriented_object_fct->exists( ls_class_key-clsname ).
|
||||
|
||||
IF rv_bool = abap_true.
|
||||
SELECT SINGLE category FROM seoclassdf INTO lv_category
|
||||
|
@ -778,6 +778,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD extract_languages_for_transl.
|
||||
DATA: lv_desc TYPE seocompotx,
|
||||
lv_desc_int TYPE seoclasstx,
|
||||
|
@ -811,5 +812,4 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -2,6 +2,14 @@ CLASS zcl_abapgit_object_iobj DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_object.
|
||||
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.
|
||||
METHODS:
|
||||
|
@ -17,6 +25,24 @@ ENDCLASS.
|
|||
|
||||
CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA lr_viobj 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 DATA lr_viobj TYPE ('RSD_S_VIOBJ').
|
||||
CATCH cx_sy_create_data_error.
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_field.
|
||||
|
||||
|
@ -43,12 +69,7 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
|
||||
lv_objna = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_viobj TYPE ('RSD_S_VIOBJ').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |IOBJ is not supported on this system| ).
|
||||
ENDTRY.
|
||||
|
||||
CREATE DATA lr_viobj TYPE ('RSD_S_VIOBJ').
|
||||
ASSIGN lr_viobj->* TO <lg_viobj>.
|
||||
|
||||
CALL FUNCTION 'RSD_IOBJ_GET'
|
||||
|
@ -61,7 +82,7 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
iobj_not_found = 1
|
||||
illegal_input = 2
|
||||
bct_comp_invalid = 3
|
||||
* not_authorized = 4 " not in lower releases
|
||||
* not_authorized = 4 " not in lower releases
|
||||
OTHERS = 5.
|
||||
IF sy-subrc = 0.
|
||||
ASSIGN COMPONENT 'TSTPNM' OF STRUCTURE <lg_viobj> TO <lg_tstpnm>.
|
||||
|
@ -134,20 +155,16 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
<lg_infoobject> TYPE data,
|
||||
<lt_infoobjects> TYPE STANDARD TABLE.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6108').
|
||||
CREATE DATA lr_compounds TYPE STANDARD TABLE OF ('BAPI6108CM').
|
||||
CREATE DATA lr_attributes TYPE STANDARD TABLE OF ('BAPI6108AT').
|
||||
CREATE DATA lr_navigationattributes TYPE STANDARD TABLE OF ('BAPI6108AN').
|
||||
CREATE DATA lr_atrnavinfoprovider TYPE STANDARD TABLE OF ('BAPI6108NP').
|
||||
CREATE DATA lr_hierarchycharacteristics TYPE STANDARD TABLE OF ('BAPI6108HC').
|
||||
CREATE DATA lr_elimination TYPE STANDARD TABLE OF ('BAPI6108IE').
|
||||
CREATE DATA lr_hanafieldsmapping TYPE STANDARD TABLE OF ('BAPI6108HANA_MAP').
|
||||
CREATE DATA lr_xxlattributes TYPE STANDARD TABLE OF ('BAPI6108ATXXL').
|
||||
CREATE DATA lr_infoobj TYPE STANDARD TABLE OF ('BAPI6108').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |IOBJ is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6108').
|
||||
CREATE DATA lr_compounds TYPE STANDARD TABLE OF ('BAPI6108CM').
|
||||
CREATE DATA lr_attributes TYPE STANDARD TABLE OF ('BAPI6108AT').
|
||||
CREATE DATA lr_navigationattributes TYPE STANDARD TABLE OF ('BAPI6108AN').
|
||||
CREATE DATA lr_atrnavinfoprovider TYPE STANDARD TABLE OF ('BAPI6108NP').
|
||||
CREATE DATA lr_hierarchycharacteristics TYPE STANDARD TABLE OF ('BAPI6108HC').
|
||||
CREATE DATA lr_elimination TYPE STANDARD TABLE OF ('BAPI6108IE').
|
||||
CREATE DATA lr_hanafieldsmapping TYPE STANDARD TABLE OF ('BAPI6108HANA_MAP').
|
||||
CREATE DATA lr_xxlattributes TYPE STANDARD TABLE OF ('BAPI6108ATXXL').
|
||||
CREATE DATA lr_infoobj TYPE STANDARD TABLE OF ('BAPI6108').
|
||||
|
||||
ASSIGN lr_details->* TO <lg_details>.
|
||||
ASSIGN lr_compounds->* TO <lt_compounds>.
|
||||
|
@ -335,11 +352,7 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
|
||||
lv_objna = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_viobj TYPE ('RSD_S_VIOBJ').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |IOBJ is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE DATA lr_viobj TYPE ('RSD_S_VIOBJ').
|
||||
|
||||
ASSIGN lr_viobj->* TO <lg_viobj>.
|
||||
|
||||
|
@ -414,19 +427,15 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
|
|||
<lt_hanafieldsmapping> TYPE STANDARD TABLE,
|
||||
<lt_xxlattributes> TYPE STANDARD TABLE.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6108').
|
||||
CREATE DATA lr_compounds TYPE STANDARD TABLE OF ('BAPI6108CM').
|
||||
CREATE DATA lr_attributes TYPE STANDARD TABLE OF ('BAPI6108AT').
|
||||
CREATE DATA lr_navigationattributes TYPE STANDARD TABLE OF ('BAPI6108AN').
|
||||
CREATE DATA lr_atrnavinfoprovider TYPE STANDARD TABLE OF ('BAPI6108NP').
|
||||
CREATE DATA lr_hierarchycharacteristics TYPE STANDARD TABLE OF ('BAPI6108HC').
|
||||
CREATE DATA lr_elimination TYPE STANDARD TABLE OF ('BAPI6108IE').
|
||||
CREATE DATA lr_hanafieldsmapping TYPE STANDARD TABLE OF ('BAPI6108HANA_MAP').
|
||||
CREATE DATA lr_xxlattributes TYPE STANDARD TABLE OF ('BAPI6108ATXXL').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |IOBJ is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6108').
|
||||
CREATE DATA lr_compounds TYPE STANDARD TABLE OF ('BAPI6108CM').
|
||||
CREATE DATA lr_attributes TYPE STANDARD TABLE OF ('BAPI6108AT').
|
||||
CREATE DATA lr_navigationattributes TYPE STANDARD TABLE OF ('BAPI6108AN').
|
||||
CREATE DATA lr_atrnavinfoprovider TYPE STANDARD TABLE OF ('BAPI6108NP').
|
||||
CREATE DATA lr_hierarchycharacteristics TYPE STANDARD TABLE OF ('BAPI6108HC').
|
||||
CREATE DATA lr_elimination TYPE STANDARD TABLE OF ('BAPI6108IE').
|
||||
CREATE DATA lr_hanafieldsmapping TYPE STANDARD TABLE OF ('BAPI6108HANA_MAP').
|
||||
CREATE DATA lr_xxlattributes TYPE STANDARD TABLE OF ('BAPI6108ATXXL').
|
||||
|
||||
ASSIGN lr_details->* TO <lg_details>.
|
||||
ASSIGN lr_compounds->* TO <lt_compounds>.
|
||||
|
|
|
@ -42,6 +42,14 @@ CLASS zcl_abapgit_object_iwmo IMPLEMENTATION.
|
|||
iv_table = '/IWBEP/I_MGW_OHD'
|
||||
iv_field = 'CHANGED_TIMESTMP'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWBEP/I_MGW_OHD'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -42,6 +42,14 @@ CLASS zcl_abapgit_object_iwom IMPLEMENTATION.
|
|||
iv_table = '/IWFND/I_MED_OHD'
|
||||
iv_field = 'CHANGED_TIMESTMP'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWFND/I_MED_OHD'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -44,6 +44,13 @@ CLASS zcl_abapgit_object_iwsg IMPLEMENTATION.
|
|||
iv_field = 'CHANGED_TIMESTMP'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWFND/I_MED_SRH'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -42,6 +42,14 @@ CLASS zcl_abapgit_object_iwsv IMPLEMENTATION.
|
|||
iv_table = '/IWBEP/I_MGW_SRH'
|
||||
iv_field = 'CHANGED_TIMESTMP'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWBEP/I_MGW_SRH'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -42,6 +42,14 @@ CLASS zcl_abapgit_object_iwvb IMPLEMENTATION.
|
|||
iv_table = '/IWBEP/I_MGW_VAH'
|
||||
iv_field = 'CHANGED_TIMESTMP'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
|
||||
|
||||
IF ms_item-abap_language_version = zcl_abapgit_abap_language_vers=>c_no_abap_language_version.
|
||||
ro_result->add(
|
||||
iv_table = '/IWBEP/I_MGW_VAH'
|
||||
iv_field = 'ABAP_LANGUAGE_VERSION'
|
||||
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
|
@ -2,6 +2,14 @@ CLASS zcl_abapgit_object_jobd DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_object.
|
||||
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.
|
||||
|
@ -13,6 +21,24 @@ ENDCLASS.
|
|||
|
||||
CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA: lr_job_definition 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 DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
|
||||
CATCH cx_sy_ref_creation.
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
|
||||
|
@ -121,16 +147,11 @@ CLASS zcl_abapgit_object_jobd IMPLEMENTATION.
|
|||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE')
|
||||
EXPORTING
|
||||
im_jd_name = lv_name
|
||||
IMPORTING
|
||||
ex_is_existing = rv_bool.
|
||||
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |JOBD not supported| ).
|
||||
ENDTRY.
|
||||
CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE')
|
||||
EXPORTING
|
||||
im_jd_name = lv_name
|
||||
IMPORTING
|
||||
ex_is_existing = rv_bool.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -7,6 +7,14 @@ CLASS zcl_abapgit_object_odso DEFINITION
|
|||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES zif_abapgit_object .
|
||||
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.
|
||||
|
||||
|
@ -22,6 +30,24 @@ ENDCLASS.
|
|||
|
||||
CLASS zcl_abapgit_object_odso IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA: lr_details 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 DATA lr_details TYPE ('BAPI6116').
|
||||
CATCH cx_sy_create_data_error.
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_field.
|
||||
|
||||
|
@ -46,11 +72,7 @@ CLASS zcl_abapgit_object_odso IMPLEMENTATION.
|
|||
FIELD-SYMBOLS: <lg_details> TYPE any,
|
||||
<lg_tstpnm> TYPE any.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6116').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |ODSO is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6116').
|
||||
|
||||
ASSIGN lr_details->* TO <lg_details>.
|
||||
|
||||
|
@ -82,11 +104,7 @@ CLASS zcl_abapgit_object_odso IMPLEMENTATION.
|
|||
lt_msg TYPE STANDARD TABLE OF bal_s_msg,
|
||||
ls_msg TYPE bal_s_msg.
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT lo_collection TYPE ('CL_RSD_ODSO_COLLECTION').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |ODSO is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE OBJECT lo_collection TYPE ('CL_RSD_ODSO_COLLECTION').
|
||||
|
||||
lv_odsonam = ms_item-obj_name.
|
||||
lv_objname = ms_item-obj_name.
|
||||
|
@ -136,15 +154,11 @@ CLASS zcl_abapgit_object_odso IMPLEMENTATION.
|
|||
<lt_indexes> TYPE STANDARD TABLE,
|
||||
<lt_index_iobj> TYPE STANDARD TABLE.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6116').
|
||||
CREATE DATA lr_infoobjects TYPE STANDARD TABLE OF ('BAPI6116IO').
|
||||
CREATE DATA lr_navigation TYPE STANDARD TABLE OF ('BAPI6116NA').
|
||||
CREATE DATA lr_indexes TYPE STANDARD TABLE OF ('BAPI6116IN').
|
||||
CREATE DATA lr_index_iobj TYPE STANDARD TABLE OF ('BAPI6116II').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |ODSO is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6116').
|
||||
CREATE DATA lr_infoobjects TYPE STANDARD TABLE OF ('BAPI6116IO').
|
||||
CREATE DATA lr_navigation TYPE STANDARD TABLE OF ('BAPI6116NA').
|
||||
CREATE DATA lr_indexes TYPE STANDARD TABLE OF ('BAPI6116IN').
|
||||
CREATE DATA lr_index_iobj TYPE STANDARD TABLE OF ('BAPI6116II').
|
||||
|
||||
ASSIGN lr_details->* TO <lg_details>.
|
||||
ASSIGN lr_infoobjects->* TO <lt_infoobjects>.
|
||||
|
@ -326,15 +340,11 @@ CLASS zcl_abapgit_object_odso IMPLEMENTATION.
|
|||
<lt_indexes> TYPE STANDARD TABLE,
|
||||
<lt_index_iobj> TYPE STANDARD TABLE.
|
||||
|
||||
TRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6116').
|
||||
CREATE DATA lr_infoobjects TYPE STANDARD TABLE OF ('BAPI6116IO').
|
||||
CREATE DATA lr_navigation TYPE STANDARD TABLE OF ('BAPI6116NA').
|
||||
CREATE DATA lr_indexes TYPE STANDARD TABLE OF ('BAPI6116IN').
|
||||
CREATE DATA lr_index_iobj TYPE STANDARD TABLE OF ('BAPI6116II').
|
||||
CATCH cx_sy_create_data_error.
|
||||
zcx_abapgit_exception=>raise( |ODSO is not supported on this system| ).
|
||||
ENDTRY.
|
||||
CREATE DATA lr_details TYPE ('BAPI6116').
|
||||
CREATE DATA lr_infoobjects TYPE STANDARD TABLE OF ('BAPI6116IO').
|
||||
CREATE DATA lr_navigation TYPE STANDARD TABLE OF ('BAPI6116NA').
|
||||
CREATE DATA lr_indexes TYPE STANDARD TABLE OF ('BAPI6116IN').
|
||||
CREATE DATA lr_index_iobj TYPE STANDARD TABLE OF ('BAPI6116II').
|
||||
|
||||
ASSIGN lr_details->* TO <lg_details>.
|
||||
ASSIGN lr_infoobjects->* TO <lt_infoobjects>.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user