mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 04:56:21 +08:00

* Update package.devc.xml * Update package.devc.xml * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * updates renaming and cc organization * update xml view with mapcontainer * mapcontainer control * update package assignment of z2ui5_client * Update README.md * Update README.md * Update README.md
7.8 KiB
7.8 KiB
Key Features
- Easy to use – implement just one interface for a standalone UI5 application
- Pure ABAP – development using 100% ABAP (no JavaScript, DDL, EML or Customizing)
- Low system footprint – based on a plain HTTP handler (no BSP, OData, CDS, BOPF or RAP)
- Cloud and on-premise ready – works with both language versions (ABAP for Cloud, Standard ABAP)
- High system compatibility – runs on all ABAP releases (from NW 7.02 to ABAP 2311)
- Easy installation – abapGit project, no additional app deployment needed
Compatibility
- BTP ABAP Environment (ABAP for Cloud)
- S/4 Public Cloud ABAP Environment (ABAP for Cloud)
- S/4 Private Cloud or On-Premise (ABAP for Cloud, Standard ABAP)
- R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)
- R/3 NetWeaver AS ABAP 7.02 to 7.42 - use the downport repository
Information (Blog Series)
- Introduction: Developing UI5 Apps in Pure ABAP (Blog SCN - 22.02.2023)
- Displaying Selection Screens & Tables (Blog SCN - 23.02.2023)
- Popups, F4-Help, Messages & Controller Logic (Blog SCN - 30.03.2023)
- Advanced Functionality & Demonstrations (Blog SCN - 02.04.2023)
- Extensions with XML Views, HTML, JS & CC (Blog SCN - 12.04.2023)
- Installation, Configuration & Debugging (Blog SCN - 14.04.2023)
- Technical Background: Under the Hood of abap2UI5 (Blog SCN - 26.04.2023)
- Repository Setup with abapGit, abaplint & open-abap (Blog SCN - 21.08.2023)
- Community Feedback & New Features I (Blog SCN - 11.09.2023)
References
- Find abap2UI5 in the ABAP Open Source Projects (dotabap.org)
- Featured in the SAP Developer News (youtube - 26.01.2023)
- Featured in the Boring Enterprise Nerdletter (newsletter - 08.03.2023)
- Part of the SAP Developer Code Challenge (community - 17.05.2023)
Apps & Extensions
- Add your apps to SAP Fiori On-Premise Launchpad (ext-fiori_launchpad)
- Integrate your apps with the SAP Business Technology Platform (ext-btp)
- Explore abap2UI5-tools, a collection of tools & utility functions (abap2UI5-tools)
- Add more functions with Custom Controls & External Libraries (custom controls)
- Discover other projects using abap2UI5 (abap2UI5/links)
More
- Try out abap2UI5 compiled to JS on open-abap under Node.js (abap2UI5-web)
- Install S-RTTI to create apps with dynamically typed tables (github/s-rtti)
- Import & Export Excel files in pure ABAP with abap2xslt (twitter/xslt)
- Analyse your Views & Models with this Codesandbox (abap2UI5-debug-tools)
- And finally, don't forget to explore the Samples Repository 🧭
Installation
Install with abapGit and create a new HTTP service with the following handler:
Standard ABAP 🏠
METHOD if_http_extension~handle_request.
DATA(lv_resp) = SWITCH #( server->request->get_method( )
WHEN 'GET' THEN z2ui5_cl_fw_http_handler=>http_get( )
WHEN 'POST' THEN z2ui5_cl_fw_http_handler=>http_post( server->request->get_cdata( ) ) ).
server->response->set_header_field( name = `cache-control` value = `no-cache` ).
server->response->set_cdata( lv_resp ).
server->response->set_status( code = 200 reason = `success` ).
ENDMETHOD.
ABAP for Cloud ☁️
METHOD if_http_service_extension~handle_request.
DATA(lv_resp) = SWITCH #( request->get_method( )
WHEN 'GET' THEN z2ui5_cl_fw_http_handler=>http_get( )
WHEN 'POST' THEN z2ui5_cl_fw_http_handler=>http_post( request->get_text( ) ) ).
response->set_header_field( i_name = `cache-control` i_value = `no-cache` ).
response->set_text( lv_resp ).
response->set_status( 200 ).
ENDMETHOD.
Usage
Develop UI5 Apps by implementing the abap2UI5 interface:
CLASS z2ui5_cl_app_hello_world DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
DATA product TYPE string.
DATA quantity TYPE string.
ENDCLASS.
CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
METHOD z2ui5_if_app~main.
CASE client->get( )-event.
WHEN 'BUTTON_POST'.
client->message_toast_display( |{ product } { quantity } - send to the server| ).
ENDCASE.
client->view_display( z2ui5_cl_xml_view=>factory( client
)->page( 'abap2UI5 - Hello World App'
)->simple_form( )->content( ns = `form`
)->title( 'Input here and send it to the server...'
)->label( 'quantity'
)->input( client->_bind_edit( quantity )
)->label( 'product'
)->input( client->_bind_edit( product )
)->button( text = 'post' press = client->_event( 'BUTTON_POST' )
)->stringify( ) ).
ENDMETHOD.
ENDCLASS.
FAQ
- Check out the documentation for installation & configuration guidelines
- Still have open questions? find an answer in the FAQ
- Want to help out? Check out the contribution guidelines
- As always - your comments, questions, wishes and bug reports are welcome, please create an issue