Tips and tricks for optimizing performance in SAP Screen Personas. Learn how to design screens so they load quickly. Understand how caching / pre-fetching affects performance. See what role the ITS plays and how to size it correctly.
3. SAP Screen Personas Performance Optimization Guide
Icons in Body Text
Icon
Meaning
Caution
Example
Note
Recommendation
Syntax
Additional icons are used in SAP Library documentation to help you identify different types of information at a glance. For more information, see Help on Help → General Information Classes and Information Classes for Business Information Warehouse on the first page of any version of SAP Library.
Typographic Conventions
Type Style
Description
Example text
Words or characters quoted from the screen. These include field names, screen titles, pushbuttons labels, menu names, menu paths, and menu options.
Cross-references to other documentation.
Example text
Emphasized words or phrases in body text, graphic titles, and table titles.
EXAMPLE TEXT
Technical names of system objects. These include report names, program names, transaction codes, table names, and key concepts of a programming language when they are surrounded by body text, for example, SELECT and INCLUDE.
Example text
Output on the screen. This includes file and directory names and their paths, messages, names of variables and parameters, source text, and names of installation, upgrade and database tools.
Example text
Exact user entry. These are words or characters that you enter in the system exactly as they appear in the documentation.
<Example text>
Variable user entry. Angle brackets indicate that you replace these words and characters with appropriate entries to make entries in the system.
EXAMPLE TEXT
Keys on the keyboard, for example, F2 or ENTER.
4. SAP Screen Personas Performance Optimization Guide
Contents
1 About this Document ............................................................................................................................ 1
1.1 Purpose and Scope ........................................................................................................................ 1
1.1.1 Prerequisites ......................................................................................................................... 1
1.1.2 SAP Screen Personas Features .............................................................................................. 1
1.1.3 Constraints ............................................................................................................................ 1
1.2 Target Audience ............................................................................................................................ 1
1.3 Glossary ......................................................................................................................................... 2
1.4 Related Information ...................................................................................................................... 2
1.4.1 Further Useful Links .............................................................................................................. 3
1.4.2 Related Master Guides .......................................................................................................... 3
1.4.3 Important SAP Notes............................................................................................................. 4
1.4.4 SAP Screen Personas Documentation Guide ........................................................................ 4
1.4.5 Useful Links ........................................................................................................................... 5
2 Introduction .......................................................................................................................................... 6
3 Overview of architecture in context of performance ........................................................................... 7
3.1 Diagram ......................................................................................................................................... 7
3.2 Description of each component and role it plays ......................................................................... 8
3.3 SAP GUI vs. WEB GUI vs. SAP Screen Personas ........................................................................... 10
4 Factors that influence Performance ................................................................................................... 13
4.1 General – Amount of information on the screen ....................................................................... 13
4.2 Data and Data Volume ................................................................................................................ 14
4.3 Images ......................................................................................................................................... 19
4.4 Screen Resolution ....................................................................................................................... 19
4.5 OnCreateHandler ........................................................................................................................ 20
4.6 Removing Flavor Change History ................................................................................................ 20
5. SAP Screen Personas Performance Optimization Guide
4.7 WebRFC vs. Scripting .................................................................................................................. 20
4.8 SAP/ITS/Infrastructure ................................................................................................................ 21
4.8.1 ITS Sizing .............................................................................................................................. 21
4.8.2 Sizing the Memory .............................................................................................................. 21
5 Final Recommendations...................................................................................................................... 25
6 Appendix ............................................................................................................................................. 26
6.1 Appendix: Using a WebRFC ........................................................................................................ 26
6.2 Appendix: Transaction Variant ................................................................................................... 30
7 How to Open an OSS message ............................................................................................................ 32
6. SAP Screen Personas Performance Optimization Guide
1 About this Document
1.1 Purpose and Scope
The performance Optimization Guide describes the best practices on how to optimize the performance of the SAP Screen Personas 2.0.
1.1.1 Prerequisites
● SAP Kernel with release 721 or release 740 or higher installation basis
● SAP NetWeaver 7.0 or enhancement packages of 7.0
● SAP Basis (SAP_BASIS)
● Install the latest version of Silverlight version 5.0 UI technology (browser plug-in) from Microsoft in the client machines to render rich internet content.
Please see Master Guide (https://websmp106.sap-ag.de/instguides) for a full list of pre- requisites.
1.1.2 SAP Screen Personas Features
● Render and personalize SAP Web Dynpro screens in a web browser
● Deliver screen modifications in a fast and cost-effective way, without any programming
● Align user interfaces to business user needs and personal work styles
● Reduce screen clutter for business users, allowing them to access only the data they need to transact business
● Add extra information to screens through labels, tooltips, and sticky notes
● Add images, web content, or shortcut buttons that start transactions from the screen
1.1.3 Constraints
This component supports solutions using SAP GUI screens and no other screens.
1.2 Target Audience
This document is intended for the following target audiences:
• Consultants
• Partners
• Customers
• System Administrators
• Support Specialists
1
7. SAP Screen Personas Performance Optimization Guide
Glossary
Definition
SAP application
An SAP software solution that serves a specific business area, for example, ERP, CRM, PLM, SRM, SCM
Business
Scenario
From a microeconomic perspective, a business scenario is a cycle that consists of several interconnected logical processes in time. Typically, a business scenario includes several company departments and involves other business partners.
From a technical point of view, a business scenario needs at least one SAP
application (SAP ERP, SAP SCM, or others) for each cycle and possibly other
third-party systems. A business scenario is a unit that can be implemented separately and reflects the customer’s prospective course of business.
Component
The smallest individual unit considered within the Solution Development
Lifecycle.
Components are separately produced, delivered, installed and maintained.
Flavor
‘Flavor’ in SAP Screen Personas identifies a specific personalization for a particular SAP
transaction. So a Personas Flavor is always linked to a specific SAP transaction (example VA01). On the other hand, one particular SAP transaction can have infinite number of flavors.
User
Business user who uses any SAP transaction with SAP Screen Personas personalization.
Admin User
A user who does and supports configuration and other system activities to support business users.
1.4 Related Information
For more information about planning topics not covered in this guide, see the following content on SAP Service Marketplace:
Content
Location on SAP Service Marketplace
Latest versions of Configuration Documentation and Master Guide
http://service.sap.com/instguides
→ Focused Business Solutions
→ SAP Screen Personas
→ SAP Screen Personas 2.0
Application help for SAP Screen Personas
http://help.sap.com/personas
SAP Service Market Place
(SAP Screen Personas Installation and Upgrades)
http://service.sap.com/
Sizing, calculation of hardware requirements - such as CPU, disk and memory resource - with the Quick Sizer tool
http://service.sap.com/quicksizer
Released platforms and technology- related topics such as maintenance
http://service.sap.com/platforms
To access the Platform Availability Matrix directly, enter 2
8. SAP Screen Personas Performance Optimization Guide
strategies and language support
http://service.sap.com/pam
Network security
http://service.sap.com/securityguide
High Availability
http://scn.sap.com/docs/DOC-7848
Performance
http://service.sap.com/performance
Information about Support Package Stacks, latest software versions and patch level requirements
http://service.sap.com/sp-stacks
Information about Unicode technology
http://scn.sap.com/community/internationalization-and- unicode
1.4.1 Further Useful Links
The following table lists further useful links on SAP Service Marketplace:
Content
Location on SAP Service Marketplace
Information about creating error messages
http://service.sap.com/message
SAP Notes search
http://service.sap.com/notes
SAP Software Distribution Center (software download and ordering of software)
http://service.sap.com/swdc
SAP Online Knowledge Products (OKPs) – role- specific Learning Maps
http://service.sap.com/rkt
1.4.2 Related Master Guides
This Master Guide is based on Master Guides for cross-industry applications. You can find more information about the relevant applications in the following documents:
Title
Location
Master Guide - SAP ERP 6.0
http://service.sap.com/instguides
→ SAP Business Suite Applications
→ SAP ERP
→ SAP ERP 6.0
→ Planning
SAP NetWeaver
http://service.sap.com/instguides
→ SAP NetWeaver
→ SAP NetWeaver 7.4
→ Planning
3
9. SAP Screen Personas Performance Optimization Guide
1.4.3 Important SAP Notes
Latest Notes that are released can be found on this SCN Blog:
http://scn.sap.com/community/gui/blog/2013/08/28/sap-screen-personas--how-to-configure-the- system-troubleshooting-faq
SAP Note Number
Title
Description
1776739
Installation Note for SAP
Screen Personas 2.0
The note contains information about planning the installations of upgrades of the ABAP add on PERSOS.
https://service.sap.com/sap/support/notes/1776739
1848339
Installation and Upgrade note for SAP Screen Personas (Silverlight)
This note contains information on the steps for installing and getting started for both new and existing customers.
https://service.sap.com/sap/support/notes/1848339
1885334
Feature List for Silverlight
Feature list for SAP Screen Personas Release 2.0 Silverlight
https://service.sap.com/sap/support/notes/1885334
1869640
Client copy of SAP Screen Personas delivered customizing
After SAP Screen Personas installation, all the SAP delivered customizing is present in client 000.
https://service.sap.com/sap/support/notes/1869640
1.4.4 SAP Screen Personas Documentation Guide
The following documentation will allow you to obtain the most value from your investment in SAP Screen Personas.
Name
Purpose
Location
Audience
Configuration Document 2.0_SP2
This document provides configuration information for the Silverlight and HTML components of SAP Screen Personas 2.0 and includes additional information of the Support Pack SP02.
It also describes all activities necessary for the implementation and configuration of SAP Screen Personas.
https://websmp106.sap-ag.de/instguides
SAP basis team
Master Guide 2.0_SP02
This Master Guide is the central starting point for the technical implementation of the SAP Screen Personas solution. You can find cross-scenario implementation information as well as scenario-specific information in this guide.
https://websmp106.sap-ag.de/instguides
SAP Screen Personas administrators, enterprise application team 4
10. SAP Screen Personas Performance Optimization Guide
Users Guide
The user guide is a central starting point for SAP Screen Personas. The documenting is regularly updated with new information.
http://scn.sap.com/docs/DOC-54574
Under: Technical Documentation
Enterprise application team, key users, screen designers, business analysts
SAP Screen Personas Optimization Guide
The performance optimization guide describes the best practices that are relevant to SAP Screen Personas. The document is regularly updated with new information.
http://scn.sap.com/docs/DOC-54574
Under: Technical Documentation
Enterprise application team, key users, screen designers, application developers
SAP Screen Personas Configuration Addendum
The addendum to the Configuration guide but with more details and screen shots. This document is regularly updated with new information.
http://scn.sap.com/docs/DOC-54574
Under: Technical Documentation
Enterprise application team, key users, screen designers, application developers
1.4.5 Useful Links
Name
Purpose
Location
SAP Personas Application Help
High level help that explains SAP Screen Personas Initialization, Flavors and Administration Transaction.
http://help.sap.com/saphelp_personas200_silverlight/helpdata/en/33/30f15101d9445ee10000000a423f68/frameset.htm
SAP Screen Persons – Getting Started on SCN
A compilation of links that has demo videos, SAP Screen Personas Basic, Scripting and Technical Documentation.
http://scn.sap.com/docs/DOC-54574
Myth vs. Truth Documentation
Outlines the Truth and Myth of SAP Screen Personas
http://www.sap.com/bin/sapcom/en_us/downloadasset.2014-04-apr-29-17.sap-screen- personas-myths-versus-truth-about-usability- and-the-user-experience-pdf.bypassReg.html
Fiori Design for SAP Screen Personas
How to make SAP Screen Personas look like Fiori
http://experience.sap.com/fiori- guidelines/#FioriDesign
5
11. SAP Screen Personas Performance Optimization Guide
2 Introduction
SAP Screen Personas is a tool to make users more productive on SAP Dynpro screens, which comprise over 10,000 discrete transactions. Productivity arises from personalizing screens for specific job roles. Screens that are more intuitive reduce overall time a user spends on executing a transaction and less room for errors improve user satisfaction.
If you just compare response times between SAP GUI, WebGUI and SAP Screen Personas, you will see that the SAP GUI is always faster than Personas or the WebGUI – this will not change. WebGUI and SAP Screen Personas should have a very similar response time, since they both rely on ITS (see below).
When you talk about SAP “performance,” you are considering a system that includes both user time and system time. To measure this, observe a SAP GUI user completing a transaction or series of transactions to complete a typical business process. We see some customers achieving gains of 70% or more on this metric.
By simplifying screens and streamlining transactions, you can significantly improve transaction throughput and reduce the number of data entry errors and the number of clicks. This is how Personas drives productivity through personalization.
The purpose of this document it to make sure that you understand all the factors that will help you to optimize the performance and provide optimal user experience for Personas flavors.
6
12. SAP Screen Personas Performance Optimization Guide
3 Overview of architecture in context of performance
3.1 Diagram
Picture 1: Architectural diagram
Standard SAP GUI - The Dynpro screens are fetched using proprietary DIAG protocol and rendered by the SAP GUI client.
SAP GUI for HTML (WebGUI) - SAP ITS (Internet Transaction Server) renders the Dynpro screen in the server and the resulting HTML is sent to the client browser over HTTP(S).
SAP Screen Personas - SAP ITS renders the Dynpro screen in the server and the resulting control tree is sent to SAP Screen Personas over HTTP(S). This is then merged with the flavor information from the server to render the desired flavor. For basic view, the flavors are not retrieved.
What is clear from the above is that the three clients use different strategies to retrieve and render the UI. What is also clear is that SAP Screen Personas is not rendering a new type of UI, but is essentially enhancing the Dynpro screen using the flavor information.
7
13. SAP Screen Personas Performance Optimization Guide
3.2 Description of each component and role it plays
1. SAP NetWeaver ABAP basis
This is a basis for all SAP products, and is part of the SAP NetWeaver installation.
2. Kernel / ITS
SAP Screen Personas utilizes the ITS as the interface to Dynpro applications, therefore it also relies on the performance of the ITS i.e. the RestGUI interface. To improve the performance of the ITS, always rely on the guidance you get from IMS.
The only requirement for such a system is that it has a 7.21 or 7.40 kernel. 7.21 is the minimum requirement for the Microsoft Silverlight-based Personas product, whereas the HTML version needs 7.40 or above. The kernel should also be on a relatively new patch level - in general, the latest available is preferred. Old patch levels will cause problems that have been corrected by later patches.
3. SAP Screen Personas add-on (installed on server)
The customer should be always on the latest service pack, which is SAP Screen Personas 1.0 SP3, and SAP Screen Personas 2.0 SP1 (at the time this document is written).
4. SAP Screen Personas application (runs in browser)
The client requires Silverlight 5 or above and a browser that supports Silverlight. This covers all main browsers on Windows XP/Vista/7/8 and MacOS. 8
14. SAP Screen Personas Performance Optimization Guide
For SAP Screen Personas to deliver intuitive screens that streamline how users interact with SAP, all of the components in the diagram work together as a complete system, as there are inter-dependencies among the components. For this reason, it is important to remain current on the latest versions of all the components. See the table below for how frequently Patches (Notes) are released for each component.
Component Name
What It Does
Typical Service Pack Release Frequency
Typical Patch (SAP Note) Frequency
Latest Version (as of Dec. 6, 2013)
SAP NetWeaver BASIS
The basis layer contains the ABAP components that are part of every SAP NetWeaver ABAP installation.
This is the foundation for all SAP ERP applications.
Approximately 3x per year
As needed, approximately 3-10 per month. You only need updates that address your issues
Basis 700 - SP24
or 701 - SP09
or 702 - SP07
Plus several SAP Screen Personas-relevant notes*
SAP kernel (Internet Transaction Server (ITS))
The kernel component disp+work contains a key component for SAP Screen Personas, the Internet Transaction Server.
ITS provides the standard SAP screen definitions for each transaction accessible for browsers. This is the same component that provides the screens for the SAP WebGUI.
Approximately 2x per year
Weekly patches, generally for security issues, but may also contain updates to support SAP Screen Personas
Kernel 7.21, Patch Level 201
SAP Screen Personas add-on
The SAP Screen Personas add-on stores the user- created (or IT-created) changes for each flavor. It sends the screen to the browser as an XML file, which the Silverlight application renders.
Approximately 4x per year
As needed, approximately bi- weekly
SAP Screen Personas 1.0 Service Pack 3
SAP Screen Personas 2.0 Service Pack 1
Plus several notes*
SAP Screen Personas client
This is a Silverlight application that runs in a browser.
Part of SAP Screen Personas add-on update cycle
Part of SAP Screen Personas add-on update cycle
Automatically updated from SAP Screen Personas add-on when user connects to Personas. Requires Silverlight 5 plug-in for browser 9
15. SAP Screen Personas Performance Optimization Guide
3.3 SAP GUI vs. WEB GUI vs. SAP Screen Personas
Many of the questions we receive about SAP Screen Personas relate to how this solution is connected to SAP GUI for Windows (SAP GUI) and SAP GUI for HTML (Web GUI).This determines the benchmark of how people perceive SAP Screen Personas in terms of functionality, performance, and usability.
Sometimes these inquiries expose inconsistencies among SAP GUI and Web GUI. This blog will discuss why some inconsistencies exist and why certain differences should be expected among the different members of the SAP GUI family. And, you will learn what to expect from SAP Screen Personas relative to the other SAP GUIs.
Architecture determines performance
Desktop applications such as SAP GUI (for Windows) and Web-based applications such as SAP Web GUI have completely different architectures. These architectural differences have a significant impact on rendering performance. Rendering differences are amplified by the size of the data set moving between the client and the server as SAP GUI and Web GUI have different channels and communication protocols for moving data between the client (or browser) and the server. In addition, compared to SAP GUI, the Web GUI has additional processing steps such as preparing XML for the browser, transferring data over the network, and rendering time. These steps take extra time, depending on the size of the data set being rendered on the screen. These are some of the reasons that SAP GUI is faster than Web GUI.
Minimize data flow to speed performance
To optimize performance, we recommend keeping the size of the data coming to the browser as small as possible, without compromising on the business flow. Using SAP Transaction variants (SHD0) is a great way to achieve this. This recommendation applies regardless of whether you are using SAP GUI, Web GUI, or SAP Screen Personas. SAP has documentation on how to achieve this.
Functionality similar, despite minor visual differences
Independent of SAP Screen Personas, there are some visual differences between SAP GUI and Web GUI. You can see that the SAP GUI (top) and Web GUI (bottom) have similar structure, but different buttons on the top. This can cause confusion for some users as they move between different ways to access transactions in SAP.
10
16. SAP Screen Personas Performance Optimization Guide
This behavior is similar on transaction screens. For example, in transaction SU01 (user maintenance), after I enter my user name (“PERSONAS” in this case), the action I need to take to access the main content is subtlety different.
11
17. SAP Screen Personas Performance Optimization Guide
But, while the top-level items are different (icons vs. labels), the icons inside the tab container are virtually identical. But, note the position of the “Assign Authorization Profiles” label. In SAP GUI, it is below the icons and in Web GUI it is above. Enough of a different to cause confusion? Probably not, but a visual difference, nevertheless.
Moving from SAP GUI to Web GUI or SAP Screen Personas may take some adjustment
Some of the differences go beyond purely visual. For example if you type the backspace key in SAP GUI, you will see a list of your most recent entries. If you perform the same action in Web GUI, you will delete what is in the field (as you might expect the backspace key to work, outside of the SAP GUI context). This same functionality is also available in the Web GUI, using the up and 12
18. SAP Screen Personas Performance Optimization Guide
down arrows. In spite of these minor differences, most users should be able to make an easy transition from SAP GUI to Web GUI, if they choose.
SAP Screen Personas 3.0 planned to be integrated into Web GUI
For SAP Screen Personas 3.0, we are planning to use the Web GUI as the rendering engine. What are the implications for you?
• Start working with the Web GUI to understand the minor differences from SAP GUI.
• Get a feel for the performance of Web GUI, as that will be the benchmark for SAP Screen Personas 3.0 performance.
• If Web GUI performance does not meet your expectations, ensure that your ITS sizing is correct.
• Time your end-to-end process using Web GUI. This will be the “before” metric that you will use to determine your productivity improvement (both number of clicks and time) after you deploy SAP Screen Personas.
There will be some learning curve for your employees that are familiar with running SAP through the SAP GUI rather than the Web GUI. Once you start modifying the screens, your users will experience further changes. But they will ultimately thank you for making the screens more intuitive and streamlining process flows to improve usability.
4 Factors that influence Performance
There are several factors that influence the performance of SAP Screen Personas screens. By no means is this list exhaustive. These are just some of the factors that you should consider when designing a Personas screen. Since a Personas screen is a Web page, many of the factors for building a Personas screen are the same as for designing any type of Web page.
4.1 General – Amount of information on the screen
The more information on the screen, the slower it will render. So, the goal of creating a screen in Personas is to remove as much as possible without reducing its functionality. In many cases, by removing unnecessary fields from the screen, you will make the users more productive by keeping them focused on their task with a minimum of visual distraction. 13
19. SAP Screen Personas Performance Optimization Guide
This section discusses some of the types of information that may appear on a screen and how to optimize it to fit your user’s needs. Some of the items apply to SAP in general; others are specific to Personas screens.
4.2 Data and Data Volume
SAP GUI tips to minimize data being rendered
1. Variants
One of the best ways to improve the transactions performance is to control and reduce the data that is being transferred from backend server to front end. This particularly affects things like drop down boxes and columns in table which can contain large amounts of data.
Table Variants/Transaction Variants are the best way to reduce some of that data that is not being used in the back end before personas tried to render it.
For example, when customizing transaction like VA0* you can have tables that have up to 150 columns. To improve performance you should consider if users really need all those columns. You should use the table variant to hide the columns that are not used by certain user groups, so Personas does not load the un-needed columns.
Table Variant
In order to hide the columns that are not needed, you have to perform the following steps:
Log into the SAP GUI for your environment
Go to the table where you want to hide some column
Click on the following icon (which should be on the right hand side of the table)
Click the Admnistrator button 14
20. SAP Screen Personas Performance Optimization Guide
Hide the columns that are not used
The columns you hide will be hidden for all SAP interfaces: SAP GUI, WebGUI, and SAP Screen Personas. This is a general best practice that you should do regardless.
See Appendix on how to implement a Transaction Variant
15
21. SAP Screen Personas Performance Optimization Guide
2. Master data quality (Drop-down values)
As with any software, the performance will be greatly impacted if the master data is not clean and there are extraneous values in the drop down. Make sure that all the master data is active. As always, the less information in the drop-down the better the performance will be in your flavor. Again, this is independent of Personas and is a general approach you should follow to speed the performance of your SAP screens.
3. Trees
In order to improve performance, you should not record a script in which you expand the trees to its lowest elements. The more tree elements you ask the script to render the slower the performance will be.
Outside of a script, if you want to prevent users from expanding the entire tree, we recommend you hide the “expand all” button adjacent to the tree.
4. Tables/grids
As mentioned above table variants can reduce the number of columns in a Dynpro screen. This will greatly enhance the performance when customizing the screens if you are only displaying the columns that are actually used in the transaction.
5. F4 – When designing screens, set the limit of the F4 setting in order to improve the performance. Again, this is independent of Personas and is a general approach you should follow to speed the performance of your SAP screens.
As a general rule of thumb: before designing your Personas flavors, first try use backend customizing to reduce the amount of information on the screen and available dropdown options as much as possible without compromising functionality. This is beneficial even for the SAPGUI transactions, but it significantly helps Personas performance because there won’t be as much need to deal with objects that are never used by anyone at the customer.
Personas-specific
1. Tab merging/Tab Caching
One SAP Screen Personas feature that really improves user productivity is the ability to merge tabs. This reduces the number of clicks a user needs to make to either enter or retrieve information. We recommend you only cache the tabs that are required for your screen. Don’t cache what is not needed or tabs that are not used in merging operations. Try to design your flavor by minimizing caching as much as possible while still providing the required functionality.
Using tab caching extensively has an impact on the response time – time from user interaction to system response. From a technical point of view the following is happening: if 7 tabs are cached, the information of all 7 tabs is retrieved from the backend. The recommendation is to use tab caching for 2 to 4 tabs only.
16
22. SAP Screen Personas Performance Optimization Guide
Consider the usage of scripting if you want to display data from another tab (copy/paste functionality).
In addition, the contents of the tabs matter. A tab with a few information fields will probably not cause performance problems. A tab that contains a large table (see above) is more likely to slow performance if you cache it.
Although Personas will not have any issues merging multiple tab contents into one tab, as a general guideline, it’s good to keep in mind that you should not merge more than 2 to 4 tabs if you want good performance.
Tip: How many tabs to be cached is always works in combination with other factors like size of data coming from server, response time of the server, network time, images etc. because everything has a role to play in overall response time for end user. Keep in mind that if there is a script to navigate out of page and come back, then entire screen data along with all cached tabs are perfected again from backend.
2. Scripting
Scripting is an extremely powerful tool for improving user productivity. You can record keystrokes and perform multiple steps for processing on the back end. By reducing the number of round trips between the client system and the SAP server, you can see significant performance improvements.
Scripting enables you to do various computations and pre-empt several user steps, even skipping over entire screens. The more complicated the script is (retrieving data from multiple transactions, running JavaScript, executing Web RFCs), the more impact it will have on performance. The longer the script is the more time it will take to execute.
For debugging purposes when creating a script in Personas, it is recommended that you first start with a short script that does one particular action, and then create individual scripts that perform one action at a time. Once the scripts work, you can piece them together into one large scripted process.
Tips: When recording a script always record it in the basic view. Clear the script of all the unnecessary steps like FOCUS. The more the scripts are optimized, the better the performance would be.
Refresh
Performing a “refresh screen” action inside a script allows you to capture values from another transaction screen and bring them back to your original screen. But, there is a performance cost for each refresh screen action.
17
23. SAP Screen Personas Performance Optimization Guide
When you are copying and pasting from a screen, make sure to copy all the elements at one time when you are on destination screen, then paste them all in sequence when you are back at your original screen. Try to minimize the number of round trips between the original and other screens, since each time you hit a new screen you will need to do a refresh if you want to use values from that screen. The refresh screen action should go in your script after you land on the target transaction page, before you copy any values. You should have a single refresh screen action for each target page.
3. Delta rendering
What it is
Delta Rendering is a data transfer optimization technique between the client and server intended at minimizing the payload that is transferred over HTTP.
As mentioned above, during the interaction between the client and server, the server sends back the entire screen information that reflects the current UI context. This information can become quite large even with compression turned on for the payload. This is where it helps to send only the delta screen information that is required by the client to render the screen in the current context. Since the information sent between client and server is minimal this could lead to improvements in performance. The performance improvement will be different on a case to case basis.
How and when to use
Delta rendering puts some additional load on the server processing and this could mean that for simple cases the performance is actually the same or even slower. Also delta rendering does not help in cases where the user performs minimal or no actions on the UI. This is because the first call for the screen retrieves the entire screen irrespective of whether delta rendering is turned on or not.
Delta Rendering could help in cases where there is high translation required for the flavor. An example would be tab merging with caching enabled. For such cases we have seen significant improvement in performance in the range of 30 – 40%.
As mentioned above, delta rendering could help in the resolution of performance issues in certain cases. The design question for the team was whether we should go for selective inclusion/exclusion of transactions i.e., whether delta rendering should be explicitly switched on for transactions, flavors or should it be switched on globally and then allow for selective exclusion of transaction and flavors. It was decided to go for selective inclusion as we were releasing this as part of a support pack and not a complete release. Delta rendering needs to be turned on either for a specific flavor or for the entire transaction.
But it is to be noted that delta rendering does not resolve all performance issues. It is not a panacea for performance issues in general. Performance has different dimensions and needs to be tackled holistically. 18
24. SAP Screen Personas Performance Optimization Guide
4.3 Images
Personas supports upload of images in .png and .jpg image formats. This applies to both background images and images that appear on the screen to improve usability and aesthetics. It is important to upload images with the lowest resolution and smallest file size that will meet your needs because the images are being cached on the client side at the first call. Once they are cached, subsequent loads will be faster. If you do not have an image processing program you regularly use, you can use paint.net to compress the image.
Images affect the performance of your flavor so we recommend having the following considerations in mind when trying to improve performance:
- JPEG has lower level resolution then the PNG files. If you are worried about the quality of the image you can use 3rd party software to save the JPEG in higher resolution.
- If your users are using various screen sizes, you should optimize the pixel of your image to the screen size that is more relevant in your organization. Using the stretch image functionality in personas will increase your rendering time.
- If you have several images on the screen, it is recommended that you create one image instead of overlaying images. Since overlaying several images one on top of the other will also increase your rending time.
Tip: One tip is to load your images (unmodified) into SAP Screen Personas and size them appropriately on the screen. Then, capture the image in the size you need and create a new flavor with the optimized images. This works especially well if you are layering images. The final screen can contain a single optimized image rather than multiple images scaled down inside SAP Screen Personas.
4.4 Screen Resolution
When creating flavors it is important that the flavor is created on the screen that is most prominent in your organization. If most of your organization uses the 1600X900 resolution then the flavor should be created on that screen. Creating the flavor on one type of resolution and deploying it to different screen resolutions will affect the performance of the screen. When the flavor has to adjust to a different screen resolution additional refresh of the flavor happens.
Tip: Design the screen in the resolution that is most widely used in your organization or incorporate Height & Width in the url (index.html?width=640&height=480).
Things to Consider: This is resolved in SAP Screen Personas 3.0. 19
25. SAP Screen Personas Performance Optimization Guide
4.5 OnCreateHandler
One of the properties that SAP Screen Personas provides is the ability to execute a script prior to the screen being loaded. This feature is called OnCreateHandler.
The OnCreateHandler does not affect the performance of pages. But it does create a perception that the screen is loading slower because it is performing two tasks: loading the screen and executing the script. You can test this by not using the OnCreateHandler and timing the loading of the screen and the executing the script.
Tip: Make sure that the script that is connected to the OnCreateHandler only performance one task. The more tasks the script performance the slower the screen will load.
Things to consider: The script that is attached to the OnCreateHandler will execute everytime the screen needs to be loaded.
4.6 Removing Flavor Change History
SAP Screen Personas keeps the history of the flavor as you edit and change it. Once the flavor is finalized and you are ready to put it into your production environment, we recommend that you make a copy of the flavor to erase all the history that has accumulated while working with it. This should improve the performance of the flavor.
4.7 WebRFC vs. Scripting
Depending on how intricate your flavor is and if you are reading from multiple screens and writing data back to multiple screens a WebRFC would make the performance of the flavor better. When you are using a script and performing multiple read/ writes on a screen, the screen performs a refresh each time you refresh the screen or navigate across screens therefore increasing the loading time. But when doing multiple read/writes on a screen a WebRFC will perform the action only ones in the back end therefore improving the loading of the flavor. 20
26. SAP Screen Personas Performance Optimization Guide
Tip: If you have a scenario with allot of through put you should consider a WebRFC and keeping the logic in the back end. But in some transaction a WebRFC will not work, for example when trying to update an object in transaction VA02 you would need a script instead of WebRFC since the object when in use is locked by the user, and the WebRFC uses a concurrent session to access the object, while the script uses the same session to access the object. Also WebRFC is written in ABAP vs. scripting in SAP Screen Personas 2.0 and JavaScript in SAP Screen Personas 3.0.
See Appendix on how to implement a WebRFC
4.8 SAP/ITS/Infrastructure
4.8.1 ITS Sizing
The sizing for SAP Screen Personas is identical to the SAP GUI sizing. In note 1888428 it describes the Sizing for SAP GUI for HTML. Sizing the CPU
We assume that per dialog step per hour the SAP GUI for HTML consumes about 0.05 SAPS (The SAP Application Performance Standard) of CPU power. For example with 200 users each make around 120 dialog steps per hour, so you have to add 200 * 120 * 0.05 = 1200 SAPS to your current sizing.
4.8.2 Sizing the Memory
ITS and therefore SAP GUI for HTML uses mainly a memory that is called "Extended Memory for Global Data". This memory is configured with the following kernel parameters:
• em/global_area_MB which defines the maximum size of this memory this application server will handle in megabyte. Too low value will likely cause unexpected behavior, disconnections and users not being able to log on via SAP Screen Personas, especially if multiple users are active in the system simultaneously.
If it is 64 or 128 GB, allocating 1 GB to this parameter would be safe and can increase performance.
It is suggested that you increase the value at first on one of your application servers and test it adequately.
Given below is a sample scenario with sample size for the application servers as well as the recommendation of this parameter: 21
27. SAP Screen Personas Performance Optimization Guide
• Sandbox=4GB > em/global_area_MB= 300
• -Development=6GB >em/global_area_MB= 300
• -Quality=6GB >em/global_area_MB= 300
• -Production=24GB >em/global_area_MB= 1000
If you get a warning about low memory, you will again have to increase this to a higher value. See Note mentioned above.
• em/blocksize_KB which defines the block size in which the extended memory is organized in kilobyte. If a user context requests extended memory, one or more blocks of this size are provided.
• itsp/max_eg_mem_percent which defines up to which percentage the ITS will use the extended memory. This parameter makes sure that not all of the application server's memory can be used by user sessions and that there is always enough memory left for other tasks.
In average we assume a user session to use about 2.5 - 3 MB. ITS itself will use up to 20 MB for templates. Since the extended memory is organized in blocks of em/blocksize_KB you need to calculate the memory use in such blocks. Example:
• 200 users on your application server
• em/blocksize_KB of 4096
• and itsp/max_eg_mem_percent of 80.
In this case en/blocksize_KB is higher than the average memory consumption so the minimum is one block per session. In reality some sessions will exceed that size and require another block. Therefore we assume 1.5 blocks per session but this can vary depending on your user's behavior. Calculation: 200 (users) * 1.5 * 4 (em/blocksize in MB) + 20 = 1220 MB. Since this is required by ITS but it is only used up to 80% of the memory you need to configure at least 1525 MB as em/global_area_MB. Monitoring ITS memory usage 22
28. SAP Screen Personas Performance Optimization Guide
With transaction SITSPMON the memory usage of ITS can be monitored on Tab page "Memory Statistics". The following information is displayed:
• Number of running ITS Sessions.
• Memory consumption of all sessions.
• Average memory consumption per session.
• Template memory (not relevant for systems 7.02 or higher that only use webgui or SAP Screen Personas)
• Total memory used by ITS (Session + Templates)
• Currently available memory for ITS.
• Size of global memory (em/global_area_MB)
Please be aware that even without ITS sessions, the memory "available for ITS" displayed in SITSPMON can be lower than the total size of global memory. There are different parts of the ABAP server that make use of the global memory.
Compression
HTTP compression is a capability that can be built into web servers and web clients to make better use of available bandwidth, and provide greater transmission speeds between both.
HTTP data is compressed before it is sent from the server: compliant browsers will announce what methods are supported to the server before downloading the correct format; browsers that do not support compliant compression method will download uncompressed data.
Please make sure that you have the following Compressions set to “ON”.
Transaction: SICF
Service Name: RESTGUI & PERSOS_APP
Compression: Yes
23
29. SAP Screen Personas Performance Optimization Guide
Network bandwidth / latency and Hardware Sizing
SAP Screen Personas renders screens based on definitions contained in the back-end SAP system. You need to ensure you have sufficient network bandwidth so the information can flow freely between the SAP server and browser on the client machine.
To read more about Performance and Scalability please look at the following guidelines .
Sizing
For sizing requirements you can look at the following Microsoft recommendation:
http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx
Click on the System Requirements tab.
Hardware
As with all applications, the hardware has an influence on how your software will perform. In several cases, we have had customers complain about the performance of their SAP Screen Personas system and found that they were running it on vastly underpowered hardware. If you experience performance that is below your expectations, make sure you examine:
CPU utilization in idle mode
Overall system memory
Number of dialog processes
If any of these are not sufficient to handle the current or planned load, make the necessary adjustments and then re-run your performance tests.
24
30. SAP Screen Personas Performance Optimization Guide
5 Final Recommendations
1. Determine what is really essential
2. Benchmark using automatic testing (more accurate than a stopwatch)
3. Create flavors for distinct roles to limit data requirements (this is how you gain productivity through personalization)
4. Test impact of changes individually to determine their impact on performance
5. Follow best practices outlined in this paper
25
31. SAP Screen Personas Performance Optimization Guide
6 Appendix
6.1 Appendix: Using a WebRFC
Step 1: Create a function module.
Create a function module using transaction SE37 in the customer namespace and assign it to an existing function group. In case if there are no suitable function groups, a new one needs to be create using SE80 as a prerequisite.
Please note that the function module need not be remote enable.
Step 2: Define the interface of this function module
In order to make a function module to be used as a WebRFC, it should have a particular interface. That means, the function module should have exactly the following parameters.
Tables Parameters:
Please note that the usage of ‘tables’ parameters are obsolete now. But we need it anyways for using this function module as a WebRFC. So, if the system gives out warning messages against the use of ‘tables’ parameter, just press the ENTER button each time and proceed.
Changing Parameters:
26
32. SAP Screen Personas Performance Optimization Guide
Step 3: Implement the function module:
Please copy and paste the following code under the source code tab of the function module builder.
data: lv_vbeln type vbeln_va, ls_vbak type vbak, lv_contact_name type /glb/ogtcs_custconname, lv_confirmation_no type /glb/rgt_fvalue, lv_str_quant type string, lv_timefr_formated(8) type c, lv_timeto_formated(8) type c, lv_shipping_grp type /glb/rgtpt_grp_ind, htmldoc like line of html. read table query_string with key name = '_VBELN'. if sy-subrc <> 0 or query_string-value is initial. return. endif. call 'CONVERSION_EXIT_ALPHA_INPUT' id 'INPUT' field query_string- value id 'OUTPUT' field lv_vbeln. select single vsbed vkorg /glb/time_from /glb/time_to /glb/vu_weight /glb/vu_wunit from vbak into corresponding fields of ls_vbak where vbeln = lv_vbeln. if sy-subrc = 0. * Retrieving Shipping Group select single /glb/group_ind from vbap into lv_shipping_grp where vbeln = lv_vbeln. * Retrieving Contact Name select single custconname from /glb/ogtt_vbakex into lv_contact_name where vbeln = lv_vbeln. if ls_vbak-vkorg is not initial. * Retrieving Confirmation number select single fvalue from /glb/rgtt_ptdata into lv_confirmation_no where vkorg = ls_vbak-vkorg and vbeln = lv_vbeln and posnr = '00000' and fname = 'EDI_APT_NO'.
27
33. SAP Screen Personas Performance Optimization Guide
endif. endif. * Converting the time to display format concatenate ls_vbak-/glb/time_from+0(2) ls_vbak- /glb/time_from+2(2) ls_vbak- /glb/time_from+4(2) into lv_timefr_formated separated by ':'. concatenate ls_vbak-/glb/time_to+0(2) ls_vbak- /glb/time_to+2(2) ls_vbak- /glb/time_to+4(2) into lv_timeto_formated separated by ':'. * Need this statement to convert this field into string format. lv_str_quant = ls_vbak-/glb/vu_weight. * The standard SAP structure W3HTML length is 256 chars. So htmldoc- line should not exceed 256 chars. concatenate '{"results": [ {"key": "conNm", "value": "' lv_contact_name '"}, {"key": "cfNo", "value": "' lv_confirmation_no '"}, {"key": "shCd", "value": "' ls_vbak-vsbed '"}, ' into htmldoc-line. insert htmldoc into table html. clear htmldoc. concatenate '{"key": "ldNum", "value": "' lv_shipping_grp '"}, {"key" : "tFrm", "value": "' lv_timefr_formated '"}, {"key": "tTo", "value": " ' lv_timeto_formated '"}, ' into htmldoc-line. insert htmldoc into table html. clear htmldoc. concatenate '{"key": "VUW", "value": "' lv_str_quant '"}, {"key": "VUUOM", "value": "' ls_vbak-/glb/vu_wunit '"} ] }' into htmldoc-line. insert htmldoc into table html.
Please note that you can find the function module ZKU_WEBRFC_READ, which was used for the PoC, in following system within the customer landscape.
System: RD2
Client : 102
Step 4: Publish the function module as a WebRFC
Go to transaction SMW0. 28
34. SAP Screen Personas Performance Optimization Guide
Go to Internet release->Function Module, to navigate to the following screen.
Key in the name of your function module and click the release button to publish the function module as a WebRFC.
Step 5: Test your WebRFC.
You can view the JSON output from the web RFC in your web browser by using the following URL.
http(s)://<your system>:<your port>/sap/bc/webrfc?_FUNCTION=<Function module name>&_VBELN=<Valid Sales Order ID>
Please make sure that the service /sap/bc/webrfc is active using the transaction SICF.
29
35. SAP Screen Personas Performance Optimization Guide
6.2 Appendix: Transaction Variant
Option 1 - Create market-specific transaction variant
Required tasks:
1. Customizing change on order type level (NO_VARIANT).
2. Create variant groups and assign users from different market to different variant groups.
3. Create different transaction variant for each variant group with regard to the market- specific requirement on the SAP GUI screen display.
4. Full-scenario regression test for VA** transactions in each market is needed to ensure the results. The effect of such change on the existing screen enhancements should be verified in the test.
Impact & Implication:
1. Each market could use its own version of SAP GUI screen display for VA** transactions that is specifically customized for the local users.
2. Significant maintenance effort is needed for Customizing, transaction variants creation, and variant user/group assignment for each and every VA** transaction.
3. No additional enhancement is needed.
Option 2: Global standard transaction variant
Required tasks:
1. Customizing change on order type level (NO_VARIANT).
2. Create a ‘global’ transaction variant for each VA** transaction that contains the most commonly used screens/screen fields for all markets. The screens/screen fields/drop boxes that are not likely to be used by users globally would be set as ‘invisible’.
3. Set this ‘global’ transaction variant as the standard variant for the respective VA** transactions.
4. Full-scenario regress test for VA** transaction in all market is needed to ensure the results.
Impact & Implication:
1. All market would use the same simplified SAP GUI screen display for the VA** transactions. The fields that are not used globally would be invisible.
2. Certain maintenance effort is needed for Customizing, transaction variants creation.
3. No additional enhancement is needed.
30
36. SAP Screen Personas Performance Optimization Guide
Option 3: Dynamic assignment
Required tasks:
1. Create individual screen variant with the requirements on a global scale or market- specific.
2. Enhance the screen determination logic in program related to VA** programs (mostly in program SAPMV45A), so that the SAP GUI screen layout is dynamically determined based on predefined conditions (e.g., transaction being used, user group, organization unit, etc).
3. Full-scenario test for VA** transaction for all the markets to ensure the result of the dynamic screen determination. At the same time, performance impact should also be evaluated for the additional enhancements.
Impact & Implication:
1. No customizing change is required.
2. No transaction variant is needed. Screen variants have to be defined as much as is required, meaning multiple screen variants could exist for one screen if the requirement is different in different markets/user groups in different VA** transactions.
3. Code change is needed for enhancements. The effort depends on the diversity of the requirements for the screen layout and the complexity of the screen determination logic.
4. Maintenance of the custom codes is needed.
Option 4: Change Table Setting in ‘Item Overview’ screen
Required tasks:
1. Defined a ‘global’ table view for the ‘item overview’ on the overview screen of each of the VA** transactions (Screen 4900 in program SAPMV45A), and make it the system-wide default table layout that is effective for all the users.
2. The criteria for determining the ‘global’ table view is the same as described in Option 2, Point 2 of Required Tasks.
3. Basic test is needed to ensure the table setting is effective.
Impact & Implication:
1. No Customizing change is required; no transaction/screen variant is needed.
2. Maintenance effort is minimal as the table setting is configured in the frontend.
3. The change is limited to the ‘Item Overview’ on the first screen after entering VA** transaction (in red box below). Other tabs/screen elements on this screen are not affected. 31
37. SAP Screen Personas Performance Optimization Guide
4. No additional enhancement is needed.
7 How to Open an OSS message
You have gone through all the steps and checked everything, but still having issue, open an OSS message.
What all information I need to provide when creating OSS message?
To decrease the turnaround time, it will be great if following information is provided when creating OSS message:
a. Make sure you are on the latest patches and notes: See Parent Note: 1964257
b. Kernel Patch Level
b. Provide two types of connections to your environment
• HTTP - according to SAP Note 592085
• R/3 - according to SAP Note 812732
c. All the connections should be tested with proper credentials provided 32
38. SAP Screen Personas Performance Optimization Guide
d. Detail steps to re-create the issue
e. Please attach the related log of the issue.
33