Extending Fiori Apps in S/4HANA using the Adaption Transport Organizer
During one of my recent S/4HANA implementations I had to extend a standard SAP Fiori App (Manage Supplier Quotations) with an additional input field. Never ever had I thought this could be so easy!
During this blog I’ll walk you through:
- Setting up the Adaption Transport Organizer (ATO)
- Extending a standard Fiori App (Manage Supplier Quotations)
Setting up the Adaption Transport Organizer
To setup the Adaption Transport Organizer I followed the official documentation which can be found here.
First we have to create 2 local packages in our system (I chose to stick with the ones proposed in the official documentation):
Next launch transaction S_ATO_SETUP to start the actual configuration. Enter following details:
- Local and sandbox package
- Prefix and sandbox prefix
After entering the details, start the configuration using button “Setup with specific data”.
Afterwards the red light should turn green:
This concludes the configuration of the Adaption Transport Organizer.
Extending a standard Fiori App
To be able to continue, you first need to make sure that you’ve activated following Fiori Apps in the system:
- Custom Fields and Logic (documentation)
- Configure Software Packages (documentation)
- Register Extensions for Transport (documentation)
All these apps are only available in a technical catalog, so you’ll have to create a custom business catalog and group to gain access to these tiles.
Adding a custom field to the data model
In our example we’d like to add a custom field in the item section of the Supplier Quotation to enter the supplier material number.
Open the Custom Fields and Logic app to add a custom field to the data model.
In the popup enter details for the custom field you’d like to add (in our case the supplier material number) and click the Create and Edit button.
In the next screen, switch to tab UIs and Reports and enable usage in following components:
- Manage Quota Extensibility Model
- Supplier Quotation Item
- Supplier Quotation Item Enhanced
- Supplier Quotation Item Enhanced Consumption View
To find out what you need to extend for your app, you need to review the section App Extensibility of official app documentation. (For the Manage Supplier Quotation app, the documentation can be found here)
Next, save the custom field data using the Save button in the bottom of the screen
After everything is saved, the Publish button will be available. Click this button to actually activate the extension.
Now you’ll have to wait until publishing is finished, this can take a while. (In the background the system is now extending tables, CDS views, structures, …)
The custom field is now availble in the app and is automatically input ready / display only based on the mode the app is in (display / change). It might be possible that you need to add the field to the screen using the configure button in top of the item table.
Configuring a Software Package
As you might have noticed, our extension is now created in the local package we assigned to the Adaption Transport Organizer and not yet registered to a transport. To be able to register our extension to a transport we first need to configure a software package.
Open up the Configure Software Packages tile and click the Add Registration button.
Search for your desired package to hold the extension(s), to add it to the list of registered packages.
Next, assign a transport to the package (or enable automatic request / task handling).
The package can now be used to hold the extension we created.
Register the extension for transport
Now we can finally register our extension to the package and transport, to move it through the landscape.
To do this, open up the Register Extensions for Transport app, select the extension and click the Reassign to Package button in the bottom of the screen.
Select the package we registered earlier and wait for the process to complete.
Once the assignment is finished you should see that the extension is now transportable, you can now release the transport to move the extenion(s) through the system landscape.
This concludes the walkthrough on extending standard Fiori Apps using the Adaption Transport Organizer, which was quite easy once you get a hang of it. Hope this saved you quite some time. As always I’m open to your feedback!
Thanks for documenting this approach. Are there any specific Apps which can be extended with this method? How do we know for which apps is this approach suitable? Also what are the other prerequisites of using this method, could you pls tell?
As far as I know there are no other prerequisites then the ones mentioned in the blog post. (I personally did this configuration and didn’t run into any other prerequisites)
To find out if an app can be extended using this approach I always use the Fiori Apps Library. Just navigate to the app you would like to extend, choose your release and in the tab product features there is always a link to the app documentation. (in the notes)
For the supported apps there will be information on what to extend in the table of contents under the App Extensibility.
Hi Smriti, Depending on your release, most Object Pages, Overview Pages, Analytical List Pages , List Reports, and Worklists have some options for adaptation.
What can be done primarily depends on your release - as of SAP S/4HANA 1809 FPS01 a lot of new options were added for Overview Pages, e.g. create a link list or KPI card, rename cards, etc
Thanks for the great blog is there any way to also transport the entires created by the business object app S/4 On Prem ?
For all these adaptations, transport is through the normal ABAP transport processes.
You are assigned a request through Adaptation Transport Organizer - I would recommend reading the documentation linked to this blog.
My question is not really about the assigning transport request to CBO itself but the entries created by the CBO when you maintain it via Fiori App in launch pad similar to the customising request entries in ABAP .
The entries you make into in your CBO app are considered transactional data - not configuration. As such the data is stored on the database for the particular system and client. Since they are transactional data, transport is not relevant.
Hope that helps
Hello Jocelyn Dart ,
Thanks a lot for the information.
I see that CBO is more like a mapping tables in SAP.So if there are 1000 entries to be created for a particular CBO should we do it in each system is that design from SAP or Do you have any ideas to include a transport request also ?
Nice blog Geert-Jan! I'm going to add this one to our SAP Fiori in SAP S/4HANA wiki - it's a nice step by step!
Thanks Jocelyn! Great to hear these type of step by step guides are appreciated!
I have added fields and created the transport request by using s/4 extension fiori app but unable to transport from development to quality.
task we have released but transport unable to move , transport was locked.
any one please help on this.
Great article!! It helped me a lot!
I would like to drop an issue, regarding the local & sandbox package values: $YATO_KEY_USER_LOCAL & $YATO_KEY_USER_SANDBOX
Through my research I found out that the above names are just for example purposes and that packages starting with $ will be deleted throughout updates.
Thanks again for the great guide!