Skip to Content
Technical Articles
Author's profile photo Mahesh Palavalli

How to call a GUI transaction from Fiori List report template based application

Hi Guys,

 

First and foremost, Happy New year to all.

This is my first blog in this year and planning to create more in the coming days(hopefully) 😀

 

As the title of the blog suggest, it is about launching a GUI transaction from Fiori list report template based apps using CDS view or UI annotations.

This can also be achieved for any ui5 app, but you have to use the CrossApplicationNavigation api to trigger the semantic object navigation.

 

For this demo, I’ve created a custom transaction, which will be called from the custom Fiori list report template based app:

 

GUI Transaction:

  1. For beginners, you can find a lot of blogs out there on how to create a transaction for a report or a module pool based GUI app in the backend.
  2. The report I’ve created will have a single input parameter, which will take the input and print the same in the output .
  3. The parameter name is P_INPUT.
  4. Then I’ve created a TCODE, which will execute this report.

 

 

Catalog Target Mapping:

  1. Provide the Semantic Object and Action Name, here I’ve given some dummy data
  2. Select the application type as Transaction
  3. Give the transaction name.
  4. Mention the correct system alias name.

When we call the GUI app from the fiori app, we should skip the selection screen and directly show the output, for this we need to provide the necessary parameters

‘Name’ -> property name of the of the column in the list report or it can be the cds view property name(if cds view is used).

when you open the GUI app from the list report app, it will automatically pass all the parameters of list row to the GUI app’s URL, you can get the property name from there as well.

‘Target Name’ -> parameter name in the GUI application.

 

 

Fiori List Report template based Application:

  1. Here I am planning to make one of my list column type as link and once the link is clicked, it will navigate to the GUI app.

I will show the existing list report app here, where I will add the required annotation.

  1. Open the annotation file using the annotation modler.
  2. Go the entityset UI.LINEITEM(which you are showing as a table in the UI).
  3. Click on add button on the UI.LineItem and select the DateFieldWithIntentBasedNavigation, which will make the column type as link.
  4. Now mention the semantic object name and action name.

 

Alternatively you can also do the same using the CDS view.

We need to mention the semantic object name  and semantic object action and type: #with_intent_based_navigation.

credits to Tejas Chouhan , I was not knowing that in the CDS view it is possible to mention it. Later after his comment in one of the question, I’ve tried this and it worked.

       @Consumption.semanticObject: 'Supplier'
       @UI: {
              identification: [{label: 'Sales Order No', position: 10}],
              lineItem:[{
                position: 10,
                semanticObjectAction: 'manage',
                type: #WITH_INTENT_BASED_NAVIGATION
                }],
               selectionField.position: 10
             }
  key  SalesOrderHeaders.salesorder,

 

Now run the app from the Launchpad(after pushing it to the server).

 

Please feel free to comment if you have any questions.

 

 

Useful links:

Configuring the GUI Apps:

https://wiki.scn.sap.com/wiki/download/attachments/449910788/Final_Step-by-step%20guide%20to%20enable%20Transactions%20using%20Application%20Descriptors%20in%20S4HANA%201610%20On-Premise.pdf?api=v2

https://blogs.sap.com/2016/12/21/open-your-sap-gui-transaction-in-fiori-launchpad/

https://wiki.scn.sap.com/wiki/display/SAPMOB/How+to+Add+a+WebGui+for+HTML+App+to+Fiori

Semantic object Navigation using Fiori Elements :

https://ui5.sap.com/#/topic/1d4a0f94bfee48d1b50ca8084a76beec

 

 

Thanks & Best Regards,

Mahesh

