Skip to content

Commit b6b9fcb

Browse files
authored
Merge pull request #16 from abap2UI5/dev
update
2 parents 769a186 + 0efd94e commit b6b9fcb

File tree

14 files changed

+50
-42
lines changed

14 files changed

+50
-42
lines changed

docs/advanced/stateful.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Stateful Sessions
22

3-
In Private and OnPremise scenarios abap2UI5 can also be used in stateful mode. Check out [sample 135](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_demo_app_135.clas.abap) or [sample 137.](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_demo_app_137.clas.abap)
3+
In Private and OnPremise scenarios abap2UI5 can also be used in stateful mode. Check out `Z2UI5_CL_DEMO_APP_135` and `Z2UI5_CL_DEMO_APP_137`.

docs/configuration/installation.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@ outline: [2, 4]
44

55
# Installation
66

7-
This project is compatible with most ABAP releases and language versions. As outlined in the Quickstart Guide, you can run the app directly through the HTTP handler:
7+
As outlined in the Quickstart Guide, you can run the abap2UI5 amd its apps directly through an HTTP service:
88
![alt text](image.png){ width=70% }
99

10-
10+
This is the quickest and most programmatic approach; however, for productive usage, you have additional options.
1111

1212
### ABAP Standard
1313

14-
In `S/4 Private` or `S/4 On-Premise` systems you can just transport it as it is into production and use it. However it may be required to make this app accessible via BSP on-premise (leveraging the Fiori launchpad). Therefore you can install the abap2UI5 frontend:
14+
In `S/4 Private` or `S/4 On-Premise` it may be required to make this app accessible via BSP on-premise (leveraging the Fiori launchpad). Therefore you can install the [abap2UI5-frontend:](https://github.com/abap2UI5/frontend)
1515

1616
![alt text](image-1.png){ width=80% }
1717

1818
Check out this [section](/configuration/launchpad) for more details.
1919

2020

2121
### ABAP Cloud
22-
In `S/4 Public Cloud` or `BTP ABAP` without the authoriy `S_DEVELOP` you can not acces the HTTP endpoint, so this is not a valid scenario for producvive usage. Deploy therefor the cloud branch of the abap2UI5-frontend and maintain a new fiori launchpad:
22+
In `S/4 Public Cloud` or `BTP ABAP Environment` without the S_DEVELOP authority, you cannot access the HTTP endpoint, making this scenario unsuitable for productive usage. Instead, deploy the cloud branch of the [abap2UI5-frontend](https://github.com/abap2UI5/frontend) and set up a new Fiori tile:
2323

2424
![alt text](image-2.png){ width=80% }
2525

2626
### R/3 Netweaver
2727

28-
For old `R/3 Netweaver` check out the [downport section.](/advanced/downporting)
28+
For old `R/3 Netweaver` check out the [downport section.](/advanced/downporting)

docs/configuration/security.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# Security
22

33
### HTTP Endpoint
4-
The framework is implemented as an HTTP handler. You create the HTTP handler and invoke the abap2UI5 API within it. End users can access abap2UI5 by calling the endpoint defined in your HTTP handler. Security is managed in the same way as with any other UI5 application.
4+
The abap2UI5 framework operates as an HTTP handler. You create this HTTP handler and call the abap2UI5 API within it. End users can access abap2UI5 by calling the endpoint defined in your HTTP handler, with security managed similarly to any other UI5 application.
55

66
### Authorization
7-
Authorization is managed at the ICF (Internet Communication Framework) node level. You have all options to maintain the of your icf node, changing isibilty , login procedure etc.
7+
Authorization is managed at the ICF (Internet Communication Framework) node level. You have full control to configure your ICF node by adjusting visibility, login procedures, and other authorization settings.
88

99
### Authentication
10-
Authentication is managed by the app developer. You have various options, on app level, node level etc. chout out more information here. You can configure which users or systems have access to your endpoint, ensuring that only authorized parties can interact with the framework [here.](/configuration/authorization)
10+
Authentication settings are customizable by the app developer and can be managed at the application level or node level. For more information on configuring authentication for your endpoint, including user and system access control, refer to the details [here.](/configuration/authorization)
1111

1212
### Backend Code
13-
abap2UI5 is delivered as Z-Code. Once installed, you "own" the code and can either use it as-is or modify it as necessary. However, to benefit from future updates, it is recommended not to alter the main code line directly.
13+
abap2UI5 is delivered as Z-Code. Once installed, you "own" the code, allowing you to use or modify it as necessary. However, to benefit from future updates, it is recommended not to directly alter the main code line.
1414

1515
### Frontend Code
16-
The frontend of the application is a Single Page Application (SPA) built using SAPUI5 or OpenUI5. The application is delivered from the HTTP endpoint upon the first request, following standard practices for modern web apps.
16+
The frontend of the application is a Single Page Application (SPA) built using SAPUI5 or OpenUI5. It is delivered from the HTTP endpoint upon the first request, following best practices for modern web applications.
1717

1818
### Content-Security-Policy
1919
To enhance security, abap2UI5 uses a Content Security Policy (CSP) by default. CSP helps prevent attacks like cross-site scripting (XSS) and data injection by restricting which resources the browser is allowed to load.

docs/configuration/setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ METHOD if_http_extension~handle_request.
1212
1313
ENDMETHOD.
1414
```
15-
For custom configurations, simply create a config variable and import it to the main method:
15+
For custom configurations, simply fill the config structure and import it to the run method:
1616

1717
### Theme
1818
eg. for changing the theme the source code looks like this:

docs/development/messages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ METHOD z2ui5_if_app~main.
128128
ENDMETHOD.
129129
```
130130
#### Uncatched Errors
131-
What happens if errors are uncaught? In this case, the default HTTP handler exception output is used. The processing is interrupted and the user need to restart the browser. So only use this for unexpected behaviour:
131+
What happens if errors are uncaught? In this case, the default HTTP handler exception output is used. The processing is interrupted and the user need to refresh the browser. So only use this for unexpected behaviour:
132132
```abap
133133
METHOD z2ui5_if_app~main.
134134

docs/development/model.md

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

6-
there are three different ways to exchange data with the frontend.
6+
There are three ways to exchange data with the frontend in abap2UI5.
77

8-
#### One Way Binding
8+
#### One-Way Binding
99

10-
If you just need to display data to the frontend, and now changes must be made, you just use one way binding with the method `client->_bind` and the framework sends the data to the frontend and connects it with the view:
10+
When you need to display data on the frontend without allowing any changes, use one-way binding. The `client->_bind` method sends the data to the frontend and connects it to the view:
1111
```abap
1212
CLASS z2ui5_cl_app_hello_world DEFINITION PUBLIC.
1313
@@ -29,10 +29,10 @@ CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
2929
ENDMETHOD.
3030
ENDCLASS.
3131
```
32-
Same works for tables, trees are other deep data structures. Check out the samples repository and take a look to the table or tree samples.
32+
This method also works for tables, trees, and other complex data structures. For more details, refer to the samples repository and explore the table or tree samples.
3333

34-
#### Two Way Binding
35-
If the user should be able top change the data, you habe to make sure that the data will also be updated in the ABAP backend. Therefor use two way binding and use the mehtod `client->_bind_edit`. After an event the framework will update the value in you abap class.
34+
#### Two-Way Binding
35+
If the user should be able to modify data, enable two-way binding to update data in the ABAP backend. Use the `client->_bind_edit` method so that after an event, the framework will synchronize the data with your ABAP class.
3636

3737
```abap
3838
CLASS z2ui5_cl_app_hello_world DEFINITION PUBLIC.
@@ -63,12 +63,8 @@ CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
6363
ENDCLASS.
6464
```
6565

66-
::: tip **Data in Public Attributes**
67-
Be aware that in both cases the binded data is public attribute in your class, because the framework needs to access it from outside. A bit like in the old pbo/pai screen days where the needed t be saved in global attributes too.
68-
:::
69-
7066
#### Local Binding
71-
If you only have access to the data locally but still want to bind it, you have the chance to use bind local. This is especcially helpful for value helps when no changes at the frontend are made and dont need to chenge the data in the app logic. the framework will imeediatley copy the data in the bind method and then sned it to the frontend:
67+
When you only have local access to data but want to bind it for display (e.g., for a value help or lookup), use local binding. The `client->_bind_local` method copies the data and sends it to the frontend without impacting backend logic:
7268

7369
```abap
7470
CLASS z2ui5_cl_app_hello_world DEFINITION PUBLIC.
@@ -82,7 +78,7 @@ CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
8278
METHOD z2ui5_if_app~main.
8379
8480
DATA(lv_name) TYPE string.
85-
81+
8682
client->view_display( z2ui5_cl_xml_view=>factory(
8783
)->page( 'abap2UI5 - Hello World'
8884
)->text( text = `My Text`
@@ -92,5 +88,8 @@ CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
9288
ENDMETHOD.
9389
ENDCLASS.
9490
```
91+
For an example of local binding in action, see the value help use case in `Z2UI5_CL_DEMO_APP_002`.
9592

96-
Check out the `Z2UI5_CL_DEMO_APP_002` to see the value help use case for local binding in action.
93+
::: tip **Data in Public Attributes**
94+
Be aware that you need to store your data in pubic attributes of your class when using One-Way or Two-Way binding, because the framework needs to access it from outside. This is similar to the PBO/PAI screen days, where data needed to be stored in global variables.
95+
:::

docs/development/popups.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66

77

8+
Popups it’s recommend to use for every popup an own app so use navigation
9+
10+
### Popup in separated App
811
### Popover
912

1013

@@ -21,6 +24,10 @@ a few you already saw at message and errors section.
2124
```
2225
Feel free to send a PR if you extend a need a new popup.
2326

27+
28+
29+
30+
2431
#### Popup to Select
2532

2633

docs/development/troubleshooting.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ outline: [2, 4]
55
# Troubleshooting
66

77
### Backend
8-
Just set a breakpoint in your abap2UI5 app and debug your code. Check if the XML view is correctly generated and check if all events are triggerd in the backend.
8+
Set a breakpoint in your abap2UI5 app to debug your code. Verify that the XML view is generated correctly and check that all events are triggered on the backend as expected.
99

1010
### Frontend
11-
At the frontend abap2UI5 is a normal UI5 app, all common tools and debug features can be used.
11+
On the frontend, abap2UI5 behaves like a standard UI5 app, so you can use all typical tools and debugging features.
1212

1313
##### Debugging Tools
14-
First press `ctrl+F12` and open the build in debugge tools of abap2UI5:
14+
To begin, press `Ctrl+F12` to open the built-in debugger tools in abap2UI5
1515
![alt text](image.png)
16-
You can check the XML View and Data Model which is binded to the view.
16+
Here, you can inspect the XML View and check the Data Model bound to the view.
1717

1818
##### UI5 Inspector
1919

20-
Another option is to use the defaule SAP debugger tools by using the [UI5 Inspector.](https://chromewebstore.google.com/detail/ui5-inspector/bebecogbafbighhaildooiibipcnbngo?hl=es)
20+
Another useful option is SAP’s default debugging tool, the [UI5 Inspector.](https://chromewebstore.google.com/detail/ui5-inspector/bebecogbafbighhaildooiibipcnbngo?hl=es)
2121

2222

docs/development/view.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
outline: [2, 4]
33
---
44
# View
5-
Output is generated by importing an UI5 XML View into abap2UI5. Here is a basic example:
5+
Output in abap2UI5 is generated by importing a UI5 XML View. Here’s a basic example:
66

77
```abap
88
METHOD z2ui5_if_app~main.
@@ -32,4 +32,6 @@ You can use any UI5 control available in the UI5 SDK. However, working with XML
3232
3333
ENDMETHOD.
3434
```
35-
Check the API of the class and use code completion to easily find the right controls and properties. Additionally, it’s recommended to explore the sample repository, where pre-written XML examples for most use cases are available for easy copy, paste, and adjustment to fit your needs. Currently, this setup is quite static; we’ll explore how to bind and exchange data in the next section.
35+
Check the API of the class `Z2UI5_CL_XML_VIEW` and use code completion to easily find the right controls and properties. Additionally, it’s recommended to explore the sample repository, where pre-written XML examples for most use cases are available for easy copy, paste, and adjustment to fit your needs.
36+
37+
Currently, this setup is quite static; we’ll explore how to bind and exchange data in the next section.

docs/get_started/hello_world.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ outline: [2, 4]
44
# Hello World
55

66
### Basic Example
7-
Every abap2UI5 app is an implementation of the `z2ui5_if_app` interface. Create a new class with the following code:
7+
Every abap2UI5 app is an implementation of the `Z2UI5_IF_APP` interface. Create a new class with the following code:
88
```abap
99
CLASS z2ui5_cl_app_hello_world DEFINITION PUBLIC.
1010
@@ -21,7 +21,7 @@ CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
2121
ENDMETHOD.
2222
ENDCLASS.
2323
```
24-
Go back to the landing page in your browser and enter `z2ui5_cl_app_hello_world`. Your app will then launch.
24+
Go back to the landing page in your browser and enter `Z2UI5_CL_APP_HELLO_WORLD`. Your app will then launch.
2525

2626
### View Display
2727
Now, let's add our first view to display a simple text:

0 commit comments

Comments
 (0)