Skip to content

Commit d068ef9

Browse files
authored
Merge pull request #120 from abap2UI5/claude/documentation-clarity-1oqk7y
Documentation improvements and consistency updates
2 parents c6a2a29 + 666b6ed commit d068ef9

80 files changed

Lines changed: 403 additions & 269 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: 5 additions & 5 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_navigated( ). " returned from a called sub-app (nav_app_call), incl. built-in popup apps
58+
" refresh state
5759
ELSEIF client->check_on_event( `POST` ). " user fired event 'POST'
5860
" handle it
59-
ELSEIF client->check_on_navigated( ). " returned from sub-app / popup
60-
" refresh state
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:
@@ -135,7 +135,7 @@ CLASS zcl_app_xxx DEFINITION PUBLIC.
135135
136136
METHODS on_init. " first call: load data, render view
137137
METHODS on_event. " user triggered an event
138-
METHODS on_navigation. " returned from sub-app or popup
138+
METHODS on_navigation. " returned from a sub-app called via nav_app_call
139139
METHODS view_display. " build and render the view
140140
METHODS data_read. " SELECT
141141
METHODS data_update. " INSERT / UPDATE / DELETE

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/downporting.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,17 @@ To install on an older system, use the `702` branch:
1414

1515
Some sample projects and other repositories also ship a downported version. Check whether a `702` branch is available.
1616

17-
#### Functionality
18-
For more on the downport feature, see the blog post [Running abap2UI5 on older R/3 Releases](https://www.linkedin.com/pulse/running-abap2ui5-older-r3-releases-downport-compatibility-abaplint-mjkle).
17+
#### How It Works
18+
The `702` branch is not maintained by hand — it is **generated** from `main` by an automated GitHub Actions workflow on every change. The pipeline runs [abaplint](https://abaplint.org)'s downport rule (`abaplint --fix` with a 7.02 target configuration), which rewrites modern syntax into 7.02-compatible equivalents, for example:
19+
20+
- inline declarations `DATA(x) = ...` → separate `DATA` statements
21+
- constructor expressions (`VALUE #( )`, `NEW #( )`, `CONV #( )`) → classic statements
22+
- `xsdbool( )``boolc( )`
23+
- string templates → concatenation where needed
24+
25+
A few small compatibility fix-ups follow (e.g. replacing exception types that don't exist on old releases), and the result is committed to the `702` branch. Because the transformation is fully automatic, the downported version stays feature-identical with `main` — you never wait for a manual backport.
26+
27+
The same mechanism runs in this project's CI (`npm run auto_downport`) to guarantee every change on `main` stays downportable.
28+
29+
#### Further Reading
30+
Background article: [Running abap2UI5 on older R/3 Releases](https://www.linkedin.com/pulse/running-abap2ui5-older-r3-releases-downport-compatibility-abaplint-mjkle).

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/renaming.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,22 @@ The entire abap2UI5 project lives under the `z2ui5` namespace. You may need to r
1010

1111
abap2UI5 works with the abaplint renaming feature and supports namespaces up to 9 characters, e.g., `zabap2ui5`.
1212

13-
#### Functionality
14-
For more on renaming ABAP artifacts, see:
15-
[Automagic standalone renaming of ABAP objects](https://community.sap.com/t5/application-development-blog-posts/automagic-standalone-renaming-of-abap-objects/ba-p/13499851)
13+
#### How It Works
14+
[abaplint](https://abaplint.org) can rename ABAP artifacts across a whole repository: you define rename patterns (old name → new name, including regular expressions) in an abaplint configuration, and `abaplint --rename` rewrites every class, interface, and reference consistently, writing the result to an output folder:
1615

17-
For more background, see the blog post:
18-
[Renaming of ABAP Artifacts - The Power of abaplint and abapGit in ABAP Development](https://www.linkedin.com/pulse/renaming-abap-artifacts-power-abaplint-github-actions-development-kqede/).
16+
```jsonc
17+
"rename": {
18+
"output": "output",
19+
"patterns": [
20+
{ "type": "CLAS|INTF", "oldName": "z2ui5(.*)", "newName": "zmyns$1" }
21+
]
22+
}
23+
```
24+
25+
The renamed copy is a complete, installable abapGit project under your own namespace — install it side by side with the original, pin it to a release, or ship it inside your product. The abap2UI5 CI runs this transformation on every change (`npm run rename`, workflow `test_rename.yaml`) to guarantee the codebase stays renameable.
26+
27+
For a ready-made pipeline that builds a renamed release with your chosen add-ons included, see the [Builder](/advanced/builds).
28+
29+
#### Further Reading
30+
- [Automagic standalone renaming of ABAP objects](https://community.sap.com/t5/application-development-blog-posts/automagic-standalone-renaming-of-abap-objects/ba-p/13499851)
31+
- [Renaming of ABAP Artifacts — The Power of abaplint and abapGit in ABAP Development](https://www.linkedin.com/pulse/renaming-abap-artifacts-power-abaplint-github-actions-development-kqede/)

0 commit comments

Comments
 (0)