Skip to Content
Technical Articles
Author's profile photo Jocelyn Dart

SAP Fiori for SAP S/4HANA – Calling enjoySAP transactions from Fiori apps

Latest Update October 2020: Please note that from SAP S/4HANA 2020 you are recommended to use the Launchpad App Manager instead of the Launchpad Designer.

EnjoySAP transactions such as ME21N, ME22N, ME29N, etc. have some particular challenges around passing appropriate parameters when called directly from other Fiori apps.  Understand a simple approach for how to workaround these challenges so you can call them confidently from any Fiori app.

There are some additional challenges when calling enjoySAP transactions from the SAP Fiori apps via app to app navigation.  These challenges can be overcome as we explain in this blog. You will need to settle in for this one – I promise you will learn some tips about List of Links dialogs and how Target Mappings work as well that will help you with other Fiori for S/4HANA scenarios!

Back in the day, one of the very early attempts to improve the UX of SAP GUI, long before SAP Fiori was even thought of, was called enjoySAP.   EnjoySAP brought a more consolidated UI where 3 levels of detail – header, items, and subitems – could be viewed and edited at the same time.  The enjoySAP approach was primarily used to improve certain Procurement transactions such as ME21, ME22, ME23, ME29 and others.   Like many such attempts these transactions still exist in SAPGUI, are still used by many users and still provide value to many users.   You can typically identify enjoySAP transactions by the suffix N on the transaction code, e.g. Transaction ME21N was the enjoySAP equivalent of ME21, ME29N was the enjoySAP equivalent of ME29, etc.   You can see an example of ME29N in the screenshot below.

A recent customer experience showed that trying to launch SAP GUI transaction ME29N directly from the Semantic Object based List of Links in SAP Fiori app Monitor Purchase Order Items (App id F2358) didn’t meet expectations, even though:

Essentially when you try to launch the transaction ME29N from a tile or via a link from another app such as Monitor Purchase Order Items, you will find that the Purchase Order number is not passed to the enjoySAP transaction in the same way as it is to other SAP GUI transactions.  Parameter passing just doesn’t work in quite the same way for enjoySAP transactions as it does for most other SAP GUI transactions.

You will see how to overcome this using SAP Fiori app Monitor Purchase Order Items (App id F2358) as an example. You can follow the steps below:

  1. Finding the list of links dialog you want to extend with your new link
  2. Add your app as a new link in the List of Links dialog
  3. Test your new link appears in the List of Links dialog
  4. Adjust the parameters used by your link
  5. Retest your link and parameters in the List of Links dialog

Adjusting the parameters will involve using a wrapper transaction. You will see what a wrapper transaction is and does in step 4 – Adjust the parameters. You will find a list of provided wrapper Transactions for enjoySAP Transactions at the end of this blog.

TIP: You can try this it out for yourself using a SAP S/4HANA Trial instance on . The demo user S4H_PUR_DEM is assigned the Monitor Purchase Order Items app.

Find the List of Links dialog

Start by identifying the app that contains the List of Links dialog and making sure it is working.  In this blog we assume you have already activated the app.

SAP Fiori app Monitor Purchase Order Items (App id F2358) is part of;

  • Business Roles: Purchaser, Transportation Manager, Settlement Clerk (Freight Management)
  • Business Catalog: Purchasing – Purchase Order Processing

When you are in the SAP Fiori app Monitor Purchase Order Items (App id F2358), you can see a list of Purchase Orders you are monitoring. Every purchase order in the Purchase Order column is displayed as a hyperlink. When you select the hyperlink on a Purchase Order you are shown a List of Links dialog. From the list of links dialog you can then use any link to navigate to other apps related to Purchase Orders.

Click on More Links and you can see all the apps available.

You can navigate to any of the apps by clicking on the hyperlink.  You can even adjust which links are shown by default.

Just deselect the ones you don’t want and press Ok.

Then only the links you want are shown by default. The system will remember what you have selected for next time.

Technically these links are derived as follows:

  • In the Monitor Purchase Order Items app, the Purchase Order column is marked with the special annotation SemanticObject which is assigned to the semantic object id PurchaseOrder.
  • At runtime the Fiori launchpad identifies all the Target Mappings in tile catalogs assigned to you that contain the Semantic Object PurchaseOrder.
  • The end result is you see all the apps related to Purchase Orders assigned to you, i.e. that you are authorized to use