Assigned Tags

      22 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Nabheet Madan
      Nabheet Madan

      Great tip,thanks for sharing.

      Author's profile photo Florian Henninger
      Florian Henninger

      Handsome read. There is a document provided in the help where this and a lot other tips are included. Need to find the link again and will post it later.

       

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Hi Florian Henninger

      I couldn't find SAP help related to GUI tcode config in launchpad but I've found few other blogs and documents related to GUI tcode configuration. If you can share them it would be so much helpful.

      But for UI5, help is there for semantic object related to fiori elements. I've updated both of them in the blog.

       

      Thank you so much 🙂

       

      Author's profile photo Florian Henninger
      Florian Henninger

      Still on vacation, but what I have found on my personla computer is this site. This reference to a document which describes the "basic" setup.

      https://wiki.scn.sap.com/wiki/display/SAPMOB/How+to+Add+a+WebGui+for+HTML+App+to+Fiori

       

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Super! updated the same in the blog

      Author's profile photo Praseeda Aramadaka
      Praseeda Aramadaka

       

      Hi

      I have this same requirement wherein I have done target mapping as below:

      UI5 list report mapping:

       

      Transaction target mapping:

      But in my listreport I am getting the hyperlink but navigation in moving back to FIORI home screen.

      In Fact this field is disappearing from the table columns.

      My CDS annotations:

      @Consumption.semanticObject: 'HeadCountReport'

      @UI: {

      identification: [{label: 'Function', position: 10}],

      lineItem: [{position: 10, semanticObjectAction: 'GUI_NAVIGATE', type: #WITH_INTENT_BASED_NAVIGATION}],

      selectionField.position: 30 }

      @EndUserText.label: 'Function (Cost Center group)'

      key hc_mon.function ....

      Please suggest.

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Code looks good, maybe the issue is with the transaction access via the launchpad? could you create a tile for that with default values populated and check it once?

      Author's profile photo Praseeda Aramadaka
      Praseeda Aramadaka

       

      Thanks for your response.

      I found the cause. the Consumption annotation and Launchpad target mapping settings are sufficient to navigate.

      After removing the Lineitem annotations,the navigation worked as expected.

      Author's profile photo Jocelyn Dart
      Jocelyn Dart

      Thanks Mahesh - Nice example! I have added your blog to the Fiori elements wiki.

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Thanks Jocelyn for the feedback 🙂

      Author's profile photo Hemilkumar Prajapati
      Hemilkumar Prajapati

      Nice blog, Please continue to share more stuff like this.

      Thanks for sharing knowledge.

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Thanks Hemilkumar Prajapati for the motivation and the feedback :).

      Author's profile photo Shahir Abbas Mirza
      Shahir Abbas Mirza

      Hi Mahesh,

       

      Great Blog! Thanks!

       

      I am working on SAP UI5 runtime version as 1.44 and this does not work there. Can you let me know how can we achieve it there with 3 parameters?

       

      I have used DataFieldsForIntentbasednavigation and have provided the semantic object and other required details but on clicking of the button inline, I get the error as

      "NavigationHandler.isIntentSupported.notSupported"

      Cheers,

      Shahir Mirza

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Hi Shahir Abbas Mirza

      Thanks for the feedback 🙂

      From the message it looks like the intent is not supported? Did you create the intent? and is the user assigned with the role of the target tile?

      If still the error persists, I would recommend you to create a new question for more audience.

      Thanks,

      Mahesh

      Author's profile photo Ankur Gokhale
      Ankur Gokhale

      In my case after clicking Execute button, nothing happened. I tried to put a session breakpoint in report, it got triggered but all of sudden ABAP debugger stopped the opened instance of my custom report loaded a fiori launchad again. Very strange. Can anyone help me please?

       

      Author's profile photo Roshan Pinto
      Roshan Pinto

      Hello Mahesh,

      Nice blog. My question is:

      How do you find out the Name property? As per your Blog, you've used "salesorder" in your name property and the target name is P_INPUT. How do I find out what Name I have to use?

       

      • Pinto
      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      Hi Roshan Pinto ,

      Thanks for the feedback 🙂

      P_INPUT is the screen field name. which you get by clicking on F1.

      thanks,
      maheseh

      Author's profile photo Roshan Pinto
      Roshan Pinto

      Thanks for the prompt response Mahesh 🙂 Appreciate that.

      I have a question on how the "Name" parameter (in your example, you had mentioned it as salesorder) is identified and passed.

       

      Pinto

      Author's profile photo Mahesh Palavalli
      Mahesh Palavalli
      Blog Post Author

      🙂

      in name parameter you need to pass the cds view property or odata entityset property.

      Br,

      Mahesh

      Author's profile photo Andrei-Dorel Orbai
      Andrei-Dorel Orbai

      Hi,

       

      I’ve followed the steps you provided but my link it’s still not shown in the app. Is there something I’m missing?

      Below it’s my Target Mapping:

       

      My CDS view Annotations:

       

       

      Thanks,

      Andrei

      Author's profile photo Praveen khode
      Praveen khode

      Hello ,

      when i am trying to add #WITH_INTENT_BASED_NAVIGATION in my sap fiori element list report using cds. my app is not loding any data but if i use #FOR_INTENT_BASED_NAVIGATION it load the data and also navigate to my sematic object but not pass the column value for which i used hyperlink and passing all other parameter.

       

      Please help me.

      Author's profile photo Former Member
      Former Member

      Hello ,

      I have  developed one fiori list report and I am trying to create hotspot and call transaction "ME23N" from list report "po number" column.I have followed the step which you have mentioned on your article but it is not giving any response on the page.I have checked a lot of times but I couldnt find the problem yet.

       

      As a first step I have created my custom abap program which call transaction me23n by the help of "p_input" parameter.

       

       

      Here is the custom program which I am calling tcode ME23N

       

      Here is the annotation.xml

       

      Any help or comment will be appreciated

       

      Kind regards.