Skip to content

Commit c3772ae

Browse files
authored
update ndc u barcode
1 parent b198eaa commit c3772ae

File tree

11 files changed

+93
-33
lines changed

11 files changed

+93
-33
lines changed

docs/.vitepress/config.mjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ export default defineConfig({
101101
{ text: 'Translation, i18n', link: '/development/translation' },
102102
{ text: 'Popups, Popover', link: '/development/popups' },
103103
{ text: 'Troubleshooting', link: '/development/troubleshooting' },
104+
{ text: 'Specifics', collapsed : "false" , items: [
105+
{ text: 'Barcode Scanning', link: '/development/barcodes' },
106+
{ text: 'File Download, Upload', link: '/development/files', },
107+
{ text: 'Native Device Capabilities', link: '/development/ndc' },
108+
]
109+
},
104110
]
105111
},
106112
{
@@ -178,4 +184,4 @@ export default defineConfig({
178184
outline: {
179185
level: [2,6]
180186
}
181-
})
187+
})

docs/configuration/performance.md

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

77
abap2UI5 is fast! Almost everything is processed in the backend, leveraging the ABAP stack, which performs significantly faster than client-side or browser-based processing. <br>
88

9-
Frontend logic is kept to a minimum: no loops are executed, no unnecessary logic is added, and everything is passed directly to the UI5 framework. <br>
9+
Frontend logic is kept to a minimum: no business logic is executed, and everything is passed directly to the UI5 framework, focusing solely on user interface rendering. <br>
1010

1111
abap2UI5 has been successfully tested with tables containing large numbers of entries and columns. So, you can confidently develop your app — performance should not be a concern.
1212

docs/configuration/security.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,25 @@ outline: [2, 3]
33
---
44

55
# Security
6+
abap2UI5 is a backend-centric framework. All logic and business data remain securely on the backend, and the frontend only receives the data necessary to render the view. This approach helps maintain security while providing efficient functionality.
67

78
### HTTP Endpoint
89
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 externally, with security managed similarly to any other UI5 application.
910

10-
### Authorization
11-
Authorization is managed at the ICF (Internet Communication Framework) node level. You have full control over configuring your ICF node by adjusting visibility, login procedures, and other authorization settings.
11+
### Authentication
12+
Authorization is handled at the ICF (Internet Communication Framework) node level. You have complete control over configuring the ICF node, including visibility settings, login procedures, and other security parameters.
1213

13-
### Authentication
14-
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 refer to the details [here.](/configuration/authorization)
14+
### Authorization
15+
The app developer has full flexibility in managing authorization settings. These can be configured either at the application level or service node level. For detailed guidance on setting up authentication for your endpoint, refer to [this page.](/configuration/authorization)
1516

1617
### Backend Code
17-
abap2UI5 is delivered as custom 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.
18+
abap2UI5 is delivered as custom code. Once installed, you have full ownership of the code, giving you the flexibility to modify it to suit your needs. However, to ensure compatibility with future updates, we recommend avoiding direct modifications to the core code base.
1819

1920
### Frontend Code
20-
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.
21+
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, adhering to best practices for modern web applications.
22+
23+
### Business Logic
24+
The business logic of the abap2UI5 app is not sent to the client. All business-related processes remain securely on the server, ensuring sensitive data is never exposed on the frontend.
2125

2226
### Content-Security-Policy
2327
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. CSP is configured to allow only trusted sources such as ui5.sap.com, sapui5.hana.ondemand.com, and sdk.openui5.org, among others.

docs/development/barcodes.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Barcode Scanning
2+
3+
Since UI5 version 1.102, the `sap.ndc.BarcodeScannerButton` control is part of the UI5 library, making barcode scanning simple and straightforward.
4+
5+
The barcode scanner control can be used like any other UI5 control with abap2UI5. Below is a snippet demonstrating the basic functionality. You can add your custom barcode handling after the scanning event is triggered:
6+
7+
```abap
8+
METHOD z2ui5_if_app~main.
9+
10+
client->view_display( z2ui5_cl_xml_view=>factory(
11+
)->page(
12+
)->barcode_scanner_button(
13+
dialogtitle = `Barcode Scanner`
14+
scansuccess = client->_event(
15+
val = 'SCAN_SUCCESS'
16+
t_arg = VALUE #(
17+
( `${$parameters>/text}` )
18+
( `${$parameters>/format}` ) ) )
19+
)->stringify( ) ).
20+
21+
IF client->get( )-event = 'SCAN_SUCCESS'.
22+
DATA(lv_input) = client->get_event_arg( 1 ).
23+
DATA(lv_format) = client->get_event_arg( 2 ).
24+
"custom processing...
25+
client->message_box_display( |Scan finished: { lv_input } { lv_format }| ).
26+
ENDIF.
27+
28+
ENDMETHOD.
29+
```
30+
Check out `z2ui5_cl_demo_app_124` to see barcode scanning in action.
31+
32+
::: tip **UI5 Versions**
33+
Please note that this feature is only available when bootstrapping with the UI5 version and does not work with OpenUI5.
34+
:::

