WHITE_PAPER_Web_Client_in_ERP
WHITE_PAPER_Web_Client_in_ERP
SAP ECC 6.0 EHP4 including the WEBCUIF enables the creation of Web-based applications,
which gives the SAP user a completely new experience. An experience, which we are all very
used to – a web browser. A configured Web Client User Interface Component makes SAP
transactions accessible through a web browser. The browser version of the SAP client has the
same capabilities as the desktop application, but it also has additional advantages that are
inaccessible for a SAP GUI. It is a role-based and user-focused solution dedicated to everyone
who needs SAP GUI capabilities, but only in a few areas, with quick access to information.
The aim of this article is to present the Web Client Component as an extension of SAP ERP
functionalities. In SAP CRM the Web Client feature is an inseparable part of the system.
Nowadays, it is unlikely that any SAP CRM users, even if they are not aware of it, can imagine
their every-day work without the support of the Web Client.
Starting from finance, through cash flow monitoring, human resource management, recruitment
and training, to sales and logistics, each company has its own SAP ERP business transactions
and market fields which it would like to improve and speed up. Before accessing all of them
through a Web Client it is recommended to analyze which modules and transaction are crucial
for every-day work. This approach helps to avoid any unnecessary costs concerning the
preparation of the Web Client component.
1 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
Advantages of using a Web Client
First of all, chosen, usually the most commonly used, transactions are gathered in one
view. Access to them is as easy as running application by clicking on a desktop
shortcut; the user does not need to type the code of a transaction. This allows an end-
user of the system an easy and intuitive way of managing transactions without needing
specialist knowledge of the complex structure of the SAP GUI application
Secondly, the interface of a Web Client is more user-friendly than a SAP GUI, so a new
user learns faster, which decreases the costs related to the employee’s training
Moreover, a Web Client is customized for the business user and presents a role-based
workspace that provides easy-to-use navigation and a personalized interface
Another advantage is the creation of work areas with predefined responsibilities
according to specific business roles
An object
In this section we will present the creation of a SAP ERP Web Client Customer Processing
Component (CPC). As an example, the table KNA1 which contains customers’ data was used.
Based on the data stored in it, the new Component is able to receive a result from a given query,
e.g. all customers with postal codes starting with 10, or other more complex searches.
We also created a Customer Object. Objects are the concept that represents the data structure
in the system. Objects have attributes that describe themselves and their associated procedures
are known as methods. The Program, which uses objects, may be viewed as a collection of
interacting objects. In our solution, the Customer Objects can interact with each other, which
means we can create new Customer Objects that represent data in the system (such as a row
from a table). The attributes the Customer Object receives are from fields in table KNA1. Each
object defined in the system is capable of receiving messages, processing data and sending
messages to other objects. Those methods represent transactions, which can be managed with
the Customer Data in the system. An Object might be seen as an independent machine with a
distinct role or responsibility. Some objects (such as dependent objects) can be closely
associated with other objects (depending on the data structure and/or attributes). The creation of
the Customer Object helps to develop above CPC and connect it with other Model Components
and their objects.
To create a Web Component we start by logging on to the SAP ERP system and the preparation
of a GenIL Component Model. Each Component Model needs its own class. This class and inner
methods are responsible for managing Customer Objects. The creation of a new class takes
place in transaction SE80 or SE24.
White paper
The new class is inherited from a super class, which is provided by the SAP GUI. In this case the
super class CL_WCF_GENIL_ABSTR_COMPONENT was our source. Thanks to this, the class
contains all the necessary methods to create a working Component. The key is to redefine
suitable methods from the super class to make our Component work correctly in the future. The
above methods tab includes functionalities responsible for creating, saving or editing objects.
Continuing in the SAP GUI, we move to the GENIL_MODEL_EDITOR transaction. Here we put
the new Component name. This transaction is responsible for creating new root objects,
dependent objects or access objects. They may all be linked through relations established
between them. The easiest way to see a hierarchy of connected objects, assigned methods and
relations is to scroll the object tree, visible on the left-hand side of the screen. Dependent objects
are usually strongly bonded with root objects and have similar attributes. The above transaction
also includes appropriate dynamic query objects, which support searches through objects.
Before creating the Customer Object, a new root object must first be created – Customer, which
does not depend on others. The creation of root objects is performed in the transaction SE11.
1 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
An important part of this process is the appropriate definition of structure of attributes and create
and key structures. They may contain all the components that are included in a database
structure (in this example the aforementioned table KNA1 was used), but usually this scope is
narrower. The structure of attributes may be used later to present customer details in a Web
Client page. Thanks to this feature we can decide which attributes will be accessible to the user.
Create structure defines, which attributes are required to create a new object. For our purpose
create and key structures ware defined the same.
During the process of structure creation it is important to establish the Table Types with a line of
these structures.
The component model is now ready to use. Finally, it is important to tick 'Webservice enabled'
and we can start to utilize our object for Web Client purposes. The creation of other root or
dependent objects follows the same procedure.
Implementation of methods
The next stage of our tutorial focuses on the implementation of methods.
To search customers we need to implement a GenIL query. For this purpose a helper class
(ZCL_CUSTOMERS_HELPER) with the added method SEARCH_CUSTOMERS was created.
2 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
The helper class is responsible for part of the functionalities used repetitively in a proper
component class. Below is attached an example of a search method which receives a list of all
customers which meet the criteria of the given query. If the query parameters are empty, the
method returns the list of all customers found in the database. We get the same result when
using the Web Client component.
All work concerning searching for a customer is done in the previously created
ZCL_ZGENIL_COMP_CUSTOMERS component class and the methods redefined in it e.g.
IF_GENIL_APPL_INTLAY~GET_DYNAMIC_QUERY_RESULT. This method converts the given
query into a string that is recognizable by a SQL query created in the helper class method
search_customers.
3 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
If we want to read about a selected customer, redefinition and the implementation of a proper
GET_OBJECTS method is needed. The simple read_customers method is based on a SQL
query which searches a given customer number in customer’s database. The result of the query
is saved in the method’s exporting parameter.
4 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
To redefine and implement the GET_OBJECTS method we utilize the previously created
READ_CUSTOMERS method. Its algorithm is as follows:
Retrieve an object from the received object list
Check if the object attributes are requested
If the attributes are requested, retrieve and set them on the current object
Check if the object relations are requested
If the relations are requested, retrieve the children from these relations
For each child repeat all the above steps
In this simple implementation, retrieving child objects and any relations connected with them is
unnecessary. After triggering the read_customers method, we just move to the next root object
and repeat the algorithm.
5 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
After testing, the next step is the creation of a CPC. At this stage we know that the implemented
methods work properly. To make them useful we need to create a CPC which is responsible in
the Web Client for presenting or printing the search results. Each component shown in the Web
Client must be created here. The CPC provides views, overview pages or view sets. It also
enables matching views in order to create one page or makes them visible as assignment
blocks.
The component contains three view options. The first is the component structure browser view,
where all of the created views are available. To distinguish views and match them in sets the
runtime repository editor is used. In the BOL model browser we can see the same picture of the
tree as in the GenIL Model Editor.
6 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
In the views section we can find all the pages used in our CPC.
In the search view we can find an event handler responsible for searching the customer
database. The event handler manages the search button role in the Web Client component
page. Here we applied the redefined GET_QUERY_RESULT method to get the result list with all
customers meeting selected parameters. Thanks to connection with result view the returned list
is displayed directly in a table view of the result page.
Finally, to start using our Web Component we need to create a proper business role or use an
already existing one and assign the component to it. Joining the CPC with the business role
enables it in Web Client, the same as in SAP CRM.
As is shown above, screen navigation is simple and easy to understand. The end-user does not
need to think too much about which transaction to select. Everything is available under one
customer, product etc. tab.
7 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
The Web Client Component allows for searches through the customer database. To do this the
user may define the selection criteria or browse the entire list of customers. Results of the
search are displayed in a table view, where the object’s attributes such as customer number,
name or city are visible.
On the top of the page the user has access to the selection parameters. If we are interested in
specified customer details, which appear on the result list, we only need to click on a customer
number to navigate to the details page. In additional, column actions enable operations such as
customer edition. Clicking on the edit customer button, we get access to the customer edition
page and we are able to change its parameters.
Below, the customer details page is shown. Besides the basic customer details, we can also see
two additional assignment blocks. The first one contains data associated with address details.
The latter presents data related to telephone details, such as: telephone number or fax number.
To display these two additional assignment blocks, firstly they need to be implemented.
For this purpose, separate components responsible for retrieving objects from the /BEV1/CLDEB
table (for telephones) and the ADRC table (for addresses) must be created. The steps are the
same as have been described during the implementation of the proper method for the table
KNA1 (Customers). As is shown below, the appropriate components and objects are attached to
the customer data edition overview page.
8 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
White paper
Other details, which can be modified within the customer edition page, are the city or the
customer’s last name. To do this we need to redefine and implement corresponding methods in
our component class such as LOCK_OBJECTS, CREATE_OBJECTS, MODIFY_OBJECTS and
finally SAVE_OBJECTS.
During the editing of the customer page, all changes may be canceled. To save them in the
database we need to click on the save button. To restrict access to the most crucial data it is
reasonable to define the scope of edition ability for each business role or user. It protects the
database from unauthorized edition or access.
Summary
SAP ERP Web Client components bring a great added value to many enterprises. With an
intuitive User Interface and eye-catching layouts, they are far less complicated to the users. This
solution also supports new employees and decreases the costs associated with their training.
Web Clients enable the creation of a role-based workspace and personalized interface suited to
the particular user. Additionally, thanks to the organization business roles, the scope of data
access can be defined, which supports the protection of the most crucial data from unauthorized
edition or access. Finally, they expand SAP GUI functionalities on platforms like Windows, Mac,
Linux, iOS.
Implementation of SAP ERP Web Client may entail some work to start with, but once done well,
brings a lot of profit in the near future. Our business experience confirms that companies, after
implementing the SAP ERP Web Client, appreciate the abilities and potential stand behind the
SAP ERP. They have achieved a lot of advantages and performed greater than competition.
9 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses