Unable to load load OData metadata with UI5 CLI v4 and SAPUI5 1.71
Opened this issue · 7 comments
Expected Behavior
Starting Fiori elements App with Fiori Tooling and UI5 CLI v4 and SAPUI5 Version 1.71
Current Behavior
Unable to load metadata from OData Service provided by CAP
Steps to Reproduce the Issue
git clone https://github.com/marianfoo/ui5cliv4-v71
cd ui5cliv4-v71
npm i
npm start
It works with either UI5 CLI v3 and SAPUI5 1.71 or with UI5 CLI v4 and SAPUI5 1.84 or above.
It did work with a freshly generated Fiori elements application, but i can´t tell what the difference was to make it work.
Context
- UI5 Module Version :
4.0.0
- Node.js Version:
20.14.0
- npm Version:
10.3.0
- OS/Platform:
mac
- Browser (if relevant):
Chrome
Log Output / Stack Trace
➜ ui5cliv4-test-71 git:(main) ✗ npm start
> ordersv2fenondraft71@0.0.1 start
> fiori run -p 8080 --open "index.html?sap-ui-xx-viewCache=false&sap-language=EN"
info fiori-tools-proxy Using UI5 version 1.71.67 based on manifest.json
info fiori-tools-proxy Starting fiori-tools-proxy using following configuration:
info fiori-tools-proxy proxy: 'undefined'
info fiori-tools-proxy ignoreCertError: 'false'
info fiori-tools-proxy backend: [{"path":"/odata/v2/orders","url":"https://livedemo.spreadsheet-importer.com"}]
info fiori-tools-proxy ui5: [{"path":"/resources","url":"https://ui5.sap.com","version":"1.71.67"},{"path":"/test-resources","url":"https://ui5.sap.com","version":"1.71.67"}]
info fiori-tools-proxy debug: 'false'
info backend-proxy-middleware Backend proxy created for https://livedemo.spreadsheet-importer.com /odata/v2/orders
info fiori-tools-appreload Livereload middleware started for port 35732 and path /Users/marianzeis/DEV/ui5cliv4-test-71/webapp
info fiori-tools-preview Initialized for app ui.v2.ordersv2fenondraft
Server started
URL: http://localhost:8080
info backend-proxy-middleware /odata/v2/orders/$metadata?sap-value-list=none&sap-language=EN
This is caused by a mismatch of your manifest version wrt. the UI5 version.
The UI5 tooling 4.0 enhances the manifest, json with information about the supportedLocales
. But in UI5 1.71, this was not supported yet. The tooling uses the manifest's _version
property to decide whether the supportedLocales
can be generated or not. Your manifest has version 1.48 which is only supported since UI5 1.108.
When I reduce the version to 1.17 (which was the manifest version supported by UI5 1.71), then the app starts again.
You can find the mapping between manifest versions and UI5 versions here
Thank you @codeworrior for the quick explanation.
But shouldn't there be a 'warn' or something to indicate that you can do the adjustment yourself?
I had already suspected the manifest as the cause of the error, but I would not have found the loading of the metadata that was the cause right away in a more complicated app.
I just said to @RandomByte that I would expect this as the next question :-)
Sure, a warning would be nice. For some historic reasons, the runtime does not check the manifest version, but that would be one option. For the tooling, it can be rather difficult to know what version is used at runtime (e.g .when not the local server is used). But the (invalid) combination of _version and minUI5Version in the Manifest could be detected, maybe that's an option.
We'll discuss this internally.
BTW: thank's for the fast and easy to reproduce feedback reg. tooling 4.0 :-)
BTW: thank's for the fast and easy to reproduce feedback reg. tooling 4.0 :-)
You´re welcome, the investment in my CI Pipeline pays off
I just said to @RandomByte that I would expect this as the next question :-)
Then I'll ask the right questions :)
In the UI5 development there are enough errors anyway that you have to interpret correctly, it would be nice if this can be checked as well as possible so that you can solve it yourself.
You can either close this if you create a new issue or leave it open as reference, up to you