Are you struggling with the famous “There is an issue in this Fiori App” email?
Were you not given further details on which is the error, in which environment it happened, nor which is the service name?
Are you starting with SAP Fiori but want to rely on your strong ABAP skills?
Or are you just curious…?
Then this blog post is for you.
Trobleshooting can be tough, even more when the issue is not clearly defined and details are scarse. The goal of this blog post is to guide you to obtain almost all the information you need to deep dive and analyze technical errors regarding Fiori Apps (from now on, ABAP + OData scenarios). It is intended for ABAP developers or consultants who are starting with SAP Fiori and/or Web Development and need some light on the path.
Ready? Join me in this wonderful SAP Fiori-ABAP troubleshooting journey!
Where are we standed?
The Business Picture
Let’s assume the following scenario: An issue is reported by an end-user regarding some Fiori Report which is not showing all the records it should (or duplicated, why not?). No more details given, just the current behavior vs the desired behavior. At this point you could be wondering:
1. Do I have access to the SAP Fiori Launchpad/App? Am I able to reproduce the issue?
2. Where and how can I find the implementation of that logic? Is it SAP Fiori? Is it ABAP?
Let’s also asume you have access to different S/4HANA environments (DEV, QAS, PRD) with proper roles, and the answer to question 1 is Yes, as this is a pre-requisite.
The Technical Picture
In traditional ABAP world, we are used to think of solutions as one big box which handles it all (Logic/Data/UI). Now with (not anymore so) modern SAP technologies such as SAP Fiori or SAP BTP, we need to conceive solutions as decoupled, modularized and decentralized. This layers are connected through a service, which in SAP Realms, implements the OData Protocol.
Before – Monolithic:
◉ Logic: Classic ABAP SE38 Report/Module Pool
◉ Data: Inside the report (ABAP+OpenSQL)
◉ UI: Inside the report (ABAP ALV / Dynpros)
Now – Layers/Modules:
◉ Logic Layer: ABAP Class/Methods (or any other backend tech)*
◉ Data Layer: Same as before, or CDS Views (or any other DB Provider)*
◉ UI Layer: Fiori App (or any other Frontend Framework)
◉ Service Layer: OData Service or any other implementation (HTTP-Rest/SOAP)
*These two layers can be combined into one, if we generate an oData Service from a published CDS View.
To clean up, we are on a End-To-End Fiori-ABAP scenario, in which we have a SAP Fiori App that may/may not be running on a standalone Frontend server, and some custom OData implementation running on a Backend server (probably an S/4HANA instance).
The Challenge
I have summarized key things we need to know to make this possible, and that probably we don’t:
1. If the Fiori App is running on a standalone Frontend server, and which is this system.
2. Technical name of the OData service
3. Which is the Backend server the Fiori App is taking the data from
4. Technical name of the service entity which is being queried/updated/created
5. The root cause of the issue
Let’s answer questions 1 to 5. First of all we want to know if where are our SAP Fiori App, OData service and backend logic running. So..
1. Where is Fiori Running?
OData Services may be published and activated in a dedicated envinronment (Frontend server). If this was the case, we need to find the service in the service catalog to verify which is the Backend System that it is pointing to. Remember: we were given no information about this, so here is how we can find out:
Retrieving System ID by checking Fiori URL
Sometimes the hostname hides the System ID of the server. We will look for a pattern which may indicate that. In this example, the hostname is xxxgwd.xx.xx.com. GWD might be our System ID. Otherwise we should ask to a basis consultant or architect.
No comments:
Post a Comment