Skip to content

Commit 7baa422

Browse files
committed
docs: improve clarity and fix inconsistencies across all sections
Sweep of the whole documentation for understandability, fixing contradictions, stale references, and unclear wording: - get_started: resolve 7.02/7.50 release contradiction, explain the extensibility tiers, unify "startup page" naming, explain the NS operator and the empty edit-button column in the full example - cookbook: fix wrong method/event names (bind_edit, download_b), correct the OData metadata-binding example (entity type name and sap:label value), align the soft-lock example table name, repair numbered-heading anchors, explain nav_app_leave's two modes and the $event prefix exception, remove a stray demo button, fix the EML double backslash - configuration: update the outdated default CSP, clarify SAPUI5 vs the OpenUI5 bootstrap default, use get_form_field for the app_start URL parameter, neutral handler class name, clearer launchpad and transport guidance - advanced/technical: fix broken clone path and name the three config files, align dispatcher order in agent.md with the canonical template, promote H5 headings in how_it_all_works so the outline works, consistent "Over-the-Wire" spelling and backend-system terminology, complete truncated code snippets Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EC2cWJafPETwcMbh3NCsgH
1 parent c6a2a29 commit 7baa422

64 files changed

Lines changed: 186 additions & 182 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/advanced/addons.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ outline: [2, 4]
55

66
abap2UI5 focuses on core capabilities — rendering views, handling events, and exchanging data. This keeps the framework lean and easy to maintain. The real strength lies in the ecosystem: **ready-to-use add-ons and community projects** that extend abap2UI5 for specific needs.
77

8-
#### Add-ons
8+
#### Available Add-ons
99

