Skip to Content
Author's profile photo Murali Shanmugham

Extending a Fiori App – Simple Use case – Part 3

In the previous two articles, I wrote about extending OData/SAPUI5 application. In this article I will cover the new Launchpad. All Fiori applications are generally displayed in the Launchpad as tiles. To be able to display the new enhanced application to the users, it has to appear as another tile on the Launchpad. I will create a new catalog and demonstrate how to add the new SAPUI5 project to it.

Begin with creating a new Launchpad via LPD_CUST.

/wp-content/uploads/2014/05/1_454225.jpg

Add a new application with the below values. Ensure that sapui5.component refers to the name of the new component which was declared in the component.js file. In our case, sapui5.component=cus.crm.mycalendar.CUST_CRM_MYCAL_EXT.

/wp-content/uploads/2014/05/2_454226.jpg

Next, open the Launchpad designer to create a new catalog using the URL http://<host:port>/sap/bc/ui5_ui5/sap/arsrvc_upb_admn/main.html?

You would see the standard catalogs listed on the left hand side. Click on the create icon.

/wp-content/uploads/2014/05/3_454227.jpg

Provide a name for the new catalog

/wp-content/uploads/2014/05/4_454228.jpg

Click on the + icon which appears on the detail area

/wp-content/uploads/2014/05/5_454229.jpg

This will display a screen with four tile templates. The Dynmaic App launcher can be used in scenarios where you need to show a count on the tile (number of tasks to approve). I will use a Static App launcher for now and keep it simple. We will need a Target Mapping to be associated for each of the application too.

Add both a Target Mapping and App Launcher – Static from the below screen.

/wp-content/uploads/2014/05/6_454230.jpg

The screen would look like below

/wp-content/uploads/2014/05/7_454231.jpg

Before we proceed, we would need to maintain sematic objects for Intent based navigation.  In SPRO, navigate to “SAP NetWeaver User Interface Services” to add sematic objects.

/wp-content/uploads/2014/05/8_454235.jpg

Create a record with the object name. This will show up in the URL when the user navigates to the App.

/wp-content/uploads/2014/05/9_454236.jpg

Go back to the Launchpad designer and open the target mapping to maintain the below values. Select the Semantic object created above and provide a meaningful value for action.

/wp-content/uploads/2014/05/10_454237.jpg

Provide the below values for the Static App Launcher

/wp-content/uploads/2014/05/11_454242.jpg

Now the catalog is ready for consumption.

/wp-content/uploads/2014/05/12_454243.jpg

In PFCG, we have to create a role which refers to this new Catalog. After creating a role, from the transaction drop menu, select the catalog.

/wp-content/uploads/2014/05/13_454244.jpg

Assign the new catalog as shown below

/wp-content/uploads/2014/05/14_454245.jpg

Assign the role to the users. The role should look finally as below

/wp-content/uploads/2014/05/15_454250.jpg

Navigate to the Launchpad – http://<host:port>/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?

To add “My Catalog” to the left hand side, click on “Open Catalog”

/wp-content/uploads/2014/05/16_454251.jpg

From the Catalog drop down, select “My Catalog”. This will list the single tile which is assigned to it. Clicking on the grey + icon below it will add it to the “My Home”.

/wp-content/uploads/2014/05/17_454252.jpg

Now we should be able to see the new catalog in the Launchpad under “My Home”

/wp-content/uploads/2014/05/18_454254.jpg

I am using a chrome browser – developer tool (F12) to trace the calls being made. This way it is easy to verify if the new enhanced App is talking to my custom OData service.

/wp-content/uploads/2014/05/19_454259.jpg

Notice that the after launching the app, the URL will show http://<host:port/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?#MyCalender-view (referring to the Intent Navigation) we defined earlier.

To see the changes, navigate to the detail screen and look for additional fields in the bottom of the screen

/wp-content/uploads/2014/05/20_454260.jpg

I hope the series of articles have given you a good insight on the tasks required to extend Fiori apps.

Update: Below are some useful documents on Launchpad and the concept around it.

