Enhancing a standard Fiori app – a real life example Part 1
1. Introduction and Analysis of the standard oData Service (this part)
2. Fiori enhancement approaches
3. Fiori extension with the SAP Web IDE
4. Extension of the standard oData Service
1 Introduction
1.1 Background
I am currently implementing S/4 HANA 1511 FPS1 on premise for a customer, and recently got my first opportunity to enhance a standard Fiori app in a real business scenario. I thought it would be useful to share how I did this and what I learnt along the way.
1.2 Business Requirement
Standard Fiori app ‘Revise Payment Proposals’ includes a screen where financial document items are listed that are included in the Payment Proposal:
To help the user to understand what is to be paid, we would like to add the Item Text (BSEG-SGTXT) to this table.
2 Analysis of the standard oData Service
I first wanted to check if the Item Text field was already provided in the oData service for the app, FAP_REVISE_PAYMENT_PROPOSAL, or whether the service would need to be enhanced. To do this I went to transaction SEGW in my back-end S/4 HANA system (where the service is defined) and opened project FAP_REVISE_PAYMENT_PROPOSAL. In here I could see that Entity Type PaytProposalInvoice already includes Item Text:
To test this I first checked that the Items in a Payment Proposal had texts in BSEG-SGTXT:
I then tested the oData service in /IWFND/MAINT_SERVICE, in my front-end Fiori Gateway system. Note that key data values have to be provided for all the nodes in the oData structure that are above the PaytProposalInvoiceSet we are interested in. To build the required URI, I navigated to the Invoice Items view in the app with the F12 debugger on. By looking in the $BATCH request (under ‘Network’) I could get the URI parameters:
The complete URI therefore is:
/sap/opu/odata/sap/FAP_REVISE_PAYMENT_PROPOSAL/PaytProposalParameterSet(RunDate=’20160510′,RunID=’REMI3′,PayingCompanyCode=’GB03′,SendingCompanyCode=’GB03′)/PaytProposalPaymentSet(RunDate=’20160510′,RunID=’REMI3′,PayingCompanyCode=’GB03′,Supplier=’0400000026′,Customer=”,PayeeCode=’FOOT7-0000000001′,PaytDocNum=’F110000001′)/PaytProposalInvoiceSet
Initially the ItemText attribute was returned empty:
Having raised this with the app’s product owner, we were told that as standard the field is only populated (from table REGUP) when the Item Text begins with a star ‘*’, which is intended to signify externally-visible texts as opposed to texts that should only be seen internally. So we added a ‘*’ to each Item Text:
The oData service now returned the ItemText:
Conclusion
No enhancement of the oData service was strictly necessary in this case as the Item Text field is already available as standard. Later on we decided to enhance the oData service anyway, this the app is for internal use and therefore should show all item texts regardless of whether or not they begin with a star. But initially I switched attention to the UI, and how I could show the additional field in the table.
In the next part I explain four possible Fiori enhancement techniques which we initially considered.
Hi Roger,
I cannot see the blog parts 2-4. Will you publish them as well?
The example you are showing is very interresting therefore I would appreciate if you could publish them as well.
Many thanks and kind regards,
Ömer
Hello,
Please find the correct urls here -
2
Enhancing a standard Fiori app - a real life example Part 2
3
Enhancing a standard Fiori app - a real life example Part 3
4
Enhancing a standard Fiori app - a real life example Part 4
Kind regards
Junmei
Sorry I hadn't spotted that the URLs change when the blogs are first published. I've gone through and corrected the links.
Roger