1010
Browse the [abap2UI5-addons](https://github.com/abap2UI5-addons) organization to find what you need. Features include:
1111
- Layout variant handling, similar to classic SAP GUI selection screens or ALV reports

docs/advanced/agent.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ ENDCLASS.
5454
```abap
5555
IF client->check_on_init( ). " first call
5656
" load data + render view
57-
ELSEIF client->check_on_event( `POST` ). " user fired event 'POST'
58-
" handle it
5957
ELSEIF client->check_on_navigated( ). " returned from sub-app / popup
6058
" refresh state
59+
ELSEIF client->check_on_event( `POST` ). " user fired event 'POST'
60+
" handle it
6161
ENDIF.
6262
```
6363

@@ -101,8 +101,8 @@ Translate any UI5 XML example from the [UI5 SDK](https://sapui5.hana.ondemand.co
101101
| UI5 XML | ABAP with `z2ui5_cl_util_xml` |
102102
|---|---|
103103
| `<Button text="Send" />` | `->__( n = `Button` a = `text` v = `Send` )` |
104-
| `press="onPress"` | `v = client->_event( `BUTTON_POST` )` |
105-
| `value="{/name}"` | `v = client->_bind_edit( name )` |
104+
| `press="onPress"` | `a = `press` v = client->_event( `BUTTON_POST` )` |
105+
| `value="{/name}"` | `a = `value` v = client->_bind_edit( name )` |
106106
| `<FeedInput><actions>…</actions></FeedInput>` | `->_( `FeedInput` )->_( `actions` )->__( … )` |
107107

108108
Builder methods:

docs/advanced/builds.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ outline: [2, 4]
33
---
44
# Builder
55

6-
For heavy abap2UI5 use, consider building your own version by defining a custom namespace and including the add-ons you need:
6+
If you run abap2UI5 in production or across several systems, consider building your own version — a release under a custom namespace that includes exactly the add-ons and frontend components you need:
77
- Use abap2UI5 in the `z2ui5` namespace for improvements and pull requests, and keep a separate namespace for your production version.
88
- Install multiple instances of abap2UI5 and upgrade each one at its own pace.
99
- Build a custom abap2UI5 release with frontend components and add-ons matched to your needs.
1010

11-
#### Builder
11+
#### The Builder Tool
1212
Make your own abap2UI5 build with the [builder](https://github.com/abap2UI5/builder).
1313

1414
<img width="700" alt="abap2UI5 builder interface for generating custom namespaced builds" src="https://github.com/user-attachments/assets/7c7f55d4-6667-4036-bc71-4cd7472f2ae9" />

docs/advanced/extensibility/custom_control.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ First, set up your VS Code environment with the abap2UI5 frontend artifacts, fol
99

1010
#### Frontend
1111

12-
Write the JS code for your new custom control. Copy an existing control from [App.controller.js](https://github.com/abap2UI5/abap2UI5/blob/main/app/webapp/controller/App.controller.js) and adapt it.
12+
Write the JavaScript for your new custom control. Each custom control lives in its own file under [app/webapp/cc/](https://github.com/abap2UI5/abap2UI5/tree/main/app/webapp/cc) — copy an existing one (e.g. `Timer.js`) and adapt it to your needs.
1313

1414
#### Backend
1515
Extend the custom control view class by adding a method and defining the new control's properties:

docs/advanced/extensibility/frontend.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@ The abap2UI5 frontend artifacts live in the `app` folder. To adjust them:
99
Open VS Code (or your editor of choice), then run in the terminal:
1010
```sh
1111
git clone https://github.com/abap2UI5/abap2UI5
12-
cd app
12+
cd abap2UI5/app
1313
```
14-
Next replace `<<system>>` and let all three files point to your ABAP backend system:
14+
Next replace `<<system>>` in the three config files`ui5.yaml`, `ui5-local.yaml` and `ui5-mock.yaml` — so they all point to your ABAP backend system:
1515

1616
<img width="400" alt="Frontend config files where the backend system URL must be replaced" src="https://github.com/user-attachments/assets/155c9a3f-8a0a-494b-8fc4-a4bba2bf0e90">
1717

1818
#### Build & Test
19-
Set the backend system in the YAML files.<br>
20-
Replace `/sap/bc/z2ui5` with your endpoint in the manifest, then run:
19+
If your HTTP service uses a different path, also replace `/sap/bc/z2ui5` with your endpoint in the manifest. Then run:
2120
```sh
2221
npm i
2322
npm run start-noflp

docs/advanced/fiori.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ sap.ui.core.Component.create({
4242
oVBox.addItem(oCompContainer);
4343

4444
//Overwrite default height of object page section
45-
var oSection = that.getView().byId("[This is the ID of your object page section::Section]");
45+
var oSection = that.getView().byId("<your-object-page-section-id>"); // replace with the ID of your object page section
4646
oSection.addStyleClass("customSectionHeight");
4747

4848
});
@@ -66,15 +66,21 @@ sap.ui.core.Component.create({
6666

6767
5. Create abap2UI5 app class
6868

69-
On the ABAP side, the app receives the Fiori startup parameters (like the app class name and any custom key-value pairs) via `client->get( )-t_comp_params`. The `check_initialized` flag ensures the parameters are read only once, on the first roundtrip. Setting `backgrounddesign = 'List'` gives the page a white background matching the Fiori object page:
69+
On the ABAP side, the app receives the Fiori startup parameters (like the app class name and any custom key-value pairs) via `client->get( )-t_comp_params`. The `check_initialized` flag — a public `abap_bool` attribute of the app class — ensures the parameters are read only once, on the first roundtrip. Setting `backgrounddesign = 'List'` gives the page a white background matching the Fiori object page:
7070
```abap
71+
" class definition:
72+
" PUBLIC SECTION.
73+
" INTERFACES z2ui5_if_app.
74+
" DATA check_initialized TYPE abap_bool.
75+
7176
METHOD z2ui5_if_app~main.
7277
7378
IF check_initialized = abap_false.
7479
check_initialized = abap_true.
7580
7681
* ---------- Get startup parameters ---------------------------------------------------------------
7782
DATA(lt_startup_params) = client->get( )-t_comp_params.
83+
" ... evaluate the startup parameters here
7884
7985
ENDIF.
8086

docs/advanced/http.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ The system that calls the app (the frontend system) ships with the UI5 library a
1818

1919
#### Installation
2020

21-
_Prerequisite: Set up an SM59 HTTP destination pointing to the source system. Install abap2UI5 on both systems._
21+
_Prerequisite: Set up an SM59 HTTP destination pointing to the backend system (the system that runs the apps). Install abap2UI5 on both systems._
2222

2323
Steps:
2424
1. Install the [abap2UI5 HTTP Connector](https://github.com/abap2UI5-addons/http-connector) via abapGit on both systems
25-
2. In the HTTP handler, configure the destination to point to your source system
26-
3. In your browser, call the endpoint of the HTTP Connector
25+
2. In the HTTP handler, configure the destination to point to the backend system
26+
3. In your browser, call the HTTP Connector's endpoint on the frontend system (the ICF service installed with the connector — analogous to `.../sap/bc/2ui5_rfc` for the RFC Connector)
2727

2828
#### Further Information
2929
For the latest details, source code, and updates, see the [HTTP Connector repository on GitHub](https://github.com/abap2UI5-addons/http-connector).

docs/advanced/local.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ outline: [2, 4]
33
---
44
# Local
55

6-
abap2UI5-local is a special build that bundles all artifacts into a single HTTP handler. Create one extra database table, and you can run abap2UI5 independently of any other installation on the system.
6+
abap2UI5-local is a special build that bundles all framework classes into a single HTTP handler class. Besides that, you only need to create one additional database table. This gives you a self-contained copy of abap2UI5 that runs independently of any other abap2UI5 installation on the same system.
77

88
For full details, see the repository: [abap2UI5-local](https://github.com/abap2UI5/abap2UI5-local)

docs/advanced/rfc.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ The system that calls the app (the frontend system) ships with the UI5 library a
1919

2020
#### Installation
2121

22-
_Prerequisite: Set up an SM59 destination to call the source system over RFC. Install abap2UI5 on both systems._
22+
_Prerequisite: Set up an SM59 destination to call the backend system (the system that runs the apps) over RFC. Install abap2UI5 on both systems._
2323

2424
Steps:
2525
1. Install the [abap2UI5 RFC Connector](https://github.com/abap2UI5-addons/rfc-connector) via abapGit on both systems
26-
2. In the HTTP handler, replace the destination `NONE` with your Source System Destination
26+
2. In the HTTP handler, replace the destination `NONE` with the RFC destination pointing to the backend system
2727
3. In your browser, call the endpoint `.../sap/bc/2ui5_rfc`
2828

2929
#### UI5 Bootstrapping

docs/configuration/authorization.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,23 @@ outline: [2, 4]
66
abap2UI5 gives you flexibility in managing authorization. It has no built-in authorization mechanism, so you can build your own solution at either the service or the app level.
77

88
### Service-Level
9-
An easy way to manage access to different apps: add checks in the HTTP handler. This approach restricts access to individual apps based on the APP_START parameter, directly in the ICF service handler class.
9+
The easiest way to manage access to different apps is to add authorization checks in the HTTP handler. This approach restricts access to individual apps based on the `app_start` URL parameter, directly in the ICF service handler class.
1010

1111
#### Example: Restricting Access Based on URL Parameters
12-
In this example, we use the ICF handler class to control which apps users can access, based on the APP_START parameter in the HTTP request. The `get_header_field( 'APP_START' )` method reads the URL query parameter that names the abap2UI5 app class to launch. If the user requests an unauthorized app, the handler refuses access.
12+
In this example, we use the ICF handler class to control which apps users can access. The `get_form_field( `app_start` )` call reads the `app_start` URL parameter that names the abap2UI5 app class to launch (e.g. `...?app_start=my_app`). If the user requests an unauthorized app, the handler refuses access.
1313
```abap
14-
CLASS z2ui5_cl_launchpad_handler DEFINITION PUBLIC.
14+
CLASS z2ui5_cl_my_http_handler DEFINITION PUBLIC.
1515
1616
PUBLIC SECTION.
1717
INTERFACES if_http_extension.
1818
1919
ENDCLASS.
2020
21-
CLASS z2ui5_cl_launchpad_handler IMPLEMENTATION.
21+
CLASS z2ui5_cl_my_http_handler IMPLEMENTATION.
2222
2323
METHOD if_http_extension~handle_request.
2424
" Read the app name from the request
25-
DATA(lv_app) = server->request->get_header_field( `APP_START` ).
25+
DATA(lv_app) = to_upper( server->request->get_form_field( `app_start` ) ).
2626
2727
" Restrict access to a specific app
2828
IF lv_app <> `MY_APP`.
@@ -38,18 +38,18 @@ ENDCLASS.
3838
#### Example: Authorization Objects in Service Handlers
3939
You can also pair this with SAP authorization objects. The example below uses a custom authorization object `Z_APP_AUTH` with an `APP` field — define the object in transaction `SU21` and assign it to the matching roles on your system:
4040
```abap
41-
CLASS z2ui5_cl_launchpad_handler DEFINITION PUBLIC.
41+
CLASS z2ui5_cl_my_http_handler DEFINITION PUBLIC.
4242
4343
PUBLIC SECTION.
4444
INTERFACES if_http_extension.
4545
4646
ENDCLASS.
4747
48-
CLASS z2ui5_cl_launchpad_handler IMPLEMENTATION.
48+
CLASS z2ui5_cl_my_http_handler IMPLEMENTATION.
4949
5050
METHOD if_http_extension~handle_request.
5151
" Read the app name from the request
52-
DATA(lv_app) = server->request->get_header_field( `APP_START` ).
52+
DATA(lv_app) = to_upper( server->request->get_form_field( `app_start` ) ).
5353
5454
" Run an authorization check
5555
AUTHORITY-CHECK OBJECT `Z_APP_AUTH`

0 commit comments

Comments
 (0)