Skip to Content
Product Information
Author's profile photo Simon Hoeg

** TEAM FPM ** A new UI Concept for the SADL based Application Creation Tool

The Floorplan Manager (FPM) framework contains a number of app wizards to create various types of FPM applications. There is a wizard for creating FPM apps based on Service Adaptation Definition Language (SADL) entities. With SADL, it is possible to push down queries directly to the database itself, thereby improving response cycle times, and, with suitable databases, very large amounts of data (millions of records) can be retrieved and displayed tremendously quickly.

Being inspired by the SAP App Gyver visual programming environment, the FPM and UR team have invested into the UI Concept of the SAP FPM Application Creation Tool to the strengthen the Low-Code/No-Code (LCNC) capabilities of the Floorplan Manager UI Framework. The improved user interface will be available with SAP_UI 757 (ABAP Platform 2022).

Imagine you want to display data from, for example, a CDS view or a DDIC table or a BOPF model with a web application, or you even want to create new data sets with this web application. You have no backend or UI developers available and need the web application immediately. You don’t want to make any concessions to the standards yourself, which means the web application should be secure and easy to use, it should display large amounts of data with high performance and have a beautiful user interface. In this case, the Floorplan Manager’s SADL-based Application Creation Tools (ACT) are the right choice for you (wink)

In the following example we demonstrate how this can be done in a few minutes. Just follow the step-by-step instructions below.

The ACTs can be accessed with the Floorplan Manager Workbench (transaction FPM_WB), in the section Wizards for Creating Application there are two links

  1. Wizard for Creating FPM Apps Based on Business Entities
  2. Wizard for Creating FPM Apps on Business Entities (CRUD)

The first tool can build apps to read data from a database, the second one can build app to create, read, update and delete (CRUD) items on a database.

If you are building an app to read data from a database, then first select a suitable data source, you have at least the following choices:

  1. BOPF Business Object
  2. Core Data Services
  3. Data Dictionary
  4. Enterprise Procurement Model (EPM) Entity Provider with Runtime Adapter

For demo purposes you may select the fourth option.

and decide for the business entity EPM Address Header data.

In the fourth step you can define the structure of the user interface. For instance, you may add a filter page and a chart that counts and visualizes the different countries of the address data.

On the right is an embedded preview. Here you can check how your app looks and how it works. In addition, you can run the preview in a separate session by using the function External Preview.

Almost there! In the fifth step, you only have to find a suitable namespace for the objects to be created, where Z is the default value. In addition, technical names (application and configurations) can be adjusted.

In the sixth and final step, you can (if necessary) specify a package and transport request, and use the Save function to build the web application.

On the confirmation screen you will find two links

  1. Edit Configuration (FLUID): This allows further adjustments (texts, visibilities, sequences, semantic colors) to be made.
  2. Execute Application: Hereby you start the new app … live and in color!

Done (big grin) The new web application is here. By the way, you have just tried out the new Horizon theme (thumbs up) Have fun with it!

The Search Page

The Filter Page