Assigned tags

      15 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Masayuki Sekihara
      Masayuki Sekihara

      Part 1,2 and 3. It is a perfect example.

      Author's profile photo Ted Milondzo
      Ted Milondzo

      Hi Murali

      Thanks for the for part 1  -  3. however,  I am getting an error which I have been battling with for days

      Please see the following thread for details: http://scn.sap.com/thread/3642473

      Thanking you

      Ted

      Author's profile photo Bince Mathew
      Bince Mathew

      Hi Murali,

                   Nice documents. I have one doubt, In the part 3, where you are creating Semantic objects via SPRO, you have given the name of the semantic object Name as "MyCalenders". But in the target mapping you have given the semantic object name as "MyCalendar".So are you referring to any other semantic object in the target mapping or is it pointing towards the same semantic object you have created?

      Regards,

      Bince Mathew

      Author's profile photo Masayuki Sekihara
      Masayuki Sekihara

      When you "extend the standard app", semantic object and action should be same as standard app because other standard apps may call the app. "Application Alias" handles  this situation and your extended app will be called.

      If the app is Fiori-like custom app, you can define own semantic object.

      Regards,

      Masa / SAP Technology RIG

      Author's profile photo Bince Mathew
      Bince Mathew

                    I got a little bit confused with the part in this document, where a screenshot was showing a  custom semantic object being created with the name "MyCalenders" and later in the target mapping screenshot, the semantic object name was given as "MyCalender".

      /wp-content/uploads/2015/02/semantic_648786.png


                         I guess then for this scenario a custom semantic object need not be created.But now i got my doubt cleared thanks Masayuki 🙂

      Regards,

      Bince

      Author's profile photo Former Member
      Former Member

      Hello Masa,

      I have extended a standard application. I have used the semantic object and action of standard application.

      Issue is, I am able to run the application via testing its SICF service under UI5_UI5 node. Also, I am able to run the application from launchpad, if I DO NOT use the 'Semantic Object' for navigation and give the target url directly.

      I want to launch the application from lauchpad using the 'Semantic Object' for navigation.

      Please check this thread Cannot launch extended app from Launchpad and suggest.

      Please give your valuable inputs. I am stuck.

      Best Regards,

      Rahul

      Author's profile photo rakesh singh
      rakesh singh

      Hi Murli,

      Thanks! for the detailed explanation. This will be very useful for learners as well. Hoping to see many more such blogs. 🙂

      Regards,

      Rakesh

      Author's profile photo Helmut Tammen
      Helmut Tammen

      Hi Murali,

      this is really a great series of blogs. Helped me a lot to clarify some questions I had in the overall extension process.

      Thank you very much

      Helmut

      Author's profile photo Lakshmi Narayana
      Lakshmi Narayana
       Hi Murali,
      
      
       Is there any option for calling 1 launchpad inside the other in XS application,since i am working on XS HANA application using Fiori LaunchPad.
       
       I mean : I have 1 tile(A) and another tile (B), when i clink on A tile it should navigate to Tile B.
       I need this functionality only in Fiori launchpad not the tile concept we put inside the Views.
      
       Thanks,
       Lakshman
      
      
      

       

      Author's profile photo Pawan Kalyan
      Pawan Kalyan

      Hi Murali Shanmugham

       

      I don't understand why we need to go for extension project and extensions . Instead of this , copy the whole application and changing is a better one right?

      Please let me know if i am missing something..

       

      I have followed your 3 Blogs on Fiori.. They are very Nice... Thank You very much

       

      Author's profile photo Murali Shanmugham
      Murali Shanmugham
      Blog Post Author

      Hi Pawan,

      Extension approach will enable you to get all the new features which are made available to the parent standard application. All these new features will start to appear in your extension application.

       

      Author's profile photo Bhargavi Tadi
      Bhargavi Tadi

      Hi Murali,

      A big thanks for the detailed explanation, I have a standard fiori application and I have extended it with the help of extension hooks. Now I have deployed it(this app only contains my extended controller code and taking reference of standard app during run time) as a new bsp application to the abap repository and created new tile, catalog etc., configurations. Now, if SAP releases any updates to the standard app will those reflect in my extended app? If possible please share any document link from sap where can I find the ans to this point to show to my team.

      Thank you in advance.

      Author's profile photo Murali Shanmugham
      Murali Shanmugham

      Thanks Bhargavi, This blog is almost 6 years old. I would suggest you post this question in the forum. There might be a better way to extend apps now. Its been a long time I worked on Fiori apps.

      Author's profile photo Former Member
      Former Member

      Hello Murali,


      Thank you for a detailed explanation.
      Could you please tell me how I could use my own data from the table in standarte Analytical Fiori application?
      Thank you in advance!

      Author's profile photo Murali Shanmugham
      Murali Shanmugham
      Blog Post Author

      Thanks Ilya. Can you please post this as a question in the Forum? This blog is very old and there are new ways of doing the same.