IMPORTANT: This derivation works regardless of the technology type of the app, so the List of Links might contain a mix of links to SAP Fiori apps, Web Dynpro ABAP apps, and SAP GUI transactions.

Find out more about Semantic Objects in the About Navigation section of the SAP Fiori Launchpad Guide on the SAP Help Portal.

Normally when you click on a link the purchase order number is passed correctly. E.g. if we navigate to SAP Fiori app Manage Purchase Orders (F0842A) you should see the SAP Fiori app Manage Purchase Orders has already filtered on and drilled down to the detail of the purchase order you selected.

This works even if we are linking to a classic app such as Purchasing Documents per Supplier (SAP GUI transaction ME2L), Purchasing Documents per Account Assignment (SAP GUI transaction ME2K ) or Print Purchase Orders (SAP GUI transaction ME9F).  You can see what this looks like for transaction ME2L.

TIP: Remember that the standard SAP GUI approach to navigation is to pass the parameters and skip the first screen. This means:

  • Even if you pass a parameter to the transaction, after it has skipped the first screen it may subsequently clear the selection parameters.
  • That’s why if there are no documents to print for the Purchase Order and you launch transaction ME9F, you will only see the message “No suitable purchasing documents found”.
  • A good tip here is to compare how the transaction behaves when running the transaction directly in SAP GUI for Windows or SAP GUI for Java, i.e. without using the Fiori launchpad and without the Fiori Visual Theme.

Now watch what happens when you add enjoySAP transaction ME29N to the list of links. Keep reading!

Add a new link in the List of Links dialog 

You follow the same process regardless of whether you are adding a SAP Fiori app, a custom Fiori app, or a classic app such as a SAP GUI Transaction or Web Dynpro ABAP application.

You can add GUI Transaction Release Purchase Order (transaction code ME29N) to the List of Links in Monitor Purchase Order Items by following these steps:

  1. In the Launchpad Designer, you create a custom tile catalog.
  2. You create a reference from the relevant Tile for ME29N in tile catalog SAP_TC_PRC_BE_APPS to your custom catalog
  3. You create a reference for the Target Mapping related to ME29N to your custom catalog.
  4. Assign your custom catalog to a security role, and make sure the security role is assigned to the user.

Before you start you find the tile catalog you need in the SAP Fiori apps reference library.  Just use the filter All apps for SAP S/4HANA, search for your GUI transaction by name or transaction code.  Once you have found it, the tile catalog will be listed in the Implementation Information tab, in the Configuration section. Take a look at the configuration details in the screenshot below for transaction ME29N in the Fiori Apps reference library

Notice particularly the Semantic Object and Action – those 2 fields map the Tile to the Target Mapping and can be used to help you find the matching details in the Launchpad Designer.

Now you can start.

1. Creating a custom Tile Catalog

In the Launchpad Designer, press the Add Catalog icon in the footer.

TIP: You access the Launchpad Designer using your content administration user and the link https://<yourhost>:<yourport>/sap/bc/ui5_ui5/sap/arsrvc_upb_admn/main.html?scope=CUST

Find out more about setting up content with the Launchpad Designer in the SAP Fiori Launchpad Guide in the SAP Help Portal.

Give your catalog an id and title.

2. Creating a Reference to an existing Tile definition

You create a reference from the relevant Tile for ME29N in tile catalog SAP_TC_PRC_BE_APPS using the Create Reference option.

Select the catalog and find the tile definition you want to copy. You know it’s something to do with Purchase Order so you can use the search field to narrow down the list.  Once you have found it select the tile definition,  then press Create Reference.

Add the reference to your custom catalog.

3. Create a Reference for the matching Target Mapping 

Creating a reference for a target mapping is much the same as creating a reference for a tile. That is:

  • Go to the Target Mappings tab of the same Technical Catalog.
  • Find the target mapping for Semantic Object = PurchaseOrder and Action releaseSingle.
  • Use the Create reference option to add the reference to your custom catalog, just as you did for the tile.

IMPORTANT: Notice the Configure option in the footer – you can use that to check and/or adjust the details of the target mapping.

4. Assign your custom catalog to your user

