You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
abap2UI5 works right away on ABAP 7.50 and later. On an earlier release, install the downported version, which supports R/3 NetWeaver 7.02 and later.
7
7
8
-
####Branch
8
+
## Branch
9
9
To install on an older system, use the `702` branch:
10
10
| Branch | System |
11
11
|-----------| ----------------------------|
@@ -14,5 +14,10 @@ To install on an older system, use the `702` branch:
14
14
15
15
Some sample projects and other repositories also ship a downported version. Check whether a `702` branch is available.
16
16
17
-
####Functionality
17
+
## Functionality
18
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).
19
+
20
+
## See Also
21
+
22
+
-**[Trade-offs and Compatibility](/technical/deep_dive/tradeoffs#compatibility-and-downporting)** — why abap2UI5 keeps a single codebase compatible with both Standard ABAP and ABAP Cloud.
23
+
-**[abaplint](/technical/tools/abaplint)** — the tool that produces the `702` branch automatically.
You can build your own UI5 custom controls and use them in abap2UI5 apps.
7
7
8
8
First, set up your VS Code environment with the abap2UI5 frontend artifacts, following the [Frontend](/advanced/extensibility/frontend) page.
9
9
10
-
####Frontend
10
+
## Frontend
11
11
12
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.
13
13
14
-
####Backend
14
+
## Backend
15
15
Extend the custom control view class by adding a method and defining the new control's properties:
-**[Inside an App → Sending JavaScript Over the Wire](/technical/deep_dive/lifecycle#sending-javascript-over-the-wire)** — the underlying mechanism that lets you ship JS to the frontend.
21
+
-**[Custom JS](/advanced/extensibility/custom_js)** — for one-off JavaScript without building a full control.
22
+
-**[Frontend](/advanced/extensibility/frontend)** — local setup for building and testing controls.
Copy file name to clipboardExpand all lines: docs/advanced/extensibility/custom_js.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
outline: [2, 4]
2
+
outline: [2, 3]
3
3
---
4
4
# Custom JS
5
5
@@ -30,3 +30,8 @@ Below is a starting point that works. The `_generic` method creates a custom XML
30
30
31
31
ENDMETHOD.
32
32
```
33
+
34
+
## See Also
35
+
36
+
-**[Inside an App → Sending JavaScript Over the Wire](/technical/deep_dive/lifecycle#sending-javascript-over-the-wire)** — why this works and how the framework forwards JavaScript to the frontend.
37
+
-**[Custom Control](/advanced/extensibility/custom_control)** — wrap reusable JS into proper UI5 controls.
The abap2UI5 frontend artifacts live in the `app` folder. To adjust them:
7
7
8
-
####Setup
8
+
## Setup
9
9
Open VS Code (or your editor of choice), then run in the terminal:
10
10
```sh
11
11
git clone https://github.com/abap2UI5/abap2UI5
@@ -15,7 +15,7 @@ Point all three files to your ABAP backend system:
15
15
16
16
<imgwidth="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">
17
17
18
-
####Build & Test
18
+
## Build & Test
19
19
Set the backend system in the YAML files.<br>
20
20
Replace `/sap/bc/z2ui5` with your endpoint in the manifest, then run:
21
21
```sh
@@ -25,9 +25,14 @@ npm run start-noflp
25
25
You'll see output like this:
26
26
<imgwidth="1000"alt="npm run start-noflp output showing the local dev server running"src="https://github.com/user-attachments/assets/3e0118e8-d05f-48d1-bcc0-28073adf6e47">
27
27
28
-
####Before PR (Optional)
28
+
## Before PR (Optional)
29
29
Convert the UI5 app to stringified ABAP:
30
30
```sh
31
31
cd ..
32
32
npm run auto_app2abap
33
33
```
34
+
35
+
## See Also
36
+
37
+
-**[Inside an App → The Initial Request](/technical/deep_dive/lifecycle#the-initial-request)** — why the static frontend shell lives as a string inside the HTTP handler.
38
+
-**[Custom Control](/advanced/extensibility/custom_control)** — extend the shell with new UI5 controls.
Copy file name to clipboardExpand all lines: docs/advanced/extensibility/user_exits.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
outline: [2, 4]
2
+
outline: [2, 3]
3
3
---
4
4
# User Exits
5
5
@@ -36,3 +36,9 @@ CLASS zcl_a2ui5_user_exit IMPLEMENTATION.
36
36
37
37
ENDCLASS.
38
38
```
39
+
40
+
## See Also
41
+
42
+
-**[Inside an App → The Initial Request](/technical/deep_dive/lifecycle#the-initial-request)** — what `set_config_http_get` actually customizes.
43
+
-**[Inside an App → Drafts](/technical/deep_dive/lifecycle#drafts-stateful-feel-stateless-backend)** — what `draft_exp_time_in_hours` controls under the hood.
44
+
-**[General Setup](/configuration/setup)** — common things to configure via the user exit.
Copy file name to clipboardExpand all lines: docs/advanced/fiori.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
---
2
-
outline: [2, 4]
2
+
outline: [2, 3]
3
3
---
4
4
# Integration into Fiori Elements Apps
5
5
6
6
Extend the object page of a Fiori list report app with an abap2UI5 app. See the [ABAP2UI5_COMP_CONT repository](https://github.com/axelmohnen/ABAP2UI5_COMP_CONT) for a complete example.
7
7
8
8
<imgwidth="747"height="387"alt="abap2UI5 app embedded in Fiori Elements object page"src="https://github.com/user-attachments/assets/c14d5732-3b8c-4fa5-83ab-6d188a4d87db" />
9
9
10
-
###Guide
10
+
## Guide
11
11
12
12
1. Register the FLP integration in the component.js:
13
13
@@ -88,3 +88,8 @@ On the ABAP side, the app receives the Fiori startup parameters (like the app cl
88
88
89
89
ENDMETHOD.
90
90
```
91
+
92
+
## See Also
93
+
94
+
-**[RAP vs. abap2UI5](/technical/technology/rap)** — how the two approaches differ, and where they complement each other.
95
+
-**[Fiori Launchpad](/configuration/launchpad)** — embedding standalone abap2UI5 apps in the launchpad (as opposed to inside an FE object page).
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 artifacts into a single HTTP handler class. With one additional database table for session storage, you can run abap2UI5 self-contained — no separate framework installation required.
7
7
8
-
For full details, see the repository: [abap2UI5-local](https://github.com/abap2UI5/abap2UI5-local)
8
+
For full sources and the latest build, see the [abap2UI5-local repository](https://github.com/abap2UI5/abap2UI5-local).
9
+
10
+
## When to Use
11
+
12
+
-**Restricted systems** — environments where you cannot install full abap2UI5 via abapGit but can still create a class and an HTTP handler.
13
+
-**Demos and PoCs** — drop a single class into a sandbox system and have a working UI5 app within minutes.
14
+
-**Distribution** — ship a self-contained app that does not depend on an existing abap2UI5 installation on the target system.
15
+
16
+
## When Not to Use
17
+
18
+
-**Productive multi-app setups** — for systems running several abap2UI5 apps, the standard installation is leaner: one shared framework instead of a copy embedded into every handler.
19
+
-**Frequent framework updates** — `abap2UI5-local` is a generated build. Updating means replacing the bundled class instead of pulling abapGit changes.
20
+
21
+
## How It Works
22
+
23
+
The `abap2UI5-local` build is produced by [abapmerge](/technical/tools/abapmerge): all framework classes are merged into one class. You install that class plus a database table for session storage, then point an HTTP service at it the same way as in the [Quickstart](/get_started/quickstart).
24
+
25
+
The resulting app behaves like any other abap2UI5 app — same APIs, same view DSL, same event flow. The difference is purely in how the framework reaches the system.
26
+
27
+
## See Also
28
+
29
+
-**[abapmerge](/technical/tools/abapmerge)** — the tool that produces the local build.
30
+
-**[Builder](/advanced/builds)** — for full custom builds with namespace + add-ons.
31
+
-**[Trade-offs → System Footprint](/technical/deep_dive/tradeoffs#system-footprint)** — why the framework is small enough to bundle into a single class.
Copy file name to clipboardExpand all lines: docs/advanced/renaming.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
outline: [2, 4]
2
+
outline: [2, 3]
3
3
---
4
4
# Renaming
5
5
@@ -10,9 +10,14 @@ The entire abap2UI5 project lives under the `z2ui5` namespace. You may need to r
10
10
11
11
abap2UI5 works with the abaplint renaming feature and supports namespaces up to 9 characters, e.g., `zabap2ui5`.
12
12
13
-
####Functionality
13
+
## Functionality
14
14
For more on renaming ABAP artifacts, see:
15
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)
16
16
17
17
For more background, see the blog post:
18
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/).
19
+
20
+
## See Also
21
+
22
+
-**[abaplint](/technical/tools/abaplint)** — the tool that performs the rename.
23
+
-**[Builder](/advanced/builds)** — for shipping a custom-namespaced abap2UI5 build.
0 commit comments