Troubleshooting Tips and Tricks Fiori for S/4HANA Jorge “Javier” Baltazar November 2017 Fiori for S/4HANA Troubleshooting Tips and Tricks Fiori Troubleshooting: ➢ • Learn the basics • Most Common Errors – Examples • Authorizations – CDS views • Identify what’s being consumed by the services • Enterprise Search • Webdispatcher • Webdynpro • WebGUI • Always remember these facts and transactions Fiori Performance ➢ • Tips and Tricks © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 2 Fiori Troubleshooting Learn the basics Learn the basics Fiori Integration Flow NW 7.5x RFC NW 7.5x SAP Backend SAP Frontend HTTP(S) UI5 Add-ons Web dispatcher HTTP(S) HTTP(S) Webdynpro & ESH HDB Intranet DMZ ▪ SAP Backend contains RFC functions, Odata Models, CDS Views and Webdynpro objects. ▪ These development objects contain the business logic to perform any business function in SAP. ▪ Frontend server consumes these objects and exposes them through web services. ▪ Frontend server consumes web services by implementing a UI layer based on Html5, javascript, xml. ▪ Exposes UI layer web services for remote access through public internet ▪ Handles cross-domain requests ▪ URL redirect, filtering, rewriting ▪ Can connect to the backend or frontend ▪ Masks internal server names © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ Internet ▪ Consume apps 4 Learn the basics Understand the S/4HANA ABAP Programming Model for Fiori Fiori Launchpad User Interface (Fiori) OData Service Application (ABAP | CDS) Database Table © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ SAP Fiori is a collection of apps with a simple and easy-touse experience for broadly used SAP software functions that work seamlessly across devices – desktop, tablet, and smartphone. OData (Open Data Protocol) is an OASIS standard that defines the best practice for building and consuming RESTful APIs. CDS (Core Data Services) CDS is an enhancement of SQL which provides a data definition language (DDL) for defining semantically rich database tables/views (CDS entities) in the database. The enhancements include annotations, associations, and expressions 5 Learn the basics U Understand the S/4HANA ABAP Programming Model for Fiori Fiori Launchpad User Interface (Fiori) Rendering errors Wrong app routing Wrong app navigation Missing tiles Missing Frontend Authorizations High UI load times OData Service Application (ABAP | CDS) Database Table © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 6 Learn the basics Understand the S/4HANA ABAP Programming Model for Fiori Fiori Launchpad User Interface (Fiori) Inactive OData services OData Service Inactive CDS views (DCL, DDL) ABAP coding error Inactive ABAP objects Application (ABAP | CDS) Inactive Business Functions Missing / Wrong Functional configurations Missing Backend Authorizations High OData response times Database Table © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 7 Learn the basics Understand the S/4HANA ABAP Programming Model for Fiori Fiori Launchpad User Interface (Fiori) OData Service Application (ABAP | CDS) Data inconsistencies Database Table Errors in data replication No data © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 8 Learn the basics How to start a troubleshooting session? 1. Always start by reviewing available information in Fiori Apps Library You need to obtain: ✓ Frontend/Backend Role ✓ Business Catalog/Group ✓ Application Type (UI5, Webdynpro, WebGUI) ✓ ICF Nodes ✓ Search Connectors ✓ Mandatory SAP Notes © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 9 Learn the basics How to start a troubleshooting session? 2. As a minimum prerequisite you must assign the required roles to the analysis user. 3. Log on to Fiori Launchpad and identify the object that is causing the error. 4. Open the browser’s “Developer Tools” © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 10 Learn the basics How to start a troubleshooting session? 5. Once the “Developer Tools” are open, clear the “Developer Tools” logs and do a webpage refresh as you will notice errors that may not correspond to the context of your app. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 11 Learn the basics How to start a troubleshooting session? 6. With the logs cleared, try to replicate the error conditions. Tip: Always check the Network and Console section of the “Developer Tools”, they will offer valuable details of the error. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 12 Learn the basics How to start a troubleshooting session? 7. In the console area, analyze the error texts… Might not look like, but the error tells us a lot: OData call error in service: OData collection/entity: OData operation: Preliminary analysis: © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ ISU_BI_OUTSRTD_RESOLVE C_OutsrtUtilsBillgDoc Count OData service is not active or configuration is missing, additionally a CDS view may be involved 13 Learn the basics How to start a troubleshooting session? 8. In the network area select the entry in red, navigate to the preview tab and expand the error details to find the “Error Message”. By reading the error message we can understand that there is a missing system alias assignment for service ISU_BI_OUTSRTD_RESOLVE, this confirms our preliminary analysis. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 14 Learn the basics How to start a troubleshooting session? 9. Perform corrective measures… © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 15 Learn the basics How to start a troubleshooting session? 10. Test and validate behaviour. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 16 Learn the basics How to start a troubleshooting session? 11. Troubleshooting never stops… © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 17 Learn the basics How to start a troubleshooting session? 12. Repeat steps 4-10 Preliminary analysis: SICF node is not active © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 18 Learn the basics How to start a troubleshooting session? 12. Keep troubleshooting… In this scenario we know there is no data in the system so troubleshooting is finished © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 19 Fiori Troubleshooting Most Common Errors – Examples Most Common Errors – Examples Clearing Cache In Fiori application, there is a persistence layer that uses caching mechanism. To begin every troubleshooting session, recommendation is to “Always clear the cache” – Clear Metadata Cache: ▫ Transaction /IWFND/CACHE_CLEANUP on Frontend Server ▫ Transaction /IWBEP/CACHE_CLEANUP on Backend Server – Synchronize Chip Cache (Frontend): ▫ Run report: /UI2/CHIP_SYNCHRONIZE_CACHE ▫ Run report: /UI2/DELETE_CACHE_AFTER_IMP or /UI2/DELETE_CACHE © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 21 Most Common Errors – Examples OData Services not active Hint: Error loading tiles, error “403” Resolution Steps: – Use task list “SAP_GATEWAY_ACTIVATE_OData_SERV to activate missing service Manual Step: – Transaction /n/IWFND/MAINT_SERVICE © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 22 Most Common Errors – Examples OData Services not active Hint: Factsheet is not displayed, error “403” Resolution Steps: – Use task list “SAP_GATEWAY_ACTIVATE_OData_SERV to activate missing service – SICF service will get activated as part of the task list Manual Step: – Transaction /n/IWFND/MAINT_SERVICE © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 23 Most Common Errors – Examples OData Services not active Hint: OData call error, “No service found for namespace” Resolution Steps: – Use task list “SAP_GATEWAY_ACTIVATE_OData_SERV to activate missing service – SICF service will get activated as part of the task list Manual Step: – Transaction /n/IWFND/MAINT_SERVICE © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 24 Most Common Errors – Examples Backend Authorization Issue Hint: Request failed, error “500” Resolution Steps: – In the backend server, the S_RFCACL authorization object is missing in the user – Logon to backend server and assign the authorization object to the end user © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 25 Most Common Errors – Examples Web Dynpro and/or Web Gui Hint: Launchpad Designer, “Reference lost” Resolution Steps: – Logon to frontend server and run program /UI2/GET_APP_DESCR_REMOTE – Run for Catalog ID in test mode – Run for Catalog ID in non test mode 2269272 - "Reference Lost" Error for FLP Tiles after applying new UI component version http://service.sap.com/sap/support/no tes/2269272 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 26 Fiori Troubleshooting Authorizations – CDS Views Fiori Troubleshooting Authorizations – CDS Views Starting in S/4HANA 1511 many Fiori Applications make use of Service Adaptation Definition Language (SADL) based OData services in order to consume and expose CDS views SADL models are entities that are used in business applications – for example, business objects, database tables, search views. A SADL model is a data model like: ▪ DDIC tables or views ▪ CDS ▪ BOPF The authorization enforcement in this process is interposed between query specification by application or end user and data retrieval from the database Blog: Fiori for S/4HANA – Troubleshooting Authorization concept in SADL based OData Services © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 28 Fiori Troubleshooting Authorizations – CDS Views 1. Identify the OData request executed by the app using your browser’s developer tools. In this example: OData Service: MM_PUR_PO_MAINTAIN Collection: POHeaderLists © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 29 Fiori Troubleshooting Authorizations – CDS Views 2. Based on the collection, try to identify if the ABAP code implements SADL Navigate to the implementation class using transaction /IWFND/MAINT_SERVICE, select the required service and click in the “Service Implementation” button. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 30 Fiori Troubleshooting Authorizations – CDS Views 3. Once the service details are displayed, double click on the “Data Provider Class” name. Try to identify any reference to CDS coding. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 31 Fiori Troubleshooting Authorizations – CDS Views 4. Once you confirm that the OData service consumes a CDS view navigate to transaction SEGW and identify the associated CDS. In this example: C_PURORDMAINTAINHEADER LIST © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 32 Fiori Troubleshooting Authorizations – CDS Views 5. Using ADT, find the required CDS view and open the “Access Control” object. In this example: C_PURORDMAINTAINHEADER LIST © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 33 Fiori Troubleshooting Authorizations – CDS Views 6. The “Access Control” object will display the required authorization objects. In this example: C_PURORDMAINTAINHEADER LIST © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 34 Fiori Troubleshooting Authorizations – CDS Views 7. In transaction PFCG generate a new role with the required authorization objects. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 35 Fiori Troubleshooting Authorizations – CDS Views 8. In transaction SACM use the Runtime Simulator. Enter the name of the CDS view you wish to test and the user whose authorizations need to be checked. Tip: You can skip steps 5–7 and jump directly to transaction SACM to identify the required authorization objects © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 36 Fiori Troubleshooting Authorizations – CDS Views 9. When you run the simulator you will notice the required authorization objects and the values used for the query execution Notice that a result list will be displayed and you will be able to identify any clashing authorization definitions . © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 37 Fiori Troubleshooting Identify what’s being consumed by the services Fiori Troubleshooting Identify what’s being consumed by the services The first step to troubleshoot an OData service is to identify which objects will be consumed by the service. However, not all OData services are the same, we can classify them depending on the artifacts they consume: ➢ Enterprise Search ➢ CDS view ➢ ABAP Depending on the objects that are being consumed you will need to define the troubleshooting path. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 39 Fiori Troubleshooting Identify what’s being consumed by the services Enterprise Search You can easily find them as the technical name of the service starts with prefix: “CB_” 1 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 40 Fiori Troubleshooting Identify what’s being consumed by the services Enterprise Search 2 3 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 41 Fiori Troubleshooting Identify what’s being consumed by the services Enterprise Search 4 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 42 Fiori Troubleshooting Identify what’s being consumed by the services CDS There are two ways to identify these type of services. The first one, when the technical name of the service starts with prefix: “C_” and ends with suffix: “_SRV” 1 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 43 Fiori Troubleshooting Identify what’s being consumed by the services CDS 2 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 3 44 Fiori Troubleshooting Identify what’s being consumed by the services CDS 4 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 45 Fiori Troubleshooting Identify what’s being consumed by the services CDS There are two ways to identify these type of services. The second one, when the technical name of the service starts with prefix: “C_” and ends with suffix: “_CDS” 1 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 46 Fiori Troubleshooting Identify what’s being consumed by the services CDS 2 Tip: This implies that the OData services was generated using the annotation “@OData.publish: true” © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 47 Fiori Troubleshooting Identify what’s being consumed by the services ABAP Easiest to identify, technical service name does not start with “C_” or “CB_” 1 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 48 Fiori Troubleshooting Identify what’s being consumed by the services ABAP 2 3 Tip: Note that an entity (collection) in this type of service may end up consuming a CDS view. This will depend on how the service model was defined. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 49 Fiori Troubleshooting Identify what’s being consumed by the services ABAP 4 Tip: Add an “External Breakpoint” to the code to perform debugging sessions © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 50 Fiori Troubleshooting Enterprise Search Fiori Troubleshooting Enterprise Search Transaction STC02: – During the configuration of task list, transaction STC01 was used to execute each task lists from the configuration guide. – If for some reason, you logoff after saving a task list run, you can go back and modify a save task list run with transaction STC02 to search for it. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 52 Fiori Troubleshooting Enterprise Search Easiest way to troubleshoot enterprise search is by using transaction: ESH_TEST_SEARCH © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 53 Fiori Troubleshooting Enterprise Search Easiest way to troubleshoot enterprise search is by using transaction: ESH_TEST_SEARCH © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 54 Fiori Troubleshooting Webdispatcher Fiori Troubleshooting Webdispatcher To troubleshoot Webdispatcher you need OS access or a Webdispatcher Visual Administration user. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 56 Fiori Troubleshooting Webdispatcher Check Configuration Profile (OS level only) © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 57 Fiori Troubleshooting Webdispatcher Analyze Webdispatcher Logs (OS level) © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 58 Fiori Troubleshooting Webdispatcher Analyze Webdispatcher Logs (Visual Administration) © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 59 Fiori Troubleshooting Webdynpro Fiori Troubleshooting Webdynpro General Steps: 1. Make sure you are using a supported browser based on the backend system's SP level: Browser supporting 2. While running a debugging session, make sure the webdynpro content calls are being redirected to the backend server. An important number of issues are caused by incorrect url dispatching. 3. Check the Common Issues, maybe it is already a known problem. 4. Run the webdynpro application without any outer framework (Portal, NWBC) and check if the issue persists that way. • 5. Look for notes using the keywords provided in the dump, or using the class and method involved in the application. • • 6. 2083790 - How to test a function outside NWBC environment How to find a solution for short dumps from ST22 If no relevant results are displayed, run a new search removing the filter by component. Check the WDABAP Home page for other troubleshooting guides and analysis documents. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 61 Fiori Troubleshooting Webdynpro Issue not solved, what needs to be provided when opening an Incident: • URL of the Web Dynpro application • Step-by-step description with screenshots about the exact reproduction of the issue. • HTTPWatch trace of the issue being reproduced. For more details on the HTTPWatch or Fiddler traces, please refer to Tools • Screenshot of the report WDG_MAINTAIN_UR_MIMES ran from transaction SE38. • If possible open R/3 and HTTP connections to the system. For the HTTP connection the URL must be set to the affected application. e.g. http://yourdomain.com/sap/bc/webdynpro/sap/wdapplication For more details on how to open the connections please refer to SAP Notes: • HTTP - according to SAP Note 592085 • R/3 - according to SAP Note 812732 • Store Customer logon data in Secure Area - according to SAP Note 508140 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 62 Fiori Troubleshooting WebGUI Fiori Troubleshooting WebGUI Most of the problems can be solved by following the below 5 STEPS in the affected system: 1. Configuration and Routing • • • • 2. While running a debugging session, make sure the WebGUI content calls are being redirected to the backend server. An important number of issues are caused by incorrect url dispatching. If you are using App Finder or App Descriptors make sure the configuration and required notes have been set up properly Step-by-step guide to enable Transactions in Fiori Launchpad using Application Descriptors in S4HANA On-Premise Step-by-step guide to enable Easy Access Menu in S-4HANA OnPremise Latest Kernel • • • Try using the latest kernel version available. Component "disp+work" should be checked. Click here for more details on ITS-fixes delivered in the latest kernel © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 64 Fiori Troubleshooting WebGUI 3. Latest CL_HTTP_EXT_ITS • • 4. Review ITS Service Configuration (GUI Configuration). • • • 5. The first point when an HTTP request meets the ITS layer is the ITS HTTP request handler, called CL_HTTP_EXT_ITS. This handler class is very important, because it is responsible to build ITS frameset. The ITS frameset handles session management, XSRF protection, correct page sizing, parameter handling, rendering modes and more features. Newer versions of the class CL_HTTP_EXT_ITS are always delivered in the latest BASIS Support Packages (SAP_BASIS, SAPKB... or SAPK-...INSAPBASIS). But in certain cases it is also possible to apply correction instructions via transaction SNOTE for this class. In order to use the latest version of the handler (CL_HTTP_EXT_ITS), please apply the appropriate SAP Note and all of its prerequisites. Are the used GUI Parameters correct? Check ITS related profile parameters. Learn more about ITS feature flags: List of Features Special Cases and Troubleshooting Tools • If you believe, that all of the above are correct (i.e. latest kernel, latest handler and correct configuration), go trough the special cases and troubleshooting tools in the ITS Troubleshooting Guide. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 65 Fiori Troubleshooting Always remember these facts and transactions Troubleshooting Always remember these facts and transactions 1. Understand Landscape Architecture: – Transactional Apps implement OData calls from the Frontend server but Webdynpro and Object Page require a direct connection the Backend server. – Several RFC connections are required. ▫ Firewall adjustments may be needed in complex network architectures. 2. Catalog Replication / Index Calculation: – Set up Fiori Catalog Replication and Index Calculation jobs to run at least once a day, this will make sure that Catalog and Application ID status is consistent. ▫ Report /UI5/APP_INDEX_CALCULATE ▫ Report /UI2/GET_APP_DESCR_REMOTE 3. Update UI libraries: –Important corrections are delivered in UI libraries (+1.40.x) that will help stabilize Fiori apps. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 67 Troubleshooting Always remember these facts and transactions 4. One frontend for multiple backends: Backend Frontend 100 100 200 200 300 300 Launchpad – In this case, try to maintain 1 frontend client per backend client within the same landscape. 5. Security: – Enabling trust relationship between the frontend and backend server requires all users to possess authorization object: S_RFCACL – Replication of user ID’s between frontend and backend clients is required. Backend ID: JOHNDOE Auth. Obj. S_RFCACL © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ Frontend Sys. Trust ID: JOHNDOE Auth. Obj. S_RFCACL 68 Troubleshooting Always remember these facts and transactions 6. Know your troubleshooting tools: Tools Description /IWFND/MAINT_SERVICES (transaction) OData Frontend Service Activation / Alias Assignment / SICF(/sap/opu/OData/sap) /IWBEP/ERROR_LOG (transaction) OData Backend Error Log /IWFND/ERROR_LOG (transaction) OData Frontend Error Log /IWFND/GW_CLIENT (transaction) OData Frontend Service Execution SE80, SE37, SE38 (transaction) ABAP Object/Code Analysis Chrome Browser Chrome Browser Developer Tools works best for troubleshooting OData Browser Debugging Add parameter: “?sap-ds-debug=true” to OData calls SACM Troubleshoot CDS Authorizations 1797736 – Troubleshooting Guide for SAP NetWeaver Gateway © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 69 Troubleshooting Always remember these facts and transactions 7. Useful reports for FLP checks and system alias: © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 70 Troubleshooting Always remember these facts and transactions 8. Many issues relate to cached content. – Make sure to delete cache in case of issues and also particularly after deployment of corrections / FPS. Run report /UI2/INVALIDATE_GLOBAL_CACHES to clear the FLP caches. 9. Intents (combination of semantic object and action) not resolving. – Make use of FLP Intent Resolution Analyzer (TA code /UI2/FLIA) 10. Data missing in app typically related to Authorizations. – TA code SU53 for authorization traces (see SAP Note 2147808) © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 71 Fiori Performance Tips and Tricks Fiori Performance Tips and Tricks Understanding the overall architecture of the solution is key to identify performance issues because in the Fiori architecture, your browser is directly accessing the back-end via each Fiori tile. Each tile on the FLP is making numerous calls to (and receiving) data from the server, which can cause latency issues. Note that when referring to the backends in the S/4HANA model we are talking about the integration between 3 main components: • Web Dispatcher • Frontend Server • Backend Server Depending on the network configurations of these servers, network performance issues may arise. Blog: Fiori for S/4HANA – Performance tips and Tricks in S/4HANA 1610 On-Premise © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 73 Fiori Performance Tips and Tricks You will find some cases where performance issues may go deep into code or network debugging, however, there are some quick actions you can take in every project to ensure the best performance of your Fiori Launchpad (FLP). We will list some performance tips and tricks for all your current implementations Blog: Fiori for S/4HANA – Performance tips and Tricks in S/4HANA On-Premise © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 74 Fiori Performance Tips and Tricks Use what you need ✓ The more tiles you have on your FLP, the longer it will take to load ✓ To lessen any latency issues, only add the tiles you need. ✓ It is recommended that you do not exceed 7x7 (49 tiles) per FLP group, also notice the more catalogs you have assigned, the longer it’s going to take to load the home screen. ✓ Go through Design Thinking workshops at the early stages of the project in order to build “Personas” which will later help you define the required business roles © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 75 Fiori Performance Tips and Tricks All tiles are not equal © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ ✓ KPI and dynamic tiles have a bigger impact on bandwidth, as they are in constant communication with the back-end servers to update. ✓ Static tiles do not change; once they are loaded onto the FLP, they are not making any additional “calls” to update. ✓ For KPI and dynamic tiles try to define a refresh interval or cache duration suitable to your end user needs and SAP landscape capabilities. 76 Fiori Performance Tips and Tricks All tiles are not equal - UPDATE ✓ Analytical apps in S/4 HANA may cause expensive analytical queries to be executed in SAP HANA. While with SAP HANA incredible on-the-fly calculations are possible, there are still some boundaries in the amount of data that can be processed in a reasonable time ✓ KPI’s based on CDS views can be cached via “View Result Caches” • • • • © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ Note 2337199 Requires “altering” views directly in HANA Requires implementation of Badi: BADI_DEF_CDS_VIEW_CACHE_REACT Available for a limited number of CDS views 77 Fiori Performance Tips and Tricks Introducing Tab Bar Navigation ✓ This feature changes the interaction of the end user with FLP as tiles are displayed per group. ✓ Can be switched on for all users by the system administrator or enabled through user personalization. Blog: Fiori for S/4HANA – What is Tab Bar? © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 78 Fiori Performance Tips and Tricks Introducing CDN (Content Delivery Network) ✓ One of the main reasons for slow performance is the fact that the SAP UI5 libraries are located in the ABAP Front-end Server (FES), when the Fiori web page is rendered it needs to make a call to the ABAP FES to load the JavaScript libraries. In high-latency networks this results in high rendering time lapses which affect end-user performance. ✓ One way to overcome this situation is to load UI5 libraries from a Content Delivery Network (CDN, Akamai) which enables users to load the UI5 libraries from a network server closest to their current location. Blog: Fiori for S/4HANA – What is CDN? © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 79 Fiori Performance Tips and Tricks Take advantage of CDN and Tab Bar ✓ By mixing these two features you will be able to improve FLP performance around 40% © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 80 Fiori Performance Tips and Tricks Improve Webdynpro, Webgui and App Finder performance ✓ Webdynpro, Webgui and App Finder Check kernel version and try to update as this is required by the new unified rendering concept. ✓ To load Webdynpro or Webgui apps FLP uses the NWBC runtime, it is recommended to update NWBC runtime by implementing the following notes in order: • • • ✓ 2408184 2405259 2433839 Try running report /UI2/NWBC_DELETE_MENU_CACHE every now and then as you may find wrong entries in table /UI2/NWBC_NAV_TR (column NWBC_VERSION will have the value “LOADING”). © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 81 Fiori Performance Tips and Tricks Improve Webdynpro, Webgui and App Finder performance - UPDATE ✓ As of August 25th, 2017 you no longer need to update the entire kernel package. ✓ A new package, called sapwebgui, is now delivered. It contains only the WEBGUI related files. ✓ If you have interest in this new approach, then you can find more information in KBA 2221289 (How to install package sapwebgui). Blog: Sapwebgui Package Now Available © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 82 Fiori Performance Tips and Tricks Improve OData performance ✓ In some very specific cases you will find that OData requests execution time is longer than expected. ✓ This will usually occur for OData services that expose very large data sets. If this is the case, you can try configuring OData services in Co-deployed mode. Blog: How to take advantage of the performance improvements in SAP Gateway in SAP NetWeaver 7.50 SP04 © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 83 Fiori Performance Tips and Tricks Make sure your browser’s cache is optimized ✓ Ensure your browser cache settings are optimized for maximum performance and try not to use any settings that bypass the browser cache: • • • • • • ✓ © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ Do not run the Fiori Launchpad in private mode Select a sufficient cache size limit Do not clear the cache history automatically when the browser closes Enable browser caching Do not disable the browser cache in the browser developer tools Enable HTTP compression You can find a detailed how-to document describing these settings in all three major browsers (Chrome, Firefox, Internet Explorer) in note 2447857 84 Fiori Performance Tips and Tricks Get the right Certificates (HTTPS) ✓ Make sure HTTPS connectivity is correctly setup. Monitor this in the browser’s dev tools – network tab. ✓ If you are using self-signed certificates or your certificate has not been signed by a valid Certificate Authority (CA) you will face performance issues as any error with the certificate means that the webpage will not be loaded. You can find additional details here and here. ✓ Note that versions 58 or higher of Chrome now mandatorily require that the SAN (Subject Alternative Name) field of the server’s SSL certificate is correctly populated, you’ll find the detailed issue and resolution in this blog. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ 85 Fiori Performance Tips and Tricks Still facing performance issues? © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ ✓ Take a look at note 2471635, you will find some common performance issues and their solution. ✓ Note that some solutions may require additional development efforts. 86 R EGIONAL I MPLEMENTATION G ROUP Thank you! Jorge “Javier” Baltazar © 2017 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies. See http://global.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.