docs

Migration Information for Upgrading the Manifest File

Information how to add new attributes of manifest (also known as descriptor) versions higher than V2 (OpenUI5 1.30) to the manifest file.

</tr> </tr> </tr> </table> \* Available as of manifest version \(OpenUI5 version\)
Attribute Version\* Description
`sap.ui5/dependencies/minUI5Version` V64 \(1.124\) The attribute `minUI5Version` can now be an array of versions where each major version can only be included once. If you specify an array that contains more than one version, and if version 1 is included, it must be at least 1.120.x.
`sap.fiori/cloudDevAdaptationStatus` V51 \(1.110\) Release status for the developer adaptation in SAP S/4HANA Cloud Public Edition and SAP BTP, ABAP environment \(SAP-internal\). Supported types: - `released` - `deprecated` - `obsolete` - No value means not released . For more information, see [Releasing an SAP Fiori Application to Be Extensible in Adaptation Projects on SAP S/4HANA Cloud and SAP BTP, ABAP Environment](https://help.sap.com/docs/bas/developing-sap-fiori-app-in-sap-business-application-studio/releasing-sap-fiori-application-to-be-extensible-in-adaptation-projects-on-sap-s-4hana-cloud).
`sap.ui5/resources/js` \(deprecated\) V37 \(1.94\) Since 1.94 the usage of `js` resources is deprecated. Please use regular dependencies instead.
`sap.ui5/models//settings/supportedLocales` `sap.ui5/models//settings/fallbackLocale` `sap.ui5/models//settings/terminologies` </td> V22 \(1.77\) The `supportedLocales` and `fallbackLocale` settings can be specified with a list of supported locales and a fallback locale to define a language fallback chain and optimize the loading performance of resource bundles. Additional resource bundles can be made available by defining `terminologies`. ``` { ... "models": { "i18n": { "type": "sap.ui.model.resource.ResourceModel", "settings": { "bundleName": "myapp.i18n.i18n", "supportedLocales": ["de", "en"], "fallbackLocale": "de", "terminologies": { "sports": { "bundleUrl": "i18n/terminologies/sports/i18n.terminologies.sports.properties", "bundleUrlRelativeTo": "manifest", "supportedLocales": ["en", "de"] }, "travel": { "bundleUrl": "i18n/terminologies/travel/i18n.terminologies.travel.properties", "bundleUrlRelativeTo": "manifest", "supportedLocales": ["en", "de"] }, "services": { "bundleUrl": "i18n/terminologies/services/i18n.terminologies.services.properties", "bundleUrlRelativeTo": "manifest", "supportedLocales": ["en", "de"] } } } } } ... } ```
`sap.ui5/routing/propagateTitle` V20 \(1.75\) The `propagateTitle` property can be set to forward title information from a nested component to the router in the root component. ``` { ... "componentUsages": { "myreuse": { "name": "reuse.component", ... } }, "routing": { "config": { ... }, "routes": [{ "name": "home", "pattern": "", "target": { "name": "attachment", "prefix": "atch", "propagateTitle": true } }], "targets": { "attachment": { "type": "Component", "usage": "myreuse", "options": { ... }, ... } } } ... } ```
`sap.ui5/commands` V17 \(1.70\) Specifies provided commands with a unique key/alias. ``` { ... "commands": { "Save": { "shortcut": "Ctrl+S" } }, ... } ```
sap.ui5/routing/routes/targets/<targetName>/usage V16 \(1.66\) A component can be configured as a routing target by defining it in the `componentUsages` section and providing its key to a target via the `usage` property. ``` { ... "componentUsages": { "myreuse": { "name": "reuse.component", "settings": {}, "componentData": {}, "lazy": false } }, "routing": { "config": { ... }, "routes": [{ "name": "home", "pattern": "", "target": { "name": "attachment", "prefix": "atch" } }], "targets": { "attachment": { "type": "Component", "usage": "myreuse", "options": { // optional // define the additional parameter for // instantiating the component instance }, "containerOptions": { // optional // define the additional parameter for // instantiating the component container // which enables the component to be rendered // in the parent control }, "controlId": "page", "controlAggregation": "content" } } } ... } ```
sap.ui5/routing/routes/targets/<targetName>/type sap.ui5/routing/routes/targets/<targetName>/path sap.ui5/routing/routes/targets/<targetName>/name sap.ui5/routing/routes/targets/<targetName>/id V15 \(1.62\) A routing target can load either a view or a component. With the `type` option set to "Component", the `Component.js` which is available under the namespace generated by combining `path` and `name` is loaded and instantiated. ``` { "routing": { "config": { ... }, "routes": [ ... ], "targets": { "/attachment/": { "type": "Component", "path": "reuse.component", "name": "attachment", "options": { ... }, "containerOptions": { ... }, "controlId": "page", "controlAggregation": "content" } } } } ```
`sap.ui5/models//settings/enhanceWith` </td> V12 \(1.56\) The attribute `enhanceWith` can be specified with `bundleUrl`, `bundleUrlRelativeTo` \(either component \(default\) or manifest\) or `bundleName` to provide a list of additional resource bundle configurations to enhance the resource model with. Additional attributes can be found in [Terminologies](/docs/04_Essentials/terminologies-eba8d25.html). ``` { ... "models": { "i18n": { "type": "sap.ui.model.resource.ResourceModel", "uri": "i18n/i18n.properties", "settings": { "enhanceWith": [{ "bundleUrl": "i18n/i18n.properties", "bundleUrlRelativeTo": "manifest" }] } }, ... }, ... } ```
`sap.ui5/componentUsages/lazy` V12 \(1.56\) Indicates whether the component usage should be lazily loaded. Default value: `true` For more information see:[Using and Nesting Components](/docs/04_Essentials/using-and-nesting-components-346599f.html) ``` { ... "componentUsages": { "myusage": { "name": "my.used", "settings": {}, "componentData": {}, "lazy": false } }, ... } ```
`sap.ui5/library/i18n` V10 \(1.52\) Determines whether the library contains an i18n resource. The value can be either a boolean, a string, or \(since 1.78\) an object. A string value represents a bundle URL. Relative URLs are always resolved to the library origin. If no value is set, the default `messagebundle.properties` file is loaded. An object can contain additional resource bundle configuration, e.g. terminologies and supported locales. For the supported features and for sample definitions, see the respective entries at [Terminologies](/docs/04_Essentials/terminologies-eba8d25.html) \(without `bundleUrlRelativeTo`\) and [Supported Locales and Fallback Chain](/docs/04_Essentials/supported-locales-and-fallback-chain-ec753bc.html) . > ### Note: > This attribute is beneficial if the name of the main resource bundle \(properties file\) used by your UI5 library differs from the default name `messagebundle.properties` ``` { ... "library": { "i18n": true }, ... } ```
`sap.ui5/componentUsages` V8 \(1.48\) Specifies the used components with the a unique key/alias. Contains the following: - `name`: Mandatory name of the reuse component - `settings`: Settings of the component - `componentData`: Component data of the component For more information see:[Using and Nesting Components](/docs/04_Essentials/using-and-nesting-components-346599f.html) ``` { ... "componentUsages": { "myusage": { "name": "my.used", "settings": {}, "componentData": {} } }, ... } ```
`sap.ui5/routing/routes/target` V6 \(1.42\) Allows to define titles declaratively in the configuration \(`title` under `targets/` and `titleTarget` under `routes/`\), see [Routing and Navigation](/docs/04_Essentials/routing-and-navigation-3d18f20.html) ``` { ..., "routes": [{ "pattern": "product/{id}/parts", "name": "ProductParts", "target": ["product", "productParts"], "titleTarget": "productParts" }], "targets": { "product": { "type": "View", "path": "shop.products", "name": "Product", "title": "Product" }, "productParts": { "type": "View", "path": "shop.products", "name": "Product", "title": "Product Parts" } }, ... } ``` </td> </tr>
`sap.ui5/models/preload` V5 \(1.38\) Defines whether or not the model is initialized \(preloaded\) before the component instance is created and while loading the component preload and its dependencies ``` "equipment": { "preload": true, "dataSource": "equipment", ... } ```
`sap.ui5/routing/config/async` V4 \(1.34\) General setting for routing that indicates how the views are loaded; if set to `true`, the views are loaded asynchronously \(default is `false`\) For performance reasons, we recommend to always use the `async` setting. This recommendation implies that you have followed the OpenUI5 programming model in general and do **not** rely on any sync-execution depending event-orders. ``` "sap.ui5": { "_version": "1.2.0", ... "routing": { "config": { "viewType": "XML", "async": true ... }, ... ```
`sap.ui5/dependencies/components//lazy` and `dependencies/libs//lazy` </td> V4 \(1.34\) If `dependencies/components//lazy` and `dependencies/libs//lazy` are set to `true`, the attribute indicates in an SAP Fiori app that a dependency shall be lazy loaded \(default is `false`\), see the example for `manifest.json` for the SAP Fiori app. Example for `manifest.json` for the SAP Fiori app: ``` "sap.ui5": { "_version": "1.2.0", ... "dependencies": { "minUI5Version": "1.34.0", "libs": { "sap.m": { "minVersion": "1.34.0" }, "sap.ui.commons": { "minVersion": "1.34.0", "lazy": true } }, "components": { "sap.ui.app.other": { "minVersion": "1.1.0" "lazy": true } } }, ``` </td> </tr>
`sap.app/crossNavigation/inbounds//subTitle` </td> V4 \(1.34\) Used to overwrite the `subTitle` attribute per inbound; use the `` syntax to add the attribute to the `manifest.json` file > ### Note: > Text symbols must be part of the properties file which is defined in `sap.app/i18n` \(default `"i18n/i18n.properties"`\). ``` "sap.app": { "_version": "1.3.0", ... "crossNavigation": { "inbounds": { "contactCreate": { "semanticObject": "Contact", "action": "create", "icon": "sap-icon://add-contact", "title": "", "subTitle": "", ```
`sap.app/subTitle` V4 \(1.34\) Added to the `manifest.json` file by using the `` syntax > ### Note: > Text symbols must be part of the properties file which is defined in `sap.app/i18n` \(default `"i18n/i18n.properties"`\). ``` "sap.app": { "_version": "1.3.0", ... "title": "", "subTitle": "", ```
`sap.app/crossNavigation` V3 \(1.32\) Contains navigation information and is a mandatory attribute in the `manifest.json` file for SAP Fiori apps; the attribute contains two sections: - `sap.app/crossNavigation/inbounds` - Contains inbound intents and signature information - `sap.app/crossNavigation/outbounds` - Contains required intents that are called explicitely by the app, for example, if a business process is split among different apps A and B. If A calls B, A has outbound the intent to address B.
`_version` V3 \(1.32\) Needs to be updated in the `manifest.json` file when migrating to a new manifest version: - `_version` for V3 is 1.2.0 - `_version` for V4 is 1.3.0 - `_version` for V5 is 1.4.0 \(see example\) ``` { "_version": "1.4.0", "sap.app": { ... ```