Uploaded by caracts

ADM103 EN Col23

advertisement
ADM103
System Administration II of SAP
S/4HANA and SAP Business Suite
.
.
PARTICIPANT HANDBOOK
INSTRUCTOR-LED TRAINING
.
Course Version: 23
Course Duration: 4 Day(s)
Material Number: 50161776
SAP Copyrights, Trademarks and
Disclaimers
© 2023 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.
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. Please see https://
www.sap.com/corporate/en/legal/copyright.html for additional trademark
information and notices.
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 may have been machine translated and may contain grammatical
errors or inaccuracies.
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
SE or its affiliated companies shall not be liable for errors or omissions with respect
to the materials. The only warranties for SAP SE 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 forwardlooking 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, which speak only as of
their dates, and they should not be relied upon in making purchasing decisions.
Typographic Conventions
American English is the standard used in this handbook.
The following typographic conventions are also used.
This information is displayed in the instructor’s presentation
Demonstration
Procedure
Warning or Caution
Hint
Related or Additional Information
Facilitated Discussion
User interface control
Example text
Window title
Example text
© Copyright. All rights reserved.
iii
iv
© Copyright. All rights reserved.
Contents
vii
Course Overview
1
Unit 1:
3
Administrating Technology Components for HTTP-based
Communication
7
Lesson: Describing Scenarios for HTTP-based Communication with
ABAP based SAP Systems
Lesson: Configuring the Internet Communication Manager (ICM)
15
31
41
61
71
Lesson: Using the Internet Communication Framework (ICF)
Lesson: Maintaining UI-related Software Components
Lesson: Configuring SAP Gateway
Lesson: Describing Web Services in AS ABAP
Lesson: Installing and Configuring SAP Web Dispatcher
107
Unit 2:
109
115
129
Lesson: Setting Up Communication with SAPconnect
Lesson: Setting Up Communication with Simple Mail Transfer
Protocol (SMTP)
Unit 3:
131
143
Unit 4:
Unit 5:
Configuring Extended Computer Aided Test Tool (eCATT)
Lesson: Describing the Basics of Extended Computer Aided Test
Tool (eCATT)
Lesson: Configuring the System Landscape for eCATT
Lesson: Executing eCATT Test Scripts
189
199
Unit 6:
215
225
241
260
Configuring Central User Administration (CUA)
Lesson: Understanding the Basic Idea of CUA
Lesson: Setting Up a CUA
Lesson: Performing User Administration with CUA
183
213
Installing an Enqueue Replication Server (ERS)
Lesson: Managing an Enqueue Replication Server (ERS)
145
151
169
181
Setting Up SAPconnect and SMTP
Dealing with Aspects of Globalization
Lesson: Discussing Aspects of Globalization
Lesson: Importing Additional Languages into an SAP System
Lesson: Addendum: Introducing Unicode
Glossary
© Copyright. All rights reserved.
v
vi
© Copyright. All rights reserved.
Course Overview
TARGET AUDIENCE
This course is intended for the following audiences:
●
Technology Consultant
●
System Administrator
© Copyright. All rights reserved.
vii
viii
© Copyright. All rights reserved.
UNIT 1
Administrating Technology
Components for HTTP-based
Communication
Lesson 1
Describing Scenarios for HTTP-based Communication with ABAP based SAP Systems
3
Lesson 2
Configuring the Internet Communication Manager (ICM)
7
Lesson 3
Using the Internet Communication Framework (ICF)
15
Lesson 4
Maintaining UI-related Software Components
31
Lesson 5
Configuring SAP Gateway
41
Lesson 6
Describing Web Services in AS ABAP
61
Lesson 7
Installing and Configuring SAP Web Dispatcher
71
UNIT OBJECTIVES
●
List options for HTTP-based communication with ABAP based SAP systems
●
Outline the system landscape used in this unit
●
Describe the implementation of the ICM
●
Illustrate monitoring options for the ICM process
●
Describe the configuration of the ICM process for the use of SSL
●
Explain the importance of the ICF for handling HTTP requests
●
Describe what constitutes an ICF service
© Copyright. All rights reserved.
1
Unit 1: Administrating Technology Components for HTTP-based Communication
●
Illustrate the idea of the ICF recorder
●
Perform changes to SAP GUI for HTML settings
●
List prerequisites for the use of SAP integrated ITS
●
Perform an update to the latest Unified Rendering patch
●
Perform an update to the latest SAPUI5 patch
●
Explain OData
●
Explain SAP Gateway
●
Perform basic configuration steps for SAP Gateway
●
Enable SAP Gateway soft state
●
Configure SAP Gateway routing
●
Name a use case for Web Services
●
Explain the Web Service paradigm
●
2
List the steps to create a Web Service from a function module using the inside-out
approach
●
List options to perform binding in the production environment
●
Describe basic functions of SAP Web Dispatcher
●
Perform an installation of SAP Web Dispatcher
●
Use the Web Administration interface
●
Perform the configuration of SSL
●
Perform the configuration of load balancing
●
Describe additional functions of SAP Web Dispatcher
© Copyright. All rights reserved.
Unit 1
Lesson 1
Describing Scenarios for HTTP-based
Communication with ABAP based SAP
Systems
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
List options for HTTP-based communication with ABAP based SAP systems
●
Outline the system landscape used in this unit
Introduction
SAP provides a number of ways in which applications can be created for intranet or internet
users. This lesson introduces the technologies on which these applications are based and
explains the differences between them.
Changes during the Various Releases
As of SAP BASIS 3.1G: SAP Internet Transaction Server
SAP delivered the first version of the SAP Internet Transaction Server (SAP ITS) with SAP R/3
3.1G in 1996. SAP ITS is a software that acts as a gateway between a Web server and an SAP
system. t switches between general Internet protocols and formats (such as HTTP, HTTPS,
and HTML) and those that are specific to the SAP system (such as DIAG, RFC, and dynpros
(screens)).
First, the SAP ITS was implemented as standalone software, that was used “in front of” an
ABAP-based SAP system (see the following figure). This “standalone” ITS existed as of
Release 3.1G up to and including 6.20 (upwardly and downwardly compatible with SAP
systems up to and including AS ABAP 6.40). As of AS ABAP 6.40, the new ITS is integrated in
AS ABAP on all platforms with a simplified architecture.
© Copyright. All rights reserved.
3
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 1: System Landscape with Standalone ITS
Web applications that were developed specifically for SAP ITS are called Internet Application
Components (IACs). These include Employee Self Services (ESS) that are based on SAP R/3
and SAP R/3 Enterprise or the SAP Online Store. The SAP GUI for HTML also uses the SAP
ITS.
SAP ITS functionality (either standalone or integrated) is therefore required for existing Web
applications (in IAC technology) and the SAP GUI for HTML, regardless of the AS ABAP
release of the corresponding SAP system.
As of SAP BASIS 6.10: Internet Communication Manager
Based on the highly-scalable infrastructure, as of SAP Web AS 6.10 new technologies are
used to process HTTP requests (and other protocols) directly from the internet or to send
HTTP client requests to the internet. To achieve this, the SAP Kernel has been extended with
the Internet Communication Manager (ICM) process.
The ICM process forwards requests to the Internet Communication Framework (ICF), which
supports numerous programming models. This is how the SAP CRM, SAP BW, and SAP PI
software components use this infrastructure. A programming model for such applications
(among others) are the Business Server Pages (BSPs).
As of SAP BASIS 7.00: Web Dynpro ABAP
Web Dynpro is the preferred programming model for stateful desktop application Web
interfaces in SAP Business Suite systems. It provides a clear distinction between the user
interface (UI) and the business logic. It also provides functions that are not usually available
as part of the standard tools for developing professional user interfaces. These include
functions for checking entries, providing input help, supporting multiple languages, and
handling errors comfortably, as well as caching mechanisms that ensure fast response times
and are therefore especially useful for interactive user interfaces.
The Web Dynpro ABAP programming model is available as of AS ABAP 7.00.
4
© Copyright. All rights reserved.
Lesson: Describing Scenarios for HTTP-based Communication with ABAP based SAP Systems
Note:
For more information about Web Dynpro technology, see the SAP Community
(successor of SAP Community Network) at https://community.sap.com/topics/
web-dynpro-abap-floorplan.
As of SAP BASIS 7.00: SAPUI5 and OData
SAPUI5 is the SAP implementation of the open HTML5 standard. The ICF can process Web
pages based on HTML5 (for this, the plug-in UI_INFRA or the software component SAP_UI
needs to be installed on the SAP system).
OData is an open standard that can be used by any software or device that communicates
using the HTTP(S) protocol. It can parse and construct an XML document. OData can also be
described as ODBC for the Web. SAP Gateway is the implementation of the OData standard
on an AS ABAP-based SAP system (available for AS ABAP 7.00 onwards).
As of AS ABAP 7.40: SAP Fiori
SAP Fiori is a collection of apps, which are created based on the rules of the SAP User
Experience and are therefore representing them. The majority of SAP Fiori apps are web-apps
built using SAPUI5 as UI technology. SAPUI5 in turn is based on HTML5 and can be consumed
on every device using a Web browser. For developing SAPUI5 applications, SAP offers SAP
Business Application Studio (running on SAP Business Technology Platform) and SAP Fiori
tools - Extension Pack for Visual Studio Code.
As of AS ABAP 7.40 SAP Fiori Launchpad – which is the entry point to SAP Fiori apps on
mobile or desktop devices – is part of every SAP AS ABAP.
The System Landscape in this Class
The following figure shows the system landscape for this training.
Note:
The SAP Web Dispatcher on host fsXhost (on this figure, “X” is to be replaced by
either “q” or “p”) does not already exist but will be installed during this unit.
© Copyright. All rights reserved.
5
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 2: (To-Be) Training System Landscape for HTTP Communication in this Class
Summary
The following figure finally compares the user interfaces and the communication interfaces of
SAP R/3 with the ones of SAP S/4HANA Server and shows which release of software
component SAP BASIS has introduced the changes.
Figure 3: Comparison SAP R/3 vs. SAP ECC / S/4HANA Server
LESSON SUMMARY
You should now be able to:
6
●
List options for HTTP-based communication with ABAP based SAP systems
●
Outline the system landscape used in this unit
© Copyright. All rights reserved.
Unit 1
Lesson 2
Configuring the Internet Communication
Manager (ICM)
LESSON OVERVIEW
In this lesson, you will learn about the Internet Communication Manager (ICM) process and its
administration options.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Describe the implementation of the ICM
●
Illustrate monitoring options for the ICM process
●
Describe the configuration of the ICM process for the use of SSL
Architecture of the ICM Process
Figure 4: Example for a System Landscape
The figure above shows an example of a system landscape in which Web browsers from the
internet and intranet are connected with an AS ABAP (in this case, distributed across a
number of servers). Important features are:
●
Support for standard Web protocols such as HTTP, HTTPS, WebDAV, SOAP, and SMTP
●
Display of standard Web formats such as HTML, XML, OData and XSLT
© Copyright. All rights reserved.
7
Unit 1: Administrating Technology Components for HTTP-based Communication
●
Complete integration into the SAP environment (development environment, user
administration, authorization concept, system monitoring, and communication protocols)
The AS ABAP can act both as a Web server (server role) and as a Web client (client role). The
server role, in which the AS ABAP can accept and process HTTP(S) requests from any Web
client (such as a Web browser) and send back an HTTP(S) response, is what we will discuss in
this lesson.
Within a work process, the Internet Communication Framework (ICF) provides the
environment for handling HTTP(S) requests. The ICF is the bridge between the C kernel of the
SAP system and the application program created in ABAP.
Work processes can directly generate Web-compatible content in a way that can be
forwarded to a Web browser using the ICM. One way of creating content of this type is to use
Web Dynpro applications that are developed in the SAP system using the ABAP Workbench
(for example transaction SE80).
Figure 5: Internal Structure of the ICM Process
From a technical point of view, the ICM is a separate process (icman at operating system
level) that is started and monitored by the ABAP dispatcher. Its task is to ensure that the SAP
system can communicate with the outside world (using HTTP, HTTPS, and SMTP). In the
server role, it can process requests from the internet that arrive with URLs with the server/
port combination for which the ICM is listening. The ICM then calls the appropriate local
handler, depending on the URL. The ICM process uses threads to process the created
workload in parallel.
The components of the ICM are:
●
●
8
Thread Control: This thread accepts the incoming TCP/IP requests and creates (or raises)
a worker thread from the thread pool to process the request.
Worker Thread: This thread handles requests and responses for a connection. A worker
thread contains an I/O handler for the network input and output, and various plug-ins for
the different supported protocols.
© Copyright. All rights reserved.
Lesson: Configuring the Internet Communication Manager (ICM)
●
●
●
●
Watchdog: A worker thread usually waits for a response (whether it is client or server); if a
timeout occurs, the watchdog takes over the task of waiting for the response. The worker
thread can then be used for other requests.
Signal Handler: This thread processes signals that are sent from the operating system or
another process (such as the ABAP dispatcher).
Connection Information: Table with information for each existing network connection.
Memory Pipes: These memory-based communication objects allow data transfer between
the ICM and the ABAP work processes.
The requests from the ICM must also wait in the dialog queue of the ABAP dispatcher. When a
free dialog work process is found, ICM threads and dialog work processes communicate
directly with each other.
The ICM uses plug-ins to implement the different communication protocols. Once the AS
ABAP has been installed, the following protocols can be used immediately:
●
HTTP
●
HTTPS
●
SMTP
Figure 6: Internet Server Cache (ISC)
A part of the ICM that is important for performance is the Internet Server Cache (ISC), which
stores HTTP(S) objects before they are sent to the Web browser. The next request can then
be made directly from the ISC, provided that the expiry time has not elapsed. This avoids
branching to the ABAP work process, which can accelerate the access considerably.
Some features of the ISC are:
●
Two-level hierarchy: When objects are stored, the advantages of both the high speed of
main memory (memory cache) and the storage capacity of hard disks (disk cache) are
used.
© Copyright. All rights reserved.
9
Unit 1: Administrating Technology Components for HTTP-based Communication
●
●
●
●
Dynamic Caching: Traditional products are based on HTTP proxies and usually offer
caching only of static content, such as images. The ISC can also cache dynamic content
such as JSPs or BSPs.
Active Caching: The application has full control over ensuring that the objects in the cache
are up to date.
UFO Caching: Invalid requests (“UnFound Objects”) that lead to error situations in the
application server or the database are directly rejected, so that the system is protected
against invalid or malignant requests.
Browser-dependent Caching: The developer of a BSP can define whether his or her
application is dependent on the browser type. If this indicator is set, the ISC uses the data
in the cache only for requests from the same browser type.
The ISC is configured using the profile parameter icm/HTTP/server_cache* and can be
monitored and invalidated from the SAP system.
Start Procedure and ICM Monitoring
Figure 7: Starting the ICM
The profile parameter rdisp/start_icman controls whether an ICM process is also started
when an application server is started. If no value is specified, the default setting true applies.
You configure the ICM using profile parameters (most of which begin with icm/). The settings
for icm/server_port_<xx> are of particular importance. These settings determine the port
used for each protocol, as well as other attributes of the protocol (such as timeout).
Note:
SAP Note2560792 – ABAP instances in SAP S/4HANA always start with an
icman process states that as of Kernel 7.72, the AS ABAP instance always starts
with an ICM process. As of this Kernel version, the parameter rdisp/start_icman
no longer exists and is ignored.
10
© Copyright. All rights reserved.
Lesson: Configuring the Internet Communication Manager (ICM)
In the SAP system, you can quickly obtain an overview of which application servers are
running with an ICM using the AS Instances of SAP System <SID> overview (transaction
SM51).
For more detailed information (such as the thread ID), see the ICM Monitor (transaction
SMICM). From this transaction, you can choose the menu path Administration → ICM to
terminate the ICM with a soft termination (corresponds to Unix signal 2) or (depending on the
release) a hard termination (corresponds to Unix signal 9). The dispatcher then starts a new
ICM process. By choosing Administration → ICM → Restart → Yes/No (if available), you can
control whether the ABAP dispatcher will restart the ICM when it is terminated by an error or
at the request of an administrator.
Figure 8: ICM Monitor Functions
The most important tool for an administrator in the ICM environment is the ICM Monitor
(transaction SMICM). Note that the data displayed is instance-dependent (in the same way as
the work process overview, transaction SM50). Some administrative activities (all available
from transaction SMICM) are:
●
●
●
Monitoring and restarting the ICM.
Configuring the trace level (Goto → Trace Level → ...), values range from 0 (no trace) to 3
(full trace with buffers).
Evaluating the trace files (Goto → Trace File → ...); the system reads the ICM trace file
dev_icm or the ICM security log dev_icm_sec from the work directory of the current
instance.
Note:
Depending on the release, the ICM security log can also be named
dev_icm_sec-<date> and be located in the log directory of the current instance.
●
Overview of the profile parameters (Goto → Parameters → Display/Change). The ICM is
configured using profile parameters. The displayed values apply for the instance to which
you are currently logged on. For documentation on the parameters, see
© Copyright. All rights reserved.
11
Unit 1: Administrating Technology Components for HTTP-based Communication
-
●
●
●
the ICM Monitor (transaction SMICM, menu path Goto → Parameters → Change, select
the parameter in question and choose Documentation),
-
transaction RZ11, and
-
SAP online documentation.
Display the statistics (Goto → Statistics → Display). You can use these statistics to find
out how many requests the ICM has processed since it was started (or since the statistics
were reset). The system also displays information about the processing time.
Monitoring (Goto → HTTP Plug-In → Server Cache → Display) and resetting (Goto →
HTTP Plug-In → Server Cache → Invalidate Locally / Globally) the ICM server cache. The
ICM server cache stores HTTP objects before they are sent to the client. The next time that
this object is requested, the content can be sent directly from the cache to the client.
In maintenance mode Administration → ICM → Maintenance Mode → Activate /
Deactivate, the ICM logs off from the ABAP message server and is not available for Web
requests. The ICM processes only the remaining requests. If an internet user accesses an
ICM in this status from the Web browser, the system will issue a message stating that the
service is not available.
You can determine some of the listed data at operating system level using the icmon
program. The call icmon -h displays the possible parameters for this small program, which
can also, among other things, generate requests to simulate normal system workload.
Note:
A Web Administration interface is available for administration and monitoring
purposes as well.
Using this interface, you can monitor and administrate the ICM from a Web
browser and from SAP MC / SAP MMC. The Web admin interface provides the
same functions as the ICM Monitor.
Configure SSL for the ICM
You can use the Secure Sockets Layer (SSL) protocol to secure HTTP connections to and
from AS ABAP. When using SSL, the data being transferred between the two parties (client
and server) is encrypted.
The SSL protocol uses public-key technology to provide its protection. Therefore, as a
prerequisite to use SSL, the server must possess a public and private key pair and a
corresponding public-key certificate. It must possess
●
●
one key pair and certificate to identify itself as the server component
and another key pair and certificate in case that the server is to identify itself as a client
component.
These key pairs and certificates are stored in the Personal Security Environments (PSEs) of
the server, the SSL server PSE and the SSL client PSE, respectively.
The following roadmap contains the main steps to configure SSL for the AS ABAP:
12
© Copyright. All rights reserved.
Lesson: Configuring the Internet Communication Manager (ICM)
Figure 9: Configuration of AS ABAP to Support SSL as Server - Roadmap
For more information, see the SAP S/4HANA online documentation (Product Assistance),
area Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security
Concepts and Tools → Network and Transport Layer Security → Transport Layer Security on
ABAP Platform → Configuring the ABAP Platform to Support TLS and SAP Note 510007 –
Additional considerations for setting up SSL on Application Server ABAP.
Related Information
Concerning the Internet Communication Manager (ICM), the following paths in SAP Online
documentation and the following SAP Notes might be helpful for further information:
●
SAP S/4HANA online documentation (Product Assistance), area Enterprise
Technology → ABAP Platform → Application Server ABAP - Infrastructure → Components
of Application Server ABAP → Internet Communication Manager (ICM) → Administration
of the ICM
●
SAP Note 2007212: Tuning SAP Web Dispatcher and ICM for high load
●
SAP Note 2149132 – ICM performance checks
●
SAP Note 2160678 – SSO stops working when the ICM trust parameters are configured
●
SAP Note 2052899 – ICM - Multiple Trusted Reverse Proxies
●
SAP Note 2456368 – How to find SAP WIKI for BC-CST-IC
LESSON SUMMARY
You should now be able to:
●
Describe the implementation of the ICM
●
Illustrate monitoring options for the ICM process
●
Describe the configuration of the ICM process for the use of SSL
© Copyright. All rights reserved.
13
Unit 1: Administrating Technology Components for HTTP-based Communication
14
© Copyright. All rights reserved.
Unit 1
Lesson 3
Using the Internet Communication Framework
(ICF)
LESSON OVERVIEW
The Internet Communication Framework (ICF) provides an environment for handling Web
requests in the ABAP work process of an SAP system. This lesson introduces the ICF and
provides more information about some administrative issues. The last part of this lesson is
dedicated to the SAP GUI for HTML and the integrated SAP ITS.
Business Example
Your company wants to use Web applications based on Web Dynpro ABAP, BSPs, or the
integrated SAP ITS to connect your SAP systems with the internet or intranet.
As a member of the system administration team, it is your task to create connections
between the URLs and the assigned services and programs of the SAP system.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Explain the importance of the ICF for handling HTTP requests
●
Describe what constitutes an ICF service
●
Illustrate the idea of the ICF recorder
●
Perform changes to SAP GUI for HTML settings
●
List prerequisites for the use of SAP integrated ITS
The Internet Communication Framework (ICF)
The Internet Communication Framework (ICF) provides a way for different systems to
communicate with each other over the internet/intranet using standard protocols (such as
HTTP and SMTP). As of AS ABAP 7.40, no additional programming libraries (for AS ABAP)
are required from SAP. However, for the HTTPS protocol, certain configuration steps need to
be performed (see SAP Note 510007 – Additional considerations for setting up SSL on
Application Server ABAP). Your system platform only must be configured to be internet
capable. This scenario allows for the most flexible setup of the overall communication
requirements.
The ICF allows a response to a request to be generated using an application. An HTTP request
is sent from a client (such as a Web browser) to the server. It is then forwarded to an
application by the ICF. Here, data is collected and sent back to the client as a response by the
ICF. The response data is then displayed in the browser.
© Copyright. All rights reserved.
15
Unit 1: Administrating Technology Components for HTTP-based Communication
Note:
The following provides more information about using the SAP system as a Web
server (HTTP(S) server). For information about the Web client role of the SAP
system, see the online documentation.
The application logic that is to be called by an HTTP request from the intranet or internet is
implemented by the HTTP request handler in each case. An HTTP request handler is a
program (or, more precisely, an ABAP class) that is identified using a URL, and which receives
HTTP requests that use this URL. The task of the HTTP request handler is to receive the data
that is sent by a request (for example, coded into the URL as “query string” information), to
perform a number of handler-specific processes, and to generate a response to this HTTP
request. Customers can also create these HTTP request handlers themselves, although SAP
does provide some. An example for an SAP HTTP request handler is the handler
CL_HTTP_EXT_BSP for the Business Server Pages (BSP) which can be used to develop
simple Web applications.
If an HTTP request is received by the ICM that is to be processed in a work process, the task
handler of the work process takes control. It then starts the ICF controller (see the following
figure).
Figure 10: Interaction Model of an SAP System in the Server Role
An HTTP(S) request is processed in the following steps (this example uses an ABAP
application that must be processed by a dialog work process):
1. The request is sent from the user’s Web browser to the ICM using the HTTP(S) protocol.
2. The ICM stores the data received in a memory pipe (in the shared memory) and informs
the ABAP dispatcher.
3. The ABAP dispatcher adds the ICM request to the dispatcher queue, creates a new
context (if there is no context that is processed statefully), and selects a dialog work
process for processing.
16
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
4. The task handler in the work process reads the data from the memory pipe and transfers it
to the ICF controller, which is implemented using function module
HTTP_DISPATCH_REQUEST.
5. The ICF controller transfers the request to the ICF manager, which is implemented by the
ABAP class CL_HTTP_SERVER. The ICF controller creates a server control block and fills it
with the HTTP request data that it requested from the ICM.
6. The client is then authenticated, whereby several logon options are available.
7. The HTTP request handler determined previously is called (this can process the request
data, call further applications, access the response object, and so on). Once the HTTP
request handler has performed all tasks, it returns control to the ICF controller.
8. The task handler writes the response back to the memory pipe (response serialization)
and signals to the ICM that it has finished processing the request.
9. The ICM returns the response to the Web Browser.
For a detailed explanations of the individual steps, see the online documentation for SAP S/
4HANA (Product Assistance), area Enterprise Technology → ABAP Platform → Application
Server ABAP - Infrastructure → Connectivity → Components of SAP Communication
Technology → Communication Between ABAP and Non-ABAP Technologies → Internet
Communication Framework → Architecture → Server Architecture.
Note:
From a technical point of view, there is an ABAP class behind an HTTP request
handler. This class implements the interface IF_HTTP_EXTENSION and the
method HANDLE_REQUEST. SAP delivers classes of this type; customers can, of
course, also create their own classes with the Class Builder (transaction SE24,
integrated into the Object Navigator, transaction SE80).
Properties and Maintenance of ICF Services
The task of ICF services is to link a particular URL with an HTTP request handler. An ICF
service therefore creates a connection between a URL to which an HTTP request is sent and
development objects that process this request.
An SAP system (with AS ABAP) already contains various services directly after it is installed.
The exact scope depends of course on the system type (SAP ECC, SAP S/4HANA Server, and
so on) and the release. You can obtain an overview of all available services using the central
maintenance transaction for ICF services, transaction SICF. All available services are
displayed in a hierarchical structure in transaction SICF. The complete path for a service
(such as /sap/bc/icf/info) ultimately determines (together with the protocol, server name,
and port) the URL under which the service can be called. The following part of this lesson
explains some of the aspects that are relevant for administrators in more detail.
Activation Concept
ICF services can be active or inactive, which is indicated by different colors in transaction
SICF:
© Copyright. All rights reserved.
17
Unit 1: Administrating Technology Components for HTTP-based Communication
Table 1: Status of ICF Services
Status
Color in SICF
Meaning
Active
Black
Service can be called
Inactive
Gray
Service explicitly deactivated
Blue
Service implicitly deactivated
For implicitly deactivated services, there is always a higher-level service in the ICF tree that
has been explicitly deactivated. If you activate that service (displayed in gray), all lower-level
services that are implicitly deactivated (displayed in blue) will be activated. When you activate
a node (by choosing the menu path Service/Host → Activate or using the context menu that
appears when you click the secondary mouse button), you can choose whether you want to
explicitly activate the selected service only (Yes) or all of the lower-level subservices (Yes with
the tree icon).
If you try to call an inactive service, the system will display a message stating that access to
this page is forbidden. Activated ICF services are a security risk since they can be accessed
directly using HTTP(S) or SMTP from the intranet or internet (depending on your network
configuration). You should therefore restrict access using suitable measures, such as by
activating only the required ICF services and assigning the relevant authorizations to users.
Hint:
At the time of installation, all ICF services are inactive so that no ICF service can
initially be used. For the behavior of ICF nodes after the implementation of
Support Packages, see SAP Note 1447439 – ICF: Services are no longer
deactivated after transport and SAP Note 1555208 – ICF services become
inactive after upgrade or SP update.
Mass Processing of ICF Services
The reports RS_ICF_SERV_ADMIN_TASKS and RS_ICF_SERV_MASS_PROCESSING provide
the option of executing various actions in relation to the services of the Internet
Communication Framework. For example, report RS_ICF_SERV_ADMIN_TASKS offers to
determine all active HTTP services (or all inactive services) in the system and to write the
result to a CSV file. Report RS_ICF_SERV_MASS_PROCESSING in turn offers to activating (or
deactivate) ICF services that are listed in a CSV file for all virtual hosts. For more details, see
SAP Note 1498575 – Mass processing of ICF services.
18
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
Properties and Inheritance
Figure 11: Properties of an ICF Service
An ICF service is characterized by properties that you maintain in transaction SICF. By
double-clicking a service, you access the Create/Change a Service screen on which you can
configure the following settings:
Service Data tab
●
An inheritance principle applies to the properties of an ICF service: In transaction SICF,
you do not need to maintain properties for each individual service. You can do this simply
for the higher service nodes (for example, /sap/bc/bsp). All lower-level services are then
assigned these properties, provided that other values have not been entered explicitly for
them.
This inheritance process is not always required. You can use the Ignore inherited settings
indicator to control whether this inheritance logic is interrupted. In addition, you can
choose the Display Inheritance button in the application toolbar to show the properties for
the current service that are inherited from higher-level ICF services.
●
●
●
●
Under Load Balancing, you can enter a logon group (from transaction SMLG) using the
input help (F4). When you use the SAP Web Dispatcher, requests sent to this service are
forwarded only to the ABAP instances of the logon group defined.
If you enter a value in the Authorization field, the system will check whether the user has
this authorization (for authorization object S_ICF, fields ICF_FIELD and ICF_VALUE) at
runtime.
Once the time defined in Session Timeout has expired, a stateful application is terminated
(if the value is 00:00:00, the value of the profile parameter rdisp/plugin_auto_logout
(default value: 30 minutes) is used).
If you set Compression to Yes, the SAP system will compress the response (using the gzip
technique), provided that the caller can control decompression.
© Copyright. All rights reserved.
19
Unit 1: Administrating Technology Components for HTTP-based Communication
●
If you set GUI Interface to Yes, the screen images that are generated in the application by
processing conventional dynpros will be converted to a format that allows them to be
displayed graphically in a Web browser.
Note:
This function (as well as the screen that can be accessed with GUI
Configuration) is required for the integrated SAP ITS, which is explained in
more detail below.
●
The Support Accessibility indicator specifies that an accessibility mode is called if the
application has one. However, it cannot be guaranteed that this is the case.
Logon Data tab
There are various ways for an HTTP request to log onto the AS ABAP, and you can configure
these for each individual service node. With the Standard default setting for field Procedure,
the following check procedures are used in exactly this sequence:
1. Logon Through HTTP Fields
2. Logon Through SSL Certificate (logon using the client certificate)
3. SAP Logon/Assertion Ticket
4. SAP Assertion Ticket
5. Basic Authentication (logon using the SAP user and password)
6. SAP RFC Logon
7. SAML bearer token
8. OIDC bearer token
9. SPNEGO Authentication
10. SAML Logon
11. OIDC Logon
12. Logon Through Service Data (logon using the anonymous data entered in the service)
By choosing Alternative Logon Procedure as Procedure, you can select any logon procedure
(in the Logon Procedure List that appears) and change the check sequence.
With Required with Logon Data as Procedure, only those entries specified in the service under
Logon Data (client, user, password, and language) are used for the check. You should enter
only those users that have been created in transaction SU01 as service users. In case that you
enter a dialog user, the system issues a warning message.
If you select Required with SSL Certificate finally, logon will occur exclusively with an X.509
client certificate.
20
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
Note:
For the Standard and Alternative Logon Procedure, you can select the Use All
Logon Procedures checkbox to specify whether the respective check sequence is
to run until one of the logon procedures is successful, or whether the caller is to
receive a negative confirmation as soon as the first logon procedure fails.
Depending on the procedure selected, you can configure additional settings (for example, you
can require SSL, that is, the HTTPS protocol).
Handler List tab
Here, you list the HTTP handlers in the sequence in which they are to be executed. An HTTP
request handler is an ABAP class that implements the interface IF_HTTP_EXTENSION. This
interface contains the method HANDLE-REQUEST, which is called by the ICF.
Error Pages tab
On the Error Pages tab, you can specify which response pages are to be sent to the caller in
the following situations:
●
●
Logon Errors (HTTP 401: logon failed)
Appl. Errors (HTTP 500: An error occurred in the application, for example, ABAP short
dump)
●
Logoff Page
●
Not Accessible (HTTP 404: not found)
In each case, either an explicit response page can be sent to the Web browser or the caller can
be redirected to another URL. In the Logon Errors area, you can also enable a direct system
logon in case that an error occurs.
Note:
Under the /sap/public node, services are defined that are required for systeminternal services. These differ from the other services in the tree since no
credentials are maintained. You therefore do not need to log on to the SAP system
to use these services. The actions are carried out under the SAPSYS system user.
Therefore, customers are not permitted to create their own services under
the /sap/public node.
Administration tab
The Administration tab contains administration data such as the user who has created and
who has last changed a service.
In addition, you can flag services to be administration services. Administration-relevant ICF
services should be especially protected against unauthorized accesses. To do this, these
services can be grouped together under a separate virtual host (such as SAP_ADMIN_VH),
which is reached by its own port and can be given special access restrictions.
For more information, see SAP Note 1778777 – Development of an admin application and SAP
Note 1748112 – Making admin services accessible through their own port (which contains a
PDF attachment concerning the Separation of HTTP Administration Requests Using a
Dedicated Port.
© Copyright. All rights reserved.
21
Unit 1: Administrating Technology Components for HTTP-based Communication
Hint:
If logon data is defined for an ICF service that is then transported, the logon data
will be deleted during transport. This is due to security reasons. Furthermore, it is
not possible to guarantee that the respective user exists in the target system.
The user must therefore be maintained in the target systems. For more
information, see SAP Note 732218 — ICF: Logon data from SICF is not
transported. Also for security reasons, ICF services that have been transported
to a target system are initially inactive and must be activate explicitly (see also
SAP Note 517484 — Inactive services in the Internet Communication Framework).
ICF Aliases
In the ICF, you can link from one ICF service to another existing service (“alias”). A distinction
is made between internal and external aliases:
●
On the Define Services screen in transaction SICF, when you create a service and choose
Alias to Existing Service, you create an internal alias.
Instead of defining an HTTP request handler, use the Target tab to specify (by doubleclicking) the target handler to which the alias is to refer in the HTTP service tree. This
allows you, for example, to call the existing and unchanged service with alternative settings
(such as logon data and logon procedure).
Note:
If possible, customers should not create internal aliases to SAP services (which
are always in the /sap/ namespace).
●
To allow services to be called with any meaningful, non-technical names, customers
should use external aliases. For this, switch to the Maintain external aliases view in
transaction SICF. Unlike an internal alias, an external alias can contain a forward slash
(“/”) in its name; otherwise, both procedures are handled in the same way (besides of
transport settings).
Figure 12: External Aliases
22
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
ICF Recorder
The ICF recorder enables developers and administrators to identify and correct the source of
errors in failed service calls by recording HTTP requests.
You can use it to save recorded requests (without the passwords used) in the system
database. This facilitates the evaluation process since it is usually no longer necessary to
describe the error so that the problem can be reproduced. The problem can be executed
multiple times using the database entry in order to further identify the root cause of the
problem by debugging or work process traces. Once the problem has been corrected, the
erroneous data can be used to check the corrections.
Figure 13: ICF Recorder
You can call the ICF recorder from the Define Services screen (see figure above) or from the
Maintain external aliases screen in transaction SICF by choosing the menu path Edit →
Recorder → Activate/Deactivate/Display Recording; you can also use transaction
SICFRECORDER for the evaluation process. The basic steps are:
1. Activate the recording. You have to enter:
a. The URL path in ICF to be recorded (if you have previously selected a path, this is used
as the default value)
b. The duration of the recording and the storage period in the database (Lifetime)
c. Whether the requests of one user (user-dependent, recommended) or all users of the
current client are to be recorded
d. Whether you want to record the request only or the response as well
2. Call the services to be monitored (if necessary, using the selected user).
3. Deactivate the recording (to prevent performance losses).
4. Display and process the recorded requests.
© Copyright. All rights reserved.
23
Unit 1: Administrating Technology Components for HTTP-based Communication
Note:
In the administrator settings (available on the Define Services screen in
transaction SICF under the menu path Goto → Settings), you can prevent the
ICF recorder from being used system-wide. You can use authorization object
S_ICFREC to control access to the request data using the ICF recorder.
SAP GUI for HTML
SAP GUI for HTML maps SAP screens to HTML pages. Technically, SAP GUI for HTML is
realized as ICF service /sap/bc/gui/sap/its/webgui.
Figure 14: SAP GUI for HTML
You start the SAP GUI for HTML by entering the URL http(s)://<server with
domain>:<ICM port>/sap/bc/gui/sap/its/webgui. Alternatively, start transaction
WEBGUI in SAP GUI for Windows or in SAP GUI for Java. The general remarks about the
properties of an ICF service that are stated above (such as client, logon language, and so on)
also apply here.
SAP GUI for HTML can also be used on touch based mobile devices such as Apple iPad and
Android tablets. For more details, refer to SAP Note 2792965 – Touch support for tablet
devices in SAPGUI for HTML.
Because of the technical attributes of HTML or the Web browser, the use of SAP GUI for
HTML is somewhat restricted as compared to the use of SAP GUI for Windows or SAP GUI for
Java:
●
The controlling of an OLE automation server is not possible.
●
Keyboard navigation is limited as known from other web applications.
●
Office integration is view only.
●
24
Some controls offered in SAP GUI for Windows used for special purposes (such as the
advanced ABAP Editor Control) are not available.
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
To see if a transaction is supported for use with SAP GUI for HTML, check the flags in
transaction SE93 (display the transaction code in question and check section GUI support).
Note:
For release-specific functionality and limitations of SAP GUI for HTML, refer to
SAP Note 314568 – SAP GUI for HTML functionality / Limitations / Sp. Behaviour.
SAP GUI for HTML Settings
Figure 15: SAP GUI for HTML Settings
The settings of a user are stored in the system database.
Note:
The communication between the web browser and the application server instance
is utilizing the ABAP Push Channels (APC) technology. Ensure that the ICF
service /sap/bc/apc/sap/webgui_services is active.
Frontend Sub-Records (FESR) Logging
To troubleshoot SAP GUI for HTML related performance problems, SAP GUI for HTML offers
Frontend Sub-Records (FESR) Logging. FESR Logging contains very detailed information
about the duration of the browser-to-server communication. It can be enabled on the SAP GUI
for HTML – Settings screen (see figure above), in area Tools → Performance → . From there,
the logging results can also be displayed.
For more information, see SAP Note 2981366 – How to use FESR Logging in ITS WEBGUI
(SAP GUI for HTML).
Prerequisites for SAP GUI for HTML
The following figure lists supported Web clients for SAP GUI for HTML.
© Copyright. All rights reserved.
25
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 16: SAP GUI for HTML Client Support
For details, please check the Platform Availability Matrix at https://support.sap.com/pam.
For more information on themes in SAP GUI for HTML, see SAP Note 1508958 – Look and
Feel in the WEBGUI and SAP Note 2540597 – Supported Themes for SAPGUI for HTML.
Prerequisites for SAP GUI for HTML
●
The ICF service /sap/bc/gui/sap/its/webgui is active and the property GUI Interface is set
to Yes.
●
The ICF service /sap/bc/apc/sap/webgui_services is active.
●
The SAP Internet Transaction Server (SAP ITS) is active.
Note:
Depending on the release of software component SAP_BASIS in your SAP system,
you have to activate further ICF services. For a detailed list, refer to SAP Note
2213657 – Which ICF services need to be activated in order to start SAP GUI for
HTML (WebGUI/HTML-GUI)?.
Hint:
For details on the SAP Internet Transaction Server (SAP ITS), see the next
section.
SAP Internet Transaction Server (SAP ITS)
SAP ITS Architecture
The SAP Internet Transaction Server (SAP ITS) is completely integrated in the infrastructure
of the AS ABAP: It is accessed via the ICM process, implemented as a number of ICF services,
and uses the database as an object storage location.
26
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
Figure 17: SAP ITS – Architecture
Besides the SAP GUI for HTML, SAP ITS also supports the Internet Application Components
(IAC) programming model.
Hint:
The HTML Business Templates mentioned on the figure above are relevant for
selected IACs, but not for SAP GUI for HTML.
SAP ITS Configuration
The SAP ITS is automatically installed with the SAP kernel as part of AS ABAP 6.40 and
above. To use the SAP ITS, the following prerequisites must be met:
Prerequisites for SAP ITS
●
The ICM process is operational and configured for HTTP(S).
●
Profile parameter itsp/enable is set to 1.
●
●
The required SAP ITS service is active in the ICF and the property GUI Interface is set to
Yes.
The ICF service/sap/public/bc/its/mimes is active in the ICF and the property GUI
Interface is set to Not specified.
For the SAP ITS, various profile parameters are relevant, which all begin with itsp/.
Administrations can use the usual methods to call documentation for individual parameters
(transaction RZ11) and change the assigned values permanently (transaction RZ10).
Two profile parameters are particularly significant in relation to the SAP ITS:
●
itsp/enable: You use this to deactivate (0) and activate (1) the SAP ITS. Even if the SAP ITS
is active, it uses the system resources only when it is actually used. However, it can be
useful to deactivate it for selected application servers (instances) so that no users can
access the SAP system via the SAP GUI for HTML with these instances (for example, batch
or update instances). Since the conversion of SAP screen images to HTML pages also
requires CPU time, it is useful to reserve a number of dedicated instances for use with SAP
GUI for HTML and to use a special logon group for load balancing between them.
© Copyright. All rights reserved.
27
Unit 1: Administrating Technology Components for HTTP-based Communication
●
em/global_area_MB: This parameter determines the memory commonly used by all ABAP
work processes of the SAP kernel. The SAP ITS uses it for session information and the
runtime version of the HTML Business templates. The required memory space depends on
the number of sessions currently in use, as well as on the number and size of the templates
used when users want to call and display services. If your users log onto the SAP ITS in
different languages or with different Web browsers (for example, Microsoft Edge and
Firefox), or if you require additional services that are not included in SAP GUI for HTML, the
number of templates used will increase and you will have to adapt em/global_area_MB
(see SAP Note 742048 – Integrated ITS, memory requirement in application server and
SAP Note 885580 – Integrated ITS: Configuration Parameters).
Alongside these profile parameters, which are evaluated by the kernel and affect the entire
SAP ITS, there are also service parameters, which affect the individual SAP ITS services. You
maintain these settings in transaction SICF.
The basic behavior (such as logon, anonymous logon data, service options, security
requirements, basic authorizations, and customized error pages) results from the properties
of the SAP ITS services in the ICF, as is also the case with “normal” ICF services. You maintain
other, SAP ITS-specific service parameters (that begin with ~) in transaction SICF on the
Create/Change a Service screen. Choose the Service Data tab and in the Interactive Options
area, choose GUI Configuration.
Hint:
For more information about these parameters, see the online documentation for
SAP S/4HANA (Product Assistance), area Enterprise Technology → ABAP
Platform → UI Technologies → SAP GUI → SAP GUI Technology → SAP GUI for
HTML. From here choose subentries
●
SAP ITS in SAP NetWeaver Application Server and
●
Configuration.
From subentry SAP ITS in SAP NetWeaver Application Server, you can also use a
link leading to the documentation of the Internet Communication Framework.
Developers create new SAP ITS services with the Web Application Builder for ITS Services, a
tool in the ABAP Development Workbench (transaction SE80; in the Repository Browser,
select Internet Service). By default, services are published to the (implicitly available) site of
the (integrated) SAP ITS. The SAP ITS service must also be created in the ICF, and can be
accessed with the URL http(s)://<server with domain>:<ICM port>/<ICF path>/
<ITS service name> (or by choosing Test Service for the service in question in transaction
SICF).
Hint:
After the installation or after an upgrade of an AS ABAP based SAP system, SAP
ITS services may not be executable in the SAP ITS, or the services that start may
not behave as they should in the current version because services are not
automatically published to the SAP ITS after an installation or upgrade. SAP Note
790727 – Publishing all ITS-objects at the same time and 2206029 – ITS errors
after an upgrade or change show how to solve this potential issue.
28
© Copyright. All rights reserved.
Lesson: Using the Internet Communication Framework (ICF)
SAP ITS Monitoring
The administrator can use the tools integrated in the AS ABAP (such as transactions SM21,
ST22, SMICM, and SICF) to monitor the SAP ITS. The SAP ITS does not have special trace
files, but instead uses the standard developer trace files of the work processes dev_w*.trc.
Developers can specially activate ICF and/or WebGUI tracing (in transaction SM50 (menu
path Administration → Trace → Active Components) or with program RSTRC000,
component WebGui).
They can also use transaction SITSPMON and program SITSPMON, which provides a detailed
status summary of the SAP ITS.
Figure 18: SAP ITS – Monitoring
The following list contains a number of selected monitoring functions for the SAP ITS:
●
●
●
●
Parameter: Status, message text, Feature Set version, and profile parameters
Memory Statistics: Overview and details about memory consumed by sessions and ABAP
work processes
Template & Mime Cache: Status and invalidation of caches for HTML templates and MIME
objects
Mutex Locks (from “mutual exclusion”): Technology for preventing simultaneous access to
a resource by several processes
For more information on features of the SAP ITS, see SAP Note 890606 – SAP NetWeaver
2004s integrated ITS: New Features.
Active Services for Web Dynpro ABAP
SAP Note 1088717 – Active Services for Web Dynpro ABAP in SICF lists the services in
transaction SICF which need to be activated for Web Dynpro ABAP applications, for the Web
Dynpro ABAP development environment as well as for Web Dynpro ABAP applications for
troubleshooting.
© Copyright. All rights reserved.
29
Unit 1: Administrating Technology Components for HTTP-based Communication
Additional Information on the Internet Communication Framework
Concerning the Internet Communication Framework (ICF), the following paths in SAP Online
documentation and the following SAP Notes might be helpful for further information:
●
Online documentation for SAP S/4HANA (Product Assistance), area
-
-
Enterprise Technology → ABAP Platform → Application Server ABAP - Infrastructure →
Connectivity → Components of SAP Communication Technology → Communication
Between ABAP and Non-ABAP Technologies → Internet Communication Framework
Enterprise Technology → ABAP Platform → UI Technologies → SAP GUI → SAP GUI
Technology → SAP GUI for HTML
●
SAP Note 517484 – Inactive services in the Internet Communication Framework
●
SAP Note 709038 – SAP Integrated ITS
●
SAP Note 698329 – Integrated ITS, WEBGUI/IAC logon fails
●
SAP Note 732218 – ICF: Logon data from SICF is not transported
●
SAP Note 2460180 – SSO failed in transaction NWBC, SOAMANAGER, SOLMAN_SETUP,
SM_WORKCENTER, DBACockpit, ILM_SB etc.
●
SAP Note 1088717 – Active services for Web Dynpro ABAP in transaction SICF
●
SAP Note 1508958 – Look and Feel in the WEBGUI
●
SAP Note 1555208 – ICF services become inactive after upgrade or SP update
●
SAP Note 2661761 – ICF Services - what is mandatory and what can be deactivated?
●
SAP Note 2710306 – All ICF services under DEFAULT_HOST are Inactive
●
SAP Note 2658822 – Release notes for SAP GUI for HTML (short WEBGUI)
LESSON SUMMARY
You should now be able to:
30
●
Explain the importance of the ICF for handling HTTP requests
●
Describe what constitutes an ICF service
●
Illustrate the idea of the ICF recorder
●
Perform changes to SAP GUI for HTML settings
●
List prerequisites for the use of SAP integrated ITS
© Copyright. All rights reserved.
Unit 1
Lesson 4
Maintaining UI-related Software Components
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Perform an update to the latest Unified Rendering patch
●
Perform an update to the latest SAPUI5 patch
Update Unified Rendering
Unified Rendering (UR) is a high performance client- and server-side HTML5 and JavaScript
based rendering UI library that is optimized for consumption of SAP legacy applications. It
was continuously improved over the years and will be further enhanced. Unified Rendering
combines flexibility with known SAP strengths such as enterprise readiness and full product
standard support:
●
●
One consistent user experience for your applications
Desktop based browser support for Google Chrome, Apple Safari, Mozilla Firefox,
Microsoft Edge and IE11 (Standards & Quirks Mode)
●
Feature-rich UI controls for handling complex UIs
●
Keyboard interaction support and accessibility features incl. ARIA support
●
Full translation support and right-to-left (RTL) enabled
●
Based on open standards like JavaScript, CSS, and HTML5
●
●
●
Support of all existing SAP themes including SAP Corbu, SAP Belize and High Contrast
Themes for SAP Fiori use cases
Powerful theming support to customize look & feel using SAP Theme Designer
Integration of active content (depends on browser): Adobe Forms, MS Office, Flash,
ActiveX, Java Applet
© Copyright. All rights reserved.
31
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 19: Unified Rendering
There are two variants of Unified Rendering available:
UR Lightspeed
●
●
●
●
●
Used by the UI frameworks Web Dynpro ABAP (Floorplan Manager), SAP GUI for
HTML, Web Dynpro Java and others
Based on a release-independent codeline
Fixes and browser adaptions delivered once a month as cumulative patch (for
example part of the Web Dynpro ABAP TCI Note or SAP Kernel for SAP GUI for HTML)
to ensure high quality
Version identifier based on the schema <year><month> (for example “2109”) and on
technical CSS theming version (for example “10.30.7.336851.0”)
New features are delivered indirectly by the UI frameworks, for example with a new AS
ABAP release or Support Package (Stack)
UR Classic (deprecated)
32
●
Used by SAP Enterprise Portal (Knowledge Management), BSP, BI BEX
●
No support for modern styles (Corbu, Blue Crystal, Belize)
© Copyright. All rights reserved.
Lesson: Maintaining UI-related Software Components
Figure 20: UR Architecture
The components of the UR architecture are:
●
●
●
Control-Interface & Control-Renderer
-
Common definition of HTML Renderer written in XML
-
Compiled into various programming languages (ABAP, C++, Java, JavaScript)
-
Used by multiple programming models
JavaScript Framework
-
Small initial JS Framework
-
On-demand loading and lazy instantiation of control specific JavaScript
-
Lazy instantiate of JS Controls
-
Client side capabilities
Theming
-
-
Based on LessCSS Theming using Theme Designer
UI Framework independent parameters shared by all SAP UI technologies (for example
SAPUI5)
The update procedure for UR Lightspeed depends on the UI framework:
●
●
●
An overall overview about the Unified Rendering Lightspeed patch process for all UI
Frameworks is given in SAP Note 2500800 – UR: General information about cumulative
patches for Unified Rendering
For SAP GUI for HTML, update the SAP Kernel (see SAP Note 2504011 – SAP GUI for
HTML: Unified Rendering Update - Instructions and Forecasts)
For Web Dynpro ABAP, use the TCI Note mechanism (as described below)
© Copyright. All rights reserved.
33
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 21: Available UR Version on AS ABAP
To check the version of UR in an ABAP-based SAP system, execute program
WDG_MAINTAIN_UR_MIMES (using transaction SA38, for example).
Figure 22: Maintain UR for Web Dynpro ABAP
To update UR Lightspeed for Web Dynpro ABAP in an ABAP-based SAP system, perform the
following steps:
1. Check if your SAP system is enabled for Transport-based Correction Instructions (TCI).
Consult SAP Note 2187425 – Information about SAP Note Transport based Correction
Instructions (TCI) and carefully read the attachment TCI_for_Customer.pdf.
2. If required: apply a SPAM/SAINT update.
3. Consult the central SAP Note 2090746 – WD ABAP: Unified Rendering Update with TCI Instructions and Related SAP Notes on Unified Rendering update with TCI to determine the
most recent TCI Note for your SAP release.
34
© Copyright. All rights reserved.
Lesson: Maintaining UI-related Software Components
4. Download the proper note using transaction SNOTE.
5. Import the TCI transport and the corresponding TCI UR SAP Note using transaction
SNOTE.
6. If you are using a custom theme, it might be necessary to install new theme meta data in
the ABAP Backend or SAP Enterprise Portal and to regenerate the custom theme:
●
●
Using the Theme Designer in AS ABAP: meta data is shipped using Web Dynpro ABAP
TCI Note.
Using Theme Designer in SAP Enterprise Portal: Themes are shipped with EPBASIS.SCA respectively EP-FLP.sca.
Related Information
●
SAP Wiki page on UR update at https://wiki.scn.sap.com/wiki/display/WDABAP/Unified
+Rendering+Update
●
●
●
SAP Note 2187425 – Information about SAP Note Transport based Correction Instructions
(TCI)
SAP Note 2090746 – WD ABAP: Unified Rendering Update with TCI - Instructions and
Related SAP Notes
SAP Note 2500800 – UR: General information about cumulative patches for Unified
Rendering
Patch SAPUI5
Introduction to SAPUI5
Figure 23: SAP UI Development Toolkit for HTML5
The SAP UI Development Toolkit for HTML5 (SAPUI5) is a client-side HTML5 and JavaScriptbased rendering UI library and programming model that is optimized for consumption of SAP
data. It combines new qualities such as openness and flexibility with known SAP strengths
such as enterprise readiness and product standard support.
© Copyright. All rights reserved.
35
Unit 1: Administrating Technology Components for HTTP-based Communication
SAPUI5 is a JavaScript-based library for modern Web business applications:
●
One consistent user experience for your apps
●
Responsive across browsers and devices (smartphones, tablets, desktops)
●
Feature-rich UI controls for handling complex UI patterns
●
Keyboard interaction support and accessibility features
●
Full translation support
●
Based on open standards like JavaScript, CSS3, and HTML5
●
Powerful theming support based on CSS
●
Using and including the popular jQuery library
To access the SAPUI5 SDK or the demo kit, visit https://sapui5.hana.ondemand.com.
Figure 24: Browser and Platform Support 1/2
Specific libraries may have different browser support. The single source of truth about
supported browsers and platforms is the Product Availability Matrix (PAM) that you can find
at https://support.sap.com/pam. SAPUI5 is not a product on its own, so please check the
PAM for the product you're using SAPUI5 with (for example: SAP S/4HANA 2020 for SAPUI5
1.84.xx).
To access the SAPUI5 Browser Support page, navigate to <Product Page in PAM> → General
Information → Details & Dates → Essential Information → Open in New Window → Browser
Support → <Page on SAPUI5>.
36
© Copyright. All rights reserved.
Lesson: Maintaining UI-related Software Components
Figure 25: Browser and Platform Support 2/2
The figure shows the details for software component SAP_UI 7.56 with SAPUI5 1.96.xx, as an
example. For more information, see SAP Note 1716423 – SAPUI5 Browser Support. For the
browser and platform support of the SAPUI5 Demo Kit, please refer to the Browser and
Platform Support section in the online documentation.
Figure 26: Versioning of SAPUI5
The figure Versioning of SAPUI5 explains the version schema of SAPUI5.
© Copyright. All rights reserved.
37
Unit 1: Administrating Technology Components for HTTP-based Communication
Maintaining SAPUI5
Figure 27: Maintenance Strategy
SAPUI5 provides innovations on a regular basis through maintenance versions and innovation
versions. As long as an SAPUI5 version is still in maintenance, SAP provides patches with
fixes. An innovation version is only maintained until the next version of SAPUI5 is released.
Maintenance versions have an extended maintenance period in which SAP still provides
patches even though a higher version is already available. This is because the SAPUI5 version
is included in a release of the SAP_UI component. For example, the following version has an
extended maintenance: 1.84, as SAPUI5 version 1.84 is included in SAP_UI 7.55. In the version
overview at https://sapui5.hana.ondemand.com/versionoverview.html, you can see which
SAPUI5 versions have an extended maintenance.
For more information on the SAPUI5 maintenance strategy for AS ABAP, see SAP
Note 2217489 – Maintenance and Update Strategy for SAP Fiori Front-End Server. To view the
documentation for a specific version, check at https://sapui5.hana.ondemand.com/
versionoverview.html which versions are available. You can view the version-specific Demo Kit
by adding the version number to the URL, for example https://sapui5.hana.ondemand.com/
1.96.12. To get an overview of the new features of each version, see What's New in SAPUI5. To
see the fixes contained in each patch check the Change Log.
38
© Copyright. All rights reserved.
Lesson: Maintaining UI-related Software Components
Figure 28: Available SAPUI5 Versions in AS ABAP
In the above-mentioned URL, replace
●
<hostname> with the host name
●
<domain> with the domain
●
<port> with http(s) port
of your ABAP System (ICM process or SAP Web Dispatcher).
Figure 29: Maintain SAPUI5
Perform the following steps to patch SAPUI5:
1. Consult SAP Note 2217489 – Maintenance and Update Strategy for SAPUI5.
© Copyright. All rights reserved.
39
Unit 1: Administrating Technology Components for HTTP-based Communication
2. Download the proper patch file (UI5CLIENT##P_##-#######.ZIP): see SAP Notes with
title ABAP SAPUI5 <Version> release.
3. In the development system, create a Transport Request of type Workbench Request.
4. Avoid Timeouts in Dialog Processing: Set Profile Parameter rdisp/scheduler/prio_normal/
max_runtime = 3h (three hours).
5. Upload SAPUI5 Patch: execute program /UI5/UI5_UPLOAD_PATCH_TO_MIME (in test
mode first).
6. Release the Transport Request in the development system.
7. Import the Transport Request into the next stages (quality assurance and production,
typically).
Figure 30: Program /UI5/UI5_UPLOAD_PATCH_TO_MIME
LESSON SUMMARY
You should now be able to:
40
●
Perform an update to the latest Unified Rendering patch
●
Perform an update to the latest SAPUI5 patch
© Copyright. All rights reserved.
Unit 1
Lesson 5
Configuring SAP Gateway
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Explain OData
●
Explain SAP Gateway
●
Perform basic configuration steps for SAP Gateway
●
Enable SAP Gateway soft state
●
Configure SAP Gateway routing
OData Standard
Figure 31: Architecture of the World Wide Web
One important aspect of the architecture of the World Wide Web is the use of abstract
interfaces for component communication. These abstract interfaces are presented as
connectors. A client and a server each use a connector component. There is a contract
between both connectors that defines the application protocol. It defines the documents,
their format, and the behavior. Any protocol can be chosen. By using the connector concept,
both client and server are largely independent and exchangeable. Each connector translates
the documents exchanged on the communication channel to the internal representations
both on the server and on the client side, and vice versa.
© Copyright. All rights reserved.
41
Unit 1: Administrating Technology Components for HTTP-based Communication
The OData protocol defines such a contract by specifying a uniform protocol that has the
necessary qualities. For instance, a connector attached to an SAP back-end system
translates between ABAP APIs and OData entities. SAP Gateway is such a connector.
On the other side, a client connector translates between OData entities and the APIs of the
consumer platform. The connector is specified here. As a consequence, any client platform
with libraries supporting the contracted OData format can communicate with any server
supporting the same contract.
OData follows the Representational State Transfer (REST) architecture design paradigm in
the sense that the protocol transfers representations of the state of resources. The term
resource denotes data that is addressable and accessible. The standard address
representation or resource is the Uniform Resource Identifier (URI). A client requests a
resource from a server by sending a request to a URI. The server processes the request by
translating the URI to internal address data to access or manipulate the data, and then
assemble the response.
Open Data Protocol
Figure 32: Open Data Protocol
OData is an open standard originally developed by Microsoft but now managed by the Oasis
Organization. It is based on the Atom Publishing and Atom Syndication standards, which, in
turn, are based on XML (Extensible Markup Language) and
HTTP(S) (HyperText Transfer Protocol (Secure)). JSON (JavaScript Object Notation) is an
alternative to XML to structure data.
The objective of the OData protocol is to provide a vendor-neutral, web-based API that fully
complies with the design principles of Representational State Transfer (REST). OData
provides database-like access to server-side resources. In this context, OData is also called
ODBC for the Web.
Note:
Open Database Connectivity (ODBC) is a widespread database access method.
42
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
OData is also extensible. This enables SAP to supplement the data types used by OData with
extra information from the ABAP Data Dictionary. Another example is metadata-driven
development for Web and mobile like SAP Fiori elements.
OData is available in version 2 (V2), version 3 (V3), and version 4 (V4). The versions are built
on each other extending the previous version by adding new features. The majority of OData
services are based on V2. SAP Gateway supports OData V2 since AS ABAP 7.00 and
OData V4 since AS ABAP 7.50. OData V3 was skipped in SAP Gateway and is therefore not
supported.
SAP Gateway Foundation
Figure 33: OData Provider
SAP offers a variety of OData providers. SAP Gateway (up to the end of 2014 known as
SAP NetWeaver Gateway) provides a single entry point to access business data of ABAPbased systems such as the SAP Business Suite or SAP S/4HANA. The
SAP HANA Extended Applications Services (XS) has the same role in SAP HANA – just to
name another important OData provider.
Caution:
SAP Gateway must not be confused with the kernel’s gateway process used for
communication via RFC.
By using OData, business data can be shared among multiple environments and platforms.
SAP knowledge is not required for the consumption of the data. Usually client-based
applications consume SAP Gateway services and interact directly with the user. Applications
in a Web browser are a common example.
However, it is also possible for an SAP Gateway service to be used as an API (Application
Programming Interface) by a server-based application. Additional servers can be added to the
communication path to enhance the possibilities for client and server. For mobile devices, the
SAP Mobile Services add additional value to the applications.
© Copyright. All rights reserved.
43
Unit 1: Administrating Technology Components for HTTP-based Communication
For AS ABAP 7.00 to 7.31, SAP Gateway consists of individual add-ons that provide the OData
functionality. These can be divided into the following areas:
Runtime
Provides the OData and thus the SAP Gateway service externally via the URI.
Design Time
Contains the development environment and programs for processing the requests to the
service.
First introduced in AS ABAP 7.40 and finalized in AS ABAP 7.51, all add-ons are merged in the
software component SAP_GWFND (SAP Gateway Foundation). This offers everything needed
for the OData runtime and design time.
Note:
Some SAP Gateway add-ons may still exist in an AS ABAP 7.51 after an upgrade.
These are deprecated and should be uninstalled. Either their functions are now
part of software component SAP_GWFND or they are no longer supported.
SAP Gateway Deployment Options
Figure 34: SAP Gateway Deployment Options
There are three possible deployment options for SAP Gateway (hub is a synonym for frontend server (FES)):
Hub deployment with development in back-end server (BES)
A hub deployment offers the possibility of routing and composition of multiple back-end
systems. It is the single point of access to back-end systems when using OData. This
increases security and flexibility in operation.
This is the recommended setup for SAP Business Suite.
Hub deployment with development in front-end server (FES)
44
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
When developing in the FES, data is only read via RFC-enabled function modules from the
BES, which enables access to data of a BES not able to provide an OData service on its
own. This grants more freedom in selecting a system as data source.
This is the recommended setup for integrating multiple BES with different releases.
Embedded deployment
When developing in the BES, the application source code has direct access to the
definition of the data and other repository objects. This increases performance and
efficiency in development.
This is the recommended setup for SAP S/4HANA.
SAP Gateway Components
Figure 35: SAP Gateway Components
For AS ABAP 7.00 to 7.31, SAP Gateway consists of individual add-ons that provide the OData
functionality. The OData runtime consists of the Gateway Core (GW_CORE) and the
Information Worker Foundation (IW_FND) and thus contains the service registration as well
as the runtime. The central add-on Business Enablement Provisioning (IW_BEP) of the design
and service provider runtime contains the tools for service implementation. Other add-ons
can also be installed, for example:
●
Process Gateway Workflow (IW_PGW)
●
Generic Interaction Layer (IW_GIL)
●
Service Provider Infrastructure (IW_SPI)
As of AS ABAP 7.40, GW_CORE, IW_FND, IW_BEP, and IW_HDB (SAP HANA Database) have
been merged in software component SAP_GWFND (Gateway Foundation). This offers
everything needed for the OData runtime and implementation. The additional add-ons that
are still possible are grouped together in data model consumption and generators.
As of AS ABAP 7.51, IW_PGW has been merged in addition into software component
SAP_GWFND. This offers general SAP Workflow functionality via SAP Gateway especially
used in the area of SAP Fiori. In addition, all other SAP Gateway add-ons are deprecated and
© Copyright. All rights reserved.
45
Unit 1: Administrating Technology Components for HTTP-based Communication
should be uninstalled. Either the functions are now part of software component SAP_GWFND
or they are no longer supported.
Note:
SAP Gateway in AS ABAP 7.00 up to 7.31 is often referred to as SAP Gateway 2.0.
Starting with AS ABAP 7.40, the new term is SAP Gateway Foundation like in
SAP_GWFND.
Figure 36: SAP Gateway Foundation Support Package Stack Mapping
Starting with SAP NetWeaver 7.50 SP03, new developments in SAP Gateway have only been
performed for the software component SAP Gateway Foundation (SAP_GWFND) in the
highest SAP NetWeaver release.
Starting with SAP NetWeaver 7.52 SP01, it has been decided to downport the following
structure packages and their sub-packages of the SAP Gateway Foundation framework to
SAP NetWeaver 7.51:
●
/IWFND/FRAMEWORK
●
/IWBEP/FRAMEWORK
●
/IWCOR/TD_CSI
This includes the latest development for the SAP Gateway foundation framework for
OData V4 as well as for OData V2. It does however not include the components of the
Notification Channel.
Please note that
1. in certain use-cases there might be slight variations in the functionality.
2. not all functionalities have been down-ported (see list of down-ported software packages
above).
As a result, the above mentioned sub-packages of the SAP Gateway framework in
SAP NetWeaver 7.52 SP01 are equivalent to their counter parts in the SAP Gateway
framework in SAP NetWeaver 7.51 SP05 and SAP NetWeaver 7.50 SP11.
46
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
The same is true for higher releases to their counter parts visible in the table. The last
available down-port for SAP_GWFND 7.50 is included in SP12. The last available down-port for
SAP_GWFND 7.51 is included in SP09. No further down-ports are planned for these releases.
Please find more information in SAP Note 2512479 - SAP Gateway Foundation Support
Package Stack Definition.
SAP Gateway Administration
Figure 37: Basic SAP Gateway Configuration
There are four steps needed as basic configuration in SAP Gateway to enable the
communication via OData:
1. Create RFC destination to BES in FES (not needed for embedded deployment)
2. Activate SAP Gateway in FES (in BES for embedded deployment)
3. Create system alias in FES (optional for embedded deployment)
4. Activate ICF nodes under /sap/opu in FES (in BES for embedded deployment)
© Copyright. All rights reserved.
47
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 38: System Alias Settings
Depending on the deployment option of SAP Gateway, the system alias needs certain
settings:
●
In a hub deployment with development in BES, neither the flag Local GW nor Local App
must be set.
●
In a hub deployment with development in FES, only the flag Local App must be set.
●
In an embedded deployment, only the flag Local GW must be set.
The last combination with both flags set is only used in an embedded deployment for services
developed originally for the hub deployment with development in FES.
Note:
The system ID and client for a system alias is used as a filter when registering an
SAP Gateway service via the SAP Gateway Service Builder. This makes it easier for
the developer to choose the correct system alias and therefore reduces errors.
48
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
Figure 39: OData on Back-End and Co-Deployed
Since AS ABAP 7.50 SP04 it is possible to route the whole processing of the OData request to
the BES. The feature was called Micro Hub in AS ABAP 7.50 but was renamed to OData on
Backend in AS ABAP 7.51. This may increase the performance of the service calls depending
on the scenario concerning workload in FES and BES or of the network. The following steps
are needed to enable OData on Backend for an SAP Gateway service:
1. Define a system alias in FES with flag OData on Backend enabled.
2. Register a service in FES using this system alias in processing mode Routing-based.
3. Register the same service in BES using no system alias in processing mode Co-deployed
only.
In addition to the feature OData on Backend in a hub deployment, it is recommended today to
register SAP Gateway services in an embedded deployment in processing mode Co-deployed
only. This increases the general performance of OData requests by skipping any
communication part in an AS ABAP normally involved when connecting FES to BES.
© Copyright. All rights reserved.
49
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 40: SAP Gateway Alias
Beside the system alias connecting FES to BES, the SAP Gateway alias enables connection
from BES to FES. This is not needed for calling an SAP Gateway service but gets useful when
developing one. There are two steps needed to enable developers to register, manage, and
test their OData services via the SAP Gateway Service Builder (transaction SEGW):
1. Create RFC destination to FES in BES (not needed for embedded deployment)
2. Create SAP Gateway alias in BES
Figure 41: SAP Gateway Task Lists
In the Task Manager for Technical Configuration (transaction STC01), several task lists are in
place to make initialization and handling of SAP Gateway easier:
SAP_GATEWAY_BASIC_CONFIG (since AS ABAP 7.40)
Performs basic configuration like activating SAP Gateway, central ICF-nodes, and
metadata cache.
SAP_SAP2GATEWAY_TRUSTED_CONFIG (since AS ABAP 7.40)
50
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
Creates and configures a trusted RFC connection between BES and FES including single
sign-on.
SAP_GATEWAY_ACTIVATE_ODATA_SERV (since AS ABAP 7.40)
Registers a list of SAP Gateway services routing-based or co-deployed.
/IWFND/TL_SERVICE_MAINTENANCE (since AS ABAP 7.54)
Enable mass maintenance of SAP Gateway services like handling system alias
assignment, setting processing mode, service deletion or transport.
SAP Gateway Tools
Figure 42: SAP Gateway Service Maintenance (OData V2)
The SAP Gateway Service Maintenance (transaction /IWFND/MAINT_SERVICE) provides a list
of all the OData V2 services registered in the system. Complete management of the
SAP Gateway services is carried out here. The transaction is divided into three areas:
●
Service Catalog (service name, description, and many other settings)
●
ICF Nodes (maintenance of the ICF services and testing of the service)
●
System Aliases (maintenance of the connection to the back-end)
Hint:
For services not connecting to other systems, the Processing Mode is set to Codeployed only and no system alias is assigned.
© Copyright. All rights reserved.
51
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 43: SAP Gateway Service Administration (OData V4)
OData V4 services are not registered as single instances. Instead a service group consisting of
multiple services is published. These service groups are created using the SAP Backend
Service Administration (transaction /IWBEP/V4_ADMIN) and shipped by SAP or created by
developers.
The SAP Gateway Service Administration (transaction /IWFND/V4_ADMIN) is used to publish
service groups so that the services inside can be consumed in applications.
Hint:
The default service group /IWBEP/ALL consists of all SAP Gateway services in
the BES. This makes it easier for developers to test their services in a
development system. It should never be published on a productive system.
52
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
Figure 44: SAP Gateway Client
Using the SAP Gateway Client (transaction /IWFND/GW_CLIENT), all functions of an OData
service can be tested. For a read request, it is enough to enter the request URI and execute.
For a create, update, and delete request, additional adjustments must be made, for example,
a request body filled with data must be created. All adjustments can be saved as test cases
for later usage.
The SAP Gateway Client can handle data formats like XML (Atom) and JSON for both OData
V2 and V4 services.
Apart from these transactions, there are several more for SAP Gateway. All transactions are
connected to each other via buttons and menu entries. Therefore, you can jump from the
service maintenance to the client and back.
SAP Gateway Maintenance
Figure 45: SAP Gateway Transactions
© Copyright. All rights reserved.
53
Unit 1: Administrating Technology Components for HTTP-based Communication
SAP Gateway is available in two branches (runtime and designtime) in the SAP Reference
Implementation Guide (transaction SPRO) but also offers many transactions. Beside the SAP
Gateway Service Builder (transaction SEGW) for developers, the transactions can be
categorized in administration, management and monitoring. If a transaction starts with
IWFND, it is connected to OData runtime (for hub deployment in FES). If it starts with IWBEP,
it is connected with designtime (for hub deployment in BES)
Administration
/IWFND/IWF_ACTIVATE
(De-)Activate SAP Gateway for the whole system.
/IWFND/ROUTING
Define system aliases for accessing ABAP systems via RFC.
/IWFND/SOFTSTATE
(De-)Activate soft-state mode for all SAP Gateway services in the system.
Caution:
Please check SAP Note 1986626 – Request could not be processed in soft
state mode before activating.
/IWBEP/GLOBAL_CONFIG
Settings for logs, traces, and caching.
Management
/IWFND(IWBEP)/CACHE_CLEANUP
Cleanup model cache in run- and designtime.
/IWFND/NOTIF_CLEANUP
Cleanup notifications in run- and designtime.
/IWFND/MED_ACTIVATE
(De-)Activate metadata cache for the whole system.
Monitoring
/IWFND/APPS_LOG
View general messages of services.
/IWFND(IWBEP)/ERROR_LOG
View error messages of services for run- and designtime.
/IWFND(IWBEP)/NOTIF_MONITOR
View notification queue status for run- and designtime.
/IWFND(IWBEP)/TRACES
Run and view performance and payload traces for run- and designtime.
/IWFND/STATS
View request statistics of services.
54
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
Figure 46: Periodical Tasks for SAP Gateway
SAP Gateway offers some cleanup jobs to ensure that the software runs with optimal
performance. The frequency specified depends on the load in your system to avoid a waste of
disk and memory space. The SAP Reference Implementation Guide (transaction SPRO) offers
sections for cleanup tasks for FES and BES. The following jobs can be scheduled directly in
SPRO running daily at 3 am:
Front-End Server
SAP_IWFND_SUP_UTIL_CLN
This job deletes logs of support utilities, such as error logs, traces, and performance logs.
SAP_IWFND_APPS_LOG_CLN
This job deletes SAP Gateway entries from the application log.
SAP_IWFND_NOTIF_CLN
This job deletes the SAP Gateway notifications.
Back-End Server
SAP_IWBEP_SUP_UTIL_CLN
This job deletes logs of support utilities, such as error logs, traces and performance logs.
SAP_IWBEP_QRL_CLN
This job deletes the entries of the query result log.
In addition to these automatically scheduled jobs, the report /IWFND/R_SM_CLEANUP offers
several cleanup scenarios. In SPRO, it can be run directly or scheduled as job using report
variants for several scenarios like clean up the Application Log Viewer (scenario /IWFND/
CLEANUP_APPSLOG) or Error Log (scenario /IWFND/SUPPORT_UTILITIES).
© Copyright. All rights reserved.
55
Unit 1: Administrating Technology Components for HTTP-based Communication
Note:
When activating SAP Gateway, the following jobs are scheduled automatically:
●
SAP_IWFND_METERING_AGG
●
SAP_IWFND_METERING_DEL
If the jobs are not running periodically, the system will need more disk resources
than expected. These jobs are only carried out in one client, but they are also
doing this for the other clients. When deactivating SAP Gateway, the jobs are
deleted automatically, as long as SAP Gateway is not active in another client.
SAP Gateway Soft State
Figure 47: Soft State Caches
By default, OData communication is stateless. There are however certain business scenarios
that do require the caching of data to improve the performance.
Since SAP Gateway 2.0 SP09 (SAP_GWFND 7.40 SP08), soft state enables the SAP Gateway
runtime to process several requests in one ABAP application server session in a similar way to
stateful behavior. The only difference is the behavior of the application server after the
session times out: Instead of breaking the request processing with a time-out exception, the
server creates a new session and processes the request as usual. The only thing that the
consumer will observe is that the response time will be higher because data that was
previously cached must be read or calculated again.
The session that is held by the Internet Communication Framework (ICF) results in a session
held in the back-end system via RFC. There, the data (variables) processed in the
SAP Gateway design time is cached in the data provider cache.
In addition, the Soft State Based Query Result Cache (SQRC) resides in the FES. If the client
only wants to navigate through a result set, it can serve as a cache, avoiding unnecessary calls
to the BES.
56
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
Figure 48: Enable Soft State
Using SAP Gateway Service Maintenance (transaction /IWFND/MAINT_SERVICE), the soft
state is activated for single services supporting soft state. As a prerequisite, the session time
out for the ICF node must be set to a value larger than 0. This can also be done from within
SAP Gateway Service Maintenance using the ICF Node button.
Note:
Transaction /IWFND/SOFTSTATE allows (de-)activation of soft state mode for all
SAP Gateway services in the SAP system.
Figure 49: Soft State Based Query Result Cache (SQRC)
© Copyright. All rights reserved.
57
Unit 1: Administrating Technology Components for HTTP-based Communication
The first service request using SQRC is significantly higher compared to a similar request
without. The whole data is read at once from the database and cached. All following requests
before the timeout read the next portion of data from the cache. This reduces the application
time to 0, which also means that there is no RFC communication with the BES.
SQRC should only be used if all of the following conditions apply:
●
The data retrieval is very expensive (slow).
●
Caching of large data sets must be avoided.
●
Cached data is not often changed.
●
Memory is sufficiently available.
SAP system resources are occupied as long as the session is active. The more services that
run in soft state mode in parallel, the more resources are permanently occupied. Therefore,
the timeout should be very short. For more details, please read SAP Note 1986626 – Request
could not be processed in soft state mode.
SAP Gateway Routing
Figure 50: Routing Capabilities
Multiple system aliases can be assigned to an SAP Gateway service catalog entry. By this, the
same service logic can be called in multiple back-end servers (BES) by means of routing rules
working on the data available in the different databases. The most basic rule is setting one
alias as default. Only this one is then used. The others can be used as backup (for example
when the main BES is not reachable) or accessed by applying further routing rules.
58
© Copyright. All rights reserved.
Lesson: Configuring SAP Gateway
Figure 51: Routing via Role Assignment
By assigning a user role to a system alias for an SAP Gateway service catalog entry, the alias
can only be used by users that have this role assigned to them. Nothing has to be set in the
user role, especially no authorizations. It is not about authorizing a user in some way, it is
about routing a certain group of users to a certain BES. The grouping element for this is a user
role.
Figure 52: Routing via Request URI
When the user has multiple system aliases assigned to him via the user roles, the one with the
default flag is used. The ones without the default flag can be accessed by adding the alias as
origin to the request URI. Trying to access a system using an alias not assigned to the user
results in an error.
© Copyright. All rights reserved.
59
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 53: Multiple Origin Composition
By adding the option for multiple origin (mo) to the request URI, all systems that the user has
an alias assigned to are called. The sum of all data from all BESs is merged on the front-end
server (FES) and provided to the application.
The prerequisite for all routing features is the identical service logic in the BESs for a certain
service registration. It is not guaranteed to work when the service logic differs from BES to
BES.
Additional Information on SAP Gateway
For more information on SAP Gateway, see
●
SAP Gateway Community: https://community.sap.com/topics/gateway
●
SAP Gateway Documentation: https://help.sap.com/nwgateway
●
SAP Note 1560585 – SAP Gateway 2.0 Release Note
●
SAP Note 1574568 – SAP Gateway Foundation and SAP Gateway 2.0 - Known Constraints
●
SAP Note 1942072 – SAP Gateway 2.0 Support Package Stack Definition
●
SAP Note 1986626 – Request could not be processed in soft state mode
●
SAP Note 2512479 – SAP Gateway Foundation Support Package Stack Definition
LESSON SUMMARY
You should now be able to:
60
●
Explain OData
●
Explain SAP Gateway
●
Perform basic configuration steps for SAP Gateway
●
Enable SAP Gateway soft state
●
Configure SAP Gateway routing
© Copyright. All rights reserved.
Unit 1
Lesson 6
Describing Web Services in AS ABAP
LESSON OVERVIEW
A Web service is a standardized way of integrating web-based applications using the open
standard XML over an Internet Protocol backbone.
This lesson first explains some basic terms in the context of Web services. Then it explains the
basic steps to create a Web service from an existing function module. Finally, there is a
section on the transport of Web services in an SAP system landscape.
Business Example
Your company is running a heterogeneous system landscape using different technologies.
They want to use Web services for data exchange between these different technologies.
As an administrator, you want to know how you can configure your AS ABAP based SAP
system so that it can provide Web services.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Name a use case for Web Services
●
Explain the Web Service paradigm
●
●
List the steps to create a Web Service from a function module using the inside-out
approach
List options to perform binding in the production environment
Introduction
Business processes are divided into process steps. You can assign one or more functions to
each of these steps and an executing software component to each of these functions. In a
typical heterogeneous (or even hybrid) system landscape in a company, the necessary
functions in a global process are not all implemented using the same technology or the same
components. The integration of an ever-increasing number of business partners, in particular,
complicates this problem further. A modern software infrastructure must therefore be able to
integrate functions that are implemented on different software components into an efficient
global process.
Internet technology provides the basis for calling and communicating with distributed
services. Superimposed onto this simple, globally-accepted communication standard, XML
provides the basis for defining additional necessary standards. Only when you move away
from proprietary definitions and towards generally accepted standards, there is a guarantee
of smoothly integrating all the functions and partners involved in the process. The result is
Web services.
The following figure shows the Ariba Procure-to-Pay scenario as an example that widely uses
Web services: Here Web services are used to communicate with SAP Integration Suite
(formerly known as SAP Cloud Platfrom Integration – CPI) on SAP Business Technology
© Copyright. All rights reserved.
61
Unit 1: Administrating Technology Components for HTTP-based Communication
Platform. SAP Integration Suite can be accessed with Web services both from AS ABAP based
SAP systems and from the SAP Ariba side.
Figure 54: SAP Ariba Procure-to-Pay with SAP Integration Suite as an Example for the Use of Web Services
A Web service is an independent, modular, and self-describing application function or service.
Based on XML standards, these application functions can be described, made available,
located, transformed, or called using standard Internet protocols.
Each Web service therefore encapsulates a function, which is used, for example, to forward a
price query to a provider, check the availability of an item in a retail system, locate a telephone
number, or run credit card checks, convert currencies, or execute payroll functions.
The following figure shows the Web service paradigm:
Figure 55: Web Service Paradigm
62
© Copyright. All rights reserved.
Lesson: Describing Web Services in AS ABAP
A service provider provides access to a service. If a service is a Web service, the service
provider has a corresponding XML-based description that is a Web Services Description
Language (WSDL) document. Any programming language can be used to implement the Web
service. In a client/server relationship, the service provider can be regarded as the server.
When publishing a service, the service provider transmits information about itself and a
description of the service it offers to the service registry. A service registry is a type of yellow
pages for Web services. A service registry provides, among other things, information about
calling the Web service. It therefore provides only a description of the Web service. This
description forms an abstraction layer, independent of the corresponding implementation.
The Web service itself is hosted by the service provider.
A Web service user is referred to as a service requester. A service requester can, for example,
be someone who locates a Web service using a web browser and then uses the service. In
most cases, however, the service requester is an application that accesses the Web service.
The application can also bind to the service dynamically if required, that is, the application can
dynamically create a Web service client proxy at runtime and use this proxy to access the
Web service. The application obtains the necessary information for accessing the Web service
from the service description.
This information is then stored in the service registry. However, if the application knows the
provider and the call details, it can use the Web service without having to access the service
registry. In a client/server relationship, the service requester is the application client.
Standards
Web services can exist in any implementation. Therefore, a standardized description is
required if Web services are to be called from any application. The WSDL best meets this
demand. However, a Web services description in WSDL alone is not sufficient. To find the
right business partner and corresponding service quotation, you need a service registry to
help you to find the required service.
The Web service provider must also be able to make its offer publicly available as easily as
possible. The Universal Description, Discovery and Integration (UDDI) offers a solution. For
more information, see http://uddi.xml.org.
The following list explains some standards that are used with Web services:
UDDI Registry (Universal Description, Discovery and Integration)
With its UDDI Registry and UDDI specification, UDDI provides the necessary tools for
making services public. The specification provides a detailed description of how to locate
and register services. The UDDI Registry contains a list of registered Web services in
WSDL format. The UDDI Registry does not store documents or specifications, but only
references them.
SOAP
To call Web services based on Internet technologies, a suitable protocol definition is
needed. SOAP has created a simple standard that allows Web services to be accessed in
decentralized, distributed landscapes. SOAP specifies a package of XML documents for
transport via Internet protocols such HTTP(S), SMTP, or FTP. SOAP defines a so-called
envelope. In this envelope, you will find the actual XML-based message with a header and
a body, as well as further information about how the message should be processed.
WSDL (Web Service Description Language)
WSDL is an XML-based description language for Web services. The WSDL Service
definition includes the description of distributed systems and provides instructions for
© Copyright. All rights reserved.
63
Unit 1: Administrating Technology Components for HTTP-based Communication
automating data exchange between applications. The Web Service Description Language
is used to describe Web services or electronic services in XML format. A service is
defined as a collection of endpoints (ports) and the messages they work with. By using
WSDL, a service provider can describe the requirements and features of their Web
service so that a potential customer understands them and interacts properly with the
service.
Structure of a WSDL File
The WSDL describes services as collections of network endpoints, or ports. The WSDL
specification provides an XML format for documents for this purpose. The abstract definitions
of ports and messages are separated from their concrete use or instance, allowing the reuse
of these definitions. A port is defined by associating a network address with a reusable
binding, and a collection of ports defines a service.
The following figure gives an example on the structure of a WSDL file.
Figure 56: Parts of a WSDL File
The WDSL file consists of the following parts (see the figure above):
●
●
●
64
Definition: The definition element is the root element in which the different namespaces
are defined.
Types: Describes the data in XML format.
Messages: A message typically corresponds to an operation. The message element
consists of one or more logical parts. Each part element references a type that is defined in
the types element. A part could represent for example a parameter of a message or a
function call.
© Copyright. All rights reserved.
Lesson: Describing Web Services in AS ABAP
●
●
●
Operation: Operation is an abstract term for the possible SOAP action of a Web service.
Each operation consists of one to three messages in addition to the name: an input, an
output and possibly a fault message.
Port Type: Defines the operation of a Web services that can be performed.
Binding: Defines the operation as well as the interface and the data format (SOAP, HTTPGET, and so on)
●
Service: A set of similar connection points or address that is defined in the port element.
●
Port: Defines the connection point or the address (URL) of a Web service.
Creation of a Web Service Using the Inside-Out Approach
There are two different development approaches for developing ABAP Web Services: InsideOut and Outside-In.
●
●
With the Inside-Out approach, independent function modules that have been implemented
as RFC-enabled function modules, as function groups, or as BAPIs are provided as a Web
service. The Web service can be used across the entire Internet using standard protocols
and can easily be added to any development environment.
In the Outside-In approach, the development of Service Interfaces starts in a platform
independent format, mostly XML. With the Enterprise Services Builder, SAP offers a tool,
that supports the platform independent development of Service Interfaces. Connected
application systems can read these interfaces. Using the ABAP Proxy technology, a
developer can create an ABAP Object that consists of one or more ABAP Methods. Since
development begins outside the application system, this approach is called Outside-In.
Note:
This lesson focuses on the Inside-Out approach. For more information concerning
the Outside-In approach, see SAP training class BIT102 – SAP Integration
Technology Interfaces II (Web Interfaces).
The following figure explains how to create a Web service from an existing function module
(such as Z_BAPI_FLIGHT_GETDETAIL):
© Copyright. All rights reserved.
65
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 57: Creation of a Web Service Using the Inside-Out Approach
This consists of the following three main steps:
●
●
●
Step 1: ABAP Implementation: As a starting point, you need a function module (such as
Z_BAPI_FLIGHT_GETDETAIL in the figure above). Among others, this function module
consists of import and an export parameters (interfaces). These interfaces need to be
used to make use of the functionality that this function module offers.
Step 2: Create Web Interface – ABAP to XML: For the use with Web services, the input and
output interfaces need to be provided in XML. The mapping of the ABAP structures (such
as parameters) to XML will be done with the help of a generator which can be called from
the Function Builder (transaction SE37) which in turn is part of the ABAP Workbench. As a
result, you get the Service definition for the function module. Among others, this Service
definition consists of an (abstract) WSDL and a first configuration.
Step 3: Configuration in transaction SOAMANAGER: With the help of transaction
SOAMANAGER, all necessary configurations are finally performed. This includes the creation
of a concrete WSDL according to the WSDL 1.1. definition and the creation of a Service in
transaction SICF so that the Web service can then be called.
Tools
For developing Web services at SAP, some tools are needed:
●
●
●
For the implementation of the functionalities on the provider side and the call of these
functionalities on the consumer side, you need the ABAP Workbench for the development.
For the configuration of the Web service on the provider side and on the consumer side
SAP offers transaction SOAMANAGER.
For testing Web services SAP offers the Web Service Navigator (WSNavigator), which is a
Web service client, implemented in Java.
For developing Web services, SAP offers the transaction SOAMANAGER in the SAP back end,
which allows you to configure Web services based on the Proxy Technology. You can use
transaction SOAMANAGER for the complete configuration of service provider and consumer
proxies for a local system.
66
© Copyright. All rights reserved.
Lesson: Describing Web Services in AS ABAP
Figure 58: SOAMANAGER - Initial Screen
●
●
The Service Administration tab offers functionality to set up configuration to support
business processes with Web services. This functionality is intended for business
administrators who manage business processes across systems in a system landscape.
To set up SOAMANAGER for local access, you do not need to perform any special steps. The
Management Connections tab allows you to set up SOAMANAGER for remote access to
other systems.
The following prerequisites must be fulfilled to use transaction SOAMANAGER:
●
●
●
You have administration authorization (as shipped in SAP roles
SAP_BC_WEBSERVICE_ADMIN_TEC or SAP_BC_WEBSERVICE_CONFIGURATOR).
In transaction SICF, you have activated the following nodes:
-
/sap/bc/srt (including sub nodes)
-
/sap/bc/webdynpro/sap/APPL_SOAP_MANAGEMENT
The service and proxy definitions that you want to configure are available as development
objects in the back-end system.
Hint:
If you want to work with transaction SOAMANAGER remotely (that is in a system
landscape), you need to configure the communication between ABAP systems
and to activate additional services under /sap/bc/webdynpro/sap in transaction
SICF.
Transport of Web Services
The following figure shows how to handle Web services in a three-system landscape:
© Copyright. All rights reserved.
67
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 59: Transport of Web Services
The figure above shows that you need to distinguish between the Service definition and the
configuration (binding) including the ICF Service:
●
●
The Service definition (as well as the function module or BAPI) is developed in the
development system. The changes are recorded in transport requests which are
transported into the quality assurance system and the production system with the help of
the Change and Transport System (CTS).
The configuration (binding) has to be performed in every system individually with the help
of transaction SOAMANAGER. This binding then also creates and activates the
corresponding ICF service. For running SOAMANAGER, you have different options:
-
-
Either you use SOAMANAGER locally on every system (that is: call transaction
SOAMANAGER also on the QAS system and on the PRD system).
Or you configure SOAMANAGER on a central system for the remote use as indicated on
the figure above (that is: call SOAMANAGER on the central system and from there
connect to the remote systems QAS and PRD).
Additional Information
For more information on ABAP Web services, see SAP training class BIT102 – SAP Integration
Technology Interfaces II (Web Interfaces) and the online documentation for SAP S/4HANA
(Product Assistance), for example: area Enterprise Technology → ABAP Platform
→ Developing on the ABAP Platform → Development Concepts and Tools → Application
Development on AS ABAP → ABAP Development Tools – Eclipse → SAP (On Premise) –
ABAP Web Services.
For troubleshooting ABAP Web Services, SAP Note 2553979 – ESI - SOAP Web Services
ABAP - Guided Answers may help.
In addition, transaction SOAMANAGER offers a consistency check tool, see SAP Note 2353589
– Consistency Check for Soamanager.
68
© Copyright. All rights reserved.
Lesson: Describing Web Services in AS ABAP
LESSON SUMMARY
You should now be able to:
●
Name a use case for Web Services
●
Explain the Web Service paradigm
●
●
List the steps to create a Web Service from a function module using the inside-out
approach
List options to perform binding in the production environment
© Copyright. All rights reserved.
69
Unit 1: Administrating Technology Components for HTTP-based Communication
70
© Copyright. All rights reserved.
Unit 1
Lesson 7
Installing and Configuring SAP Web Dispatcher
LESSON OVERVIEW
The lesson highlights the use of the SAP Web Dispatcher and methods to operate it.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Describe basic functions of SAP Web Dispatcher
●
Perform an installation of SAP Web Dispatcher
●
Use the Web Administration interface
●
Perform the configuration of SSL
●
Perform the configuration of load balancing
●
Describe additional functions of SAP Web Dispatcher
Application Area of SAP Web Dispatcher
SAP Web Dispatcher is SAP's reverse proxy and software load balancer. It filters, routes and
distributes HTTP(S) requests across the systems and application servers in an application
landscape. It is free of charge for SAP customers, low in TCO, yet high in performance and
perfectly supports SAP systems and their load balancing and request routing features out of
the box.
SAP Web Dispatcher provides an easily consumable Web infrastructure solution for SAP
solutions based on AS ABAP, AS Java or HANA XS or any other HTTP service.
SAP Web Dispatcher usage is not mandatory (except for selected scenarios). Since HTTP is a
standardized protocol, other Web infrastructure products can be used as well. For example, a
hardware load balancer may be of advantage if investments in such infrastructure are already
made or if very high performance requirements have to be met.
Some SAP Web Dispatcher features are:
●
●
Load balancing for SAP and non-SAP systems. SAP Web Dispatcher can serve as a single
access point for one or multiple back-end systems.
Automated configuration by fetching system configuration information from the back end
system.
●
Reverse proxy with request filtering, caching, request header modification, redirects.
●
Request routing to back-end systems based on host, port or path (virtual hosting).
●
Single Sign-On for on-premise SAP Fiori Launchpad and integrated cloud services.
© Copyright. All rights reserved.
71
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 60: SAP Web Dispatcher – Overview
Some of the usage scenarios of SAP Web Dispatcher are as follows:
●
●
●
The Web applications are also to be used from the internet. The company network is
protected by a Demilitarized Zone (DMZ) and the critical business processes run on
servers that are not recognized on the internet. How can you avoid the need to place an
SAP application server within the DMZ?
The SAP system in question consists of multiple application servers (instances) that are
distributed across multiple virtual or physical hosts. However, the Web applications
provided should run under a descriptive address; technical details such as server name
and port number are to remain hidden to users.
Complex SAP Fiori landscapes may consist of one or more front-end servers and multiple
back-end systems and possibly additional cloud services, like SAP Conversational AI.
HTTP requests must be routed to one of these systems depending on URL properties of
the request (host name, port, path, parameters).
Requirements such as these can be implemented using third-party products known as
reverse proxies or Web switches. Although there are advantages, such as high throughput
and implementation in close proximity to the hardware, they must be offset against the
disadvantages of additional costs and restricted SAP integration.
SAP Web Dispatcher is a stand-alone program that you can run on a separate host or even on
one of the application servers of an SAP system without depending on any additional software
like a database.
Hint:
The internal structure of SAP Web Dispatcher is very similar to the ICM process.
When it comes to the operation of SAP Web Dispatcher, you will discover some
analogies to the ICM environment.
72
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Prerequisites for SAP Web Dispatcher
SAP Web Dispatcher ultimately forwards an HTTP(S) request to a specific application server
instance belonging to a specific system. This section outlines the criteria by which it is
performed.
An HTTP(S) request is processed in the following stages:
1. First, SAP Web Dispatcher determines which system should be selected for a given HTTP
request based on criteria like the URL hostname or path prefix.
2. Then SAP Web Dispatcher performs additional tasks on the HTTP request like URL
filtering, cache access, HTTP request rewriting.
3. Load balancing is then carried out between application server instances of the selected
system. After SAP Web Dispatcher has identified an application server instance, it
forwards the request to the ICM of the relevant application server instance.
Metadata Exchange
SAP Web Dispatcher receives information about the application servers, which it needs for
load distribution, from the message server and application servers. The following list presents
types of information:
●
●
●
It gets server information (the list of servers that it can use for requests) from the message
server.
It gets information about the logon groups and URL mapping from an ABAP application
server.
SAP Web Dispatcher checks the availability of the application servers using ping requests
to the application servers.
SAP Web Dispatcher obtains information about the application servers of the SAP system
from the message server via HTTP(S). You can use SAP Web Dispatcher for AS ABAP
systems, AS Java systems, HANA XS systems and SAP Cloud Platform systems in some
scenarios.
The HTTP interface of the message server allows you to display information about the
application server instances with a Web browser. To do so, enter the following URL:
http(s)://<message server host>.<message server domain>:<message server
http(s) port>/msgserver/text/logon?version=1.3.
Prerequisites
The prerequisites for operating the SAP Web Dispatcher are
●
The SAP Web Dispatcher is able to contact the HTTP port of the SAP message server.
●
The following ICF services are active:
-
/sap/public/icman
-
/sap/public/icf_info and all sub-services
SAP Web Dispatcher Installation
SAP Web Dispatcher is backwards compatible. This means that SAP Web Dispatcher release
can be higher or the same as the SAP system (kernel) release. The patch level can also differ
© Copyright. All rights reserved.
73
Unit 1: Administrating Technology Components for HTTP-based Communication
from the patch level of the back-end system. The general rule is: always use the latest
available SAP Web Dispatcher. SAP Note 908097 provides all the details.
Figure 61: SAP Web Dispatcher – Supported Releases
Different installation options are available for SAP Web Dispatcher:
Figure 62: SAP Web Dispatcher Installation Options
Provide executable and profile
On the host on which SAP Web Dispatcher will be used, it is sufficient to provide the
executable (name: sapwebdisp) and a profile file. The executable is the package
74
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
sapwebdisp.sar that you can download for various platforms from the SAP Support Portal
(area SAP Technology Components). In addition, you need a profile, typically named
sapwebdisp.pfl. For a list of profile parameters, see the online documentation. Running the
command sapwebdisp pf=<profile file> is sufficient to start SAP Web Dispatcher.
Hint:
On servers based on Microsoft Windows, you can set up SAP Web Dispatcher as
a Windows service with the command ntscmgr install sapwebdisp -b
<program path>\sapwebdisp.exe -p "service pf=<profile file>
<options>".
Provide executable and use the -bootstrap option
You can also start SAP Web Dispatcher without a profile file. For this bootstrap option
(started with command sapwebdisp -bootstrap), the following steps are executed:
1. If the sapwebdisp.pfl profile file does not exist, it is created based on interactive
entries.
2. If the icmauth.txt authorization file does not exist, it is created and a user is entered for
Web Administration interface.
3. SAP Web Dispatcher is started with the profile file created.
Running SWPM / SAPinst
The tools for installing and updating SAP products are delivered with the Software Logistics
Toolset (SL Toolset), which is updated several times a year, so you get the latest
improvements and updates in time. In this manner, the SL Toolset delivers software logistics
tool improvements on a continuous basis, independent from the SAP application product
shipments. The SL Toolset is delivered in Support Package Stacks.
Software Provisioning Manager (SWPM) is the successor of the product- and release-specific
delivery of provisioning tools. It provides the latest SAPinst version with software provisioning
services for several products and releases for all platforms, enabling you to profit directly
from up-to-date procedures powered by a reliable tool available and used for years.
Meanwhile, two versions of Software Provisioning Manager are available:
●
Software Provisioning Manager 1.0
●
Software Provisioning Manager 2.0
Both versions can be used to install SAP Web Dispatcher.
Note:
In case you explicitly want to install the non-Unicode version of SAP Web
Dispatcher, you have to use Software Provisioning Manager 1.0.
© Copyright. All rights reserved.
75
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 63: Preparation: Download the Latest SP of SWPM
To download the latest SWPM, open https://support.sap.com/sltoolset and navigate to
System Provisioning → Download Software Provisioning Manager → SOFTWARE
PROVISIONING MGR 2.0 → SUPPORT PACKAGE PATCHES → <Platform>. For more
information about SWPM, see https://wiki.scn.sap.com/wiki/display/SL/Software
+Provisioning+Manager+1.0+and+2.0.
The SWPM-based installation of SAP Web Dispatcher requires the following SAP archives
(.SAR files):
●
SAP Web Dispatcher
●
SAP Host Agent
Figure 64: Preparation: Download SAP Web Dispatcher Archive
76
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
To download the latest SAP Web Dispatcher archive, open https://support.sap.com/swdc
and navigate to Support Packages & Patches → Access downloads → Support Packages &
Patches → By Category → SAP Technology Components → SAP Web Dispatcher → SAP Web
Dispatcher <Release> → <Platform>.
Figure 65: Preparation: Download SAP Host Agent Archive
To download the latest SAP Host Agent archive, open https://support.sap.com/swdc and
navigate to Support Packages & Patches → Access downloads → Support Packages &
Patches → By Category → SAP Technology Components → SAP Host Agent → SAP Host
Agent 7.22 → <Platform>.
Figure 66: Starting SWPM
© Copyright. All rights reserved.
77
Unit 1: Administrating Technology Components for HTTP-based Communication
The sapinst executable can be launched with many command line options. To see all of them,
enter sapinst -p.
The option to install an SAP Web Dispatcher is located at Generic Options → SAP Web
Dispatcher → SAP Web Dispatcher (Unicode) (the path may vary, depending on the SWPM
release).
Figure 67: Input in Dialog Phase (Mode=Typical)
SWPM offers two options for Parameter Mode, Typical or Custom. The figure lists dialogs of
SWPM when being executed in Parameter Mode = Typical.
To access the installations guides for SAP Web Dispatcher, open the Guide Finder for SAP
NetWeaver and ABAP Platform at https://help.sap.com/viewer/nwguidefinder and search for
dispatcher. Note the proper operating systems and SWPM version.
Profile Parameters
For templates for the profile and parameter descriptions, see the online documentation. SAP
Web Dispatcher must know the port at which it is to receive HTTP(s) requests on which host
and with which HTTP(S) port it can access the message server (both is set using SAP Web
Dispatcher profile parameter wdisp/system_<xx>).
Note:
If metadata is to be exchanged through HTTPS, additional steps are required (see
the online documentation).
Configuration Check
You can check the configuration of SAP Web Dispatcher to ensure that your settings will work
when the Dispatcher is running. To do so, start SAP Web Dispatcher from the command line
with the command: sapwebdisp pf=<profile> -checkconfig. This verifies the following
items:
●
78
If the configuration of the maximum number of sockets in the Operating System permits
the required number of configured connections.
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
●
●
●
●
●
If the information about the application servers is configured in a file and in the wdisp/
server_info_location parameter. Check the syntax and semantics of this file.
If the information about the application servers is configured in the message server:
-
Test the connection to the HTTP port of the message server.
-
Check the data from the message server with the configured URL.
If the connection to all the application servers is found.
If the file is configured with the wdisp/group_info_location, do a syntactic/semantic check
of the group file. Otherwise, check the data from an application server with the configured
URL (/sap/public/icf_info/icr_groups). Check that the ICF nodes are activated.
If the file is configured with the wdisp/url_map_info_location, do a syntactic/semantic
check of the group file. Otherwise, check the data from an application server with the
configured URL (/sap/public/icf_info/icr_urlprefix). Check that the ICF nodes are
activated.
Software Update
If you want to update your SAP Web Dispatcher installation, download the SAP Web
Dispatcher archive (for the proper operating system and major release) at https://
support.sap.com/swdc, path Software Downloads → Support Packages & Patches → By
Category → SAP Technology Components → SAP Web Dispatcher → SAP Web Dispatcher
<Release> → <Platform> . Unpack that file (by executing sapcar -xvf <sapwebdisp.sar
file>) to the proper directory and (re)start SAP Web Dispatcher. Continue as described in
SAP Note 908097 (the procedure is similar to a kernel update).
Hint:
You can determine the current version of your SAP Web Dispatcher installation
as follows:
●
By executing sapwebdisp -v
●
By analyzing the most recent developer trace file (by default, dev_webdisp)
●
By launching the “Version Info” dialog in SAP MC or SAP MMC
Web Administration Interface
SAP Web Dispatcher offers a browser-based Web Administration interface for administration
and monitoring purposes. To use this, the following prerequisites must be observed:
●
Define the icm/HTTP/admin_<xx> parameter in the SAP Web Dispatcher profile. For
example, icm/HTTP/admin_0 = PREFIX=/sap/wdisp/admin,DOCROOT=$(DIR
DATA)$(DIR SEP)icmandir,AUTHFILE=$(icm/authfile),PORT=8008. The
command sets the URL prefix for the administration to /sap/wdisp/admin and the path for
some control files to ./admin
© Copyright. All rights reserved.
79
Unit 1: Administrating Technology Components for HTTP-based Communication
Note:
Using this parameter, the access to the Web Administration interface can be
further restricted to a port (for example, the SSL port), a local host name (for
example, "localhost"), or an external host name (then the Web Administration
interface can only be accessed from this host).
You can also authenticate yourself for the Web Administration interface with a
backend (ABAP) user using the AUTHFILE=backend option of this parameter.
For details and restrictions , see SAP note 2011786 – ICM / Web Dispatcher
Admin UI Authentication via Backend.
●
●
Specify this port with icm/server_port_<xx> as the inbound port.
Create an authorization file icmauth.txt with an administrative user and (hashed)
password.
Note:
Run wdispmon -a to check or modify the content of icmauth.txt.
●
Ensure that the directory specified by DOCROOT (after SAP Web Dispatcher has been
started for the first time) contains the files for the Web Administration interface.
Note:
You can also unpack the wdispadmin.SAR archive manually into a subdirectory
with the name admin by calling sapcar -xvf wdispadmin.SAR.
Figure 68: Functions of the Web Administration Interface
Functions of the Web Administration Interface
The following list shows the Web Administration interface functions:
●
80
SAP Web Dispatcher monitoring
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
●
Display parameter settings
●
Statistics
●
Evaluation of trace files
●
User administration
●
Maintenance mode
Enter the Web Administration interface using the following URL:
http(s)://<SAP Web Disp host and domain>:<SAP Web Disp admin port>/
<admin prefix>
The <Admin prefix> section is defined through the assignment for PREFIX of the profile
parameter icm/HTTP/admin_<xx>; the default value is/sap/wdisp/admin.
Note:
For security reasons, use the HTTPS protocol for administration. If you use HTTP,
administrator passwords are transferred without encryption and can be tapped.
Additionally, implement the option to bound SAP Web Dispatcher Web
Administration to a dedicated port and localhost only.
Once you have logged on successfully, the administration and monitoring interface displays. It
is divided into a navigation area (left side) and a detail area (right side).
Note:
You can also monitor and administrate SAP Web Dispatcher with the wdispmon
command line program (the usage is similar to the icmon command line tool.
Parameterization of SAP Web Dispatcher
Introduction
Similar to the ICM process, SAP Web Dispatcher is configured using parameters. The default
values are selected so that you do not have to make any changes to these parameters. You
determine the point of access to your SAP system using parameter icm/server_port_<x>.
You can use the parameters to adapt the configuration to specific system requirements.
Since the SAP Web Dispatcher connects itself to the SAP message server and communicates
with it via HTTP, parameter wdisp/system_<x> must be set correctly in the SAP Web
Dispatcher profile.
Note:
For a complete list of those parameters, see the online documentation, topic SAP
Web Dispatcher: Parameter References.
© Copyright. All rights reserved.
81
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 69: Variants to Set Parameters for SAP Web Dispatcher
You have multiple options to change parameters of SAP Web Dispatcher.
Change Profile and (Re)start SAP Web Dispatcher
One option is to change a parameter in the instance profile of SAP Web Dispatcher with a text
editor of your choice.
Use one of the following tools to start a stopped SAP Web Dispatcher:
●
SAP Management Console (SAP MC)
●
SAP Microsoft Management Console (SAP MMC)
●
command line tool sapcontrol (option -function StartSystem ALL)
●
command line tool sapwebdisp (option pf=<InstanceProfile>)
Use one of the following tools to restart a running SAP Web Dispatcher:
●
SAP Management Console (SAP MC)
●
SAP Microsoft Management Console (SAP MMC)
●
command line tool sapcontrol (option -function RestartSystem ALL)
●
command line tool sapwebdisp (option pf=<InstanceProfile>)
●
Web Administration interface of SAP Web Dispatcher (Shutdown or Soft Shutdown)
Change Profile and Reconfigure SAP Web Dispatcher
An alternative approach is to reconfigure a running SAP Web Dispatcher after you changed a
parameter in its instance profile. As a prerequisite, ensure that parameter wdisp/
config_reload is set to TRUE (the default value is FALSE).
To trigger the reconfiguration of a running SAP Web Dispatcher issue the following command
at command line level:
sapwebdisp pf=<InstanceProfile> -reconfig profile
82
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Change Parameter using the Web Administration Interface
The Web Administration interface also allows you to change parameters. To do so, navigate to
Core System → Parameters → Edit Parameters.
After entering a parameter Name, choose Get Value. In case of a valid entry, a short
Description and the Type of the parameter is displayed.
Many, but not all parameters are dynamically changeable. In case of a dynamically
changeable, you have the option to change it temporarily. Similar to a change of a dynamic
parameter in AS ABAP (transaction RZ11), the change is being applied immediately, but lost
after a restart of SAP Web Dispatcher.
If you choose to change the parameter permanently, the change is applied to the instance
profile of SAP Web Dispatcher. Also, a backup of the former instance profile is created (in the
backup sub-directory of the profile path). In case of a dynamically changeable parameter, the
change is also applied to the running SAP Web Dispatcher.
Cryptography Fundamentals
Introducing Cryptography
Cryptography is the science of encrypting information. Why is this a very important topic in
today's IT world? The standard protocol used for transporting http requests, TCP/IP, is a
potentially insecure transport mechanism. Everyone connected to a specific network is able,
with more or less effort and knowledge, to listen to the packages and its content transferred
with the IP protocol in that network. This vulnerable protocol makes it necessary to encrypt
the transferred data itself. For a better understanding we describe here a possible attack
against the TCP/IP protocol and the data transferred with this protocol.
Figure 70: Threat: Eavesdropping
In the above example, Alice (1) initiates a communication with Bob and requests some data
about customers from him. Bob gathers the requested data and responds to Alice's request
(2). The entire exchange is eavesdropped by Mallory. He now knows about the information
that was discussed (3).
© Copyright. All rights reserved.
83
Unit 1: Administrating Technology Components for HTTP-based Communication
In the context of TCP/IP, Alice (stands for a Web browser), for example, requests some data
via an http request that is transferred via the TCP/IP protocol. The server (here represented
by Bob) responds and transfers some sensitive customer data from the server to the client
via the TCP/IP protocol. Mallory, an attacker, is on the same network and therefore is able to
eavesdrop on this TCP/IP communication.
The solution for securing this communication is the encryption of the transferred data; this
involves making the conversation impossible for the attacker to understand but making it
understandable to the participants involved in the conversation only.
Figure 71: Protection: Encryption
Encryption Methods
Encryption itself is based on mathematical operations. A key therefore has to be exchanged
between the communication partners in order to have a computable basis for encrypting and
decrypting information. There are three different methods for exchanging these keys.
Figure 72: Encryption Methods
84
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Symmetric Key Encryption is the classical cryptography method for encrypting and
decrypting messages. In this case, both the sender and receiver of a message share a
“secret” called a secret key. The sender uses this key to encrypt the message. The receiver
also uses this key to decrypt the message.
Figure 73: Symmetrical Encryption
The shared secret is called a secret key. It consists of a value of a certain length, 256 bits for
example. These encryption algorithms are in widespread use and are employed in most Web
browsers and Web servers. Typical Symmetric Key Encryption Algorithms include:
●
Digital Encryption Standard (DES)
●
Triple DES
●
Advanced Encryption Standard (AES)
●
International Data Encryption Algorithm (IDEA)
●
RC4
●
RC5
●
Blowfish
Asymmetric Key Encryption uses a different algorithm than Symmetric Key Encryption.
Asymmetric Key Encryption uses a key pair that consists of a private and a public key. These
keys belong to each other. A message that is encrypted with the public key can only be
decrypted with the matching private key. The public key can be made public. The owner of the
key pair “publishes” the public key and can distribute it as required. The private key must be
kept secret.
© Copyright. All rights reserved.
85
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 74: Asymmetrical Encryption
The person who is sending a confidential message uses the recipient‘s public key to encrypt
the message. Only the recipient can then decrypt the message using his or her private key. A
typical public key encryption algorithms is
●
RSA (Rivest, Shamir, Adleman),
●
Diffie-Hellman.
Disadvantages of Public Key Encryption:
●
●
●
It is slower than Symmetrical Key Encryption.
Encryption is only possible in one direction with a single key pair. Alice can encrypt a
message to send to Bob, but not the other way round.
If Alice also has a key pair, then Bob can send her an encrypted message. However, there
is an easier way.
Hybrid Encryption Process is the combination of both above explained encryption processes.
The Hybrid Encryption Process make use of the advantages of both process types. For the
better understanding we describe this process in the following example.
86
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Figure 75: Hybrid Encryption
Process:
1. The client (browser) contacts the ICM process respectively SAP Web Dispatcher.
2. The Application Server responds and sends its Public Key.
3. Client-side a Secret Key is created and encrypted with the Public Key the server sent
before.
4. The client sends back the encrypted Secret Key.
5. On the server the Secret Key is decrypted using the Private Key. Only the server can
decrypt the received Secret Key because it holds the Private Key which is necessary for
the decryption.
6. The communication partners perform a "Handshake"; they shake hands.
7. Further communication between the client and the server is encrypted using the Secret
Key.
Authentication and Digital Signatures
In the first part of this lesson we described a possible attack on the transport protocol and
what can be done to secure this communication. But what happens if Mallory interferes with
the communication and pretends to be Bob? He may even provide Alice a public key, saying
that is Bob's key. The question is how can we make sure that Alice is really communicating
with Bob and therefore the public key she received is really Bob's public key?
© Copyright. All rights reserved.
87
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 76: Threat: Masquerading
The problem is also covered by cryptography and is called Authentication. Authentication
normally takes place using the user ID and password. But with cryptographic mechanisms it is
possible to authenticate communication partners, by means of verifying that the
communication partner is the one she or he pretends to be. The basis for the authentication
of communication partners are Digital Certificates.
Figure 77: Protection: Authentication
Understanding Digital Certificates and Digital Signatures
The digital certificate is the individual's "digital identity card" on the Internet. Compared to the
"real world", digital certificates can be compared to a passport which contains information
about owner, issuer, serial number, and validity period. The format of the certificate is
specified by the X.509 standard for digital certificates.
88
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Figure 78: Digital Certificates (X.509)
Beneath some general information the certificate contains also the public part of the key pair
whereas the private key is not included in the certificate. The private key must be kept in a
safe place. The certificate is issued to a person or server by an authorized entity called a
Certification Authority (CA). The CA ensures by digitally signing the certificate that the public
key, which matches to a private key, belongs to a specific person or server. Thus, the CA
ensures that the certificate cannot be "faked". The complete infrastructure that manages the
issue and verification of certificates is called the Public Key Infrastructure (PKI).
Figure 79: Certification Authority
Examples of well-known Certification Authorities:
●
Verisign Inc.
●
TC Trust Center
© Copyright. All rights reserved.
89
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 80: Certificate Enrollment
The certification of digital certificates is performed, for example, as follows:
1. A public and private key pair is generated on the server.
2. The public key is sent to the CA (it is called a Certificate Signing Request, or CSR).
3. The CA digitally signs the server's public key and sends it back to the requestor.
4. Import of the CSR response, the digitally signed certificate, into the server.
Different CAs use different policies, on how to check the identity of a person or system, before
issuing a digital certificate.
The server is now sending the digitally signed certificate, which includes the public key, to the
communication partner. This kind of authentication is called Server Authentication. But how
can the communication partner ensure that the digitally signed certificate is signed from a
trusted CA? The communication partner has to have a trust relationship to the CA which
issued the certificate. Technically this can be achieved by importing a digital certificate of the
institution (CA) issued the certificate for the server. This is the so-called root certificate. The
most common root certificates are pre-installed in most Web browsers.
90
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Figure 81: Trust Relationship
Securing HTTP communication using Secure Socket Layer (SSL)
In the previous sections you learned the fundamentals of Cryptography, Authentication and
Digital Certificates. These technologies are also fundamental to securing the HTTP
communication. Secure Socket Layer (SSL) is a transparent protocol enhancing other
protocols having no security functionalities. SSL is not an HTTP-specific protocol but a
protocol used between the TCP layer and application protocols like LDAP, SMTP, HTTP and
so on. An HTTP application protocol that has been extended by SSL has the protocol
identification HTTPS in the URL.
Hint:
To be more precise, SAP Web Dispatcher (and the ICM) supports Transport
Layer Security (TLS) which is the successor of SSL. But as – at least up to now –
the term SSL is more common than TLS, this lesson (an the online
documentation) still uses the term SSL instead.
SSL uses a Hybrid Encryption method and provides besides data encryption the following
authentication mechanisms:
●
Server authentication
●
Client authentication
●
Mutual Authentication
To use SSL for server authentication, the ICM process respectively SAP Web Dispatcher
possesses a private and public key pair.
© Copyright. All rights reserved.
91
Unit 1: Administrating Technology Components for HTTP-based Communication
Figure 82: SSL: Server Authentication
1. Alice contacts the ICM process respectively SAP Web Dispatcher using a browser.
2. The Application Server responds and sends its Public Key with a digitally-signed message.
The client-side server's identity is verified by checking the validity of the certificate. The
certificate is only accepted if the client trusts the CA that issued that certificate to the ICM
process respectively SAP Web Dispatcher. This is done with the CA root certificate.
3. The Secret Key is created and encrypted with the Public Key the server sent previously.
4. The client sends back the encrypted Secret Key.
5. On the server the Secret Key is decrypted using the Private Key. Only the server can
decrypt the received Secret Key because it holds the Private Key that is necessary for the
decrypting.
6. The communication partners perform a handshake.
7. Further communication between the client and the server is encrypted using the Secret
Key.
Using SSL with an Intermediary Server
You can also use SSL for connections where an intermediary server is used. An intermediary
server may be a Web proxy or the SAP Web Dispatcher. A typical scenario is to place the
intermediary server in the DMZ and the AS ABAP in the intranet zone. The servers that are
supported for use with AS ABAP are:
92
●
SAP Web Dispatcher
●
Microsoft Internet Information Server (IIS) with an IIS proxy module from SAP
●
Other products (for example, the Apache Web Server)
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Figure 83: SAP Web Dispatcher and SSL – Use Cases
The first connection type shown above does not use SSL at all. Therefore, you only need to
set the port to HTTP. No extra configuration is needed.
For the second connection type, the request is terminated at SAP Web Dispatcher. The
incoming connection uses HTTP and the outgoing connection uses HTTPS. Therefore, you
must configure SAP Web Dispatcher as an SSL client.
For the third connection type, the request is terminated at SAP Web Dispatcher. The
incoming connection uses HTTPS and the outgoing connection uses HTTP. Therefore, you
must configure SAP Web Dispatcher as an SSL server.
For the fourth connection type, the request is terminated at SAP Web Dispatcher. Both the
incoming connection and the outgoing connection use HTTPS. Therefore, you must configure
SAP Web Dispatcher as an SSL server and an SSL client.
© Copyright. All rights reserved.
93
Unit 1: Administrating Technology Components for HTTP-based Communication
SAP Web Dispatcher in SSL Server Role
Figure 84: SAP Web Dispatcher in SSL Server Role
We will now consider how to configure SAP Web Dispatcher in an SSL server role.
Figure 85: SAP Web Dispatcher and SSL - Tools
We recommend that you use the Web Admin UI of SAP Web Dispatcher to configure SSL
support.
As a high-level overview, these are the required steps to configure SAP Web Dispatcher for
SSL when the connection is terminated and SSL is used:
1. Create the SAP Web Dispatcher's Personal Security Environments (PSE(s)) and
certificate request(s). Create an SSL server PSE if the incoming connections use SSL.
Create an SSL client PSE if the outgoing connections use SSL. Create both if both
connections use SSL.
94
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
To create an SSL server PSE with Subject Alternative Name (SAN), refer to SAP Note
2502649 Creating certificates with Subject Alternative Name (SAN) through the Web
Admin page.
2. Perform the following steps for each of the PSEs that you created in the previous step:
a. Send the certificate request(s) to a CA to be signed.
b. Import the certificate request response(s) into the PSE.
c. Create credentials for SAP Web Dispatcher.
3. For SSL outbound connections, import a CA root certificate into the SSL client PSE of SAP
Web Dispatcher. Use the same CA root certificate for the CA that issued the SSL server
certificate to the AS ABAP application server.
4. Set the profile parameters according to the case you are using.
5. Restart SAP Web Dispatcher.
6. Test the connection.
For details, see the online documentation for SAP NetWeaver resp. ABAP Platform.
Addendum: URL Generation in an AS ABAP – SAP Web Dispatcher Configuration
In a simple system landscape the AS ABAP and the browsers are usually located in the same
network. In this case, the browser can access the AS ABAP server directly using its configured
name. Conversely, if the AS ABAP has to generate an absolute URL for the browser, it can use
its configured name to generate the URL.
In more complex system landscapes a reverse proxy server, for instance, the SAP Web
Dispatcher, is used in the network. This happens, for example, if the reverse proxy server is
visible in the Internet and the AS ABAP is located behind a firewall. In this case the browser
uses the name of the reverse proxy server when it is communicating with the server. Or the
other way around: it is not possible for the AS ABAP to use its own configured name to
generate absolute URLs. The URL must contain the name and port of the reverse proxy server
(that is, the name and port of the unit with which the browser communicates). The
configuration table HTTPURLLOC can then be used to describe how a URL is to be generated.
For more information, see SAP Note 750292 – BSP: URL Generation in a config of WebAS with
Web Dispatcher which also contains a link to the online documentation.
© Copyright. All rights reserved.
95
Unit 1: Administrating Technology Components for HTTP-based Communication
SAP Web Dispatcher in SSL Client Role
Figure 86: SAP Web Dispatcher in SSL Client Role
If SAP Web Dispatcher also uses SSL for the connection to the AS ABAP system (reencryption), then it also needs to possess a key pair to use for this connection. This
information is stored in its SSL client PSE.
Figure 87: Trust with AS ABAP – Based on a Common Certification Authority (CA)
You have different options to establish a trust between SAP Web Dispatcher and an AS ABAP
system. One approach is that you export the SSL server certificate from the AS ABAP system
and import it to the SAP Web Dispatcher client PSE. However, a more convenient approach is
that you have a common Certification Authority (CA) in place.
●
96
Use this CA to sign the SSL server certificate of AS ABAP (transaction STRUST).
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
●
Import the root certificate of the same CA into the SAP Web Dispatcher client PSE.
As of SAP Web Dispatcher 7.53, you can establish the trust with an AS ABAP-based back-end
system completely in the Web Admin UI (a separate download of the respective certificate is
not necessary anymore). To do so, use the feature in the Web Admin UI available at <SID of
SAP system> → Monitor Application Servers → <application server menu (column Name)>
→ Establish Trust. Here you can choose the certificate to establish the trust (Root Certificate,
Issuer Certificate(s) or Peer Certificate).
Additional information
For more information, see https://wiki.scn.sap.com/wiki/display/SI/How+to+Configure
+SAP+Web+Dispatcher+to+Trust+Backend+System+SSL+Certificate.
Load Balancing
SAP Web Dispatcher routes and distributes incoming HTTP(S) requests to an appropriate
application server instance. The next figure illustrates the distribution in a simplified way, also
not covering an AS Java as back end system.
Figure 88: HTTP(S) Request to the Application Server Instance (Simplified)
In case of a stateful connection, SAP Web Dispatcher selects the application server instance
that is processing the transaction.
In case of a new request or a stateless connection, SAP Web Dispatcher checks if the called
prefix is assigned to a logon group. Use transaction SMLG to create logon groups, and
transaction SICF to assign them to ICF services or external aliases.
In case no logon group was assigned to the requested prefix, SAP Web Dispatcher uses one of
the following build-in logon groups:
●
●
!DIAGS for https requests (made of all application server instances with a running ICM
process offering the https protocol)
!DIAG for http requests (made of all application server instances with a running ICM
process offering the http protocol)
© Copyright. All rights reserved.
97
Unit 1: Administrating Technology Components for HTTP-based Communication
Both static and dynamic elements are used for load balancing with the SAP Web Dispatcher.
SAP Web Dispatcher provides various procedures for load balancing with a logon group. The
capacity of an application server is an important factor. The capacity is a measure of the
“power” of an application server – in case of AS ABAP, the calculation is based on the number
of dialog work processes.
You can see what capacity of SAP Web Dispatcher is used for load balancing in the Web
Administration interface under Monitor Server Groups in column Capacity. Here you can also
overwrite the capacity value using the right mouse button. The changes are lost when SAP
Web Dispatcher is restarted.
Hint:
HTTP load balancing using the message server is deprecated. Use SAP Web
Dispatcher instead. For more information, see SAP Note 1040325 HTTP load
balancing: Message server or Web Dispatcher?
Multiple Systems Support
Multiple Systems
SAP Web Dispatcher supports multiple SAP (backend) systems (and non-SAP Web servers)
out of the box. You do not have to set up, configure, or wait for an SAP Web Dispatcher for
each system; you can use a common SAP Web Dispatcher for all systems. This must then be
configured for all connected systems.
You can separate the requests using one of the various mechanisms, or a combination of
mechanisms configured using subparameters of parameter wdisp/system.
Host Name (subparameter SRCVHOST)
Requests are forwarded to the configured system if the host name in the URL matches
the host name specified in SRCVHOST.
URL path prefix (subparameter SRCURL)
Requests are forwarded to the configured system if the URL path prefix matches the URL
path prefix specified in SRCURL.
Access point (IP address (or host name) and port) of SAP Web Dispatcher (subparameter
SRCSRV)
Requests are forwarded to the configured system if SAP Web Dispatcher IP address and
port where the request was received match the access point specified in SRCSRV.
In most scenarios SRCVHOST and SRCURL are sufficient to perform the system selection. If
the system selection cannot be performed using the subparameters listed above, it is
possible to perform system selection in the HTTP modification handler by setting header field
X-SAP-WEBDISP-TARGET-SID.
98
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Figure 89: Mechanisms for Multiple Back-End Systems
For each back-end system, add a wdisp/system_<xx> line to SAP Web Dispatcher profile. For
example:
wdisp/system_0 = SID=ECC, MSHOST=ms_ecc.wdf.sap.corp, MSPORT=8104,
SRCVHOST=ecc.acme.com
wdisp/system_1 = SID=NWP, MSHOST=ms_nwp.wdf.sap.corp, MSPORT=8134,
SRCVHOST=nwp.acme.com
For each incoming request, SAP Web Dispatcher uses the configured criteria and the setting
of wdisp/system_<xx> to check which system the request can go to. If the criteria are met by
more than one system, the behavior is determined by the parameter wdisp/
system_conflict_resolution. For more information and examples, see the online
documentation.
Note:
In a multiple system scenario, SAP Web Dispatcher ignores the profile parameters
rdisp/mshost and ms/http_port (to avoid confusion, you can comment them out
or even delete them).
Further Functions
SAP Web Dispatcher offers further functions, which are not covered in this lesson. Some of
them are:
URL filtering
You can define URLs that you want to be rejected, and, by doing so, restrict access to
your system.
Web caching
You can use SAP Web Dispatcher as a Web Cache to improve the response times and to
conserve the application server cache.
Request rewriting
© Copyright. All rights reserved.
99
Unit 1: Administrating Technology Components for HTTP-based Communication
You can rewrite HTTP requests (and responses), for example to add or modify HTTP
header fields.
SLD registration
You can configure SAP Web Dispatcher to register at a System Landscape Directory
(SLD).
Mitigation of Denial of Service (DoS) Attacks
Denial of Service (DoS) attacks are intentional or accidental attacks through an external third
party towards resources of the Application Server ABAP. DoS attacks can impact the
availability or performance of services caused by excessive use by one or more users.
The aim of Denial of Service (DoS) protection measures is to make the AS ABAP more robust
towards server overload caused by excessive use, and to differentiate DoS attacks from
legitimate use. However, complete protection is impossible because there is no clear
distinction between legitimate and excessive use.
The server can be protected from DoS attacks by preserving server integrity and
responsiveness for single-user attacks and increasing the potential cost of attacks.
This can be achieved on multiple lines of defense:
●
Limit connections per client IP to protect SAP Web Dispatcher and back-end system
resources
●
Limit concurrent requests for every back-end system (sum of all application servers)
●
Limit application server resources for each user
Figure 90: Mitigation of Denial of Service (DoS) Attacks
100
© Copyright. All rights reserved.
Lesson: Installing and Configuring SAP Web Dispatcher
Limit connections per client IP to protect SAP Web Dispatcher and back-end system
resources
SAP Web Dispatcher can be protected from Denial of Service (DoS) attacks by limiting the
number of connections from a single IP address. For every network connection that is
established, the number of existing connections per client IP address is checked.
To see an overview of the top 25 consumers, including information about the number of active
connections and time of last warning and rejection, call up SAP Web Dispatcher
Administration UI and navigate to Core System → Client IP Top Consumer.
Profile parameter icm/client_ip_connection_limit contains sub-parameters WARN and
REJECT to specify the limits for connections from a single IP address.
The values determined for these subparameters are percentage shares of the maximum
number of connections that is specified by icm/max_conn. The default values are set to 90
and 100.
If the limit for WARN is exceeded, the SAP Web Dispatcher creates a system log (Message ID
IMA) and trace entry. To prevent the system log from an overload of entries, only one entry
per minute is created.
If the limit for REJECT is reached, the SAP Web Dispatcher terminates the connection and
creates a system log entry (Message ID IMB).
Note:
This mechanism is available for both the ICM and SAP Web Dispatcher.
Limit concurrent requests for every back-end system (sum of all application servers)
The back-end system of Application Server ABAP can be protected from Denial of Service
(DoS) attacks by limiting the number of concurrent requests that SAP Web Dispatcher
forwards to the back-end system. That way, an overload from an untrusted request source
can be avoided.The number of concurrent requests is roughly equal to the number of ABAP
work processes that are occupied with processing these requests.
To monitor information about pending requests that have not yet been answered by the backend system, call up SAP Web Dispatcher Administration UI and go to menu Dispatching
Module → Backend System pending Request Info .
Profile parameter wdisp/system contains subparameters PENDING_REQUEST_LIMIT_WARN
and PENDING_REQUEST_LIMIT_REJECT to specify the limits for concurrent requests in each
back-end system.The values determined for these subparameters are absolute numbers. By
default, this feature is disabled and has to be configured by the administrator.
If the limit for PENDING_REQUEST_LIMIT_WARN is exceeded, SAP Web Dispatcher creates
both a system log (Message ID IMC) and trace entry.
If the limit for PENDING_REQUEST_LIMIT_REJECT is exceeded, SAP Web Dispatcher returns
status code 503 Service Unavailable and creates a system log entry (Message ID IMD).
Note:
This mechanism is available for SAP Web Dispatcher only.
© Copyright. All rights reserved.
101
Unit 1: Administrating Technology Components for HTTP-based Communication
Limit application server resources for each user
You can limit the resources consumed by a single user in application server instances of AS
ABAP. This is configured using parameter rdisp/user_resource_limit. The parameter also has
sub-parameters WARN and REJECT with respective values. These values are percentages.
100 stands for the entire amount of a resource available.
If the WARN limit is reached, syslog and trace entries are written (with flooding prevention).
If the REJECT limit is reached, a system log entry with key R2K is written and the session is
cancelled.
Note:
This mechanism is available for AS ABAP only.
Additional Information on SAP Web Dispatcher
●
●
SAP S/4HANA 2021 online documentation (Product Assistance), area Enterprise
Technology → ABAP Platform → Application Server ABAP - Infrastructure → Components
of Application Server ABAP → SAP Web Dispatcher
https://wiki.scn.sap.com/wiki/display/SI/SAP+Client-Server+Technology, area Web
Dispatcher
●
SAP Note 538405 SAP Web Dispatcher: composite note
●
SAP Note 552286 Troubleshooting for the SAP Web Dispatcher
●
SAP Note 1040325 HTTP load balancing: Message Server or Web Dispatcher?
●
SAP Note 908097 SAP Web Dispatcher: Release, Installation, Patches, Documentation
●
SAP Note 1708601 Inst. Web Dispatcher SAP NetWeaver 7.1 and Higher
●
SAP Note 1282692 Displaying logon groups in SAP Web Dispatcher and J2EE stack
●
SAP Note 2007212 Tuning SAP Web Dispatcher and ICM for high load
●
●
SAP Note 2502649 Creating certificates with Subject Alternative Name (SAN) through the
Web Admin page
for installation guides, open the Guide Finder for SAP NetWeaver and ABAP Platform at
https://help.sap.com/viewer/nwguidefinder and search for dispatcher
LESSON SUMMARY
You should now be able to:
102
●
Describe basic functions of SAP Web Dispatcher
●
Perform an installation of SAP Web Dispatcher
●
Use the Web Administration interface
●
Perform the configuration of SSL
●
Perform the configuration of load balancing
●
Describe additional functions of SAP Web Dispatcher
© Copyright. All rights reserved.
Unit 1
Learning Assessment
1. Which of the following technology components for HTTP–based communication can be
used together with an SAP S/4HANA system?
Choose the correct answers.
X
A SAP Internet Transaction Server (SAP ITS), standalone
X
B SAP Internet Transaction Server (SAP ITS), integrated
X
C Internet Communication Manager (ICM)
X
D SAP Web Dispatcher
2. Which of the following statements about Internet Communication Manager (ICM) are
correct?
Choose the correct answers.
X
A Similar to the number of work processes of a certain type, you can use an instance
profile parameter to specify the number of ICM processes that are started for each
ABAP dispatcher.
X
B It is recommended that you operate a separate ICM for each client in an AS ABAP
based SAP system.
X
C ICM has replaced the Java Dispatcher process as of SAP NetWeaver AS Java 7.10.
X
D ICM can support communication protocols like HTTP, HTTPS and SMTP.
3. The creation of ICF Web service nodes with the help of transaction SOAMANAGER in the
development system is recorded in transport requests. The ICF service nodes then are
imported into subsequent systems with the help of the Change and Transport System
(CTS).
Determine whether this statement is true or false.
X
True
X
False
© Copyright. All rights reserved.
103
Unit 1
Learning Assessment - Answers
1. Which of the following technology components for HTTP–based communication can be
used together with an SAP S/4HANA system?
Choose the correct answers.
X
A SAP Internet Transaction Server (SAP ITS), standalone
X
B SAP Internet Transaction Server (SAP ITS), integrated
X
C Internet Communication Manager (ICM)
X
D SAP Web Dispatcher
Correct: With an SAP S/4HANA system, you can use the integrated SAP ITS, the ICM and
SAP Web Dispatcher. The standalone SAP ITS is not supported with SAP S/4HANA.
2. Which of the following statements about Internet Communication Manager (ICM) are
correct?
Choose the correct answers.
X
A Similar to the number of work processes of a certain type, you can use an instance
profile parameter to specify the number of ICM processes that are started for each
ABAP dispatcher.
X
B It is recommended that you operate a separate ICM for each client in an AS ABAP
based SAP system.
X
C ICM has replaced the Java Dispatcher process as of SAP NetWeaver AS Java 7.10.
X
D ICM can support communication protocols like HTTP, HTTPS and SMTP.
Correct. As of SAP NetWeaver AS Java 7.10, the ICM has replaced the Java Dispatcher
process. In addition, the ICM supports protocols like HTTP, HTPS and SMTP.
104
© Copyright. All rights reserved.
Unit 1: Learning Assessment - Answers
3. The creation of ICF Web service nodes with the help of transaction SOAMANAGER in the
development system is recorded in transport requests. The ICF service nodes then are
imported into subsequent systems with the help of the Change and Transport System
(CTS).
Determine whether this statement is true or false.
X
True
X
False
Correct. The creation of ICF Web service nodes is not recorded in transport requests. The
ICF Web service nodes need to be created in every system of a system landscape
individually with the help of transaction SOAMANAGER.
© Copyright. All rights reserved.
105
Unit 1: Learning Assessment - Answers
106
© Copyright. All rights reserved.
UNIT 2
Setting Up SAPconnect and
SMTP
Lesson 1
Setting Up Communication with SAPconnect
109
Lesson 2
Setting Up Communication with Simple Mail Transfer Protocol (SMTP)
115
UNIT OBJECTIVES
●
Explain the role of SAPconnect for external communication
●
Summarize the task of a Mail Transfer Agent
●
Perform the configuration of the AS ABAP for the use of SMTP
© Copyright. All rights reserved.
107
Unit 2: Setting Up SAPconnect and SMTP
108
© Copyright. All rights reserved.
Unit 2
Lesson 1
Setting Up Communication with SAPconnect
LESSON OVERVIEW
SAPconnect is a standard interface for external communication that enables data to be sent
through telecommunication services, such as fax, text messages (pager, SMS), internet email, and X.400, as well as to printers and between different SAP systems. It allows you to
connect external communication components to the SAP system.
In this lesson, you will learn the fundamentals of SAPconnect.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Explain the role of SAPconnect for external communication
Overview of the Message Flow in SAP Systems
An ABAP-based SAP system offers application developers many ways to create and process
messages. For example, the user might need to send a confirmation message to the sold-to
party after the creation of a sales order.
Figure 91: Message Flow in the AS ABAP
Business Communication Services (BCS) are important in message processing. The services
allow application developers to freely integrate sending messages internally and externally in
their applications. In addition to controlling sending and receiving, BCS takes on extensive
status handling and makes all sending information about an application object available. The
overview of the message flow is shown in the figure “Message Flow in the AS ABAP”.
© Copyright. All rights reserved.
109
Unit 2: Setting Up SAPconnect and SMTP
The sending of messages from SAP applications can be performed directly using BCS.
Alternatively, the Post Processing Framework (PPF) can be addressed first. The PPF provides
a uniform interface for generating actions in response to certain conditions (such as printing
delivery notes, faxing order confirmations, or triggering approval processes). The PPF is the
successor to message control and provides a greater range of functions, simpler connection
to the applications, and greater flexibility than its predecessor. BCS can also be used from the
SAP Smart Forms tool (and its predecessor, SAPscript) and for PDF-based Print Forms (SAP
Interactive Forms by Adobe).
In addition to automated message creation and processing, you can create messages
manually using the Business Workplace (previously known as SAP Office). The Business
Workplace (transaction SBWP) provides a standard working environment in which every SAP
user can perform their part of the business and communication processes in the company.
Figure 92: Transaction SCOT: BCS Administration and SAPconnect
For the administration of Business Communication Services, transaction SCOT – SAPconnect
is available. Using this transaction, you can access a collection of settings, reports, views, and
further functions in the area of BCS. BCS forwards external messages to SAPconnect. The
figure “Transaction SCOT: BCS Administration and SAPconnect” shows the entry screen of
this transaction.
SAP S/4HANA Output Control
SAP S/4HANA introduces a new style of output management. The new output management
is going to be the successor of all other output management frameworks (SD Output Control,
FI Correspondence, FI-CA Print Workbench, CRM Post-Processing). However, all other
frameworks are still available and can be used. It is not mandatory to use the new output
management. The output management for SAP S/4HANA comprises all functionalities and
processes that are related to the output of documents. This includes the integration of output
management functions into the business applications, the reuse component output control,
as well as the SAP NetWeaver technologies and the technical infrastructure.
In the case of SAP S/4HANA Output Control, the figure above concerning the message flow
needs to be changed to be as follows:
110
© Copyright. All rights reserved.
Lesson: Setting Up Communication with SAPconnect
Figure 93: Message Flow in SAP S/4HANA Output Control
●
●
●
SAP S/4HANA Output Control uses the basic output management services (like printing,
form rendering and emailing) and adds more features (such as parameter determination,
output of attachments and output history) for applications that require advanced output
scenarios. The applications can communicate with business receivers using print, e-mail,
or electronic data interchange (EDI).
Form Data Provider offer a dynamic data interface for output forms based on Core Data
Services (CDS) and Gateway services including standard extensibility. The data interface
describes the data that is passed to the form rendering service at runtime.
Output Forms (Gateway interface) can be used to create pixel-perfect documents based
on a layout definition and application data in a defined output format. The document is
rendered by the service SAP Forms Service by Adobe in the requested format. Possible
output formats are, for example, PDF, PCL and Postscript.
Note:
For more information, see
●
SAP Note 2228611 – Output Management in SAP S/4HANA
●
SAP Note 2791338 –FAQ: SAP S/4HANA output management
●
SAP Note 2470711 – S4TWL - OUTPUT MANAGEMENT
●
●
●
SAP Note 3097507 – Output Management in SAP S/4HANA On-Premise with
an attached document containing guidance for the SAP S/4HANA Output
Management
the blog Output Management in SAP S/4HANA (https://blogs.sap.com/
2021/04/26/output-management-in-sap-s-4hana/) and
the online documentation for SAP S/4HANA (Product Assistance), area Cross
Components → SAP S/4HANA Output Control.
© Copyright. All rights reserved.
111
Unit 2: Setting Up SAPconnect and SMTP
SAPconnect Features
SAPconnect is the central interface for external communication in SAP systems. SAPconnect
supports the use of telecommunication services such as fax, text messages (pager or SMS),
e-mail, and X.400, as well as sending data to printers and between different SAP systems.
SAPconnect allows you to connect external communication components to an ABAP-based
SAP system. SAPconnect provides a direct connection to the Internet using the SMTP plug-in
of the Internet Communication Manager (ICM).
Figure 94: SAPconnect: Communication Options
As presented in the figure “SAPconnect: Communication Options”, there are different ways of
producing the same result (such as sending mail over the Internet) when using SAPconnect. It
has been possible to use external communication systems for many years; however, the use
of plug-in technology requires the Internet Communication Manager process (ICM).
Note that the use of RFC destinations for SAPconnect is deprecated. In case RFC destinations
for SAPconnect are required (for example, because an external communication system does
not offer HTTP or SMTP connectivity), configure SAPconnect in transaction SCON. It offers a
user interface similar to transaction SCOT in former releases of AS ABAP.
Note:
For more information about the support for the RFC interface and SAPconnect,
see the SAP note 1236270 – Support for SAPconnect RFC interface.
Communication Steps in SAPconnect Process
1. A message is created, for example, as a Web Flow item, in the Business Workplace
(transaction SBWP), or by an application.
2. The message is assigned to a node based on the selected communication type and
address area stored in the queue.
112
© Copyright. All rights reserved.
Lesson: Setting Up Communication with SAPconnect
3. The send process (report RSCONN01, which should run periodically in the background)
starts, reads the message from the queue, and transfers it to the SMTP plug-in (or an RFC
destination).
Administration of SAPconnect
To be able to send messages using a communication type, the following criteria are required:
1. One configured (communication) node for the communication type is needed if you want
to use it to send documents.
2. All external programs that might be needed must be available and configured.
You have the following options to configure and monitor SAPconnect:
●
●
●
Transaction SOADM (requires AS ABAP 7.02 or higher)
Transaction SCOT (corresponds to transaction SOADM, directly enters path
Settings → SMTP Connection → Outbound Messages → SMTP Nodes)
Transaction SCON (supports all communication types, is outdated)
The first two options are recommended. Use the outdated transaction SCON only for
communication types different from SMTP and HTTP.
Troubleshooting SAPconnect
Various troubleshooting tools are available, some of which are mentioned as examples in the
following list:
●
●
●
For outbound messages, use routing tests to check whether the error during the node
determination was caused by the recipient address. This test checks whether routing for
outgoing messages runs correctly in the communication environment. The test provides
information on how the appropriate node is determined using the specified recipient
address and whether fax and paging numbers are converted according to the rules for
recipient number adjustment.
A trace can be activated for incoming and outgoing messages.
The messages that are sent can be evaluated according to their current status. For
example, all documents with transmission errors can be displayed and resent. This can be
used to create overviews of the documents that have been sent in the current client.
Overviews can be limited according to send times, communication methods, and send
status. The entire send history of each document can also be called up. Overviews enable
recipients to be notified and documents to be sent again.
Additional Information on SAPconnect
For more information on setting up communication with SAPconnect, see the online
documentation for SAP S/4HANA (Product Assistance) following the paths
●
●
SAP S/4HANA → Enterprise Technology → ABAP Platform → Other Services →
Services for Application Developers → Generic Business Tools for Application Developers
(BC-SRV-GBT) → Business Communication Services - Sending to SAP Applications
SAP S/4HANA → Enterprise Technology → ABAP Platform → Other Services →
Services for Business Users → SAPconnect (BC-SRV-COM)
In addition, the following SAP notes might be helpful:
●
SAP Note 455127 – E-mail (SMTP) in different SAP releases
© Copyright. All rights reserved.
113
Unit 2: Setting Up SAPconnect and SMTP
●
SAP Note 17194 – Telefax in various SAP Releases
●
SAP Note 455129 – Paging/SMS in different SAP releases
●
SAP Note 312690– SAPconnect: Collective note
●
SAP Note 455140 – Configuration of e-mail, fax, paging or SMS using SMTP
●
SAP Note 455142 – SAPconnect: Configuration paging/SMS via HTTP
●
SAP Note 598718 – SAPconnect - Performance
●
SAP Note 1236270 –Support for SAPconnect RFC interface
●
SAP Note 1637415 – S/MIME integration in SAPconnect
●
SAP Note 2841986 – Sending messages via Whatsapp using SAPconnect
●
SAP Note 1917416 – SMS via HTTP: New functions
LESSON SUMMARY
You should now be able to:
●
114
Explain the role of SAPconnect for external communication
© Copyright. All rights reserved.
Unit 2
Lesson 2
Setting Up Communication with Simple Mail
Transfer Protocol (SMTP)
LESSON OVERVIEW
In this lesson, you learn how to send and receive e-mails using SMTP with AS ABAP.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Summarize the task of a Mail Transfer Agent
●
Perform the configuration of the AS ABAP for the use of SMTP
Introduction to Communication Using SMTP
Simple Mail Transfer Protocol (SMTP) is supported directly by the ICM process. This means
that it is possible to exchange e-mails between the SAP system and any SMTP-compatible
mail server without using additional external components (such as connectors or gateways).
You can use any product that meets the SMTP standard as a mail server.
The figure “Task of a Mail Transfer Agent (MTA)” shows a simplified e-mail system landscape
for a company. If an e-mail is sent to the address info@sap.com, it first reaches a Mail
Transfer Agent (MTA). This is a program (such as sendmail) that is responsible for forwarding
and delivering e-mails. When a mail is received from a Mail User Agent (MUA) (the actual email program) or a different MTA, the MTA analyzes the mail and either sends it to the local
user (that is, their MUA) or forwards it to a different MTA (if alias rules have been defined, for
example). In the example shown in the figure “Task of a Mail Transfer Agent (MTA)”, the
inbound e-mail is forwarded to the SAP ECC system with the local domain ecc.sap.com.
Note:
SAPconnect is not an MTA and it cannot automatically forward inbound mails that
are not intended for it to a different mail server.
© Copyright. All rights reserved.
115
Unit 2: Setting Up SAPconnect and SMTP
Figure 95: Task of a Mail Transfer Agent (MTA)
Faxes and text messages (pager or SMS) can be exchanged using SMTP. Faxes and text
messages are packed into e-mails for this purpose. For receipt, the fax or text message server
or provider sends e-mails to addresses with the SAP system domain (such as to FAX=
+1212541234@crm-prod.company.com).
Restrictions of the AS ABAP with Regard to Receiving SMTP Mails
As of AS ABAP 7.02, in the outbound direction, the SAP system can transfer mails created in
one client to different mail servers. You can specify the host address and port number of the
mail servers in the definition of the SAPconnect SMTP node. For details, see SAP Note
2348016 – Configure multiple SMTP NODEs in SAP System.
The AS ABAP can receive e-mails via SMTP and can redistribute these e-mails to Business
Workplace users. In the inbound direction, the SAP system can receive mails from any
number of mail servers. Each client can be reached by a separate virtual mail server (host
name, port number) that is configured in transaction SICF. The best approach to address the
SAP system and its clients is to use a separate subdomain for each client (such as
d01.sap.com). The subdomains are assigned to host names and port numbers using routing
rules on the mail servers. Note that SAPconnect cannot be an MTA itself, that is, it cannot
forward the mails to other mail servers.
SMTP Configuration
To use the SMTP function, set the following profile parameters for the AS ABAP:
Note:
The restriction is that the SAPconnect send job can only be scheduled for
application servers on which SMTP is activated. You should therefore activate
SMTP on all application servers of the SAP system.
●
116
rdisp/start_icman = true, this parameter starts the ICM process automatically during the
system startup
© Copyright. All rights reserved.
Lesson: Setting Up Communication with Simple Mail Transfer Protocol (SMTP)
Hint:
In newer releases (as of SAP Kernel 7.72), this parameter does not exist any
more: Here the instance always starts with an ICM process. For details, see
SAP Note 2560792 – ABAP instances in S/4HANA always start with an icman
process.
●
●
exe/icman = <path for the executable of the ICM>
icm/server_port_<xx> = PROT=SMTP,PORT=<port>, this parameter opens a TCP/IP port
for receiving mails using the SMTP plug-in. <port> describes the port number. In case that
no mails are to be received in this SAP system, set <port> to zero.
Note:
The Internet Communication Manager process (ICM) also supports SMTP
authentication and SMTP using TLS / SSL for inbound mails. For this, the
profile parameter icm/server_port_<xx> offers the additional options TLS
(configures SMTP using TLS / SSL), AUTHMECHANISMS (authenticates
inbound mails) and AUTHUSERS (defines authorized AS ABAP users). For
example, the setting icm/server_port_<xx> =
PROT=SMTP,PORT=<port>,TLS=2 means that the client must encrypt with
TLS; if not, the connection is cancelled. For more information, see the online
documentation for SAP S/4HANA (Product Assistance), area SAP S/4HANA
→ Enterprise Technology → ABAP Platform → Application Server ABAP
Infrastructure → Components of Application Server ABAP → Internet
Communication Manager (ICM) → Administration of the ICM → Configuration
of the ICM Server Port → SMTP Authentication and SMTP Using TLS / SSL for
Inbound Mails (System Type AS ABAP).
Hint:
The parameter is/SMTP/virt_host_<xx> defines a virtual mail host for receiving
mails. In case that all inbound mails (including status notifications) are to be
received and processed in a single client of the SAP system, this parameter is not
required and is/SMTP/virt_host_0 = *:*; is taken as the default. If multiple clients
are intended as receivers, you must create a virtual host for each client.
To avoid performance bottlenecks due to high numbers of SMTP requests (or, optionally,
HTTP/S requests), use parameters to restrict the context usage in the back-end SAP system
for a protocol. Specify the percentage of all available contexts that can be used for the
relevant protocol. In the SAP system, the maximum number of contexts in the system is
limited by the profile parameter value of rdisp/tm_max_no (this parameter restricts the
maximum number of logons for an instance). If the following quotas are exceeded, the
requests will be rejected in the ICM:
●
icm/HTTP(S)/context_quota
●
icm/SMTP/context_quota
© Copyright. All rights reserved.
117
Unit 2: Setting Up SAPconnect and SMTP
For example, with the setting icm/SMTP/context_quota = 20, you can specify that only 20
percent of the available contexts can be used for SMTP (mail functions). This means that you
will have more capacity for HTTP(S) requests if there is a high workload.
Outgoing E-Mails in AS ABAP
E-mails are created either automatically using an application or manually in the SAP mail
client (Business Workplace, transaction SBWP). They are sent to a mail server by SMTP. Emails can also be displayed with a suitable mail client for this mail server, as shown in the
figure “Outbound Mails: Process”.
Figure 96: Outbound Mails: Process
The abbreviations used in the figure are explained as follows:
POP
Post Office Protocol was defined in 1984 in connection with TCP/IP and allows the receipt
of e-mails even on systems that cannot guarantee permanent connection to the mail
server. POP3 is the standard protocol for most mail clients on the Internet (together with
SMTP responsible for sending messages). The POP3 protocol can delete messages on
the server or leave them there. It can also delete messages directly without first
transferring them from the server. If more is required, such as hierarchical mailboxes, or
filters, use the functions of the client; the protocol does not provide these; you may have
to use IMAP.
IMAP
Internet Message Access Protocol is an e-mail protocol that allows the client to process
mails on the server. You can also create folders on the mail server (remote mailboxes) to
sort mails. IMAP was developed to transfer messages only when required. The users can
choose (unlike with POP3) which data they want to transfer to their own computer.
SMTP
Simple Mail Transfer Protocol is the standard for exchanging e-mails between servers in
the network. Mail clients use SMTP to send e-mails to a server, but not to receive e-mails.
MIME
Multipurpose Internet Mail Extensions consists of internet extensions (coding
procedures) for including binary data in internet mails. In addition, MIME supports
multipart mails to allow different data types in a mail or binary attachments, and mails in
HTML format.
118
© Copyright. All rights reserved.
Lesson: Setting Up Communication with Simple Mail Transfer Protocol (SMTP)
Configure Sending SMTP Mails
1. Maintain the key profile parameters for SMTP.
2. Maintain the user addresses (every user that wants to send e-mails requires an internet email address). For security reasons, in case that users are maintaining their own data
(transaction SU3), they cannot maintain the entries for the communication types E-mail
(INT or SMTP) and Remote Mail (RML).
a) Call transaction SU01 to enter the internet address under E-Mail Address on the
Address tab page.
Note:
You can use report RSADRCK7 to create e-mail addresses of type <UserID>@<MailDomainName> automatically for all (SU01) users in your client. This
report is described in more detail in the SAP note 104263 – Generating
Internet addresses for users.
3. Define the default domain of the current SAP system client:
In transaction SCOT, choose Business Communication Administration → Settings →
SMTP Connection → Outbound Messages → Settings, tab Outbound Settings, field
Default Domain.
Hint:
You need to do this for the following reasons:
●
The SMTP plug-in logs on to the mail server with the domain as an ID.
●
The message ID of the outbound e-mails is compiled using this domain.
●
If an SAP user sends an e-mail without an internet e-mail address, a
sender address consisting of the SAP user name and this domain is
generated.
Note:
Make SAPconnect settings in transaction SCOT for every client from which you
send messages.
4. Configure an SMTP node to send an internet mail.
a) Create an SMTP note in transaction SCOT (with or without wizard).
b) In the Mail Host and Mail Port fields, specify the mail server to which the outbound
mails are to be transferred.
© Copyright. All rights reserved.
119
Unit 2: Setting Up SAPconnect and SMTP
Note:
As of SAP Kernel 7.21, the SAPconnect SMTP interface supports both
sending and receiving via a secure connection (TLS, Transport Layer
Security) and a procedure for authenticating on the SMTP server (SMTP
AUTH).You can make relevant settings for outgoing messages in
transaction SCOT in the relevant SMTP node. For more information, see
SAP Note 1724704 – SCOT: Settings for TLS and SMTP AUTH.
5. Schedule a send job, because e-mails sent from an SAP application are initially placed in a
wait queue. A background job that runs periodically, the SAPconnect send job, collects emails from the wait queue and sends them to the mail server.
a) In transaction SCOT, use the menu to choose Settings → Send Jobs.
b) Create a background job with a variant (for example, SAP CONNECT INT SEND).
c) Schedule it periodically.
Hint:
Schedule the job on an instance (application server) in which an ICM process
is active.
Result
The figure “Configuring an SMTP Node” shows an example of configuring an SMTP node in
transaction SCOT. It is possible to configure a node for sending faxes or for sending text
messages in the same way.
Figure 97: Configuring an SMTP Node
Incoming E-Mails in an SAP System
When you send an e-mail from a mail client to a user in an SAP system, the e-mail is first
forwarded to a mail server and then forwarded to the SAP system by the MTA. The e-mails are
120
© Copyright. All rights reserved.
Lesson: Setting Up Communication with Simple Mail Transfer Protocol (SMTP)
sent to the mail client in the SAP system (Business Workplace) on a client-dependent basis
using SAPconnect. This is illustrated in the figure “Incoming Mails: Process”.
Figure 98: Incoming Mails: Process
The steps required to configure the mail connection in the SAP system are summarized in the
figure “Configuring the Mail Connection”.
Figure 99: Configuring the Mail Connection
Configure Receiving SMTP Mails
1. Maintain the key profile parameters for SMTP.
2. Enter transaction SU01 and create a system user with the authorization profile S_A.SCON
(which is shipped by SAP).
© Copyright. All rights reserved.
121
Unit 2: Setting Up SAPconnect and SMTP
3. Maintain the internet mail address for every user that is to receive e-mails in an SAP
system. For security reasons, users maintaining their own data (transaction SU3) cannot
maintain the entries for the communication types E-mail (INT or SMTP) and Remote Mail
(RML):
Call transaction SU01 to enter the internet address under E-Mail on the Address tab page.
4. Define the default domain of the current SAP system client:
In transaction SCOT, choose Business Communication Administration → Settings →
SMTP Connection → Outbound Messages → Settings. On the tab Outbound Settings,
enter the data in the field Default Domain.
5. For every client of an SAP system in which inbound mails (or status notifications for sent
mails) are to be received and possibly processed, create an SMTP server node for which
an assignment to a virtual mail host and logon data are stored.
Note:
In transaction SICF, SAP already ships an SMTP server node for every SAP
system. Use this for the first client that you want to be able to receive mails,
and create a new SMTP server node for each additional client. If you are
working with multiple clients, you need to create a virtual host for each client in
which messages are received using the SMTP plug-in.
Make sure that you do not delete the SMTP server node by accident, see SAP
Note 2728590 – SAPCONNECT service has been deleted from SICF.
a) Call transaction SICF and choose Execute. Under the list Virtual Hosts / Services,
double-click SAPconnect.
b) On the Host Data tab page, maintain the settings for parameter is/SMTP/
virt_host_<*>= <host>:<port>,<port>,...;
Note:
This parameter defines a virtual mail host for receiving mails. In case that
all inbound mails (including status notifications) are to be received and
processed by a single client in the SAP system, this parameter is not
required. In this case, is/SMTP/virt_host_0= <*>:<*>; is used as the
default. In case that multiple clients are intended as receivers, you need to
create a virtual host for each client;<host> and <port> describe the name
of the host and the port to which inbound mails are addressed.
c) On the Logon Data tab page, enter the client to which the mails received by the virtual
mail host are to be forwarded and maintain the logon data of the system user that has
been created in this client for the inbound mails.
d) On the Handler List tab page, add the handler CL_SMTP_EXT_SAPCONNECT at position
no. 1.
122
© Copyright. All rights reserved.
Lesson: Setting Up Communication with Simple Mail Transfer Protocol (SMTP)
Note:
Every SMTP server must be activated (in transaction SICF under Service/
Host → Activate from the menu or by clicking the right mouse button and
using the context menu) after it has been created or changed.
Administration of SAPconnect
SAPconnect offers a uniform administration interface that can help to set up the external
communication of an SAP system using SMTP and to monitor its running send operation. You
can navigate from here to all settings relevant for SAPconnect. Additionally, the
administration interface offers functions that help you to maintain and manage your
SAPconnect environment.
Use transaction SCOT to configure SAPconnect for communication type Internet (e-mail via
SMTP). You can use various views of the communication infrastructure in transaction SCOT.
Start with the view Business Communication Administration → Administration → System
State.
Schedule the send process periodically in transaction SCOT, by choosing Business
Communication Administration → Settings → Send Jobs.
Figure 100: Transaction SCOT: Maintenance of SMTP Node(s)
Caution:
Most settings of SAPconnect are client-dependent.
External communication systems log on to the SAP system as a system user. The
authorizations for this user are contained in the profile S_A.SCON. The SAPconnect
administrator requires the authorizations for the system user and the authorizations for table
maintenance, which are checked using the authorization object S_TABU_DIS. These
authorizations are contained in the roles SAP_BC_SRV_COM_ADMIN and
SAP_BC_SRV_GBT_ADMIN.
© Copyright. All rights reserved.
123
Unit 2: Setting Up SAPconnect and SMTP
Note:
SAPconnect provides the option to send emails signed using S/MIME standards
and/or encrypted or to receive and decrypt/verify e-mails that were encrypted
and/or signed using S/MIME. The S/MIME standard has been integrated into
SAPconnect. As an alternative to the option of creating secured messages using
S/MIME using SAPconnect, you can also use the product of a third-party, such as
a Secure Email Proxy. For this, choose Business Communication Administration →
Settings → Outbound Messages → Settings in transaction SCOT. Here on tab
Signature & Encryption, you can select the required combination for the e-mail
signature or encryption.
Related Information: Setting Up Communication with SMTP
For more information on setting up communication with SAPconnect, see the online
documentation for SAP S/4HANA 2020 (Product Assistance) following the path SAP S/
4HANA → Enterprise Technology → ABAP Platform → Application Server ABAP
Infrastructure → Other Services → Services for Business Users → SAPconnect (BC-SRVCOM)
In addition, the following SAP notes might be helpful:
●
SAP Note 455140 – Configuration of e-mail, fax, paging or SMS using SMTP
●
SAP Note 455127– E-mail (SMTP) in different SAP releases
●
SAP Note 312690– SAPconnect: Collective note
●
SAP Note 149926 – Secure e-mail: Encryption, digital signature
●
SAP Note 104263 – Generating Internet addresses for users
●
SAP Note 690020 – SAPconnect send process hangs with large mails
●
●
SAP Note 607108 – Problem analysis when you send or receive e-mails
●
SAP Notes 633265, 664833, 694151 and 883840 – SMTP PlugIn: Multi-codepage ability
●
SAP Note 1724704 – SCOT: Settings for TLS and SMTP AUTH
●
SAP Note 1702785 – Error diagnosis for SMTP using TLS and SMTP authentication
●
SAP Note 2148070 – Configuration of e-mail using SMTP (outbound) [Video] with a link to
a troubleshooting guide
●
SAP Note 2348016 – Configure multiple SMTP NODEs in SAP System
●
SAP Note 2337000 – Can SAP system pull emails from the Exchange server?
●
●
124
SAP Note 3085702 – Dump STRING_SIZE_TOO_LARGE occurred for email sending
background job
SAP Note 2979460 – AS ABAP: Default value of profile parameter SAPLOCALHOSTFULL
changed with ABAP Platform 2020
SAP Note 3064215 – Error message XS816 'SMTP communication error' for SMTP
messages in SOST
© Copyright. All rights reserved.
Lesson: Setting Up Communication with Simple Mail Transfer Protocol (SMTP)
●
SAP Note 3141466 – DNS Server Network Error (dns_unresolved_hostname) when using
HTTP enabled applications
●
SAP Note 2417443 – Inbound error "554 Transaction failed"
●
SAP Note 2728590 - SAPCONNECT service has been deleted from SICF
LESSON SUMMARY
You should now be able to:
●
Summarize the task of a Mail Transfer Agent
●
Perform the configuration of the AS ABAP for the use of SMTP
© Copyright. All rights reserved.
125
Unit 2: Setting Up SAPconnect and SMTP
126
© Copyright. All rights reserved.
Unit 2
Learning Assessment
1. SAPconnect allows you to connect external communication components to an ABAPbased SAP system using different technologies. Which of the following scenarios are
possible?
Choose the correct answers.
X
A HTTP plug-in to paging provider
X
B SOAP plug-in to e-mail server
X
C SMTP plug-in to e-mail server
X
D ALE plug-in to e-mail server
2. What does the following parameter and value mean: icm/SMTP/context_quota = 30?
Choose the correct answer.
X
A 30 percent of the available contexts can be used for HTTP.
X
B 30 work processes can be used for SMTP.
X
C 30 percent of available contexts can be used for SMTP.
X
D 30 is the maximum number of users that may have an e-mail address assigned to
their user master data.
© Copyright. All rights reserved.
127
Unit 2
Learning Assessment - Answers
1. SAPconnect allows you to connect external communication components to an ABAPbased SAP system using different technologies. Which of the following scenarios are
possible?
Choose the correct answers.
X
A HTTP plug-in to paging provider
X
B SOAP plug-in to e-mail server
X
C SMTP plug-in to e-mail server
X
D ALE plug-in to e-mail server
Correct. SAPconnect offers a HTTP plug-in and an STMP plug-in.
2. What does the following parameter and value mean: icm/SMTP/context_quota = 30?
Choose the correct answer.
X
A 30 percent of the available contexts can be used for HTTP.
X
B 30 work processes can be used for SMTP.
X
C 30 percent of available contexts can be used for SMTP.
X
D 30 is the maximum number of users that may have an e-mail address assigned to
their user master data.
Correct. The parameter icm/SMTP/context_quota = 30 defines what percentage of all
available contexts can be used for processing SMTP requests (the maximum number of
contexts is restricted in the back-end by the value of the profile parameter rdisp/
tm_max_no).
128
© Copyright. All rights reserved.
UNIT 3
Installing an Enqueue
Replication Server (ERS)
Lesson 1
Managing an Enqueue Replication Server (ERS)
131
UNIT OBJECTIVES
●
Install and operate an Enqueue Replication Server
© Copyright. All rights reserved.
129
Unit 3: Installing an Enqueue Replication Server (ERS)
130
© Copyright. All rights reserved.
Unit 3
Lesson 1
Managing an Enqueue Replication Server
(ERS)
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Install and operate an Enqueue Replication Server
Introduction to the Enqueue Replication Server (ERS)
The enqueue function is not just available in the classical ABAP central instance, it is also
available in a standalone server (central services instance).
In older SAP releases, AS ABAP-based SAP systems were installed with an enqueue as work
process of the Primary Application Server, also called Central Instance. Starting with AS
ABAP 7.00, it was possible to set up an AS ABAP-based SAP system with a stand-alone
enqueue service, as part of the central service instance (ASCS). As of AS ABAP 7.03, using
the ASCS is the default installation option for new SAP systems. Starting from AS ABAP 7.50,
SAP systems which have more than one application server and are running without ASCS are
not supported any longer. As of AS ABAP 7.51, AS ABAP-based SAP systems without ASCS
are not supported any longer.
Note:
AS Java-based SAP systems are always installed with a central service instance
(SCS).
© Copyright. All rights reserved.
131
Unit 3: Installing an Enqueue Replication Server (ERS)
Figure 101: SAP System Without ASCS
Using the classical setup without ASCS there are some single points of failure (SPOF) – see
the figure above:
●
●
●
The SAP Message Server can be restarted quite fast. As long as it is not available, there is
no communication possible between the application servers, but there is no loss of critical
data.
The SAP Database has to be secured by means of database failover solutions.
The central instance is a SPOF, because it contains the enqueue service. The enqueue
service contains the critical lock data in main memory. If the enqueue service fails, the lock
data will be lost. In this case, all transactions holding locks have to be reset.
To avoid the need to implement high availability for the entire central instance, SAP
recommends that you use the Standalone Enqueue Server as part of the ASCS instance. As of
AS ABAP 7.40, the use of the ASCS is the default architecture (which means that the SAP
system then has no central instance any more – see the following figure):
132
© Copyright. All rights reserved.
Lesson: Managing an Enqueue Replication Server (ERS)
Figure 102: SAP System With ASCS
The Standalone Enqueue Server provides the following benefits:
●
●
The enqueue clients (SAP application servers) and the enqueue server communicate
directly, that is, the work process has a TCP connection to the enqueue server. They no
longer communicate via the dispatchers and the message server.
You can implement the standalone enqueue server as part of the high availability enqueue
server solution (with replication server) and thus make the enqueue server breakdownproof. The procedure to do this is closely linked to the implemented cluster software.
Figure 103: SAP System With ASCS and ERS
When using an Enqueue Replication Server (ERS), each change of the lock table of the
enqueue service is replicated to the ERS. The answer to the requesting enqueue client (the
work process) is processed, as soon as the replication is successful.
© Copyright. All rights reserved.
133
Unit 3: Installing an Enqueue Replication Server (ERS)
The multi-threaded architecture of the Standalone Enqueue Server allows parallel processing
and synchronization with the ERS. The throughput is higher than with a classical set up, using
a dispatcher with enqueue work process.
Each work process is connected with the Standalone Enqueue server. The enqueue server is
connected with the ERS.
The stand-alone enqueue server communicates vie port sapdp<nn> with its clients. <nn> is
the instance number of the ASCS. Because application servers running on the same host
communicate using this port as well, the ASCS needs its own instance number.
Standalone Enqueue Server (1) and Standalone Enqueue Server 2
To monitor locks of the Standalone Enqueue server, the AS ABAP offers transaction SM12.
With Standalone Enqueue Server 2, SAP offers a successor to the Standalone Enqueue
Server. For administration, transaction SMENQ can be used. Before you switch from
Standalone Enqueue Server to Standalone Enqueue Server 2, you need to make additional
changes in the ASCS instance profile.
Note:
Starting with AS ABAP 7.52, the Standalone Enqueue Server 2 also includes
replication support using Enqueue Replicator 2. As of ABAP Platform 1809, the
Standalone Enqueue Server 2 (and Enqueue Replicator 2 for high-availability
scenarios) is installed by default.
Starting with ABAP Platform 2020, the Standalone Enqueue Server 2 (and
Enqueue Replicator 2 for high-availability scenarios) is the only available option.
Transaction SM12 now shows the same data as transaction SMENQ and the “old”
view of transaction SM12 has been moved to transaction SM12OLD.
Detailed information concerning the Standalone Enqueue Server (1) and the Standalone
Enqueue Server 2 can be found in the online documentation for
●
●
SAP S/4HANA 1909 (Product Assistance), area SAP S/4HANA → Enterprise
Technology → ABAP Platform → Application Server ABAP Infrastructure → Components
of Application Server ABAP → Standalone Enqueue Server and SAP S/4HANA →
Enterprise Technology → ABAP Platform → Application Server ABAP Infrastructure →
Components of Application Server ABAP → Standalone Enqueue Server 2.
SAP S/4HANA 2021 (Product Assistance), area SAP S/4HANA → Enterprise
Technology → ABAP Platform → Application Server ABAP Infrastructure → Components
of Application Server ABAP → SAP Lock Concept → Standalone Enqueue Server 2.
The following figure compares the two versions of the Standalone Enqueue server.
134
© Copyright. All rights reserved.
Lesson: Managing an Enqueue Replication Server (ERS)
Figure 104: Comparison: Standalone Enqueue Server 1 vs. 2
Communication Between Enqueue Server and ERS
The enqueue server opens port enque/encni/repl_port (for Standalone Enqueue Server (1)) or
enq/replicatorport (for Standalone Enqueue Server 2) to wait for the connection of the ERS.
To use the Standalone Enqueue Server 2 together with the Enqueue Replicator 2 in a high
availability environment with automated failover in error situations, they have to be supported
by an HA solution. For more information, see SAP Note 2711036 – Usage of the Standalone
Enqueue Server 2 in an HA Environment.
●
●
If the Standalone Enqueue Server fails, it will be restarted by the HA software on the host
of the ERS and copies the replication table in main memory from the ERS in order to
rebuild its lock table. In other words, the enqueue server follows the ERS.
If the ERS fails, it can be restarted on a different host. The ERS can copy the entire lock
table from the stand-alone enqueue server. During normal run the ERS only receives the
delta information from the Standalone Enqueue Server.
Configuration of ERS
Before using the ERS, it has to be installed and configured. The following road map shows the
essential steps for installation, configuration and usage of the ERS:
Note:
Some of the steps depend on the ERS version.
© Copyright. All rights reserved.
135
Unit 3: Installing an Enqueue Replication Server (ERS)
Figure 105: Installing And Configuring ERS
Installation
Before installing an ERS, the SAP system must be set up with an ASCS. Then the ERS can be
installed using SAP Software Provisioning Manager (SWPM). Use the menu options HighAvailability System in the corresponding section.
File system structure
The ERS is installed in the /usr/sap/<SID>/ERS<nn> directory. Subdirectory exe contains
programs that can check the correctness of replication (ensmon) and can view the lock table
(enqt). These two programs are needed when using Enqueue Replication Server 1. For
Enqueue Replication Server 2, you can use the enq_admin tool, see SAP Note 2808886 – enqt
command is not working with Standalone Enqueue Server 2 (ENSA2) enabled.
Profile Parameters
In case that you are using the Standalone Enqueue Server (and in certain circumstances the
Enqueue Replication Server also), you need to set several profile parameters. Different
parameters are relevant for the enqueue clients (application server instances), the enqueue
server, and the Enqueue Replication Server. The parameters concerning the Standalone
Enqueue Server are also relevant when not using the ERS.
The parameters that are used depend on the version of the Standalone Enqueue Server. All
parameters that start with “enq/” refer to Standalone Enqueue Server 2. Up to (and including)
SAP S/4HANA Server 1909, the parameter enq/enable defines which Standalone Enqueue
Server is to be used. TRUE means that Standalone Enqueue Server 2 will be used. The
parameter should be set in the DEFAULT profile because it must be identical for all application
servers of an SAP system.
Note:
As of SAP S/4HANA 2020, parameter enq/enable is not used any more – see SAP
Note 3030085 – Obsolete ENQ parameters in SAP Basis 755.
136
© Copyright. All rights reserved.
Lesson: Managing an Enqueue Replication Server (ERS)
Profile Parameters for the Standalone Enqueue Server (1) and Enqueue Replication
Server (1)
The standard parameters in the enqueue environment are also valid for the Standalone
Enqueue Server. The most important parameter is enqueue/table_size which specifies the
size of the lock table in KB, default is 16384 (= 16 MB).
Instance profile of the enqueue clients (application servers):
●
●
●
enque/deque_wait_answer: determines if the dequeue is performed synchronously or
asynchronously. TRUE = wait for answer of stand-alone enqueue server, FALSE = don’t
wait. This parameter must be set to TRUE (case sensitive) in case of a stand-alone
enqueue server.
enque/process_location: type of communication. Default is REMOTESA (direct
communication), and should not be changed.
enque/serverhost and enque/serverinst: host and instance number of Standalone
Enqueue Server.
Instance profile of the Standalone Enqueue Server:
●
●
●
enque/server/replication: true or false. This parameter must be set to true in case of
ERS.
enque/encri/repl_port: Use only if the default port 5<nn>16 should not be used.
enque/server/max_clients: Number of processes that can connect to the enqueue server
in parallel. Default is 1000.
Profile of the ERS:
●
enque/enrep/*
Hint:
For more information about the Standalone Enqueue server (1), see the online
documentation (Application Help) for SAP NetWeaver Application Server for
ABAP 7.52, area SAP NetWeaver Library: Function-Oriented View → SAP
NetWeaver Application Server for ABAP Infrastructure → Components of SAP
NetWeaver Application Server for ABAP → Standalone Enqueue Server.
Table 2: Selected Profile Parameters when Using the Enqueue Replication Server (1)
Profile
Parameter
Value
Instance profile of ASCS
enque/server/replication
true
Default profile of application
servers
enque/deque_wait_answer
TRUE
Default profile of ERS
enque/deque_wait_answer
TRUE
Profile parameters for the Standalone Enqueue Server 2 and Enqueue Replication Server
2
For the Standalone Enqueue Server 2, with the help of parameter enq/server/schema, a
schema is created in the lock table on the basis of its name. The addition MAX_LOCKS for this
parameter specifies the maximum number of locks.
© Copyright. All rights reserved.
137
Unit 3: Installing an Enqueue Replication Server (ERS)
The following parameters should be set in the DEFAULT profile as they need to be identical on
all instances:
●
●
●
enq/enable = TRUE (to be used up to and including SAP S/4HANA Server 1909) specifies
that the Standalone Enqueue Server 2 is to be used.
enq/serverhost = <host of ASCS instance> and enq/serverinst =<number of ASCS
instance> specify both host and instance number of the Standalone Enqueue server.
enq/replicatorhost = <host of ERS instance> and enq/replicatorinst = <number of ERS
instance> specify both host and instance number of the Enqueue Replication server.
In addition, the following parameters are important for the instance profiled of the Standalone
Enqueue Server 2 (enq/server/replication/enable) and of the enqueue clients / application
server instances of the SAP system (enq/client/max_async_requests) :
●
●
enq/server/replication/enable must be set to true in case of an ERS.
enq/client/max_async_requests should be set to 0 (default value): enqueue clients can
send asynchronous requests to Standalone Enqueue Server 2. The value 0 for this
parameter ensures the synchronization between the lock table and the replication table.
Table 3: Selected Profile Parameters in the DEFAULT profile when Using the Enqueue
Replication Server 2
Profile
Parameter
Value
Instance profile of ASCS
enq/server/replication/
enable
true
DEFAULT profile
enq/enable (to be used up to
and including SAP S/4HANA
Server 1909)
TRUE
Hint:
Detailed information concerning the relevant profile parameters for the
Standalone Enqueue Server 2 and their comparison to parameters for
Standalone Enqueue Server (1) can be found in the online documentation for SAP
S/4HANA 2021 (Product Assistance), area SAP S/4HANA → Enterprise
Technology → ABAP Platform → Application Server ABAP Infrastructure →
Components of Application Server ABAP → SAP Lock Concept (BC-CSR-EQ) →
Standalone Enqueue Server 2 → Configuration of the Standalone Enqueue Server
2 → Comparison of Old and New Profile Parameters .
Start and Stop
The ASCS and ERS can be started and stopped using the SAP MC or the SAP MMC. The ERS
has to be stated before starting the ASCS. The ASCS has to be stopped before stopping the
ERS.
138
© Copyright. All rights reserved.
Lesson: Managing an Enqueue Replication Server (ERS)
Monitoring
For Standalone Enqueue Server 2, you can use transaction SMENQ in Application Server ABAP
to monitor which locks are currently held. Here, you can monitor the lock table, and detect
and correct problems, for example by deleting locks no longer needed.
Transaction SMENQ offers the following views:
●
●
●
Standard: here application developers and end users can search for their locks.
Server Administration: Here you can administrate and monitor the Standalone Enqueue
Server 2. This view is relevant for system administrators and SAP Support.
Replicator Administration: This view is only visible if you have configured Enqueue
Replication Server 2 for the replication. Here you can administrate and monitor the
Enqueue Replication Server 2. This view is relevant for system administrators and SAP
Support.
Note:
As of SAP S/4HANA Server 2020, you can use transaction SM12 for this as well.
For Standalone Enqueue Server (1), by contrast, you can monitor the enqueue server and the
Enqueue Replication Server using program ensmon.
The lock table of the ERS can be monitored using enqt by starting the program on the host of
the ERS.
Note:
The ensmon process connects to the enqueue server across the network. You
must specify the name of the host on which the enqueue server is running, either
by specifying the profile pf=<profile> or by using the call option -H
<hostname>. You can specify the instance number of the enqueue server in the
parameter -I <server instance>.
The behavior of the ensmon program is controlled using numerical operation
codes (opcodes). If you enter ensmon -help, an overview of these operation codes
is displayed.
The Enqueue Replication Server is normally monitored by an extra software program. This
may be the SAP start service, which starts the replication instance, or it may be HA software,
which monitors the enqueue and replication servers in the cluster.
Trace files provide important information for error analysis. Both the enqueue server and the
Enqueue Replication Server write trace files to the work directory. You can view these files
using operating system functions or the SAP Management Console.
●
●
File dev_enqsrv and (for Standalone Enqueue Server (1)) or dev_enq_server (for Standalone
Enqueue Server 2) is written only when the enqueue server is started up. All problems
occurring when the enqueue server is started (for example, when the replica is read or the
lock table created) are analyzed with this file.
Problems arising from the Enqueue Replication Server are written to file
dev_enq_replicator file in the work directory of the ERS instance (in case of Standalone
© Copyright. All rights reserved.
139
Unit 3: Installing an Enqueue Replication Server (ERS)
Enqueue Server 2). For Enqueue Replication Server (1), almost all components of the
replication server write to file dev_enrepsrv (or dev_enq_server).
Additional Information
For additional information, see SAP Notes
●
2808886 – enqt and ensmon commands are not working with Standalone Enqueue Server
2 (ENSA2) enabled
●
2917868 – ENQU, ENSA 2.0: Lock Table Overflow
●
2630416 – Support for Standalone Enqueue Server 2
●
3030085 – Obsolete ENQ parameters in SAP Basis 755
●
2456601 – How to find SAP WIKI for BC-CST-EQ
●
2954193 – ERS instance profile location
LESSON SUMMARY
You should now be able to:
●
140
Install and operate an Enqueue Replication Server
© Copyright. All rights reserved.
Unit 3
Learning Assessment
1. You are running an AS ABAP-based SAP system with ASCS but without Enqueue
Replication Server (ERS). Which components are to be considered as a Single Point of
Failure for this SAP system?
Choose the correct answers.
X
A Message Server
X
B Enqueue Server
X
C Primary Application Server
X
D Database
© Copyright. All rights reserved.
141
Unit 3
Learning Assessment - Answers
1. You are running an AS ABAP-based SAP system with ASCS but without Enqueue
Replication Server (ERS). Which components are to be considered as a Single Point of
Failure for this SAP system?
Choose the correct answers.
X
A Message Server
X
B Enqueue Server
X
C Primary Application Server
X
D Database
Correct. The Single Points of Failure are the Message Server, the Enqueue Server and the
Database.
142
© Copyright. All rights reserved.
UNIT 4
Configuring Central User
Administration (CUA)
Lesson 1
Understanding the Basic Idea of CUA
145
Lesson 2
Setting Up a CUA
151
Lesson 3
Performing User Administration with CUA
169
UNIT OBJECTIVES
●
Expalin the idea of the CUA
●
Set up the required technical users and RFC destinations for CUA
●
Activate and configure the CUA
●
Initialize the data synchronization for company address data and user data
●
Use the CUA for user administration
●
List the steps to remove a CUA
© Copyright. All rights reserved.
143
Unit 4: Configuring Central User Administration (CUA)
144
© Copyright. All rights reserved.
Unit 4
Lesson 1
Understanding the Basic Idea of CUA
LESSON OVERVIEW
This lesson introduces the principles of Central User Administration (CUA), and provides
decision-making aids.
Business Example
In your landscape of SAP systems, the same users exist in a number of systems and clients.
You want to learn how you can reduce the costs of maintaining users in the different SAP
systems. You can reduce the costs for user administration by centrally administering the
users in distributed systems.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Expalin the idea of the CUA
Central User Administration (CUA)
Fundamentals
User information is stored in a client-specific manner in AS ABAP based SAP systems. That is,
every client in a system has its own, independent group of permitted users. If you have a
complex system landscape in your company, you might have more than one of the three
standard system types (DEV, QAS, and PRD).
Hint:
For example, you have three SAP production systems: an SAP S/4HANA Server
system as an ERP production system, an SAP ECC system as an HCM
production system, and an SAP SCM system for production planning. These
systems would all be regarded as “PRD” systems.
Classically, users are maintained in the respective system and client. If, for example, a
developer retires from your company, you must ensure that the relevant user cannot log on to
any client in any system any longer. If you do not know exactly which areas your colleague
worked in as an end user, you need to log onto every single client that they may have used and
manually search for and lock (or even remove) the user master data. In complex landscapes,
this task can easily become confusing. There may, therefore, be potential security gaps in
your user administration. This can result in large costs for consistent user maintenance.
Note:
Users that are no longer to be used for logging on to the SAP system should be
locked and not deleted.
© Copyright. All rights reserved.
145
Unit 4: Configuring Central User Administration (CUA)
The following figure should clarify the structure of user administration in a “classic” scenario
with multiple SAP systems.
Figure 106: Classic User Administration
As you can see from the figure above, the number of “interesting” clients (that is, clients other
than 000) to be administrated is 15, even in this simple example. The clients shown are used
for different purposes, for example, client 550 is not required in the production system in the
SAP ECC system landscape (because this is a test client or a training client, for example).
Note:
SAP recommends to remove (unused) clients 001 and 066 — see SAP Note
1749142 for details.
Concept of Central User Administration
The aim of Central User Administration (CUA) is to reduce the cost for user administration
and to make user administration more secure by centralizing the work. The concept of CUA
envisages only a single client for maintaining user data; that is, you determine the following
list of points at a central location in your system landscape.
What You Define with Central User Administration
●
Which user master records exist in which clients?
●
Which roles and profiles are assigned to these master records?
●
What are the initial passwords?
●
Is the user locked or not?
The above user data is managed in only one place. This means that you can have an overview
of the situation for managing your user data. Before you decide to implement CUA, the
following prerequisites should exist in your system landscape; otherwise the work reduction
due to the implementation of CUA will not be optimal.
146
© Copyright. All rights reserved.
Lesson: Understanding the Basic Idea of CUA
Prerequisites for Efficient CUA Implementation
●
There are a large number of identical users in multiple clients
●
There is a complex system landscape with a large number of clients to be managed
●
You want to reduce the costs of complex, distributed user administration by implementing
Central User Administration
The prerequisites above are not entirely self-explanatory. If, for example, you have a
“standard three-system landscape” in which the users primarily work in one client each, and
the user groups in the different clients are almost disjunctive, the cost saving due to the
implementation of CUA is not particularly large. The situation is similar if you use identical
users in multiple clients, but your system landscape only contains a few clients, or the number
of administered users is not especially high in total.
Hint:
CUA can also simplify the user administration in small system landscapes, as the
user master records are then only administered in one client of your system
landscape, which is clearly laid out. This increases the security of the systems
that you administer.
As the following figure illustrates, you can perform all work relating to user master records
from one central client when you implement CUA.
Figure 107: User Administration Using CUA - Example
© Copyright. All rights reserved.
147
Unit 4: Configuring Central User Administration (CUA)
Using CUA, which resides in a dedicated system, you can now distribute the following
information from the central system to the child systems by Application Link Enabling (ALE)
technology:
●
●
Which users exist in which system, in which client, and with which roles and profile
assignments.
Which initial password is assigned to each user.
Hint:
ALE is a powerful tool, and only a small portion of its many possibilities is used in
the context of CUA.
Notes on Implementing CUA
The following list contains important notes for implementing CUA.
1. SAP recommends to implement the CUA central system in a system with the highest
available release of software component SAP_BASIS. Your system should be as up to date
as possible, with the latest Support Packages and kernel patches.
2. CUA can be used cross-release, although a connected system should also have a Support
Package status as current as possible.
3. CUA can be used for user administration in all AS ABAP based SAP systems (SAP S/
4HANA On-Premise, SAP ECC, SAP BW, and SAP SCM systems, for example). However,
you should search for SAP Notes about this topic in the SAP Notes database before
implementing CUA, and take these into account.
Note:
For the use of CUA in SAP S/4HANA systems, take SAP note 2570961 –
Simplification item S4TWL - Business User Management (and the SAP Notes
referenced therein) into consideration.
In an ALE integrated system union, SAP and non-SAP systems may be in contact. The
systems linked to each other are called logical systems. The logical systems in the context of
CUA are, in this case, the clients involved. That is, a single SAP system can house multiple
logical systems in terms of ALE (and CUA). Data exchange in an ALE integrated system is
performed by exchanging intermediate documents (IDocs) via Remote Function Call (RFC)
destinations.
148
© Copyright. All rights reserved.
Lesson: Understanding the Basic Idea of CUA
Caution:
Ensure also that if CUA is in use and role definitions are transported (by means of
transport requests from one system to another system), the user assignments
to the roles are not transported.
If CUA is in use and role definitions, including user assignments, are transported
at the same time, discrepancies might arise in the user assignment to roles.
You can avoid these problems as described in SAP Note 571276 – PFCG:
Transporting roles using transaction SM30 by setting the USER_REL_IMPORT
entry in table PRGN_CUST to NO in all the child systems in CUA.
Related Information
For more information on Central User Administration, see the online documentation for SAP
S/4HANA (area Product Assistance) path (depending on the release)
●
●
●
Enterprise Technology → ABAP Platform → Administrating the ABAP Platform →
Administration Concepts and Tools → Solution Lifecycle Management → Identity and
Access Management → User and Role Administration of ABAP Platform → Configuration
of User and Authorization Administration → Central User Administration (including a
glossary) or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security and
User Administration → User Administration and Identity Management in ABAP
Systems → (Link to) Central User Administration or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security
Concepts and Tools → Identity Management → User and Role Administration of
Application Server ABAP and from there either Configuration of User and Role
Administration → Central User Administration or Administration of Users and
Roles → Operating Central User Administration.
and SAP Note 2918803 – When is CUA out of maintenance?.
LESSON SUMMARY
You should now be able to:
●
Expalin the idea of the CUA
© Copyright. All rights reserved.
149
Unit 4: Configuring Central User Administration (CUA)
150
© Copyright. All rights reserved.
Unit 4
Lesson 2
Setting Up a CUA
LESSON OVERVIEW
In this lesson, you will learn about setting up Central User Administration (CUA). All of the
required steps are presented in chronological order.
Business Example
The user administration of the SAP systems in your company is to be organized more
efficiently and more clearly. CUA is to be implemented to do this.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Set up the required technical users and RFC destinations for CUA
●
Activate and configure the CUA
●
Initialize the data synchronization for company address data and user data
CUA Preparations
Setup Overview
The steps listed in the following “roadmap” are required to set up Central User
Administration.
Figure 108: Roadmap for Setting Up the CUA
© Copyright. All rights reserved.
151
Unit 4: Configuring Central User Administration (CUA)
Note:
Where the term technical users is used here, it refers to technical users in terms of
user classification for system measurement. In this case, the class of “technical
users” represents users who are not enabled for interaction (SAP GUI / ICF).
The technical users that are used for CUA are of the type System (created as such
in transaction SU01), although the documentation and SAP Notes sometimes
refer to users of the type Communication. However, this recommendation is out of
date, since users of the type Communication, unlike users of the type System, are
subject to the password change rules.
Note that as of SAP S/4HANA Server 1909, the entry screen of transaction SU01
contains the additional button (Create) Technical User.
System Setup in This Class
In ADM103 training classes (or classes derived from ADM103), the system setup concerning
the exercises for this lesson is as follows:
Setup for the Q team
Central system: client 100 in system S4Q (logical system S4QCLNT100)
Child system: client 000 in system S4Q (logical system S4QCLNT000)
Setup for the P team
Central system: client 100 in system S4P (logical system S4PCLNT100)
Child system: client 000 in system S4P (logical system S4PCLNT000)
The following figure should also clarify this setup for this course.
Figure 109: CUA Infrastructure in this Training
152
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
Caution:
In the following, only the terms central system and child system are used. This
refers specifically to clients (logical systems). Therefore, if your company runs
the central CUA and child CUA on the same SAP system (in different clients), the
terms central system and child system refer to different clients in the same SAP
system.
Specifying and Assigning the Logical Systems
You can specify logical systems as follows:
1. Log onto your central system with an administration user.
2. In the Implementation Guide (transaction SALE), choose Basic Settings → Logical
Systems → Define Logical System, or start transaction BD54. Alternatively, you can
maintain the table view V_TBDLS using transaction SM30.
3. From the menu, in change mode choose Edit → New Entries.
4. In the Log.System column, create a new logical name in uppercase letters. In order to
identify systems by name more easily later, use the naming convention <SID>CLNT###
for the logical system names, where you replace <SID> with the relevant system ID and
### with the relevant client number, for example, S4DCLNT100. In addition, enter a name
of the logical system, such as Central System (CUA) or Child System (CUA).
5. Save your entries, which will then be included in a transport request.
6. Create the logical system name of the central system and of the relevant child system in
all child systems.
You have the following options for step 6:
●
●
Import the transport request generated in step 5 (which contains the names of all
logical systems) into all other systems in the CUA landscape.
Perform steps 1 to 4 in all child systems of the CUA. Create the logical system name of
the central system and of the relevant child system in each case.
Hint:
The data for the logical systems is created cross-client. If there are multiple
logical systems of the CUA in one SAP system, you only need to perform steps 1
to 5 (or to import the transport request) once per SAP system.
You also use transaction SALE to assign the logical systems.
For this, choose Basic Settings → Logical Systems → Assign Logical System to Client, or start
transaction SCC4 directly. Alternatively, edit table T000 with transaction SM30.
After you have switched to change mode and have selected the appropriate client, you can
assign an appropriate entry to the Logical system field in the details view of the client
attributes. When doing so, use the input help (F4 help) to avoid input errors. Select the
appropriate entry, such as S4DCLNT100, if you want to assign this logical system to client 100
in the S4D system. Make this assignment of logical systems for all clients involved in the CUA
(in all of the involved systems).
© Copyright. All rights reserved.
153
Unit 4: Configuring Central User Administration (CUA)
Creating the Technical Users and the RFC Destinations
RFC destinations are used to exchange data by ALE in the context of CUA. These RFC
destinations are used to distribute user data from the central system to the child systems, to
send changes to this data in the child systems, and to send status reports back to the central
system. In the context of CUA, the central system is treated like another child system in some
respects. That is, in the simplest case of a CUA (two logical systems linked to each other –
one central system, one child system – within the same SAP system), two RFC destinations
are required. If the central system and the child system are in different SAP systems, three
RFC destinations are required:
Note:
For more information, see SAP Note 492589 – CUA: Minimum authorizations for
communication users. The composite role SAP_BC_USR_CUA groups together the
various roles for service users of Central User Administration (CUA). The
composite role is used only for documentation purposes. The single roles that it
contains are assigned directly to the technical users.
There is a newer version available, SAP Note 2000585 – CUA: Assigning minimal
authorizations for communications users (version 2). This SAP Note describes
more restrictive SAP authorization default values and SAP default roles.
In this lesson, we follow the recommendations of the new version (SAP Note
2000585).
RFC Destinations from the Central System to the Child Systems
RFC destinations are required from the central system to all child systems.
These RFC destinations use technical users in the child systems for which the naming
convention CUA_<SID>_### is recommended, where <SID> is replaced with the system ID of
the child system and ### with the number of the client being addressed in the child system.
Following SAP Note 2000585 – CUA: Assigning minimal authorizations for communications
users (version 2), this user requires at least authorizations that are contained in the roles
SAP_BC_USR_CUA_731_CLNT, SAP_BC_USR_CUA_731_CLNT_CHECK and
SAP_BC_USR_CUA_731_CLNT_SETUP.
However, you should not assign the delivered SAP roles to the technical users, but rather
copies of these roles for which you have created authorization profiles with role maintenance
(transaction PFCG). For simplicity, name the copies of the SAP roles by adding Z_ (and
deleting the last two letters if needed) to the start of the name, that is,
Z_SAP_BC_USR_CUA_731_CLNT, Z_SAP_BC_USR_CUA_731_CLNT_CHE and
Z_SAP_BC_USR_CUA_731_CLNT_SET.
154
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
Hint:
●
●
●
Note that some of the authorization objects in these roles contain not
maintained fields (such as field CLASS for authorization object
S_USER_GRP). These missing authorizations need to be maintained in the
copied roles at customer site according to their needs / authorization
concept.
Note that the technical user in the child system requires the role
Z_SAP_BC_USR_CUA_731_CLNT_SET only while you are setting up (or
changing) the CUA system landscape. You can then remove this role from the
technical user again.
To increase the security and performance in your system, you can use the
role SAP_BC_USR_CUA_731_CLNT in a “shared” way. This role contains the
authorizations required for receiving the IDocs of the CUA and to update
them. However, the subrole SAP_BC_USR_CUA_731_CLNT_RFC (create a
copy of this role in the same way as the roles described above) contains only
authorization to receive the IDocs, and the role
SAP_BC_USR_CUA_731_CLNT_BTCH has the update authorization for the
inbound IDocs. Assign the first role to the technical user, as described above.
Assign a copy of role SAP_BC_USR_CUA_731_CLNT_BTCH, however, which
only allows the changes to the user master records, to a user (of the type
System) that you use for background processing. This user is used (in the
child systems) to schedule a periodic background job that implements the
CUA changes in the child systems.
RFC Destinations from the Child Systems to the Central System
RFC destinations are also required from the child systems to the central system. Every child
system must be able to open an RFC destination to the central system.
Hint:
Since RFC destinations can be used cross-client (all clients of a system can use a
shared RFC destination), you only need to create one RFC destination to the
central system if there are multiple child systems (clients) in one and the same
SAP system.
The destination from the child system to the central system uses a technical user of the type
System that must be known in the central system. This user should have the ID CUA_<SID>.
In this case, <SID> stands for the system ID of the child system that communicates with the
central system using this user.
This user requires (at least) the authorizations for the roles SAP_BC_USR_CUA_731_CNTRL,
SAP_BC_USR_CUA_731_CNTRL_CHECK, and SAP_BC_USR_CUA_731_CNTRL_BDIST.
Create the roles by copying the template roles into the customer namespace and generating
the profiles for them using transaction PFCG.
© Copyright. All rights reserved.
155
Unit 4: Configuring Central User Administration (CUA)
Note:
The role SAP_BC_USR_CUA_731_CNTRL_BDIST is only required by the user in the
RFC destinations if the attributes in transaction SCUM are set to Redistribution. See
the section “Setting the Parameters for Field Distribution”.
Hint:
Note that some of the authorization objects in these roles contain not maintained
fields (such as field CLASS for authorization object S_USER_GRP). These
missing authorizations need to be maintained in the copied roles at customer
site according to their needs / authorization concept.
RFC Destinations from the Central System to Itself (Loopback)
A separate, additional RFC destination is required to connect the central system “to itself”. A
special user is used for this RFC destination. This technical user is of type System and their
authorizations are clearly delimited using predefined roles.
This destination also uses the user with the ID CUA_<SID>, where <SID> is the ID of the
central system. The required authorizations are contained in the roles
SAP_BC_USR_CUA_CUA_731_CNTRL, SAP_BC_USR_CUA_CUA_731_CNTRL_CHECK, and
SAP_BC_USR_CUA_731_CNTRL_BDIST mentioned above.
Creating the RFC Destinations
The following figure illustrates the required RFC destinations and technical users as well as
the roles they require in a very simple CUA scenario.
Figure 110: Required RFC Destinations and Technical Users for CUA
156
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
Hint:
SAP Note 492589 – CUA: Minimum authorizations for communication users and
its successor SAP Note 2000585 – CUA: Assigning minimal authorizations for
communications users (version 2) provide background information about the
required authorizations and the roles delivered by SAP in the CUA environment.
Compared to SAP Note 492589, SAP Note 2000585 describes more restrictive
SAP authorization default values and SAP default roles.
After you have created the users listed above with the appropriate role assignments in all of
the clients involved, you only need to define the RFC destinations in transaction SM59. Follow
the instructions below to do this:
1. In transaction SALE in the central system, choose Communication → Create RFC
Connections (transaction SM59).
2. Choose Create.
3. Enter the following data:
●
In the Destination field, enter the name of the connection, such as S4DCLNT000.
Note:
This entry must be in uppercase letters.
●
●
In the Connection Type field, enter 3.
In the Description group box, enter a short text, such as Connection to CUA child
system.
Caution:
The RFC destination name must be identical to the logical system that you
want to address with the RFC destination. The RFC destination must be
specified in uppercase letters.
4. After choosing Return, make the following settings on the Technical Settings tab:
●
●
If you want to restrict the function of the CUA to a particular server group, you can
specify the logon group after selecting the Load Balance: Yes radio button and
choosing Return.
If you do not want to use load distribution, specify the name of the host on which the
application server of your target system that you want to use is running for Target
Host, and specify the instance number of the application server in question.
5. On the Logon & Security tab, specify the client of the required logical system and
credentials of the technical user CUA_<SID>_###, for example, CUA_S4D_100.
6. Save this destination.
© Copyright. All rights reserved.
157
Unit 4: Configuring Central User Administration (CUA)
7. Test this RFC destination using the functions: Utilities → Test → Connection Test (Ctrl +
F3) and Utilities → Test → Authorization Test (Ctrl + F4) from the menu bar.
To setup the required RFC destination from the child system to the central system, log onto
the child system and perform steps 1 to 7 again. enter the credentials of user CUA_<SID>
here, where <SID> is the SID of your child system. You should also set up the RFC destination
from the central system to itself, described above, in the same way.
Note:
You can also use trusted RFC destinations for the CUA communication. This
further increases the security of your CUA communication. For information about
configuring the CUA using trusted RFC destinations, see the online documentation
for SAP S/4HANA (area Product Assistance), path (depending on the release)
●
●
●
Enterprise Technology → ABAP Platform → Administrating the ABAP Platform
→ Administration Concepts and Tools → Solution Lifecycle Management →
Identity and Access Management → User and Role Administration of ABAP
Platform → Configuration of User and Authorization Administration → Central
User Administration → Setting Up Central User Administration → System
Users and RFC Destinations → Advantages and Disadvantages of Trusted RFC
Destinations or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform →
Security and User Administration → User Administration and Identity
Management in ABAP Systems → (Link to) Central User
Administration → Setting Up Central User Administration → System Users and
RFC Destinations → Advantages and Disadvantages of Trusted RFC
Destinations or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform →
Security Concepts and Tools → Identity Management → User and Role
Administration of Application Server ABAP → Configuration of User and Role
Administration → Central User Administration → Setting Up Central User
Administration → Advantages and Disadvantages of Trusted RFC Destinations .
Activation and Configuration of the CUA
Activating the CUA
Once you have successfully activated the CUA, you will no longer be able to create users in
the linked child systems using transaction SU01.
The activation of CUA has been significantly simplified, and a number of necessary
configuration steps are performed automatically by the system. To activate the CUA, proceed
as follows:
1. Log on to the central system.
2. In the Implementation Guide (transaction SALE), choose Modelling and Implementing
Business Processes → Configure Predefined ALE Business Processes → Cross-Application
Business Processes → Central User Administration → Select Model View for Central
Administration (transaction SCUA).
158
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
3. Enter the name of your distribution model, such as CUA.
4. Choose Create.
5. In the Recipient column, enter the names of all child systems to be connected (such as
S4DCLNT000).
6. Save your entries completely.
7. The result screen Display logs appears. If you expand the nodes for the individual systems,
(maybe among others) you usually see the following messages for each system:
ALE distribution model was saved,
Central User Administration activated and
Text comparison was started or This child system supports change documents for the CUA
landscape.
If problem messages are displayed here, follow the procedure in SAP Note 333441: CUA:
Tips for problem analysis and SAP Note 2437862 – CUA (Central User Administration)
troubleshooting guide - Guided Answers.
When the CUA is activated, the system carries out the following configuration steps
automatically:
Configuration Steps When Central User Administration Is Activated
●
●
●
The corresponding ALE model is created or adjusted to match the new CUA model if
changes have been made
Partner profiles are created
Text comparison with the child systems is carried out for roles, profiles and contractual
user type IDs
The ALE distribution model defines which applications communicate with each other in the
distributed systems and which data types are distributed. You require a separate ALE
distribution model for a Central User Administration. In the central system, you define the
structure of your Central User Administration in the model view, which you then distribute to
the child systems. In the ALE distribution model to be defined for the CUA, two types of data
are distributed: user master data (including assigned roles and profiles) and company
addresses. In the distribution model, you require two methods to distribute user data and
company addresses. To implement these methods, you use BAPIs of the USER and
UserCompany business objects with the Clone method. You can view the partner model in
transaction BD64.
Partner profiles define the conditions for electronic data exchange via the IDoc interface. If a
partner profile does not exist, you cannot communicate with a partner via the IDoc interface.
You can display these partner profiles in transaction WE20.
The check tables and the texts for roles, profiles, and license data in the individual child
systems are saved temporarily in the central system. This means they can be displayed
quickly. If they have been changed, you have to run the text comparison. If you run the text
comparison in the central system, you can select the child systems from which the data is to
be read. If you run the text comparison in a child system, the current data is sent to the CUA
central system.
© Copyright. All rights reserved.
159
Unit 4: Configuring Central User Administration (CUA)
Note:
In new releases, the manual text comparison is not needed any more. For details,
see SAP Note 1642106 – CUA|PFCG: Automatic text comparison of roles for
central system.
If you have restricted the use of RFC callbacks in the central CUA system by
setting the profile parameter rfc/callback_security_method = 3 or if you plan to
do this, the text comparison function in CUA will no longer work if the callback
allow list entries are not maintained correctly in the CUA RFC destinations. For
more details, see SAP Note 2585923 – CUA: Text comparison (callback
whitelist).
In case that you want to assign a global user ID to users in order to be able to
allow for cross-system processes (such as the SAP Task Center), see SAP Note
3003462 –Interface enhancement for global user ID.
Caution:
Even if users can no longer be created in the child systems from now on, the CUA
is only “fully operational” once the following additional steps have been carried
out.
Setting the Parameters for Field Distribution
For each field of transaction SU01, you can use transaction SCUM to determine the system in
which the administration of the field content can be performed.
Field Distribution Parameters
Global
You can only maintain data in the central system. The data is then automatically
distributed to the child systems. The corresponding fields cannot be changed there; they
can only be displayed.
Local
You can only maintain data in the child system. Changes are not distributed to other
systems.
Proposal
You have maintained a default value in the central system that is automatically
distributed to the child systems when you create a user. After distribution, the data is
only maintained locally, and is no longer distributed, if you change it in the central or child
system.
Redistribution (Redist)
You can maintain the data both centrally and locally. Every time that the data is changed,
the change is distributed back to the central system, and is then forwarded from there to
the other child systems.
Everywhere (Evrywhr)
This option is available only on the Lock tab and for initial passwords (Logon Data tab).
You can maintain initial passwords and lock data both centrally and locally. However, only
the changes made to the data in the central system are distributed to the other systems.
Local changes in child systems are not distributed.
160
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
HR/BP (read only)
With SAP S/4HANA, on-premise edition, extensive changes were made regarding user
and business partner integration. See SAP Notes 2646823 –How to maintain employees
data in an S/4HANA OnPremise and 3094750 – Business User Management - FAQ as
entry point. For background information, see SAP Notes 2570961 – Simplification item
S4TWL - Business User Management, 2571544 – EEWA: New functions for the user and
2813203 – FAQ - View TBZ_V_EEWA_SRC for Employee-User-BP Synchronization.
Transaction SM30 (maintenance view TBZ_V_EEWA_SRC) shows whether the
maintainability of this address field is in the User Management, in Human Resources (HR)
or in the Business Partner (BP). See also SAP Note 2548303 – S/4HANA: Configuration
of maintenance for workplace address.
Note:
For SAP_BASIS 7.52 and 7.53, also see SAP Note 2694029 – SCUM:
Changes of descriptions.
Caution:
If you subsequently change the distribution from Local or Proposal to Global or
Redistribution, inconsistent data can be created. The only exception is that you
can reset the indicators on the Lock tab at any time without danger.
Ensure that you take into account SAP Note 611972: SCUM: Change to field
distribution parameters.
Hint:
The settings of the distribution parameters are automatically forwarded to the
child systems.
Recommendations for how you should configure the parameter distribution for a number of
fields are presented in the following table. The recommendation for a “Global” setting applies
to all fields that are not listed (with the exception of locks).
Table 4: Some Recommendations for Transaction SCUM
Field
Setting
Print Parameters (under Defaults)
Proposal
Parameters
Proposal
User Group (under Logon Data)
Proposal
Fields for data that the users maintain themselves
Redistribution or Local
© Copyright. All rights reserved.
161
Unit 4: Configuring Central User Administration (CUA)
Caution:
For information about lock management for your users (for example due to too
many failed logon attempts), see the online documentation and SAP Note
313945 – CUA: Incorrect logon locks cannot be globally reset.
Configuration of IDoc Processing
Changes to company addresses and users that affect a child system are transferred to the
child system(s) as an IDoc using the RFC destination described above.
To optimize the ALE distribution of the CUA, you can execute (separately) the outbound
processing and inbound processing of the IDoc in the background. You can find more
information about this in the online documentation for SAP S/4HANA 2021 (area Product
Assistance), path Enterprise Technology → ABAP Platform → Administrating the ABAP
Platform → Administration Concepts and Tools → Solution Lifecycle Management →
Identity and Access Management → User and Role Administration of ABAP Platform →
Configuration of User and Authorization Administration → Central User
Administration → Activated Background Processing.
We will now take a closer look at IDoc inbound processing in the child system: In standard
systems, activation of the CUA (using transaction SCUA) generates partner profiles in the
child system that allow immediate (“synchronous”) processing (online).
In standard systems, the receipt of the IDoc is separated from IDoc processing (see SAP Note
555229 – IDocs hang in status 64 for tRFC with immediate processing). The dialog work
process reserved for the RFC communication does not process the transferred IDocs itself. If
an IDoc cannot be processed immediately because no dialog work processes are available,
the system schedules a background job (with the step RBDAPP01) for this IDoc with an
immediate start. The user who is used for the RFC communication requires additional
authorizations for this scenario (see SAP Note 2000585 – CUA: Assigning minimal
authorizations for communications users (version 2)).
Note:
This behavior is controlled by the entries in the table TEDEF. In standard systems,
this table (for the current clients) contains an entry with the values EVENTT =
TRFC-IDOC and ROUTID = BATCHJOB.
If you change the table entry to EVENTT = TRFC-IDOC and ROUTID =SYNCHRON, the system
updates all IDocs from the dialog work process that are currently used for RFC
communication. Across all applications, the table TEDEF controls the processing of all IDocs
that are sent to the current clients.
You can use the report RSESYNMESTYP to convert IDoc processing to synchronous
processing, depending on the sent message type / IDoc type / extension. The message types
CCLONE and USERCLONE are relevant for the CUA.
Note:
The report RSESYNMESTYP sets the ACTFLAG field in the table EDIMSG for the
selected objects to S.
162
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
SAP Note 1872637 – Delays posting inbound IDocs (status 64) which have been configured to
trigger immediately provides further inside in the synchronous processing of IDocs and its
limitations.
Change Documents
You can display change documents in a CUA landscape – for this, use one of the following
options:
●
In transaction SCUA, use the menu to navigate to Goto → Change Documents for CUA
Landscape
●
In transaction SUIM, navigate to Change Documents → For CUA Settings
●
Start transaction SCUH
●
Execute program RSUSRCUA
Change documents for the CUA landscape are standard change documents (see transaction
SCDO) for the object USER_CUA. These are written when you make changes in CUA
landscapes with transactions SCUA, SCUG, and SCUM, or with the report RSDELCUA.
The following changes are recorded by these transactions/reports:
●
Changes to the CUA model view (creation & deletion)
●
Changes to the CUA central system (creation & deletion)
●
Changes to the connected child systems (addition & deletion)
●
●
●
●
●
Changes to the status of the transfer of users from the CUA child systems (setting,
changing & deletion)
Changes to the distribution parameters for the individual user attributes in the CUA (initial
setting, changing & deletion)
Changes to the monitoring of the CUA landscape in transaction SCUA (activation &
deactivation) as described in SAP Note 1645544 – Monitoring of Central User
Administration.
Direct changes to the CUA model view in a CUA child system using the function Temporary
Deactivation in transaction SCUA (deactivation & reactivation) as described in SAP Note
962457 – Activating temporary CUA deactivation in transaction SCUA.
Direct deletions of the CUA model view in a CUA child system using the report RSDELCUA
In the CUA child systems themselves, no changes to the CUA child systems in the landscape
(third point in the list above) are recorded.
Note:
For more details, see SAP Note 1902038 – CUA: Change documents for the CUA
landscape and the Program Documentation of report RSUSRCUA (available via the
menu: Goto → Documentation).
© Copyright. All rights reserved.
163
Unit 4: Configuring Central User Administration (CUA)
Initial Data Synchronization
Synchronizing the Company Addresses
As company address data has already been maintained in all systems of the future CUA, you
must first ensure that at least the central system contains all valid company addresses. Then
distribute this complete company address set to all child systems, so that a consistent status
exists for the company addresses in the entire CUA.
You can use transaction SUCOMP to administrate company address data. You can use
transaction SCUG in the central system to perform the synchronization activities between the
central system and the child systems by selecting your child system on the initial screen of
transaction SCUG and then choosing (Synchronize) Company Addresses (in the Central
System). For more information about this, see the online documentation.
Note:
Alternatively, you can compare company addresses using transaction SCUC. You
cannot transfer user data in this transaction, however.
Synchronizing User Groups
To be able to transfer users from a child system to the central system, or to distribute them
from the central system to a child system, the user group to which the user is assigned must
exist in all systems in which the user exists.
Hint:
For information about structuring this work as simply as possible, see SAP Note
395841– CUA: Assign target system-specific parameters and user groups. This
note refers to the CUA_PARAMETER_CHECK and the
CUA_USERGROUPS_CHECK switches in the PRGN_CUST customizing table.
Transferring Users to Central Administration
After you have synchronized the company addresses, you can transfer the users from the
newly connected child systems to central administration. You can do so using transaction
SCUG in the central system. To do this, on the initial screen of transaction SCUG, select your
child system and choose (Copy) Users (to the Central System).
Different cases are handled differently for the user transfer.
New users
These users are not yet contained in Central User Administration. By choosing Transfer
users, you can transfer the selected users to the central system. All user parameters
(address, logon data, and so on) and profile / role data are transferred. The user is
maintained centrally in the future.
Hint:
For more information on the distribution of user parameters, see SAP Note
1954558 – CUA | User Parameters.
164
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
Identical users
In this case, there are users with identical user IDs (the user ID or ID is the string that you
enter in the User field on the SAP Logon screen) and matching first and last names. You
can transfer the role data and profile data of this user to the central system. The user is
then distributed as it exists in the central system. Local data is overwritten. In this case, it
is assumed that, for example, the ID “MOOREJ” that exists in multiple logical systems,
with the last name “Moore” and the first name “Jane”, always belongs to one and the
same person. In large companies, this assumption is not always correct.
Note:
For this reason, SAP recommends that you use unique character strings,
such as the personnel number as the user ID.
Different users
These user IDs exist both in the central and in the child system, but the user has a
different first or last name. If, in an individual case, these IDs actually refer to the same
user, you can transfer the roles and profile data for the user to the central system. The
user is then distributed as it exists in the central system. If the IDs do not refer to the
same user, use the CUA to create a new user ID in the child system for one of the users
and then delete the old user ID in the child system.
Alternatively, you can assign a new ID to the user in the child system (if different
employees have an identical ID in different clients). For this purpose, you can start
transaction SU01 in the child system and choose User → Rename from the menu. If the
user transfer is restarted, the user is listed as a New User rather than as a Different User.
Already central user
These users already exist in Central User Administration and are only administered
centrally.
Local Users
These users exist for various applications only in child systems, and the applications
manage them only in the child systems (such as the technical user TMSADM). You
cannot copy these users to the central system. This display is for your information only.
Hint:
In case of users with a master record in multiple child systems, SAP
recommends to start the transfer for the child system with the best data quality.
Note that for example the address data of New users are transferred to the
central system (and is not overwritten by diverging data for the same user ID in
other child systems).
A function is available for copying users, which you can access using three new
buttons in transaction SCUG if the Already central user tab is selected. With
these buttons, you can transfer role assignments, profile assignments, and the
license classification of users from child systems, particularly in cases in which
(despite CUA being in use) the corresponding administration was carried out
until now in the child systems (in line with the settings in transaction SCUM).
For license data, see SAP Note 704412 – CUA support for license data maintenance.
After this step, the Central User Administration is completely set up for use.
© Copyright. All rights reserved.
165
Unit 4: Configuring Central User Administration (CUA)
Hint:
Until the user transfer has been completed, the child systems affected still
contain (“unexpected”) processing options for users that have not (yet) been
transferred, such as the delete function for users in transaction SU01.
Note:
SAP Note 2535491 – CUA: Performance issue when distributing users in SCUL
provides more information in case that the IDocs hang in “Distribution
unconfirmed” status when distributing users from the CUA central system to the
child systems.
Checking the Distribution Status
You use the log display (transaction SCUL) primarily to check the status of IDoc distribution
when changing company addresses or users. If you change a company address in the central
system of a Central User Administration (CUA), this is replicated and a CCLONE IDoc is sent
to each child system of the CUA. If you change a user in the CUA central system, the user data
is also distributed to the child systems assigned to this user. Up to three USERCLONExx IDocs
are sent for each user: user attributes (USER), profile assignment (PROFILE), and role
assignment (ACTGRP). You can then see in the results list of the log display whether the user
or company address was replicated successfully to the child systems.
Hint:
If it was not possible to completely process IDocs with user changes in the child
system (Unconfirmed status in transaction SCUL), this can be because there are
not enough dialog work processes available (in the child system or in the
contacted instance). In this case, you can start postprocessing of the IDocs in
the child system using transaction BD87, or opt for inbound processing of the
IDocs in background processing. The latter is described in more detail in SAP
Notes 399271 – CUA: Tips for optimizing ALE distribution performance and
2535491 – CUA: Performance issue when distributing users in SCUL.
Related Information
For more information concerning the setup of the central user administration, see the online
documentation for SAP S/4HANA (area Product Assistance) path (depending on the release)
●
●
●
166
Enterprise Technology → ABAP Platform → Administrating the ABAP Platform →
Administration Concepts and Tools → Solution Lifecycle Management → Identity and
Access Management → User and Role Administration of ABAP Platform → Configuration
of User and Authorization Administration → Central User Administration → Setting Up
Central User Administration
Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security and
User Administration → User Administration and Identity Management in ABAP
Systems → (Link to) Central User Administration or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security
Concepts and Tools → Identity Management → User and Role Administration of
© Copyright. All rights reserved.
Lesson: Setting Up a CUA
Application Server ABAP → Configuration of User and Role Administration → Central User
Administration → Setting Up Central User Administration.
In addition, the following SAP Notes may be helpful:
●
●
SAP Note 952349: SCUA: Functional improvements
SAP Note 2000585: CUA: Assigning minimal authorizations for communications users
(version 2)
●
SAP Note 555229: IDocs hang in status 64 for tRFC with immediate processing
●
SAP Note 763982: IDoc: tRFC inbound, syn. processing depends on message type
●
SAP Note 1954558 – CUA | User Parameters
●
SAP Note 2441124 – How to find your User Assistance for User and Role Administration of
Application Server ABAP
●
SAP Note 2669444 – PFCG: Generated authorizations for service type IDoc
●
SAP Note 2548312 – Adjustment of default values for IDoc inbound processing
●
SAP Note 2558350 – S/4HANA: Integration of EEWA changes into identity API
●
SAP Note 2646823 –How to maintain employees data in an S/4HANA OnPremise
●
SAP Note 3003462 –Interface enhancement for global user ID.
LESSON SUMMARY
You should now be able to:
●
Set up the required technical users and RFC destinations for CUA
●
Activate and configure the CUA
●
Initialize the data synchronization for company address data and user data
© Copyright. All rights reserved.
167
Unit 4: Configuring Central User Administration (CUA)
168
© Copyright. All rights reserved.
Unit 4
Lesson 3
Performing User Administration with CUA
LESSON OVERVIEW
In this lesson, you learn about using Central User Administration (CUA) based on simple
examples. You will also learn tips and tricks to ensure reliable and secure operation, as well as
the steps required to remove Central User Administration.
Business Example
You have set up a Central User Administration (CUA) in your company, Now you want to
administer the user data for the connected SAP systems. You also want to know about the
options for troubleshooting, and to learn the steps required to remove a CUA.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Use the CUA for user administration
●
List the steps to remove a CUA
CUA Operation
With an activated CUA, you continue to use transaction SU01 for user administration.
However, there are a number of differences in its operation. The following list should provide
you with an overview of the differences in user maintenance when CUA is implemented.
Changes in the Central System
Changes in Transaction SU01 in the Central System
●
New Systems tab
●
Changes to the Roles tab
●
Changes to the Profiles tab
●
Change to the Lock Users and New Password/Change Password functions.
New Systems tab:
This tab specifies the logical systems in which it is possible for a particular user to log on.
However, you only rarely enter values directly on this tab. Note the explanations
regarding the Roles and Profiles tabs described below. If a system assignment is removed
from a user on the Systems tab, the user is deleted from the relevant child system.
Roles tab:
On this tab, you can assign roles to a user in the systems of the CUA. The central system
has to know all role names of all connected systems. As part of the CUA activation, an
initial text comparison was performed automatically. Therefore, the F4 help for roles is
available immediately.
© Copyright. All rights reserved.
169
Unit 4: Configuring Central User Administration (CUA)
After one of the following operations in a child system, a further text comparison may be
necessary:
●
Creation of a role
●
Deletion of a role
●
Change of the Description of a role
Note:
You can configure your CUA in a way that changes to roles in the CUA child
systems are automatically transferred to the central system: see SAP Note
1642106 – CUA|PFCG: Automatic text comparison of roles for central system
for details.
Profiles tab:
On this tab, you can assign profiles to a user in the systems of the CUA. The central
system has to know all manual profiles (not: generated profiles) of all connected child
systems. As part of the CUA activation, an initial text comparison was performed
automatically. Therefore, the F4 help for manual profiles is available immediately.
After one of the following operations in a child system, a further text comparison may be
necessary:
●
Creation of a manual profile
●
Deletion of a manual profile
●
Change of the Description of a manual profile
Change to the New Password/Change Password and Lock User functions
The New Password/Change Password function on the initial screen of transaction SU01
now contains an option for specifying the child system for which the user is to receive a
new password. When locking a user, you can decide – depending on the field distribution
parameters in transaction SCUM – whether this user is to be locked locally or globally on
all CUA systems.
For more details, see SAP Note 313945 – CUA: Incorrect logon locks cannot be globally
reset.
Changes in the Child System(s)
The following changes occur for transaction SU01 in the child system(s).
Changes in Transaction SU01 in the Child System
●
All tabs: restricted changeability
●
It is no longer possible to create new users
●
It is no longer possible to delete existing users (after a complete user transfer)
●
User in the Last Changed On field
All tabs:
170
© Copyright. All rights reserved.
Lesson: Performing User Administration with CUA
On all tabs of transaction SU01 in the child system, you are now able to administer only
the fields that you have selected for local administration during the configuration of the
parameters (transaction SCUM). Local administration is allowed if you have chosen an
administration setting other than Global.
In the child system, it is no longer possible to create new users or delete existing users
(as soon as the users have been completely transferred to CUA).
“Changed By” field:
In the child system, the name of the user that is stored with the RFC destination from the
central system to the child system, such as CUA_S4D_000, is specified in this field in the
child system for all users that have already been centrally changed.
As already outlined above, you can configure your CUA in a way that changes to roles in the
CUA child systems are automatically transferred to the central system: see SAP Note
1642106 – CUA|PFCG: Automatic text comparison of roles for central system for details. In
case of problems with this automatic text comparison, you can start the text comparison
manually. For this, you have different options:
●
●
●
You can start the comparison from the child system by choosing, in transaction PFCG, path
Environment → Text Comparison for CUA Central System, or by executing program
SUSR_ZBV_GET_RECEIVER_PROFILES in transaction SA38. You do not need to make any
entries for this report; the data from the child system is sent to the central system anyway.
To force the text comparison, you can also run program
SUSR_ZBV_GET_RECEIVER_PROFILES in transaction SA38 in the central system. In this
case, however, you should explicitly specify the child systems with which you want to
perform a text comparison.
You can automate the comparison by scheduling the report to be regularly executed in the
background on the central system. In this case, create and select a variant that contains all
of your child systems.
Fields whose field distribution parameters are set to Redistribution send their content back to
the central system, from which this field value is then forwarded to all child systems. Existing
entries are updated in this way.
Change Documents for the CUA Landscape
As of release 7.31 for software component SAP_BASIS, a new change object, USER_CUA, has
been implemented, which you can use to write change documents for changes to the CUA
landscape. In addition, the new transaction SCUH is available to evaluate the change
documents. For more details, see SAP note 1902038 – CUA: Change documents for the CUA
landscape and the documentation of the underlying report RSUSRCUA.
Special Authorization Objects for CUA
For Central User Administration, the following authorization objects exist that allow you to
define user administrator authorizations for specific systems. This means that all user
administrators of a CUA system group can exist in the central CUA, but each user can assign
authorizations only for one part of the connected systems.
Table 5: Special Authorization Objects for CUA
Authorization Object
Meaning
S_USER_SYS
System assignment in CUA
© Copyright. All rights reserved.
171
Unit 4: Configuring Central User Administration (CUA)
Authorization Object
Meaning
S_USER_SAS
Role and profile assignment to systems in CUA
S_USER_SYS is the authorization object for system assignment in Central User
Administration (CUA). You can distribute users from a central system to different child
systems of a system group. The object S_USER_SYS checks which child systems the user
administrator can assign to the users.
The system checks the authorization object S_USER_SAS in transactions SU01, SU10, PFCG,
and PFUD when roles, profiles, and systems are assigned to users. It represents the further
development of the authorization objects S_USER_GRP, S_USER_AGR, S_USER_PRO, and
S_USER_SYS, which were previously checked during assignment.
Hint:
You can deactivate the authorization object S_USER_SAS using the customizing
switch CHECK_S_USER_SAS with value NO in table PRGN_CUST. For details, see
SAP Note 536101 – S_USER_SAS: Authorization check for system-specific
assgnmnt.
Troubleshooting for the CUA
If the distribution of user data is not functioning, follow the checklist below:
Troubleshooting for the CUA
●
Transaction SCUL in the central system
●
Transaction SM59 in the central system
●
Transaction BD64 in the central system
●
Transaction SCUA in the central system
●
Transaction SUIM in the central system
●
Transaction BD87 in the child system(s)
●
SAP Note 2437862 – CUA (Central User Administration) troubleshooting guide - Guided
Answers
1. View the distribution log in transaction SU01 using the menu path
Environment → Distribution log. Alternatively, call transaction SCUL. If errors are displayed
here, you can choose to distribute the user master record again as a first step. Trace
whether the problem persists or whether the data is sent successfully this time.
2. If the display of the distribution log informs you of tRFC with Errors, you should check the
RFC destinations used in transaction SM59.
3. In transaction SCUM, from the menu choose Environment → Distribution model (launching
transaction BD64) to check the consistency of the ALE model you are using. To do this,
select the model for your CUA and check whether the required BAPIs USER.Clone and
UserCompany.Clone are assigned to your model.
172
© Copyright. All rights reserved.
Lesson: Performing User Administration with CUA
4. Check whether your CUA distribution model is displayed in transaction SCUA.
5. You can use transaction SUIM to determine cross-system information (area User
Information System → User → Cross-System Information (Central User Administration)).
Here, for example, you can display the list of all users in child systems (together with the
IDoc number that was used to update users in the child system). You can also display the
roles assigned to users or the users assigned to certain roles for specific systems.
6. If it was not possible to completely process IDocs with user data changes in the child
system (Unconfirmed status in transaction SCUL), this can be because there are not
enough dialog work processes available (in the child system or in the contacted instance).
In this case, you can start postprocessing of the IDocs in the child system using
transaction BD87, or opt for inbound processing of the IDocs in a background job. The
second variant is described in more detail in SAP Note 399271: CUA: Tips for optimizing
ALE distribution performance. In addition, SAP Note 2535491 – CUA: Performance issue
when distributing users in SCUL might help.
You should also take a look at SAP Notes 555229: IDocs hang in status 64 for tRFC with
immediate processing and 1833088: CUA: Updating incorrect IDocs.
Hint:
Every sent IDoc requires at least one work process in the receiving system. If
a large number of IDocs is sent at the same time, you should set inbound
processing to “Processing in the background” in the partner profiles with
transaction WE20 and process these IDocs in the background with program
RBDAPP01 (alternatively, IDocs can also be processed with program
RBDSER04).
7. SAP Note 2437862 – CUA (Central User Administration) troubleshooting guide - Guided
Answers (among others) refers to SAP Note 2108938 – CUA: Analysis of existing CUA
landscape and contains a link to the CUA Troubleshooting Guide WIKI.
Performance Considerations
For more information about optimizing the performance of the data distribution of your CUA
landscape, see the online documentation for SAP S/4HANA 2021 (area Product Assistance),
path Enterprise Technology → ABAP Platform → Administrating the ABAP Platform →
Administration Concepts and Tools → Solution Lifecycle Management → Identity and Access
Management → User and Role Administration of ABAP Platform → Configuration of User and
Authorization Administration → Central User Administration → Setting Up Central User
Administration → Activated Background Processing. For this you should have at least basic
experience using ALE.
© Copyright. All rights reserved.
173
Unit 4: Configuring Central User Administration (CUA)
Hint:
You can use transaction SCUL to distribute individual user master records to the
child systems again.
If you want to redistribute a large number of users simultaneously, transaction
SCUL is a good option, as described in SAP Note 632486: Improvements to
transaction SCUL.
Alternatively, you can use programRSCCUSND to do this, as described in SAP
Note 503247 – CUA: Synchronizing user master data.
Related Information
For more information on Central User Administration, see the online documentation for SAP
S/4HANA (area Product Assistance) path (depending on the release)
●
●
●
Enterprise Technology → ABAP Platform → Administrating the ABAP Platform →
Administration Concepts and Tools → Solution Lifecycle Management → Identity and
Access Management → User and Role Administration of ABAP Platform → Configuration
of User and Authorization Administration → Central User Administration or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security and
User Administration → User Administration and Identity Management in ABAP
Systems → (Link to) Central User Administration or
Enterprise Technology → ABAP Platform → Securing the ABAP Platform → Security
Concepts and Tools → Identity Management → User and Role Administration of
Application Server ABAP and from there either Configuration of User and Role
Administration → Central User Administration or Administration of Users and
Roles → Operating Central User Administration.
CUA Removal
It is important to differentiate between two (three) possible scenarios for removing the CUA.
Two (Three) Scenarios for Removing the CUA
1. A child system is to be removed from the CUA (permanently or temporarily).
2. The CUA is to be completely removed.
These scenarios are presented here.
Permanently remove a child system from the CUA
1. Choose Delete in transaction SCUA or call program RSDELCUA directly in transaction
SA38.
2. In the Delete area, choose the option Child Systems, and then select the child system to be
removed using the F4 help.
3. Select Test Mode and choose Execute.
4. On the following screen, the system lists the data to be deleted and the tables affected. By
double-clicking a table name, you jump to the display of the table content (as it is
displayed using transaction code SE16).
174
© Copyright. All rights reserved.
Lesson: Performing User Administration with CUA
5. If you are sure that you want to delete the displayed data, choose Back (F3) and deselect
the Test Mode option. Choose Execute.
6. In transaction WE20 in the central system, under Partner Profiles for Partner Type LS,
delete the message types CCLONE and USERCLONE for the child system. Repeat this step
on the child system with the same message types (but now concerning the master
system).
7. Start transaction BD64 in the central system and switch to change mode. Delete the
methods of the child system and save your entries.
8. To distribute the distribution model of your CUA, from the menu choose Edit → Model
View → Distribute and select the child system that you have just deleted in the dialog
window.
9. Use transaction SCUA to check whether the child system has been deleted from the CUA.
10. If there are no additional child systems of the CUA in the SAP system that contains the
child system to be deleted from the CUA, change the technical user (such as CUA_S4D) in
transaction SU01 by removing the CUA roles on the Roles tab. If there are no longer any
roles or profiles assigned to the user, you can delete it.
Caution:
As the RFC destinations that you created may also be used for ALE connections
other than the CUA, you should not delete the RFC destinations, but rather
remove the roles with CUA authorizations from the technical user used.
Temporarily remove a child system from the CUA
You can delete the child system from the CUA group in the child system using program
RSDELCUA. If you want to include the system in the CUA again at a later point, use
transaction SCUA in the central system to add it to the system group and run transaction
SCUG again in the central system for this child system. This transfers all local changes to the
central CUA (in accordance with the field distribution parameters in transaction SCUM).
Note:
If you want to remove the child system from the CUA only temporarily, also see
SAP Note 962457 – Activating temporary CUA deactivation in transaction SCUA.
After you maintain the Customizing described in this SAP Note, transaction SCUA
gets a new icon that you can use to temporarily deactivate or reactivate CUA.
Delete the Entire CUA
1. In transaction SCUA on the central system, select your model view and choose Delete. This
starts report RSDELCUA. Select the options Complete CUA and Test Mode. For the
selections in area How are users without system assignments for the CUA central system
handled, see below.
2. If you are satisfied with the list of data to be deleted, run the report again, but this time
without the Test Mode option.
© Copyright. All rights reserved.
175
Unit 4: Configuring Central User Administration (CUA)
3. In the central system, delete the data about the central system and the child system(s) in
transaction WE20; that is, delete the message types CCLONE and USERCLONE under
Partner Profile for the Partner Type LS (if necessary). If only the standard message type
SYNCH then remains, you can delete the partner profiles completely.
4. In transaction BD64, delete the distribution model of the CUA – if it still exists.
5. Repeat steps 3 and 4 in the child systems.
6. Remove the CUA roles (such as Z_SAP_BC_USR_CUA_731_CNTRL and
Z_SAP_BC_USR_CUA_731_CLNT) from all technical users (such as CUA_S4D or
CUA_S4D_000).
Caution:
Delete the RFC destinations of the CUA only if you are certain that these
destinations are not used in other ALE scenarios.
Caution:
The users that you have copied from the child systems to central administration
and which only exist on the child system are locked in the former central system
after you have removed the CUA (this includes also the system users that are
needed for the RFC destinations). These users have no authorizations or roles
(unless they were assigned roles and profiles in the central system) and can be
deleted manually.
To prevent this locking of (some of these) users, you may assign them (on the
Systems tab) the logical system of the CUA central system (without assigning
any roles or authorization profiles).
The Delete option in transaction SCUA offers five options in the box How are users
without system assignments for the CUA central system handled?, for example
the options
●
●
Delete Users: The result of this option is the closest to returning the client to
its status before its role as the CUA central system.
Do Not Make Any Changes (if CUA Will Soon Be Restarted): This option is
preset under the assumption that what is usually required is only a temporary
deactivation of the CUA, for example, to perform maintenance tasks and to
ensure that no changes are made to the users during this time. It can
therefore be used for a case where you plan to reactivate the CUA soon after
the deletion.
Appendix: CUA and System Copies
The figure below illustrates the procedure for copying a production system to a quality
assurance system if both systems are included in a Central User Administration.
176
© Copyright. All rights reserved.
Lesson: Performing User Administration with CUA
Figure 111: CUA and System Copy
First, you export the database of the source system (in this case, the production system).
However, before you can import it to the target system (in this case, the quality assurance
(QA) system), you have to carry out the following steps in the QA system:
●
●
Since the user data in the production and QA systems usually differs, you should first
export the client user data from the target system. The copy profile SAP_USER already
exists for this purpose, which contains user master records (including assignments to
roles/profiles) as well as authorizations and profiles.
You also have to permanently remove the CUA system from the CUA of the target systems
(in this figure, the CUA of the QA systems).
Once the database has been imported, you can re-import the previously saved user data to
the system via client import and re-include the target system in Central User Administration
as a child system.
If a CUA child client is to be copied via client copy to a client already included in a CUA, you
should first remove the target client from the CUA, carry out the client copy, and then reinclude the client in the CUA.
Note:
For additional information, see SAP Note 399917 – CUA: Moving of a CUA via
Client or System Copy.
LESSON SUMMARY
You should now be able to:
●
Use the CUA for user administration
●
List the steps to remove a CUA
© Copyright. All rights reserved.
177
Unit 4: Configuring Central User Administration (CUA)
178
© Copyright. All rights reserved.
Unit 4
Learning Assessment
1. What can you define with the help of Central User Administration (CUA)?
Choose the correct answers.
X
A Which user master records exist in which clients
X
B Roles and profiles that are assigned to these master records
X
C Initial passwords
2. Which transaction is used to activate the Central User Administration?
Choose the correct answer.
X
A SCUG
X
B SCUH
X
C SCUA
X
D SCUL
3. Which changes occur to transaction SU01 in the child system when you operate a Central
User Administration?
Choose the correct answers.
X
A Restricted changeability on all tabs.
X
B It is no longer possible to create new users.
X
C New Systems tab
© Copyright. All rights reserved.
179
Unit 4
Learning Assessment - Answers
1. What can you define with the help of Central User Administration (CUA)?
Choose the correct answers.
X
A Which user master records exist in which clients
X
B Roles and profiles that are assigned to these master records
X
C Initial passwords
Correct. All of the options listed above can be defined with the help of CUA.
2. Which transaction is used to activate the Central User Administration?
Choose the correct answer.
X
A SCUG
X
B SCUH
X
C SCUA
X
D SCUL
Correct. You activate the Central User Administration with the help of transaction SCUA on
the central system.
3. Which changes occur to transaction SU01 in the child system when you operate a Central
User Administration?
Choose the correct answers.
X
A Restricted changeability on all tabs.
X
B It is no longer possible to create new users.
X
C New Systems tab
Correct. On the child system, you experience restricted changeability on all tabs and it is
no longer possible to create new users in transaction SU01 in the child system. The new
Systems tab in transaction SU01 is available on the central system only.
180
© Copyright. All rights reserved.
UNIT 5
Configuring Extended
Computer Aided Test Tool
(eCATT)
Lesson 1
Describing the Basics of Extended Computer Aided Test Tool (eCATT)
183
Lesson 2
Configuring the System Landscape for eCATT
189
Lesson 3
Executing eCATT Test Scripts
199
UNIT OBJECTIVES
●
Describe eCATT in the SAP environment
●
Describe use cases for eCATT
●
Explain how to set up automated test series
●
List security aspects related to eCATT
●
Create a System Data Container
●
Configure system and client settings related to eCATT
●
Create and execute a simple test configuration using eCATT
© Copyright. All rights reserved.
181
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
182
© Copyright. All rights reserved.
Unit 5
Lesson 1
Describing the Basics of Extended Computer
Aided Test Tool (eCATT)
LESSON OVERVIEW
The lesson introduces the Extended Computer Aided Test Tool (eCATT). We will discuss use
cases of this tool and explain important terms in the eCATT environment.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Describe eCATT in the SAP environment
●
Describe use cases for eCATT
●
Explain how to set up automated test series
Introduction to eCATT
In many cases, it is necessary to test individual processes within an SAP system landscape.
For example, when you integrate a new component into an existing system landscape, you
should test the component to ensure that both it works properly and it interacts correctly with
the other components in the landscape.
The following list shows some selected scenarios that require tests:
What Should Be Tested?
●
New SAP installations and upgrades
●
Addition and integration of new components in an existing landscape
●
Customer developments
●
Core functions after importing Support Package Stacks
●
Function testing in each case; possibly also acceptance and integration testing
You can perform the tests manually using a written test plan, such as an acceptance test.
Acceptance tests are subjective tests that check the usability of the business processes. Test
descriptions are created and must be performed by the tester during the test. Note that
manual tests require significant resources.
Note:
In contrast to an acceptance test and a function test (which is to verify a small slice
of software against a specification), an integration test combines individual
software modules and tests them as a group.
© Copyright. All rights reserved.
183
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
An alternative to the manual test scenario is to perform automated tests. In this case, the
application processes (such as transactions) to be tested can be recorded and then run
automatically. During the run, variables defined in the Test Script can be replaced with actual
(application) data. Examples include functional tests that check whether individual
transactions are error-free. Automated tests have an advantage over manual tests because
they can be repeated easily (for example, in case that errors occur). They also produce more
reliable data because input errors can be ruled out (if these do not need to be tested
specifically). In addition, a possible loss of motivation on the part of the testers due to the
repetitive nature of the actions does not occur.
To summarize, advantages of automated tests are as follows:
Advantages of Automated Tests
●
Fewer test resources are required
●
The test process is accelerated
●
●
The test results are easier to reproduce because the test can easily be repeated a number
of times
A log of the results of the tests is automatically generated
There is, however, a relatively high initial cost for performing automated tests. Careful
planning is required to write high-value, reusable test cases. The tests themselves can be
performed relatively quickly.
eCATT Use Cases for SAP Business Suite and SAP S/4HANA Landscapes
With CATT (Computer Aided Test Tool), SAP has been shipping a test tool with the SAP
system since SAP BASIS 3.0. This tool was used to test conventional, screen-based
transactions within an SAP system.
Figure 112: Use Cases for eCATT
Using different components, such as
184
© Copyright. All rights reserved.
Lesson: Describing the Basics of Extended Computer Aided Test Tool (eCATT)
●
●
SAP ECC, SAP SCM or SAP BW, as well as third-party tools (in SAP Business Suite
landscapes) or
SAP S/4HANA Servers and SAP Fiori Front-End Servers (in SAP S/4HANA landscapes)
means that it is necessary not only to test the individual components, but also their
interaction in the context of cross-system business processes. CATT has reached its
boundary at this point because it could not be used to test transactions in the SAPGUI for
HTML or Java applications. Therefore, SAP has developed the eCATT (extended CATT) test
tool that was first delivered with AS ABAP 6.20. Properties of eCATT are as follows:
●
●
eCATT enables you to test all SAP transactions, regardless of whether they use the Control
Framework or not
eCATT provides a simplified concept for performing tests in different systems, starting
with a central test system
●
eCATT extends the possibilities provided by CATT
●
eCATT is fully integrated into the Test Workbench
You can use eCATT to test SAP transactions both on the SAP GUI for Windows and on the
SAP GUI for Java. You can also test applications that run outside these two GUIs. You can
access the contents of database tables for application and Customizing data directly, as
shown in the following figure:
Figure 113: Test Possibilities with eCATT
SAP tools offer greater flexibility than external test tools as all actions on the GUI can be
recorded. You can also access database tables directly (without using function modules).
Terminologies in the eCATT Environment
When defining an automated test using eCATT, you need to define Test Scripts, Test Data
Containers, System Data Containers, Start Profiles and Test Configurations in transaction
SECATT, as described in the following figure:
© Copyright. All rights reserved.
185
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Figure 114: Central Terms in the eCATT Environment
●
●
●
●
●
186
A Test Script consists of a sequence of commands that control the process flow of the test
(which transactions are executed in which sequence on which systems).
Test Data Containers consist of reusable data records that can be transferred to the Test
Script. Unlike CATT, where the test data belonged to a Test Script, with eCATT, the Test
Data Containers are stored separately from the script. It means that there is a greater
degree of reusability with regard to the Test Data Containers.
A System Data Container consists of a list of systems (with associated RFC destinations)
that are required during the execution of a Test Script.
As of Enhancement Package 1 for SAP NetWeaver 7.3, an eCATT Start Profile can be
stored with an eCATT Test Configuration. The Start Profile then acts as the default
configuration of the start options for this eCATT Test Configuration. This is particularly
useful when executing the eCATT Test Configuration from the Test Workbench.
The Test Configuration links a Test Script (“what is to be done?”) with the data from one or
more Test Data Containers (“which data is to be used?”), the system landscape defined in
a System Data Container (“where are the tests to be performed?”) and the Start Profile
(“which start options are to be used?”). In this way, a test case (that is, a checkable entity
of an SAP system that contains a procedure for testing an object) is uniquely defined. The
Test Configurations are executable test objects that are included in Test Packages and that
can be assigned to testers using the Test Workbench.
© Copyright. All rights reserved.
Lesson: Describing the Basics of Extended Computer Aided Test Tool (eCATT)
Figure 115: Initial Screen of Transaction SECATT
Note:
In addition, as of Enhancement Package 1 for SAP NetWeaver 7.3, the use of
Validation Objects allows you to separate the coding for the validation of a test
from the normal business test coding.
Design Automated Test Series
Before a test series can be executed, you need to answer a number of central questions, as
presented in the following figure:
Figure 116: Designing Automated Test Series
First, you need to clarify the project goal and the project scope when deciding which business
process to test. At this stage, you need to decide how accurate you want to test the system
and exactly what is the structure of the business process flow to be tested across system
boundaries.
© Copyright. All rights reserved.
187
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
You then define which system is selected as the central test system and which systems have
to be accessed during the test (systems under test). You can then use this information to
create the System Data Container.
Then, the Test Scripts can be created by test developers. Only systems that were defined in
the System Data Container can be called from the Test Scripts. eCATT contains various
commands depending on the application to be tested. This means that you should consider
which command is to be used before you perform the test.
You can collect the data required for the test in one or more Test Data Containers.
Once the System Data Container, Test Script, and Test Data Containers exist, you can create
the Test Configuration. This can then be executed by the individual testers, for example, using
the Test Workbench (SAP Easy Access menu: Tools → ABAP Workbench → Test → Test
Workbench).
There also exists a Wiki on eCATT on SAP Community Network at https://wiki.scn.sap.com/
wiki/display/ABAP/eCATT.
Each Test Configuration outputs its results in the form of a log. The log not only provides
notification about the successful completion of the test, but also records the details.
Additional Information on Extended Computer Aided Test Tool (eCATT)
For more information about extended CATT, see the online documentation for SAP S/4HANA
(Product Assistance), area Enterprise Technology → ABAP Platform → Administrating the
ABAP Platform → Administration Concepts and Tools → Solution Life Cycle Management →
Integration Tests for ABAP Applications → eCATT: extended Computer Aided Test Tool (BCTWB-TST-ECA)
There also exists a Wiki on eCATT on SAP Community Network (including an FAQ section) at
https://wiki.scn.sap.com/wiki/display/ATopics/eCATT:+The+Extended+Computer+Aided
+Test+Tool.
In addition, in class CA611 – Test Management with eCATT you can learn how to create
automated Test Scripts and how to include test cases in test projects that you can manage
with the Test Workbench.
LESSON SUMMARY
You should now be able to:
188
●
Describe eCATT in the SAP environment
●
Describe use cases for eCATT
●
Explain how to set up automated test series
© Copyright. All rights reserved.
Unit 5
Lesson 2
Configuring the System Landscape for eCATT
LESSON OVERVIEW
This lesson provides an overview of important system and client settings that are required to
run eCATT scripts in a complex system landscape. In addition to setting up RFC destinations
between the central test system and the systems under test in which eCATT commands will
be executed, a System Data Container is created. Finally, the authorizations required to run
eCATT scripts are discussed.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
List security aspects related to eCATT
●
Create a System Data Container
●
Configure system and client settings related to eCATT
RFC Destinations Between the Systems Involved
To run eCATT Test Scripts in a landscape consisting of multiple systems, you should first
configure RFC destinations from the central test system to the systems to be tested (SUT –
systems under test).
Create RFC destinations using the RFC Destinations transaction (SM59) or by choosing
Tools → Administration → Administration → Network → RFC Destinations in SAP Easy Access
menu.
Note:
The exact procedure for creating RFC destinations between SAP systems using
transaction SM59 is not within the scope of this lesson.
© Copyright. All rights reserved.
189
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Figure 117: RFC Destinations Between the Central System and the Systems Under Test
The figure above shows RFC destinations that are needed in case of a central test system and
multiple systems to be tested (systems under test – SUT). The central test system might be a
development system. The systems under test typically are test (quality assurance) systems.
Trust Relationships Between SAP Systems
SAP recommends that you set up trust relationships (trusted RFC destinations) in the context
of running eCATT scripts across system boundaries.
If the current system has been registered as a trusted system in the target system, the
Remote Function Call can be performed in the target system without the need to transfer a
password. The trusted system relationship applies only for one direction; it is not bidirectional. If the relationship is to be bi-directional, you will need to register each partner
system with the other as a trusted system.
Using trust relationships in the eCATT environment is useful for the following reasons:
●
●
To run transactions using the SAPGUI command (for example, for transactions that use
controls), you need a dialog user in the target system. In many cases, specifying a user of
type System (which is sufficient in CATT for the TCD command to run standard
transactions using the batch input interface) is not enough.
In case that a user is entered (with a password) in the RFC destination of transaction SM59,
any user of the calling system can (in principle) log on to the target system using this
destination and run transactions under the user specified in the RFC destination. This is
undesirable for security reasons.
Note:
For more information, see SAP Notes 128447 – Trusted/Trusting Systems and
2487455 – How to set a trusting relationship in transaction SMT1.
190
© Copyright. All rights reserved.
Lesson: Configuring the System Landscape for eCATT
System Data Container
A System Data Container stores the system landscape for a test scenario. It contains a list of
all systems that a Test Script can access. Every entry in this list describes a system and
consists of
●
●
●
a name for the target system (this should be as descriptive as possible in order to reflect
the function of the target system / system under test and to be independent of the name
of the RFC destination),
an (optional) description of the relevant component (such as “SAP ECC”, “SAP S/4HANA
system”) purely for documentation purposes and
an RFC destination (or HTTP destination) that points to the target system.
To create a System Data Container, use transaction SECATT and choose System Data. The
System Data Container should be maintained by a system administrator (together with the
project manager) for both a development landscape and a test landscape so that all members
of the project team can access the same System Data Container.
In a Test Script, a target system is identified using the name of the target system (and not
using the name of the RFC destination). The advantage of this procedure is that when you
change your system landscape, you only need to change the entries for the RFC destinations
(or HTTP destinations) in the System Data Container without having to adjust the Test Script.
Alternatively, you can create a new System Data Container (see figure below) and link it with
the Test Script using a Test Configuration. This – for example – allows to create and pre-test
Test Scripts in the development landscape before running them in the quality assurance
landscape.
Figure 118: The Meaning of System Data Containers
© Copyright. All rights reserved.
191
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Hint:
From principal point of view, System Data Containers can be transported using
the Change and Transport System, as can all other eCATT objects. But there is no
need to transport eCATT objects from the development system to the test or
production system (exchanging the System Data Container in a Test
Configuration is sufficient to make them run on a different landscape).
eCATT objects can be stored locally as XML files and then uploaded to other systems. To do
this, choose the following menu path (in the System Data Container editor): System Data
Container → Other Features → Download (for saving as a local XML file). And, on the initial
screen of transaction SECATT, choose the menu path ECATT Object → Other Features →
Upload (for loading from a local XML file to the SAP system). Variants in the Test Data
Container can be stored both in XML and TXT format. Complex structures, on the other hand,
like the entire Test Data Container with parameters and variants, must be stored as XML files.
Caution:
When System Data Containers are uploaded or downloaded to other systems,
the name of the RFC destination is retained in the RFC Destination field. However,
since the name might not exist in the new system (or might identify a different
RFC destination), some adjustments are required.
System Configuration and Client Settings for Using eCATT
To enable eCATT Test Scripts to be run successfully, the systems in the system landscape
must be configured appropriately. The following figure shows the necessary steps (depending
on the commands used) to configure the system. Note that this consists of more than a
definition of the RFC destinations and the System Data Container.
Figure 119: System Configuration for Using eCATT
Client Settings
The maintenance of client settings using transaction SCC4 has been extended for eCATT. The
extensions relate, in particular, to setting up remote connections. You can use trusted RFC
192
© Copyright. All rights reserved.
Lesson: Configuring the System Landscape for eCATT
destinations to transfer security settings from the start system to the remotely started
system under test. With the extended client settings, you allow or forbid the starting and also
can make it wholly or partially dependent on the type of RFC destination. The following
settings are available:
●
eCATT and CATT Not Allowed
●
eCATT and CATT Allowed
●
eCATT and CATT Only Allowed for ‘Trusted RFC’
●
eCATT Allowed; but FUN/ABAP and CATT not Allowed
●
eCATT Allowed; but FUN/ABAP and CATT only for ‘Trusted RFC’
The eCATT functions FUN (calling function modules) and ABAP (blocks of ABAP commands
within a test script) are of particular significance for security reasons. They can be
additionally secured using the extended client settings.
Hint:
For more information about the extended security concept for CATT and eCATT,
see SAP Note 496286 – Security concept extended for CATT and eCATT.
Settings for Using GUI Scripting
eCATT allows you to use the scripting function of SAP GUI with the SAPGUI command. This
means that you can use a recorder in transaction SECATT to record every action on the SAP
screen, regardless of whether the actions use controls or not.
If the function is to be used, you need to activate scripting first. You can do this as follows:
●
●
●
The system parameter sapgui/user_scripting must have the value TRUE (you can use
transaction RZ11 to change this parameter dynamically). The parameter is set to FALSE by
default.
SAP GUI for Windows must be installed on the front end of the user's computer (with the
SAP GUI Scripting component).
GUI scripting must be permitted on the user's front end computer. You can do this by
choosing Customize Local Layout (or SAP GUI settings and actions) in the system function
bar. Then, depending on your GUI version, choose Options ... → Scripting → Enable
Scripting or Options ... → Accessibility & Scripting → Scripting → Enable Scripting.
Hint:
When the system parameter sapgui/user_scripting is set to FALSE, the front
end settings do not take effect.
For more information about the system parameter sapgui/user_scripting (and related
parameters), see the SAP Notes 480149 – New profile parameter for user scripting at the front
end, 692245 – Additional server based security options for Scripting and 587202 –
Restrictions when using SAP GUI Scripting.
SAP Note 2715519 – Security Recommendations for Server-Side Configuration of SAPGUI
Scripting contains recommendations from SAP for the use of SAPGUI scripting features as
well as a link to the SAP GUI Scripting Security Guide.
© Copyright. All rights reserved.
193
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Settings for Using External Tools
eCATT supports the connection of certified external tools. You can also use these tools to test
applications that do not run under the SAP GUI (such as Business Server Pages or the SAP
GUI for HTML).
To use external tools, you may have to install the external tool on the user's local machine and
do the following:
●
●
Use the function module SET_EXTERNAL_TOOL to make the required entries in the
Customizing table ECCUST_ET.
Use program ECATT_GENERATE_ET_USER in transaction SE38 to create the system user
required for the communication with the external tool.
For more information, see SAP Note 519858 – Setting Up SAP Systems to Use eCATT and the
documentation provided in SAP Reference IMG (transaction SPRO), area SAP Customizing
Implementation Guide → ABAP Platform (SAP NetWeaver) → Application Server → Test
Workbench → Extended Computer Aided Test Tool (eCATT) → Driver-Specific Settings
→ External Test Tools.
eCATT and Web Dynpro
The following figure shows an overview of the required prerequisites and settings to record
and execute Web Dynpro applications using eCATT:
Figure 120: Configuring eCATT for Web Dynpro Applications
Many of the steps listed in the figure above can also be accessed from SAP Reference IMG
(transaction SPRO), area SAP Customizing Implementation Guide → ABAP Platform (SAP
NetWeaver) → Application Server → Test Workbench → Extended Computer Aided Test
Tool (eCATT) → Driver-Specific Settings → WEBDYNPRO.
The requirements and settings for the central (eCATT) system that must be based on AS
ABAP 7.00 SP Stack 20 or higher are as follows:
●
194
Create a system user ECATT_HTTP. This user does not need to have special authorizations.
© Copyright. All rights reserved.
Lesson: Configuring the System Landscape for eCATT
●
●
Enter this user in the default_host/sap/bc/ecatt/ecatt_recorder ICF service (the Logon
Data tab). In the Procedure field, choose Standard and select the Use all Logon Procedures
option. Finally activate this service.
Create RFC destinations to the systems under test and enter them in System Data
Containers.
Settings for Using Web Dynpro ABAP Applications
You can use eCATT to test ABAP-based Web Dynpro applications. The eCATT command for
this is WEBDYNPRO. For more information, see SAP note 948076 – eCATT support for Web
Dynpro ABAP: Limitations.
Requirements and settings for the target system that must be based on AS ABAP 7.02 or
higher are as follows:
●
●
Activate the ICF service /default_host/sap/bc/ecatt/ecattping.
Using the Web Dynpro ABAP application /default_host/sap/bc/webdynpro/sap/
WD_GLOBAL_SETTING, enable the Permit eCATT Rendering (WDENABLEXBCMLCLIENT)
feature.
Hint:
This feature can be set by testing the Web Dynpro application.
For recording, in the past an SAP Business Client (SAP BC) in version 3.0 was needed (in later
releases, the Web Dynpro Client is no longer included). But as the frontend component
sapwdgui.exe is no longer supported with later releases of SAP BC, hence also eCATT had to
replace it in its support for Web Dynpro ABAP applications. For this, a new architecture was
introduced in the eCATT WEBDYNPRO driver which makes use of the normal browser (for
recording) and of the HTML Control of the SAP GUI (for simulation). For details, see SAP Note
1947038 – New architecture of eCATT Web Dynpro ABAP support.
To activate or deactivate the new architecture, start transaction SECATT_UTIL and press the
button eCATT Settings. Then create a new entry as follows: in the column Area, use the value
help to choose Web Dynpro - Support with HTML, in the column Value, enter X (for activation)
or leave the column empty (for deactivation) and save the changes.
Settings for Using Web Dynpro Java Applications
You can use eCATT to test Java-based Web Dynpro applications. The eCATT command is
WEBDYNPRO.
A requirement for the settings target system is that the ecattping service has been started.
This can be done in SAP NetWeaver Administrator (area Operations → Systems → Start &
Stop, tab Java Services).
Addendum: Automated Testing of OData Services with eCATT
The Open Data Protocol (OData) was created to provide a simple, standardized way to
interact with data on the Web from any platform or device. This interface technology protocol
for querying and updating data is now widely used in the development of SAP business
applications. As OData services can offer quite complex business functions, eCATT handles
them as integration testing. The new OData test automation functions enable you to test a
process chain of several OData service operations automatically (for example, create →
© Copyright. All rights reserved.
195
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
change → delete). Also, you can use OData calls to generate the required test data for further
tests of other services or even other application interfaces.
You can create automated OData integration tests with the help of the eCATT OData wizard
(transaction SECATT_ODATA). The eCATT OData wizard leads you through three main steps:
1. Load and Analyze Service: In this step, you load service metadata from the server.
2. Create Access Classes for Service: In this step, you generate access classes in ABAP to
enable eCATT OData testing.
3. Create Tests: In this step, you create the tests on the basis of the newly created classes.
Hint:
For more information, see for example the blogs Automating OData Service
Testing with the eCATT OData Assistant (https://blogs.sap.com/2015/06/09/
automating-odata-service-testing-with-the-ecatt-odata-assistant/) and
Architecture of the eCATT OData Test Automation (https://blogs.sap.com/
2015/06/09/architecture-of-the-ecatt-odata-test-automation/).
Required Authorizations to Use eCATT
Among others, the following authorization objects are required to use eCATT:
S_TCODE
This object allows the user a selective access only to certain transactions (for example,
transaction SECATT).
S_DEVELOP
Authorization object that regulates access to all development objects in the SAP system.
The granularity of this authorization object (with the fields DEVCLASS for packages,
OBJTYPE and OBJNAME for object types and names of objects that the user can change,
P_GROUP for specific program groups, and ACTVT for permitted activities such as
change or create) allows you to assign authorizations specifically tailored to the user's
requirements.
S_ADMI_FCD
System administration authorization object. The system checks it when a user tries to
create an RFC destination.
S_RFC
Authorization check for RFC access. Use this to restrict the execution of function
modules that are in specific groups. To create trust relationships, S_RFCACL is also
required.
S_RFCACL
This authorization object is checked when a user attempts to log on in a remote system
with trusted RFC. You can restrict the selection to specific source system SIDs
(RFC_SYSID field), clients (RFC_CLIENT field), and users (RFC_USER field).
S_ECATT
The main authorization object S_ECATT enables access regulation for users working on
SAP Test Automation. The granularity of the object allows you to create authorizations
that restrict access to a particular kind of eCATT object type (field OBJTYPE), particular
packages (field DEVCLASS), and particular activities (field ACTVT).
196
© Copyright. All rights reserved.
Lesson: Configuring the System Landscape for eCATT
S_ECATTADM
Additional authorization check which can be used to secure various administrative
activities such as changing eCATT versioning data or configuring eCATT log archiving.
Among others, SAP provides the following roles for eCATT:
●
●
●
●
The role SAP_ECAT (eCATT Processor) contains authorizations for the creating,
displaying, changing, deleting and executing eCATT Test Scripts and Test Configurations.
The role SAP_ECST (eCATT Starter) contains the authorizations for displaying and starting
eCATT Test Scripts and Test Configurations.
The role SAP_ECET can be used for saving and loading test scripts with eCATT in case that
external tools used for eCATT were not started from eCATT.
The role SAP_ECSHOW contains authorizations for the display of eCATT Test Scripts and
Test Configurations.
Note:
For more information about the security concept and the roles and authorizations
for extended CATT, see the online documentation for SAP S/4HANA (Product
Assistance), area Enterprise Technology → ABAP Platform → Administrating the
ABAP Platform → Administration Concepts and Tools → Solution Life Cycle
Management → Integration Tests for ABAP Applications → eCATT: extended
Computer Aided Test Tool (BC-TWB-TST-ECA) → eCATT Security Guide →
Authorizations.
Addendum: SAP Reference IMG
SAP Reference IMG contains a section for many of the settings described in this lesson (and
even more settings).
For this, open SAP Reference IMG in transaction SPRO and choose SAP Customizing
Implementation Guide → ABAP Platform (SAP NetWeaver) → Application Server → Test
Workbench → Extended Computer Aided Test Tool (eCATT) , see the following figure:
Figure 121: eCATT Settings in SAP Reference IMG
© Copyright. All rights reserved.
197
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Note:
In former releases, eCATT test cases could only be scheduled for execution in the
background. This meant that test cases that required the SAP GUI for their
execution (for example due to the SAPGUI command) were excluded from job
scheduling. With the Foreground Scheduler (transaction STPFE, SAP Reference
IMG path SAP Customizing Implementation Guide → ABAP Platform (SAP
NetWeaver) → Application Server → Test Workbench → Extended Computer
Aided Test Tool (eCATT) → Foreground Scheduler → Configure Foreground
Scheduler) it is possible to schedule test cases controlling the UI for automatic
execution. After you have registered yourself in at the Foreground Scheduler and
have started the test execution, you can schedule test cases in the Test
Workbench (transaction STWB_2 – or report RSTWB_BATCH_EXECUTE) for
automatic execution in the foreground.
Additional Information on the Configuring of eCATT
For more information about the security concept and the roles and authorizations for
extended CATT, see the online documentation for SAP S/4HANA (Product Assistance), area
Enterprise Technology → ABAP Platform → Administrating the ABAP
Platform → Administration Concepts and Tools → Solution Life Cycle Management →
Integration Tests for ABAP Applications → eCATT: extended Computer Aided Test Tool (BCTWB-TST-ECA) → eCATT Security Guide.
There also exists a Wiki on eCATT on SAP Community Network (including an FAQ section) at
https://wiki.scn.sap.com/wiki/display/ATopics/eCATT:+The+Extended+Computer+Aided
+Test+Tool.
In addition, the following SAP Notes provide further information:
●
SAP Note 519858 – Setting Up SAP systems to Use eCATT
●
SAP Note 496286– Security concept extended for CATT and eCATT
●
SAP Note 480149 – New profile parameter for user scripting at the front end
●
SAP Note 692245 – Additional server based security options for Scripting
●
SAP Note 948076 – eCATT support for Web Dynpro ABAP: Limitations
●
SAP Note 1947038 – New architecture of eCATT Web Dynpro ABAP support
●
●
SAP Note 2653468 – eCATT - using local objects without registration in object directory composite SAP Note.
SAP Note 2715519 – Security recommendations for server-side configuration of SAPGUI
scripting including a link to the SAP GUI Scripting Security Guide
LESSON SUMMARY
You should now be able to:
198
●
List security aspects related to eCATT
●
Create a System Data Container
●
Configure system and client settings related to eCATT
© Copyright. All rights reserved.
Unit 5
Lesson 3
Executing eCATT Test Scripts
LESSON OVERVIEW
eCATT Test Scripts contain the commands that perform a test and the sequence in which
they should be executed. This lesson provides you with an overview of the structure of Test
Scripts. You will learn about the Test Script Editor and various commands for eCATT. You will
also learn how to create a Test Configuration and monitor its execution.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Create and execute a simple test configuration using eCATT
Structure of a Test Script
The Test Script defines the sequence of commands that are to be executed during a test.
Figure 122: Structure of a Test Script
A Test Script consists of three main elements (see the following figure):
Attributes
Attributes define the properties of a Test Script. As Test Scripts are elements of the
repository, they require a title and an assignment to a package. You must specify an
application component and a person responsible for it.
Parameters
© Copyright. All rights reserved.
199
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Parameters are variables used to transfer data from an external source (for example,
from a different Test Script or a different Test Configuration to the Test Script (“import
parameters”), transfer data from the Test Script to external sources (“export
parameters”), or to define variables locally in the Test Script (“variables”), which are used
to temporarily store data at runtime.
Commands
Commands define the process flow of the Test Script. Commands control which
transactions on which target system are processed and in which order. If required,
branches and loops can also be evaluated.
The Test Script Editor
You can maintain a Test Script using the Test Script Editor. You can start the Test Script Editor
from the initial screen of transaction SECATT (which is available in SAP Easy Access menu
through menu path Tools → ABAP Workbench → Test → Test Workbench → Test Tools →
Extended CATT) by selecting the Test Script radio button, entering a name for the Test Script
(this is an element of the repository so you should obey the naming convention), and
choosing Create Object or Change Object. The following figure shows what the Test Script
Editor looks like and what parts it consists of.
Hint:
The eCATT development tools are also integrated in the ABAP Workbench. In the
Object Navigator (transaction SE80), choose the Test Repository button. You
may need to first enable this button by choosing Utilities → Settings... →
Workbench (General)).
Figure 123: Structure of the Test Script Editor
From the Test Script Editor, you can branch to the structure editor by double-clicking the
name of a command interface. In the structure editor, you can view the definition of the
command interface structure in more detail or define parameters for the interface.
You can enter eCATT commands in the command editor, as shown in the following figure.
200
© Copyright. All rights reserved.
Lesson: Executing eCATT Test Scripts
Figure 124: eCATT Command Editor
In the Parameter List area, you can define import and export parameters and any (local)
variables that you require for executing your Test Script. Use the Parameter ↔ Command
Interface button to switch to the definition of the command interface, if necessary. These
command interfaces are automatically generated when you generate certain eCATT
commands (such as recording or running SAP transactions) by choosing Pattern. The
following figure shows how to set up parameters and values.
Figure 125: Setup eCATT Parameter and Values
eCATT Commands
There is a number of commands available in the eCATT environment. The following figure
provides an overview of the main commands used for specific applications.
© Copyright. All rights reserved.
201
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Figure 126: Which eCATT Command Should be Used?
The FUN command tests function modules. The command interface of this command
corresponds to the interface of the called function module, including the transferred
parameters and exceptions.
The eCATT command set contains commands for testing global ABAP object classes (for
example, the command CREATEOBJ to generate an object of a class or the command
CALLMETHOD to call up an instance method of a class). Access is restricted to public methods
and attributes. Global classes are both tested and used as a tool in the Test Scripts in the
same way as function modules or BAPIs are used.
You can use eCATT also to testboth ABAP based and Java based Web Dynpro applications.
Those applications can be recorded and run. The eCATT command for this purpose is
WEBDYNPRO.
Hint:
Pay attention to SAP note 948076 – eCATT support for Web Dynpro ABAP:
Limitations and SAP Note 1947038 – New architecture of eCATT Web Dynpro
ABAP support.
The commands SAPGUI and TCD test SAP transactions:
●
●
If controls are used for the transaction to be tested, the SAPGUI command must be used
because the TCD commands run at the application level without an assigned SAP GUI.
If controls are not used or are not necessary for the transaction, SAP recommends that
you use the simpler and more effective TCD command.
The SAPGUI command uses a scripting engine in the SAP GUI to record status changes on the
user interface. An SAP GUI session is also created when the SAPGUI command is run.
In addition to testing SAP transactions, eCATT provides an interface for external test tools
that allows the testing of external applications. The Test Scripts created with external tools
are also stored centrally in the database of the SAP system.
202
© Copyright. All rights reserved.
Lesson: Executing eCATT Test Scripts
Note:
In addition to the commands already listed, special conditions can also be
checked (the IF ... ENDIF. command), loops can be defined (the DO ...
ENDDO. command) and values can be checked (the CHEVAR or CHETAB
commands), Customizing settings can be set temporarily (the SETTAB and
RESTAB commands), and blocks of ABAP coding can be used (the ABAP. ...
ENDABAP. command).
You can find a command reference in the online documentation for SAP S/4HANA (Product
Assistance), area Enterprise Technology → ABAP Platform → Administrating the ABAP
Platform → Administration Concepts and Tools → Solution Life Cycle Management →
Integration Tests for ABAP Applications → eCATT: extended Computer Aided Test Tool (BCTWB-TST-ECA) → eCATT Command Reference.
Test Data Containers
In eCATT, most of the test data is stored in Test Data Containers separate from the Test
Scripts. The main reason for this is to allow the test data to be reused and maintained. The
Test Data Container(s) and a Test Script are merged in a Test Configuration to create a test
case that can be executed.
Test Data Containers consist of parameters that describe the interface of the container and of
variants in which the actual test data is stored. Each variant contains a field for every
parameter as shown in the following figure. If no value is assigned to the parameter of a
variant, the corresponding value from ECATTDEFAULT is used.
You can import parameter names (for example, from Test Scripts) in the Test Data Container
by choosing Edit → Import Parameters from the menu. eCATT features a function for
importing data into Test Data Containers. You can save an entire Test Data Container as a
local XML file by choosing Test Data Container → Other Features → Download from the
menu and import it into other systems (on the initial screen of transaction SECATT) by
choosing the menu path ECATT Object → Other Features → Upload. Variants with simple
parameters, on the other hand, can also be saved locally in .txt format (see the menu path
Edit → Variants → Download in the editor for Test Data Containers). The following figure
shows how a Test Data Container is structured.
© Copyright. All rights reserved.
203
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Figure 127: Structure of a Test Data Container
The easiest way to use Test Data Containers is to create a Test Data Container separately for
each Test Script. This method, however, does not allow you to take advantage of the many
benefits of reusing the test data. Test data can be used more effectively if an individual Test
Data Container is created for a complete application or sub-application. For this reason, it is
also possible to use a single Test Data Container for several Test Scripts in one application.
This simplifies consistent data storage.
In the case of larger quantities of parameters, the use of multiple Test Data Containers is
useful. They provide the data required for a test project. Each Test Script takes its data from
one or more Test Data Containers. This is illustrated in the following figure:
Figure 128: Reusability of Test Data Containers
204
© Copyright. All rights reserved.
Lesson: Executing eCATT Test Scripts
Note:
eCATT provides external variants that enable data stored in external files to be
used. They can be used for both Test Data Containers and for Test Configurations.
You can also use an external .txt file without uploading it (the External Variants / Path radio
button in the Mode area on the Variants tab).
●
●
External variants are generally used for data that is used only once and then rejected.
Internal variants, on the other hand, are used when test data that will be used several times
is to be stored permanently in the system.
You can change the path entered on the Variants tab page for the variant used by choosing
Utilities → Settings from the menu and then eCATT → External, field Variants. .
Note:
A new variant maintenance wizard for test data maintenance was introduced in
enhancement package 1 for SAP NetWeaver 7.3. This new wizard is displayed by
default and leads you step by step through the variant maintenance process.
To use the classical wizard, choose Utilities → Settings from the menu and then
eCATT → Advanded, selection field Classic Wizard.
Start Profile
A Start Profile is an eCATT object for storing start options. This allows you to define the
parameters to be used for the test procedure globally (which then can also be used within the
Test Plan Management of the Test Workbench (transaction STWB_2)). You can also define test
run parameters in the Start Profile (Data for Test Proc. tab).
Test Configuration
Although Test Scripts can be run “standalone” in the eCATT development environment, this
procedure is usually only used during test development or for troubleshooting. Test Scripts
frequently contain standard test data. A complete test case, however, is represented by a
Test Configuration and Test Configurations are executed by the Test Workbench.
By default, one System Data Container and one or more Test Data Containers are referenced.
Reusing test data that is useful is possible if you reference Test Data Containers (see the
following figure for details).
© Copyright. All rights reserved.
205
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
Figure 129: Test Configuration
The Test Script defines the actions to be carried out and the import parameters that form the
variants. The Test Data Containers contain most of the test data. The System Data Container
features the system mapping function that defines the systems on which the commands act.
When a Test Configuration is executed, the System Data Container specified in the Test
Configuration is always used. Other System Data Containers (such as the one that is used
during design time) do not affect any systems here. The start options finally are taken from
the Start Profile.
eCATT Monitoring Using Logs
Every eCATT run generates a log containing detailed test results. This log contains the name
of the Test Script (with the version) and every command executed in the Test Script, together
with the corresponding parameters.
Every error that occurs when the Test Script is being executed is colored red and is passed up
to the highest level of the hierarchical structure of the log, so that each error that occurs flags
the run as “containing errors”. Specific entries can also be written to the log within a script
using the LOG ( <Parameter> ). command.
Logs that are no longer used but should still be accessible can be archived (archiving object
ECATT_LOG).
Additional Information on Executing eCATT Test Scripts
For more information about extended CATT, see the online documentation for SAP S/4HANA
(Product Assistance), area Enterprise Technology → ABAP Platform → Administrating the
ABAP Platform → Administration Concepts and Tools → Solution Life Cycle Management →
Integration Tests for ABAP Applications → eCATT: extended Computer Aided Test Tool (BCTWB-TST-ECA)
In addition, in class CA611 – Test Management with eCATT you can learn how to create
automated Test Scripts and how to include test cases in test projects that you can manage
with the Test Workbench.
206
© Copyright. All rights reserved.
Lesson: Executing eCATT Test Scripts
LESSON SUMMARY
You should now be able to:
●
Create and execute a simple test configuration using eCATT
© Copyright. All rights reserved.
207
Unit 5: Configuring Extended Computer Aided Test Tool (eCATT)
208
© Copyright. All rights reserved.
Unit 5
Learning Assessment
1. There is a fixed connection between the test data required for an eCATT test case and the
Test Script, and the test data cannot be used without this fixed Test Script.
Determine whether this statement is true or false.
X
True
X
False
2. Which of the following configurations are required so that an AS ABAP based SAP system
is able to use the SAPGUI command in eCATT?
Choose the correct answers.
X
A Maintain client settings to allow eCATT to be executed
X
B Configure the eCATT Manager
X
C Enable scripting for SAP GUI
X
D Enable the eCATT plug-in
3. Which of the following commands are available in eCATT?
Choose the correct answers.
X
A FUN
X
B TCD
X
C SAPGUI
X
D WEBDYNPRO
X
E RFC
4. Every error that occurs when the eCATT Test Script is being executed is colored red, and
is passed up to the highest level of the hierarchical structure of the eCATT log.
Determine whether this statement is true or false.
X
True
X
False
© Copyright. All rights reserved.
209
Unit 5
Learning Assessment - Answers
1. There is a fixed connection between the test data required for an eCATT test case and the
Test Script, and the test data cannot be used without this fixed Test Script.
Determine whether this statement is true or false.
X
True
X
False
Correct. Test data can be stored in Test Data Containers that in turn can be used within
multiple Test Configurations that is with multiple Test Scripts.
2. Which of the following configurations are required so that an AS ABAP based SAP system
is able to use the SAPGUI command in eCATT?
Choose the correct answers.
X
A Maintain client settings to allow eCATT to be executed
X
B Configure the eCATT Manager
X
C Enable scripting for SAP GUI
X
D Enable the eCATT plug-in
Correct. You need both maintain client settings to allow eCATT to be executed and to
enable scripting for SAP GUI.
3. Which of the following commands are available in eCATT?
Choose the correct answers.
X
A FUN
X
B TCD
X
C SAPGUI
X
D WEBDYNPRO
X
E RFC
Correct. FUN, TCD, SAPGUI and WEBDYNPRO are eCATT commands.
210
© Copyright. All rights reserved.
Unit 5: Learning Assessment - Answers
4. Every error that occurs when the eCATT Test Script is being executed is colored red, and
is passed up to the highest level of the hierarchical structure of the eCATT log.
Determine whether this statement is true or false.
X
True
X
False
Correct. Every error that occurs when the eCATT Test Script is being executed is colored
red, and is passed up to the highest level of the hierarchical structure of the eCATT log.
© Copyright. All rights reserved.
211
Unit 5: Learning Assessment - Answers
212
© Copyright. All rights reserved.
UNIT 6
Dealing with Aspects of
Globalization
Lesson 1
Discussing Aspects of Globalization
215
Lesson 2
Importing Additional Languages into an SAP System
225
Lesson 3
Addendum: Introducing Unicode
241
UNIT OBJECTIVES
●
Outline the SAP globalization strategy
●
Explain the use of multiple languages in an SAP system
●
Apply an additional language in an SAP system
●
Define the terms code page and Unicode
●
Outline the procedure of a Unicode Conversion
© Copyright. All rights reserved.
213
Unit 6: Dealing with Aspects of Globalization
214
© Copyright. All rights reserved.
Unit 6
Lesson 1
Discussing Aspects of Globalization
LESSON OVERVIEW
There are a number of special considerations related to software for companies that have
subsidiaries in different countries and whose employees speak different languages. This
lesson examines various aspects of globalization, such as implementation strategies, country
versions, and time zones. You will also learn about centralized and decentralized
implementation.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Outline the SAP globalization strategy
Centralized and Decentralized Implementation
In principle, many different implementations are possible with regard to centralized and
decentralized data storage and business processes. Some of them are described and
illustrated in the following figure. When considering them, we will look at best practice
observations from real implementations, along with technical advantages, disadvantages, and
restrictions.
Figure 130: Different Implementation (Centralized versus Decentralized)
© Copyright. All rights reserved.
215
Unit 6: Dealing with Aspects of Globalization
Complete Centralization
Complete centralization means mapping all business processes in a single client in a single
system. Mapping using multiple clients can no longer be regarded as centralization because
they work as almost independent systems.
Advantages of complete centralization are central control, simpler and more integrated
reporting, simpler maintenance as well as harmonization and standardization.
Disadvantages of complete centralization are global complexity, higher risk, performance and
size, differences in local business processes as well as problems with ownership.
Additionally, you should consider the following aspects:
●
Which global options and restrictions exist?
●
Which transactions are required?
●
Which end users work with the system?
●
What about the local acceptance for global solutions?
●
What kind of difficulties are to be expected with a global implementation?
Complete Decentralization
With a completely decentralized implementation, the individual local systems (clients) are
separated and independent of each other. Each individual system can use its own standards.
Communication with other systems takes place only to a limited extent, using individual,
defined interfaces.
Advantages of an implementation of this type are local freedom with regard to functions, time
planning, and approaches, local independence as well as no expense for reconciliation.
Disadvantages of the complete decentralization are no synergies, redundancies, incompatible
systems and interfaces as well as redundancies with regard to implementation and
maintenance.
Additionally, you should consider the following aspects:
●
Global costs due to incompatibilities
●
Global costs for implementation and maintenance
●
Data Privacy
Distributed Systems with Shared Services
A decentralized approach with a common development system and shared services that are
used globally can combine advantages of both purely centralized and purely decentralized
implementations.
Advantages of this approach are the local independence with regard to business processes,
avoidance of redundant functions as well as the distribution and avoidance of implementation
and maintenance costs.
A number of disadvantages of distributed systems with shared services remain, however,
such as the need for interfaces with associated problems or the issue of no real integration of
business processes.
Additionally, you should consider the following aspects:
●
216
Harmonization and standardization
© Copyright. All rights reserved.
Lesson: Discussing Aspects of Globalization
●
Global costs for implementation and maintenance
Combined Configuration: Centralized Decentralization
If multiple individual systems are connected in such a way that they are integrated and
consolidated using business processes, it will be described as a centralized decentralization.
Advantages of such an approach are distribution and reporting, specific integration and
complexity, standards and communication using business processes as well as the
possibilities for change.
Disadvantages of the centralized decentralization areas are a restricted global control, the
existence of complex network of business processes between the systems as well as it is less
than optimal from a local point of view.
Additionally, you need to consider the following aspects:
●
Whether distributing the business processes is actually useful
●
Distribution scenarios
●
Local acceptance
●
Possibilities for cooperation
In hybrid scenarios, customer may run a central SAP S/4HANA server system on premise.
This central SAP S/4HANA system may then be connected to local cloud systems such as
SAP S/4HANA Cloud systems or SAP Business ByDesign systems that are running in the
subsidiaries.
Strategy Criteria
In addition to the considerations related to business processes, other criteria must be
considered. The strategy criteria could be of a geographical or technical nature, or relate to
service and support, as presented in the following figure.
Figure 131: Criteria for a Strategy
There are different scenarios for implementation. The trend is currently moving in the
direction of centralization and shared services. Restructuring from a centralized to a
© Copyright. All rights reserved.
217
Unit 6: Dealing with Aspects of Globalization
decentralized solution is relatively simple. Restructuring in the other direction requires
significantly more expense. If you are considering a centralized implementation, contact SAP
for help.
Local Versions
When implementing an SAP system, country-specific differences in business processes and
requirements should be considered. In this way, for example, the Financial Accounting (FI)
application in SAP ECC (and in SAP S/4HANA) behaves differently in Germany, Spain or
Poland. This is known as a local version (formerly known as country version). It is important to
take this aspect into account. Different local versions result in different business processes,
different data storage, and different Customizing options. It works this way because of legal
differences, such as taxation, reconciliation, and reporting. Default settings and templates are
also provided with a local version.
You must differentiate technically between situations where the required local version already
exists in the SAP standard and can be activated in Customizing, and situations in which the
local version must be implemented in the system later. A nonstandard local version is
imported as an add-on using transaction SAINT. In some cases, it is a question of transport
requests that are imported using normal transport control (TMS). For some countries, there
are no ready-made local versions. In such a case, adjust the system as far as possible using
Customizing, and then implement additional specifics using your own developments, user /
customer exits, and BAdIs or modifications.
Figure 132: Availability of Local Versions for SAP ECC 6.0
SAP Standard Localization indicates that the local version is contained in the standard SAP
ECC 6.0 (or SAP S/4HANA) system. The figure above shows the availability of local versions
for SAP ECC 6.0 at the time of the creation of this handbook as an example. Older releases
may contain fewer local versions. SAP Partner Solutions are based on local versions that are
already available but that must be imported as an add-on or transport request.
As soon as standard local versions are included in the standard SAP system, they are
available immediately with the next release. They can be used in parallel and are compatible
with each other and with other SAP applications.
218
© Copyright. All rights reserved.
Lesson: Discussing Aspects of Globalization
Note:
Nonstandard local versions are provided by SAP or by one of SAP's partners.
Local versions shipped by SAP's partners may also not be available at the time of
a new SAP release, but only some time later. These considerations also apply
when importing SAP Support Packages. You must also consider the fact that a
local version that has been imported later can modify the SAP standard. The use
of multiple nonstandard local versions in a single SAP system should, therefore,
be checked carefully before implementation. It is also not possible to guarantee
compatibility with other add-ons. You need to ensure that relevant Conflict
Resolution Transports (CRT) exist when importing SAP Support Packages.
For a comparison, the following figure shows the status of SAP S/4HANA (on Premise) at the
time of printing.
Figure 133: Availability of Local Versions for SAP S/4HANA (On Premise)
For more information about using individual local versions (as well as on time zones), see the
online documentation and SAP Note 1375438 – Globalization Collection Note.
Time Zones
A company operating globally with cross-time-zone business processes requires a way of
synchronizing time-dependent processes. SAP supports the use of different time zones in
SAP solutions. It is not sufficient to use a uniform, system-wide timer in such situations. This
would lead to a situation where, in extreme cases, a business process falls on a different day
from the one that should technically be the case for the balance sheet. In this way, for
example, a Japanese user working for a Japanese company in Japan who creates a document
at 6 a.m., but who happens to be working in an international system with German time, would
create this document on the wrong day (in this case, the previous day). This would be
incorrect from a business point of view.
SAP systems support time zones in various applications. Time zone functions are fully
integrated into the SAP kernel. This means that the SAP system can convert dates and times
quickly.
© Copyright. All rights reserved.
219
Unit 6: Dealing with Aspects of Globalization
The local time of a particular user is dependent on the geographical area to which the user
belongs. The time difference between local time and the absolute time, Coordinated Universal
Time (UTC), is influenced by the following factors: geographical area, political factors (time
zones are assigned to a country, a region, or even a postal code), and possibly daylight saving
time (which does not have a uniform duration).
The local time is calculated based on Greenwich Mean Time (GMT), also known as UTC. For
example, if it is 18:00 in Greenwich, it is 10:00 in Los Angeles. Los Angeles is therefore eight
hours behind Greenwich. At the same time, it is 03:00 in Japan (nine hours ahead of UTC).
Daylight saving time is also taken into account in many time zones. In this case, the system
uses a daylight saving time rule (summer time rule) to calculate the local time. In such time
zones, the clocks are usually put forward by one hour to make full use of the longer days
during the end of the spring months, summer, and the start of autumn, and to take the
sunlight during the evening hours into account. The assignment of a particular town or region
to a time zone depends on geographical and political factors. The time difference between
two places on the globe can be up to 24 hours.
The time for a time zone is determined by the following components:
Time zone
This component contains only the name of the time zone (such as CET or EST) and
reference to the corresponding time zone and summer time rules.
Time zone rule
This rule defines the time difference (+/- hours and minutes) to UTC based on
geographical and political factors.
Summer time rule
This rule defines the time difference between daylight saving time and standard time
(usually +1 hour). It does not, however, define the start and end dates of daylight saving
time.
Variable summer time rules
These rules define how the system calculates the start and end dates of daylight saving
time. You can change these rules at any time. This means that you do not have to enter
the start and end dates of daylight saving time every year.
Fixed summer time rules
In cases where daylight saving time is not defined by variable rules, this rule defines the
start and end dates of daylight saving time for a particular year.
220
© Copyright. All rights reserved.
Lesson: Discussing Aspects of Globalization
Figure 134: Business Process Across Multiple Time Zones
It is necessary to operate multiple time zones in one system simultaneously. The figure above
shows an example of a business process happening across multiple time zones. The default
time zone is used for processes that cannot be assigned to an individual time zone. The time
is calculated based on UTC. In general, it is possible to assign a time zone either to an end
user or to an object.
Time zones are of particular importance in the following areas:
●
Basis system (AS ABAP: uniqueness and serialization of system events)
●
Logistics (planning and tracing, dispatch and transport, goods movement)
●
Finances (determining posting date, resulting in posting period)
●
CRM (determining the date in business processes, call centers, mobile clients, internet
sales)
For the following, we need to distinguish different times:
Operating system time
Time of all servers of the SAP system, including daylight saving time.
System time
Must be identical to operating system time; operating system time is set in the SAP
Reference IMG.
User time
Time zone in which the user works; this is set in the user master record.
Business/reference object time
Objects can have a time zone as an attribute.
Default time
Used if no other time zone is defined.
Before time zones can be used in the SAP system, you need to add system settings, maintain
time zones, and assign these to users as follows:
© Copyright. All rights reserved.
221
Unit 6: Dealing with Aspects of Globalization
Maintain system settings
The first time that you log on to an SAP system, the system automatically determines the
time zone that it is in. As a precaution, you should check that the time zone setting in the
system is correct. In SAP Reference IMG (transaction SPRO), choose area ABAP Platform
→ General settings → Time Zones → Maintain System Settings (note that this path
depends on the SAP system and the release). You can also use transaction STZAC. Enter
the System time zone and the User’s Default Time Zone. To activate the time zone
function, select the Time Zones Active field.
Maintain time zones
As the default time zones are delivered with the SAP system, you do not need to maintain
them manually. You should, however, check the settings. In SAP Reference IMG
(transaction SPRO), choose ABAP Platform → General settings → Time Zones →
Maintain Time Zones (note that this path depends on the SAP system and the release).
You can also use transaction STZBC. As the individual parts of a time zone structure are
based on each other, you can define time zones by completing parts of the table as
follows. First, define the time zone key (choose Time zones). Then, define the time
adjustments that are caused by the time zone (choose Time zone rules). Next, define the
time adjustments that are caused by daylight saving time (choose Summer time rules).
Finally, define the variable summer time rule or the fixed summer time date (choose
Variable Summer time rules or Fixed Summer time rules in the menu structure).
Maintain geographical assignments
In SAP Reference IMG (transaction SPRO), choose ABAP Platform → General settings →
Time Zones → Maintain Geographical Assignments (note that this path depends on the
SAP system and the release). To assign countries, regions, or postal codes, in the menu
structure choose Time zones in country, Time zones in country/region, or Generic time
zones to postal code. Define the standard time zone for the country or the region. If there
is more than one time zone in a country or a region, enter the preferred time zone.
Define time zones in the user profile
Call transaction SU01. Enter the user ID and choose Change. Choose the Defaults tab,
and enter the Time Zone for the user in the Personal Time Zone group box. If there is no
time zone defined for a user, the system uses the time zone for the company to which the
user is assigned. To view the time zone for the company, select the Address tab. Then
choose Display Full Company Address (the glasses icon) in the Company group box. The
company's time zone is displayed on the detail screen for the company address (Street
Address group box).
Check time zones function for the user
Choose System → Status... from the menu. If the time zones are activated and the user
defaults are configured correctly, for users in the same time zone as the system no time
zone information appears in the Usage data group box in the System: Status dialog box.
For users in a different time zone, the system time, the time zone of the user, the local
time of the user, and the local date of the user are displayed (the local date is displayed
only if the local date and system date are different).
Time Zone Key Points
Applications from software component SAP_BASIS (the SAP Basis system) always uses the
system time zone and not any deviating time zone. This includes services such as the
following:
●
222
Background processing
© Copyright. All rights reserved.
Lesson: Discussing Aspects of Globalization
●
Update objects for asynchronous updates
●
System log messages
●
Change documents
This means that when a background job is defined (for example, using transaction SM36) or
displayed (for example, using transaction SM37), the individual time zone of the calling user
must be taken into account (that is, the user must select the relevant system time, and not
their own local time).
An exception to this rule is the overview of spool requests (transaction SP01). The individual
time zone of the calling user is taken into account here.
It is possible to determine the time zone using either the user master record or SAP Business
Objects.
To define the time zone using the user master record, assign an individual time zone to every
user master record in the SAP system using transaction SU01 (see above). Many business
transactions in the SAP ECC system and in SAP S/4HANA systems use this setting.
For example, a user who works in Los Angeles has been assigned the PST time zone (Pacific
Time, -8 hours from UTC). They are working, however, in an SAP S/4HANA system that is
located in London and that has UTC as the system time zone. If the user posted to an account
on Thursday evening at 20:00 Los Angeles time, not only would the default value for the date
of his post be that Thursday, the action would also be posted with Thursday's date. This
procedure is correct from a business point of view, although it is already Friday morning
according to the system time. In this way, it is possible for postings to be made for a date in
the past, or, in the case of an East-Asian time zone, even for a date in the future (from the
point of view of the SAP system). This is a simple solution that is satisfactory for the user, as
long as it is not a case of cross-time-zone business processes.
To define the time zone using an object, link the time zone with objects, such as company
code, plant, warehouse, or customer. This is useful when considering cross-time-zone
business processes. This procedure is used in particular in SAP CRM (Customer Relationship
Management) and SAP SCM (Supply Chain Management). Time stamps are stored in UTC
time and are displayed converted to the local time zone, as required. The SAP system uses
the local date, local time, and the time zone of the object to calculate the time stamp. The
system stores the time stamp and the time zone of the object. If the user then calls the object
with the time details again, the system will convert the UTC time information stored in the
time stamp to the relevant local time. The system therefore stores the time information only
in UTC and not the local time originally entered by the user.
It is important to note that there is no uniform arrangement with regard to time zones in the
SAP system. Whether and how time zones are taken into account, whether user-related,
object-related, or not at all, depends on the individual implementations in the individual
transactions.
Note:
Objects which are assigned to an address may get the time zone from the
address (for example plants or warehouses). Therefore it is important to
maintain the time zones of addresses in table ADRC (Business Address Services)
accordingly
© Copyright. All rights reserved.
223
Unit 6: Dealing with Aspects of Globalization
Additional Information on Globalization
●
●
For more information about time zones, see the online documentation for SAP S/4HANA
2021 (Product Assistance) area Enterprise Technology → ABAP Platform → Other
Services → Services for Administrators → Time Zones (BC-SRV-TIM) and the online
documentation for individual products (such as SAP CRM).
For more information about Globalization, the following SAP Notes may be helpful:
-
-
SAP Note 1375438 – Globalization Collection Note.
SAP Note 198411 – Current data and information about time zones. This note contains
the latest content concerning time zones.
LESSON SUMMARY
You should now be able to:
●
224
Outline the SAP globalization strategy
© Copyright. All rights reserved.
Unit 6
Lesson 2
Importing Additional Languages into an SAP
System
LESSON OVERVIEW
This lesson explains the ability of the SAP system to support multiple languages
simultaneously. The functionality includes the mechanism of language imports and language
supplementation. Translations and address versions are also briefly discussed.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Explain the use of multiple languages in an SAP system
●
Apply an additional language in an SAP system
Multilingual Capability of the SAP System
Depending on the release, SAP translates its products into about 40 different languages. With
the help of report RSCPINST, customers can enable their users to log on in far more than 40
languages (even if SAP does not translate its products into these languages).
The user's language is specified during logon by an entry in the logon screen, a default setting
in a user master record, a language specified in SAP Logon options, or a system default.
Before users can log on with the desired language, this language must be imported into the
SAP system. Only German (DE) and English (EN) are included with a new installation of an
SAP system. You can use transaction SMLT to import additional language packages.
Note:
Depending on the release of both SAP Software Provisioning Manager (SWPM)
and the SAP system to be installed, you can also include the installation of
additional languages into the installation procedure of your SAP system.
If you select a language other than English, remember that the language is not fully translated.
The text that is not translated must be provided using a supplemental language. The
supplemental language must be a completely translated language. This can also be
recursively configured so that you can use a number of supplemental languages, each of
which supplements text that is not translated in the previously configured language.
© Copyright. All rights reserved.
225
Unit 6: Dealing with Aspects of Globalization
Note:
The supplemental language should be aligned with the profile parameter zcsa/
second_language (which has the default value D). So if you want your
supplementation language to be English, the value of this parameter should be
changed to E. See also section 1.3 of SAP Note 1156507 – Language
supplementation, RSREFILL, and client maintenance.
Figure 135: Language-Dependent Objects
There are many different language-dependent objects, as shown in the figure above. The
objects are translated into different languages. Objects that are not translated use a
supplemental language.
Note:
If you create a new language-dependent text, it exists only in the logon language.
The text is not maintained for other languages. This can lead to inconsistent data.
For example, certain text may not be displayed for users who log on with a
different logon language (unless you translate it). Such users may also receive an
error message such as Make an entry in all required fields.
Depending on the object, problems that can arise are as follows:
●
The text is displayed in a different language
●
Nothing is displayed
●
The user sees a warning or error message
●
The transaction can no longer be executed
Languages in the SAP System
The extent to which individual languages need to be imported into the SAP system and to
which they are translated, depends not only on economic, but also political and cultural
226
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
criteria. User acceptance is an important aspect in these considerations. The following figure
shows the language and translation considerations.
Figure 136: Using Different Languages
The categories of language and translation are as follows:
English Only
In this case, the system only supports English when printing. All reporting and
communication is performed in English. The problem of language-dependent objects
does not arise and no costs are generated for translations at customer side. The question
is not only whether the users have any problems with the English language, but also
whether English reporting, such as annual financial statements, is legally acceptable.
Therefore, it is a solution for a relatively small number of countries that use English as an
official language.
Mainly English
In this case, it is assumed that the users have a command of English. They log on in
English, and the menus are also in English. However, reporting is done in the national
language. If desired, language-dependent objects will be translated. Such a solution
requires certain translation costs and a small amount of Customizing (for example, for
units of measurement). The master data is available in the national language.
Communication is also performed in the local language.
Some English
The master language of the system is English. However, users do not require significant
knowledge of English. They log on in their local language, and use language-dependent
objects, such as menus, input screens, and so on. Communication and all legally-relevant
reporting are also performed in the national language. Text that is not translated is
displayed using English as the supplemental language. There may be no translations in
some areas. Additional text can be translated, if desired, but this is not necessary in
many internal areas. There are periodic language supplements for newly generated text.
Manual translations remain manageable.
No English
In this case, users have no knowledge of English or English is unacceptable due to
political or cultural considerations. In such situations, not only must the corresponding
national language be imported, but all other required text must be translated manually. It
© Copyright. All rights reserved.
227
Unit 6: Dealing with Aspects of Globalization
is not possible to use English as a supplemental language. This means continual
translation activity in a multilingual system. This is necessary even if the system is only
operated in one language, as new language-dependent texts are imported into the SAP
system with every SAP Support Package and every upgrade, and it may be necessary to
translate them.
The level of SAP standard translations is different for different languages. This is because
business requirements are not the same for different countries. In Japan, there is a strong
demand to provide all language-dependent texts in Japanese. On the other hand, users in
Scandinavia typically do not have this requirement. Some customers do not even offer their
users the option to log on with a Scandinavian language – they use an English interface
instead. Hence, a reduced translation scope is possible in some countries.
Existing translation levels can be categorized as follows:
●
●
●
●
●
User Interface: This translation level includes all elements of the SAP system that are
necessary to operate it in the user's language (for example, screens, messages, menus,
and interactive PDF forms).
User Interface and Selected Help: This translation level includes all elements of the User
Interface level, plus selected help (for example, F1 help for system messages, data
elements, reports, and authorization profiles).
User Interface, Selected Help, and Forms: This translation level includes all elements of the
User Interface and Selected Help level, plus forms (for example, SAPscript forms and PDF
print forms).
Complete Translation: All application texts are available in the respective language. This
includes, for example, Payroll-specific documentation and Release Notes.
Complete Translation with Technical Texts: All language-dependent elements are available
in the respective language.
In some application areas, the translation level can deviate from the “global” translation level
for a specific language. This is especially valid for industry-specific areas.
Translation Tools
The translation tools enable you to translate language-dependent text in ABAP objects. These
tools belong to the software component SAP_BASIS and are therefore available in all ABAPbased SAP systems.
The short text editor, which you access via transaction SE63, enables you to translate short
texts (such as UI texts) with or without the aid of a translation memory (called the proposal
pool). The long text editor, which you can also access via transaction SE63, enables you to
translate long text objects such as F1 help texts.
There are four possible approaches to translation:
●
●
●
228
For very small volumes of texts, you may wish to translate just individual objects in
transaction SE63 (Translation Editor).
At the other end of the scale, you can use transaction LXE_MASTER (Translation
Administration) to set up the translation environment fully, which provides you with the
best possible support for your project with features such as standard worklists and
translation statistics (see figure below).
You can create an on-the-fly worklist to translate objects in a specific transport request,
transport object, or package without having to set up the translation environment at all.
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
●
Finally, you have the option of exporting texts from your SAP system to an XLIFF or Excel
file for external translation.
The appropriate translation strategy depends on factors such as the total volume of text to be
translated and the number of target languages.
Figure 137: Components of the Translation Workbench
For more information on translation, see the SAP online documentation for SAP S/4HANA
(product assistance), area Enterprise Technology → ABAP Platform → Other Services →
Services for Information Developers and Translators → Setting Up and Coordinating
Translation (BC-DOC-TTL) and Translation Tools for Translators (BC-DOC-TTL).
Note:
For the translation of Customizing, see section “Language-Dependent
Customizing”.
Hint:
SAP Note 1375438 – Globalization Collection Note contains multiple
attachments, for example a translation configuration guide.
Language Import
You use transaction SMLT (Language Management) to import language packages into an SAP
system. The following figure shows the steps required for a language import. The steps are
explained in more details in the remaining part of this lesson.
© Copyright. All rights reserved.
229
Unit 6: Dealing with Aspects of Globalization
Figure 138: Language Import Process
For more information how to install a new language and how to finish the post processes after
you have imported the language packages, see SAP Notes 1935497 – How to finish a language
import by SMLT and 3156438 – SMLT: Language installation - all steps.
Configuration of Required Languages Using Report RSCPINST
Before starting the language import, you must configure the required languages.
To do so, start the report RSCPINST using transaction SA38 or I18N (I18N Menu → I18N
Customizing → I18N Language Configuration). Here, choose Add Language to select the
country code for each language required, and choose Check. When no further preparation is
required, finally choose Activate.
Hint:
For more information about the report RSCPINST, see SAP note 42305 –
RSCPINST (I18N configuration tool).
Note:
As of release 7.50 , the profile parameter zcsa/installed_languages shall not be set
in any profile file. Program RSCPINST shall be used instead. See SAP Note
2185213 – Configuration of logon languages and profile parameter zcsa/
installed_languages. As of SAP S/4HANA Server 1909, this parameter is not
shown in transaction RSPFPAR any more, as of SAP S/4HANA Server 2020, this
parameter is not used any more.
Importing the Language Package
The following figure shows the language import screen in transaction SMLT.
230
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
Figure 139: Transaction SMLT: Language Import
During an import of a language package or during language supplementation, the SAP system
locks language management activities for the relevant language. The system rejects all other
activities to be performed for a locked language. Other languages are not affected by this,
meaning that parallel actions that operate on other languages can be performed.
SAP delivers SAP Support Packages to correct errors that occur in SAP transactions. SAP
Support Packages often contain language-dependent data, such as message texts, ABAP text
pool entries, or screen texts. After importing an SAP Support Package (for example with
transaction SPAM), the translated texts for these objects have the newest status for all
languages that exist in the system.
Problems occur when an additional language is imported from the language media file(s) into
a system in which SAP Support Packages have already been installed. The language media
file(s) was created before the first SAP Support Package was shipped, and the objects in the
SAP Support Packages are only provided with translations for the languages already
imported. Importing a language subsequently places the objects contained in the SAP
Support Packages in an undefined status with regard to translation. For example, texts can be
obsolete, and therefore incorrect, or completely missing (see SAP note 352941 –
Consultation: Languages and Support Packages).Therefore you subsequently need to import
the language data contained in the SAP Support Packages to achieve a consistent language
status.
Note:
You must classify a language to make it known in the system before importing a
language package supplementing the language.
To classify languages, perform the following steps:
1. In transaction SMLT, choose Language → Classify from the menu.
2. In the dialog box that appears, select the language to be imported and the associated
supplementation language.
© Copyright. All rights reserved.
231
Unit 6: Dealing with Aspects of Globalization
Note:
To enable logging on in the relevant languages, the parameter zcsa/
installed_languages is checked which – as of AS ABAP 7.50 – is maintained
with the help of report RSCPINST. As of SAP S/4HANA Server 2020, this
parameter is not used any more, however.
You can display the current settings for a language at any time by choosing Language
Information for the language in question on the initial screen of transaction SMLT. If no
supplementation language was specified when classifying a language, it is possible to do it at
any time.
Use transaction SMLT to import an additional language package. English and German are
always completely available in newly installed systems. To import an additional language
package, perform the following steps:
1. For the language with an additional package to be installed, from the menu choose
Language → Import Package.
2. In the dialog box that appears, specify the path to the language package. Choose Find
Package(s). The system searches for available packages in the specified path.
Note:
The system indicates whether a package can be imported by displaying a
green, yellow, or red traffic light next to the relevant package. You can display
additional information by selecting the traffic light. A green light means that all
import conditions have been fulfilled, yellow means that warnings have
occurred, and packages with red lights cannot be imported due to checks that
revealed errors.
3. Select one or more language packages with green or yellow lights for import by selecting
the corresponding line(s) in the list.
4. After specifying the start time and, if desired, the target server, you can import one or
more language packages by choosing Execute. This schedules a background job that
performs the required steps.
As a result, an import action is created for the relevant language on the overview screen of
transaction SMLT, which you can manage and monitor by choosing the relevant icons.
Hint:
You can restart terminated imports by choosing the Restart button in transaction
SMLT.
Note:
You can import multiple language packages in parallel. Depending on the capacity
of your SAP system, importing multiple language packages simultaneously can
cause a greater workload than importing them sequentially.
232
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
After importing the language packages, you must import the language data contained in
Support Packages. To do so, select the affected language in transaction SMLT and (from the
menu) choose Language → Special Actions → Import Support Packages.
To perform the relevant actions, you require the following authorizations in the CTS_LANFKT
field of the S_CTS_LANG authorization object:
●
ADMI: Administration in the language transport area, especially for classifying an
additional language
●
INST: Importing a language package
●
SUPL: Supplementing a language
●
SHOW: Display authorization; you cannot call transaction SMLT without this authorization
All authorizations required for language transports are included in the
SAP_BC_TRANSPORT_ADMINISTRATOR role that is delivered by SAP. The authorizations are
checked in such a way that it is not necessary to adjust them in a language transport after an
upgrade.
Language-Dependent Customizing
In the case of a language import with translation gap supplementation, objects from SAP
standard are imported and supplemented. However, in the case of language-dependent
Customizing text, supplementation is more difficult. This text might not have been translated
into all languages and now has to be supplemented. Information about language-dependent
text is presented in the following figure. Note that most Customizing texts are clientdependent.
Figure 140: Language-Dependent Texts in Customizing
Customizing data is the data created at the customer site in the context of Customizing. The
Customizing data for a customer client is not overwritten during a language import or
upgrade: the data is always imported only into client 000. The reason for this is that
Customizing data becomes the responsibility of the customer and must not subsequently be
overwritten by data from SAP. This also applies, without restrictions, to translations.
However, it is sometimes useful for the customer to refresh the template data and default
© Copyright. All rights reserved.
233
Unit 6: Dealing with Aspects of Globalization
settings with current translations from SAP. New clients should only be copied from client
000 after this client has been updated with all required languages.
Note:
For more information, see SAP Note 1164216 – T005, T005S Content which
contains information on countries and regions as an example.
The following options are two ways to update a translated language for customizing an
existing customer client:
●
●
Using tools
Manual translation (for example by choosing Goto → Translation from the Customizing
activity in SAP Reference IMG)
Supplementing Customizing Using Transaction SMLT
To fill translation gaps that exist in a language, always perform the language supplementation
after the language import. The supplementation actions are client-dependent. The language
supplementation is performed in the client in which you are logged on. If you use multiple
clients, you must perform the language supplementation explicitly in each production client.
You can access the text stored in cross-client database tables from all clients. The default
setting determines that cross-client tables are supplemented if you are logged on in client
000.
Caution:
Do not supplement languages in a translation system.
Supplementing Customizing using transaction SMLT offers two options:
●
Basic mode
●
Expert mode
Based on feedback from experienced consultants, the expert mode is the recommended
procedure because fewer supplementation-related problems have been encountered.
For this, proceeds as follows:
1. When supplementing a logon client, first manually maintain it using Client Maintenance (in
transaction SMLT, select the line of the language in question and (from the menu) choose
Language → Special Actions → Client Maintenance). After confirming a popup, texts in
customizing tables will be copied in insert mode from client 000 to the current client .
2. For the language that is to be supplemented, choose Language → Special Actions
→ Supplementation (Expert).
3. In the dialog box that appears, enter a description of the supplementation. The description
is used to identify the supplementation on the overview screen of transaction SMLT.
4. In the Selection Conditions group box, you may specify conditions for selecting the
quantity of tables to be supplemented. The fields are predefined in accordance with SAP
recommendations and depending on the logon client. However, you can make changes as
appropriate. To do this, choose Select.
234
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
5. After you have specified a start time and, if desired, a target server, supplement the
language by choosing Execute. A background job is scheduled, which performs the
required steps.
An entry is made for the supplementation on the overview screen of transaction SMLT, which
you can manage and monitor by choosing the relevant icons. You can identify the status of the
action from the icon which appears at the start of the relevant line. To display more
information about the supplemented tables at any time, see the supplementation log. Each
line of the log contains the table name, status, client, and table supplementation mode first.
You then see statistics about the number of processed, inserted, and modified lines. A return
code and the table delivery class is also displayed. A green, yellow, or red traffic light appears
for each table that has been completely processed, depending on the return code. To display
the meaning of the return codes, choose the F1 Help for the return code column of the table.
The following rules apply to define supplementation logic:
●
●
●
Languages with a translation level 1 cannot be supplemented. If, however, these languages
need to be supplemented, see SAP Note 111750 – Supplementing German with English
(Customizing).
It is necessary to define a supplementation language for every language in the system
(except languages with a translation level 1).
You can only supplement text from a language with a translation level 1 or from a language
that has already been supplemented with a language with a translation level 1.
Note:
Check the profile parameter zcsa/second_language that specifies which language
is used as secondary language (that is, the language that is used in case of missing
translation). The default value for this parameter is D. The supplementation
language should be aligned with this parameter. So, if you want your
supplementation language to be English, change this parameter to E.
When supplementing (client-specific) customizing text using transaction SMLT, you can
choose from the following options (in expert mode, you can choose for every table
independently):
Insert only (Mode I)
Any gaps in the foreign language are filled with the supplementation language. This mode
does not change any existing entries.
Combined with RSREFILL (Mode 1)
This mode copies texts in the same language from client 000 before the
supplementation (see mode I above). This can overwrite previously supplemented texts.
The texts from client 000 are copied only if the corresponding texts match in the
supplementation language in the local client and in client 000 and if entry in the
reference language is identical in both clients. Therefore a reference language is required
as extra information. The comparison to the reference language ensures that only
semantically meaningful text lines are copied.
You can use this mode for client-specific Customizing tables only.
Combined with client maintenance (Mode 2)
© Copyright. All rights reserved.
235
Unit 6: Dealing with Aspects of Globalization
This mode also copies texts from client 000 before the supplementation. In contrast to
mode 1 above, in this case, however, all texts missing or supplemented in clients different
from 000 are copied. This mode is also only available for client-specific Customizing
tables. Compared to mode 1, more text lines in the target language are copied from client
000 to the current client but the risk of copying semantically incorrect lines increases.
Update allowed (Mode U)
This mode also overwrites existing entries. You should therefore use this mode for
special cases on certain tables, since it overwrites entries permanently.
Figure 141: Language Supplementation
You will find a general description of supplementation in SAP Note 1156507 – Language
supplementation, RSREFILL and client maintenance.
If you want to check an existing language import, read SAP Note 1159021 – Report
RSTLAN_LANGUAGE_CHECK.
Hint:
If the text in the role menus (SAP Easy Access) does not appear in the required
language after the upgrade or the import of a new language, see SAP note
538328 – Missing texts in user menu. This note contains the Z_ROLE_LANG_ADD
report which can be used to replace missing transaction and folder text.
Example
Assume that the following Customizing text already exists:
Table 6: Example of Supplementation of Customizing Texts
236
Client
Language
Description
000
EN
Company code
000
DE
Buchungskreis
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
Client
Language
Description
000
ZZ
Bucki
100
EN
Comp. code
100
DE
Buchungskreis
100
ZZ
<N/A>
The language-dependent text for the language ZZ in client 100 is missing. Assume that
language ZZ is to be supplemented with DE and that EN is selected as the reference language.
Then the supplementation behaves differently, as follows:
●
●
●
Combined with RSREFILL (Mode 1): Since the text of reference language EN in client 000 is
not the same as the text of language EN in client 100, the text of language ZZ is not copied
from client 000 to client 100. The text of supplementation language DE is therefore copied
from client 100. Result: Buchungskreis.
Combined with Client Maintenance (Mode 2): No reference language is compared. The text
of language ZZ is therefore copied from client 000. Result: Bucki.
Insert only (Mode I): The text from supplementation language DE in client 100 is simply
copied. Result: Buchungskreis.
Manual Translation
Due to connections between the translation tools and the Change and Transport System, it is
possible to create Customizing text in a unique system, include it in transport requests, and
distribute it in the system landscape in a targeted way. You can use transaction SE63 to
translate the remaining Customizing text and to record the translation activities in transport
requests. You can then distribute the transport requests in the system landscape using the
Transport Management System (TMS) (transaction STMS).
Deleting the Language Load
If language-specific text has been imported, filled, or deleted (for example, data element text,
screen text, or menu entries) and the obsolete or deleted text still appears on screen, the
reason might be that only the text in the database has been changed. Usually, such problems
should not occur because all language transport programs delete or invalidate the runtime
objects when text has been changed in the database. This means that the system regenerates
the load with the modified text automatically when the screen is next accessed. In rare cases,
however, the load is not deleted completely or correctly and the obsolete text is still
displayed.
To solve this problem, run report RSLANG20. Here you can select the load types to be reset
on the selection screen. For more information about the report, see SAP Note 110910 –
Deletion of language load.
Note:
For SAP S/4HANA, see also SAP Note 3082111 – General issues with displaying of
Fiori Tile Text like Tiles and Subtitles.
.
© Copyright. All rights reserved.
237
Unit 6: Dealing with Aspects of Globalization
Address Versions
Figure 142: Storing Address Versions
The worldwide use of SAP software means that different notations must be used. The
international address versions are attributes of the Business Address Services that allow the
printing of addresses in different country-dependent scripts. “Different scripts” are not
country-specific differences within character sets, such as umlauts in German or accents in
French, but rather scripts that consist of a completely different character set. The figure
above shows how storing address versions looks in the system.
When printing addresses, note that the script type of the addresses to be printed is
determined neither by the current logon language, nor by the logon language at the time when
the address was created. The international address versions allow you to print the same
address in different fonts (versions), depending on certain parameters. A Japanese address
should be output in Kanji if the country of the sender is also Japan, and in international script
if the country of the sender is not Japan (see SAP Note 316331 – International address
versions and its attachment).
The default version of an address can, in principle, be created in any of the permitted or
available script types. However, it is useful to create all default versions of addresses within an
installation in the same script to achieve uniform reporting.
Address versions are automatically available in all applications that use Business Address
Services. Address versions must match the relevant default versions semantically and only
represent one way of creating an address in multiple script types. Therefore, the details of the
address version must be consistent. For this reason, numerical fields of the address (such as
building number, postal code, and telephone numbers) are offered in the default version as
default values in the additional version. Changes to these fields are reflected in the default
version of the address. Only text fields can be maintained differently in the different versions.
Additional Information on Importing Additional Languages into an SAP System
For information about delivered languages, see the SAP Support Portal at http://
support.sap.com/globalization (or its successor).
In addition, the following SAP Notes might be helpful:
238
© Copyright. All rights reserved.
Lesson: Importing Additional Languages into an SAP System
●
SAP Note 1375438– Globalization Collection Note
●
SAP Note 73606 – Supported Languages and Code Pages
●
SAP Note 533888 –Example for Language Import and Error Specification
●
SAP Note 18601 – Frequently asked questions on language import
●
SAP Note 43853 – Consulting: Language-dependent and client-specific C-tables
●
SAP Note 980626 – SE63 Translation Transport
●
SAP Note 195442 – Language import and Support Packages
●
SAP Note 352941 – Consultation: Languages and Support Packages
●
SAP Note 2772594 – How to determine the supported languages for an Add-on or Support
Package
●
SAP Note 1000586 – How to analyze missing translations / missing texts
●
SAP Note 1156507 – Language supplementation, RSREFILL and client maintenance
●
SAP Note 1935497 – How to finish a language import by SMLT
●
SAP Note 2185213 – Configuration of logon languages and profile parameter zcsa/
installed_languages
●
SAP Note 2068675 – Extend Language Configuration [VIDEO]
●
SAP Note 2446912 – SMLT: Guided Answer for language installation and troubleshooting
●
SAP Note 2560644 – How to modify and customize object translation
●
SAP Note 2196392 – Common errors/warnings during language import
●
SAP Note 1508122 – Installation and troubleshooting of languages in SAP system
●
●
SAP Note 2456868 – Troubleshooting language installation and translation issues - CTSLAN-WIKI
SAP Note 3114994 – Installation of Languages on SAP systems
SAP Education Course ADM340 – Setting up Customer Translation Projects discusses
customer translation requirement, advises customers on the appropriate translation strategy,
discusses how to set up a translation project accordingly and how to configure the translation
environment.
SAP Community blog Installation of Languages on SAP systems (https://blogs.sap.com/
2012/12/10/installation-of-languages-on-sap-systems/ describes language installation on
SAP systems step by step).
For bi-directional texts – Left To Right and Right To Left, see the wiki page https://
wiki.scn.sap.com/wiki/display/ABAP/Bi-directional+texts+-+Left+To+Right+and+Right+To
+Left.
Finally, the WIKI on Language Transport (https://wiki.scn.sap.com/wiki/display/SL/
Language+Transport) is the place for resources and known issues related to the installation
of language packages in an SAP system.
© Copyright. All rights reserved.
239
Unit 6: Dealing with Aspects of Globalization
LESSON SUMMARY
You should now be able to:
240
●
Explain the use of multiple languages in an SAP system
●
Apply an additional language in an SAP system
© Copyright. All rights reserved.
Unit 6
Lesson 3
Addendum: Introducing Unicode
LESSON OVERVIEW
The lesson first explains the meaning of the terms code page and Unicode. Then it covers
different aspects of a Unicode conversion in the context of AS ABAP based SAP systems.
LESSON OBJECTIVES
After completing this lesson, you will be able to:
●
Define the terms code page and Unicode
●
Outline the procedure of a Unicode Conversion
Prerequisites and Terms
SAP translates its AS ABAP based products into approximately 40 languages (in AS ABAP
7.00). However, in non-Unicode systems, due to the technical limitations of code pages, only
certain language combinations can be used without restrictions. The options exist as follows:
●
Single standard code pages, which support certain numbers of languages: The number and
combination of the languages supported on one code page cannot be changed, but there
are no restrictions for users.
Hint:
As of AS ABAP 7.50, single code page systems are no longer supported. For
details, see SAP Note 73606 – Supported Languages and Code Pages (and its
attachments) and SAP Note 2033243 – End of non-Unicode Support: Release
Details.
●
Unicode, which enables just one single large code page to be used. Unicode includes all the
characters of the languages that are relevant for business worldwide.
© Copyright. All rights reserved.
241
Unit 6: Dealing with Aspects of Globalization
Hint:
As of AS ABAP 7.00, Unicode is used for all new installations. As of
SAP_BASIS 7.50, non-Unicode kernels are no longer offered. Therefore, as of
AS ABAP 7.50, only Unicode-based SAP systems are supported. For details,
see SAP Note 2033243 – End of non-Unicode Support: Release Details.
Unicode is the mandatory system type for SAP systems that use Java
applications (for example, Java EE applications, Web Dynpro Java
applications) and SAP ABAP systems that communicate using Java
components (for example, using the SAP Java Connector) and for all SAP
applications running in the cloud (such as SAP Success Factors of SAP
Business Technology platform). For more information, see SAP Notes 975768
– Deprecation of Java features with non-Unicode Backend and 1322715 –
Unicode FAQs.
The character set describes the storage of a character. The options are single-byte character
sets (one byte per character), double-byte character sets (one or two bytes per character),
and Unicode character sets (one, two, or more bytes per character). The code page
determines the assignment of a character to a hexadecimal value. Different standards are
available with regard to this, such as ISO and Microsoft. SAP uses its own four-digit
descriptions such as 1100 and 8500 (for non-Unicode).
The locale is a set of rules for a language. It describes the conversion of lowercase characters
to uppercase characters, if they exist. It is also responsible for national alphabetical sorting.
The name of the locale is constructed from <language>_<country>.<code page>, such as
ru_RU.ISO88595 for Russian, Russia, code page ISO8859-5.
The common character set is shared by all code pages. It contains the seven-bit US ASCII
characters (US7ASCII), that is, lowercase and uppercase letters from A-Z, the digits 0-9, and
the special characters ” . , + - ( ) < > : * (see the following figure).
Figure 143: Standard Code Page in an SAP System
The following table shows languages that are supported for non-Unicode systems (see also
table T002 in the SAP system). Languages that use the same code page can be used together
with no restrictions. English only requires seven-bit US ASCII characters, and can therefore be
242
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
combined with any other code page. However, English can only ever be used with one code
page at the same time.
Table 7: Supported Languages and Their SAP Code Page
Language
ISO 639-1 Language Code
SAP Language
Code
SAP Code Page (ASCII)
Afrikaans
AF
a
1100, 1610
Arabic
AR
A
8700
Bulgarian
BG
W
1500
Catalan
CA
c
1100, 1610
Chinese
ZH
1
8400
Chinese (traditional)
ZF
M
8300
Croatian
HR
6
1401
Customer Reserve
Z1
Z
N/A
Czech
CS
C
1401
Danish
DA
K
1100, 1610
Dutch
NL
N
1100, 1610
English
EN
E
1100
Estonian
ET
9
1900
Finnish
FI
U
1100, 1610
French
FR
F
1100, 1610
German
DE
D
1100, 1401, 1610
Greek
EL
G
1700
Hebrew
HE
B
1800
Hungarian
HU
H
1401
Icelandic
IS
b
1100
Indonesian
ID
i
1100, 1610
Italian
IT
I
1100, 1610
Japanese
JA
J
8000
Korean
KO
3
8500
Latvian
LV
Y
1900
Lithuanian
LT
X
1900
Malay
MS
7
1100, 1610
Norwegian
NO
O
1100, 1610
Polish
PL
L
1401
Portuguese
PT
P
1100, 1610
© Copyright. All rights reserved.
243
Unit 6: Dealing with Aspects of Globalization
Language
ISO 639-1 Language Code
SAP Language
Code
SAP Code Page (ASCII)
Romanian
RO
4
1401
Russian
RU
R
1500
Serbian
SR
0
1500
Serbo-Croatian
SH
d
1401
Slovak
SK
Q
1401
Slovenian
SL
5
1401
Spanish
ES
S
1100, 1610
Swedish
SV
V
1100, 1610
Thai
TH
2
8600
Turkish
TR
T
1610
Ukrainian
UK
8
1500
When different languages that belong to the same code page are used at the same time in an
SAP system, problems do not occur due to the character set.
A Code Page for All Characters: Unicode
In the past, Multi-Display, Multi-Processing (MDMP) and different character sets could be
used individually to cover every language that is relevant for business. However, difficulties
arose when you wanted to mix texts from different incompatible character sets in one SAP
system. Exchanging data between systems with incompatible character sets can also lead to
completely undefined situations.
Figure 144: Unicode: Example for Supported Languages
The solution is to use a standard that contains all characters of all languages that are relevant
for business. This standard is called Unicode (ISO/IEC 10646) and consists of one or more
bytes for each character. Every character has a unique representation (known as “Unicode
244
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
code point” with notation: U+nnnn where nnnn are hexadecimal digits). Using Unicode brings
significant advantages:
●
●
●
●
●
●
The entire Internet is based on Unicode so Unicode is a basic prerequisite for international
competitiveness.
SAP users who work in any number of languages can work in a centrally installed system
that covers business processes internationally.
Even companies with different distributed systems want to prepare consolidated
worldwide corporate information. Without Unicode, this is only possible to a limited extent.
Multiple languages can be used simultaneously on one front end.
Cross-application data exchange is possible without data loss due to incompatible
character sets.
Unicode is used by Cloud solutions.
Figure 145: Unicode Allows Languages from Different Code Pages on One Screen
Unicode is an international standard that assigns a unique number to every character from
the different languages and therefore makes the presence of multiple code pages in one
installation superfluous. With Unicode, all languages from the Unicode standard can be used
without restrictions. As the standard encoding of all Internet communication (HTML, XML,
Java, and so on), Unicode improves data communication across the boundaries of system
landscapes and paves the way for closer integration of ABAP with these Internet technologies.
At the same time, Unicode eliminates the risk of data loss due to code page incompatibilities.
Unicode is supported for all releases of SAP systems running on AS ABAP that are in
maintenance.
© Copyright. All rights reserved.
245
Unit 6: Dealing with Aspects of Globalization
Figure 146: Communication With and Without Unicode
Using non-Unicode code pages can cause restrictions, particularly when interfaces (such as
ALE, EDI, BAPI, RFC, CPI-C, and XML) are used. While a Unicode system can receive all
characters, a non-Unicode system may process characters from another code page
incorrectly. The interface of a non-Unicode system should therefore be restricted to receiving
data from its own code page only.
Note:
In the course of a system landscape conversion to Unicode, you will be
temporarily faced with a mixed landscape of Unicode and non-Unicode systems.
In addition, you may have third-party software which does not support Unicode at
all. As a special service, SAP communication interfaces enable communication
between Unicode and Non-Unicode partners. But nevertheless, SAP strongly
recommends converting all systems as soon as possible to Unicode. For more
details, see SAP Note 1990240 – Support of mixed landscapes (Unicode <=> NonUnicode).
Note:
Concerning the operation of SAP Fiori apps in a system landscape with a nonUnicode back end and a Unicode user interface (UI) front-end server, see SAP
Note 1978213 – SAP Fiori UI and non-Unicode back end.
SAP's aim is complete internationalization with Unicode and better integration of SAP
technology with other Internet technologies. All languages defined in ISO-639 and ISO 639-2
can be used as language tags in a Unicode system. It means that characters from practically
any language and any script can be stored in the database. However, this does not mean that
there are localized versions or translations for all languages. For more information, see SAP
note 73606 – Supported Languages and Code Pages and SAP Note 895560 –Support for
languages only available in Unicode systems.
Unicode can be implemented by different character encodings. Among others, the Unicode
standard defines UTF-8 and UTF-16:
246
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
UTF-8 uses one byte for the first 128 code points, and up to 4 bytes for other characters.
The first 128 Unicode code points are the ASCII characters; therefore an ASCII text is a
UTF-8 text. UTF-8 is widely used by websites.
●
UTF-16 uses two bytes (16 bits) for each character to encode the first 65,536 code points
and a 4-byte encoding for the other code points.
●
As of 2020, approximately 144.000 characters are defined in the Unicode standard, with
additional space for more than a million characters. Characters may be represented in bigendian or little-endian format, depending on whether bits or bytes or other components are
ordered from the big end (most significant bit) or the little end (least significant bit).
The following table shows the representation of some characters in the different UTF formats:
Table 8: Unicode: Representation of Characters in UTF-8 and UTF-16 – Examples
Character Unicode Codepoint
UTF-16 Big-Endian
UTF-16 Little-Endian
UTF-8
a
U+0061
00 61
61 00
61
ä
U+00E4
00 E4
E4 00
C3 A4
α
U+03B1
03 B1
B1 03
CE B1
U+3479
34 79
79 34
E3 91 B9
What Does Unicode Mean for an AS ABAP-Based SAP System?
For being Unicode-enabled, ABAP programs must be changed whenever an explicit or implicit
assumption is made about the internal length of a character. A new level of abstraction is
reached that allows the same programs to run both in a non-Unicode system and in a Unicode
system.
The average character length increases in the database when Unicode is used (compared to
the use of the Latin-1 code page alone). Therefore the hardware requirements also increase
with regard to CPU, RAM, database size, and network. The following figure summarizes the
hardware requirements (compared to a non-Unicode system based on a 1 byte code page).
© Copyright. All rights reserved.
247
Unit 6: Dealing with Aspects of Globalization
Figure 147: Unicode Hardware Requirements
Statistically, you should expect a Unicode system to have a database that is up to 30% larger
(depending on the Unicode representation, UTF-8 or UTF-16). This has direct consequences
for the time required for a data backup or a data restore in the case of an error. The larger
quantity of data means that to maintain the performance of the system, you should expect to
provide around 30% to 50% more CPUs, main memory (RAM), network bandwidth (between
database server and instances server), and so on.
Although the additional hardware requirements for Unicode-based SAP systems are
sometimes seen as a disadvantage, the obvious advantage is that the SAP system can
understand all the incoming characters, as seen in the figure “Communication With and
Without Unicode” above.
Unicode Conversion
It is relatively easy to convert an SAP system with just one code page (Single Codepage
system) to Unicode. It is considerably more difficult to migrate an MDMP system. For this
reason, the system should be converted to Unicode at an early stage, before different code
pages come into play.
The following figure shows the main phases of a Unicode conversion.
248
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
Figure 148: Unicode Conversion Process
As of SAP Web AS 6.10 (released in 2001), ABAP supports multi-byte coding of characters in
Unicode. Before that, only character sets that were based on single-byte code pages such as
ASCII and EBCDIC or double-byte code pages such as SJIS and BIG5 were used. The Unicode
conversion affects all statements for which an explicit or implicit assumption is made about
the internal length of a character. Programs that exploit the Unicode-enablement of the
runtime environment must be checked for such statements and converted if necessary. A
Unicode-enabled program that has been converted behaves the same way in Unicode and
non-Unicode systems. Programs can be prepared in a non-Unicode system before a Unicode
system is installed.
For this purpose, transaction UCCHECK exists in the SAP system to support this check.
Transaction SPUMG prepares the database tables of a non-Unicode system.
Note:
In an MDMP system, multiple code pages are used simultaneously. The logon
language determines the code page that is active for each user. As the active code
page changes again and again, tables that contain non-ASCII characters must
have a language key to ensure that data is processed with the correct language.
This is not, however, the case for all tables. The problem then is to determine the
code page from which individual pieces of data originate.
The following figure shows the default conversion method which is to export the entire
database using R3Load, create a new Unicode database and then import the database using
R3Load again. SAP Software Provisioning Manager (SWPM) is the tool to control R3Load and
perform the Unicode conversion.
© Copyright. All rights reserved.
249
Unit 6: Dealing with Aspects of Globalization
Figure 149: Unicode Conversion (without Upgrade)
During the Unicode conversion of an SAP database, text data from the code pages of the
original system is converted to Unicode. In an MDMP system, language key information must
be used during the conversion to avoid a wrong conversion.
It is possible that non-ASCII characters have been entered in tables without language keys, or
that the language keys are not available, for example in tables created by customers.
Converting tables of this type represents a problem. The phases of preparation and postconversion processing are used to avoid data loss in these situations.
The prerequisites for a Unicode conversion are as follows:
●
●
The target release of the SAP system you want to use must be based on Unicode.
Unicode is supported only for SAP Web AS 6.20 and above. Older systems must first be
upgraded to at least SAP Web AS 6.20; the preparation phase can be performed as of SAP
Web AS 6.10.
The process itself is as follows (see figure “Unicode Conversion Process” above):
1. Conversion preparation: Collect information about the database (language keys, tables,
and so on). This information is stored in a control file for each table in the database, and is
then stored in the control table. The conversion tools read the information from the
control table during the export and import. The information is also used during postconversion processing.
By performing this process, you prepare the database export and create the control files
for all tables in the database. The control files contain the information that is required to
ensure a consistent conversion to Unicode. The descriptions are stored in the control
table. Use transaction SPUMG to prepare for the conversion. To prepare for the conversion,
divide the tables into a number of categories:
●
250
Code page-dependent with language key: The table consists of text data that contains
non-ASCII characters.
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
-
-
●
Dependent on one code page: All rows in the table have language keys belonging to
languages that use the same code page. The entire table can be converted with one
code page.
Dependent on multiple code pages: The rows in the table contain language keys
belonging to languages that use different code pages. The table must be converted
with the help of multiple code pages.
Code page-dependent with no language key: The table consists of text data that
contains non-ASCII characters. The text data is therefore language-dependent. The
language key needs to be specified.
Hint:
System vocabulary: Words from code page-dependent tables without
language keys are entered in the system vocabulary. The scanner then
searches for the words in tables with language keys to determine the
correct code page.
●
ASCII: The table consists only of text data that contains ASCII characters. The table is
not language-dependent and it is therefore irrelevant which code page is used for the
conversion.
Caution:
Whereas no significant problems exist with single code page systems, this is
not the case with MDMP systems. In MDMP systems, you cannot
automatically determine the code page in which each database record was
entered. This means that time-consuming manual preparation is sometimes
required (for example, by native speakers of the respective languages) to
identify the language (and thus the code page) in which the individual
database records were created.
2. Conversion to Unicode: The database is exported, deleted, reinstalled as a Unicode
database, and re-imported from the export file. The actual conversion takes place during
the export. Information about the conversion is stored in a control table that is read by
R3Load during the export. The option of splitting tables into categories is only of interest
for MDMP conversions and not for single code page conversions.
3. Post-conversion processing: Use the information collected during conversion preparation
to repair data that was not converted correctly. To do so, use reports provided by SAP
(such as UMG_ADD_POST_STEP). In addition, for example you should check the RFC
Destinations in transaction SM59 to avoid problems with TCP/IP connections.
Most known errors concerning the Unicode conversion are described in the Unicode
Conversion Troubleshooting Guide which is attached to SAP Note 765475 –Unicode
Conversion: Troubleshooting.
Unicode and Upgrading
SAP no longer supports blended code pages for new installations. As of SAP ERP 6.0 (SAP
ECC 6.0), existing MDMP configurations and blended code pages that are part of an MDMP
configuration are no longer supported. They must be converted to Unicode before or during
© Copyright. All rights reserved.
251
Unit 6: Dealing with Aspects of Globalization
the upgrade. In addition, as of AS ABAP 7.50, SAP systems require a Unicode Kernel which
means that non-Unicode SAP systems are not supported as of AS ABAP 7.50.
The following figure shows the supported code page configurations depending on the SAP
R/3 / SAP ECC system release used. For more information, see SAP Notes 79991 – MultiLanguage and Unicode support of SAP applications, 540911 – Unicode restrictions for R/3
Enterprise, ECC 5.0, ECC 6.0 and 2033243 – End of non-Unicode Support: Release Details.
Figure 150: Code Page Support in Different SAP Releases (Example)
The conversion of single code page (SCP) SAP systems to Unicode is relatively simple and
requires only a few preparatory steps. The conversion of SAP MDMP systems is a complex
procedure that should not be undertaken without consulting the Unicode Conversion Guide.
Support from an experienced SAP consultant is also recommended.
The following list shows possible conversion paths.
Supported Unicode Conversion Paths
●
●
●
Unicode conversion without upgrade: start release is between (and including) SAP Web AS
6.20 and AS ABAP 7.40.
Use the Database Migration Option (DMO) of Software Update Manager (SUM): target
release is AS ABAP 7.40.
Combined Upgrade & Unicode Conversion (CU & UC): target release is AS ABAP 7.40 and
lower.
Note:
If possible, start the upgrade and the Unicode conversion as separate projects at
different times.
From a technical point of view, Unicode conversions and upgrades are two separate areas
that are initially independent of one another. If the release of your respective SAP system
already supports Unicode, you can carry out a Unicode conversion independent of an
upgrade. For more information, see SAP note 551344 – Unicode Conversion Documentation.
252
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
The question regarding Unicode conversion is often asked as part of an upgrade planned for
one of your SAP systems. If your system is a single code page system and your target release
supports Unicode, you should first carry out a Unicode conversion and then upgrade to your
target release as an independent project.
The Software Update Manager (SUM) is equipped with the feature Database Migration Option
(DMO). This option helps you avoid landscape changes (SID, host name). The SUM tool
combines all relevant steps for the in-place migration to SAP HANA: Unicode conversion,
upgrade, and migration. Further benefits include the reduced business downtime and the
remaining consistency of the source database so that a fast fallback is possible.
Note:
If the target release contains SAP_BASIS 7.50 and above, you must perform the
Unicode conversion standalone, before starting SUM.
Figure 151: SUM: Database Migration Option (DMO)
If you cannot follow this procedure, you can also perform the upgrade and the Unicode
conversion together during downtime (Combined Upgrade and Unicode Conversion). This
allows you to reduce the downtime of the production system, which can be longer if you carry
out the upgrade and conversion one after the other, as seen in the following figure.
© Copyright. All rights reserved.
253
Unit 6: Dealing with Aspects of Globalization
Figure 152: Combined Upgrade and Unicode Conversion
Hint:
The combined upgrade with Unicode conversion is not available for a target
release based on AS ABAP 7.50 and higher. For more information, see SAP Note
928729 – Combined Upgrade & Unicode Conversion (CU & UC).
Additional Information on Unicode
For more information on Unicode, the following SAP notes may be helpful:
●
●
●
●
●
●
SAP Note 765475 –Unicode Conversion: Troubleshooting (including a troubleshooting
guide as attachment)
SAP Note 1319517 – Unicode Collection Note
SAP Note 551344 – Unicode Conversion Documentation (including Unicode Conversion
Guides for MDMP systems)
SAP Note 1322715 – Unicode FAQs.
SAP Note 1051576 – Conversion of Single Code Page Systems to Unicode (including
Unicode Conversion Guides for single code page systems). Note that the Unicode
Conversion Guide is published in a separate version for all recent AS releases.
●
SAP Note 928729 – Combined Upgrade & Unicode Conversion (CU & UC)
●
SAP Note 2602070 – Troubleshooting Unicode Conversion and I18N issues: BC-I18-WIKI.
●
254
SAP Note 79991 – Multi-Language and Unicode support of SAP applications and 540911 –
Unicode restrictions for R/3 Enterprise, ECC 5.0, ECC 6.0 about Unicode availability
SAP Note 814707 – Troubleshooting for RFC connections Unicode/non-Unicode lists
problems with RFC data transfer between Unicode and non-Unicode systems
© Copyright. All rights reserved.
Lesson: Addendum: Introducing Unicode
LESSON SUMMARY
You should now be able to:
●
Define the terms code page and Unicode
●
Outline the procedure of a Unicode Conversion
© Copyright. All rights reserved.
255
Unit 6: Dealing with Aspects of Globalization
256
© Copyright. All rights reserved.
Unit 6
Learning Assessment
1. Which transaction can you use to check and import a local version into a system as an
add-on?
Choose the correct answer.
X
A SMLT
X
B SE63
X
C SAINT
X
D SPAM
2. What must be taken into account when importing an additional language into an SAP
system?
Choose the correct answers.
X
A After the actual import of the language package, language-dependent texts from
Support Packages that have already been imported must also be imported using
transaction SMLT.
X
B The Support Packages that had already been imported into the SAP system at the
time of the language import must be completely re-imported using transaction SPAM.
X
C Languages that are not completely translated require a supplementation language.
X
D All languages are already available in the database of the SAP system right after
installation and transaction SMLT is used to make them known in the system.
3. To prepare for the Unicode conversion, the database tables must be prepared in
transaction SPUMG and customer developments must be checked in transaction UCCHECK
before the conversion.
Determine whether this statement is true or false.
X
True
X
False
© Copyright. All rights reserved.
257
Unit 6
Learning Assessment - Answers
1. Which transaction can you use to check and import a local version into a system as an
add-on?
Choose the correct answer.
X
A SMLT
X
B SE63
X
C SAINT
X
D SPAM
Correct. You can use SAP Software Add-On Installation Tool (transaction SAINT) to check
and import a local version into an SAP system.
2. What must be taken into account when importing an additional language into an SAP
system?
Choose the correct answers.
X
A After the actual import of the language package, language-dependent texts from
Support Packages that have already been imported must also be imported using
transaction SMLT.
X
B The Support Packages that had already been imported into the SAP system at the
time of the language import must be completely re-imported using transaction SPAM.
X
C Languages that are not completely translated require a supplementation language.
X
D All languages are already available in the database of the SAP system right after
installation and transaction SMLT is used to make them known in the system.
Correct. After the actual import of the language package, both language-dependent texts
from Support Packages that have already been imported must also be imported using
transaction SMLT. In addition, languages that are not completely translated require a
supplementation language, for example to fill translation gaps.
258
© Copyright. All rights reserved.
Unit 6: Learning Assessment - Answers
3. To prepare for the Unicode conversion, the database tables must be prepared in
transaction SPUMG and customer developments must be checked in transaction UCCHECK
before the conversion.
Determine whether this statement is true or false.
X
True
X
False
Correct. Both steps have to run before the conversion takes place.
© Copyright. All rights reserved.
259
Glossary
Application Link Enabling
Technology for setting up and operating distributed
applications. Application Link Enabling (ALE)
facilitates the distributed, but integrated, installation
of SAP systems. This involves business-driven
message exchange using consistent data across
loosely linked SAP applications. Applications are
integrated using synchronous and asynchronous
communication - not by using a central database. ALE
consists of the following layers: Application services
Distribution services Communication services
Central System
In the case of systems linked with ALE, you
differentiate between the system in which the
distribution model of the data is managed, and the
linked (managed) systems. The managing system is
called the central system, and the linked systems are
called child systems.
Central User Administration
The management of users in a central system. A SAP
system group consists of multiple SAP systems with
multiple clients. The same users are often created and
the same roles assigned in each client. Central is
designed to perform these tasks in a central system
and distribute the data to the systems in the SAP
system group.
Data container with a particular format used for
exchanging data between SAP systems, and also for
exchanging data container data with non-SAP
systems. These data packages are sent by RFC. IDocs
are primarily used for exchanging data in an ALE
integrated system.
Internet Communication Framework
Environment for handling Web requests in ABAP work
processes of an SAP system (in its role as a Web
server and a Web client) The ICF is the bridge between
the kernel of the SAP system and the application
program written in ABAP. The ICF consists of ABAP
classes and interfaces, the objects and methods of
which can be accessed in a Web Dynpro ABAP
application, for example.
Internet Communication Manager
Component of the SAP architecture that allows the
ABAP based SAP system to communicate directly
with the internet. Technically, the ICM is a standalone
multi-threaded process that is started and monitored
by the ABAP dispatcher.
Internet Server Cache
A tool developed by SAP for software test automation.
Cache for response pages of the ICM. This stores
pages before they are sent to the client. The next time
that the relevant URL is called, as long as the expiry
time has not elapsed, the page is sent back to the
client directly from the ICM; in this case, it does not
need to be branched to the task handler and the ICF.
Enqueue Replication Server
Local Version
Component of Application Server ABAP that
replicates the lock table to prevent losing it if the
Standalone Enqueue Server fails. This ensures high
availability for the Standalone Enqueue Server. The
Replication Server runs on the ERS instance.
A business function subject to legal requirements of
an individual country / region, can be part of the
standard SAP system or available as add-on.
eCATT
Globalization
The combination of internationalization and
localization, which results in a product that is suitable
for use in different parts of the world.
ICF Recorder
Tool for recording and evaluating HTTP requests to
the ICF.
ICF Service
Links a certain URL (requested service of an SAP
system with AS ABAP) to an HTTP request handler of
the ICF (development objects).
OData
Standard that defines a set of best practices for
building and consuming RESTful APIs.
SAP Gateway
A technology framework enabling exposure and
simplified access to SAP software from any device or
environment using standard, open protocols. It opens
data and processes running on SAP applications for
software developers to create apps in different
environments and devices to engage many more
business consumers. Formerly called SAP NetWeaver
Gateway.
SAP Web Dispatcher
IDoc (Intermediate Document)
260
© Copyright. All rights reserved.
SAP solution for load distribution for HTTP(S)
requests. If an SAP system consists of multiple
instances, the SAP Web Dispatcher receives the
requests from the browser and forwards them to
the application server that currently has most
capacity. This simplifies administration since there
is only one entry point (IP address, HTTP(S) port,
and so on) to the SAP system.
SAPconnect
Interface for integrating external communications
with the SAP system. SAPconnect enables thirdparty vendors to connect their communication
servers to the SAP system. Among others,
SAPconnect allows you to use the communication
method STMP in the SAP system.
SAPUI5
UI development toolkit for HTML5 that supports
application developers in creating fast and easy
applications based on HTML5 and JavaScript.
Cryptographic protocol designed to provide
communications security over a computer network,
successor of Secure Socket Layer (SSL).
Unicode
A 16-bit character set that represents commonly
used characters, for example letters and digits, in
digital form. Unicode has a distinct advantage over
the 8-bit character set ASCII, in that it can render a
much larger set of characters. For example,
Unicode can represent over 30,000 distinct coded
characters, whereas ASCII can only represent 128.
Web Service
that defines a set of best practices for building and
consuming RESTful APIs.
WSDL
XML-based interface description language that is
used for describing the functionality offered by a
Web service.
Simple Mail Transfer Protocol (SMTP)
Standard for exchanging e-mails between servers
in the network. Mail clients use SMTP to send emails to a server, but not to receive e-mails.
Standalone Enqueue Server 2
Successor to the Standalone Server that also
provides the SAP lock concept in order to manage
simultaneous access to shared data. It is
implemented as part of a high availability solution in
AS ABAP. Together with the Message Server, the
Standalone Server runs on the ASCS instance.
System Data Container
The system landscape data of the system under
test is stored in the system data container SDC.
SDC lists the target systems and RFCs that are
used during creation and execution of test cases.
SDC is in the SAR file downloaded from SAP
Service Marketplace, and is stored in the customer
system automatically.
Test Script
Used to control the individual steps of an eCATT
test run. It consists of special commands from the
eCATT command set, however it can also contain
other elements, such as ABAP source code
sequences.
Transport Layer Security
© Copyright. All rights reserved.
261
Download