docs/development/events.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ METHOD z2ui5_if_app~main.
2323
CASE client->get( )-event.
2424
WHEN 'BUTTON_POST'.
2525
client->message_box_display( |Your name is { name }| ).
26-
ENDCASE.
26+
ENDCASE.
2727
2828
ENDMETHOD.
2929
```

docs/development/files.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# File Download, Upload

docs/development/ndc.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Native Device Capabilities
2+
3+
4+
#### Geolocation
5+
6+
7+
#### Camera

docs/development/popups.md

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

6+
UI5 offers functionality for displaying popups and popovers that overlay only specific areas of the view. Let’s see how this can be implemented using abap2UI5.
67

78
### Popup
89

9-
1010
#### General
1111

1212
To display a popup, use the method `client->popup_display` instead of `client->view_display`:
@@ -61,6 +61,9 @@ ENDMETHOD.
6161
#### Separated App
6262
For better source code structure, it's possible to encapsulate popups in separate classes and call them through [navigation](/development/navigation).
6363

64+
#### Stack
65+
If you need to manage a stack of multiple popups, remember that abap2UI5 displays only one popup at a time on the frontend. However, you can maintain a popup stack in your backend logic and re-display the previous popup as needed. Check out `Z2UI5_CL_DEMO_APP_161`.
66+
6467
### Popover
6568
To display a popover, use the method `client->popover_display` and specify the ID of the control where you want the popover to appear:
6669
```abap
@@ -122,4 +125,4 @@ Several pre-built popup classes are available for specific scenarios:
122125
* z2ui5_cl_pop_to_inform
123126
* z2ui5_cl_pop_to_select
124127

125-
This collection of popups can be further extended to cover additional common use cases. Contributions are welcome!
128+
This collection can be further expanded to cover additional common use cases. Contributions are always welcome!

docs/development/troubleshooting.md

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

55
# Troubleshooting
6+
Since all logic is written in ABAP, you can debug everything in the ABAP environment, just make sure to set an external breakpoint, as abap2UI5 apps are called externally via HTTP.
67

78
### Backend
89
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.
@@ -16,5 +17,7 @@ To begin, press `Ctrl+F12` to open the built-in debugger tools in abap2UI5
1617
Here, you can inspect the XML View and check the Data Model bound to the view.
1718

