From 30e967cbab3f4d66e4899d4c4b1ba7ff6f08d2eb Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 13 Sep 2026 17:54:51 +0000 Subject: [PATCH 1/3] The view parameter of _bind( ) is removed, not just inert It is gone from z2ui5_if_client on main, so the page says removed instead of obsolete-but-still-compiles: the status table marks it removed for the next release, and the section says a call that still names it does not compile. The migration is unchanged - delete the parameter - and the note that cs_view itself stays, as the view slot of follow_up_action( ), is new. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014YHQHEFhPm2TQT7M5Sszyn --- docs/resources/deprecations.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md index 7b2ce881..1c91a1c3 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -50,7 +50,7 @@ tell you what is coming if you do not. | `_event_client( )` | `follow_up_action( )` | 1.143.0 | | `_bind_edit( )` | `_bind( )` | 1.142.0 | | `_bind( custom_mapper = … custom_filter = … )` | `omit_initial` / `omit_initial_paths` / `json`, or shape it in ABAP | 1.143.0 | -| `_bind( view = … )` | omit the parameter | 1.142.0 | +| `_bind( view = … )` | omit the parameter | **removed**, *next release* | | `z2ui5_if_app~check_sticky` / `check_initialized` | `set_session_stateful( )` / `check_on_init( )` | **removed**, 1.143.0 | | `set_nav_back( )` / `set_nav_routing( )` | `follow_up_action( )` | **removed**, 1.143.0 | | `cs_event-nav_to_route` | `nav_app_call( )` | **removed**, 1.143.0 | @@ -220,8 +220,11 @@ break. ### The `view` parameter of `_bind( )` / `_bind_edit( )` -Inert — it is not passed on internally and has no effect. It dates from the time -each view had its own model. Omit it. +**Removed.** It dates from the time each view slot had a model of its own; today +one model serves every open slot, so there was nothing left for it to select — +the parameter was inert, never passed on internally, for as long as it carried +the obsolete mark. Deleting it is the whole migration, and a call that still +names it does not compile. ```abap " old @@ -231,6 +234,10 @@ client->_bind( val = ms_data view = client->cs_view-popup ) client->_bind( ms_data ) ``` +The binding string that comes back is the one that came back before. `cs_view` +itself stays — it is the view slot of `follow_up_action( )`, where it does +select one. + ### `cs_event-wizard_set_next_step` The event bundles the two calls a UI5 controller makes on a Wizard From 1996bade7d102d4b1308f7ca25b7454c0956d555 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 13 Sep 2026 18:25:36 +0000 Subject: [PATCH 2/3] Five deprecated names are removed, not just superseded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `cs_event-wizard_set_next_step` and the four obsolete URL-API spellings are gone from `z2ui5_if_client` on main, so the page says removed instead of still-compiles: the status table marks all five removed for the next release, and each section says a call that still names one does not compile. The wizard section additionally says its frontend handler went with the constant, so a raw `WIZARD_SET_NEXT_STEP` string does nothing either, and the URL-API section says the same for `evClipboardAppState`. The migrations are unchanged — two `control_by_id` calls, and the `hash_*` / `app_state_*` names. `resources/changelog.md` keeps its 1.143.0 wording: that is the record of what that release did, not a claim about today. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014YHQHEFhPm2TQT7M5Sszyn --- docs/resources/deprecations.md | 38 +++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md index 1c91a1c3..0acacfc2 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -58,17 +58,17 @@ tell you what is coming if you do not. | `client->get( )-viewname` | delete the read | **removed**, 1.143.0 | | `Formatter.round2DP` and four siblings | compute it in ABAP | **removed**, 1.143.0 | | `z2ui5_cl_util_api*`, `z2ui5_cl_pop_bal` | `z2ui5_cl_util` / `z2ui5_cl_util_ext` | **removed**, 1.142.0 | -| `cs_event-wizard_set_next_step` | two `control_by_id` calls | 1.143.0 | +| `cs_event-wizard_set_next_step` | two `control_by_id` calls | **removed**, *next release* | | `z2ui5_cl_xml_view` | `z2ui5_cl_ui5_view_builder` | 1.143.0 | | built-in popups | the [popups add-on](https://github.com/abap2UI5-addons/popups) | 1.142.0 | | `z2ui5.Util` | `z2ui5.Formatter` | 1.142.0 | | `cs_config-title` | `cs_event-set_title` | 1.144.0 | | `z2ui5_if_types=>…` | the same type on the object that uses it | 1.144.0 | | `z2ui5_if_exit` | `z2ui5_if_ui5_exit` | 1.144.0 | -| `set_push_state( )` | `hash_set( )` | *next release* | -| `set_app_state_active( )` | `app_state_set_active( )` | *next release* | -| `cs_event-set_nav_routing` | `cs_event-hash_routing` | *next release* | -| `cs_event-clipboard_app_state` | `app_state_get_href( )` + `cs_event-clipboard_copy` | *next release* | +| `set_push_state( )` | `hash_set( )` | **removed**, *next release* | +| `set_app_state_active( )` | `app_state_set_active( )` | **removed**, *next release* | +| `cs_event-set_nav_routing` | `cs_event-hash_routing` | **removed**, *next release* | +| `cs_event-clipboard_app_state` | `app_state_get_href( )` + `cs_event-clipboard_copy` | **removed**, *next release* | | `_event( s_ctrl-check_allow_multi_req )` | `s_ctrl-check_queue_last` | **removed**, *next release* | ## Obsolete: still compiles @@ -240,11 +240,11 @@ select one. ### `cs_event-wizard_set_next_step` -The event bundles the two calls a UI5 controller makes on a Wizard +**Removed.** The event bundled the two calls a UI5 controller makes on a Wizard (`discardProgress( oStep )` + `oStep.setNextStep( oNext )`) into one fixed pair. Both methods are on the frontend's `CONTROL_METHODS` whitelist, so the same flow is two ordinary `control_by_id` calls — which additionally reach `goToStep`, a -step the bundled event cannot express. +step the bundled event could not express. ```abap " old @@ -258,7 +258,9 @@ client->follow_up_action( val = client->cs_event-control_by_id t_arg = VALUE #( ( `step1` ) ( `setNextStep` ) ( `step2` ) ) ). ``` -The constant and its handler stay and keep working. +The constant is gone from `cs_event` and the `WIZARD_SET_NEXT_STEP` handler is +gone from the frontend, so a call that still names either does not compile and +a raw string does nothing. ### The `nav_container_to` event family @@ -518,9 +520,10 @@ the state the URL carries. | `cs_event-set_nav_routing` | `cs_event-hash_routing` | it is the *hash* that is being routed; `nav_*` is app-to-app navigation | | `cs_event-clipboard_app_state` | `app_state_get_href( )` + `cs_event-clipboard_copy` | the backend composes the link now, so the app can show or mail it, not only copy it | -Both spellings compile, and the first three share their wire value — the old -name and the new one reach the same branch, so there is no behavior to migrate, -only a name: +**Removed.** The first three shared their wire value with the surviving name — +the old spelling and the new one reached the same branch — so there was no +behavior to migrate, only a name, and a call that still writes the old one does +not compile: ```abap " before @@ -532,12 +535,13 @@ client->hash_set( `&my-app-state=detail` ). client->follow_up_action( client->cs_event-hash_routing ). ``` -`cs_event-clipboard_app_state` is the one that is not a pure rename: it -composed the link in the browser and could only put it on the clipboard. The -replacement hands the string to the backend, which is what lets an app show it -in an `Input`, mail it or render it as a QR code — and the composed link keeps -a Fiori Launchpad's shell hash, so a recipient lands in the app instead of on -the launchpad home page: +`cs_event-clipboard_app_state` is the one that was not a pure rename: it +composed the link in the browser and could only put it on the clipboard, and +its frontend handler is gone with the constant. The replacement hands the +string to the backend, which is what lets an app show it in an `Input`, mail it +or render it as a QR code — and the composed link keeps a Fiori Launchpad's +shell hash, so a recipient lands in the app instead of on the launchpad home +page: ```abap " before - fire and forget, the link never existed in ABAP From 21b8ef22f47afc77029c9c82387182e4d7f514fb Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 13 Sep 2026 18:45:29 +0000 Subject: [PATCH 3/3] The event spellings of the URL API are removed too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `cs_event-set_push_state` and `cs_event-set_app_state_active` were alias constants for `cs_event-hash_set` and `cs_event-app_state_set_active` and are gone with the methods of the same name, so the family is `hash_*` / `app_state_*` and nothing else. The status table names them next to their methods, and the section says so in a line of its own — they were never listed separately, and somebody who used one needs to find it here. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014YHQHEFhPm2TQT7M5Sszyn --- docs/resources/deprecations.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md index 0acacfc2..64baf0aa 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -65,8 +65,8 @@ tell you what is coming if you do not. | `cs_config-title` | `cs_event-set_title` | 1.144.0 | | `z2ui5_if_types=>…` | the same type on the object that uses it | 1.144.0 | | `z2ui5_if_exit` | `z2ui5_if_ui5_exit` | 1.144.0 | -| `set_push_state( )` | `hash_set( )` | **removed**, *next release* | -| `set_app_state_active( )` | `app_state_set_active( )` | **removed**, *next release* | +| `set_push_state( )`, `cs_event-set_push_state` | `hash_set( )`, `cs_event-hash_set` | **removed**, *next release* | +| `set_app_state_active( )`, `cs_event-set_app_state_active` | `app_state_set_active( )`, `cs_event-app_state_set_active` | **removed**, *next release* | | `cs_event-set_nav_routing` | `cs_event-hash_routing` | **removed**, *next release* | | `cs_event-clipboard_app_state` | `app_state_get_href( )` + `cs_event-clipboard_copy` | **removed**, *next release* | | `_event( s_ctrl-check_allow_multi_req )` | `s_ctrl-check_queue_last` | **removed**, *next release* | @@ -520,10 +520,15 @@ the state the URL carries. | `cs_event-set_nav_routing` | `cs_event-hash_routing` | it is the *hash* that is being routed; `nav_*` is app-to-app navigation | | `cs_event-clipboard_app_state` | `app_state_get_href( )` + `cs_event-clipboard_copy` | the backend composes the link now, so the app can show or mail it, not only copy it | -**Removed.** The first three shared their wire value with the surviving name — -the old spelling and the new one reached the same branch — so there was no -behavior to migrate, only a name, and a call that still writes the old one does -not compile: +The first two also had an *event* spelling — `cs_event-set_push_state` and +`cs_event-set_app_state_active`, alias constants for `cs_event-hash_set` and +`cs_event-app_state_set_active`. They are removed with the methods, so the +whole family is `hash_*` / `app_state_*` and nothing else. + +**Removed.** Everything but the last shared its wire value with the surviving +name — the old spelling and the new one reached the same branch — so there was +no behavior to migrate, only a name, and a call that still writes an old one +does not compile: ```abap " before