mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
parent
ae831d52a9
commit
e86f1c66da
31
.github/workflows/build_bsp.yaml
vendored
Normal file
31
.github/workflows/build_bsp.yaml
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
name: build_downport
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
- run: cd ci/app2bsp & npm i
|
||||
- run: node run.js
|
||||
- run: npm run build_bsp
|
||||
- name: send to bsp repository
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
external_repository: abap2UI5-downports/abap2UI5
|
||||
user_name: 'github-actions[bot]'
|
||||
user_email: 'github-actions[bot]@users.noreply.github.com'
|
||||
publish_branch: main
|
||||
publish_dir: ./output
|
||||
deploy_key: ${{ secrets.ACTIONS_BSP_KEY }}
|
||||
destination_dir: src/02
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"configurations": {
|
||||
"default": {
|
||||
"filename": "./ci/abaplint.jsonc"
|
||||
"filename": "./ci/abaplint/abaplint.jsonc"
|
||||
},
|
||||
"abap_standard_readiness": {
|
||||
"filename": "./ci/abap_standard_check.jsonc"
|
||||
"filename": "./ci/abaplint/abap_standard_check.jsonc"
|
||||
},
|
||||
"abap_cloud_readiness": {
|
||||
"filename": "./ci/abap_cloud_check.jsonc"
|
||||
"filename": "./ci/abaplint/abap_cloud_check.jsonc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
"undeploy": "cf undeploy z2ui5 --delete-services --delete-service-keys --delete-service-brokers",
|
||||
"deploy-test": "npm run build && fiori deploy --config ui5-deploy.yaml --testMode true",
|
||||
"build:cf": "ui5 build preload --clean-dest --config ui5-deploy.yaml --include-task=generateCachebusterInfo",
|
||||
"transform": "node trans/trans2abap.js && abaplint --fix ./trans/abaplint.jsonc",
|
||||
"transform": "node ../ci/app2string/trans2abap.js && abaplint --fix ../ci/app2string/abaplint.jsonc",
|
||||
"build:mta": "rimraf resources mta_archives && mbt build"
|
||||
},
|
||||
"sapuxLayer": "CUSTOMER_BASE"
|
||||
|
|
30
ci/app2bsp/README.md
Normal file
30
ci/app2bsp/README.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
## abap2UI5 - Connector SAP Fiori Launchpad
|
||||
|
||||
_Running into problems or found a bug? Create an issue [**here**](https://github.com/abap2UI5/abap2UI5/issues)_
|
||||
|
||||
#### Key Features
|
||||
* **Launchpad Connector:** Host your abap2UI5 Apps on SAP Fiori Launchpad
|
||||
* **User-Friendly:** Launch different apps simply by adjusting the start parameter "app_start"
|
||||
* **Project Consistency:** All abap2UI5 apps can remain unchanged in your ABAP system
|
||||
* **Compatibility:** Runs minimum with SAP Netweaver v.7.50 or S/4 2021 (Standard ABAP)
|
||||
|
||||
_Lower UI5 releases are not supported, but you can try the experimental branch [here.](https://github.com/abap2UI5-connectors/fiori-launchpad-connector-onpremise/tree/low_ui5_release)_
|
||||
|
||||
#### Functionality
|
||||
|
||||
<img width="700" alt="Screenshot 2024-06-02 at 16 05 28" src="https://github.com/abap2UI5/abap2UI5-connector_sap_fiori_launchpad/assets/102328295/7a66b131-0516-473d-a4ad-9468bdc5fdfb"><br>
|
||||
___[Link](https://excalidraw.com/#json=n4Y2VdcMD32F0LvuJWs4-,NREoe051wicmP4XJfOSv5Q)___<br>
|
||||
Install with [abapGit](https://abapgit.org) , and you will find a UI5 app (BSP Application) in your system. Add it multiple times to your launchpad and maintain different ABAP classes as starting parameters. Each tile will then call a different abap2UI5 app.
|
||||
|
||||
#### Preview
|
||||
<img width="700" alt="image" src="https://github.com/abap2UI5/ext-fiori_launchpad_on_premise/assets/102328295/17c375e8-10cd-471e-83f8-d62ed27224e3">
|
||||
|
||||
#### Installation & Usage
|
||||
|
||||
[**(1) Installation & Configuration**](https://www.linkedin.com/pulse/copy-abap2ui5-host-your-apps-sap-fiori-launchpad-abap2ui5-ocn2e/) <br>
|
||||
[**(2) Features: Title, Parameters, Navigation**](https://www.linkedin.com/pulse/abap2ui5-host-your-apps-sap-fiori-launchpad-23-features-abap2ui5-upche/) <br>
|
||||
[**(3) Integration of KPIs**](https://www.linkedin.com/pulse/abap2ui5-host-your-apps-sap-fiori-launchpad-33-kpis-abap2ui5-uuxxe/) <br>
|
||||
|
||||
#### FAQ
|
||||
* check out the [**documentation**](https://github.com/abap2UI5/abap2UI5-documentation) for installation & configuration guidelines
|
||||
* your comments, questions, wishes and bugs are welcome, please create an [**issue**](https://github.com/abap2UI5/integration-fiori_launchpad_on_premise/issues)
|
13
ci/app2bsp/package-lock.json
generated
Normal file
13
ci/app2bsp/package-lock.json
generated
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "fiori-launchpad-connector-onpremise",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "fiori-launchpad-connector-onpremise",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
12
ci/app2bsp/package.json
Normal file
12
ci/app2bsp/package.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "fiori-launchpad-connector-onpremise",
|
||||
"version": "1.0.0",
|
||||
"description": "Ein Projekt zum Kopieren von Dateien von source nach target21",
|
||||
"main": "run.js",
|
||||
"scripts": {
|
||||
"start": "node run.js"
|
||||
},
|
||||
"author": "Ihr Name",
|
||||
"license": "MIT",
|
||||
"dependencies": {}
|
||||
}
|
89
ci/app2bsp/run.js
Normal file
89
ci/app2bsp/run.js
Normal file
|
@ -0,0 +1,89 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const sourceDir = '../../app/webapp';
|
||||
const staticDir = './static';
|
||||
const targetDir = './output';
|
||||
const prefix = 'z2ui5.wapa.';
|
||||
|
||||
function generateTargetFileName(sourcePath, baseDir) {
|
||||
const relativePath = path.relative(baseDir, sourcePath);
|
||||
const fileName = prefix + relativePath.replace(/\//g, '_-').replace(/\\/g, '_-').toLowerCase();
|
||||
return fileName;
|
||||
}
|
||||
|
||||
function copyFilesRecursively(source, target, baseDir, renameFiles = true) {
|
||||
fs.readdir(source, { withFileTypes: true }, (err, entries) => {
|
||||
if (err) {
|
||||
console.error('Fehler beim Lesen des Verzeichnisses:', err);
|
||||
return;
|
||||
}
|
||||
|
||||
entries.forEach(entry => {
|
||||
const sourcePath = path.join(source, entry.name);
|
||||
const targetFileName = renameFiles ? generateTargetFileName(sourcePath, baseDir) : entry.name;
|
||||
const targetPath = path.join(target, targetFileName);
|
||||
|
||||
if (entry.isDirectory()) {
|
||||
// Rekursiver Aufruf für Unterordner
|
||||
copyFilesRecursively(sourcePath, target, baseDir, renameFiles);
|
||||
} else if (entry.isFile()) {
|
||||
// Lese die Quelldatei
|
||||
fs.readFile(sourcePath, 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
console.error(`Fehler beim Lesen der Quelldatei ${entry.name}:`, err);
|
||||
return;
|
||||
}
|
||||
|
||||
// Erstelle den Zielordner, falls er nicht existiert
|
||||
fs.mkdir(path.dirname(targetPath), { recursive: true }, (err) => {
|
||||
if (err) {
|
||||
console.error('Fehler beim Erstellen des Zielordners:', err);
|
||||
return;
|
||||
}
|
||||
|
||||
// Schreibe den Inhalt in die Zieldatei
|
||||
fs.writeFile(targetPath, data, 'utf8', (err) => {
|
||||
if (err) {
|
||||
console.error(`Fehler beim Schreiben der Zieldatei ${entry.name}:`, err);
|
||||
return;
|
||||
}
|
||||
console.log(`Datei ${entry.name} erfolgreich kopiert als ${targetFileName}.`);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function deleteFilesRecursively(directory) {
|
||||
if (fs.existsSync(directory)) {
|
||||
fs.readdirSync(directory).forEach((file) => {
|
||||
const curPath = path.join(directory, file);
|
||||
if (fs.lstatSync(curPath).isDirectory()) {
|
||||
deleteFilesRecursively(curPath);
|
||||
} else {
|
||||
fs.unlinkSync(curPath);
|
||||
}
|
||||
});
|
||||
fs.rmdirSync(directory);
|
||||
}
|
||||
}
|
||||
|
||||
// Lösche alle Dateien im Zielverzeichnis
|
||||
deleteFilesRecursively(targetDir);
|
||||
|
||||
// Erstelle das Zielverzeichnis, falls es nicht existiert
|
||||
fs.mkdir(targetDir, { recursive: true }, (err) => {
|
||||
if (err) {
|
||||
console.error('Fehler beim Erstellen des Zielverzeichnisses:', err);
|
||||
return;
|
||||
}
|
||||
|
||||
// Starte den Kopiervorgang für den Quellordner
|
||||
copyFilesRecursively(sourceDir, targetDir, sourceDir);
|
||||
|
||||
// Starte den Kopiervorgang für den statischen Ordner ohne Umbenennung
|
||||
copyFilesRecursively(staticDir, targetDir, staticDir, false);
|
||||
});
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_SMIM" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<URL>/SAP/BC/BSP/SAP/Z2UI5</URL>
|
||||
<FOLDER>X</FOLDER>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
10
ci/app2bsp/static_files/package.devc.xml
Normal file
10
ci/app2bsp/static_files/package.devc.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>abap2UI5</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_SICF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<URL>/sap/bc/ui5_ui5/sap/z2ui5/</URL>
|
||||
<ICFSERVICE>
|
||||
<ICF_NAME>Z2UI5</ICF_NAME>
|
||||
<ORIG_NAME>z2ui5</ORIG_NAME>
|
||||
</ICFSERVICE>
|
||||
<ICFDOCU>
|
||||
<ICF_NAME>Z2UI5</ICF_NAME>
|
||||
<ICF_LANGU>E</ICF_LANGU>
|
||||
<ICF_DOCU>test</ICF_DOCU>
|
||||
</ICFDOCU>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_SICF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<URL>/sap/bc/bsp/sap/z2ui5/</URL>
|
||||
<ICFSERVICE>
|
||||
<ICF_NAME>Z2UI5</ICF_NAME>
|
||||
<ORIG_NAME>z2ui5</ORIG_NAME>
|
||||
</ICFSERVICE>
|
||||
<ICFDOCU>
|
||||
<ICF_NAME>Z2UI5</ICF_NAME>
|
||||
<ICF_LANGU>E</ICF_LANGU>
|
||||
<ICF_DOCU>test</ICF_DOCU>
|
||||
</ICFDOCU>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
109
ci/app2bsp/static_files/z2ui5.wapa.ui5repositorypathmapping.xml
Normal file
109
ci/app2bsp/static_files/z2ui5.wapa.ui5repositorypathmapping.xml
Normal file
|
@ -0,0 +1,109 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<UI5RepMapping version="1.0" xmlns="sap.ui5.tools.repository.mapping">
|
||||
<MappingEntries>
|
||||
|
||||
<MappingEntry
|
||||
path = "Component.js"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "Component.js" />
|
||||
|
||||
<MappingEntry
|
||||
path = "cc"
|
||||
is_folder = "X"
|
||||
internal_rep = ""
|
||||
internal_rep_path = "" />
|
||||
|
||||
<MappingEntry
|
||||
path = "cc/DebugTool.fragment.xml"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "cc/DebugTool.fragment.xml" />
|
||||
|
||||
<MappingEntry
|
||||
path = "cc/DebugTool.js"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "cc/DebugTool.js" />
|
||||
|
||||
<MappingEntry
|
||||
path = "cc/Server.js"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "cc/Server.js" />
|
||||
|
||||
<MappingEntry
|
||||
path = "controller"
|
||||
is_folder = "X"
|
||||
internal_rep = ""
|
||||
internal_rep_path = "" />
|
||||
|
||||
<MappingEntry
|
||||
path = "controller/App.controller.js"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "controller/App.controller.js" />
|
||||
|
||||
<MappingEntry
|
||||
path = "controller/View1.controller.js"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "controller/View1.controller.js" />
|
||||
|
||||
<MappingEntry
|
||||
path = "css"
|
||||
is_folder = "X"
|
||||
internal_rep = ""
|
||||
internal_rep_path = "" />
|
||||
|
||||
<MappingEntry
|
||||
path = "css/style.css"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "css/style.css" />
|
||||
|
||||
<MappingEntry
|
||||
path = "index.html"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "index.html" />
|
||||
|
||||
<MappingEntry
|
||||
path = "manifest.json"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "manifest.json" />
|
||||
|
||||
<MappingEntry
|
||||
path = "model"
|
||||
is_folder = "X"
|
||||
internal_rep = ""
|
||||
internal_rep_path = "" />
|
||||
|
||||
<MappingEntry
|
||||
path = "model/models.js"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "model/models.js" />
|
||||
|
||||
<MappingEntry
|
||||
path = "view"
|
||||
is_folder = "X"
|
||||
internal_rep = ""
|
||||
internal_rep_path = "" />
|
||||
|
||||
<MappingEntry
|
||||
path = "view/App.view.xml"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "view/App.view.xml" />
|
||||
|
||||
<MappingEntry
|
||||
path = "view/View1.view.xml"
|
||||
is_folder = ""
|
||||
internal_rep = "B"
|
||||
internal_rep_path = "view/View1.view.xml" />
|
||||
|
||||
</MappingEntries>
|
||||
</UI5RepMapping>
|
162
ci/app2bsp/static_files/z2ui5.wapa.xml
Normal file
162
ci/app2bsp/static_files/z2ui5.wapa.xml
Normal file
|
@ -0,0 +1,162 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_WAPA" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<APPLCLAS>/UI5/CL_UI5_BSP_APPLICATION</APPLCLAS>
|
||||
<APPLEXT>Z2UI5</APPLEXT>
|
||||
<SECURITY>X</SECURITY>
|
||||
<ORIGLANG>E</ORIGLANG>
|
||||
<MODIFLANG>E</MODIFLANG>
|
||||
<TEXT>test</TEXT>
|
||||
</ATTRIBUTES>
|
||||
<PAGES>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>CC/DEBUGTOOL.FRAGMENT.XML</PAGEKEY>
|
||||
<PAGENAME>cc/DebugTool.fragment.xml</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>CC/DEBUGTOOL.JS</PAGEKEY>
|
||||
<PAGENAME>cc/DebugTool.js</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>CC/SERVER.JS</PAGEKEY>
|
||||
<PAGENAME>cc/Server.js</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>COMPONENT.JS</PAGEKEY>
|
||||
<PAGENAME>Component.js</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>CONTROLLER/APP.CONTROLLER.JS</PAGEKEY>
|
||||
<PAGENAME>controller/App.controller.js</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>CONTROLLER/VIEW1.CONTROLLER.JS</PAGEKEY>
|
||||
<PAGENAME>controller/View1.controller.js</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>CSS/STYLE.CSS</PAGEKEY>
|
||||
<PAGENAME>css/style.css</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>INDEX.HTML</PAGEKEY>
|
||||
<PAGENAME>index.html</PAGENAME>
|
||||
<MIMETYPE>text/html</MIMETYPE>
|
||||
<IS_START_PAGE>X</IS_START_PAGE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>MANIFEST.JSON</PAGEKEY>
|
||||
<PAGENAME>manifest.json</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>MODEL/MODELS.JS</PAGEKEY>
|
||||
<PAGENAME>model/models.js</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>UI5REPOSITORYPATHMAPPING.XML</PAGEKEY>
|
||||
<PAGENAME>UI5RepositoryPathMapping.xml</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>VIEW/APP.VIEW.XML</PAGEKEY>
|
||||
<PAGENAME>view/App.view.xml</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
<item>
|
||||
<ATTRIBUTES>
|
||||
<APPLNAME>Z2UI5</APPLNAME>
|
||||
<PAGEKEY>VIEW/VIEW1.VIEW.XML</PAGEKEY>
|
||||
<PAGENAME>view/View1.view.xml</PAGENAME>
|
||||
<PAGETYPE>X</PAGETYPE>
|
||||
<LAYOUTLANGU>E</LAYOUTLANGU>
|
||||
<VERSION>A</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
</ATTRIBUTES>
|
||||
</item>
|
||||
</PAGES>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -4,7 +4,7 @@ const abapClassTemplate = require('./abapClassTemplate');
|
|||
const xmlTemplate = require('./abapXMLTemplate');
|
||||
|
||||
// Define source and target directories
|
||||
const sourceDir = path.join(__dirname, '../webapp');
|
||||
const sourceDir = path.join(__dirname, '../../app/webapp');
|
||||
const targetDir = path.join(__dirname, '../../src/01/03');
|
||||
|
||||
// Initial XML content with BOM
|
Loading…
Reference in New Issue
Block a user