1819
##### UI5 Inspector
20+
Another useful option is SAP’s default debugging tool, the [UI5 Inspector.](https://chromewebstore.google.com/detail/ui5-inspector/bebecogbafbighhaildooiibipcnbngo?hl=es)
1921

20-
Another useful option is SAP’s default debugging tool, the [UI5 Inspector.](https://chromewebstore.google.com/detail/ui5-inspector/bebecogbafbighhaildooiibipcnbngo?hl=es)
22+
##### Issues
23+
If your code looks correct, but you suspect a bug in the abap2UI5 framework, try to create a small sample that reproduces the issue. Open an issue in the abap2UI5 repository so we can investigate and fix the bug.

docs/get_started/about.md

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,54 @@
22
outline: [2, 6]
33
---
44
# About
5-
6-
Welcome to abap2UI5 – an open-source project designed to enable UI5 app development purely in ABAP.
5+
Welcome to abap2UI5 – an open-source framework designed to enable UI5 app development purely in ABAP.
76

87
##### Features
9-
abap2UI5 provides a purely ABAP-based approach for developing UI5 applications, with no need for JavaScript, OData, or RAP. It recalls the simplicity of classic ABAP, where just a few lines of code could generate input forms and tables using Selection Screens and ALVs.
8+
Whether you're developing in the cloud or on-premise, abap2UI5 simplifies UI5 development, making it fast and efficient without the need for JavaScript, OData, or RAP. It recalls the simplicity of classic ABAP, where just a few lines of code could generate input forms and tables using Selection Screens and ALVs.
109

1110
##### Evolution
12-
Launched in 2023 as a personal project, abap2UI5 initially focused on offering basic selection screen functionality for ABAP Cloud, accompanied by an introductory blog post on the SAP Community Network (SCN). With the support of the ABAP open-source community, it has grown significantly, adding a broad range of features. Today, abap2UI5 is a thriving, community-driven initiative.
11+
Launched in 2023 as a personal project, abap2UI5 initially focused on offering basic selection screen functionality for ABAP Cloud, accompanied by an introductory blog post on the SAP Community Network (SCN). With the support of the ABAP open-source community, it has grown significantly, adding a broad range of features. Today, abap2UI5 is a community-driven project, with contributions and feedback helping shape its development.
12+
13+
##### Development
14+
Creating UI5 applications with abap2UI5 is straightforward: define a new ABAP class, implement a method from the abap2UI5 interface, and your app is ready. Each app is supported as an abapGit project, which simplifies installation across different systems and version control.
15+
16+
##### Architecture
17+
abap2UI5 follows a "thin frontend" approach, handling all processing, logic, and data management in the backend. This simplifies the setup, reduces the need for client-side actions (such as clearing caches), and keeps business logic and sensitive data on the server. The approach also enhances performance by leveraging server-side processing.
18+
19+
##### System Footprint
20+
The abap2UI5 system footprint is kept as small as possible including only essential classes and interfaces in the base version. Additional functionality can be added by installing optional addons.
1321

1422
##### Compatibility
1523
![alt text](image-15.png){ width=50% }
16-
abap2UI5 is compatible with both ABAP Cloud and Standard ABAP, supporting all ABAP releases from version 7.02 to ABAP for Cloud. It runs seamlessly on systems including R/3 NetWeaver, S/4HANA On-Premise, and S/4HANA Private Cloud, as well as cloud environments such as the BTP ABAP Environment and S/4HANA Public Cloud.
24+
abap2UI5 is compatible with both ABAP Cloud and Standard ABAP, supporting ABAP releases from version 7.02 to ABAP for Cloud. It works on R/3 NetWeaver, S/4HANA On-Premise, S/4HANA Private Cloud, and cloud environments such as the BTP ABAP Environment and S/4HANA Public Cloud.
1725

1826
##### Installation
1927
![alt text](image-14.png){ width=50% }
20-
The framework consists solely of classes and interfaces, making it easy to install via abapGit, with no additional deployment required. Communication with the client is established by creating a new HTTP service.
21-
22-
##### Development
23-
Creating UI5 applications in abap2UI5 is straightforward: define a new ABAP class and implement a single method from the abap2UI5 interface. Each app is fully supported as an abapGit project, allowing seamless installation across different systems.
28+
The framework consists solely of ABAP classes and interfaces, making it easy to install via abapGit, with no additional deployment steps required. You only need to create a new HTTP service to establish communication with the client.
2429

2530
##### ABAP Cloud
26-
abap2UI5 relies exclusively on released APIs, making it ideal for both on-stack and side-by-side extensions in the new ABAP for Cloud language version. Within your app, you’re free to utilize modern ABAP capabilities such as CDS, ABAP SQL, and EML.
27-
28-
##### Clean Core
29-
By using only released APIs, abap2UI5 ensures your app is "cloud-ready and upgrade-stable," aligning with clean core principles and guaranteeing compatibility with future upgrades.
31+
abap2UI5 uses only released APIs, making it suitable for both on-stack and side-by-side extensions in ABAP for Cloud. You can use modern ABAP syntax features like CDS, ABAP SQL, and EML within your app.
3032

3133
##### ABAP Classic
32-
The abap2UI5 framework does not use any newer ABAP syntax features. This makes it also compatible for on-premise and R/3 NetWeaver systems, enabling development in classic ABAP (Tier 3) extensions. A downported version is available for systems below ABAP 7.50.
34+
The framework does not rely on newer ABAP syntax features, ensuring compatibility with on-premise and R/3 NetWeaver systems. A downported version is available for systems running ABAP versions earlier than 7.50.
3335

34-
##### Architecture
35-
The abap2UI5 system footprint is kept as small as possible. The base version includes only essential classes and interfaces, and additional functionality can be incorporated by installing optional [addons.](/addons/addons)
36+
##### Clean Core
37+
By relying only on released APIs, abap2UI5 ensures that your applications remain "cloud-ready" and "upgrade-stable," aligning with SAP's clean core principles.
3638

3739
##### Security
3840
Since you configure the HTTP handler yourself, you retain complete control over all external communications, ensuring security.
3941

4042
##### Productive Usage
41-
abap2UI5 is technically just an implementation of an HTTP handler and can be used as any other HTTP service in a productive scenario.
43+
abap2UI5 is essentially an HTTP handler implementation and can be used like any other HTTP service in a production environment.
4244

4345
##### Launchpad
44-
Apps developed with abap2UI5 can be integrated into Fiori Launchpads on S/4 Systems or Build Workzone websites on SAP BTP, as well as into tiles on S/4HANA Public Cloud.
46+
Apps developed with abap2UI5 can be integrated into Fiori Launchpads on S/4 Systems, SAP Build Workzone websites on SAP BTP, and tiles on S/4HANA Public Cloud.
4547

4648
##### Support
4749
Support for abap2UI5 is provided by the community on a best-effort basis. If you need assistance, submit an issue or join the abap2UI5 community on Slack.
4850

4951
##### Contribution
50-
Contributions are encouraged! Whether through bug fixes, feature additions, documentation enhancements, or community engagement, your involvement helps the project thrive. Consider submitting a pull request, sharing feedback, or helping spread the word about abap2UI5.
52+
Contributions are welcome! Whether through bug fixes, feature requests, or documentation improvements, your involvement helps improve abap2UI5. You can submit pull requests, provide feedback, or share your experience with the community.
5153

5254
##### Sponsor
53-
abap2UI5 is maintained by dedicated developers who volunteer their time. If you or your company benefit from abap2UI5, but cannot contribute directly, please consider supporting the project in other ways. More details are available [here.](/resources/sponsor)
55+
abap2UI5 is maintained by volunteers. If you or your company benefit from the project but cannot contribute directly, consider supporting the project in other ways. More details are available [here.](/resources/sponsor)

0 commit comments

Comments
 (0)