diff --git a/docs/01_Whats-New/images/Image_Map_What_s_New_60070cb.png b/docs/01_Whats-New/images/Image_Map_What_s_New_60070cb.png index 01ba72c9..2c06a624 100644 Binary files a/docs/01_Whats-New/images/Image_Map_What_s_New_60070cb.png and b/docs/01_Whats-New/images/Image_Map_What_s_New_60070cb.png differ diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-100-27dec1d.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-100-27dec1d.md index 4c3d61b5..588774d8 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-100-27dec1d.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-100-27dec1d.md @@ -553,6 +553,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-101-7733b00.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-101-7733b00.md index b1077825..5ec5cdd3 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-101-7733b00.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-101-7733b00.md @@ -773,6 +773,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-102-f038c99.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-102-f038c99.md index 79cbff6d..983b0258 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-102-f038c99.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-102-f038c99.md @@ -1001,6 +1001,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-103-0e98c76.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-103-0e98c76.md index 41688202..a059e40a 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-103-0e98c76.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-103-0e98c76.md @@ -483,6 +483,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-104-69e567c.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-104-69e567c.md index 26b7fac2..e87b8c07 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-104-69e567c.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-104-69e567c.md @@ -326,6 +326,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-105-4d6c00e.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-105-4d6c00e.md index f2ad3c5e..ac522ded 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-105-4d6c00e.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-105-4d6c00e.md @@ -383,7 +383,7 @@ Feature We have started to work on supporting recursive hierarchies and deferred deletion. Both features are work in progress. As of now, they are flagged as experimental and must not be used for productive applications. -For more information, see [Recursive Hierarchy](../04_Essentials/extension-for-data-aggregation-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_RCH) and [Deleting an Entity](../04_Essentials/deleting-an-entity-2613ebc.md). +For more information, see [Recursive Hierarchy](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_RCH) and [Deleting an Entity](../04_Essentials/deleting-an-entity-2613ebc.md). Changed•Feature•Info Only•1.105 @@ -691,6 +691,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-106-5b497b0.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-106-5b497b0.md index 6606e3cd..e1099e3c 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-106-5b497b0.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-106-5b497b0.md @@ -657,6 +657,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-107-d4ff916.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-107-d4ff916.md index cd34f52b..b3d4447b 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-107-d4ff916.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-107-d4ff916.md @@ -577,6 +577,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-108-66e33f0.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-108-66e33f0.md index 7ca89072..fc00bcfe 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-108-66e33f0.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-108-66e33f0.md @@ -733,6 +733,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-109-3264bd2.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-109-3264bd2.md index a41008ec..9cb77f9e 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-109-3264bd2.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-109-3264bd2.md @@ -669,6 +669,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-110-71a855c.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-110-71a855c.md index c37ddb48..42607fea 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-110-71a855c.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-110-71a855c.md @@ -1030,6 +1030,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-111-7a67837.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-111-7a67837.md index bbec2693..2e898498 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-111-7a67837.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-111-7a67837.md @@ -775,6 +775,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-112-34afc69.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-112-34afc69.md index 74103417..0298a3bb 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-112-34afc69.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-112-34afc69.md @@ -493,6 +493,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-113-a9553fe.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-113-a9553fe.md index 7ed84543..e86e125d 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-113-a9553fe.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-113-a9553fe.md @@ -1169,6 +1169,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-114-890fce1.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-114-890fce1.md index c66f9c90..57b2bf20 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-114-890fce1.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-114-890fce1.md @@ -524,6 +524,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-115-409fde8.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-115-409fde8.md index 4c97fd9c..ab40ed97 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-115-409fde8.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-115-409fde8.md @@ -155,7 +155,7 @@ Feature **Introduction of `sap.ui.mdc` library \(experimental\)** -We have introduced the `sap.ui.mdc` library experimentally. This library contains smart composite controls that are metadata-driven and allow applications to use them with any SAPUI5 model and any data protocol. For more information, see [sap.ui.mdc \(experimental\)](../10_More_About_Controls/sap-ui-mdc-experimental-1dd2aa9.md) and the [API Reference](https://ui5.sap.com/#/api/sap.ui.mdc). +We have introduced the `sap.ui.mdc` library experimentally. This library contains smart composite controls that are metadata-driven and allow applications to use them with any SAPUI5 model and any data protocol. For more information, see [sap.ui.mdc](../10_More_About_Controls/sap-ui-mdc-1dd2aa9.md) and the [API Reference](https://ui5.sap.com/#/api/sap.ui.mdc). New•Feature•Info Only•1.115 @@ -713,6 +713,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-116-ebd6f34.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-116-ebd6f34.md index c7e718c9..754c5fe6 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-116-ebd6f34.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-116-ebd6f34.md @@ -701,6 +701,10 @@ Required **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-117-029d3b4.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-117-029d3b4.md index e8914c35..0eae65c9 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-117-029d3b4.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-117-029d3b4.md @@ -696,7 +696,7 @@ The new version of the SAPUI5 OData V4 model introduces the following features: - Support for read-only hierarchies is now available. - For more information, see [Recursive Hierarchy](../04_Essentials/extension-for-data-aggregation-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_RCH). + For more information, see [Recursive Hierarchy](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_RCH). Changed•Feature•Info Only•1.117 @@ -1055,6 +1055,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-118-3eecbde.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-118-3eecbde.md index 98abae40..910578d8 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-118-3eecbde.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-118-3eecbde.md @@ -821,6 +821,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-119-0b1903a.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-119-0b1903a.md index 325b75d7..0ab724a9 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-119-0b1903a.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-119-0b1903a.md @@ -886,6 +886,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-120-2359b63.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-120-2359b63.md index 6bca7b1d..fb50fd69 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-120-2359b63.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-120-2359b63.md @@ -1126,6 +1126,8 @@ We have deprecated the following entities of `sap.ui.comp`: - `smarttable.ExportType.GW` +We have changed the status of the `sap.ui.webc` library from experimental to deprecated. + For a complete list of all deprecations, see [Deprecated APIs](https://ui5.sap.com/#/api/deprecated). Deprecated•Feature•Info Only•1.120 @@ -1393,6 +1395,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.119](what-s-new-in-sapui5-1-119-0b1903a.md "With this release SAPUI5 is upgraded from version 1.118 to 1.119.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-121-91a4a2f.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-121-91a4a2f.md index 79a06ffc..dd66a21c 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-121-91a4a2f.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-121-91a4a2f.md @@ -1913,7 +1913,7 @@ Control **`sap.ui.comp.smarttable.SmartTable`** -- If you want to hide a property from the table but not from the remaining UI \(for example, if you still want to filter for this property\), you can use the `com.sap.vocabularies.UI.v1.Hidden` annotation. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.p13n.Engine) and the [Sample](https://ui5.sap.com/#/entity/sap.ui.comp.smarttable.SmartTable/sample/sap.ui.comp.sample.smarttable). +- If you want to hide a property from the table but not from the remaining UI \(for example, if you still want to filter for this property\), you can use the `com.sap.vocabularies.UI.v1.Hidden` annotation. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.comp.smarttable.SmartTable%23annotations/Hidden) and the [Sample](https://ui5.sap.com/#/entity/sap.ui.comp.smarttable.SmartTable/sample/sap.ui.comp.sample.smarttable). - To provide the reason why a variant has been applied, for example, for the update of the application status, we have introduced a new `variantContext` parameter for the `afterVariantApply` event. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.comp.smarttable.SmartTable%23events/afterVariantApply). @@ -1937,6 +1937,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") [What's New in SAPUI5 1.119](what-s-new-in-sapui5-1-119-0b1903a.md "With this release SAPUI5 is upgraded from version 1.118 to 1.119.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-122-5d078da.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-122-5d078da.md index d12e5413..948a51cc 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-122-5d078da.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-122-5d078da.md @@ -821,3 +821,152 @@ Info Only +**Related Information** + + +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") + +[What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") + +[What's New in SAPUI5 1.119](what-s-new-in-sapui5-1-119-0b1903a.md "With this release SAPUI5 is upgraded from version 1.118 to 1.119.") + +[What's New in SAPUI5 1.118](what-s-new-in-sapui5-1-118-3eecbde.md "With this release SAPUI5 is upgraded from version 1.117 to 1.118.") + +[What's New in SAPUI5 1.117](what-s-new-in-sapui5-1-117-029d3b4.md "With this release SAPUI5 is upgraded from version 1.116 to 1.117.") + +[What's New in SAPUI5 1.116](what-s-new-in-sapui5-1-116-ebd6f34.md "With this release SAPUI5 is upgraded from version 1.115 to 1.116.") + +[What's New in SAPUI5 1.115](what-s-new-in-sapui5-1-115-409fde8.md "With this release SAPUI5 is upgraded from version 1.114 to 1.115.") + +[What's New in SAPUI5 1.114](what-s-new-in-sapui5-1-114-890fce1.md "With this release SAPUI5 is upgraded from version 1.113 to 1.114.") + +[What's New in SAPUI5 1.113](what-s-new-in-sapui5-1-113-a9553fe.md "With this release SAPUI5 is upgraded from version 1.112 to 1.113.") + +[What's New in SAPUI5 1.112](what-s-new-in-sapui5-1-112-34afc69.md "With this release SAPUI5 is upgraded from version 1.111 to 1.112.") + +[What's New in SAPUI5 1.111](what-s-new-in-sapui5-1-111-7a67837.md "With this release SAPUI5 is upgraded from version 1.110 to 1.111.") + +[What's New in SAPUI5 1.110](what-s-new-in-sapui5-1-110-71a855c.md "With this release SAPUI5 is upgraded from version 1.109 to 1.110.") + +[What's New in SAPUI5 1.109](what-s-new-in-sapui5-1-109-3264bd2.md "With this release SAPUI5 is upgraded from version 1.108 to 1.109.") + +[What's New in SAPUI5 1.108](what-s-new-in-sapui5-1-108-66e33f0.md "With this release SAPUI5 is upgraded from version 1.107 to 1.108.") + +[What's New in SAPUI5 1.107](what-s-new-in-sapui5-1-107-d4ff916.md "With this release SAPUI5 is upgraded from version 1.106 to 1.107.") + +[What's New in SAPUI5 1.106](what-s-new-in-sapui5-1-106-5b497b0.md "With this release SAPUI5 is upgraded from version 1.105 to 1.106.") + +[What's New in SAPUI5 1.105](what-s-new-in-sapui5-1-105-4d6c00e.md "With this release SAPUI5 is upgraded from version 1.104 to 1.105.") + +[What's New in SAPUI5 1.104](what-s-new-in-sapui5-1-104-69e567c.md "With this release SAPUI5 is upgraded from version 1.103 to 1.104.") + +[What's New in SAPUI5 1.103](what-s-new-in-sapui5-1-103-0e98c76.md "With this release SAPUI5 is upgraded from version 1.102 to 1.103.") + +[What's New in SAPUI5 1.102](what-s-new-in-sapui5-1-102-f038c99.md "With this release SAPUI5 is upgraded from version 1.101 to 1.102.") + +[What's New in SAPUI5 1.101](what-s-new-in-sapui5-1-101-7733b00.md "With this release SAPUI5 is upgraded from version 1.100 to 1.101.") + +[What's New in SAPUI5 1.100](what-s-new-in-sapui5-1-100-27dec1d.md "With this release SAPUI5 is upgraded from version 1.99 to 1.100.") + +[What's New in SAPUI5 1.99](what-s-new-in-sapui5-1-99-4f35848.md "With this release SAPUI5 is upgraded from version 1.98 to 1.99.") + +[What's New in SAPUI5 1.98](what-s-new-in-sapui5-1-98-d9f16f2.md "With this release SAPUI5 is upgraded from version 1.97 to 1.98.") + +[What's New in SAPUI5 1.97](what-s-new-in-sapui5-1-97-fa0e282.md "With this release SAPUI5 is upgraded from version 1.96 to 1.97.") + +[What's New in SAPUI5 1.96](what-s-new-in-sapui5-1-96-7a9269f.md "With this release SAPUI5 is upgraded from version 1.95 to 1.96.") + +[What's New in SAPUI5 1.95](what-s-new-in-sapui5-1-95-a1aea67.md "With this release SAPUI5 is upgraded from version 1.94 to 1.95.") + +[What's New in SAPUI5 1.94](what-s-new-in-sapui5-1-94-c40f1e6.md "With this release SAPUI5 is upgraded from version 1.93 to 1.94.") + +[What's New in SAPUI5 1.93](what-s-new-in-sapui5-1-93-f273340.md "With this release SAPUI5 is upgraded from version 1.92 to 1.93.") + +[What's New in SAPUI5 1.92](what-s-new-in-sapui5-1-92-1ef345d.md "With this release SAPUI5 is upgraded from version 1.91 to 1.92.") + +[What's New in SAPUI5 1.91](what-s-new-in-sapui5-1-91-0a2bd79.md "With this release SAPUI5 is upgraded from version 1.90 to 1.91.") + +[What's New in SAPUI5 1.90](what-s-new-in-sapui5-1-90-91c10c2.md "With this release SAPUI5 is upgraded from version 1.89 to 1.90.") + +[What's New in SAPUI5 1.89](what-s-new-in-sapui5-1-89-e56cddc.md "With this release SAPUI5 is upgraded from version 1.88 to 1.89.") + +[What's New in SAPUI5 1.88](what-s-new-in-sapui5-1-88-e15a206.md "With this release SAPUI5 is upgraded from version 1.87 to 1.88.") + +[What's New in SAPUI5 1.87](what-s-new-in-sapui5-1-87-b506da7.md "With this release SAPUI5 is upgraded from version 1.86 to 1.87.") + +[What's New in SAPUI5 1.86](what-s-new-in-sapui5-1-86-4c1c959.md "With this release SAPUI5 is upgraded from version 1.85 to 1.86.") + +[What's New in SAPUI5 1.85](what-s-new-in-sapui5-1-85-1d18eb5.md "With this release SAPUI5 is upgraded from version 1.84 to 1.85.") + +[What's New in SAPUI5 1.84](what-s-new-in-sapui5-1-84-dc76640.md "With this release SAPUI5 is upgraded from version 1.82 to 1.84.") + +[What's New in SAPUI5 1.82](what-s-new-in-sapui5-1-82-3a8dd13.md "With this release SAPUI5 is upgraded from version 1.81 to 1.82.") + +[What's New in SAPUI5 1.81](what-s-new-in-sapui5-1-81-f5e2a21.md "With this release SAPUI5 is upgraded from version 1.80 to 1.81.") + +[What's New in SAPUI5 1.80](what-s-new-in-sapui5-1-80-8cee506.md "With this release SAPUI5 is upgraded from version 1.79 to 1.80.") + +[What's New in SAPUI5 1.79](what-s-new-in-sapui5-1-79-99c4cdc.md "With this release SAPUI5 is upgraded from version 1.78 to 1.79.") + +[What's New in SAPUI5 1.78](what-s-new-in-sapui5-1-78-f09b63e.md "With this release SAPUI5 is upgraded from version 1.77 to 1.78.") + +[What's New in SAPUI5 1.77](what-s-new-in-sapui5-1-77-c46b439.md "With this release SAPUI5 is upgraded from version 1.76 to 1.77.") + +[What's New in SAPUI5 1.76](what-s-new-in-sapui5-1-76-aad03b5.md "With this release SAPUI5 is upgraded from version 1.75 to 1.76.") + +[What's New in SAPUI5 1.75](what-s-new-in-sapui5-1-75-5cbb62d.md "With this release SAPUI5 is upgraded from version 1.74 to 1.75.") + +[What's New in SAPUI5 1.74](what-s-new-in-sapui5-1-74-c22208a.md "With this release SAPUI5 is upgraded from version 1.73 to 1.74.") + +[What's New in SAPUI5 1.73](what-s-new-in-sapui5-1-73-231dd13.md "With this release SAPUI5 is upgraded from version 1.72 to 1.73.") + +[What's New in SAPUI5 1.72](what-s-new-in-sapui5-1-72-521cad9.md "With this release SAPUI5 is upgraded from version 1.71 to 1.72.") + +[What's New in SAPUI5 1.71](what-s-new-in-sapui5-1-71-a93a6a3.md "With this release SAPUI5 is upgraded from version 1.70 to 1.71.") + +[What's New in SAPUI5 1.70](what-s-new-in-sapui5-1-70-f073d69.md "With this release SAPUI5 is upgraded from version 1.69 to 1.70.") + +[What's New in SAPUI5 1.69](what-s-new-in-sapui5-1-69-89a18bd.md "With this release SAPUI5 is upgraded from version 1.68 to 1.69.") + +[What's New in SAPUI5 1.68](what-s-new-in-sapui5-1-68-f94bf93.md "With this release SAPUI5 is upgraded from version 1.67 to 1.68.") + +[What's New in SAPUI5 1.67](what-s-new-in-sapui5-1-67-a6b1472.md "With this release SAPUI5 is upgraded from version 1.66 to 1.67.") + +[What's New in SAPUI5 1.66](what-s-new-in-sapui5-1-66-c9896e9.md "With this release SAPUI5 is upgraded from version 1.65 to 1.66.") + +[What's New in SAPUI5 1.65](what-s-new-in-sapui5-1-65-0f5acfd.md "With this release SAPUI5 is upgraded from version 1.64 to 1.65.") + +[What's New in SAPUI5 1.64](what-s-new-in-sapui5-1-64-0e30822.md "With this release SAPUI5 is upgraded from version 1.63 to 1.64.") + +[What's New in SAPUI5 1.63](what-s-new-in-sapui5-1-63-e8d9da7.md "With this release SAPUI5 is upgraded from version 1.62 to 1.63.") + +[What's New in SAPUI5 1.62](what-s-new-in-sapui5-1-62-771f4d5.md "With this release SAPUI5 is upgraded from version 1.61 to 1.62.") + +[What's New in SAPUI5 1.61](what-s-new-in-sapui5-1-61-d991552.md "With this release SAPUI5 is upgraded from version 1.60 to 1.61.") + +[What's New in SAPUI5 1.60](what-s-new-in-sapui5-1-60-5a0e1f7.md "With this release SAPUI5 is upgraded from version 1.58 to 1.60.") + +[What's New in SAPUI5 1.58](what-s-new-in-sapui5-1-58-7c927aa.md "With this release SAPUI5 is upgraded from version 1.56 to 1.58.") + +[What's New in SAPUI5 1.56](what-s-new-in-sapui5-1-56-108b7fd.md "With this release SAPUI5 is upgraded from version 1.54 to 1.56.") + +[What's New in SAPUI5 1.54](what-s-new-in-sapui5-1-54-c838330.md "With this release SAPUI5 is upgraded from version 1.52 to 1.54.") + +[What's New in SAPUI5 1.52](what-s-new-in-sapui5-1-52-849e1b6.md "With this release SAPUI5 is upgraded from version 1.50 to 1.52.") + +[What's New in SAPUI5 1.50](what-s-new-in-sapui5-1-50-759e9f3.md "With this release SAPUI5 is upgraded from version 1.48 to 1.50.") + +[What's New in SAPUI5 1.48](what-s-new-in-sapui5-1-48-fa1efac.md "With this release SAPUI5 is upgraded from version 1.46 to 1.48.") + +[What's New in SAPUI5 1.46](what-s-new-in-sapui5-1-46-6307539.md "With this release SAPUI5 is upgraded from version 1.44 to 1.46.") + +[What's New in SAPUI5 1.44](what-s-new-in-sapui5-1-44-a0cb7a0.md "With this release SAPUI5 is upgraded from version 1.42 to 1.44.") + +[What's New in SAPUI5 1.42](what-s-new-in-sapui5-1-42-468b05d.md "With this release SAPUI5 is upgraded from version 1.40 to 1.42.") + +[What's New in SAPUI5 1.40](what-s-new-in-sapui5-1-40-fbab50e.md "With this release SAPUI5 is upgraded from version 1.38 to 1.40.") + +[What's New in SAPUI5 1.38](what-s-new-in-sapui5-1-38-f218918.md "With this release SAPUI5 is upgraded from version 1.36 to 1.38.") + diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-123-9d00ac7.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-123-9d00ac7.md index 80ea1393..4e615518 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-123-9d00ac7.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-123-9d00ac7.md @@ -1,7 +1,5 @@ - - # What's New in SAPUI5 1.123 With this release SAPUI5 is upgraded from version 1.122 to 1.123. @@ -9,9 +7,6 @@ With this release SAPUI5 is upgraded from version 1.122 to 1.123. > ### Tip: > If you want to do a search across all versions of the What's New content, you can also find it in the [SAPUI5 What's New viewer](https://help.sap.com/whats-new/67f60363b57f4ac0b23efd17fa192d60). -> ### Note: -> Content marked as **[Preview](https://help.sap.com/docs/whats-new-disclaimer)** is provided as a courtesy, without a warranty, and may be subject to change. For more information, see the [preview disclaimer](https://help.sap.com/docs/whats-new-disclaimer). - **** @@ -56,122 +51,6 @@ Available as of -Upcoming - - - - -Deleted - - - - -Announcement - - - - -**End of Cloud Provisioning for SAPUI5 Versions \(Q2/2024\)** - - - - -**End of Cloud Provisioning for SAPUI5 Versions \(Q2/2024\)** - -> ### Note: -> The following information concerns important upcoming changes for end users. These changes may require end users to adjust and/or test cases to be adapted, but they won't stop or disrupt software or processes. - -The following SAPUI5 versions will be removed from the SAPUI5 Content Delivery Network \(CDN\) after the end of Q2/2024. - -**Minor Versions Reaching Their End of Cloud Provisioning** - -The following versions including all patches will be removed entirely: - -- 1.111 -- 1.112 -- 1.113 -- 1.115 - -**Action**: Upgrade to a version that is still in maintenance. - -**Patch Versions Reaching Their End of Cloud Provisioning** - -The following patches will be removed: - -- Long-term maintenance versions: - - - 1.38.60 to 1.38.61 - - 1.71.55 to 1.71.56 - - 1.84.32 to 1.84.34 - - 1.96.20 to 1.96.22 - - 1.108.11 to 1.108.18 - - **Action**: Upgrade to the latest available patch for the respective SAPUI5 version. - - -For more information, see [Version Overview](https://ui5.sap.com/versionoverview.html). - -**[Preview](https://help.sap.com/docs/whats-new-disclaimer)**•Deleted•Announcement•Info Only•Upcoming - - - - -Info Only - - - - -9999-01-01 - - - - - - -1.124 - - - - -UI Changed - - - - -Announcement - - - - -**Smart Table: Copy Functionality Auto-Enabled** - - - - -**Smart Table: Copy Functionality Auto-Enabled** - -> ### Note: -> The following information concerns important upcoming changes for end users. These changes may require end users to adjust and/or test cases to be adapted, but they won't stop or disrupt software or processes. - -We will enable the copy functionality in smart tables by default. This will include the cell range selection. Apps will automatically get this feature and would have to actively switch it off if they do not want to use it. - -**[Preview](https://help.sap.com/docs/whats-new-disclaimer)**•UI Changed•Announcement•Info Only•1.124 - - - - -Info Only - - - - -2024-05-16 - - - - - - 1.123 @@ -709,3 +588,152 @@ Info Only +**Related Information** + + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + +[What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") + +[What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") + +[What's New in SAPUI5 1.119](what-s-new-in-sapui5-1-119-0b1903a.md "With this release SAPUI5 is upgraded from version 1.118 to 1.119.") + +[What's New in SAPUI5 1.118](what-s-new-in-sapui5-1-118-3eecbde.md "With this release SAPUI5 is upgraded from version 1.117 to 1.118.") + +[What's New in SAPUI5 1.117](what-s-new-in-sapui5-1-117-029d3b4.md "With this release SAPUI5 is upgraded from version 1.116 to 1.117.") + +[What's New in SAPUI5 1.116](what-s-new-in-sapui5-1-116-ebd6f34.md "With this release SAPUI5 is upgraded from version 1.115 to 1.116.") + +[What's New in SAPUI5 1.115](what-s-new-in-sapui5-1-115-409fde8.md "With this release SAPUI5 is upgraded from version 1.114 to 1.115.") + +[What's New in SAPUI5 1.114](what-s-new-in-sapui5-1-114-890fce1.md "With this release SAPUI5 is upgraded from version 1.113 to 1.114.") + +[What's New in SAPUI5 1.113](what-s-new-in-sapui5-1-113-a9553fe.md "With this release SAPUI5 is upgraded from version 1.112 to 1.113.") + +[What's New in SAPUI5 1.112](what-s-new-in-sapui5-1-112-34afc69.md "With this release SAPUI5 is upgraded from version 1.111 to 1.112.") + +[What's New in SAPUI5 1.111](what-s-new-in-sapui5-1-111-7a67837.md "With this release SAPUI5 is upgraded from version 1.110 to 1.111.") + +[What's New in SAPUI5 1.110](what-s-new-in-sapui5-1-110-71a855c.md "With this release SAPUI5 is upgraded from version 1.109 to 1.110.") + +[What's New in SAPUI5 1.109](what-s-new-in-sapui5-1-109-3264bd2.md "With this release SAPUI5 is upgraded from version 1.108 to 1.109.") + +[What's New in SAPUI5 1.108](what-s-new-in-sapui5-1-108-66e33f0.md "With this release SAPUI5 is upgraded from version 1.107 to 1.108.") + +[What's New in SAPUI5 1.107](what-s-new-in-sapui5-1-107-d4ff916.md "With this release SAPUI5 is upgraded from version 1.106 to 1.107.") + +[What's New in SAPUI5 1.106](what-s-new-in-sapui5-1-106-5b497b0.md "With this release SAPUI5 is upgraded from version 1.105 to 1.106.") + +[What's New in SAPUI5 1.105](what-s-new-in-sapui5-1-105-4d6c00e.md "With this release SAPUI5 is upgraded from version 1.104 to 1.105.") + +[What's New in SAPUI5 1.104](what-s-new-in-sapui5-1-104-69e567c.md "With this release SAPUI5 is upgraded from version 1.103 to 1.104.") + +[What's New in SAPUI5 1.103](what-s-new-in-sapui5-1-103-0e98c76.md "With this release SAPUI5 is upgraded from version 1.102 to 1.103.") + +[What's New in SAPUI5 1.102](what-s-new-in-sapui5-1-102-f038c99.md "With this release SAPUI5 is upgraded from version 1.101 to 1.102.") + +[What's New in SAPUI5 1.101](what-s-new-in-sapui5-1-101-7733b00.md "With this release SAPUI5 is upgraded from version 1.100 to 1.101.") + +[What's New in SAPUI5 1.100](what-s-new-in-sapui5-1-100-27dec1d.md "With this release SAPUI5 is upgraded from version 1.99 to 1.100.") + +[What's New in SAPUI5 1.99](what-s-new-in-sapui5-1-99-4f35848.md "With this release SAPUI5 is upgraded from version 1.98 to 1.99.") + +[What's New in SAPUI5 1.98](what-s-new-in-sapui5-1-98-d9f16f2.md "With this release SAPUI5 is upgraded from version 1.97 to 1.98.") + +[What's New in SAPUI5 1.97](what-s-new-in-sapui5-1-97-fa0e282.md "With this release SAPUI5 is upgraded from version 1.96 to 1.97.") + +[What's New in SAPUI5 1.96](what-s-new-in-sapui5-1-96-7a9269f.md "With this release SAPUI5 is upgraded from version 1.95 to 1.96.") + +[What's New in SAPUI5 1.95](what-s-new-in-sapui5-1-95-a1aea67.md "With this release SAPUI5 is upgraded from version 1.94 to 1.95.") + +[What's New in SAPUI5 1.94](what-s-new-in-sapui5-1-94-c40f1e6.md "With this release SAPUI5 is upgraded from version 1.93 to 1.94.") + +[What's New in SAPUI5 1.93](what-s-new-in-sapui5-1-93-f273340.md "With this release SAPUI5 is upgraded from version 1.92 to 1.93.") + +[What's New in SAPUI5 1.92](what-s-new-in-sapui5-1-92-1ef345d.md "With this release SAPUI5 is upgraded from version 1.91 to 1.92.") + +[What's New in SAPUI5 1.91](what-s-new-in-sapui5-1-91-0a2bd79.md "With this release SAPUI5 is upgraded from version 1.90 to 1.91.") + +[What's New in SAPUI5 1.90](what-s-new-in-sapui5-1-90-91c10c2.md "With this release SAPUI5 is upgraded from version 1.89 to 1.90.") + +[What's New in SAPUI5 1.89](what-s-new-in-sapui5-1-89-e56cddc.md "With this release SAPUI5 is upgraded from version 1.88 to 1.89.") + +[What's New in SAPUI5 1.88](what-s-new-in-sapui5-1-88-e15a206.md "With this release SAPUI5 is upgraded from version 1.87 to 1.88.") + +[What's New in SAPUI5 1.87](what-s-new-in-sapui5-1-87-b506da7.md "With this release SAPUI5 is upgraded from version 1.86 to 1.87.") + +[What's New in SAPUI5 1.86](what-s-new-in-sapui5-1-86-4c1c959.md "With this release SAPUI5 is upgraded from version 1.85 to 1.86.") + +[What's New in SAPUI5 1.85](what-s-new-in-sapui5-1-85-1d18eb5.md "With this release SAPUI5 is upgraded from version 1.84 to 1.85.") + +[What's New in SAPUI5 1.84](what-s-new-in-sapui5-1-84-dc76640.md "With this release SAPUI5 is upgraded from version 1.82 to 1.84.") + +[What's New in SAPUI5 1.82](what-s-new-in-sapui5-1-82-3a8dd13.md "With this release SAPUI5 is upgraded from version 1.81 to 1.82.") + +[What's New in SAPUI5 1.81](what-s-new-in-sapui5-1-81-f5e2a21.md "With this release SAPUI5 is upgraded from version 1.80 to 1.81.") + +[What's New in SAPUI5 1.80](what-s-new-in-sapui5-1-80-8cee506.md "With this release SAPUI5 is upgraded from version 1.79 to 1.80.") + +[What's New in SAPUI5 1.79](what-s-new-in-sapui5-1-79-99c4cdc.md "With this release SAPUI5 is upgraded from version 1.78 to 1.79.") + +[What's New in SAPUI5 1.78](what-s-new-in-sapui5-1-78-f09b63e.md "With this release SAPUI5 is upgraded from version 1.77 to 1.78.") + +[What's New in SAPUI5 1.77](what-s-new-in-sapui5-1-77-c46b439.md "With this release SAPUI5 is upgraded from version 1.76 to 1.77.") + +[What's New in SAPUI5 1.76](what-s-new-in-sapui5-1-76-aad03b5.md "With this release SAPUI5 is upgraded from version 1.75 to 1.76.") + +[What's New in SAPUI5 1.75](what-s-new-in-sapui5-1-75-5cbb62d.md "With this release SAPUI5 is upgraded from version 1.74 to 1.75.") + +[What's New in SAPUI5 1.74](what-s-new-in-sapui5-1-74-c22208a.md "With this release SAPUI5 is upgraded from version 1.73 to 1.74.") + +[What's New in SAPUI5 1.73](what-s-new-in-sapui5-1-73-231dd13.md "With this release SAPUI5 is upgraded from version 1.72 to 1.73.") + +[What's New in SAPUI5 1.72](what-s-new-in-sapui5-1-72-521cad9.md "With this release SAPUI5 is upgraded from version 1.71 to 1.72.") + +[What's New in SAPUI5 1.71](what-s-new-in-sapui5-1-71-a93a6a3.md "With this release SAPUI5 is upgraded from version 1.70 to 1.71.") + +[What's New in SAPUI5 1.70](what-s-new-in-sapui5-1-70-f073d69.md "With this release SAPUI5 is upgraded from version 1.69 to 1.70.") + +[What's New in SAPUI5 1.69](what-s-new-in-sapui5-1-69-89a18bd.md "With this release SAPUI5 is upgraded from version 1.68 to 1.69.") + +[What's New in SAPUI5 1.68](what-s-new-in-sapui5-1-68-f94bf93.md "With this release SAPUI5 is upgraded from version 1.67 to 1.68.") + +[What's New in SAPUI5 1.67](what-s-new-in-sapui5-1-67-a6b1472.md "With this release SAPUI5 is upgraded from version 1.66 to 1.67.") + +[What's New in SAPUI5 1.66](what-s-new-in-sapui5-1-66-c9896e9.md "With this release SAPUI5 is upgraded from version 1.65 to 1.66.") + +[What's New in SAPUI5 1.65](what-s-new-in-sapui5-1-65-0f5acfd.md "With this release SAPUI5 is upgraded from version 1.64 to 1.65.") + +[What's New in SAPUI5 1.64](what-s-new-in-sapui5-1-64-0e30822.md "With this release SAPUI5 is upgraded from version 1.63 to 1.64.") + +[What's New in SAPUI5 1.63](what-s-new-in-sapui5-1-63-e8d9da7.md "With this release SAPUI5 is upgraded from version 1.62 to 1.63.") + +[What's New in SAPUI5 1.62](what-s-new-in-sapui5-1-62-771f4d5.md "With this release SAPUI5 is upgraded from version 1.61 to 1.62.") + +[What's New in SAPUI5 1.61](what-s-new-in-sapui5-1-61-d991552.md "With this release SAPUI5 is upgraded from version 1.60 to 1.61.") + +[What's New in SAPUI5 1.60](what-s-new-in-sapui5-1-60-5a0e1f7.md "With this release SAPUI5 is upgraded from version 1.58 to 1.60.") + +[What's New in SAPUI5 1.58](what-s-new-in-sapui5-1-58-7c927aa.md "With this release SAPUI5 is upgraded from version 1.56 to 1.58.") + +[What's New in SAPUI5 1.56](what-s-new-in-sapui5-1-56-108b7fd.md "With this release SAPUI5 is upgraded from version 1.54 to 1.56.") + +[What's New in SAPUI5 1.54](what-s-new-in-sapui5-1-54-c838330.md "With this release SAPUI5 is upgraded from version 1.52 to 1.54.") + +[What's New in SAPUI5 1.52](what-s-new-in-sapui5-1-52-849e1b6.md "With this release SAPUI5 is upgraded from version 1.50 to 1.52.") + +[What's New in SAPUI5 1.50](what-s-new-in-sapui5-1-50-759e9f3.md "With this release SAPUI5 is upgraded from version 1.48 to 1.50.") + +[What's New in SAPUI5 1.48](what-s-new-in-sapui5-1-48-fa1efac.md "With this release SAPUI5 is upgraded from version 1.46 to 1.48.") + +[What's New in SAPUI5 1.46](what-s-new-in-sapui5-1-46-6307539.md "With this release SAPUI5 is upgraded from version 1.44 to 1.46.") + +[What's New in SAPUI5 1.44](what-s-new-in-sapui5-1-44-a0cb7a0.md "With this release SAPUI5 is upgraded from version 1.42 to 1.44.") + +[What's New in SAPUI5 1.42](what-s-new-in-sapui5-1-42-468b05d.md "With this release SAPUI5 is upgraded from version 1.40 to 1.42.") + +[What's New in SAPUI5 1.40](what-s-new-in-sapui5-1-40-fbab50e.md "With this release SAPUI5 is upgraded from version 1.38 to 1.40.") + +[What's New in SAPUI5 1.38](what-s-new-in-sapui5-1-38-f218918.md "With this release SAPUI5 is upgraded from version 1.36 to 1.38.") + diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-124-7f77c3f.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-124-7f77c3f.md new file mode 100644 index 00000000..ac6e54dd --- /dev/null +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-124-7f77c3f.md @@ -0,0 +1,1026 @@ + + +# What's New in SAPUI5 1.124 + +With this release SAPUI5 is upgraded from version 1.123 to 1.124. + +> ### Tip: +> If you want to do a search across all versions of the What's New content, you can also find it in the [SAPUI5 What's New viewer](https://help.sap.com/whats-new/67f60363b57f4ac0b23efd17fa192d60). + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Version + + + +Type + + + +Category + + + +Title + + + +Description + + + +Action + + + +Available as of + +
+ +1.124 + + + +Deprecated + + + +Feature + + + +**Deprecations** + + + +**Deprecations** + +There are currently no major deprecations. For a complete list of all deprecations, see [Deprecated APIs](https://ui5.sap.com/#/api/deprecated). + +Deprecated•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**`sap.m.plugins.CellSelector`** + + + +**`sap.m.plugins.CellSelector`** + +- The `sap.m.plugins.CellSelector` plugin is no longer experimental. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.plugins.CellSelector). + +- We have made the `getSelection` function public. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.plugins.CellSelector%23methods/getSelection). + + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**Decoupling of `sap_bluecrystal` Theme** + + + +**Decoupling of `sap_bluecrystal` Theme** + +The `sap_bluecrystal` theme has now been decoupled from the base theme so that changes of the base theme CSS do not affect the theme any longer. + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.m.Table`** + + + +**`sap.m.Table`** + +You can now use `sap.m.plugins.CellSelector` for cell selection in a responsive table. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.plugins.CellSelector) and the [Sample](https://ui5.sap.com/#/entity/sap.m.Table/sample/sap.m.sample.TableSelectCopy). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.ui.table.AnalyticalTable`, `sap.ui.table.Table`, `sap.ui.table.TreeTable` ** + + + +**`sap.ui.table.AnalyticalTable`, `sap.ui.table.Table`, `sap.ui.table.TreeTable` ** + +We have extended the `MultiSelectionPlugin`: If the number of selected rows is smaller than the set limit of rows, all these rows can be selected at once with a single operation. If there are more rows than the set limit, the first x rows are selected until the limit x has been reached. Now a *Complete* icon is shown to indicate that all rows have been selected. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.table.plugins.MultiSelectionPlugin%23methods/setLimit) and the [Sample](https://ui5.sap.com/#/entity/sap.ui.table.Table/sample/sap.ui.table.sample.MultiSelectionPlugin). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**`sap.ui.mdc` library** + + + +**`sap.ui.mdc` library** + +The library is now no longer experimental. To demonstrate the features of the controls in this library, we have also added more samples in the Demo Kit. + +> ### Note: +> The `Chart` control is still experimental. + +For more information, see [sap.ui.mdc](../10_More_About_Controls/sap-ui-mdc-1dd2aa9.md), the [API Reference](https://ui5.sap.com/#/api/sap.ui.mdc), and the [Samples](https://ui5.sap.com/#/entity/sap.ui.mdc). + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +SAP Fiori Elements + + + +**SAP Fiori Elements for OData V2 and SAP Fiori Elements for OData V4** + + + +**SAP Fiori Elements for OData V2 and SAP Fiori Elements for OData V4** + +The following changes and new features are available for SAP Fiori elements for OData V2 and SAP Fiori elements for OData V4: + +- Responsive tables now support cell-level paste. For more information, see [Copying and Pasting from External Applications to Tables](../06_SAP_Fiori_Elements/copying-and-pasting-from-external-applications-to-tables-f6a8fd2.md). + + +Changed•SAP Fiori Elements•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +SAP Fiori Elements + + + +**SAP Fiori Elements for OData V2** + + + +**SAP Fiori Elements for OData V2** + +The following changes and new features are available for SAP Fiori elements for OData V2: + +- The list report, object page, and analytical list page applications now support a context menu. For more information, see [Tables](../06_SAP_Fiori_Elements/tables-c0f6592.md). + + +Changed•SAP Fiori Elements•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +SAP Fiori Elements + + + +**SAP Fiori Elements for OData V4** + + + +**SAP Fiori Elements for OData V4** + +The following changes and new features are available for SAP Fiori elements for OData V4: + +- The section title is now merged with the control title in custom sections if the custom section has only one control. For more information, see [Adding a Section to an Object Page](../06_SAP_Fiori_Elements/adding-a-section-to-an-object-page-a357047.md). + +- We now support the mass edit feature for fields using a value help with a dropdown list or a rating indicator. For more information, see [Enabling Editing Using a Dialog \(Mass Edit\)](../06_SAP_Fiori_Elements/enabling-editing-using-a-dialog-mass-edit-965ef5b.md). + +- We now support the `value` property on the field building block for JSON model binding. For more information, see [The Field Building Block](../06_SAP_Fiori_Elements/the-field-building-block-5260b9c.md). + +- You can allow end users to choose to hide the label of the `TextArea` control if it is the only control within a section or a subsection. For more information, see [Grouping of Fields](../06_SAP_Fiori_Elements/grouping-of-fields-7d7a0c4.md). + +- We now support dynamic expressions in semantic object annotations. For more information, see [Enabling Quick Views for Link Navigation](../06_SAP_Fiori_Elements/enabling-quick-views-for-link-navigation-307ced1.md). + +- You can now refresh the count and the view content in a list report while using it in multi-view mode. For more information, see [Multiple Views on List Report Tables](../06_SAP_Fiori_Elements/multiple-views-on-list-report-tables-a37df40.md). + +- You can now perform edit operations such as cut and paste, drag and drop, and create on tree tables within a list report or an object page. For more information, see [Tree Tables](../06_SAP_Fiori_Elements/tree-tables-7cf7a31.md). + +- You can now perform certain configurations to define how columns are exported to a spreadsheet. For more information, see [Using the Export Feature](../06_SAP_Fiori_Elements/using-the-export-feature-4bab6f2.md). + +- We now support a new building block for the tree table. For more information, see [Tree Tables](../06_SAP_Fiori_Elements/tree-tables-7cf7a31.md). + +- You can now define a `Common.ExternalID` annotation that displays a readable identifier of an item on the UI instead of the `Edm.Guid` value. The `Common.ExternalID` annotation is supported for both the fields and filter fields. For more information, see [Further Features of the Field](../06_SAP_Fiori_Elements/further-features-of-the-field-f49a0f7.md). + + +Changed•SAP Fiori Elements•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.ui.comp.filterbar.FilterBar/sap.ui.comp.smartfilterbar.SmartFilterBar`** + + + +**`sap.ui.comp.filterbar.FilterBar/sap.ui.comp.smartfilterbar.SmartFilterBar`** + +We've improved accessibility by altering the focus handling in the filter bar and the smart filter bar. This specifically applies to the change in focus position once the filters dialog is closed. For more information, see the [Sample](https://ui5.sap.com/#/entity/sap.ui.comp.smartfilterbar.SmartFilterBar/sample/sap.ui.comp.sample.smartfilterbar.Basic). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.ui.comp.smartfield.SmartField`** + + + +**`sap.ui.comp.smartfield.SmartField`** + +To improve performance, we've introduced the `suppressEmptyStringRequest` property that determines if a query is sent to the back еnd if there is an empty string. Now the query is suppressed by default. To override this setting, set the property to `false`. + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.ui.comp.smartfilterbar.SmartFilterBar`** + + + +**`sap.ui.comp.smartfilterbar.SmartFilterBar`** + +We've enhanced the rendering performance by optimizing the internal structure of the smart filter bar layout. Have in mind that with these modifications, the internal structure of the control has changed, so do not use private methods. + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.ui.integration.widgets.Card`** + + + +**`sap.ui.integration.widgets.Card`** + +We have \(experimentally\) introduced a new `data-help-id` attribute that you can use to connect the card with an end-user help system. Its default value is equal to the `sap.app/id` from the card's manifest. For more information, see the [Help ID](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/learn/configuration/helpId) section in the Card Explorer. + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.m.ActionTile`** + + + +**`sap.m.ActionTile`** + +We've now introduced the `enableDynamicHeight` \(experimental\) property to `sap.m.ActionTile`. If this property is enabled, the height of a tile increases based on the content maintained within the tile. + +For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.ActionTile). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.m.GenericTile`** + + + +**`sap.m.GenericTile`** + +We have the following updates for `sap.m.GenericTile`: + +- We've added `badge` \(experimental\) as a new aggregation that renders a badge on top of the `GenericTile`. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.GenericTile). + +- We've introduced `TileInfo` as a new element that includes all the essential properties required for the `badge` \(experimental\) aggregation. Using this property, developers can create their own type of `badge`. + + For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.TileInfo). + + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.m.HeaderContainer`** + + + +**`sap.m.HeaderContainer`** + +We've now enabled the `snapToRow` property that, if set to `true`, adjusts the height of all the items to match with the largest item in the row within the `HeaderContainer`. The default value of the property is set to `false`. + +For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.HeaderContainer). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.m.plugins.UploadSetwithTable` \(experimental\)** + + + +**`sap.m.plugins.UploadSetwithTable` \(experimental\)** + +The `UploadSetwithTable` plugin \(experimental\) can seamlessly integrate with various types of tables including MDC, Responsive, and Grid tables. It allows you to upload or download one or more files from your device \(desktop, tablet, or phone\). + +You can preview your files using the `sap.m.upload.FilePreviewDialog` control. The `FilePreviewDialog` control only works with the experimental `UploadSetwithTable` plugin. + +For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.plugins.UploadSetwithTable) and the [Sample](https://ui5.sap.com/#/entity/sap.m.plugins.UploadSetwithTable). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**TypeScript** + + + +**TypeScript** + +You can now use the*dts-generator* tool to generate TypeScript type definitions for any custom SAPUI5 library written in JavaScript. This is the same tool that is used for generating the productive type definitions for SAPUI5 and all its libraries. + +For more information, see the [GitHub repo](https://github.com/SAP/ui5-typescript/tree/main/packages/dts-generator) and the [npm package](https://www.npmjs.com/package/@ui5/dts-generator). + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**SAPUI5 OData V4 Model** + + + +**SAPUI5 OData V4 Model** + +The new version of the SAPUI5 OData V4 model introduces the following features: + +- You can now use the experimental feature of moving nodes of a recursive hierarchy using`sap.ui.model.odata.v4.Context#move` with any initial expansion state of the hierarchy. An expansion state can be provided via the `expandTo` property of either the `$$aggregation` binding parameter or the `sap.ui.model.odata.v4.ODataListBinding#setAggregation` API. + + For more information, see the API Reference for [`v4.Context#move`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.Context%23methods/move), [`v4.ODataModel#bindList`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataModel%23methods/bindList), and [`v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding%23methods/setAggregation). + +- If you move a node with the experimental `sap.ui.model.odata.v4.Context#move` API and the moved node has siblings, it is now shown by default at a position assigned by the back end. Alternatively, you now have the option of moving the node to a position before a specified sibling or to the last position among its siblings. + + For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.Context%23methods/move). + +- The tree state is now kept when sorting or filtering a recursive hierarchy. + +- We have introduced the new `$$clearSelectionOnFilter` list binding parameter. When a filter or search is changed, it allows you to automatically deselect records that were selected via the experimental `sap.ui.model.odata.v4.Context#setSelected` API. + + For more information, see the API Reference for [`v4.ODataModel#bindList`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataModel%23methods/bindList) and [`v4.Context#setSelected`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.Context%23methods/setSelected). + + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**Spreadsheet Export** + + + +**Spreadsheet Export** + +You can now use the `preventDefault` method to stop the export process for entities that have a `beforeExport` event without retrieving any data or generating an export file. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.export.ExportHandler%23events/beforeExport). + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Control + + + +**`sap.ui.comp.smarttable.SmartTable`** + + + +**`sap.ui.comp.smarttable.SmartTable`** + +We have introduced the `enableCopy` property in the `SmartTable` control. This property is set to `true` by default and enables the copy-to-clipboard functionality. If it is set, a `sap.m.plugins.CopyProvider` and a `sap.m.plugins.CellSelector` are automatically created and added to the control, unless they already exist. + +> ### Note: +> Apps can set the property to `false` if this behavior is not desired. Refer to the API Reference for further details. + +For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.comp.smarttable.SmartTable%23methods/getEnableCopy) and the [Sample](https://ui5.sap.com/#/entity/sap.ui.comp.smarttable.SmartTable/sample/sap.ui.comp.sample.smarttable). + +Changed•Control•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ +1.124 + + + +Changed + + + +Feature + + + +**Accessibility** + + + +**Accessibility** + +We are now using JAWS 2024 as a reference testing environment in SAPUI5. For more information, see the *Assistive technologies reference testing environment for SAPUI5* SAP Note [2564165](https://me.sap.com/notes/2564165). + +Changed•Feature•Info Only•1.124 + + + +Info Only + + + +2024-05-16 + +
+ diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-125-9d87044.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-125-9d87044.md new file mode 100644 index 00000000..71d8bf04 --- /dev/null +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-125-9d87044.md @@ -0,0 +1,760 @@ + + + + +# What's New in SAPUI5 1.125 + +With this release SAPUI5 is upgraded from version 1.124 to 1.125. + +> ### Tip: +> If you want to do a search across all versions of the What's New content, you can also find it in the [SAPUI5 What's New viewer](https://help.sap.com/whats-new/67f60363b57f4ac0b23efd17fa192d60). + +> ### Note: +> Content marked as **[Preview](https://help.sap.com/docs/whats-new-disclaimer)** is provided as a courtesy, without a warranty, and may be subject to change. For more information, see the [preview disclaimer](https://help.sap.com/docs/whats-new-disclaimer). + +**** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +Version + + + +Type + + + +Category + + + +Title + + + +Description + + + +Action + + + +Available as of + +
+ +Upcoming + + + +Deleted + + + +Announcement + + + +**End of Cloud Provisioning for SAPUI5 Versions \(Q2/2024\)** + + + +**End of Cloud Provisioning for SAPUI5 Versions \(Q2/2024\)** + +> ### Note: +> The following information concerns important upcoming changes for end users. These changes may require end users to adjust and/or test cases to be adapted, but they won't stop or disrupt software or processes. + +The following SAPUI5 versions will be removed from the SAPUI5 Content Delivery Network \(CDN\) after the end of Q2/2024. + +**Minor Versions Reaching Their End of Cloud Provisioning** + +The following versions including all patches will be removed entirely: + +- 1.111 +- 1.112 +- 1.113 +- 1.115 + +**Action**: Upgrade to a version that is still in maintenance. + +**Patch Versions Reaching Their End of Cloud Provisioning** + +The following patches will be removed: + +- Long-term maintenance versions: + + - 1.38.60 to 1.38.61 + - 1.71.55 to 1.71.56 + - 1.84.32 to 1.84.34 + - 1.96.20 to 1.96.22 + - 1.108.11 to 1.108.18 + + **Action**: Upgrade to the latest available patch for the respective SAPUI5 version. + + +For more information, see [Version Overview](https://ui5.sap.com/versionoverview.html). + +**[Preview](https://help.sap.com/docs/whats-new-disclaimer)**•Deleted•Announcement•Info Only•Upcoming + + + +Info Only + + + +9999-01-01 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.mdc.Table`** + + + +**`sap.ui.mdc.Table`** + +In the table in the `View Settings` dialog \(`P13n`\), you can now use the `Select All` option to select all columns at once to make them visible. For more information, see the [Sample](https://ui5.sap.com/#/entity/sap.ui.mdc.Table/sample/sap.ui.mdc.demokit.sample.TableJson). + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.mdc.filterbar.vh.FilterBar`, `sap.ui.mdc.filterbar.vh.CollectiveSearchSelect`** + + + +**`sap.ui.mdc.filterbar.vh.FilterBar`, `sap.ui.mdc.filterbar.vh.CollectiveSearchSelect`** + +To make it easier to find value-help-related entities, we have moved these controls to the `sap.ui.mdc.valuehelp` namespace. + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.table.AnalyticalTable`, `sap.ui.table.Table`, `sap.ui.table.TreeTable` ** + + + +**`sap.ui.table.AnalyticalTable`, `sap.ui.table.Table`, `sap.ui.table.TreeTable` ** + +To enable automatic resizing of columns, we have introduced the `autoResizeColumn` function. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.table.Column%23methods/getAutoResizable). + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Feature + + + +**`sap.m.p13n.Engine` ** + + + +**`sap.m.p13n.Engine`** + +We have added a tutorial that allows you to build and try out your own artifacts based on the controls in the P13n class. For more information, see the [P13nify Everything - Personalization for Any Control](https://github.com/SAP-samples/ui5-p13n-tutorial). + + + +Changed•Feature•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Feature + + + +**`sap.ui.mdc` library** + + + +**`sap.ui.mdc` library** + +We have added a tutorial that allows you to build and try out your own artifacts based on the controls in the `sap.ui.mdc` library. For more information, see the [SAPUI5 MDC Tutorial](https://github.com/SAP-samples/ui5-mdc-json-tutorial). + +Changed•Feature•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.mdc.Table`** + + + +**`sap.ui.mdc.Table`, `sap.ui.mdc.table.DragDropConfig`** + +- We have enhanced the `DropInfo` configuration: You can now use `preventDefault` for the `dragover` event. This way, you can disable dropping on a specific location, for example, between two table rows. To help consumers find out whether to prevent the default of the `dragenter` event when dragging over the edge of two DOM nodes, we have also added the `dropPosition` parameter to the event. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.core.dnd.DropInfo%23events/dragOver) for the `dragOver` event and the [API Reference](https://ui5.sap.com/#/api/sap.ui.mdc.table.DragDropConfig%23events/Summary) for `DragDropConfig`. + +- We have introduced the `browserEvent` parameter for all drag-and-drop-related events in `DragDropConfig` allowing consumers to access the `DataTransfer` object. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.mdc.table.DragDropConfig). + + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.comp.smarttable.SmartTable`** + + + +**`sap.ui.comp.smarttable.SmartTable`** + +- We have now improved the documentation for the `paste` and `beforePaste` events, and these entities are no longer experimental. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.comp.smarttable.SmartTable%23events/Paste) for the `paste` event, the [API Reference](https://ui5.sap.com/#/api/sap.ui.comp.smarttable.SmartTable%23events/beforePaste) for the `beforePaste` event, and the [Sample](https://ui5.sap.com/#/entity/sap.ui.comp.smarttable.SmartTable/sample/sap.ui.comp.sample.smarttable.tablePasteEvent). + +- To support time stamps with a long format in the back end, we now convert time stamps with *equal to* conditions to *between* conditions in the *Define Conditions* dialog of *View Settings*. + + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Deprecated + + + +Feature + + + +**SAPUI5 Resource Model** + + + +**SAPUI5 Resource Model** + +We have deprecated the `async` parameter of the `sap.ui.model.resource.ResourceModel` API. A warning is now logged if the `async` parameter is not set to `true`. + +Deprecated•Feature•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Feature + + + +**SAPUI5 OData V4 Model** + + + +**SAPUI5 OData V4 Model** + +The maintenance of recursive hierarchies is no longer experimental; you can now use it in productive applications. For more information, see [Recursive Hierarchy](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_RCH). + +Changed•Feature•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.comp.smartfield.SmartField`** + + + +**`sap.ui.comp.smartfield.SmartField`** + +For better readability, we have refined the text of the error messages associated with OData type constraints. These messages appear when a smart field has both the `com.sap.vocabularies.UI.v1.TextArrangement` annotation and a `ValueList` annotation with fixed values \(`sap.m.ComboBox`\). + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Feature + + + +**Icon Explorer** + + + +**Icon Explorer** + +We have added the following new icons to the SAP Fiori Tools icon font: + +- business-application-studio +- clone-from-git +- business-accelerator + +Find the icon that fits your needs using the [Icon Explorer](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/iconExplorer/webapp/index.html) tool. + +Changed•Feature•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.m.Carousel`** + + + +**`sap.m.Carousel`** + +You can now display the carousel’s page indicator over the content. To enable this behavior, we have created a new `sap.m.CarouselPageIndicatorPlacementType` enumeration, that replaces the old `sap.m.PlacementType`. The new enumeration has two additional values that you can use for this purpose - `OverContentTop` and `OverContentBottom`. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.Carousel) and the [Sample](https://ui5.sap.com/#/entity/sap.m.Carousel/sample/sap.m.sample.CarouselWithDisplayOptions). + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.m.PlanningCalendar`** + + + +**`sap.m.PlanningCalendar`** + +Using the new `noData` aggregation, you can now set the control to display an illustrated message when there is no data available. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.PlanningCalendar). + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.m.SinglePlanningCalendar`** + + + +**`sap.m.SinglePlanningCalendar`** + +- To enhance the accessibility of the control, we have enabled screen readers to announce information about the number of appointments hidden in the *More* button, along with the corresponding date of these appointments. +- We have added a new `sourceLink` property to the `moreLinkPress` event. The new property enables developers to identify the exact *More* button that has been pressed. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.SinglePlanningCalendar). + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ +1.125 + + + +Changed + + + +Control + + + +**`sap.ui.integration.widgets.Card`** + + + +**`sap.ui.integration.widgets.Card`** + +- You can now set the card to display a custom image loaded from the extension, rather than the default illustrated message. For more information, see the [Custom Image Message](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/explore/component/customImage) sample in the Card Explorer. +- The rendered card now has a `data-help-id` attribute set on its root element. This `data-help-id` is useful when you want to connect the card with a help system for the end user, for example SAP Companion. For more information, see the [Help ID](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/learn/configuration/helpId) section in the Card Explorer. + +Changed•Control•Info Only•1.125 + + + +Info Only + + + +2024-06-13 + +
+ diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-38-f218918.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-38-f218918.md index 93dd888c..8f22a4fc 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-38-f218918.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-38-f218918.md @@ -2192,6 +2192,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-40-fbab50e.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-40-fbab50e.md index 10be7c68..fe17309e 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-40-fbab50e.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-40-fbab50e.md @@ -1136,6 +1136,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-42-468b05d.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-42-468b05d.md index 82afdeb0..2f33e308 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-42-468b05d.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-42-468b05d.md @@ -1602,6 +1602,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-44-a0cb7a0.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-44-a0cb7a0.md index 17bd398f..03690fca 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-44-a0cb7a0.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-44-a0cb7a0.md @@ -1262,6 +1262,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-46-6307539.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-46-6307539.md index 03cb8a14..ddec2677 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-46-6307539.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-46-6307539.md @@ -1715,6 +1715,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-48-fa1efac.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-48-fa1efac.md index 9da1809d..6cf89dc0 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-48-fa1efac.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-48-fa1efac.md @@ -1961,6 +1961,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-50-759e9f3.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-50-759e9f3.md index 5524e2b6..94fee777 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-50-759e9f3.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-50-759e9f3.md @@ -1581,6 +1581,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-52-849e1b6.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-52-849e1b6.md index 06d15a25..7bd380c4 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-52-849e1b6.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-52-849e1b6.md @@ -1942,6 +1942,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-54-c838330.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-54-c838330.md index a206ad5d..1374b4f5 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-54-c838330.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-54-c838330.md @@ -2151,6 +2151,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-56-108b7fd.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-56-108b7fd.md index 111b6755..84eb6480 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-56-108b7fd.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-56-108b7fd.md @@ -1680,6 +1680,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-58-7c927aa.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-58-7c927aa.md index 22018161..fc0916fc 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-58-7c927aa.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-58-7c927aa.md @@ -1762,6 +1762,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-60-5a0e1f7.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-60-5a0e1f7.md index f2ef34e9..03e00643 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-60-5a0e1f7.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-60-5a0e1f7.md @@ -1584,6 +1584,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-61-d991552.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-61-d991552.md index 5cdf1681..1f4093ed 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-61-d991552.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-61-d991552.md @@ -938,6 +938,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-62-771f4d5.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-62-771f4d5.md index 63eb2679..e9de0936 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-62-771f4d5.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-62-771f4d5.md @@ -868,6 +868,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-63-e8d9da7.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-63-e8d9da7.md index 4534dd16..c179376f 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-63-e8d9da7.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-63-e8d9da7.md @@ -810,6 +810,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-64-0e30822.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-64-0e30822.md index fee4f52d..4daf2220 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-64-0e30822.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-64-0e30822.md @@ -865,6 +865,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-65-0f5acfd.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-65-0f5acfd.md index 71aecf3a..aec90397 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-65-0f5acfd.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-65-0f5acfd.md @@ -857,6 +857,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-66-c9896e9.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-66-c9896e9.md index 2c681340..93de59ca 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-66-c9896e9.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-66-c9896e9.md @@ -723,6 +723,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-67-a6b1472.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-67-a6b1472.md index 9a06f66a..38481116 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-67-a6b1472.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-67-a6b1472.md @@ -543,6 +543,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-68-f94bf93.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-68-f94bf93.md index 10fb0fe8..9ecae475 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-68-f94bf93.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-68-f94bf93.md @@ -630,6 +630,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-69-89a18bd.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-69-89a18bd.md index a90612d4..d1647973 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-69-89a18bd.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-69-89a18bd.md @@ -837,6 +837,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-70-f073d69.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-70-f073d69.md index 894e8ec5..9b1917d3 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-70-f073d69.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-70-f073d69.md @@ -651,6 +651,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-71-a93a6a3.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-71-a93a6a3.md index ac55a25c..5687f010 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-71-a93a6a3.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-71-a93a6a3.md @@ -1042,6 +1042,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-72-521cad9.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-72-521cad9.md index a1d15f25..1e8cc896 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-72-521cad9.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-72-521cad9.md @@ -1019,6 +1019,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-73-231dd13.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-73-231dd13.md index d8756efb..df53334e 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-73-231dd13.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-73-231dd13.md @@ -1049,6 +1049,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-74-c22208a.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-74-c22208a.md index e72e8fe7..7ed7e855 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-74-c22208a.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-74-c22208a.md @@ -1269,6 +1269,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-75-5cbb62d.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-75-5cbb62d.md index b28dceba..b49f7434 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-75-5cbb62d.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-75-5cbb62d.md @@ -849,6 +849,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-76-aad03b5.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-76-aad03b5.md index bf3988b9..69a83bb6 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-76-aad03b5.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-76-aad03b5.md @@ -907,6 +907,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-77-c46b439.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-77-c46b439.md index 8e1387d7..12ed6288 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-77-c46b439.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-77-c46b439.md @@ -158,7 +158,7 @@ Feature The new version of the SAPUI5 OData V4 model introduces the following features: -- You can now expand the first node of visually grouped aggregated data using `sap.ui.model.odata.v4.Context#expand`, as described in [Extension for Data Aggregation](../04_Essentials/extension-for-data-aggregation-7d91431.md). +- You can now expand the first node of visually grouped aggregated data using `sap.ui.model.odata.v4.Context#expand`, as described in [Data Aggregation and Recursive Hierarchy](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md). For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding%23methods/setAggregation). @@ -893,6 +893,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-78-f09b63e.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-78-f09b63e.md index fb44a9b9..a683adff 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-78-f09b63e.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-78-f09b63e.md @@ -707,6 +707,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-79-99c4cdc.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-79-99c4cdc.md index 248b5d2a..79d332f0 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-79-99c4cdc.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-79-99c4cdc.md @@ -572,6 +572,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-80-8cee506.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-80-8cee506.md index e3a3fd1b..a45b4612 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-80-8cee506.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-80-8cee506.md @@ -504,6 +504,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-81-f5e2a21.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-81-f5e2a21.md index bbef1732..29674335 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-81-f5e2a21.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-81-f5e2a21.md @@ -849,6 +849,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-82-3a8dd13.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-82-3a8dd13.md index 58519f65..cc9bcead 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-82-3a8dd13.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-82-3a8dd13.md @@ -519,6 +519,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-84-dc76640.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-84-dc76640.md index 2fab429d..d4da3ab3 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-84-dc76640.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-84-dc76640.md @@ -1117,6 +1117,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-85-1d18eb5.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-85-1d18eb5.md index faf9e9e1..d507e578 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-85-1d18eb5.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-85-1d18eb5.md @@ -610,6 +610,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-86-4c1c959.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-86-4c1c959.md index 7102bc09..8928c778 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-86-4c1c959.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-86-4c1c959.md @@ -924,6 +924,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-87-b506da7.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-87-b506da7.md index 1bc1c5de..179a675b 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-87-b506da7.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-87-b506da7.md @@ -199,7 +199,7 @@ Feature The new version of the SAPUI5 OData V4 model introduces the following features: -- A new `additionally` property within the `group` map of the `$$aggregation` list binding parameter. This allows you to define properties that are fetched together with a group level, such as a text for a key. For more information, see [`sap.ui.model.odata.v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation) and [Extension for Data Aggregation](../04_Essentials/extension-for-data-aggregation-7d91431.md). +- A new `additionally` property within the `group` map of the `$$aggregation` list binding parameter. This allows you to define properties that are fetched together with a group level, such as a text for a key. For more information, see [`sap.ui.model.odata.v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation) and [Data Aggregation and Recursive Hierarchy](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md). - Support of the `sap.ui.model.odata.v4.Context#requestSideEffects` method in combination with kept-alive contexts. A list binding context can be kept alive with the `sap.ui.model.odata.v4.Context#setKeepAlive` method introduced with SAPUI5 1.81. @@ -1056,6 +1056,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-88-e15a206.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-88-e15a206.md index 0b26487f..03febc5b 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-88-e15a206.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-88-e15a206.md @@ -970,6 +970,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-89-e56cddc.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-89-e56cddc.md index 7b0f1935..6bc87e0f 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-89-e56cddc.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-89-e56cddc.md @@ -688,6 +688,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-90-91c10c2.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-90-91c10c2.md index e68d530f..53659264 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-90-91c10c2.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-90-91c10c2.md @@ -840,6 +840,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-91-0a2bd79.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-91-0a2bd79.md index 71b243ce..42c8c099 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-91-0a2bd79.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-91-0a2bd79.md @@ -493,6 +493,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-92-1ef345d.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-92-1ef345d.md index e2352ebf..3a62c31a 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-92-1ef345d.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-92-1ef345d.md @@ -633,6 +633,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-93-f273340.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-93-f273340.md index 18a5321c..9a62125c 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-93-f273340.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-93-f273340.md @@ -205,7 +205,7 @@ Feature The new version of the SAPUI5 OData V4 model introduces the following features: -- A `search` property in the `$$aggregation` binding parameter that allows you to specify a search that is executed before the aggregation. Note that this requires the service to support the `search` transformation in `$apply`. For more information, see [Search Before Data Aggregation](../04_Essentials/extension-for-data-aggregation-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_SBDA). +- A `search` property in the `$$aggregation` binding parameter that allows you to specify a search that is executed before the aggregation. Note that this requires the service to support the `search` transformation in `$apply`. For more information, see [Search Before Data Aggregation](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_SBDA). - A `retryAfter` property in the technical details of a message originating from a response with a `Retry-After` header. For more information, see [Accessing the HTTP Status Code](../04_Essentials/server-messages-in-the-odata-v4-model-fbe1cb5.md#loiofbe1cb5613cf4a40a841750bf813238e__section_httpStatus). @@ -766,6 +766,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-94-c40f1e6.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-94-c40f1e6.md index bd608d38..d85bc10b 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-94-c40f1e6.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-94-c40f1e6.md @@ -162,7 +162,7 @@ The new version of the SAPUI5 OData V4 model introduces the following features: - XML templating can now process the `@com.sap.vocabularies.UI.v1.DoNotCheckScaleOfMeasureQuantity` annotation. This annotation prevents the validation of the number of decimals. -- A new `@$ui5.node.groupLevelCount` instance annotation for data aggregation scenarios. It represents the number of direct children of a group node. For more information, see [Extension for Data Aggregation](../04_Essentials/extension-for-data-aggregation-7d91431.md). +- A new `@$ui5.node.groupLevelCount` instance annotation for data aggregation scenarios. It represents the number of direct children of a group node. For more information, see [Data Aggregation and Recursive Hierarchy](../04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md). Changed•Feature•Info Only•1.94 @@ -570,6 +570,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-95-a1aea67.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-95-a1aea67.md index b953f085..f9f0a52e 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-95-a1aea67.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-95-a1aea67.md @@ -480,6 +480,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-96-7a9269f.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-96-7a9269f.md index 55014be5..0d4dc90e 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-96-7a9269f.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-96-7a9269f.md @@ -741,6 +741,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-97-fa0e282.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-97-fa0e282.md index 88e3510c..21846232 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-97-fa0e282.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-97-fa0e282.md @@ -792,6 +792,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-98-d9f16f2.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-98-d9f16f2.md index ee2f0c62..82e47fcf 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-98-d9f16f2.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-98-d9f16f2.md @@ -1074,6 +1074,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-99-4f35848.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-99-4f35848.md index be7104db..60e307b2 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-99-4f35848.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-99-4f35848.md @@ -580,6 +580,10 @@ Info Only **Related Information** +[What's New in SAPUI5 1.123](what-s-new-in-sapui5-1-123-9d00ac7.md "With this release SAPUI5 is upgraded from version 1.122 to 1.123.") + +[What's New in SAPUI5 1.122](what-s-new-in-sapui5-1-122-5d078da.md "With this release SAPUI5 is upgraded from version 1.121 to 1.122.") + [What's New in SAPUI5 1.121](what-s-new-in-sapui5-1-121-91a4a2f.md "With this release SAPUI5 is upgraded from version 1.120 to 1.121.") [What's New in SAPUI5 1.120](what-s-new-in-sapui5-1-120-2359b63.md "With this release SAPUI5 is upgraded from version 1.119 to 1.120.") diff --git a/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md b/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md index 4c1dcde3..a2170ac7 100644 --- a/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md +++ b/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md @@ -181,7 +181,7 @@ Desktop -Latest 2 versions +Latest major 2 versions @@ -275,7 +275,7 @@ Phone and Tablet5,6, 8 -Latest 3 versions supported by Google +Latest major 3 versions supported by Google diff --git a/docs/02_Read-Me-First/deprecated-themes-and-libraries-a87ca84.md b/docs/02_Read-Me-First/deprecated-themes-and-libraries-a87ca84.md index c59c7649..9bf486b3 100644 --- a/docs/02_Read-Me-First/deprecated-themes-and-libraries-a87ca84.md +++ b/docs/02_Read-Me-First/deprecated-themes-and-libraries-a87ca84.md @@ -204,6 +204,23 @@ Note +`sap.sac.grid` + + + + +1.112 + + + + +Removed as of 1.114. Use `sap.sac.df.FlexAnalysis` instead. + + + + + + `sap.ui.suite` diff --git a/docs/02_Read-Me-First/ecmascript-support-0cb44d7.md b/docs/02_Read-Me-First/ecmascript-support-0cb44d7.md index 693a7e6c..280cec1c 100644 --- a/docs/02_Read-Me-First/ecmascript-support-0cb44d7.md +++ b/docs/02_Read-Me-First/ecmascript-support-0cb44d7.md @@ -2,7 +2,7 @@ # ECMAScript Support -Since SAPUI5 1.116, the framework leverages features of modern ECMAScript, up to and including [ES2022](https://262.ecma-international.org/13.0/). You have to consider certain restrictions when using modern ECMAScript with your SAPUI5 project. +Since SAPUI5 1.116, the framework leverages features of modern ECMAScript, up to and including ES2022. You have to consider certain restrictions when using modern ECMAScript with your SAPUI5 project. > ### Caution: > The restrictions described here apply to the usage of modern ECMAScript features in projects that are written in native JavaScript. If your project is written in TypeScript, you only have to make sure that the listed constraints are met by the transpiled code. @@ -562,3 +562,8 @@ Do **not** use a template literal with one or more expressions for the library n > }); > ``` +**Related Information** + + +[ECMAScript2022 Language Specification](https://262.ecma-international.org/13.0/) + diff --git a/docs/03_Get-Started/best-practices-for-developers-28fcd55.md b/docs/03_Get-Started/best-practices-for-developers-28fcd55.md index d5a6b36a..eac9517e 100644 --- a/docs/03_Get-Started/best-practices-for-developers-28fcd55.md +++ b/docs/03_Get-Started/best-practices-for-developers-28fcd55.md @@ -56,15 +56,17 @@ Before attempting to migrate or upgrade to a higher SAPUI5 version, make sure th ### Deprecated APIs -In general, **you must not use deprecated APIs** anymore, such as `sap.ui.getCore()`. Deprecated APIs can be found in the [API Reference](https://ui5.sap.com/#/api/deprecated), in the [What's New Viewer](https://help.sap.com/whats-new/67f60363b57f4ac0b23efd17fa192d60?Type=Deleted%3BDeprecated), and in the reports by our [Support Assistant](../04_Essentials/support-assistant-57ccd7d.md). +In general, **you must not use deprecated APIs** anymore, such as `sap.ui.getCore()`. Deprecated APIs can be found in the [API Reference](https://ui5.sap.com/#/api/deprecated), in the [What's New Viewer](https://help.sap.com/whats-new/67f60363b57f4ac0b23efd17fa192d60?Type=Deleted%3BDeprecated), and in the reports by our [Support Assistant](../04_Essentials/support-assistant-57ccd7d.md) and [UI5 linter](https://github.com/SAP/ui5-linter). For new projects we recommend the use of TypeScript, because usage of deprecated APIs can then be detected easily. Also, see the relevant warnings and errors logged to the browser's dev console during runtime. You might need to increase the `sap-ui-log-level`; for more information, see [Logging and Tracing](../04_Essentials/logging-and-tracing-9f4d62c.md). -Some APIs may be only partially deprecated, for instance passing a non-object `vName` to [`sap.ui.core.theming.Parameters.get`](https://ui5.sap.com/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get) . Refer to the `API Reference` for individual APIs. +Some APIs may be only partially deprecated, for instance passing a non-object `vName` to [`sap.ui.core.theming.Parameters.get`](https://ui5.sap.com/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get) . Refer to the API Reference for individual APIs. **Additional Information:** - [Don't Use Deprecated or Experimental Features](don-t-use-deprecated-or-experimental-features-a8bd1a8.md) +- [Deprecated Core API](../04_Essentials/deprecated-core-api-798dd9a.md) +- [Deprecated Configuration API](../04_Essentials/deprecated-configuration-api-2acafbf.md) - [Use Only Public APIs](use-only-public-apis-b0d5fe2.md) - [Adapting to the Modularization of the Core](../04_Essentials/adapting-to-the-modularization-of-the-core-b8fdf0c.md) - [Deprecated jQuery.sap API Replacement](../04_Essentials/deprecated-jquery-sap-api-replacement-a075ed8.md) @@ -82,7 +84,7 @@ Some APIs may be only partially deprecated, for instance passing a non-object `v - Use `sap.ui.require` for requiring a module lazily at a later point in time. -- Add only valid module IDs from the API Reference \(documented as Module: .../.../..\) to the dependency list. +- Add only valid module IDs from the API Reference \(documented as Module: .../.../...\) to the dependency list. @@ -183,7 +185,7 @@ In the following we'll focus on crucial aspects of app development, specifically - Use asynchronous loading for views, fragments, and components to enhance performance; see, for example, [Deprecated Factories Replacement](../04_Essentials/deprecated-factories-replacement-491bd9c.md). - Implement the `sap.ui.core.IAsyncContentCreation` marker interface in your [Component.js file](../04_Essentials/component-controller-27ce0e4.md) to allow the content to be created fully asynchronously and for a stricter handling of certain types of errors during its view processing. -- Load libraries via the new asynchronous APIs in advance before accessing code. Ensure that dependent librares are preloaded through the `manifest.json` in the `sap.ui5/dependencies/libs` section if not already maintained there. For more information, see [Ensure that Library Preloads are Enabled](../05_Developing_Apps/performance-speed-up-your-app-408b40e.md#loio408b40efed3c416681e1bd8cdd8910d4__section_LibraryPreloads). +- Make sure that dependent libraries and components are preloaded before modules from the respective preload are accessed. For example, if the `sap.f.FlexibleColumnLayout` control is part of the root view, `"sap.f": {}` should be included in the `sap.ui5/dependencies/libs` section of the `manifest.json`. Avoid setting `{ "lazy": true }` if the application does not intend to preload the bundle manually. For more information, see [Ensure that Library Preloads are Enabled](../05_Developing_Apps/performance-speed-up-your-app-408b40e.md#loio408b40efed3c416681e1bd8cdd8910d4__section_LibraryPreloads). **Additional Information:** @@ -231,7 +233,7 @@ When creating instances of SAPUI5 controls programmatically \(i.e. not declarati - During SAPUI5 bootstrapping, assign `module:sap/ui/core/ComponentSupport` or a separate JavaScript file to `data-sap-ui-on-init`. -- Avoid inline scripts or styles in HTML. +- Avoid inline scripts or inline styles. **Additional Information:** @@ -242,6 +244,15 @@ When creating instances of SAPUI5 controls programmatically \(i.e. not declarati ### Component / `manifest.json` +**Component Creation** + +- To create a root component, favor leveraging the `sap/ui/core/ComponentSupport` module over the `sap.ui.core.ComponentContainer`. + +- When creating a component via `sap.ui.core.ComponentContainer`, avoid setting a falsy value to the `manifest` property if the `async` property is kept undefined. Do not set the `async` property to `false`. + +- `sap.ui.core.Component#createComponent` must not be used with `async: false`. + + **`manifest.json`** - Don't use the section `sap.ui5/resources/js` as it's deprecated. Use regular dependencies in the `Component.js` file instead. @@ -272,7 +283,7 @@ Prevent bundling modules \(`Component-preload.js`\) into strings. - Don't use `sap.ui.getCore().byId()` or `Element.getElementById()`. Use `this.byId()` or `this.getView().byId()` to address controls in your views or fragments. -- Don't use native HTML or inline CSS style within your XML view or fragment. Instead, consider using the [`sap.ui.core.HTML`](https://ui5.sap.com/#/api/sap.ui.core.HTML) control or your own notepad control. Existing inline CSS must be migrated to an external style sheet. +- Don't use native HTML, SVG, or inline CSS style within your XML view or fragment. Instead, consider using the [`sap.ui.core.HTML`](https://ui5.sap.com/#/api/sap.ui.core.HTML) control or your own notepad control. Existing inline CSS must be migrated to an external style sheet. - Don't use view cloning via `sap.ui.core.mvc.View#clone` as it's deprecated. Instead, call the respective factory function \(e.g. `XMLView.create`\) with the View's name. @@ -304,7 +315,10 @@ Take care of destroying programatically created models to prevent memory leaks. **OData V2 Model** -[`v2.ODataModel#createEntry`](https://ui5.sap.com/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry) : Defining an array for the `mParameters.properties` is deprecated since SAPUI5 1.120. Pass the initial values as an object instead. +- [`v2.ODataModel#createEntry`](https://ui5.sap.com/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry) : Defining an array for the `mParameters.properties` is deprecated since SAPUI5 1.120. Pass the initial values as an object instead. + +- [`v2.ODataModel#refreshSecurityToken`](https://ui5.sap.com/#/api/sap.ui.model.odata.v2.ODataModel%23methods/refreshSecurityToken) : Pass `true` for the `bAsync` parameter explicitly as its default value is `false`. + **JSON Model** @@ -346,7 +360,7 @@ Implement strict error handling to address critical issues. - When utilizing [`RenderManager#icon`](https://ui5.sap.com/#/api/sap.ui.core.RenderManager%23methods/icon) during rendering, include a dependency to `sap/ui/core/IconPool` in your code. -- Don't use `Control#rerender` to rerender a control as it's deprecated. Use [`Control#invalidate`](https://ui5.sap.com/#/api/sap.ui.core.Control%23methods/invalidate) instead. +- Don't use `Control#rerender` to rerender a control as it's deprecated. Use [`Control#invalidate`](https://ui5.sap.com/#/api/sap.ui.core.Control%23methods/invalidate) instead if required. **Additional Information:** @@ -387,9 +401,9 @@ Implement strict error handling to address critical issues. ### Bundling -Prevent bundling modules \(`Component-preload.js`\) into strings. +Prevent bundling modules \(`library-preload.js`\) into strings. -- Avoid generating the application bundle with an outdated standard Grunt task. Leverage UI5 Tooling to build the bundle. +- Avoid generating the library bundle with an outdated standard Grunt task. Leverage UI5 Tooling to build the bundle. - Avoid declaring `var`, `let`, or `const` in the global scope above `sap.ui.define`. @@ -409,4 +423,6 @@ Prevent bundling modules \(`Component-preload.js`\) into strings. - If tests create implementations of such entities, they must be implemented in a way that a module lookup can find them: either as individual files or as embedded and named `sap.ui.define` statements. - As modules can only be loaded and executed once, each test implementation must have a unique module name. The same name cannot be used multiple times as was the case with globals. +- Transform existing QUnit tests that are based on the outdated QUnit 1 version to using QUnit 2, i.e. `qunit-2.js` and `qunit-2.css`. Make sure to load QUnit only once when initiating QUnit tests. +- Do not rely on the outdated Blanket.js \(`qunit-coverage.js`\) anymore. As of SAPUI5 1.113, code coverage measurement via IstanbulJS \(`qunit-coverage-istanbul.js`\) is the recommended option. For more information, see [Code Coverage Measurement](../04_Essentials/code-coverage-measurement-7ef3242.md). diff --git a/docs/03_Get-Started/keep-your-views-short-and-simple-b0d7db7.md b/docs/03_Get-Started/keep-your-views-short-and-simple-b0d7db7.md index 6b3cac5d..c4bcf8d9 100644 --- a/docs/03_Get-Started/keep-your-views-short-and-simple-b0d7db7.md +++ b/docs/03_Get-Started/keep-your-views-short-and-simple-b0d7db7.md @@ -93,9 +93,7 @@ Things may get a little messy as your app is growing with your requirements. The - Learn how: Walkthrough tutorial [Step 15: Nested Views](step-15-nested-views-df8c9c3.md) -- Find out more: - - - [Reusing UI Parts: Fragments](../04_Essentials/reusing-ui-parts-fragments-36a5b13.md) +- Find out more: [Reusing UI Parts: Fragments](../04_Essentials/reusing-ui-parts-fragments-36a5b13.md) diff --git a/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md b/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md index f92eb23e..f29f5237 100644 --- a/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md +++ b/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md @@ -63,13 +63,12 @@ In the `manifest.json` descriptor file of your app, you can now change the data ```js { - "_version": "1.12.0", + "_version": "1.59.0", "sap.app": { ... "dataSources": { "invoiceRemote": { - - "uri": "Northwind/V2/northwind/northwind.svc/", + "uri": "/V2/Northwind/Northwind.svc/", "type": "OData", "settings": { "odataVersion": "2.0" diff --git a/docs/03_Get-Started/step-15-nested-views-typescript-9bbbfaa.md b/docs/03_Get-Started/step-15-nested-views-typescript-9bbbfaa.md index 7d51a47c..300a912c 100644 --- a/docs/03_Get-Started/step-15-nested-views-typescript-9bbbfaa.md +++ b/docs/03_Get-Started/step-15-nested-views-typescript-9bbbfaa.md @@ -32,7 +32,7 @@ You can view all files at [OpenUI5 TypeScript Walkthrough - Step 15: Nested View In our `webapp/controller` folder we create a new `HelloPanel.controller.ts` file and move the `onShowHello` method from the app controller to it, so we get a reusable asset. ```js -*import Controller from "sap/ui/core/mvc/Controller"; +import Controller from "sap/ui/core/mvc/Controller"; import MessageToast from "sap/m/MessageToast"; import JSONModel from "sap/ui/model/json/JSONModel"; import ResourceModel from "sap/ui/model/resource/ResourceModel"; diff --git a/docs/03_Get-Started/step-20-data-types-typescript-0dad01a.md b/docs/03_Get-Started/step-20-data-types-typescript-0dad01a.md index 8315abd9..2c05cff7 100644 --- a/docs/03_Get-Started/step-20-data-types-typescript-0dad01a.md +++ b/docs/03_Get-Started/step-20-data-types-typescript-0dad01a.md @@ -31,7 +31,7 @@ You can view all files at [OpenUI5 TypeScript Walkthrough - Step 20: Data Types] We want to display in our list view the price in Euro, and typically the currency is part of our data model in the back end. Here this is not the case, so we need to define it directly in the app. We therefore create a controller for the invoice list and define a view model for the currency code for Euro. It is a simple JSON model with just one key `currency` and the value `EUR`. ```js -*import Controller from "sap/ui/core/mvc/Controller"; +import Controller from "sap/ui/core/mvc/Controller"; import JSONModel from "sap/ui/model/json/JSONModel"; /** diff --git a/docs/03_Get-Started/step-25-remote-odata-service-4406244.md b/docs/03_Get-Started/step-25-remote-odata-service-4406244.md index 84ae089a..893e5a98 100644 --- a/docs/03_Get-Started/step-25-remote-odata-service-4406244.md +++ b/docs/03_Get-Started/step-25-remote-odata-service-4406244.md @@ -53,7 +53,7 @@ metadata: type: application framework: name: OpenUI5 - version: "1.123.0" + version: "1.125.1" libraries: - name: sap.m - name: sap.ui.core diff --git a/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md b/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md index 42792f1a..c580a0ce 100644 --- a/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md +++ b/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md @@ -193,12 +193,12 @@ sap.ui.require(["sap/ui/core/Core"], async(Core) => { await Core.ready(); sap.ui.require([ - "ui5/walkthrough/localService/mockserver", - "ui5/walkthrough/test/integration/NavigationJourney" + "ui5/walkthrough/localService/mockserver", + "ui5/walkthrough/test/integration/NavigationJourney" ], (mockserver) => { - // initialize the mock server - mockserver.init(); - QUnit.start(); + // initialize the mock server + mockserver.init(); + QUnit.start(); }); }); ``` diff --git a/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md b/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md index 85da8eca..92ce0b22 100644 --- a/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md +++ b/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md @@ -224,11 +224,11 @@ Both actions are similar from an implementation perspective and the details are - *Order* - For each of the selected items the binding path in the model is retrieved by calling the helper method `getBindingContextPath` on the selected item. Additionally, the data object from the model is fetched by calling `getBindingContext().getObject()` on the item. We update the data object and simply add `10` items to the stock to keep things simple in this example. Then we call the update function on the model with the product path and the new object. This will trigger an OData update request to the back end and a refresh of the model afterwards \(multiple requests are handled together in batch mode\). When the model refreshes, the table will be updated as well because of its binding. + For each of the selected items the binding path in the model is retrieved by calling `getBindingContext().getPath()` on the selected item. Additionally, the data object from the model is fetched by calling `getBindingContext().getObject()` on the item. We update the data object and simply add `10` items to the stock to keep things simple in this example. Then we call the update function on the model with the product path and the new object. This will trigger an OData update request to the back end and a refresh of the model afterwards \(multiple requests are handled together in batch mode\). When the model refreshes, the table will be updated as well because of its binding. - *Remove* - For each of the selected items the binding path in the model is retrieved by calling the helper method `getBindingContextPath` on the selected item. Then, we call the `remove` function on the model with the product path. This triggers an OData `delete` request to the back end and a refresh of the OData model afterwards. Again, when the model is refreshed, the table will be updated as well because of its binding. The ODataModel v2 collects all these requests and only sends one batch request \(this default behavior can be changed\). + For each of the selected items the binding path in the model is retrieved by calling `getBindingContext().getPath()` on the selected item. Then, we call the `remove` function on the model with the product path. This triggers an OData `delete` request to the back end and a refresh of the OData model afterwards. Again, when the model is refreshed, the table will be updated as well because of its binding. The ODataModel v2 collects all these requests and only sends one batch request \(this default behavior can be changed\). For each action we register both a `success` handler and an `error` handler. The `success` handler and `error` handler for each action is the same, but the function is called with different parameters. This allows us to use the same handler function for both the error and success case. Inside the corresponding handlers we simply display a success message once by comparing the current request number with the total number of requests. Furthermore, we assume that all of our requests always succeed. diff --git a/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md b/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md index b2ab0b69..38e044f3 100644 --- a/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md +++ b/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md @@ -383,5 +383,5 @@ We have only listed a part of the `Products.json` entries since the actual value [Smart Filter Bar](../10_More_About_Controls/smart-filter-bar-7bcdffc.md "The sap.ui.comp.smartfilterbar.SmartFilterBar control analyzes the $metadata document of an OData service and renders a FilterBar control that can be used to filter, for example, a table or a chart.") -[Smart Table](../10_More_About_Controls/smart-table-bed8274.md "The sap.ui.comp.smarttable.SmartTable control is used to create different types of tables based on OData metadata. The control allows the user to define personalized table settings.") +[Smart Table](../10_More_About_Controls/smart-table-bed8274.md "The sap.ui.comp.smarttable.SmartTable control is used to create different types of tables based on OData V2 metadata. The control allows the user to define personalized table settings.") diff --git a/docs/04_Essentials/accessibility-322f55d.md b/docs/04_Essentials/accessibility-322f55d.md index d76ef5ec..b360346a 100644 --- a/docs/04_Essentials/accessibility-322f55d.md +++ b/docs/04_Essentials/accessibility-322f55d.md @@ -48,7 +48,7 @@ Depending on your use case please refer to the corresponding accessibility chapt **Related Information** -[Accessibility in SAP Fiori](https://ux.wdf.sap.corp/fiori-design-web/accessibility-in-sap-fiori/ "Accessibility in SAP Fiori") +[Accessibility in SAP Fiori](https://experience.sap.com/fiori-design-web/accessibility-in-sap-fiori/ "Accessibility in SAP Fiori") [Accessibility in the Developing Apps Section](../05_Developing_Apps/accessibility-03b914b.md "Accessibility in the Developing Apps Section") diff --git a/docs/04_Essentials/batch-control-74142a3.md b/docs/04_Essentials/batch-control-74142a3.md index 79689cc3..fadd114f 100644 --- a/docs/04_Essentials/batch-control-74142a3.md +++ b/docs/04_Essentials/batch-control-74142a3.md @@ -14,7 +14,7 @@ The OData V4 model sends requests in the following cases: Example: Update a sales order's note through a property binding with the relative path `Note`, which has a context with path `/SalesOrderList(SalesOrderID='42')` initiating `PATCH SalesOrderList(SalesOrderID='42')` with the note's value as JSON payload. -- **Explicit requests** triggered through API calls like `ODataListBinding.refresh` or `ODataContextBinding.invoke` +- **Explicit requests** initiated through API calls like `ODataListBinding.refresh` or `ODataContextBinding.invoke` For each of these cases, it is possible to specify a group ID of type `string`. diff --git a/docs/04_Essentials/best-practices-for-loading-modules-00737d6.md b/docs/04_Essentials/best-practices-for-loading-modules-00737d6.md index 351f15d4..1b23d1a9 100644 --- a/docs/04_Essentials/best-practices-for-loading-modules-00737d6.md +++ b/docs/04_Essentials/best-practices-for-loading-modules-00737d6.md @@ -41,8 +41,8 @@ A module must always be addressed with the unique module name. The module name i `myLib/MyModuleB.js` ```js -sap.ui.define(["myLib/MyModuleA"], function(MyModuleA){ - ... +sap.ui.define(["myLib/MyModuleA"], function(MyModuleA){ + ... }); ``` @@ -50,23 +50,44 @@ For troubleshooting information with regard to addressing modules, see [What is -### Migrating Deprecated Pseudo Modules +### Migrating Access to Pseudo Modules + +Historically, types that are defined within a `library.js` could be required as if they were modules of their own \(i.e. as "pseudo modules"\). This behavior is deprecated, and the corresponding `library` module should be required instead. The example below showcases three scenarios how types might be used. You can find the corresponding module for each API, enum and control in the API Reference, e.g. [`sap.m.ButtonType`](https://ui5.sap.com/#/api/sap.m.ButtonType) and [`sap.ui.model.FilterType`](https://ui5.sap.com/#/api/sap.ui.model.FilterType). + +- enum types included in a `library.js` + + e.g. you can use `sap.m.ButtonType` by requiring the `sap/m/library` module since it's documented as "Module: sap/m/library" in the API Reference. The type can then be accessed via the library's module export. + +- enum types provided as a standalone module + + e.g. you should require `sap/ui/model/FilterType` directly since it's documented as "Module: sap/ui/model/FilterType" + +- Instances of DataType included in a `library.js` + + e.g. you can use `sap.ui.core.CSSSize` by first requiring the `sap/ui/core/library` module as documented in the API Reference. The DataType itself can then be accessed via the static [`DataType.getType(...)`](https://ui5.sap.com/#/api/sap.ui.base.DataType/methods/sap.ui.base.DataType.getType) API as shown below. + + > ### Note: + > Accessing the DataType instance via the library's module export is also deprecated. -Historically, types that are defined within a `library.js` could be required as standalone modules. This behavior is deprecated, and the corresponding `library` module should be required instead. Like in the example given below, use `sap/m/library` for `sap.m.ButtonType`, since it is documented as "Module: sap/m/library" in the API Reference, but require `sap/ui/model/FilterType`, since it is a genuine module \(documented as "Module: sap/ui/model/FilterType"\). ```js sap.ui.require([ "sap/m/library", // enum sap.m.ButtonType (Module: sap/m/library) - "sap/ui/model/FilterType" // enum sap.ui.model.FilterType (Module: sap/ui/model/FilterType) -], (sapMLib, FilterType) => { + "sap/ui/model/FilterType", // enum sap.ui.model.FilterType (Module: sap/ui/model/FilterType) + "sap/ui/base/DataType", // DataType facade (Module: sap/ui/base/DataType) + "sap/ui/core/library" // includes the DataType "sap.ui.core.CSSSize" (Module: sap/ui/core/library) +], (sapMLib, FilterType, DataType /*, sapUiCoreLib*/) => { const { ButtonType } = sapMLib; + mySapMButton.setType(ButtonType.Emphasized); + myListBinding.filter(myFilter, FilterType.Application); + + const oCSSSize = DataType.getType("sap.ui.core.CSSSize"); + oCSSSize.isValid("20px") // true }); ``` -You can find the corresponding module for each API, enum and control in the API Reference, e.g. [`sap.m.ButtonType`](https://ui5.sap.com/#/api/sap.m.ButtonType) and [`sap.ui.model.FilterType`](https://ui5.sap.com/#/api/sap.ui.model.FilterType). - diff --git a/docs/04_Essentials/bootstrapping-loading-and-initializing-a04b0d1.md b/docs/04_Essentials/bootstrapping-loading-and-initializing-a04b0d1.md index e0c2ae5a..3d71c966 100644 --- a/docs/04_Essentials/bootstrapping-loading-and-initializing-a04b0d1.md +++ b/docs/04_Essentials/bootstrapping-loading-and-initializing-a04b0d1.md @@ -25,6 +25,32 @@ The attributes `data-sap-ui-theme="sap_horizon"` and `data-sap-ui-libs="sap.m"` + + +## `Core.ready` State + +After bootstrapping, you can use the `sap/ui/core/Core` singleton to either `await` the Core's `ready` state or provide a callback function: + +```js +sap.ui.require(["sap/ui/core/Core"], async (Core) => { + // Either usage of Core.ready() as a Promise + await Core.ready(); + // ... + + // Or usage of a callback function + Core.ready(() => { + // ... + }); +}); +``` + +> ### Note: +> The module export of `sap/ui/core/Core` is **not** a class, but the singleton `Core` instance itself. +> +> The `sap.ui.core.Core` class must not be instantiated, except by the framework itself. + + + ## Overview of Bootstrap Base URLs diff --git a/docs/04_Essentials/composite-binding-a2fe8e7.md b/docs/04_Essentials/composite-binding-a2fe8e7.md index e4e452f7..886e01f8 100644 --- a/docs/04_Essentials/composite-binding-a2fe8e7.md +++ b/docs/04_Essentials/composite-binding-a2fe8e7.md @@ -109,7 +109,7 @@ Complex \(or "extended"\) syntax can be used for calculated fields in declarativ ```js - + +## Composite Binding With Static Binding Parts + +An [`sap.ui.model.StaticBinding`](https://ui5.sap.com/#/api/sap.ui.model.StaticBinding) is the way to define a part in a composite binding with a constant value. + +It is useful in cases where you'd like to use a common formatter function or type in multiple composite bindings: With a constant value as part of the binding, you can achieve a different behavior of the **same** formatter function or type in different places. + +**Example 1: Different formatted values with same formatter function** + +> ### Example: +> ```xml +> +> src="{ +> parts: ['deliveryStatus', 'paymentStatus', {value : 'icon'}], +> formatter : 'formatter.formatStatus' +> }" +> tooltip="{ +> parts: ['deliveryStatus', 'paymentStatus', {value : 'tooltip'}], +> formatter: 'formatter.formatStatus' +> }" +> /> +> ``` + +**Example 2: Constant part in type** + +This example uses `sap.ui.model.odata.type.DateTimeWithTimezone` to display only a time zone. For more information, see [Dates, Times, Timestamps, and Time Zones](dates-times-timestamps-and-time-zones-6c9e61d.md). + +> ### Example: +> ```xml +> +> +> ``` + diff --git a/docs/04_Essentials/configuration-of-the-sapui5-runtime-91f08de.md b/docs/04_Essentials/configuration-of-the-sapui5-runtime-91f08de.md index 66570025..9cdbbc6d 100644 --- a/docs/04_Essentials/configuration-of-the-sapui5-runtime-91f08de.md +++ b/docs/04_Essentials/configuration-of-the-sapui5-runtime-91f08de.md @@ -7,7 +7,7 @@ SAPUI5 provides several options for the configuration of the SAPUI5 runtime. The > ### Note: > In earlier framework versions, the configuration options available in SAPUI5 could be found in the [API Reference via the `sap.ui.core.Configuration`](https://ui5.sap.com/#/api/sap.ui.core.Configuration). This legacy module has been deprecated with SAPUI5 1.120 and replaced by a modular, future-proof solution for configuration handling. -When the SAPUI5 bootstrap script is included in a page, the SAPUI5 runtime will automatically be initialized as soon as the script is loaded and executed by the browser. For simple use cases and for a default SAPUI5 installation, this should already be sufficient to build and run UI5 applications. The only configuration option you should specify is `data-sap-ui-compat-version="edge"` to run SAPUI5 with the latest feature set. +When the SAPUI5 bootstrap script is included in a page, the SAPUI5 runtime will automatically be initialized as soon as the script is loaded and executed by the browser. For simple use cases and for a default SAPUI5 installation, this should already be sufficient to build and run UI5 applications.The only configuration option you should specify is `data-sap-ui-compat-version="edge"` to run SAPUI5 with the latest feature set. A typical bootstrap script looks like this: @@ -137,7 +137,7 @@ You can use this attribute instead of attaching individual options with individu diff --git a/docs/04_Essentials/controller-121b8e6.md b/docs/04_Essentials/controller-121b8e6.md index a1dac153..dcf25a66 100644 --- a/docs/04_Essentials/controller-121b8e6.md +++ b/docs/04_Essentials/controller-121b8e6.md @@ -155,7 +155,7 @@ All public methods need to stay compatible: > ### Note: -> Within the methods of a controller extension, the reserved base member allows access to the public functions of the extended controller. +> Within the methods of a controller extension, the reserved `base` member allows access to the public functions of the extended controller. > > Functionality can be called by using `this.base.basePublicMethod()`. diff --git a/docs/04_Essentials/cookbook-for-testing-controls-with-qunit-0ddcc60.md b/docs/04_Essentials/cookbook-for-testing-controls-with-qunit-0ddcc60.md index cffdefce..fea4f793 100644 --- a/docs/04_Essentials/cookbook-for-testing-controls-with-qunit-0ddcc60.md +++ b/docs/04_Essentials/cookbook-for-testing-controls-with-qunit-0ddcc60.md @@ -220,13 +220,13 @@ QUnit.test("Should suppress rerendering when tooltip is set", async(assert) => { -## Testing with Models +## Testing with Server-Side Models -As your control should work together with models, it makes sense to do integration tests with a mock server. This is especially important for more complex controls, e.g. using paging. When testing with models, you need to make sure that you also set up/destroy the model itself inside your test. In the following, we will show an example using the OData V2 mock server: +For bindable properties of your control, it should be possible to bind them to server-side models, i.e. models for which not all data is available on the client but is loaded asynchronously from a server. This is especially important for more complex controls, e.g. with an aggregation which may be bound to a collection loaded using paging. A typical example for server-side models are UI5's OData models. When testing with models, you need to make sure that you also set up/destroy the model itself inside your test. In the following, we will show an example using the OData V2 mock server: ```js -// "MockServer" required from module "sap/ui/app/MockServer" +// "MockServer" required from module "sap/ui/core/util/MockServer" function startMockServer(iRespondAfter) { // configure respond to requests delay @@ -236,7 +236,7 @@ function startMockServer(iRespondAfter) { }); // create mockserver - var oMockServer = new MockServer({ + const oMockServer = new MockServer({ rootUri : "http://sap.com/service/" }); @@ -249,7 +249,7 @@ function startMockServer(iRespondAfter) { //Your test: QUnit.test("Should do something with the model", function (assert) { //Arrange - var oMockServer = startMockServer(0), + const oMockServer = startMockServer(0); // System under Test + Act @@ -264,12 +264,12 @@ After setting up the OData V2 mock server, we set up the model as follows: ```js -// "ODataModel" required from module "sap/ui/model/v2/ODataModel" +// "ODataModel" required from module "sap/ui/model/odata/v2/ODataModel" // "jQuery" required from module "sap/ui/thirdparty/jquery" function createODataModel(sURL, mSettings) { sURL = sURL || "http://sap.com/service/"; - var oModel = new ODataModel(sURL); + const oModel = new ODataModel(sURL); mSettings = mSettings || {}; jQuery.each(mSettings, function(sProperty, vValue) { @@ -283,9 +283,9 @@ function createODataModel(sURL, mSettings) { //Your test: QUnit.test("Should do something with the model", function(assert) { // Arrange - var oModel = createODataModel(), - oMockServer = startMockServer(0), - done = assert.async(); + const oModel = createODataModel(); + const oMockServer = startMockServer(0); + const done = assert.async(); // System under Test + Act + call done(); @@ -306,8 +306,8 @@ We use `clock.tick` to trigger the server response. If you didn't do this, the t //Your test: QUnit.test("Should do something with the model", async(assert) => { // Arrange - const oModel = createODataModel(), - oMockServer = startMockServer(50); + const oModel = createODataModel(); + const oMockServer = startMockServer(50); // System under Test const oLabel = new Label({ diff --git a/docs/04_Essentials/creating-an-entity-c9723f8.md b/docs/04_Essentials/creating-an-entity-c9723f8.md index e42fe3a7..8ad81d8b 100644 --- a/docs/04_Essentials/creating-an-entity-c9723f8.md +++ b/docs/04_Essentials/creating-an-entity-c9723f8.md @@ -210,7 +210,7 @@ You can create such an inline creation row by calling [`sap.ui.model.odata.v4.OD - + ## Context States diff --git a/docs/04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md b/docs/04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md new file mode 100644 index 00000000..ecec71f0 --- /dev/null +++ b/docs/04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.md @@ -0,0 +1,222 @@ + + +# Data Aggregation and Recursive Hierarchy + +The OData V4 Model supports features of the OData Extension for Data Aggregation V4.0 specification. + +The `$$aggregation` binding parameter at [`sap.ui.model.odata.v4.ODataModel#bindList`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataModel/methods/bindList) holds the information needed for data aggregation. It may be changed by [`sap.ui.model.odata.v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation). It cannot be combined with an explicit system query option `$apply`, because it implicitly derives `$apply`. For more information, see the [OData Extension for Data Aggregation V4.0 specification](http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html). + +Since 1.117.0, either a read-only recursive hierarchy \(see below\) or \(pure\) data aggregation is supported, but no mix; `hierarchyQualifier` is the leading property that decides between these two use cases. Since 1.125.0, maintenance of a recursive hierarchy is supported. + +> ### Note: +> - Data aggregation or a recursive hierarchy cannot be combined with grouping via a list binding’s first sorter.For more information, see the `vGroup` parameter of [`sap.ui.model.Sorter`](https://ui5.sap.com/#/api/sap.ui.model.Sorter). +> +> - Data aggregation or a recursive hierarchy do not support the [creation](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/create), [deletion](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/delete), or [refreshing](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/refresh) of data. Additional property requests for an entity that already has been requested \(see [Data Reuse](data-reuse-648e360.md)\) as well as [updating](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/setProperty) of data including [invocation](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataContextBinding/methods/invoke) of bound actions and [side effects](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/requestSideEffects) are only supported for a recursive hierarchy. + + + + + +## Data Aggregation + +For every aggregatable property, you can provide the name of the custom aggregate for a corresponding currency or unit of measure. That custom aggregate must return the single value of a unit in case there is only one, or `null` otherwise \("multi-unit situation"\). For SQL-based services, this might be implemented as follows: + +`CASE WHEN min(Unit) = max(Unit) THEN min(Unit) END` + +Normally, there is also a structural property of the same name as the custom aggregate, providing type information, etc. + +The following client-side instance annotations can be used to access a node level or expansion state. For property bindings, a syntax like `{= %{@$ui5.node.level} }` is usually helpful, because automatic type determination is not available. + +- `@$ui5.node.level` – A non-negative integer which describes the node level; "0" is the single root node which corresponds to the grand total row, "1" are the top-level group nodes, etc. + +- `@$ui5.node.isExpanded` – A boolean which determines whether this node is currently expanded. `true` means yes, `false` means no, `undefined` means that \(the state is undefined because\) this node is a leaf. As an implementation detail, the annotation might simply be missing for leaves. +- `@$ui5.node.groupLevelCount` – An integer value which determines the count of the direct children of a group node. As an implementation detail, the annotation is only available if the corresponding node is expanded. + + +Two scenarios are supported: + +- You can provide properties for grouping and aggregation. An appropriate system query option `$apply` is derived from those. The list binding then still provides a flat list of contexts \("rows"\), but with additional aggregated properties \("columns"\). In addition, you can request grand total values for aggregatable properties. In this case, an extra row appears at the beginning of the flat list of contexts that contains the grand total values, as well as empty values for all other properties. + + > ### Sample Code: + > **Example XML View With Grand Total** + > + > ```js + > rows="{ + > path : '/BusinessPartners', + > parameters : { + > $$aggregation : { + > aggregate : { + > SalesAmount : { + > grandTotal : true, + > unit : 'Currency' + > } + > }, + > group : { + > Country : {additionally : ['Texts/Country']} + > } + > }, + > $filter : 'SalesAmount gt 1000000', + > $orderby : 'SalesAmount desc' + > } + > }"> + > + > + > + > + > + > + > + > ``` + +- You can provide group levels to determine a hierarchy of expandable group levels in addition to the leaf nodes determined by the groupable and aggregatable properties. To achieve this, specify the names of the group levels in the `groupLevels` property of `$$aggregation`. + + Group levels can be combined with the system query option `$count : true`; for more information, see [Binding Collection Inline Count](binding-collection-inline-count-77d2310.md). Group levels can only be combined with filtering before the aggregation \(see below\). Note how an `$orderby` option can address groups across all levels. For every aggregatable property, you can request subtotals and a grand total individually. + + > ### Sample Code: + > **Example XML View With Hierarchy** + > + > ```js + > rows="{ + > path : '/BusinessPartners', + > parameters : { + > $$aggregation : { + > aggregate : { + > SalesAmount : { + > grandTotal : true, + > subtotals : true, + > unit : 'Currency' + > } + > }, + > group : { + > Country : {additionally : ['CountryText']}, + > Region : {additionally : ['RegionText']} + > }, + > groupLevels : ['Country','Region','Segment'] + > }, + > $count : false, + > $orderby : 'Country,Region desc,Segment', + > filters : {path : \'Region\', operator : \'GE\', value1 : \'Mid\'} + > } + > }"> + > + > + > + > + > + > + > + > + > + > + > + > ``` + + +For aggregatable properties where grand total or subtotal values are requested, you can globally choose where these should be displayed: + +- at the bottom only, +- at both the top and bottom, +- at the top only \(default\). + +Use the `grandTotalAtBottomOnly` or `subtotalsAtBottomOnly` property with values `true` or `false`, respectively, or simply omit it. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation) in the Demo Kit. + + + + + +## Filtering + +Filters are provided to the list binding as described in [Filtering](filtering-5338bd1.md). The `Filter` objects are analyzed automatically to perform the filtering before the aggregation where possible using the `filter()` transformation. The remaining filters, including the provided `$filter` parameter of the binding, are applied after the aggregation either via the system query option `$filter` or within the system query option `$apply`, using again the `filter()` transformation. + +Note that `Filter` objects are not supported for aggregatable properties with an alias.For more information, see the `name` property of the `aggregate` map of the `oAggregation` parameter of [`v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding%23methods/setAggregation). + + + + + +## Search Before Data Aggregation + +You can provide a search string to be applied before data aggregation via the `oAggregation.search` parameter of [ODataListBinding\#setAggregation](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation). It works like the ["5.1.7 System Query Option $search"](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions-complete.html#_Toc453752364), but is applied before data aggregation, not after it. Note that certain content will break the syntax of the `$apply` system query option when embedded into a `search()` transformation and thus result in an invalid request. If the OData service supports the [ODATA-1452](https://issues.oasis-open.org/browse/ODATA-1452) proposal, then the command system query option when embedded into a `ODataUtils.formatLiteral(sSearch, "Edm.String");` should be used to encapsulate the whole search string beforehand \(see [sap.ui.model.odata.v4.ODataUtils.formatLiteral](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataUtils/methods/sap.ui.model.odata.v4.ODataUtils.formatLiteral)\). Otherwise, it might be wise to restrict your search input accordingly. + + + + + +## Additional Properties + +For each groupable property, you can define an optional list of strings that provides the paths to properties \(like texts or attributes\) related to this groupable property in a 1:1 relation. They are requested additionally via `groupby` and must not change the actual grouping; a `unit` for an aggregatable property must not be repeated there. + + + + + +## Recursive Hierarchy + +You can use a list binding to display hierarchical data \("a tree"\) inside a table. Read-only hierarchies are supported since 1.117.0 while maintenance is supported since 1.125.0. Such a recursive hierarchy is described by a pair of ["Org.OData.Aggregation.V1.RecursiveHierarchy"](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Aggregation.V1.html#RecursiveHierarchy) and ["com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy"](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md) annotations at the list binding's entity type, and you need to use the same qualifier for both of these annotations - this is called the **hierarchy qualifier**. If the `hierarchyQualifier` property of `$$aggregation` is present, a recursive hierarchy without data aggregation is defined, and the only other supported properties are `expandTo`, which optionally specifies the number of initially expanded levels as a positive integer, and `search` \(see [Search Before Data Aggregation](data-aggregation-and-recursive-hierarchy-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_SBDA) above\). Sorting and filtering can be done as usual \(both as system query options and as UI5 objects\), but `$search` is not supported \(use `search` instead, see above\). Note how this influences [`v4.ODataListBinding#getCount`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/getCount)! You can use the [`v4.ODataListBinding#getAggregation`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/getAggregation) with the new `bVerbose` parameter to access some details from the above-mentioned annotations. The [`v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation) method can be used to change `$$aggregation`.The following properties are required from a ["com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy"](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md) annotation: + +- DistanceFromRoot +- DrillState +- LimitedDescendantCount +- LimitedRank + +Actions and functions can be invoked as usual. Side effects are supported both for single rows and the entire list \("side-effects refresh"; see [`v4.Context#requestSideEffects`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/requestSideEffects) for details\), even if they affect the hierarchy \(node IDs, parent/child relations, or sibling order\) itself. The current tree state with respect to [`expanded`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/expand) and [collapsed](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/collapse) nodes \(see [`v4.Context#isExpanded`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/isExpanded)\) is kept even in case of such a side-effects refresh. + +The `@$ui5.node.level` and `@$ui5.node.isExpanded` client-side instance annotations can be used as described above to access a node level or expansion state. A context's index refers to its position in the list binding's "flat" collection. You can use [`v4.Context#getParent`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/getParent) to access a node's parent; if the parent is not yet known, [`v4.Context#requestParent`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/requestParent) can be used to request it from the server. The [`v4.Context#isAncestorOf`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/isAncestorOf) API also helps to inspect the parent/child relationship \(note that [`v4.ODataListBinding#getRootBinding`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/getRootBinding) is unrelated!\). + +Since 1.125.0, a recursive hierarchy need not be read-only, but maintenance is supported, namely: + +- **Update of arbitrary properties**, including any corresponding side effects. Note that a side-effects refresh needs to be requested explicitly if the change affects the hierarchy \(node IDs, parent/child relations, or sibling order\); this is not done by the model itself. +- **Creation of new nodes**, either as new root nodes or below an existing parent node. Creation is even supported if the parent was a leaf before, however it is not supported for a collapsed parent.For more details, see [`v4.ODataListBinding#create`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/create) and "`@$ui5.node.parent`" therein. +- **Deletion of existing nodes**; see [`v4.Context#delete`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/delete). Note that the deletion is first done on the server and only later shown on the client. Thus, the group ID must not have submit mode "API". +- **Moving of nodes**. You can change the parent node, including turning a child node into a root node and vice versa, and you can also change the sibling position, including making a node the last one among its siblings or moving it just before a specified sibling. For more details, see [`v4.Context#move`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/move). Note that `nextSibling` requires a ["com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchyActions"](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchyActions) annotation with at least a `ChangeNextSiblingAction`. + +Note that only one such change must be pending at any point in time. That is, you must wait for one change to be completed before starting the next change. The only exception is property updates, for which multiple properties can be combined as usual. + + + +### Example Requests + +The [`TopLevels`](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#TopLevels) function is fundamental for recursive hierarchies. It describes the input set underlying the hierarchy \(see the list binding's path\) and specifies which recursive hierarchy is built on top \(see `hierarchyQualifier` above\). It takes care to initially expand a certain number of levels \(see `expandTo` above\) and later to expand or collapse certain nodes in order to keep the tree state during a side-effects refresh. + +A typical request to read the first page of a hierarchical table may look like this: + +`GET /sap/opu/odata4/IWBEP/TEA/default/IWBEP/TEA_BUSI/0001/EMPLOYEES?$apply=orderby(AGE)/com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID',Levels=2)&$select=AGE,DescendantCount,DistanceFromRoot,DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=115` + +Note how the sibling\(!\) order is specified via an [`orderby`](https://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs03/odata-data-aggregation-ext-v4.0-cs03.html#Transformationorderby) transformation \(see the list binding's sorters as well as `$orderby`\). The list binding's path would be "`/EMPLOYEES` ", and `$$aggregation` looks as follows. The model's `autoExpandSelect` parameter does its magic, and `$count&$skip&$top` is taken care of automatically by the list binding. + +```xml +
+``` + +If the list binding uses `$count: true`, for example to show this count as part of a title, an extra request is sent once \(not each time when scrolling, but of course again after a \(side-effects\) refresh\). It includes any custom query options as well as filter and search criteria: `GET /sap/opu/odata4/IWBEP/TEA/default/IWBEP/TEA_BUSI/0001/EMPLOYEES/$count?sap-client=123&$filter=AGE ge 0 and (Is_Manager)&$search=covfefe` + +With filter and search, the main request looks a bit more complicated and includes an [`ancestors`](https://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs03/odata-data-aggregation-ext-v4.0-cs03.html#Transformationsancestorsanddescendants) transformation beforehand: GET /sap/opu/odata4/IWBEP/TEA/default/IWBEP/TEA_BUSI/0001/EMPLOYEES?$apply=ancestors($root/EMPLOYEES,OrgChart,ID,filter(AGE ge 0 and (Is_Manager))/search(covfefe),keep start)/orderby(AGE)/com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID',Levels=2)&$select=AGE,DescendantCount,DistanceFromRoot,DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=115 + +When a node is expanded individually, a request for its children is sent using a [`descendants`](https://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs03/odata-data-aggregation-ext-v4.0-cs03.html#Transformationsancestorsanddescendants) transformation, for example: GET /sap/opu/odata4/IWBEP/TEA/default/IWBEP/TEA_BUSI/0001/EMPLOYEES?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)/orderby(AGE)&$select=AGE,DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=6 + +When keeping the expand/collapsed state of nodes, the `TopLevels` function's `ExpandLevels` parameter is needed, for example: GET /sap/opu/odata4/IWBEP/TEA/default/IWBEP/TEA_BUSI/0001/EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID',Levels=2,ExpandLevels=[{NodeID : "8", Levels : 0}, {NodeID : "1", Levels : 1}])&... + +When moving a node, it is PATCHed with a payload like `"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('9')"`, which points to the new parent. When creating a new node, a similar payload is used to point to the new parent as part of the POST. For root nodes, a `null` value is sent. To determine a node's sibling position, the ["com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchyActions"](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchyActions) annotation's `ChangeNextSiblingAction` is invoked with a payload like `NextSibling : {ID : "3" }`; a `null` value is used to make a node the last sibling. + diff --git a/docs/04_Essentials/descriptor-dependencies-to-libraries-and-components-8521ad1.md b/docs/04_Essentials/descriptor-dependencies-to-libraries-and-components-8521ad1.md index 19eb8570..2383ca4c 100644 --- a/docs/04_Essentials/descriptor-dependencies-to-libraries-and-components-8521ad1.md +++ b/docs/04_Essentials/descriptor-dependencies-to-libraries-and-components-8521ad1.md @@ -64,16 +64,14 @@ sap.ui.define(['sap/ui/core/Lib'], function(Library) { ``` > ### Note: -> In all cases, the lazy libraries need to be loaded manually in the application or library via the `sap/ui/core/Lib.load` API: +> In all cases, the lazy libraries need to be loaded manually in the application or library via the [`sap/ui/core/Lib.load`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.load) API: > > ``` -> Library.load("sap.suite.ui.commons").then(...); +> Lib.load({name: "..."}).then(/*...*/); > ``` > ### Tip: > Execute the `load` method before any resource of the library is required to preload the complete library instead of loading each resource individually. -> -> Always use the async API as this is the preferred and performant way. If your code relies on synchronous loading, it needs to be refactored to support the async API. @@ -83,15 +81,9 @@ sap.ui.define(['sap/ui/core/Lib'], function(Library) { **Scenario 1:** UI library contains multiple components -In this scenario, the library is the leading container and **no** component preload is available. This means, that you maintain the library dependency as described above. This is true for all kinds of component dependencies, also for `sap.ui5/extends/component`. If the extended component originates in a library, do **not** use `sap.ui5.extends/component`, but only declare the library dependency. Otherwise, the component dependency causes a 404 request. - -For loading lazy components inside a library, proceed with the library mechanisms as described above: +In this scenario, the library is the leading container and **no** component preload is available. This means, that you maintain the library dependency as described above. This is true for all kinds of component dependencies, also for `sap.ui5/extends/component`. If the extended component originates in a library, do **not** use `sap.ui5/extends/component`, but only declare the library dependency. Otherwise, the component dependency causes a 404 request. -``` -sap.ui.define(['sap/ui/core/Lib'], function(Library) { - Library.load("sap.suite.ui.commons").then(...); // lazy loading -}); -``` +For loading lazy components inside a library, proceed with the library mechanisms as described above. **Scenario 2:** Standalone component @@ -125,7 +117,7 @@ For loading and instantiating \(lazy\) standalone components, use the `createCom // Asynchronously (default) creates a new component instance. // The given name parameter has to correspond to an entry in the "sap.ui5/componentUsages" section of the manifest.json. -var oReuseComponentPromise = this.createComponent("myReuseComponent"); +var pReuseComponentPromise = this.createComponent("myReuseComponent"); ``` @@ -145,7 +137,7 @@ For more information, see: [Using and Nesting Components](using-and-nesting-comp [Using and Nesting Components](using-and-nesting-components-346599f.md "You can use a ComponentContainer to wrap a UIComponent and reuse it anywhere within the SAPUI5 control tree. With the ComponentContainer you can nest components inside other components.") -[API Reference: `loadLibrary`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/loadLibrary) +[API Reference: `sap/ui/core/Lib.load`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.load) [API Reference: `sap.ui.core.Component`](https://ui5.sap.com/#/api/sap.ui.core.Component) diff --git a/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md b/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md index dd39d567..7de26830 100644 --- a/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md +++ b/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md @@ -1106,6 +1106,23 @@ Version 64 1.63.0 + + + + + +
+ +Version 65 + + + +\>=1.124 + + + +1.64.0 +
@@ -1948,7 +1965,7 @@ Two settings can be defined per resource: Mandatory; specifies the external dependencies that are loaded by the SAPUI5 core during the initialization phase of the component and used afterwards. These are the following libraries or components: -- `minUI5Version`: Mandatory; Minimum version of SAPUI5 that your component requires; this information ensures that the features of the SAPUI5 runtime version of the component are available. As SAPUI5 does not currently enforce use of the correct version, the `minUI5Version` is used for information purposes only. If the minimum SAPUI5 version criteria is not fulfilled, a warning is issued in the console log. +- `minUI5Version`: Mandatory; Minimum version of SAPUI5 that your component requires; this information ensures that the features of the SAPUI5 runtime version of the component are available. This must be either a specific version or 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. As SAPUI5 does not currently enforce use of the correct version, the `minUI5Version` is used for information purposes only. If the minimum SAPUI5 version criteria is not fulfilled, a warning is issued in the console log. - `libs`: ID \(namespace\) of the libraries that the SAPUI5 core should load for use in the component. If your app requires a minimum version of the lib, specify the `minVersion` for information purposes. Specify `lazy` to indicate that the lib shall be lazy loaded. @@ -2489,7 +2506,7 @@ Current version of the `manifest.json` ``` { - "_version": "1.63.0", + "_version": "1.64.0", "start_url": "index.html", @@ -2741,7 +2758,7 @@ Current version of the `manifest.json` }] }, "dependencies": { - "minUI5Version": "1.123.0", + "minUI5Version": "1.124.0", "libs": { "sap.m": { "minVersion": "1.34.0" diff --git a/docs/04_Essentials/extension-for-data-aggregation-7d91431.md b/docs/04_Essentials/extension-for-data-aggregation-7d91431.md deleted file mode 100644 index 046a98fb..00000000 --- a/docs/04_Essentials/extension-for-data-aggregation-7d91431.md +++ /dev/null @@ -1,168 +0,0 @@ - - -# Extension for Data Aggregation - -The OData V4 Model supports features of the OData Extension for Data Aggregation V4.0 specification. - -The `$$aggregation` binding parameter at [`sap.ui.model.odata.v4.ODataModel#bindList`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataModel/methods/bindList) holds the information needed for data aggregation. It may be changed by [`sap.ui.model.odata.v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation). It cannot be combined with an explicit system query option `$apply`, because it implicitly derives `$apply`. For more information, see the [OData Extension for Data Aggregation V4.0 specification](http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html). - -Since 1.105.0, either a recursive hierarchy \(see below\) or \(pure\) data aggregation is supported, but no mix; `hierarchyQualifier` is the leading property that decides between these two use cases - **this is an experimental API**. - -> ### Note: -> - Data aggregation or a recursive hierarchy cannot be combined with grouping via a list binding’s first sorter.For more information, see the `vGroup` parameter of [`sap.ui.model.Sorter`](https://ui5.sap.com/#/api/sap.ui.model.Sorter). -> -> - Data aggregation or a recursive hierarchy do not support the [creation](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataListBinding/methods/create), [deletion](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/delete), or [refreshing](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/refresh) of data. Additional property requests for an entity that already has been requested \(see [Data Reuse](data-reuse-648e360.md)\) as well as [updating](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/setProperty) of data including [invocation](https://ui5.sap.com/#api/sap.ui.model.odata.v4.ODataContextBinding/methods/invoke) of bound actions and [side effects](https://ui5.sap.com/#api/sap.ui.model.odata.v4.Context/methods/requestSideEffects) are only supported for a recursive hierarchy. - - - - - -## Data Aggregation - -For every aggregatable property, you can provide the name of the custom aggregate for a corresponding currency or unit of measure. That custom aggregate must return the single value of a unit in case there is only one, or `null` otherwise \("multi-unit situation"\). For SQL-based services, this might be implemented as follows: - -`CASE WHEN min(Unit) = max(Unit) THEN min(Unit) END` - -Normally, there is also a structural property of the same name as the custom aggregate, providing type information, etc. - -The following client-side instance annotations can be used to access a node level or expansion state. For property bindings, a syntax like `{= %{@$ui5.node.level} }` is usually helpful, because automatic type determination is not available. - -- `@$ui5.node.level` – A non-negative integer which describes the node level; "0" is the single root node which corresponds to the grand total row, "1" are the top-level group nodes, etc. - -- `@$ui5.node.isExpanded` – A boolean which determines whether this node is currently expanded. `true` means yes, `false` means no, `undefined` means that \(the state is undefined because\) this node is a leaf. As an implementation detail, the annotation might simply be missing for leaves. -- `@$ui5.node.groupLevelCount` – An integer value which determines the count of the direct children of a group node. As an implementation detail, the annotation is only available if the corresponding node is expanded. - - -Two scenarios are supported: - -- You can provide properties for grouping and aggregation. An appropriate system query option `$apply` is derived from those. The list binding then still provides a flat list of contexts \("rows"\), but with additional aggregated properties \("columns"\). In addition, you can request grand total values for aggregatable properties. In this case, an extra row appears at the beginning of the flat list of contexts that contains the grand total values, as well as empty values for all other properties. - - > ### Sample Code: - > **Example XML View With Grand Total** - > - > ```js - > rows="{ - > path : '/BusinessPartners', - > parameters : { - > $$aggregation : { - > aggregate : { - > SalesAmount : { - > grandTotal : true, - > unit : 'Currency' - > } - > }, - > group : { - > Country : {additionally : ['Texts/Country']} - > } - > }, - > $filter : 'SalesAmount gt 1000000', - > $orderby : 'SalesAmount desc' - > } - > }"> - > - > - > - > - > - > - > - > ``` - -- You can provide group levels to determine a hierarchy of expandable group levels in addition to the leaf nodes determined by the groupable and aggregatable properties. To achieve this, specify the names of the group levels in the `groupLevels` property of `$$aggregation`. - - Group levels can be combined with the system query option `$count : true`; for more information, see [Binding Collection Inline Count](binding-collection-inline-count-77d2310.md). Group levels can only be combined with filtering before the aggregation \(see below\). Note how an `$orderby` option can address groups across all levels. For every aggregatable property, you can request subtotals and a grand total individually. - - > ### Sample Code: - > **Example XML View With Hierarchy** - > - > ```js - > rows="{ - > path : '/BusinessPartners', - > parameters : { - > $$aggregation : { - > aggregate : { - > SalesAmount : { - > grandTotal : true, - > subtotals : true, - > unit : 'Currency' - > } - > }, - > group : { - > Country : {additionally : ['CountryText']}, - > Region : {additionally : ['RegionText']} - > }, - > groupLevels : ['Country','Region','Segment'] - > }, - > $count : false, - > $orderby : 'Country,Region desc,Segment', - > filters : {path : \'Region\', operator : \'GE\', value1 : \'Mid\'} - > } - > }"> - > - > - > - > - > - > - > - > - > - > - > - > ``` - - -For aggregatable properties where grand total or subtotal values are requested, you can globally choose where these should be displayed: - -- at the bottom only, -- at both the top and bottom, -- at the top only \(default\). - -Use the `grandTotalAtBottomOnly` or `subtotalsAtBottomOnly` property with values `true` or `false`, respectively, or simply omit it. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation) in the Demo Kit. - - - - - -## Filtering - -Filters are provided to the list binding as described in [Filtering](filtering-5338bd1.md). The `Filter` objects are analyzed automatically to perform the filtering before the aggregation where possible using the `filter()` transformation. The remaining filters, including the provided `$filter` parameter of the binding, are applied after the aggregation either via the system query option `$filter` or within the system query option `$apply`, using again the `filter()` transformation. - -Note that `Filter` objects are not supported for aggregatable properties with an alias.For more information, see the `name` property of the `aggregate` map of the `oAggregation` parameter of [`v4.ODataListBinding#setAggregation`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding%23methods/setAggregation). - - - - - -## Search Before Data Aggregation - -You can provide a search string to be applied before data aggregation via the `oAggregation.search` parameter of [ODataListBinding\#setAggregation](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding/methods/setAggregation). It works like the ["5.1.7 System Query Option $search"](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions-complete.html#_Toc453752364), but is applied before data aggregation, not after it. Note that certain content will break the syntax of the `$apply` system query option when embedded into a `search()` transformation and thus result in an invalid request. If the OData service supports the [ODATA-1452](https://issues.oasis-open.org/browse/ODATA-1452) proposal, then the command `ODataUtils.formatLiteral(sSearch, "Edm.String");` should be used to encapsulate the whole search string beforehand \(see [sap.ui.model.odata.v4.ODataUtils.formatLiteral](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataUtils/methods/sap.ui.model.odata.v4.ODataUtils.formatLiteral)\). Otherwise, it might be wise to restrict your search input accordingly. - - - - - -## Additional Properties - -For each groupable property, you can define an optional list of strings that provides the paths to properties \(like texts or attributes\) related to this groupable property in a 1:1 relation. They are requested additionally via `groupby` and must not change the actual grouping; a `unit` for an aggregatable property must not be repeated there. - - - - - -## Recursive Hierarchy - -You can use a list binding to display hierarchical data \("a tree"\) inside a table. Such a recursive hierarchy is described by a pair of ["Org.OData.Aggregation.V1.RecursiveHierarchy"](https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Aggregation.V1.html#RecursiveHierarchy) and ["com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy"](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md) annotations at the list binding's entity type, and you need to use the same qualifier for both of these annotations - this is called the **hierarchy qualifier**. If the `hierarchyQualifier` property of `$$aggregation` is present \(experimental as of SAPUI5 1.105.0; available for read-only hierarchies since 1.117.0\), a recursive hierarchy without data aggregation is defined, and the only other supported properties are `expandTo`, which optionally specifies the number of initially expanded levels as a positive integer, and `search` \(see [Search Before Data Aggregation](extension-for-data-aggregation-7d91431.md#loio7d914317c0b64c23824bf932cc8a4ae1__section_SBDA) above\). Sorting and filtering can be done as usual \(both as system query options and as UI5 objects\), but `$search` is not supported. Side effects are supported both for single rows and the entire list, as long as they do not affect the hierarchy \(node IDs, parent/child relations, or sibling order\) itself. - -The `@$ui5.node.level` and `@$ui5.node.isExpanded` client-side instance annotations can be used as described above to access a node level or expansion state. - diff --git a/docs/04_Essentials/property-binding-91f0652.md b/docs/04_Essentials/property-binding-91f0652.md index aeb5886d..2e897d27 100644 --- a/docs/04_Essentials/property-binding-91f0652.md +++ b/docs/04_Essentials/property-binding-91f0652.md @@ -109,6 +109,8 @@ To **remove** a property binding, you can use the `unbindProperty` method. The p oTextField.unbindProperty("value"); ``` +You can also bind multiple paths by combining them as parts of a binding. For more information, see [Composite Binding](composite-binding-a2fe8e7.md). + diff --git a/docs/04_Essentials/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-5bb388f.md b/docs/04_Essentials/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-5bb388f.md index 27d2d72c..61c74bd6 100644 --- a/docs/04_Essentials/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-5bb388f.md +++ b/docs/04_Essentials/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-5bb388f.md @@ -63,13 +63,12 @@ In the `manifest.json` descriptor file of your app, you can now change the data ```js { - "_version": "1.12.0", + "_version": "1.59.0", "sap.app": { ... "dataSources": { "invoiceRemote": { - - "uri": "Northwind/V2/northwind/northwind.svc/", + "uri": "/V2/Northwind/Northwind.svc/", "type": "OData", "settings": { "odataVersion": "2.0" diff --git a/docs/04_Essentials/using-controller-extension-21515f0.md b/docs/04_Essentials/using-controller-extension-21515f0.md index fd4900a6..2a7400ec 100644 --- a/docs/04_Essentials/using-controller-extension-21515f0.md +++ b/docs/04_Essentials/using-controller-extension-21515f0.md @@ -220,5 +220,5 @@ We therefore offer the `overrides` keyword as an additional name for this defini [UI5 Babel Transformer Plugin](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/) -[API Reference: `sap.ui.core.mvc.ControllerExtension.override`](https://ui5.sap.com/#/api/sap.ui.core.mvc.ControllerExtension/methods/sap.ui.core.mvc.ControllerExtension.override) +[API Reference: `sap.ui.core.mvc.ControllerExtension.override`](https://ui5.sap.com/#/api/sap.ui.core.mvc.ControllerExtension%23methods/sap.ui.core.mvc.ControllerExtension.override) diff --git a/docs/04_Essentials/variant-for-bootstrapping-from-content-delivery-network-2d3eb2f.md b/docs/04_Essentials/variant-for-bootstrapping-from-content-delivery-network-2d3eb2f.md index 32309434..e2b1acda 100644 --- a/docs/04_Essentials/variant-for-bootstrapping-from-content-delivery-network-2d3eb2f.md +++ b/docs/04_Essentials/variant-for-bootstrapping-from-content-delivery-network-2d3eb2f.md @@ -27,7 +27,7 @@ The specific version allows you to select a particular fixed version for bootstr ```html diff --git a/docs/04_Essentials/views-91f27e3.md b/docs/04_Essentials/views-91f27e3.md index 9e6bb375..872cae6f 100644 --- a/docs/04_Essentials/views-91f27e3.md +++ b/docs/04_Essentials/views-91f27e3.md @@ -6,28 +6,15 @@ The view in the Model-View-Controller \(MVC\) concept is responsible for definin The following predefined view types are available: -- **XML view** \(file or string in XML format\); this type supports a mix of XML and plain HTML, +- **XML view**, a file or string in XML format -- **JSON view** \(file or string in JSON format\), - -- **Typed view**, constructed in a programmatic manner. +- **Typed view**, constructed in a programmatic manner > ### Note: -> We recommend to use XML views, because XML views force a clear separation of the UI definition from the application logic \(which has to be implemented in the controller\). This makes the code more readable and easier to support. +> We recommend using XML views unless you need the dynamics possible by the programmatic nature of Typed Views. The declarative approach used by XML views comes with many benefits; for example, the code is often more readable and easier to support. > -> Therefore, we concentrate on XML views and only provide examples for XML views throughout this documentation. - - - - - -## Typed Views - -A view can also be defined as a [typed view](typed-view-e6bb33d.md), representing its own class. - -> ### Note: -> Typed views are available since SAPUI5 1.88 +> Throughout this documentation, the code examples mainly use XML views. **Related Information** diff --git a/docs/05_Developing_Apps/accessibility-03b914b.md b/docs/05_Developing_Apps/accessibility-03b914b.md index a6312d31..5042de1f 100644 --- a/docs/05_Developing_Apps/accessibility-03b914b.md +++ b/docs/05_Developing_Apps/accessibility-03b914b.md @@ -11,7 +11,7 @@ The following chapters showcase different aspects and offer tips how to test you **Related Information** -[Accessibility in SAP Fiori](https://ux.wdf.sap.corp/fiori-design-web/accessibility-in-sap-fiori/ "Accessibility in SAP Fiori") +[Accessibility in SAP Fiori](https://experience.sap.com/fiori-design-web/accessibility-in-sap-fiori/ "Accessibility in SAP Fiori") [Fiori Design Guidelines When to Use Which Floorplan](https://ux.wdf.sap.corp/fiori-design-web/when-to-use-which-floorplan/ "Fiori Design Guidelines When to Use Which Floorplan") diff --git a/docs/05_Developing_Apps/performance-speed-up-your-app-408b40e.md b/docs/05_Developing_Apps/performance-speed-up-your-app-408b40e.md index e74a44ce..3ea479fc 100644 --- a/docs/05_Developing_Apps/performance-speed-up-your-app-408b40e.md +++ b/docs/05_Developing_Apps/performance-speed-up-your-app-408b40e.md @@ -37,7 +37,7 @@ Please use the `manifest.json` application descriptor file to declare dependenci Make sure that you don't load too many dependencies. In most apps it's enough to load the libraries `sap.ui.core` and `sap.m` by default, and add additional libraries only when needed. -If you want to make additional libraries known in your app, without directly loading them during the app start, you can add them to the dependency declaration in the `manifest.json` file with the `lazy` loading option. This makes sure that the libraries are only loaded when they're needed: +If you want to make additional libraries known in your app, without directly loading them during the app start, you can add them to the dependency declaration in the `manifest.json` file with the `lazy` loading option: ```json "sap.ui5": { @@ -53,16 +53,12 @@ If you want to make additional libraries known in your app, without directly loa ... ``` -If a library preload contains reuse components and this preload is configured to be loaded lazily \(via `"lazy": true` in the dependencies of the `manifest.json`\), the library isn't available upon creation of the related component. - -In the above case you need to use `sap/ui/core/Lib.load({name: "my.heavy.charting"})` before creating the component \(e.g with `Component.create({ name: "my.component" })` or component usage `myComponent.createComponent("myUsage")`\). - -An indicator that a component is inside a library is the existence of an entry `sap.app/embeddedBy` in its `manifest.json` file. +If a library preload is configured to be loaded lazily \(`"lazy": true`\), the library isn't available upon creation of the related component. In this case, you need to ensure yourself that the library is preloaded, e.g. via `sap/ui/core/Lib.load({name: "my.heavy.charting"})`, before any module from that library is used. **Additional Information:** - [Descriptor for Applications, Components, and Libraries \(manifest.json\)](../04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md) -- `API Reference:` [`sap/ui/core/Lib.load()`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.load) +- API Reference: [`sap/ui/core/Lib.load()`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.load) diff --git a/docs/05_Developing_Apps/securing-the-sapui5-abap-repository-91f3ecc.md b/docs/05_Developing_Apps/securing-the-sapui5-abap-repository-91f3ecc.md index f66195cd..18846dad 100644 --- a/docs/05_Developing_Apps/securing-the-sapui5-abap-repository-91f3ecc.md +++ b/docs/05_Developing_Apps/securing-the-sapui5-abap-repository-91f3ecc.md @@ -171,7 +171,7 @@ SAP Business Application Studio, SAP Fiori tools When uploading files to the SAPUI5 ABAP repository, you can perform a virus scan. SAP delivers virus scan profile`/UI/UI5_INFRA_APP/REP_DT_PUT`, which is used to store files in theSAPUI5 ABAP repository. This profile is deactivated when delivered. To activate it, create at least one basis profile and save it as the default profile. You can then activate one of the delivered profiles. -By default, it links to a reference profile that is the default profile. For more information, search for `ABAB-Specific Configuration` in the documentation of your [SAP NetWeaver](https://help.sap.com/viewer/p/SAP_NETWEAVER) version on the SAP Help Portal. +By default, it links to a reference profile that is the default profile. For more information, search for `ABAP-Specific Configuration` in the documentation of your [SAP NetWeaver](https://help.sap.com/viewer/p/SAP_NETWEAVER) version on the SAP Help Portal. diff --git a/docs/05_Developing_Apps/the-sapui5-abap-repository-and-the-abap-back-end-infrastructure-91f3467.md b/docs/05_Developing_Apps/the-sapui5-abap-repository-and-the-abap-back-end-infrastructure-91f3467.md index 09b7491a..91fbb986 100644 --- a/docs/05_Developing_Apps/the-sapui5-abap-repository-and-the-abap-back-end-infrastructure-91f3467.md +++ b/docs/05_Developing_Apps/the-sapui5-abap-repository-and-the-abap-back-end-infrastructure-91f3467.md @@ -124,3 +124,16 @@ SAP Business Suite systems from version 7.00 containing the UI add-on for SAP Ne > ### Note: > From SAP NetWeaver 7.4 SP1, all required SAPUI5 parts listed above are already part of software component `SAP_UI`. + + + + +## Troubleshooting + +If something isn't working as expected, these Guided Answers trees may help you identify the cause of the issue: + +- [SAPUI5 App Cannot Be Opened in SAP Fiori Launchpad](https://ga.support.sap.com/dtp/viewer/index.html#/tree/3413/actions/54434) + +- [SAPUI5 Application Index](https://ga.support.sap.com/dtp/viewer/index.html#/tree/3417/actions/54575) + + diff --git a/docs/06_SAP_Fiori_Elements/actions-cbf16c5.md b/docs/06_SAP_Fiori_Elements/actions-cbf16c5.md index 4f4ec787..f2852f6a 100644 --- a/docs/06_SAP_Fiori_Elements/actions-cbf16c5.md +++ b/docs/06_SAP_Fiori_Elements/actions-cbf16c5.md @@ -83,9 +83,9 @@ Overview Page Analytical List Page -[Defining Custom Actions](defining-custom-actions-c3de5c0.md)\(OData V2\) +[Defining Custom Actions](defining-custom-actions-c3de5c0.md) \(OData V2\) -[Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md)\(OData V4\) +[Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md) \(OData V4\) @@ -188,9 +188,9 @@ Object Page Analytical List Page -[Defining Custom Actions](defining-custom-actions-c3de5c0.md)\(OData V2\) +[Defining Custom Actions](defining-custom-actions-c3de5c0.md) \(OData V2\) -[Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md)\(OData V4\) +[Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md) \(OData V4\) @@ -317,9 +317,9 @@ depends \(see linked topics\) Analytical List Page -[Defining Custom Actions](defining-custom-actions-c3de5c0.md)\(OData V2\) +[Defining Custom Actions](defining-custom-actions-c3de5c0.md) \(OData V2\) -[Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md)\(OData V4\) +[Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md) \(OData V4\) @@ -479,7 +479,7 @@ As an application developer, there are different ways to configure custom action - Actions that require none of the above. The system triggers the action. -- Custom actions \(via manifest extension\) +- Custom actions \(using manifest extension\) Application developers can also configure custom actions by changing the `manifest.json` file. For more information, see [Adding Custom Actions Using Extension Points](adding-custom-actions-using-extension-points-7619517.md). @@ -494,7 +494,7 @@ As an application developer, there are different ways to configure custom action ### Global Actions -Global actions are placed at the top of the page and refer to the whole page \(for example *Display Log*\). They can be configured either via annotations \(applicable for the object page only\), or via manifest entries \(applicable for the list report and object page\). +Global actions are placed at the top of the page and refer to the whole page \(for example *Display Log*\). They can be configured either by using annotations \(applicable for the object page only\), or by using manifest entries \(applicable for the list report and object page\). @@ -538,7 +538,7 @@ When you configure navigation buttons, you have two options: ### Context-Independent Actions for External Navigation -The following coding sample shows the annotations for a context -independent action for external navigation \(`UI.DataFieldForIntentBasedNavigation`\) \(Property="`RequiresContext`" Bool="`false`"\): +The following coding sample shows the annotations for a context-independent action for external navigation \(`UI.DataFieldForIntentBasedNavigation`\) \(Property="`RequiresContext`" Bool="`false`"\): > ### Sample Code: > XML Annotation @@ -633,7 +633,7 @@ In SAP Fiori elements for OData V2, you can choose to pass the context when the In SAP Fiori elements for OData V4, it depends on the configuration of the `IsBound` property. Context is only passed for actions with `IsBound=true`. For more information, see the section *Additional Features in SAP Fiori Elements for OData V4* in this topic. -**Grouping of Multiple Invocations of the Same Action via Multiple Selections in the Table** +**Grouping of Multiple Invocations of the Same Action Using Multiple Selections in the Table** Application developers can control the grouping of the multiple invocations of the action for each instance when an action is executed. @@ -806,7 +806,6 @@ Context-dependent function imports provide an `sap:action-for` annotation defini Bound actions can have parameters that are defined by the backend. If the name of the parameter matches with any property of the bound entity, then the value of that property is used from the selected row. In case of multi select, the action parameters are not filled with the selected context values. > ### Note: -> Bound action parameters that matches with the key properties of the bound entity are not displayed in the action parameter dialog. **Unbound Actions \(Context-Independent\)** @@ -862,7 +861,7 @@ For more information, see [Prefilling Fields Using the DefaultValuesFunction](pr -### Enabling Custom Actions Defined via Annotations +### Enabling Custom Actions Defined Using Annotations You can use annotations to control the enablement of operations \(annotation-based actions\) – in this case `Core.OperationAvailable`. This property can be set either to a static value \(Boolean `true` or `false`\), or to a dynamic value \(path pointing to a property\). @@ -1010,7 +1009,7 @@ Actions can either be classified as bound or unbound. Bound actions are those th > ``` > ### Note: -> When an action is inside a control, the bound and unbound actions are referred to differently. A bound action is referred via `.`, while an unbound action is referred via `./`. +> When an action is inside a control, the bound and unbound actions are referred to differently. A bound action is referred in `.`, while an unbound action is referred in `./`. - Bound Action @@ -1021,7 +1020,7 @@ Actions can either be classified as bound or unbound. Bound actions are those th > > > - > + > > > > ``` @@ -1060,7 +1059,7 @@ Actions can either be classified as bound or unbound. Bound actions are those th > > > - > + > > > > ``` @@ -1091,7 +1090,7 @@ Actions can either be classified as bound or unbound. Bound actions are those th > ``` -The visibility of the action is controlled via the `UI.Hidden` annotation and the enablement is controlled via the `OperationAvailable` annotation. +The visibility of the action is controlled using the `UI.Hidden` annotation and the enablement is controlled using the `OperationAvailable` annotation. @@ -1124,7 +1123,7 @@ You can use the `UI.CreateHidden`, `UI.DeleteHidden`, and `UI.UpdateHidden` anno > > ``` -Please note that the path pointing to the singleton property must be absolute and via the `EntityContainer`. +Please note that the path pointing to the singleton property must be absolute and using the `EntityContainer`. The CAP CDS syntax to define such a reference uses the inline `edmJson` mechanism. @@ -1144,7 +1143,7 @@ The CAP CDS syntax to define such a reference uses the inline `edmJson` mechanis Unlike bound actions, where a context must be passed, static actions don’t need a user-selected context to be passed. But, in contrast to unbound actions, some context is always passed to static actions, namely the header context of the collection for which the static action is defined. -You define a static action via the `"Collection(...)"` in the `Type` property of the `"_it"` parameter, as shown in the following code sample: +You define a static action using the `"Collection(...)"` in the `Type` property of the `"_it"` parameter, as shown in the following code sample: > ### Sample Code: > XML Annotation @@ -1301,7 +1300,7 @@ Annotations showing a collection: > ### Note: > Bound actions have the defined OData binding parameter alias as the first parameter \(`"_it"` in the example above\). -More information about the parameter itself, such as the label for the parameter, or whether it's mandatory, comes via the annotation for the action: +More information about the parameter itself, such as the label for the parameter, or whether it's mandatory, comes from the annotation for the action: > ### Sample Code: > ``` @@ -1546,7 +1545,7 @@ The following default values are available: > ``` > ### Note: - > Hidden or read-only parameter fields are intended to not allow data input by the user. However, you can still pass values via default values. + > Hidden or read-only parameter fields are intended to not allow data input by the user. However, you can still pass values using default values. - Evaluation Order @@ -1656,7 +1655,7 @@ In the following screenshot, *My Menu Button* has grouped three actions: - *My First Action* and *My Second Action* are actions from the `manifest.json`. -- *Bound Action with params* is an action maintained via annotations. +- *Bound Action with params* is an action maintained using annotations. ![](images/Grouping_Actions_as_Menu_Buttons_d7ed70d.png) @@ -1822,9 +1821,9 @@ You can either use an already existing entry from the `"menu"` definition, or us -### Overriding Annotation-Based Actions via the Manifest +### Overriding Annotation-Based Actions Using the Manifest -For certain properties, you can overwrite the annotation-based values via the manifest. +For certain properties, you can overwrite the annotation-based values using the manifest. > ### Caution: > By doing so, the annotation-based logic is ignored for the specified action and doesn't consider any default behavior \(like a bound action only being enabled when an item in a table is selected\). diff --git a/docs/06_SAP_Fiori_Elements/adapting-the-ui-analytical-list-page-2c5fa29.md b/docs/06_SAP_Fiori_Elements/adapting-the-ui-analytical-list-page-2c5fa29.md index ab85709a..472fb905 100644 --- a/docs/06_SAP_Fiori_Elements/adapting-the-ui-analytical-list-page-2c5fa29.md +++ b/docs/06_SAP_Fiori_Elements/adapting-the-ui-analytical-list-page-2c5fa29.md @@ -736,7 +736,7 @@ Export to Excel -The *Export to Excel* button is visible on the UI by default. You can hide this button by setting the `UseExporttoExcel` property to `False` using the UI adaptation. +The *Export to Excel* button is visible on the UI by default. You can hide this button by setting the `enableExport` property to `False` using the UI adaptation. diff --git a/docs/06_SAP_Fiori_Elements/adapting-the-ui-list-report-and-object-page-0d2f1a9.md b/docs/06_SAP_Fiori_Elements/adapting-the-ui-list-report-and-object-page-0d2f1a9.md index 4be4bba4..dfa56bbf 100644 --- a/docs/06_SAP_Fiori_Elements/adapting-the-ui-list-report-and-object-page-0d2f1a9.md +++ b/docs/06_SAP_Fiori_Elements/adapting-the-ui-list-report-and-object-page-0d2f1a9.md @@ -50,7 +50,7 @@ Display/Hide the *Export to Excel* button in the table toolbar -Change the `useExportToExcel` property to `True/False`. +Change the `enableExport` property to `True/False`. @@ -83,12 +83,14 @@ For vertical alignment of the whole responsive table, see [Tables](tables-c0f659 -Disable standard system behavior for list report tables \(analytical, grid, tree tables\): Table should not occupy the entire space available in the container. +Modify the standard list report behavior for analytical, grid, and tree table types to not occupy the entire space available in the container. -In the table, set the `fitContent` property with the Page Editor. +Set the `fitContent` property of the dynamic page to `false` with the Page Editor. + +By default, `fitContent` is set to `true` for analytical, grid, and tree table types in list report pages. diff --git a/docs/06_SAP_Fiori_Elements/adding-a-section-to-an-object-page-a357047.md b/docs/06_SAP_Fiori_Elements/adding-a-section-to-an-object-page-a357047.md index 7509833c..95825315 100644 --- a/docs/06_SAP_Fiori_Elements/adding-a-section-to-an-object-page-a357047.md +++ b/docs/06_SAP_Fiori_Elements/adding-a-section-to-an-object-page-a357047.md @@ -143,14 +143,14 @@ The object page of the *Manage Products* app shows the new section *Product Desc To hide the section title or subsection title, you can call the `setAsTitleOwner` extension API. This allows you to replace the control title with the section or subsection title. -Define the `initialise` method of a table or chart in the extension fragment component +Define the `initialise` method of a table or chart in the extension fragment component. > ### Sample Code: > ``` > > ``` -Define the same event in the controller and call the `setAsTitleOwner` extension API with the parameter `SmartTable` or `SmartChart` +Define the same event in the controller and call the `setAsTitleOwner` extension API with the parameter `SmartTable` or `SmartChart`. > ### Sample Code: > ``` @@ -286,3 +286,50 @@ You can enrich the body of the object page with additional sections. To do so, y The object page of the app shows the new section. + + +### Merging Section Title with Control Title in Custom Sections + +For custom sections configured with **Page** layout mode, if there's only one control within the section, the section title is merged with the control title, hiding the section title. The merging of titles occurs automatically for custom sections that utilize standard building blocks without any layout. + +For sections that use standard building blocks within a layout, you can define a `onSectionLoaded` property in the `manifest.json` file. The value of the `onSectionLoaded` property must be the name of the method defined in the custom controller. This method must invoke the `setAsSectionTitleOwner` extension API within `sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts`. You must ensure that the correct control is passed while invoking the extension API, as the section title is merged with the title of this control. + +> ### Sample Code: +> Manifest setting for merging title within custom sections +> +> ``` +> "routing":{ +> "targets":{ +> "SalesOrderManageObjectPage":{ +> "options":{ +> "settings":{ +> "sectionLayout": "Page", +> "content":{ +> "body":{ +> "sections":{ +> "customSectionTableHBox":{ +> "type": "XMLFragment", +> "template": "SalesOrder.custom.CustomSectionBuildingBlockTableHBox", +> "title": "HBox Table", +> "onSectionLoaded": "SalesOrder.custom.CustomSection.callShowSectionTitle" +> } +> } +> } +> } +> } +> } +> } +> } +> } +> ``` + +> ### Sample Code: +> Custom controller method that sets the right control +> +> ``` +> callShowSectionTitle(section){ +> const control = section.getSubSections()[0].getBlocks()[0].getContent().getItems()[0]; +> this.setAsSectionTitleOwner(control); +> } +> ``` + diff --git a/docs/06_SAP_Fiori_Elements/building-an-app-9834a0a.md b/docs/06_SAP_Fiori_Elements/building-an-app-9834a0a.md index a6e3e87d..11ef65c9 100644 --- a/docs/06_SAP_Fiori_Elements/building-an-app-9834a0a.md +++ b/docs/06_SAP_Fiori_Elements/building-an-app-9834a0a.md @@ -6,5 +6,5 @@ You now have an option to build UI applications by using SAP Fiori elements. You can build your apps using [SAP Fiori tools](https://help.sap.com/viewer/product/SAP_FIORI_tools/Latest/en-US), which is a set of extensions for SAP Business Application Studio and Visual Studio Code. -For more information on creating apps using SAP Fiori tools, see the detailed procedures mentioned in this section. +For more information about creating apps using SAP Fiori tools, see the detailed procedures mentioned in this section. diff --git a/docs/06_SAP_Fiori_Elements/checking-folder-structure-and-project-artifacts-f7abd1b.md b/docs/06_SAP_Fiori_Elements/checking-folder-structure-and-project-artifacts-f7abd1b.md index 0594dcd8..6445b5dc 100644 --- a/docs/06_SAP_Fiori_Elements/checking-folder-structure-and-project-artifacts-f7abd1b.md +++ b/docs/06_SAP_Fiori_Elements/checking-folder-structure-and-project-artifacts-f7abd1b.md @@ -9,7 +9,7 @@ Once the generation is complete and the node modules have been installed, the ap The new app or component reuses the views and controllers from `sap.suite.ui.generic.template`. The resource links and route definitions for navigation are in the app descriptor file \(`manifest.json`\). You can find the destination configuration for preview in the `ui5*.yaml` files. -You can use the run configurations \(palette command `Fiori: Open Run Configurations`\) to adapt the destinations for preview +You can use the run configurations \(palette command `Fiori: Open Run Configurations`\) to adapt the destinations for preview. The following artifacts are generated: @@ -19,7 +19,7 @@ The following artifacts are generated: ![](images/Folder_Structure_for_List_Report_and_Object_Page_c33e8a1.png "Folder Structure for List Report and Object Page") -For more information on generated files, see the **Projects** section of [Generating an Application](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/db44d45051794d778f1dd50def0fa267.html). +For more information about generated files, see the **Projects** section of [Generating an Application](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/db44d45051794d778f1dd50def0fa267.html). diff --git a/docs/06_SAP_Fiori_Elements/configuring-charts-653ed0f.md b/docs/06_SAP_Fiori_Elements/configuring-charts-653ed0f.md index 225a1a5a..d9de2388 100644 --- a/docs/06_SAP_Fiori_Elements/configuring-charts-653ed0f.md +++ b/docs/06_SAP_Fiori_Elements/configuring-charts-653ed0f.md @@ -285,8 +285,6 @@ The time axis is automatically enabled for a chart when its dimension is one of - `Edm.Date` -- `Edm.TimeOfDay` - - `Edm.DateTimeOffset` diff --git a/docs/06_SAP_Fiori_Elements/configuring-default-settings-visualizations-sort-order-filter-values-49a6ba5.md b/docs/06_SAP_Fiori_Elements/configuring-default-settings-visualizations-sort-order-filter-values-49a6ba5.md index d4602545..d53c08dd 100644 --- a/docs/06_SAP_Fiori_Elements/configuring-default-settings-visualizations-sort-order-filter-values-49a6ba5.md +++ b/docs/06_SAP_Fiori_Elements/configuring-default-settings-visualizations-sort-order-filter-values-49a6ba5.md @@ -584,6 +584,8 @@ The `UI.Chart` annotation is applicable for the following: > ### Note: > - The information provided in the section isn't applicable to the object page. > +> - When defining a `PresentationVariant`, the `Visualizations` annotation should be provided and point to a valid visualization. +> > - In a multiple view scenario, the following logic is used to fetch the `UI.PresentationVariant` annotation only if it is undefined. For more information about the multiple view configuration, see [Defining Multiple Views on a List Report Table - Multiple Table Mode](defining-multiple-views-on-a-list-report-table-multiple-table-mode-37aeed7.md) and [Defining Multiple Views on a List Report with Different Entity Sets and Table Settings](defining-multiple-views-on-a-list-report-with-different-entity-sets-and-table-settings-b6b59e4.md). > > - In SAP Fiori elements for OData V4, the information provided in the section isn't applicable to the analytical list page \(ALP\) flavor. For more information about the configuration in ALP, see [Descriptor Configuration for the Analytical List Page](descriptor-configuration-for-the-analytical-list-page-2a9df06.md). @@ -709,6 +711,72 @@ For more information about the `UI.SelectionPresentationVariant`, see the versio + + +## Requesting Additional Properties + +You can request additional properties for tables and charts even if these properties are not displayed by using the `com.sap.vocabularies.UI.v1.PresentationVariant` annotation term and the `RequestAtLeast` property. + +> ### Sample Code: +> XML Annotation +> +> ``` +> +> +> +> +> +> @UI.LineItem +> +> +> +> +> Customer +> CompanyCode +> +> +> +> +> +> ``` + +> ### Sample Code: +> ABAP CDS Annotation +> +> ``` +> @UI.PresentationVariant: [ +> { +> requestAtLeast: [ +> 'CUSTOMER', +> 'COMPANYCODE' +> ], +> visualizations: [{type: #AS_LINEITEM }] +> } +> ] +> annotate view ITEM with { +> +> } +> ``` + +> ### Sample Code: +> CAP CDS Annotation +> +> ``` +> annotate ZFAR_CUSTOMER_LINE_ITEMS2_SRV.Item @( +> com.sap.vocabularies.UI.v1.PresentationVariant : { +> Visualizations : [ +> '@UI.LineItem' +> ], +> RequestAtLeast : [ +> Customer, +> CompanyCode +> ] +> } +> ); +> ``` + + + ## Configuring the Default Sort Order @@ -749,10 +817,7 @@ You can define whether the default sort order for tables and charts is ascending > ``` > @UI.PresentationVariant: [ > { -> requestAtLeast: [ -> 'CUSTOMER', -> 'COMPANYCODE' -> ], +> > sortOrder: [ > { > by: 'COMPANYCODE', @@ -780,10 +845,7 @@ You can define whether the default sort order for tables and charts is ascending > Visualizations : [ > '@UI.LineItem' > ], -> RequestAtLeast : [ -> Customer, -> CompanyCode -> ], +> > SortOrder : [ > { > Property : CompanyCode, diff --git a/docs/06_SAP_Fiori_Elements/configuring-internal-navigation-2c65f07.md b/docs/06_SAP_Fiori_Elements/configuring-internal-navigation-2c65f07.md index c0ae24f0..5c2a67df 100644 --- a/docs/06_SAP_Fiori_Elements/configuring-internal-navigation-2c65f07.md +++ b/docs/06_SAP_Fiori_Elements/configuring-internal-navigation-2c65f07.md @@ -86,7 +86,7 @@ A chevron indicates the navigation options. The user can navigate by clicking on > ### Note: > In a non-draft app, if the user is in edit mode on an object page and has made changes before the navigation has been executed, the system displays a message indicating that the changes will be lost if the user navigates without saving first. -The chevron navigation from a list report can also be modified using [onListNavigationExtension](https://ui5.sap.com/#/api/sap.suite.ui.generic.template.ListReport.controllerFrameworkExtensions) to navigate to deeper-hierarchy child pages of the same app. However, it is not recommended to do so. For more information on configuring navigation restrictions, refer to [Adding Actions to Tables](adding-actions-to-tables-b623e0b.md). +The chevron navigation from a list report can also be modified using [onListNavigationExtension](https://ui5.sap.com/#/api/sap.suite.ui.generic.template.ListReport.controllerFrameworkExtensions) to navigate to deeper-hierarchy child pages of the same app. However, it is not recommended to do so. For more information about configuring navigation restrictions, refer to [Adding Actions to Tables](adding-actions-to-tables-b623e0b.md). **Showing Item List in a List Report and Parent on an Object Page** diff --git a/docs/06_SAP_Fiori_Elements/controlling-the-editability-of-sections-5c8763f.md b/docs/06_SAP_Fiori_Elements/controlling-the-editability-of-sections-5c8763f.md index 384d5ee3..7d527070 100644 --- a/docs/06_SAP_Fiori_Elements/controlling-the-editability-of-sections-5c8763f.md +++ b/docs/06_SAP_Fiori_Elements/controlling-the-editability-of-sections-5c8763f.md @@ -41,7 +41,7 @@ Application developers can control the editability of all fields in one go using > > ``` -`UpdateRestrictions` is ignored for the main entity set due to `EditAction`. You can, however, edit the fields originating from another entity in the tables and forms in object pages and subobject pages, provided that the list report entity set can be updated. If the list report entity set can be updated, the editability of a field further depends on the *edit* state of the UI and the field control of the property. If the entity cannot be updated, you cannot edit the field, regardless of the state of the UI and the field control of the property. +`UpdateRestrictions` is ignored for the main entity set. You can, however, edit the fields originating from another entity in the tables and forms in object pages and subobject pages, provided that the list report entity set can be updated. If the list report entity set can be updated, the editability of a field further depends on the *edit* state of the UI and the field control of the property. If the entity cannot be updated, you cannot edit the field, regardless of the state of the UI and the field control of the property. For more information about the field control, see [Further Features of the Field](further-features-of-the-field-f49a0f7.md). @@ -90,7 +90,7 @@ If `NavigationRestrictions` has `Updatable=false`, the child entity records cann > > ``` -For more information on how to control the editability for the main entity set that has an `EditAction`, see the section *Enablement of Operations* in the topic [Adding Actions to Tables](adding-actions-to-tables-b623e0b.md) \(under *Additional Features in SAP Fiori elements for OData V4*\). +For more information on how to control the editability for the main entity set, see the *Enabling Custom Actions Defined Using Annotations* section in [Actions](actions-cbf16c5.md) . Both Boolean and path values of `UpdateRestrictions.Updatable` are supported. diff --git a/docs/06_SAP_Fiori_Elements/copying-and-pasting-from-external-applications-to-tables-f6a8fd2.md b/docs/06_SAP_Fiori_Elements/copying-and-pasting-from-external-applications-to-tables-f6a8fd2.md index 31c5ef79..35fff379 100644 --- a/docs/06_SAP_Fiori_Elements/copying-and-pasting-from-external-applications-to-tables-f6a8fd2.md +++ b/docs/06_SAP_Fiori_Elements/copying-and-pasting-from-external-applications-to-tables-f6a8fd2.md @@ -10,27 +10,31 @@ The paste action is available for the following scenarios: - Table-level paste - Here, a new row is created to paste data copied from the clipboard. Once end users have copied data to clipboard from an external application such as a spreadsheet, they can focus anywhere on the table or select an empty row to paste data. They can trigger the browser paste \([CTRL\] + [V\] for Microsoft Windows, [CMD\] + [V\] for macOS\) or click the *Paste* icon in the table. New rows are created only for draft-enabled applications, and for tables with the creation mode set as `inline` or `creationRows`. + Here, a new row is created to paste data copied from the clipboard. Once end users have copied data to the clipboard from an external application such as a spreadsheet, they can focus anywhere on the table or select an empty row to paste data. They can trigger the browser paste \([CTRL\] + [V\] for Microsoft Windows, [CMD\] + [V\] for macOS\) or click the *Paste* icon in the table. New rows are created only for draft-enabled applications, and for tables with creation mode set to `inline` or `creationRows`. - Cell-level paste Here, end users can either add a new value or update existing values within a cell or a group of cells. To paste the data, they must either select a single cell or a group of cells within the table. If the selected cell or cells contain active or draft rows, their values are replaced with data from the clipboard. New rows are created to paste additional data if an empty row is part of the selected cells. > ### Note: - > Only grid tables support the cell-level paste. + > Only grid tables and responsive tables support the cell-level paste. > ### Tip: > For preparation of data for pasting, SAP Fiori elements recommends using exported spreadsheet format that contains split cells with multiple values. This helps to avoid formatting issues during the paste action. +![A screenshot of a table before and after copying from a spreadsheet.](images/Copying_Data_from_a_Table_3e5d9c8.png) + > ### Note: > - Only the pasting of simple data fields is supported. Complex fields, such as links, images, connected fields, multi-input fields, and field groups, are not supported. > -> - If there are validation errors, an error message is shown in a dialog box so that the user can take action. +> - When pasting to cells containing both ID and text, the property itself is updated but its text description is updated only after saving. +> +> - If there are validation errors, an error message is shown in a dialog box so that the end user can take action. > -> - If new rows are created during the paste action, all these rows will be included in a single `POST` batch call. The duration of the `POST` call increases with the number of rows pasted. +> - If new rows are created during the paste action, all these rows are included in a single `POST` batch call. The duration of the `POST` call increases with the number of rows pasted. > -> - For new rows created during the paste action, the order of the data copied from a spreadsheet or external application might differ from the order in the table after you have inserted it.SAP Fiori elements cannot control this. +> - For new rows created during the paste action, the order of the data copied from a spreadsheet or external application might differ from the order in the table after the end user has inserted it. SAP Fiori elements cannot control this. > - This feature is not supported for tables with custom columns or custom tables. > > - In the object page, the *Export to Spreadsheet* feature is available by default only if the copy/paste feature is available. For more information, see [Using the Export Feature](using-the-export-feature-4bab6f2.md). @@ -49,9 +53,9 @@ Sample data: ![](images/Excel_copy_paste_6_fa98abc.png) -Note that the columns containing inline actions are ignored by the paste operation. Therefore, they must be omitted from the source while copying,, as demonstrated in the example +Note that the columns containing inline actions are ignored by the paste operation. Therefore, they must be omitted from the source while copying, as shown in the screenshot. -Read only columns are also ignored by the paste operation. However, these columns are exported along with the rest of the data, when the data is exported to a spreadsheet . They are a part of the format for preparing data in spreadsheets. +Read-only columns are also ignored by the paste operation. However, these columns are exported along with the rest of the data when the data is exported to a spreadsheet. They are a part of the format for preparing data in spreadsheets. @@ -71,6 +75,8 @@ To generate an example with the expected format for pasting your data, export th > - The user has to maintain the placeholder for inline actions in the spreadsheet application. The column fields can also be empty. > > - Properties annotated with a text arrangement set to text only cannot be pasted. +> +> - When a user pastes data into a table, SAP Fiori elements for OData V4 verifies that the pasted content aligns with the designated data field type. However, additional checks such as field editability and validation of values against fixed value lists are not performed by the front end. Therefore, you must ensure strict validation by the back end. The paste option can be disabled with the `enablePaste` parameter. @@ -101,5 +107,5 @@ The paste option can be disabled with the `enablePaste` parameter. > > ``` -Users can also copy multiple rows as well as ranges of rows and columns to the clipboard. For more information, see the *Copying Multiple Rows and Range Selections* section under *Additional Features in SAP Fiori Elements for OData V4* in [Tables](tables-c0f6592.md). +Users can also copy multiple rows as well as ranges of rows and columns to the clipboard. For more information, see the *Copying Multiple Rows and Range Selections* section in [Tables](tables-c0f6592.md). diff --git a/docs/06_SAP_Fiori_Elements/creating-a-project-fe5bc65.md b/docs/06_SAP_Fiori_Elements/creating-a-project-fe5bc65.md index 600f0ed5..49bf6f0a 100644 --- a/docs/06_SAP_Fiori_Elements/creating-a-project-fe5bc65.md +++ b/docs/06_SAP_Fiori_Elements/creating-a-project-fe5bc65.md @@ -21,5 +21,5 @@ You can use [SAP Fiori tools](https://help.sap.com/viewer/product/SAP_FIORI_tool ## Generating an App -You can generate a SAP Fiori application using the SAP Fiori generator. For more information on generating an app using SAP Business Application Studio and Visual Studio Code, see [Generate an Application](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/db44d45051794d778f1dd50def0fa267.html). +You can generate a SAP Fiori application using the SAP Fiori generator. For more information about generating an app using SAP Business Application Studio and Visual Studio Code, see [Generate an Application](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/db44d45051794d778f1dd50def0fa267.html). diff --git a/docs/06_SAP_Fiori_Elements/defining-determining-actions-1743323.md b/docs/06_SAP_Fiori_Elements/defining-determining-actions-1743323.md index 0e0b8c8e..d3da1831 100644 --- a/docs/06_SAP_Fiori_Elements/defining-determining-actions-1743323.md +++ b/docs/06_SAP_Fiori_Elements/defining-determining-actions-1743323.md @@ -2,7 +2,7 @@ # Defining Determining Actions -You can add a determining action button to the footer of the object page. +You can add a determining action button to the footer of the object page, but you must add such a button only in edit mode. Determining actions are used to trigger actions directly using the context of the page in the object page. @@ -12,7 +12,7 @@ Determining actions are used to trigger actions directly using the context of th **Object Page: Determining Action in Footer** -![](images/ObjectPage_DeterminingAction_5dc52f1.png "Object Page: Determining Action in Footer") +![](images/ObjectPage_DeterminingAction_5dc52f1.jpg "Object Page: Determining Action in Footer") @@ -99,6 +99,8 @@ In the CAP CDS example above, for the first record type the `DataFieldForAction` With the last record type, the `DataFieldForAction` complex type is used and contains the `Determining` property, which is set to `true`. This means the action button will appear in the footer. Note that if the `Determining` property is either not present or is set to `false`, the action will not appear in the footer. +Footer actions must not be available in display mode, so ensure that you add the appropriate path-based value to the `UI.Hidden` property of the action button. + **Related Information** diff --git a/docs/06_SAP_Fiori_Elements/descriptor-configuration-for-the-analytical-list-page-2a9df06.md b/docs/06_SAP_Fiori_Elements/descriptor-configuration-for-the-analytical-list-page-2a9df06.md index 722f69c9..2da95c62 100644 --- a/docs/06_SAP_Fiori_Elements/descriptor-configuration-for-the-analytical-list-page-2a9df06.md +++ b/docs/06_SAP_Fiori_Elements/descriptor-configuration-for-the-analytical-list-page-2a9df06.md @@ -10,29 +10,135 @@ The descriptor file \(`manifest.json`\) is an application configuration file tha The following code sample provides the descriptor configuration with the default values relevant for the ALP. +> ### Note: +> The Analytical List Page \(ALP\) works only for analytical services + ```json +"sap.ui.generic.app": { + "_version": "1.2.0", - "component": { - "name": "sap.suite.ui.generic.template.AnalyticalListPage", // Should not be changed. + "settings":{ + "flexibleColumnLayout":{ + "defaultTwoColumnLayoutType":"TwoColumnsBeginExpanded" + } + }, -``` + "pages": [{ // This can have multiple page definitions within it. ALP currently only consumes the first page. + "entitySet": "SEPMRA_C_ALP_SlsOrdItemCube", -> ### Note: -> The Analytical List Page \(ALP\) works only for analytical services. -> -> > ### Sample Code: -> > ```json -> > "sap.ui.generic.app": { -> > "_version": "1.3.0", -> > "pages": { -> > "AnalyticalListPage": { -> > "entitySet": "SEPMRA_C_ALP_SlsOrdItemCubeALPResult", -> > "component": { -> > "name": "sap.suite.ui.generic.template.AnalyticalListPage", -> > ….. -> > …… -> > -> > ``` +/* Represents the entity set that is used to populate the main content area. +For parametrized entity set, use result entity set name instead of parametrized entity set. */ + + "component": { + "name": "sap.suite.ui.generic.template.AnalyticalListPage", // Should not be changed. + "list":true, + "settings": { + "tableSettings": { + "type": "GridTable or AnalyticalTable or ResponsiveTable", + +/*Use these settings to select a table in ALP. Supports three table types: "AnalyticalTable", "GridTable" & "ResponsiveTable". +By default, ALP determines the table type when undefined or if there is an incorrect value. +Note: Do not set "tableType" to "AnalyticalTable" if the underlying service for the main entity set +is not an aggregate service.*/ + + "multiSelect": true, + +/* When true, multiple records in the tabular display can be +selected. This setting takes effect only if the service has +defined Actions in annotation or inside ControllerExtension. +Else, the selection is always single.*/ + + "selectAll": true + +/*Use this setting to select all the rows that are available in the back end with the current filters. +It triggers only one batch call to select all the records.*/ + + "selectionLimit": 20 + +/*You can only select 20 rows at a time while selecting a range of rows in the table. +If selectionLimit is not provided, then a default value of 200 is set to selectionLimit. +Note: Select all and selection limit are applicable only for GridTable and AnalyticalTable*/ +} + + + "qualifier": "DefaultPresentationVariant" + +/* Represents the SelectionPresentationVariant qualifier. +ALP looks for SelectionPresentationVariant with this qualifier +and if not found, it looks for PresentationVariant with this qualifier. + +This setting is optional, if this is not provided ALP looks for +Default LineItem and Chart without qualifiers. */ + + "condensedTableLayout": true, // When set to false, compact style will be used to render the table. + + "smartVariantManagement": true, // When false, control level variant management is used instead of page level variant management + "defaultContentView": "charttable", // Determines the visualization of content area. Possible other values: chart or table. + "defaultFilterMode": "visual", // Determines the filter mode that is used. Possible other value: compact + "showGoButtonOnFilterBar": false, // Go button is displayed for compact filters when this is set to true + "contentTitle": "{{contentAreaTitle}}", //Lets you define title for the content area. Ensure that the contentAreaTitle is also defined in i18n.properties + "autoHide":false, + "filterDefaultsFromSelectionVariant":false, //Lets you to add default values for FilterBar using SelectionVariant annotation. + + "allFiltersAsInParameters": true, //All filter fields will be set as in parameter. + + "keyPerformanceIndicators": { // The first 3 KPIs listed here show up in the KPI tags + "KPIRevenue": { // First KPI + "model": "kpi", + +/* Links to the item in "models" section which provides additional information, +for example, the data source for the KPI from which we could further obtain the +data source and annotation corresponding to this KPI. This property must not be empty. */ + + "entitySet": "SEPMRA_C_ALP_TotalSalesKPI", // Entity set used for bringing up the details displayed within the KPI tag/card. + "qualifier": "KPIRevenue", + +/* Refers to the UI.KPI annotation. */ + + "detailNavigation": "OverviewPage", + +/* Points to an element within "outbounds" property of the +"crossNavigation" section. The details there help us in determining +the target application as well as the parameters that need to be passed +upon navigation from the KPI card footer. */ + + "groupId": "mainKpiGroup" + +/* To achieve faster end-to-end response time within analytical list page, enable +batching of KPIs by defining groupId in the KPI section of the descriptor +configuration file. You can determine which KPIs should be grouped together in a +given batch call. +Note: +-> The KPIs with same data source are batched together. KPIs with same +groupId and different data source triggers different batch calls. + +-> Batching of KPIs may increase the number of batch calls to the back end. +*/ + + } + } // End of KPIs + } // End of settings + }, + "pages": [{ //ALP does an inner app navigation to the smart template specified below + "entitySet": "SEPMRA_C_ALP_SlsOrdItemCube", + "component": { + "name": "< + +>" + } + "navigation": { //Optional (If specified ALP navigates to the target Application specified below through external app navigation) + "display": { + "path": "sap.apps.crossNavigation.outbounds", + "target": "< + + >" + } + } + + }] +}] // End of outer pages +} +``` diff --git a/docs/06_SAP_Fiori_Elements/displaying-actions-on-the-object-page-f65e8b1.md b/docs/06_SAP_Fiori_Elements/displaying-actions-on-the-object-page-f65e8b1.md index 34857ef3..b7086e0d 100644 --- a/docs/06_SAP_Fiori_Elements/displaying-actions-on-the-object-page-f65e8b1.md +++ b/docs/06_SAP_Fiori_Elements/displaying-actions-on-the-object-page-f65e8b1.md @@ -69,7 +69,7 @@ You can change the order of action buttons for both manifest-based actions and a [Adding Action Buttons to Forms in Sections](adding-action-buttons-to-forms-in-sections-e64efda.md "You can add action buttons to the forms contained in sections. These forms are indicated by com.sap.vocabularies.UI.v1.FieldGroup. A form action button is then displayed in the toolbar of the object page section that contains the form.") -[Defining Determining Actions](defining-determining-actions-1743323.md "You can add a determining action button to the footer of the object page.") +[Defining Determining Actions](defining-determining-actions-1743323.md "You can add a determining action button to the footer of the object page, but you must add such a button only in edit mode.") [Setting the Criticality for Actions](setting-the-criticality-for-actions-12f2ba2.md "You can add criticality to an action button via annotations.") diff --git a/docs/06_SAP_Fiori_Elements/enabling-actions-in-the-object-page-header-5fe4396.md b/docs/06_SAP_Fiori_Elements/enabling-actions-in-the-object-page-header-5fe4396.md index b1fd8869..ec65c29b 100644 --- a/docs/06_SAP_Fiori_Elements/enabling-actions-in-the-object-page-header-5fe4396.md +++ b/docs/06_SAP_Fiori_Elements/enabling-actions-in-the-object-page-header-5fe4396.md @@ -206,7 +206,7 @@ The *Delete* button allows users to delete the instance of the object page. > > ``` > -> 2. The visibility of the *Edit* button can be controlled by the `updateHidden` annotation under `entityType` annotations \(it can be path-based if the apps need to hide the *Edit* button, for example for specific instances only\). +> 2. The visibility of the *Edit* button can be controlled by the `updateHidden` annotation under the entity set \(it can be path-based if the apps need to hide the *Edit* button, for example for specific instances only\). > > > ### Sample Code: > > XML Annotation diff --git a/docs/06_SAP_Fiori_Elements/enabling-editing-using-a-dialog-mass-edit-965ef5b.md b/docs/06_SAP_Fiori_Elements/enabling-editing-using-a-dialog-mass-edit-965ef5b.md index 7c0b8c12..210377c5 100644 --- a/docs/06_SAP_Fiori_Elements/enabling-editing-using-a-dialog-mass-edit-965ef5b.md +++ b/docs/06_SAP_Fiori_Elements/enabling-editing-using-a-dialog-mass-edit-965ef5b.md @@ -103,8 +103,6 @@ The *Mass Edit* button isn't enabled if the update restriction points to a path > > - date-time fields > -> - value help fields with a dropdown list -> > - image based fields > > - progress indicator fields @@ -118,8 +116,6 @@ The *Mass Edit* button isn't enabled if the update restriction points to a path > - fields coming from a `FieldGroup`-based field in the table > > -> - rating fields -> > - multi-valued fields > > - fields coming from navigation entities @@ -130,6 +126,8 @@ The *Mass Edit* button isn't enabled if the update restriction points to a path > > For more information, see [Field Help](field-help-a5608ea.md). > +> - value help fields with a dropdown list that have fixed values \(`@Common.ValueListWithFixedValues: true`\) +> > > - Validation from the server for updates made in the *Mass Edit* dialog is currently not supported. There's no communication with the back end until users choose *Save* in the *Mass Edit* dialog. > diff --git a/docs/06_SAP_Fiori_Elements/enabling-table-personalization-3e2b4d2.md b/docs/06_SAP_Fiori_Elements/enabling-table-personalization-3e2b4d2.md index ec48d399..ca53aaab 100644 --- a/docs/06_SAP_Fiori_Elements/enabling-table-personalization-3e2b4d2.md +++ b/docs/06_SAP_Fiori_Elements/enabling-table-personalization-3e2b4d2.md @@ -193,11 +193,18 @@ In the list report, you can set the variant management to `"Page"` level or to ` For more information, see [Managing Variants](managing-variants-8ce658e.md) and [Enabling Variant Management on the Object Page](enabling-variant-management-on-the-object-page-f26d42b.md). +For a responsive table, the user can open the sorting, filtering, and grouping dialog by clicking on the column header. + +![](images/Sorting_Filtering_and_Grouping_Dialog_f1dd67d.png) + +> ### Note: +> When the user selects the Filter menu, the default properties displayed for sorting, filtering, and grouping are the properties visible in the column. Any sorting and filtering restrictions are reflected in this dialog. The TextArrangement also has an impact as described in the [Personalization for Properties with Text Arrangement](enabling-table-personalization-3e2b4d2.md#loio3e2b4d212b66481a829ccef1dc0ca16b__personalization_text_arrangement)subsection of this topic. + ### Choosing Personalization Settings -or removing columns, and grouping by default. Use the `"personalization"` setting in the manifest to change the default behavior. +Variant management on control level enables filtering, sorting, or removing columns, and grouping by default. Use the `"personalization"` setting in the manifest to change the default behavior. > ### Sample Code: > `manifest.json` @@ -243,9 +250,9 @@ You can use the following values for the `"personalization"` setting: ### Personalization for Properties with Text Arrangement -Note the following when enabling personalization for properties that have a text arrangement annotation:Variant management on control level enables filtering, sorting, adding +Note the following when enabling personalization for properties that have a text arrangement annotation: -- Sorting and filtering is available for the properties visible in a column. For example, for properties with text arrangement set as `#TextFirst`Variant management on control level enables filtering, sorting,, the property itself or its text can be sorted or grouped. For properties with text arrangement set as`#TextOnly`, sorting and grouping is only available for their text. Filtering for properties, however, does not take into account their text arrangement. For example, filtering on the `#TextOnly` properties is available for the property itself and not its texts. Filtering on its text may be available if no filter restriction is defined for the text property. +- Sorting and filtering is available for the properties visible in a column. For example, for properties with text arrangement set as `#TextFirst`, the property itself or its text can be sorted or grouped. For properties with text arrangement set as `#TextOnly`, sorting and grouping is only available for their text. Filtering for properties, however, does not take into account their text arrangement. For example, filtering on the `#TextOnly` properties is available for the property itself and not its texts. Filtering on its text may be available if no filter restriction is defined for the text property. - If a label is defined for a column within the `LineItem`, then this label is used in the *Sort* and *Group* menus if the column displays a single property. In the *Filter* menu, the property name is displayed instead. diff --git a/docs/06_SAP_Fiori_Elements/enabling-the-history-of-recently-entered-values-37dbf1f.md b/docs/06_SAP_Fiori_Elements/enabling-the-history-of-recently-entered-values-37dbf1f.md index 2ae3aa6b..190340a2 100644 --- a/docs/06_SAP_Fiori_Elements/enabling-the-history-of-recently-entered-values-37dbf1f.md +++ b/docs/06_SAP_Fiori_Elements/enabling-the-history-of-recently-entered-values-37dbf1f.md @@ -4,6 +4,10 @@ You can enable the history of the most recently entered values for any field, when you move the cursor back to that field. It is enabled by default for some of the controls that are used as a filter, such as for multi-input fields. However, it may not be enabled for controls such as drop-down list. +If you have fields that contain personal sensitive data, you can use the `com.sap.vocabularies.PersonalData.v1.IsPotentiallySensitive` annotation to disable the storing of data in the history. + +End users can delete the history of the recently entered values. For more information, see [Input History](../10_More_About_Controls/input-history-152f84f.md). + @@ -52,7 +56,7 @@ You can also specify the same behavior for all the fields, or as a default for t > > ``` -Possible values for `historyEnabled` are *enabled*, *disabled*, or *auto*. *Auto* is the default setting, which means that the behavior depends on the used control type \(it depends on annotations according to the logic of the `SmartFilterBar`. For more information, see [SmartFilterBar](https://sapui5untested.int.sap.eu2.hana.ondemand.com/#/api/sap.ui.comp.smartfilterbar.SmartFilterBar)\). +Possible values for `historyEnabled` are *enabled*, *disabled*, or *auto*. *Auto* is the default setting, which means that the behavior depends on the used control type. @@ -67,12 +71,12 @@ The history of recently entered values is enabled for SAP Fiori elements for ODa > "sap.fe": { > "historySettings": { > "fields": { -> "/SalesOrderManage/SoldToParty": { +> : { > "historyEnabled": false -> } -> } -> } -> } +> } +> } +> } +> } > ``` Here, `` refers to the property path in the OData service. diff --git a/docs/06_SAP_Fiori_Elements/example-applying-custom-logic-when-a-table-is-loaded-or-refreshed-382a6c3.md b/docs/06_SAP_Fiori_Elements/example-applying-custom-logic-when-a-table-is-loaded-or-refreshed-382a6c3.md index 53bd3313..3b057946 100644 --- a/docs/06_SAP_Fiori_Elements/example-applying-custom-logic-when-a-table-is-loaded-or-refreshed-382a6c3.md +++ b/docs/06_SAP_Fiori_Elements/example-applying-custom-logic-when-a-table-is-loaded-or-refreshed-382a6c3.md @@ -11,7 +11,7 @@ This example explains how to use an extension point if you want to apply custom ## Context > ### Note: -> This topic is currently only applicable to SAP Fiori elements for OData V2. +> This topic is only applicable to SAP Fiori elements for OData V2. > ### Caution: > Use app extensions with caution and only if you cannot produce the required behavior by other means, such as manifest settings or annotations. To correctly integrate your app extension coding with SAP Fiori elements, use only the `extensionAPI` of SAP Fiori elements. For more information, see [Using the extensionAPI](using-the-extensionapi-bd2994b.md). @@ -31,7 +31,7 @@ This example explains how to use an extension point if you want to apply custom > ... > "sap.ui.controllerExtensions": { > ... - > "sap.suite.ui.generic.template.ListReport.view.Details": { + > "sap.suite.ui.generic.template.ObjectPage.view.Details": { > ... > "controllerName": "STTA_MP.ext.controller.DetailsExtension", > ... @@ -43,7 +43,7 @@ This example explains how to use an extension point if you want to apply custom 2. Implement your controller extension. - You have to implement a `onBeforeRebindTableExtension` function within the object page controller extension. Here, it is`DetailsExtension.controller.js`. In this example, three tables are used on the object page.To identify the tables, you should use the table ID. + You have to implement a `onBeforeRebindTableExtension` function within the object page controller extension. Here, it is`DetailsExtension.controller.js`. If the object page has multiple tables, use the `tableId` to identify the specific table, as shown in the following example: > ### Sample Code: > ``` diff --git a/docs/06_SAP_Fiori_Elements/example-replacing-standard-navigation-in-a-responsive-table-on-the-object-page-b20dc7a.md b/docs/06_SAP_Fiori_Elements/example-replacing-standard-navigation-in-a-responsive-table-on-the-object-page-b20dc7a.md index e19a6497..4b463a83 100644 --- a/docs/06_SAP_Fiori_Elements/example-replacing-standard-navigation-in-a-responsive-table-on-the-object-page-b20dc7a.md +++ b/docs/06_SAP_Fiori_Elements/example-replacing-standard-navigation-in-a-responsive-table-on-the-object-page-b20dc7a.md @@ -172,7 +172,7 @@ Application developers can selectively change the target when chevron navigation > override: { > routing: { > onBeforeNavigation: function(oContextInfo) { - > var oLineContext = oContextInfo.sourceBindingContext, + > var oLineContext = oContextInfo.bindingContext.getObject( ), > oNav = this.base.getExtensionAPI().intentBasedNavigation; > // for salesOrder 6437 navigate to FreeStyle App > if (oLineContext.SalesOrder === "6437") { diff --git a/docs/06_SAP_Fiori_Elements/extending-the-delivered-apps-manifest-using-an-adaptation-project-a2b24a6.md b/docs/06_SAP_Fiori_Elements/extending-the-delivered-apps-manifest-using-an-adaptation-project-a2b24a6.md index dd0166cb..cc98d80b 100644 --- a/docs/06_SAP_Fiori_Elements/extending-the-delivered-apps-manifest-using-an-adaptation-project-a2b24a6.md +++ b/docs/06_SAP_Fiori_Elements/extending-the-delivered-apps-manifest-using-an-adaptation-project-a2b24a6.md @@ -5,7 +5,9 @@ You can extend the SAP-delivered list report and object page apps that are developed on SAP Fiori elements. > ### Note: -> This topic is currently only applicable to SAP Fiori elements for OData V2. +> This topic is only applicapble to SAP Fiori elements for OData V2. + +To know how you can extend the delivered apps manifest for SAP Fiori elements for OData V4, see the section **Adaptation by Application Developers** in the [Adapting the UI](adapting-the-ui-59bfd31.md) topic. The delivered apps can be extended by adding a new node in the object page or by modifying the manifest configurations settings through the adaptation project. By configuring the adaptation project manifest, you can enable the following features: @@ -70,9 +72,9 @@ You must add the parameters in the `changeType`, `layer`, `parentPage`, and `chi -## Defining Configurations for the Newly Extended Node +## Defining Configurations for a Node -Define the following definition in the `manifest.appdescr_variant` file as part of the `content[]`: +The following is a sample definition to set the `createMode` and table type for a node in the object page. It should be added to the `manifest.appdescr_variant` file of the adaptation project. > ### Sample Code: > ``` @@ -109,7 +111,7 @@ You must add the parameters in the `changeType`, `parentPage`, and `entityProper - `entityPropertyChange` contains the following: - - `propertyPath` is the path in the manifest where the changes have to be added. For example, `component/settings/sections/extendedFacetId`, where `extendedFacetId` is the reference facet ID of the new node. + - `propertyPath` is the path in the manifest where the changes have to be added. For example, `component/settings/sections/extendedFacetId`, where `extendedFacetId` is the reference facet ID of the new node. If you are modifying an existing node using the adaptation project, you must specify the facet ID of the section. - `operation` should be set as `UPSERT`. diff --git a/docs/06_SAP_Fiori_Elements/faqs-f4817b7.md b/docs/06_SAP_Fiori_Elements/faqs-f4817b7.md index 1925762a..0ea324a9 100644 --- a/docs/06_SAP_Fiori_Elements/faqs-f4817b7.md +++ b/docs/06_SAP_Fiori_Elements/faqs-f4817b7.md @@ -96,7 +96,7 @@ You can get answers to the commonly asked questions, know more about SAP Fiori e - **I need to show a warning message when a user triggers an action to ensure the user confirms that the action really should be executed. Can this be achieved?** - Yes. For more information, see the *Confirmation Popup for Actions that Fail with 412 Warnings* section in [Confirmation Popups](confirmation-popups-9a53662.md). + Yes. For more information, see the [Confirmation Popup for Actions that Fail with 412 Warnings](confirmation-popups-9a53662.md#loio9a536627a6a94de084b0605eb164d2c8__section_n3z_htm_vsb) section in [Confirmation Popups](confirmation-popups-9a53662.md). @@ -117,15 +117,15 @@ You can get answers to the commonly asked questions, know more about SAP Fiori e - **How can I be sure that sensitive data isn't sent across when navigating between SAP Fiori elements applications? Can I explicitly keep certain information out of the navigation context?** - You can check the *Handling Sensitive and Inapplicable Data* section of *Additional Features in SAP Fiori elements for OData V4* in [Navigation from an App \(Outbound Navigation\)](navigation-from-an-app-outbound-navigation-d782acf.md). + You can check the [Handling Sensitive and Inapplicable Data](navigation-from-an-app-outbound-navigation-d782acf.md#loiod782acf8bfd74107ad6a04f0361c5f62__sensitive_inapplicable_data_subsection) subsection in [Navigation from an App \(Outbound Navigation\)](navigation-from-an-app-outbound-navigation-d782acf.md). - **My source app and target app use different field names for the same business field. How can I ensure that the correct context value for a field is passed during navigation?** - You can use the mechanism described in the *Semantic Object Mapping* section in the *Additional Features in SAP Fiori elements for OData V4* of [Navigation from an App \(Outbound Navigation\)](navigation-from-an-app-outbound-navigation-d782acf.md). + You can use the mechanism described in the [Semantic Object Mapping](navigation-from-an-app-outbound-navigation-d782acf.md#loiod782acf8bfd74107ad6a04f0361c5f62__semantic_object_mapping_subsection) subsection in [Navigation from an App \(Outbound Navigation\)](navigation-from-an-app-outbound-navigation-d782acf.md). - **I don’t want users to see certain intents when using the navigation links. Can I exclude them?** - Yes, you can use the `Common.SemanticObjectUnavailableActions` annotation as described in the *Hiding Unwanted Actions from a Semantic Object* section in *Additional Features in SAP Fiori elements for OData V4* in [Navigation from an App \(Outbound Navigation\)](navigation-from-an-app-outbound-navigation-d782acf.md). + Yes, you can use the `Common.SemanticObjectUnavailableActions` annotation as described in the [Hiding Unwanted Actions from a Semantic Object](navigation-from-an-app-outbound-navigation-d782acf.md#loiod782acf8bfd74107ad6a04f0361c5f62__hiding_unwanted_actions_subsection) subsection in [Navigation from an App \(Outbound Navigation\)](navigation-from-an-app-outbound-navigation-d782acf.md). - **Is it possible to directly navigate to an object page or subobject page without loading the list report app?** @@ -144,19 +144,19 @@ You can get answers to the commonly asked questions, know more about SAP Fiori e - **How can I ensure that my action is enabled only upon selection of table records? How can I ensure that the context is passed to the action?** - You can configure your actions using specific annotations. For more information about bound/unbound actions, see the *Actions Calling OData Function Imports* section in the *Additional Features in SAP Fiori elements for OData V4* in [Actions](actions-cbf16c5.md). + You can configure your actions using specific annotations. For more information about bound/unbound actions, see the [Actions Calling OData Function Imports](actions-cbf16c5.md#loiocbf16c599f2d4b8796e3702f7d4aae6c__actions_calling_subsection) subsection in [Actions](actions-cbf16c5.md). - **How can end users pass additional parameters to the action? Can these action parameters have default values?** - Yes, the action parameters can have default values. For more information, see the *Action Parameters* section in the *Additional Features in SAP Fiori elements for OData V4* in [Actions](actions-cbf16c5.md). + Yes, the action parameters can have default values. For more information, see the [Action Parameters](actions-cbf16c5.md#loiocbf16c599f2d4b8796e3702f7d4aae6c__action_parameters_subsection) subsection in [Actions](actions-cbf16c5.md). - **Is it possible to group my actions under a menu button?** - Yes, you can group actions under a menu button. For more information, see the *Grouping Actions as Menu Button* section in the *Additional Features in SAP Fiori elements for OData V4* in [Actions](actions-cbf16c5.md). + Yes, you can group actions under a menu button. For more information, see the [Grouping Actions as Menu Button](actions-cbf16c5.md#loiocbf16c599f2d4b8796e3702f7d4aae6c__grouping_actions_subsection) subsection in [Actions](actions-cbf16c5.md). - **How do I control the visibility/enablement of the standard *Create* button in a list report table?** - You can control the visibility or enablement of the standard *Create* button in a list report table by using the `OperationAvailable` annotation. For more information, see the *Standard Action: Create* section in the *Additional Features in SAP Fiori elements for OData V4* in [Actions in the List Report](actions-in-the-list-report-993e99e.md). + You can control the visibility or enablement of the standard *Create* button in a list report table by using the `OperationAvailable` annotation. For more information, see the [Standard Action: Create](actions-in-the-list-report-993e99e.md#loio993e99eae4414b73bc7afef9518c79bf__standard_action_create_subsection) subsection in [Actions in the List Report](actions-in-the-list-report-993e99e.md). - **Can I define app-level critical actions that are shown emphasized rather than the default emphasized buttons such as *Edit* and *Save* of SAP Fiori elements?** @@ -179,7 +179,7 @@ You can get answers to the commonly asked questions, know more about SAP Fiori e - **Is there a support for parameterized entities to ensure that the users can provide parameters \(for example, `DisplayCurrency`\) in the filter bar that are then handled accordingly in the back end? That is, not as filters but as parameters to normalize the unit of measure or currency, for example?** - Yes, we support parameterized entity sets. For more information, see the *Supporting Parameterized Entities* section in the *Additional Features in SAP Fiori elements for OData V4* in [Configuring Filter Bars](configuring-filter-bars-4bd7590.md). + Yes, we support parameterized entity sets. For more information, see the [Supporting Parameterized Entities](configuring-filter-bars-4bd7590.md#loio4bd7590569c74c61a0124c6e370030f6__suppprting_parameterized_entities_subsection) subsection in [Configuring Filter Bars](configuring-filter-bars-4bd7590.md). - **I want my users to be able to filter for a value based on the associated measure. For example, to filter the month that has the highest sales. Is this possible?** @@ -248,7 +248,7 @@ You can get answers to the commonly asked questions, know more about SAP Fiori e SAP Fiori elements also supports several table types. You can show or hide columns of list report and object page tables depending on the screen width. For example, if the browser window is small or the app is running on a device with a small screen, or if you're using the flexible column layout. - The value of the `UI.Importance` annotation for the field determines which columns are hidden or moved when the screen size is reduced. For more information, see the *Show/Hide Columns Based on Importance and Available Screen Size* section in [Tables](tables-c0f6592.md). + The value of the `UI.Importance` annotation for the field determines which columns are hidden or moved when the screen size is reduced. For more information, see the [Showing or Hiding Columns Based on Importance and Available Screen Size in Responsive Tables](tables-c0f6592.md#loioc0f6592a592e47f9bb6d09900de47412__section_kgk_phh_wpb) section in [Tables](tables-c0f6592.md). - **Can I allow users to edit multiple records in one go \(mass edit or bulk edit\)?** @@ -273,7 +273,7 @@ You can get answers to the commonly asked questions, know more about SAP Fiori e - **What is the main difference in the handling of aggregations in OData V2 and OData V4?** - In OData V2, the UI has to pass only the required properties in the call and the back end ensures that an aggregation is performed on all the measure properties. In OData V4, the client has to explicitly pass the properties as dimensions or measures when the call is made, thus allowing greater flexibility while using the property. For more information, see the *Enabling Aggregation in the Back End* section in the *Additional Features in SAP Fiori elements for OData V4* in [Configuring Charts](configuring-charts-653ed0f.md). + In OData V2, the UI has to pass only the required properties in the call and the back end ensures that an aggregation is performed on all the measure properties. In OData V4, the client has to explicitly pass the properties as dimensions or measures when the call is made, thus allowing greater flexibility while using the property. For more information, see the [Enabling Aggregation in the Back End](configuring-charts-653ed0f.md#loio653ed0f4f0d743dbb33ace4f68886c4e__enabling_aggregation_subsection) subsection in [Configuring Charts](configuring-charts-653ed0f.md). - **Can I use charts in the list report, especially in a draft-based lt report and an object page, or is the use of charts limited to the ALP flavor of the list report?** diff --git a/docs/06_SAP_Fiori_Elements/field-help-a5608ea.md b/docs/06_SAP_Fiori_Elements/field-help-a5608ea.md index 8e552baa..8fd98051 100644 --- a/docs/06_SAP_Fiori_Elements/field-help-a5608ea.md +++ b/docs/06_SAP_Fiori_Elements/field-help-a5608ea.md @@ -514,7 +514,7 @@ Some scenarios require more than one value help. ### Value Help with `TextArrangement` -You can use the `UI.TextArrangement` annotation to configure the display format of a table column of the value help. The following two options are available: +You can use the `UI.TextArrangement` annotation to configure the display format of a table column of the value help. The following options are available: - Value Help with a Dialog @@ -785,6 +785,41 @@ You can use the `UI.TextArrangement` annotation to configure the display format \*2\): If you define the `Common.Text` annotation without the `UI.TextArrangement`, the display format is `DescriptionValue`. +- Best Practices for Value Help for `Edm.Guid`Type Fields + + For `Edm.Guid` type fields, you must not define the `Common.Text` annotation with the description path and the `Common.TextArrangement` with the `TextOnly` display format. Instead, annotate the `Common.ExternalID` with the description path, as shown in the following example: + + > ### Sample Code: + > Using Annotation `Common.ExternalID` + > + > ``` + > category @Common : { + > //Text : category.name, + > //TextArrangement : #TextOnly, + > ExternalID : category.name, //or readable identifier + > FieldControl : #Mandatory, + > ValueList : { + > $Type : 'Common.ValueListType', + > CollectionPath : 'Categories', + > Label : '{i18n>Categories}', + > Parameters : [ + > { + > $Type : 'Common.ValueListParameterInOut', + > LocalDataProperty : category_ID, + > ValueListProperty : 'ID', + > } + > , + > { + > $Type : 'Common.ValueListParameterDisplayOnly', + > ValueListProperty : 'name', + > }, + > ], + > }, + > }; + > ``` + + For more information about using `Common.ExternalID` annotation, see [Displaying Readable IDs Instead of Edm.Guid Values Using Common.ExternalID](further-features-of-the-field-f49a0f7.md#loiof49a0f7eaafe444daf4cd62d48120ad0__section_fy3_gpy_gbc). + > ### Tip: > The system automatically excludes a column with the `Description` if the `Description` is already displayed in another column that uses one of the following text arrangements: diff --git a/docs/06_SAP_Fiori_Elements/further-features-of-the-field-f49a0f7.md b/docs/06_SAP_Fiori_Elements/further-features-of-the-field-f49a0f7.md index c684bcfb..68f9cb88 100644 --- a/docs/06_SAP_Fiori_Elements/further-features-of-the-field-f49a0f7.md +++ b/docs/06_SAP_Fiori_Elements/further-features-of-the-field-f49a0f7.md @@ -5,7 +5,7 @@ Application developers can control important features of the field. > ### Note: -> This topic is currently only applicable to SAP Fiori elements for OData V4. +> This topic is only applicable to SAP Fiori elements for OData V4. @@ -207,6 +207,37 @@ The `TextArrangement` value at entity set level is considered as a fallback only + + +## Displaying Readable IDs Instead of `Edm.Guid` Values Using `Common.ExternalID` + +For the properties of `Edm.Guid` type, you can define a `Common.ExternalID` annotation that displays a readable identifier of an item. Using this, the readable ID is displayed on the UI instead of the `Edm.Guid` value. The `Common.ExternalID` annotation is supported for both the fields and filter fields. + +The following code snippets show a `Common.ExternalID` annotation at the `myGuidProperty` that is an `Edm.Guid` property. It points to the readable ID that is the `externalId` property. + +> ### Sample Code: +> XML Annotation +> +> ``` +> +> +> +> ``` + +> ### Sample Code: +> CAP CDS Annotation +> +> ``` +> annotate ExternalIdService.Entities : myGuidProperty with @(Common: {ExternalID: externalId}); +> +> ``` + +The `Common.Text` and `Common.TextArrangement` annotations are evaluated only for the readable ID property instead of the `GUID` property. However, while the `GUID` property is not visible on the UI, it is a part of the field as a technical identifier of an item or for filter fields. + +Value helps for a field with an `ExternalID` property are to be defined at the `Edm.Guid` property. The entity type that is shown in the value help \(defined in the `collectionPat`h of the `Common.ValueList` annotation\) can have `Edm.Guid` properties pointing to the readable ID properties. + + + ## Fiscal Annotations @@ -244,7 +275,7 @@ ABAP CDS Annotation -PPP +YYYYPPP @@ -266,7 +297,7 @@ d -`?` +`N/A` @@ -278,7 +309,7 @@ d -YYYYPPP +PPP @@ -375,7 +406,7 @@ YYYYWW -`?` +`N/A` @@ -391,7 +422,7 @@ YYYYWW -For example, `IsFiscalYearPeriod` indicates that the annotated `Edm.String` property is a string based on a fiscal date following the PPP pattern. +For example, `IsFiscalYearPeriod` indicates that the annotated `Edm.String` property is a string based on a fiscal date following the YYYYPPP pattern. > ### Sample Code: > XML Annotation @@ -469,6 +500,8 @@ For example, `IsFiscalYearPeriod` indicates that the annotated `Edm.String` prop > > ``` +For more information about ABAP and CDS semantics annotations, see [Semantics Annotations](https://help.sap.com/docs/abap-cloud/abap-rap/semantics-annotations). + Check out our live example in the flexible programming model explorer at [Field - Fiscal types](https://sapui5.hana.ondemand.com/test-resources/sap/fe/core/fpmExplorer/index.html#/buildingBlocks/fieldFiscals). @@ -477,7 +510,7 @@ Check out our live example in the flexible programming model explorer at [Field ## Visibility and Enablement of the Field -The visibility of the field is affected by the `UI.Hidden` annotation, which can be given either at property level or field level. +The visibility of the field is affected by the `UI.Hidden` annotation, that can be given either at property level or field level. @@ -538,7 +571,7 @@ The visibility of the field is affected by the `UI.Hidden` annotation, which can > ### Sample Code: > ABAP CDS Annotation > -> ABAP CDS does not support `Measures.ISOCurrency`. Please use the local XML annotation. +> ABAP CDS does not support `Measures.ISOCurrency`.Use the local XML annotation. > ### Sample Code: > CAP CDS Annotation @@ -555,7 +588,7 @@ The visibility of the field is affected by the `UI.Hidden` annotation, which can -### The property ID of the entity `ProductsType` is always invisible +### The property ID of the entity `ProductsType` is always hidden > ### Sample Code: > XML Annotation @@ -592,7 +625,7 @@ The visibility of the field is affected by the `UI.Hidden` annotation, which can ### `UI.Hidden` can also be path based -The property `ModifiedAt` is invisible in the `FieldGroup` with the qualifier `AdministrativeData` if the property `HasDraftEntity` is set to `true` – all other appearances of the property `ModifiedAt` are not influenced. +The property `ModifiedAt` is hidden in the `FieldGroup` with the qualifier `AdministrativeData` if the property `HasDraftEntity` is set to `true` – all other appearances of the property `ModifiedAt` are not influenced. > ### Sample Code: > XML Annotation @@ -642,7 +675,7 @@ The property `ModifiedAt` is invisible in the `FieldGroup` with the qualifier `A > ### Note: > ABAP CDS does not allow a `UI.hidden` annotation pointing to a path. Please use the local XML annotation. -The property `ModifiedAt` is always invisible \(wherever the property appears\) if the property `HasDraftEntity` is set to `true` – in all other cases it’s visible. +The property `ModifiedAt` is always hidden \(wherever the property appears\) if the property `HasDraftEntity` is set to `true` – in all other cases it’s visible. > ### Sample Code: > XML Annotation @@ -678,7 +711,7 @@ The property `ModifiedAt` is always invisible \(wherever the property appears\) > ``` > ### Note: -> ABAP CDS does not allow a `UI.hidden` annotation pointing to a path. Please use the local XML annotation. +> ABAP CDS does not allow a `UI.hidden` annotation pointing to a path. Use the local XML annotation. @@ -720,7 +753,7 @@ In addition, the value of the `FieldControl` determines how the field behaves. I > ``` > ### Note: -> `@ObjectModel.mandatory` can be applied on the ABAP CDS view only. This is **not** possible via metadata extensions. Furthermore, only `@ObjectModel.mandatory` is exposed and not `@ObjectModel.readOnly`. +> `@ObjectModel.mandatory` can be applied on the ABAP CDS view only. This is **not** possible using metadata extensions. Furthermore, only `@ObjectModel.mandatory` is exposed and not `@ObjectModel.readOnly`. diff --git a/docs/06_SAP_Fiori_Elements/grouping-of-fields-7d7a0c4.md b/docs/06_SAP_Fiori_Elements/grouping-of-fields-7d7a0c4.md index f4f66fed..a361072e 100644 --- a/docs/06_SAP_Fiori_Elements/grouping-of-fields-7d7a0c4.md +++ b/docs/06_SAP_Fiori_Elements/grouping-of-fields-7d7a0c4.md @@ -194,8 +194,6 @@ This groups the fields in a form-like display, as shown in the following screens > - If there is no `Headerfacet` annotation and if the `Headerinfo` annotation doesn’t contain any images, then the expand or collapse button and the pin button are hidden from the object page header. > > - If a subsection contains only one group, and the subsection title is same as group title, then the group title is hidden. -> -> - If `UI.FieldGroup` has only one `UI.MultiLineText` based property and no other controls, the label of the corresponding `TextArea` control is hidden, and only the section or subsection title is displayed. However, you must ensure that a meaningful label is assigned to the `TextArea` control as it is accessed by the screen reader programs. This special logic is also not invoked if the `UI.FieldGroup` has multiple controls configured within it and, at runtime, due to dynamic visibility or UI adaptation, the `TextArea` control is found to be the only visible control. @@ -661,9 +659,47 @@ For more information about how to configure navigation using fields, see [Naviga +### Merging the `TextArea` Label with the Section or Subsection Title + +By default, the `TextArea` label is always displayed. However, if `UI.FieldGroup` has only one `UI.MultiLineText`-based property and no other controls, the label of the corresponding `TextArea` control can be hidden. To do this, in the `manifest.json` file, configure `useSingleTextAreaFieldAsNotes` to `true`. + +> ### Note: +> The setting is at section-level and applies for all TextArea controls within the section. This logic is applicable only if the `TextArea` control is the only control within the `UI.FieldGroup`, at design time. This logic is not invoked due to dynamic visibility of other fields within the same `UI.FieldGroup`, at runtime, or because of UI adaptation, the `TextArea` control is found to be the only visible control. + +> ### Sample Code: +> manifest.json +> +> ``` +> "sap.ui5": { +> "routing": { +> "targets": { +> "SalesOrderManageObjectPage": { +> "options": { +> "settings": { +> "content": { +> "body": { +> "sections": { +> "ReferenceFacet1": { +> "useSingleTextAreaFieldAsNotes": true +> } +> } +> } +> } +> } +> } +> } +> } +> } +> } +> ``` + +When this setting is set to `true`, only the section or subsection title is displayed. However, you must ensure that a meaningful label is assigned to the `TextArea` control as it is accessed by screen reader programs. + + + ## More Information -For more information, see the section about [forms and form groups](https://experience.sap.com/fiori-design-web/form/), and about [forms in the object page](https://experience.sap.com/fiori-design-web/object-page/#forms) in the SAP Fiori design guidelinesc. +For more information, see the section about [forms and form groups](https://experience.sap.com/fiori-design-web/form/), and about [forms in the object page](https://experience.sap.com/fiori-design-web/object-page/#forms) in the SAP Fiori design guidelines. diff --git a/docs/06_SAP_Fiori_Elements/grouping-of-fields-cb1748e.md b/docs/06_SAP_Fiori_Elements/grouping-of-fields-cb1748e.md index 46d2cb34..4ac0c8c0 100644 --- a/docs/06_SAP_Fiori_Elements/grouping-of-fields-cb1748e.md +++ b/docs/06_SAP_Fiori_Elements/grouping-of-fields-cb1748e.md @@ -194,8 +194,6 @@ This groups the fields in a form-like display, as shown in the following screens > - If there is no `Headerfacet` annotation and if the `Headerinfo` annotation doesn’t contain any images, then the expand or collapse button and the pin button are hidden from the object page header. > > - If a subsection contains only one group, and the subsection title is same as group title, then the group title is hidden. -> -> - If `UI.FieldGroup` has only one `UI.MultiLineText` based property and no other controls, the label of the corresponding `TextArea` control is hidden, and only the section or subsection title is displayed. However, you must ensure that a meaningful label is assigned to the `TextArea` control as it is accessed by the screen reader programs. This special logic is also not invoked if the `UI.FieldGroup` has multiple controls configured within it and, at runtime, due to dynamic visibility or UI adaptation, the `TextArea` control is found to be the only visible control. @@ -661,9 +659,47 @@ For more information about how to configure navigation using fields, see [Naviga +### Merging the `TextArea` Label with the Section or Subsection Title + +By default, the `TextArea` label is always displayed. However, if `UI.FieldGroup` has only one `UI.MultiLineText`-based property and no other controls, the label of the corresponding `TextArea` control can be hidden. To do this, in the `manifest.json` file, configure `useSingleTextAreaFieldAsNotes` to `true`. + +> ### Note: +> The setting is at section-level and applies for all TextArea controls within the section. This logic is applicable only if the `TextArea` control is the only control within the `UI.FieldGroup`, at design time. This logic is not invoked due to dynamic visibility of other fields within the same `UI.FieldGroup`, at runtime, or because of UI adaptation, the `TextArea` control is found to be the only visible control. + +> ### Sample Code: +> manifest.json +> +> ``` +> "sap.ui5": { +> "routing": { +> "targets": { +> "SalesOrderManageObjectPage": { +> "options": { +> "settings": { +> "content": { +> "body": { +> "sections": { +> "ReferenceFacet1": { +> "useSingleTextAreaFieldAsNotes": true +> } +> } +> } +> } +> } +> } +> } +> } +> } +> } +> ``` + +When this setting is set to `true`, only the section or subsection title is displayed. However, you must ensure that a meaningful label is assigned to the `TextArea` control as it is accessed by screen reader programs. + + + ## More Information -For more information, see the section about [forms and form groups](https://experience.sap.com/fiori-design-web/form/), and about [forms in the object page](https://experience.sap.com/fiori-design-web/object-page/#forms) in the SAP Fiori design guidelinesc. +For more information, see the section about [forms and form groups](https://experience.sap.com/fiori-design-web/form/), and about [forms in the object page](https://experience.sap.com/fiori-design-web/object-page/#forms) in the SAP Fiori design guidelines. diff --git a/docs/06_SAP_Fiori_Elements/handling-of-the-preferredmode-parameter-bfaf3cc.md b/docs/06_SAP_Fiori_Elements/handling-of-the-preferredmode-parameter-bfaf3cc.md index 1d81dfa3..8c589158 100644 --- a/docs/06_SAP_Fiori_Elements/handling-of-the-preferredmode-parameter-bfaf3cc.md +++ b/docs/06_SAP_Fiori_Elements/handling-of-the-preferredmode-parameter-bfaf3cc.md @@ -4,9 +4,17 @@ Applications can configure the mode in which the object page is initially launched using the `preferredMode` parameter. -You can configure the list report and object page app in the SAP Fiori launchpad with a start-up parameter `preferredMode=create`, then on launching the app from the tile, the object page is directly loaded in create mode. +The `preferredMode` parameter supports multiple values that allows you to specify the mode in which the object page is launched. For more information, see the separate sections in this topic. -This behavior is also achieved if `preferredMode=create` is added to the navigation URL during external navigation:\(…`#SalesOrder-manage?preferredMode=create`\). You can also add URL parameters after `preferredMode=create` to pass specific values to be used in the creation process. + + + + +## Using the `preferredMode=create` parameter + +You can configure the list report and object page apps in the SAP Fiori launchpad with a start-up parameter `preferredMode=create`. When the app is launched from the tile, the object page loads directly in create mode. + +To achieve this behavior during external navigation, you can add `preferredMode=create` to the navigation URL during external navigation:\(…`#SalesOrder-manage?preferredMode=create`\). You can also add URL parameters after `preferredMode=create` to pass specific values to be used in the creation process. > ### Example: > To set the value 01 for the `DefectCategory` field, enter the URL `…#Defect-displayWorklist?preferredMode=create&DefectCategory=01`. @@ -17,7 +25,7 @@ For information about specific restrictions and the required manifest changes fo ## Additional Features in SAP Fiori Elements for OData V2 -Enter the `preferredMode` parameter to specify the mode in which the object page should be opened as follows: +You can specify the mode in which the object page can be opened by entering the `preferredMode` parameter, as shown in the following table: @@ -67,12 +75,12 @@ create *Create Object Page* is opened in the target application. -In case of draft-enabled applications, a new draft is created by using the `POST` call, by default. Users can override this behavior and configure applications to call a function import annotated with `newAction`. +In draft-enabled applications, a new draft is created by using the `POST` call, by default. Users can override this behavior and configure applications to call a function import annotated with `newAction`. You can use URL parameters to prefill specific values. This is currently not supported for draft creation via `newAction`. For example, to set the value 01 for the *DefectCategory* field, enter the URL `…#Defect-displayWorklist?preferredMode=create&DefectCategory=01`. > ### Note: -> The target application must specify in its `manifest.json` which parameters are to be used from the incoming URL. In the following example, only the `Supplier` parameter is used. +> The target application must specify in its `manifest.json` file which parameters are to be used from the incoming URL. In the following example, only the `Supplier` parameter is used. > > ``` > "sap.ui.generic.app": { @@ -116,7 +124,7 @@ If the specified mode isn't suitable for the current draft state, there is no si You can use this value to automatically trigger an unbound action when an app is started with this startup parameter during an external navigation scenario.The startup parameters must contain the mandatory specification of the unbound action and values for the inbound parameters of that action. -The target app must expose the unbound action. The following example shows how you can do this in the `manifest.json` : +The target app must make the unbound action available. To do this, you can specify the changes in the `manifest.json` file, as shown in the following sample code: > ### Sample Code: > ``` @@ -134,7 +142,7 @@ The target app must expose the unbound action. The following example shows how y > > ``` -This snippet shows two unbound actions, `myCreate1` and `myCreate3`, that are used by this feature. These actions are defined in the `metadata.xml` of the service as follows: +The sample code shows two unbound actions, `myCreate1` and `myCreate3`, that are used by this feature. These unbound actions are defined in the `metadata.xml` of the service, as shown in the following sample code: > ### Sample Code: > ``` @@ -149,9 +157,9 @@ This snippet shows two unbound actions, `myCreate1` and `myCreate3`, that are us > > ``` -The source app passes the startup parameter `mode/preferredMode` as `callUnboundAction`. `myActionName` is used to specify the unbound action that is called. The actions must be addressed by their logical names and not by their technical names.Moreover, the source app can also pass values for any inbound parameter of the specified action. For example, to invoke the +The source app passes the startup parameter `mode/preferredMode` as `callUnboundAction`. `myActionName` is used to specify the unbound action that is called. The actions must be addressed by their logical names and not by their technical names. -Moreover, the source app can also pass values for any inbound parameter of the specified action. For example, values, the object page opens in create mode.`myCreate1` function import with the inbound parameters `ResultIsActiveEntity` and `Name`, pass the startup parameter in the URL as shown in the following sample code: +Moreover, the source app can also pass values for any inbound parameter of the specified action. For example, values, the object page opens in create mode. `myCreate1` function import with the inbound parameters `ResultIsActiveEntity` and `Name`, pass the startup parameter in the URL as shown in the following sample code: > ### Sample Code: > ``` @@ -165,7 +173,7 @@ Moreover, the source app can also pass values for any inbound parameter of the s
> ### Note: -> There is no double navigation. If no object page is defined in the target app's manifest or the \(usually internal\) navigation to the object page is overridden by external navigation, the list report is shown. +> There is no double navigation. If no object page is defined in the `manifest.json` file of the target app or the \(usually internal\) navigation to the object page is overridden by external navigation, the list report is shown. @@ -175,11 +183,11 @@ Moreover, the source app can also pass values for any inbound parameter of the s The `preferredMode` parameter works as follows: -- If the application has defined a create action \(property `NewAction` of the annotation `StickySupported` or `DraftRoot` +- If the application has defined a create action \(property `NewAction` of the annotation `StickySupported` or `DraftRoot`\) and if this action is dependent on the mandatory parameters, then on launching the app the action parameter dialog requests the user to enter the parameters. After entering the parameter values, the object page opens in create mode. -- \) and if this is dependent on the mandatory parameters, thenIf the application has not defined a create action or if this is not dependent on the mandatory parameters, then on launch of the app the object page doesn't open in create mode. +- If the application has not defined a create action or if this action is not dependent on the mandatory parameters, then on launching the app, the object page doesn't open in create mode. -- Applications can also define `createWith:` followed by the desired action as the `preferredMode` value. In this case, this action is called when the app is opened in create mode. +- Applications can also define `createWith:`, followed by the desired action as the `preferredMode` value. In this case, this action is called when the app is opened in create mode. If the specified action has parameters, then an action parameter dialog appears after navigation to the target application. If values are already available from the navigation context for some of the fields, these values are taken over into the dialog. This is shown in the following sample code: @@ -215,7 +223,7 @@ The `preferredMode` parameter works as follows: > If an application has its own view instead of the default object page template and is configured with a start-up parameter `preferredMode=create` \(or has the URL parameter `preferredMode=create`\), this does not result in the behavior described above. In this case, the list report application is launched instead. > ### Note: -> There is no double navigation. If no object page is defined in the target app's manifest, the list report is shown. +> There is no double navigation. If no object page is defined in the `manifest.json` file of the target app, the list report is shown. @@ -223,7 +231,7 @@ The `preferredMode` parameter works as follows: When `preferredMode=create` is used with URL parameter values, there's a difference in the handling of the parameters based on creation mode: -- For POST-based create, the values are only considered if they are also specified using the "`useForCreate`" manifest property in the target application. URL parameters that are not defined with the "`useForCreate`" manifest property are not passed to the back end during the creation process. +- For POST-based create, the values are only considered if they are also specified using the `useForCreate` property in the `manifest.json` file of the target application. URL parameters that are not defined using the `useForCreate` property in the `manifest.json` file, are not passed to the back end during the creation process. > ### Sample Code: > Manifest changes to specify parameters relevant for `useForCreate` @@ -242,12 +250,12 @@ When `preferredMode=create` is used with URL parameter values, there's a differe > } > ``` - If the manifest of the target application's object page is configured as shown in the sample code, an incoming URL like …`#SalesOrder-manage?preferredMode=create&SalesOrderType=OR&Supplier=ABC` results in only the part `SalesOrderType=OR` being passed to the back end in the create call. The "`Supplier`" value is ignored because it is not mentioned in the "`useForCreate`" setting. + If the "options": \{ "settings": \{ "contextPath": "/SalesOrderManage", // Object Page ... "inboundParameters": \{ "SalesOrderType": \{ "useForCreate": true \} \} \} \}`manifest.json` file of the object page in the target applicationis configured as shown in the sample code, an incoming URL like …`#SalesOrder-manage?preferredMode=create&SalesOrderType=OR&Supplier=ABC` results in only the part `SalesOrderType=OR` being passed to the back end in the create call. The "`Supplier`" value is ignored because it is not specified in the `useForCreate` property. - For `NewAction()`-based create, the incoming value of the navigation context is always applied to the matching fields \(exact technical name match\) in the action parameter dialog. If no matching field is configured, the parameters from the navigation context are not passed. In this case the manifest setting "`useForCreate`" is not considered at all. > ### Note: - > The parameter values in the navigation context are also passed for matching fields that are hidden, that is, the matching field is configured for the action parameter dialog in `NewAction()`, but not seen because of the `UI.Hidden` annotation. + > "options": \{The parameter values in the navigation context are also passed for matching fields that are hidden, that is, the matching field is configured for the action parameter dialog in `NewAction()`, but not seen because of the `UI.Hidden` annotation. @@ -296,3 +304,5 @@ If an application is configured with the startup parameter `preferredMode=edit` [Actions](actions-cbf16c5.md "You can use generic actions provided by SAP Fiori elements and implement application-specific actions using annotations or extension points.") +[Configuring Navigation](configuring-navigation-a424275.md "SAP Fiori elements control the navigation within an app (internal navigation) and the navigation to and from an app (external navigation).") + diff --git a/docs/06_SAP_Fiori_Elements/images/Copying_Data_from_a_Table_3e5d9c8.png b/docs/06_SAP_Fiori_Elements/images/Copying_Data_from_a_Table_3e5d9c8.png new file mode 100644 index 00000000..45e27e87 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Copying_Data_from_a_Table_3e5d9c8.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Create_button_in_tree_table_46b2fb1.png b/docs/06_SAP_Fiori_Elements/images/Create_button_in_tree_table_46b2fb1.png new file mode 100644 index 00000000..9e4f8bc5 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Create_button_in_tree_table_46b2fb1.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Create_button_intermediary_to_line_node_only_cb60cdd.png b/docs/06_SAP_Fiori_Elements/images/Create_button_intermediary_to_line_node_only_cb60cdd.png new file mode 100644 index 00000000..34e1b776 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Create_button_intermediary_to_line_node_only_cb60cdd.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Example_of_a_forbidden_move_51a0bee.png b/docs/06_SAP_Fiori_Elements/images/Example_of_a_forbidden_move_51a0bee.png new file mode 100644 index 00000000..757c91ee Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Example_of_a_forbidden_move_51a0bee.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Example_of_a_node_with_disabled_cut_action_6478e27.png b/docs/06_SAP_Fiori_Elements/images/Example_of_a_node_with_disabled_cut_action_6478e27.png new file mode 100644 index 00000000..d66f8db3 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Example_of_a_node_with_disabled_cut_action_6478e27.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Example_of_a_table_to_be_exported_to_a_spreadsheet_4f3fed0.png b/docs/06_SAP_Fiori_Elements/images/Example_of_a_table_to_be_exported_to_a_spreadsheet_4f3fed0.png new file mode 100644 index 00000000..ce427aa4 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Example_of_a_table_to_be_exported_to_a_spreadsheet_4f3fed0.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Example_of_an_exported_spreadsheet_1400ee1.png b/docs/06_SAP_Fiori_Elements/images/Example_of_an_exported_spreadsheet_1400ee1.png new file mode 100644 index 00000000..89a6287d Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Example_of_an_exported_spreadsheet_1400ee1.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Example_of_dropping_a_node_under_a_parent_a13261e.png b/docs/06_SAP_Fiori_Elements/images/Example_of_dropping_a_node_under_a_parent_a13261e.png new file mode 100644 index 00000000..7d1133a2 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Example_of_dropping_a_node_under_a_parent_a13261e.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/ObjectPage_DeterminingAction_5dc52f1.jpg b/docs/06_SAP_Fiori_Elements/images/ObjectPage_DeterminingAction_5dc52f1.jpg new file mode 100644 index 00000000..1d31c10c Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/ObjectPage_DeterminingAction_5dc52f1.jpg differ diff --git a/docs/06_SAP_Fiori_Elements/images/ObjectPage_DeterminingAction_5dc52f1.png b/docs/06_SAP_Fiori_Elements/images/ObjectPage_DeterminingAction_5dc52f1.png deleted file mode 100644 index 612b0a67..00000000 Binary files a/docs/06_SAP_Fiori_Elements/images/ObjectPage_DeterminingAction_5dc52f1.png and /dev/null differ diff --git a/docs/06_SAP_Fiori_Elements/images/Object_Page_Value_Help_Text_amp_ID_Display_c9ae198.png b/docs/06_SAP_Fiori_Elements/images/Object_Page_Value_Help_Text_amp_ID_Display_c9ae198.png index ceb1c97a..9ecb9167 100644 Binary files a/docs/06_SAP_Fiori_Elements/images/Object_Page_Value_Help_Text_amp_ID_Display_c9ae198.png and b/docs/06_SAP_Fiori_Elements/images/Object_Page_Value_Help_Text_amp_ID_Display_c9ae198.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/Sorting_Filtering_and_Grouping_Dialog_f1dd67d.png b/docs/06_SAP_Fiori_Elements/images/Sorting_Filtering_and_Grouping_Dialog_f1dd67d.png new file mode 100644 index 00000000..f20e95a2 Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/Sorting_Filtering_and_Grouping_Dialog_f1dd67d.png differ diff --git a/docs/06_SAP_Fiori_Elements/images/context_menu_thumbnail_e24d386.png b/docs/06_SAP_Fiori_Elements/images/context_menu_thumbnail_e24d386.png new file mode 100644 index 00000000..dc92c98b Binary files /dev/null and b/docs/06_SAP_Fiori_Elements/images/context_menu_thumbnail_e24d386.png differ diff --git a/docs/06_SAP_Fiori_Elements/keyboard-shortcuts-0cd318c.md b/docs/06_SAP_Fiori_Elements/keyboard-shortcuts-0cd318c.md index 7b0f8b88..124c5680 100644 --- a/docs/06_SAP_Fiori_Elements/keyboard-shortcuts-0cd318c.md +++ b/docs/06_SAP_Fiori_Elements/keyboard-shortcuts-0cd318c.md @@ -43,6 +43,38 @@ Result +Cancel/Discard Draft + + + + +[Esc\] + + + + +[Esc\] + + + + +The focus is set anywhere on the object page in edit mode. + + + + +Object page + + + + +The same as when user clicks on *Cancel* in the non draft apps and *Discard Draft* in the draft apps. + + + + + + Create @@ -77,39 +109,34 @@ The same as when a user chooses *Create*. -Delete table entry +Create with filters + +\(This keyboard shortcut is not applicable to SAP Fiori elements for OData V4\) -[Ctrl\] + [D\] +[Shift\] + [Ctrl\] + [Enter\] -[Cmd\] + [D\] +[Shift\] + [CMD\] + [Enter\] -The focus is set on the table. +The focus is on the table. List report -Object page - -The same as when a user chooses *Delete* in a table. - -> ### Note: -> This requires a selection for multiple deletions or a focus position for deleting single items. - -Only works on read-only/display-only content. Edit fields map [Del\]/[Backspace\] on their own. +The same as when a user chooses *Create With Filters*. @@ -148,54 +175,61 @@ The same as when a user chooses *Delete* on the object page. -Edit page level +Delete table entry -[Ctrl\] + [E\] +[Ctrl\] + [D\] -[CMD\] + [E\] +[Cmd\] + [D\] -The focus is set anywhere on the object page. +The focus is set on the table. +List report + Object page -The same as when a user chooses *Edit* on the object page. +The same as when a user chooses *Delete* in a table. + +> ### Note: +> This requires a selection for multiple deletions or a focus position for deleting single items. + +Only works on read-only/display-only content. Edit fields map [Del\]/[Backspace\] on their own. -Save page level +Edit page level -[Ctrl\] + [S\] +[Ctrl\] + [E\] -[CMD\] + [S\] +[CMD\] + [E\] -The page is in edit mode. The focus is set anywhere on the object page. +The focus is set anywhere on the object page. @@ -205,31 +239,29 @@ Object page -The same as when a user chooses *Save* on the object page +The same as when a user chooses *Edit* on the object page. -Share - -\(This keyboard shortcut is currently not applicable to SAP Fiori elements for OData V4\) +Export as -[Shift\] + [Ctrl\] + [S\] +[Shift\] + [Ctrl\] + [E\] -[Shift\] + [CMD\] + [S\] +[Shift\] + [CMD\] + [E\] -The focus is set anywhere on the list report or object page. +The focus is set on the table. @@ -243,7 +275,7 @@ Object page -If the focus is on the filter bar, the share-ActionSheet opens near the *Share* button +The same as when a user chooses *Export to Excel* \> *Export As* @@ -255,12 +287,12 @@ Go -[Enter\]or [Return\] +[Enter\]or [Return\] -[Enter\]or [Return\] +[Enter\]or [Return\] @@ -288,7 +320,7 @@ In the SmartFilterBar, the search is triggered when the focus is in one of the f Go -\(This keyboard shortcut is currently not applicable to SAP Fiori elements for OData V4\) +\(This keyboard shortcut is not applicable to SAP Fiori elements for OData V4\) @@ -320,94 +352,86 @@ Analytical list page \(visual filter\) -Select row in analytical or grid tables +Open error list -[Shift\] + [Space\] +[Ctrl\] + [Shift\] + [M\] -[Shift\] + [Space\] +[CMD\] + [Shift\] + [M\] -The focus is on a table cell. +The focus is set anywhere on the object page in edit mode. -Analytical list page - -List report - Object page -If the focus is on a cell, the entire row is selected +The same as when a user chooses the *Error* button. -Table settings +Save page level -[Ctrl\] + [,\] +[Ctrl\] + [S\] -[Ctrl\] + [,\] +[CMD\] + [S\] -The focus is set on the table. +The page is in edit mode. The focus is set anywhere on the object page. -Analytical list page - -List report - Object page -The same as when a user chooses the *Table Settings* button. +The same as when a user chooses *Save* on the object page -Export as +Select row in analytical or grid tables -[Shift\] + [Ctrl\] + [E\] +[Shift\] + [Space\] -[Shift\] + [CMD\] + [E\] +[Shift\] + [Space\] -The focus is set on the table. +The focus is on a table cell. @@ -421,73 +445,81 @@ Object page -The same as when a user chooses *Export to Excel* \> *Export As*. +If the focus is on a cell, the entire row is selected -Create with filters +Share -\(This keyboard shortcut is currently not applicable to SAP Fiori elements for OData V4\) +\(This keyboard shortcut is not applicable to SAP Fiori elements for OData V4\) -[Shift\] + [Ctrl\] + [Enter\] +[Shift\] + [Ctrl\] + [S\] -[Shift\] + [CMD\] + [Enter\] +[Shift\] + [CMD\] + [S\] -The focus is on the table. +The focus is set anywhere on the list report or object page. +Analytical list page + List report +Object page + -The same as when a user chooses *Create With Filters*. +If the focus is on the filter bar, the share-ActionSheet opens near the *Share* button -Cancel/Discard Draft +Table settings -[Esc\] +[Ctrl\] + [,\] -[Esc\] +[Ctrl\] + [,\] -The focus is set anywhere on the object page in edit mode. +The focus is set on the table. +Analytical list page + +List report + Object page -The same as when user clicks on *Cancel* in the non draft apps and *Discard Draft* in the draft apps. +The same as when a user chooses the *Table Settings* button. diff --git a/docs/06_SAP_Fiori_Elements/migrating-an-existing-project-from-sap-web-ide-02912dc.md b/docs/06_SAP_Fiori_Elements/migrating-an-existing-project-from-sap-web-ide-02912dc.md index a18ae13a..b2d6702a 100644 --- a/docs/06_SAP_Fiori_Elements/migrating-an-existing-project-from-sap-web-ide-02912dc.md +++ b/docs/06_SAP_Fiori_Elements/migrating-an-existing-project-from-sap-web-ide-02912dc.md @@ -4,5 +4,5 @@ You can migrate your SAP Fiori projects, such as SAP Web IDE, to SAP Business Application Studio and Visual Studio Code. -For more information on migrating your projects from SAP Web IDE to SAP Fiori tools, see [Migration](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/70d41f3ee29d453a90efab3ce025d450.html). +For more information about migrating your projects from SAP Web IDE to SAP Fiori tools, see [Migration](https://help.sap.com/docs/SAP_FIORI_tools/17d50220bcd848aa854c9c182d65b699/70d41f3ee29d453a90efab3ce025d450.html). diff --git a/docs/06_SAP_Fiori_Elements/migrating-from-registercontrollerextensions-api-4120052.md b/docs/06_SAP_Fiori_Elements/migrating-from-registercontrollerextensions-api-4120052.md new file mode 100644 index 00000000..67413080 --- /dev/null +++ b/docs/06_SAP_Fiori_Elements/migrating-from-registercontrollerextensions-api-4120052.md @@ -0,0 +1,217 @@ + + +# Migrating from `registerControllerExtensions` API + +As of SAPUI5 1.120 release, the [`registerControllerExtensions`](https://ui5.sap.com/#/api/sap.suite.ui.generic.template.extensionAPI.extensionAPI%23methods/sap.suite.ui.generic.template.extensionAPI.extensionAPI.registerControllerExtensions)API is getting deprecated. It is planned to be removed from the SAPUI5 version 2.0. + +> ### Note: +> This topic is only applicable to SAP Fiori elements for OData V2. + +Following are the requirements that describe why the API is getting deprecated: + +- Now, SAPUI5 provides capabilities to register multiple controller extensions for a single floorplan \(one controller extension per view\) directly through the manifest. In this case, the `registerControllerExtensions` API is not required anymore. + +- The `registerControllerExtensions` API internally uses the [`sap.ui.controller`](https://ui5.sap.com/#/api/sap.ui%23methods/sap.ui.controller) API. + + + + +
+ +## Steps to Migrate + +The current setup has the following three controller extension files for the object page. + +- `DetailsExtension.controller.js` + + The parent controller that invokes extensionAPI.`registerControllerExtensions` and registers the remaining two child controllers. + +- `SalesOrderExtension.controller.js` + + One of the child controllers that is responsible for the `Sales Order` view \(bound with `C_STTA_SalesOrder_WD_20` entity set\). + +- `SalesOrderItemExtension.controller.js` + + One of the child controllers that is responsible for the `Sales Order Item` view \(bound with `C_STTA_SalesOrderItem_WD_20` entity set\). + + +From SAPUI5 version 2.0, only the two child controller files are going to be required + +**Step 1: Changes Required in the `manifest.json`** + +1. Register all the child controllers under `sap.ui.controllerExtensions` section of `manifest.json`. The registered entry must be in `#` format. For example, the `SalesOrderExtension.controller.js` is to be registered as the following. + + > ### Sample Code: + > ``` + > "sap.ui.controllerExtensions": { + > ... + > "sap.suite.ui.generic.template.ObjectPage.view.Details#STTASOWD20::sap.suite.ui.generic.template.ObjectPage.view.Details::C_STTA_SalesOrder_WD_20": { + > "controllerName": "STTASOWD20.ext.controller.SalesOrderExtension", + > "sap.ui.generic.app": { + > "C_STTA_SalesOrder_WD_20": { + > "EntitySet": "C_STTA_SalesOrder_WD_20", + > "Header": { + > "Actions": { + > ... + > } + > }, + > "Sections": { + > "Actions": { + > ... + > } + > } + > } + > } + > } + > } + > ``` + +2. Copy the content \(such as, header actions, section actions\) of parent controller extension to the respective child controller extensions. + +3. Remove the entry of parent controller extension from `sap.ui.controllerExtensions` section of `manifest.json`. + + +**Step 2: Changes Required in the Controller Extensions** + +1. Remove the parent controller extension file. + +2. All the child controller extension files must extend the `sap.ui.core.mvc.ControllerExtension` class. + + > ### Sample Code: + > ``` + > sap.ui.define([ + > "sap/ui/core/mvc/ControllerExtension" + > ], function (ControllerExtension) { + > 'use strict'; + > return ControllerExtension.extend("STTASOWD20.ext.controller.SalesOrderExtension", { + > override: { + > // Overridden methods + > }, + > // Custom methods + > }); + > }); + > ``` + +3. All the overridden methods must be kept under the `override` section of the controller extension class. It includes the following: + + - All the methods provided by SAPUI5 \(for e.g: onInit\) + + - All the methods of [`ObjectPage controllerFrameworkExtensions`](https://ui5.sap.com/#/api/sap.suite.ui.generic.template.ObjectPage.controllerFrameworkExtensions) \(for e.g: `adaptNavigationParameterExtension`, `beforeSaveExtension`\) + + +4. All the custom methods are to be added after the `override` section. + + > ### Sample Code: + > ``` + > sap.ui.define([ + > "sap/ui/core/mvc/ControllerExtension" + > ], function (ControllerExtension) { + > 'use strict'; + > + > return ControllerExtension.extend("STTASOWD20.ext.controller.SalesOrderExtension", { + > override: { + > onInit: function(){ + > }, + > adaptNavigationParameterExtension: function (oSelectionVariant, oObjectInfo) {}, + > onBeforeRendering: function () {}, + > beforeDeleteExtension: function () {}, + > beforeSaveExtension: function () {} + > }, + > onObjectPage1CustomAction: function () { + > }, + > onSalesOrderInfo: function () {}, + > onSalesOrderItemInfo: function () {} + > }); + > }); + > ``` + + +**Steps 3: Changes Required in Declaring the Press Event Handlers in the Manifest** + +Earlier, the event handlers for custom actions \(that are implemented in controller extensions\) were declared in the manifest by the name. In the following example, `onObjectPage1CustomAction` is the press event handler for the custom action `ObjectPageCustomAction`. + +> ### Sample Code: +> ``` +> "sap.ui.generic.app": { +> "C_STTA_SalesOrder_WD_20": { +> "EntitySet": "C_STTA_SalesOrder_WD_20", +> "Header": { +> "Actions": { +> "ObjectPageCustomAction": { +> "id": "ObjectPageCustomAction", +> "text": "Custom Action 1", +> "press": "onObjectPage1CustomAction", +> "determining": true, +> "applicablePath": "IsActiveEntity" +> } +> } +> } +> } +> } +> ``` + +It is now going to be changed to extension.`.` format. + +> ### Sample Code: +> ``` +> "sap.ui.generic.app": { +> "C_STTA_SalesOrder_WD_20": { +> "EntitySet": "C_STTA_SalesOrder_WD_20", +> "Header": { +> "Actions": { +> "ObjectPageCustomAction": { +> "id": "ObjectPageCustomAction", +> "text": "Custom Action 1", +> "press": ".extension.STTASOWD20.ext.controller.SalesOrderExtension.onObjectPage1CustomAction", +> "determining": true, +> "applicablePath": "IsActiveEntity" +> } +> } +> } +> } +> } +> ``` + +> ### Note: +> Use the same format while referring to the custom methods from view and fragment files. + +In the following example, refer to the `press` handler of the button. + +> ### Sample Code: +> ``` +> +>