Skip to content

CalvinwithHobbes/abap2UI5

 
 

Repository files navigation


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 2305)
  • 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)

  1. Introduction: Developing UI5 Apps in pure ABAP (Blog SCN - 22.02.2023)
  2. Displaying Selection Screens & Tables (Blog SCN - 23.02.2023)
  3. Popups, F4-Help, Messages & Controller Logic (Blog SCN - 30.03.2023)
  4. Advanced Functionality & Demonstrations (Blog SCN - 02.04.2023)
  5. Extensions with XML Views, HTML, JS & CC (Blog SCN - 12.04.2023)
  6. Installation, Configuration & Debugging (Blog SCN - 14.04.2023)
  7. Technical Background: Under the Hood of abap2UI5 (Blog SCN - 26.04.2023)

More

Installation

Install with abapGit abapGit, create a new HTTP service and replace the handler method with the following code:

Standard ABAP 🏠
METHOD if_http_extension~handle_request.

   DATA lt_header TYPE tihttpnvp.
   server->request->get_header_fields( CHANGING fields = lt_header ).

   DATA(lv_resp) = SWITCH #( server->request->get_method( )
      WHEN 'GET'  THEN z2ui5_cl_http_handler=>http_get( )
      WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post(
         body      = server->request->get_cdata( ) 
         path_info = lt_header[ name = `~path_info` ]-value ) ).

   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(lt_header) = request->get_header_fields( ).

   DATA(lv_resp) = SWITCH #( request->get_method( )
      WHEN 'GET'  THEN z2ui5_cl_http_handler=>http_get( check_logging = abap_true )
      WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post(
         body      = request->get_text( )
         path_info = lt_header[ name = `~path_info` ]-value ) ).

   response->set_header_field( i_name = `cache-control` i_value = `no-cache` ).
   response->set_status( 200 )->set_text( lv_resp ).

ENDMETHOD.

FAQ

  • check out this documentation for detailed installation guidelines
  • read these instructions when you develop your first app
  • want to configure the theme, bootstrapping, language and title? see configuration & debugging
  • as always - your comments, questions, wishes and bugs are welcome, please create an issue

About

Developing UI5 Apps in pure ABAP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • ABAP 99.8%
  • JavaScript 0.2%