** 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 Build Apps (former SAP AppGyver) 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
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
- Wizard for Creating FPM Apps Based on Business Entities
- 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:
- BOPF Business Object
- Core Data Services
- Data Dictionary
- 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
- Edit Configuration (FLUID): This allows further adjustments (texts, visibilities, sequences, semantic colors) to be made.
- Execute Application: Hereby you start the new app … live and in color!
Done The new web application is here. By the way, you have just tried out the new Horizon theme Have fun with it!
The Search Page
The Filter Page
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?
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.
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.
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?
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.
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).
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
That's a very big limitation for develoer custom APP requiried from costumer.
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
There are also other Exits that may apply to your use case:
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,
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.
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.
thanks for the example.
We will find a solution, and will come back to you.
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.
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:
In short we thought the feature would be confusing as it would only work partially and be difficult to understand.
Product Owner Web Dynpro ABAP
"Application developer use quite often dynamic structures for defining the search attributes"
Thinking about this limitation ,from developers point of view i think there are 2 common solution, should be nice to be have:
1) DDIC structure: GUIBBs Form import parameter value on F4(help) work without isses, when define binding from fileds into DDIC strutture/table
Can be done same Develop into GUIBBs Search ?
2) CDS foreignKey association: FPM BICS use Analytic Dimension Views from F4(help), class CL_FPM_BICS_SEARCH_FEEDER use OVS to define F4(help) and IF_FPM_GUIBB_OVS~HANDLE_PHASE_1 dependencies for combine help value.
Develop only one CDS for FPM SADL(trasanzional operation view/edit) and FPM BICS( reporting ) can be be very helpfull and nice solution.
should be Porting to Class SADL Search ? or create new Class SADL Search?
Like Query Journal Entry Analyzer(2CCFIGLLITMQ0001)
please have a look into SAP Note 3277257.
It introduces an additional exit method GET_CUSTOM_DISPLAY_FIELD_PROPS with regard to sign postion, cell design reference, CQ field and CQ field reference.
Thanks for your input & Best regards,