Then add your custom catalog to a security role assigned to your test user as explained in How to Create and Generate Backend Security Authorizations for SAP Fiori 2.0.

You can see a simple example of what your security role might look like below.

Test your link appears in the List of Links dialog 

Once your test user has been assigned to the custom catalog you can reopen your Fiori Launchpad and retest.

You will now see in the Monitor Purchase Order Items when you select the link on the Purchase Order column that your link Release Purchase Order has been added to the list of links.

What you expect is that when you click on the link transaction ME29N is launched and the Purchase Order number should be passed. When you test you will find transaction ME29N is launched. However the Purchase Order is NOT passed!

What went wrong? Keep reading!

Adjust the Parameters used by your link

If we check the Target Mapping there is no parameter provided to define what should be passed to transaction ME29N.  No problem – we can add that into our target mapping in our custom catalog.  By comparing our target mapping for ME29N to the target mappings for other apps used in the same list of links in the same technical catalog we work out that the source parameter passed by the link in Monitor Purchase Order Items is called PurchaseOrder.  So far so good.

What we want to do is add a parameter map the source parameter PurchaseOrder to set the target selected Purchase Order field in transaction ME29N. Now in most transactions this is easy, because selection fields are usually on the initial screen of the transaction.  So all you need to know is the technical name of the selection field and assign that to your parameters in the target mapping.

However not so fast with an enjoySAP transaction. Look at transaction ME29N.  In an enjoySAP transaction you can’t add the Purchase Order on the initial screen.

With an enjoy transaction you need to:

  • Select the Other Document button in the main window
  • Enter the new Purchase Order number in the dialog window
  • Select the Other Document button in the dialog window

You can use the SAP GUI technical help (F1) on the Purchase Order field to check that the screen field name is MEPO_SELECT-EBELN

So in theory just using the Configure option to add the target parameter value MEPO_SELECT-EBELN to your Target Mapping should work.

TIP: You can just confirm that you are ok with breaking the reference.  That simply means that if the original target mapping you referenced is changed in the future, you will not longer pick up those changes automatically.

Now refresh clear the user’s web browser cache, login and test again. There is no change!

Why doesn’t it work?

Well unlike most SAP GUI transactions, with an enjoySAP transaction such as ME29N, because the selection parameter is not on the initial screen, the standard SAP GUI approach of passing a parameter and then skipping the initial screen doesn’t work. You need to do something different.

You will get a clue on what to do from looking at the delivered target mapping for Display Purchase Order (Semantic Object PurchaseOrder, Action display) , which you would expect to be calling transaction ME21N. But it doesn’t. It calls transaction MMPURPAMEPO.

What you can see is that for each of these enjoySAP transactions there is typically a wrapper transaction (see the list at the end of this blog) that makes up for this difficulty when calling the transaction from elsewhere.

For ME29N the wrapper transaction is MMPURUICALLME29N which has a parameter P_EBELN and looks like this:

Ok so instead of calling ME29N directly you want a target mapping that calls MMPURUICALLME29N instead.

So that there is no confusion between the original referenced version and your own, make sure you:

  • Use a different Action for the same Semantic Object – in the example you can see the action is called releaseSingleAdvanced
    • Note: Actions are freely definable
  • Change the title of the target mapping so you can tell whether you are calling the original referenced version or your revised version – in the example you can see the title is Release Purchase Order Individually

NOTE: If you wish you can also create a custom tile to match your target mapping.  It’s not essential in this scenario, just good practice if you want your users to be able to add a tile to their home page to go directly to the SAP GUI transaction.  Of course if they go directly to ME29N from the home page there will be no Purchase Order value passed.

Once you are happy that it is working, you can always remove the original referenced version from your catalog and adjust the texts and actions to their final values.

Adjust the security role assigned to the user.  Make sure:

  • The custom catalog is assigned and updated
  • The user is authorized to use both transaction ME29N and the wrapper transaction MMPURUICALLME29N
  • If you need to run the User Comparison to make sure the user’s details are up to date.
  • Clear the web browser cache and login again as your test user.

Retest your link & parameters via the List of Links dialog 

Now when you go into Monitor Purchase Order Items and select the Purchase Order you will see your new target mapping listed as the link Release Purchase Order Individually.