Assigned Tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Paul Hardy
      Paul Hardy

      I am caught between two shores here.

      First off the above type of improvement is just the sort of thing I would normally put in the next edition of my "ABAP To The Future" book.

      On the other hand I was thinking of ditching the Web Dynpro/FPM chapter altogether now that UI5 has been out for over ten years.

      So, in your opinion - how do you view the future of Web Dynpro, and should people really be creating new applications using this technology?

      Cheersy Cheers

      Paul

      Author's profile photo Simon Hoeg
      Simon Hoeg
      Blog Post Author

      Hello Paul,

      sorry ... missed first to use "reply" 😉

      I think it depends on what kind of ABAP environment you describe in your book chapters. For example, is it S/4H Cloud or onPrem, or other cloud environments like Steampunk.

      Depending on the environment, SAP offers different UI technologies, and when it comes to S/4H Cloud & OP in 2022, I can say that FPM & WDA are still highly demanded technologies.

      Also, for instance, if you look at the search page above, the graphic is rendered via UI5: For us it is more of a "both ... and ..." instead of "either ... or ...", as well as the question of how the different technologies can complement each other.

      Best regards,
      Simon

      Author's profile photo Paul Hardy
      Paul Hardy

      As the name of the book suggests I write about any environment that ABAP is available be it traditional SE80 in on-premise / private cloud or "Steampunk" in standalone mode or embedded inside S/4HANA public cloud.

      In ABAP world, as in any IT situation, a technology is never stable. It is either in "maintenance mode" (dying) like BRF+ or BOFP, or it is being constantly enhanced e.g. RAP, UI5, or it is something utterly new (nothing much totally new in ABAP in the last few years).

      Now maintenance mode technologies can last 20-30 years but if nothing new is ever added to them then I cannot really include them in a book with "future" in the title.

      When I put the last edition out I had many comments online saying "What could possibly be new and exciting about Wed Dynpro?" and given that the perception that this technology was superseded by UI5 about 10 years ago I thought maybe they have a point and I should remove that topic going forward.

      Now it seems that new capabilities are indeed being added to WDA/FPM with each new ABAP release thus (a) restoring it to a "future" product (i.e. being constantly enhanced) and (b) sending out a really mixed message from SAP about what UI technology to use.

      ALSO

      If it is OK for SAP to enhance a "dead" technology like WDA in new releasess then why can't SAP also enhance the "dead" technology which is the SAP GUI and make CL_SALV_TABLE editable?

      Cheersy Cheers

      Paul

      Author's profile photo Simon Hoeg
      Simon Hoeg
      Blog Post Author

      Dear Paul,

      unfortunately, I cannot comment on table CL_SALV_TABLE, here I recommend to contact and discuss with the responsible developers directly. I believe that in a technical book it is sometimes possible (and actually very useful) to summarize complex facts into simple core statements. However, I am not sure if this is possible in practice in every case.

      Conversely, in SAP SE we cannot develop software according to books, instead we try to meet customer requirements, strategic guidelines and product standards as good as possible. This (almost) automatically leads to further evolution of the technology. Sometimes you can write exciting blogs about it. Sometimes these changes are almost invisible, yet important.

      Best regards,

      Simon

      Author's profile photo Massimo Olivieri
      Massimo Olivieri

      SADL FPM is very excellent solution for fasts/easy developer a app ,but the there a big missing about feeder class.

      Creating a custom sub-class of CL_FPM_SADL_SEARCH_RESULT there si not complete access to definition ET_FIELD_DESCRIPTION (IF_FPM_GUIBB_LIST_IDA=>YT_FIELD_DESCRIPTION).

      example:
      Can not be change SIGN_POS for negative numeric curreny filed.
      Can not be use CQ_REF to change Currency Key for differnt reference field
      Can not be setting cell_design_ref for CDS calculation fileds
      ecc..

      That's a very big limitation for develoer custom APP requiried from costumer.

      Thanks.

      Author's profile photo Simon Hoeg
      Simon Hoeg
      Blog Post Author

      Hello Massimo,

      from the DEV team I got the feedback that you may redefine the protected Exits of class CL_FPM_SADL_SEARCH_RESULT instead.

      For instance, the method CUSTOM_AFTER_GET_METADATA (Exit: Additions after metadata provisioning), here you may adapt the data RTTI like this

        DATAlo_rtti_calc TYPE REF TO cl_abap_structdescr.

        super->custom_after_get_metadata).

        DATA(lt_compmo_rtti->get_components).

      * get current field definition
        get_fieldsIMPORTING et_component DATA(lt_components).

      * replace pure data rtti by reduced rtti
        mo_rtti cl_abap_structdescr=>getlt_components ).

        READ TABLE lt_comp WITH KEY name 'FPM_SADL_SRCH_RESULT_CALC_DATA' ASSIGNING FIELD-SYMBOL(<lo_rtti>).
        lo_rtti_calc ?= <lo_rtti>-type.

        mo_rtti cl_abap_structdescr=>get(
          VALUE #name 'FPM_SADL_SRCH_RESULT_DB_DATA' type mo_rtti as_include abap_true )
                   name 'FPM_SADL_SRCH_RESULT_CALC_DATA' type lo_rtti_calc as_include abap_true ).

      There are also other Exits that may apply to your use case:

      • GET_SERVICES_FOR_FIELD_CUSTOM  - Exit: Services for field
      • GET_CALC_FIELD_INFO                           - Exit: Provides handler class for calculated fields
      • GET_STATIC_CUSTOM_FILTER                - Exit: Provides a static custom filter object
      • GET_CUSTOM_ACTIONS                          - Exit: Provides custom action definitions
      • GET_CUSTOM_OPTIONS                          - Exit: For setting options
      • etc.

      In case you can provide an example that we may debug in a customer ticket (-> BC-WD-CMP-FPM), please go ahead.

      Thank you & Best regards,

      Simon

      Author's profile photo Massimo Olivieri
      Massimo Olivieri

      example is very easy: view V_ANLSUM_1 using SADL lot of fields have wrong SIGN_POS.
      If export to excel summations not work.

      V_ANLSUM_1 do'nt have currency filed, creating a new CDS join V_ANLSUM_1 and Currency Key of company code,can be set CQ_REF for reference field.

      there is no exit for ENUMERATION, so can not be set easy a fixed values for custom fields.

      ecc..

      I think SADL is very powerfull framework/tool,but is limited.
      More control for FIELD_DESCRIPTION si need.

      Some times must be back to custom FPM IDA.

      Author's profile photo Simon Hoeg
      Simon Hoeg
      Blog Post Author

      Hello Massimo,

      thanks for the example.

      We will find a solution, and will come back to you.

      Regards,

      Simon

      Author's profile photo Massimo Olivieri
      Massimo Olivieri

      hi simon,

      Another big limitation about FPM in general is about IMPORT parameter value on F4 help DDIC.
      like on example: F4 Help for one field(bookid) not import parameter from other field value(CARRID).

       

      method CL_WDR_SELOPT_VH_FIORI_ASSIST->IF_WDR_SHLP_CONTEXT_MANAGER~GET_VALUES isn't developed, in empty.

      many thanks

      Author's profile photo Sabine Kissner
      Sabine Kissner

      Hi Massimo,
      you have a profound knowledge of Web Dynpro ABAP - I am deeply impressed. You are right, interface IF_WDR_SHLP_CONTEXT_MANAGER must be implemented for passing values from the filterbar to the value help. It was still implemented in the 'old' select options which looked like the SAPGUI ranges (component WDR_SELECT_OPTIONS). The reason why we didn't support the feature in select options as of guideline 20 and in the filter bar are the following:

      1. Due to the different UX design, the search attributes may not have a logical sort order or some of the fields are not directly visible (as some attributes show only up on the Adapt Filters popup). Additionally this can be changed by the user. It is difficult for the user to understand how this feature works, if the dependent fields don't show up as block.
      2. Application developer use quite often dynamic structures for defining the search attributes. In these structures the logical dependencies from the original DDIC structure are missing and the fields for importing cannot be mapped.
      3. The last reason is the usage of other value helps (like OVS or application defined) which don't have this feature either.

      In short we thought the feature would be confusing as it would only work partially and be difficult to understand.

      Best regards,

      Sabine
      Product Owner Web Dynpro ABAP