Skip to Content
Technical Articles

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

21 Comments
You must be Logged on to comment or reply to a post.
    • 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 🙂

       

  •  

    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.

    • 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?

      •  

        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.

  • 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

    • 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

  • 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?

     

  • 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
  • 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

  • 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.