Select your new link Release Purchase Order Individually.  Transaction ME29N is launched passing the Purchase Order number.


List of Wrapper Transactions for enjoySAP Transactions

There are a number of similar wrapper transactions delivered for enjoySAP equivalents listed below.  Which one you call depends on your target transaction and what you need to pass to it.

EnjoySAP Transaction Wrapper Transaction Parameters (technical names)
ME21N MMPURUIME21N None (looks for all requisitions ready to be converted to Purchase Orders)


Becoming a SAP Fiori for SAP S/4HANA guru

You’ll find much more on our SAP Fiori for SAP S/4HANA wiki

 Brought to you by the S/4HANA RIG


Assigned Tags

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

      Very nice, Thanks Jocelyn Dart for the great tip.

      Author's profile photo Gustavo Vazquez
      Gustavo Vazquez

      Great blog !!!

      Author's profile photo Moni Sindhu S
      Moni Sindhu S

      Very helpful. Thank you



      Author's profile photo Syambabu Allu
      Syambabu Allu

      Good information.

      Thank you,



      Author's profile photo Former Member
      Former Member

      wow, thank you! someone in my organization will be very happy with this feature.

      Author's profile photo Florian Henninger
      Florian Henninger

      Hi Jocelyn Dart ,

      nice read and really great to calm down after work;-)


      in other words if I create a wrapper-program I should also be able to include custom-made transactions here?



      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Yes - it's the same deal.  Transactions have limited options for passing values in from a different source so sometimes a wrapper is the easiest workaround.

      Do consider though whether you are better off just using a target mapping direct to your custom transaction - that's a lot easier to change if the business process or use case changes later. Very few people wrote their own enjoySAP transactions.

      Author's profile photo Vicky Khambhati
      Vicky Khambhati

      This was the same issue back in ABAP days when we used CALL TRANSACTION 'XXXX' SKIP FIRST SCREEN.

      This is really useful information.

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Not really - If you have a CALL TRANSACTION XXXX and SKIP FIRST SCREEN. then that's the standard approach where you can pass in any parameters provided they are named fields of the first screen.

      The specific problem with enjoySAP transactions is that the parameters are NOT on the first screen.  Hence the need for a wrapper.

      Hope that clarifes..

      Author's profile photo Chris Scott
      Chris Scott

      Hi Jocelyn

      Thanks - it's a great blog, and really relevant for some requirements I have right now.

      However, all the apps I'm being asked to look at don't support the list of links control.  (Eg Display Inspection Operation, Monitor Material Coverage)

      Is there a way to find a list of all the apps that do support list of links navigation?

      Do you recommend enhancing the delivered apps to add in list of links support?

      Many thanks



      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Chris,

      I'm not aware of any way to find where list of links is being used, other than by inspection.  Generally newer apps use this approach as standard. Older apps may not. However often older apps have more limited opportunities for extension. So to me it would be a case of assessing how important this is to the use case at the customer, rather than a general rule of thumb to extend delivered apps.

      Certainly it's worth asking for an enhancement in such cases.



      Author's profile photo Pawan Kalyan K
      Pawan Kalyan K

      Hello Jocelyn Dart ,

      Thanks for educating.

      I would like to know is it possible to change the logo of Purchase Order (8th screenshot in your blog). Here logo for PO is some person holding a cart. I would like to change it . When I check the same ,image is captured as MEME in Fiori Application. When I try to extend the application – MM_PO_MANAGES1 , I have received error Extending smart applications is currently not possible. I am using 1709 S/4 system


      I have replaced the image from MIME Repository.. Is this the correct option? or is there any other way ?

      What happens if we moved to higher levels of S/4. Will these get overwritten by standard images again?


      Please guide


      Please suggest

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Pawan, Your question is not a comment relevant to this blog's topic.  Please ask your question in where others may be able to assist you with resolving your issue. Your current approach seems dubious - I would expect it to be overridden - and needs more thought.

      I can tell you that Fiori elements i.e. Smart Template applications can be extended as of SAPUI5 1.60 using an "Adaptation Project". For S/4HANA this will be available from S/4HANA 1809 FPS01. However you can try this out in the SAP Cloud Platform Web IDE sandpit.

      Refer to Teched 2018 Replay session CGE205 What's new with Fiori Elements



      Author's profile photo Richard Paris
      Richard Paris

      Good afternoon Joselyn.

      I have a doubt

      If I have the TX ME21N a new tag or dynpro with Z fields on an ECC system and I want to migrate to an S / 4 hana. When I activate the new features in Fiori to see the TX ME21N in Hana, will I see the new dynpro Z or client fields?
      Or you would have to do something extra to see the new customer expansion fields in Fiori.

      Thank you.

      Author's profile photo Jocelyn Dart
      Jocelyn Dart
      Blog Post Author

      Hi Richard,

      Ok so that depends on how you move to SAP S/4HANA.

      If you do a new implementation ("greenfield") or selective data transition ("bluefield") then you need to reapply any extensions to your GUI transactions because you are moving to a standard solution - usually with a return-to-standard (as much as possible) approach. 

      If you do a system conversion ("brownfield") then your current extensions remain in place. They may need to be reworked a little - e.g. where the custom code migration guide picks up any incompatible code changes.

      Assuming you are doing a system conversion, then your ME21N transaction extensions are still there and should shown in GUI for HTML when launched from Fiori launchpad.

      However if you have a custom Z transaction or a custom ABAP Web Dynpro application, or your ME21N extensions add a custom tab to the existing ME21N transaction, then you may need to fine-tune the display for the Fiori Visual Theme using the Mass Maintenance tool transaction MM_APP
      All the best


      Author's profile photo Aleksandr karpov
      Aleksandr karpov

      Hi, Jocelyn.

      Thanks for your blog, very usefull information.

      But a have one question. I need to call MM03 transaction from my Fiori app. I created target mapping, semantic object, action, but i have a problem with parameters for MM03.

      First parameter is ( MAT  ----  RMMG1-MATNR ) for material number. But when MM03 starts , dialog with view selection opens and i can't understand how to set second parameter for automatic view selection.

      Maybe in s/4 is exist some wrapper transaction for MM03?

      Author's profile photo Louis-Arnaud BOUQUIN
      Louis-Arnaud BOUQUIN

      Hello Jocelyn Dart ,

      Is there a way to do the opposite ? Call a Fiori app from a SAPGUI transaction ?


      We are moving on S/4 Hana and already have SAPGUI transaction codes that we want to keep. We will launch them from Fiori Launchpad (webgui). Then we would like to call a new custom app (Fiori) from this transaction. Is it possible ?


      Thank you,



      Author's profile photo Louis-Arnaud BOUQUIN
      Louis-Arnaud BOUQUIN

      Well, i found a solution by myself, so I shared it !

      Author's profile photo Tarek Amr
      Tarek Amr

      Thank you Jocelyn Dart for such organized and very helpful blog

      Author's profile photo rakesh baggam
      rakesh baggam

      Hi Jocelyn Dart,

      I am having a problem. I tried to call an enjoy transaction(MMPURPAMEPO) for 'display purchase order' from 'Monitor purchase order items' fiori app's purchase order column. As this can be done by adding intent 'purchaseOrder-display'.  I tried by adding target mapping  referencing it from standard catalog 'SAP_PRC_BC_PURCHASER_PO'(refer attachment - reference).

      But the purchase order quick link didn't show the 'display purchase order' app to navigate. Then i deleted uitype=advanced from target mapping (refer attachement - TargetMapping).

      this time its showing 'display purchase order' at the quick link , Can you tell me what could be the problem


      Thanks in advance

      Rakesh Baggam

      Author's profile photo Mathieu Lawnik
      Mathieu Lawnik


      I've referenced the target mapping for transaction MMPURPAMEPO in a custom catalog, assigned the role containing the catalog to my user, but the link doesn't appear in the Navigation links from a Purchase order.

      I wonder if I've missed some prerequisites for those links to appear ?

      I've cleared the global cache but it didn't help.


      Author's profile photo Tobias Fortkaemper
      Tobias Fortkaemper

      Hello Jocelyn Dart

      the blog is very instructive. We use the wrapper transaction for the Tcode ME53N. It works. Only limitation is navigating back to the App ID F1048 Process Purchase Requisitions. As soon as we want to jump back we end up in the launchpad on the home page and not in the App F1048. What can be the problem here?


      Kind regards