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
Copy file name to clipboardExpand all lines: docs/technical/dx.md
+23-19Lines changed: 23 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ Why this is great for developers:
26
26
- Minimal boilerplate
27
27
- Fully abapGit-ready
28
28
29
-
This simplicity also inspired the entry point for abap2UI5 apps. For a simple output you don't need more than this:
29
+
This simplicity also inspired the entry point for abap2UI5 apps. For simple output, you don't need more than this:
30
30
```abap
31
31
CLASS zcl_app_ui5 DEFINITION PUBLIC CREATE PUBLIC .
32
32
PUBLIC SECTION.
@@ -39,14 +39,12 @@ CLASS zcl_app_ui5 IMPLEMENTATION.
39
39
ENDMETHOD.
40
40
ENDCLASS.
41
41
```
42
-
43
-
What abap2UI5 adds:
44
-
- Runs in the browser, no ADT needed
45
-
- With UI5 Frontend, its conform to SAP Fiori Design guidelines
42
+
What abap2UI5 adds is the ability to run in the browser without ADT, using a UI5 frontend that fully adheres to SAP Fiori design guidelines — and is ready to be shown to your consultant colleagues right away.
46
43
47
44
### Input Handling Inspired by Selection Screens
48
45
49
-
Inputting data was never a big topic for ABAP developers, just create a report and `parameters` and `select-options`give you a UI fro free. Although this term was not used at that time, you get with 4 lines of code an app which today is called `fullstack` application:
46
+
Input handling was never a challenge in classic ABAP — just define a REPORT with PARAMETERS and SELECT-OPTIONS, and the UI is generated automatically. Although the term didn’t exist back then, this gave you a "fullstack" app in just a few lines:
47
+
50
48
```abap
51
49
REPORT zre_app_input.
52
50
PARAMETERS pa_arbgb TYPE t100-arbgb DEFAULT 'MDG_TR'.
@@ -55,10 +53,11 @@ START-OF-SELECTION.
55
53
```
56
54
Why this is great for developers:
57
55
- Rapid prototyping with minimal code
58
-
- Built-in input functionaity and events
56
+
- Built-in input handling and event processing
59
57
- Fullstack behavior with no setup
60
58
61
-
abap2UI5 mirrors this classic selection logic but browser based. Just use the class `z2ui5_cl_xml_view` to create simple views and exchange data with the client via `_bind_edit` methods:
59
+
abap2UI5 mirrors this classic selection screen behavior in the browser. Use Z2UI5_CL_XML_VIEW to define simple views and exchange data with the client using _bind_edit methods:
60
+
62
61
```abap
63
62
CLASS zcl_app_input DEFINITION PUBLIC CREATE PUBLIC.
64
63
PUBLIC SECTION.
@@ -82,11 +81,11 @@ CLASS zcl_app_input IMPLEMENTATION.
82
81
ENDMETHOD.
83
82
ENDCLASS.
84
83
```
85
-
It is easy to test: reload the page, enter input, press the button while everything is still in a single class — no external UI tooling needed.
84
+
Easy to test: reload the page, enter input, and press the button — all within a single class and without any external UI tooling.
86
85
87
86
### Table Output like ALV
88
87
89
-
Table output is one of the most used features for ABAP developers, and using ALV for that is just iconic. `CL_SALV_TABLE` helped make tabular output effortless:
88
+
Table output is one of the most commonly used features by ABAP developers, and ALV is an iconic tool in this context. CL_SALV_TABLE makes generating tabular output straightforward:
90
89
91
90
```abap
92
91
REPORT zre_app_alv.
@@ -109,7 +108,7 @@ Why this is great for developers:
109
108
- No external annotations or CDS needed
110
109
- Ideal for admin tools and quick overviews
111
110
112
-
abap2UI5 creates outputs completely based an internal tables, no ddictionry artifacts are needed, no designtime definitions have to be made. just throw the actual table into the binding use a ui5 table control to display the data:
111
+
abap2UI5 follows a similar pattern. Just bind the internal table to a UI5 table control — no dictionary artifacts or design-time definitions needed:
113
112
114
113
```abap
115
114
CLASS zcl_app_alv DEFINITION PUBLIC.
@@ -143,11 +142,14 @@ CLASS zcl_app_alv IMPLEMENTATION.
143
142
ENDMETHOD.
144
143
ENDCLASS.
145
144
```
146
-
From here it is just a small step to make it even more dynamic and create everything with RTTI at runtime. Just how it is done with the newer (but still old now) SALV. While the ALV onbly works with sapgui, these snippets are the exttrem quick way to bring your table into your browser.
145
+
146
+
From here, it's just a small step to generate everything dynamically using RTTI — similar to modern SALV techniques (but still old now). And unlike SALV, this runs in the browser.
147
+
147
148
148
149
### Classic Popups, Modern Events
149
150
150
-
How often have you been to transaction `SE37` and search with `POPUP_TO*` for a popup matching wxactly what you need. yes function modules are old but still very often used and extremely practicable, giving you some event logic with just a serveal lines of code. Lets take a look the the `POPUP_TO_CONFIRM`:
151
+
Anyone who has browsed SE37 for POPUP_TO_* knows the charm of classic ABAP popups. Function modules like POPUP_TO_CONFIRM are simple yet powerful:
152
+
151
153
```abap
152
154
REPORT zre_app_alv.
153
155
@@ -167,11 +169,12 @@ CASE event.
167
169
ENDCASE.
168
170
```
169
171
Why this is great for developers:
170
-
* event logic at a central place
171
-
* easy to understand program flow
172
-
* popups are encapsulated in abap code and can be reused
172
+
* Centralized event logic
173
+
* Simple and readable program flow
174
+
* Fully encapsulated and reusable
175
+
176
+
abap2UI5 provides a similar experience, enabling apps to call each other and encapsulate dialog logic in reusable classes:
173
177
174
-
abap2UI5 offers a matching approach giving you the chance to create multiple apps, which can call each other. Encapsulate your popup funcitonality in a separated class and call it whenever you want. Check these snippet mimicing the popup to confirm:
175
178
```abap
176
179
CLASS zcl_app_alv_event DEFINITION PUBLIC.
177
180
PUBLIC SECTION.
@@ -200,11 +203,12 @@ CLASS zcl_app_alv_event IMPLEMENTATION.
200
203
ENDMETHOD.
201
204
ENDCLASS.
202
205
```
203
-
Browsr based roundtrip need a sligthly different program flow but the approach is still close and should feel familiar for ABAP developers.
206
+
207
+
While browser-based roundtrips require slightly different flow control, the overall approach remains intuitive for ABAP developers.
204
208
205
209
### More
206
210
207
-
Besides these Code Snippets, the Over-the-wire approach with a backend-only development gives us a few additonal advantages.
211
+
Besides the code snippets shown above, the Over-the-Wire approach of abap2UI5 — based entirely on backend development — offers several additional advantages.
0 commit comments