Web Client in ERP - Apollogic - SAP Consulting - Services ... · Web Client in ERP Supporting SAP...
Transcript of Web Client in ERP - Apollogic - SAP Consulting - Services ... · Web Client in ERP Supporting SAP...
White paper
1 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
General benefits are as follow:
The SAP ERP environment is more user-friendly
Training of new employees is easier and faster
To use SAP transactions in SAP Logon is unnecessary
Expansion of the SAP functionality on platforms such as Windows, Mac, Linux, iOS
More flexibility in customizing SAP ERP standards to users’ needs
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.
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
1 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
The new component The second step is the definition of the new Component in transaction SM34 in cluster
CRMVC_GIL_APPDEF. In a component definition table we add our previously characterized
class. This operation makes the Component visible and ready to use. In this transaction all
created components occur. Also, we might group several components here in one component
set. These components might be related to each other and connected with different objects and
their relations.
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.
White paper
2 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
White paper
3 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
White paper
4 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
Now we will redefine the method.
IF_GENIL_APPL_INTLAY~GET_DYNAMIC_QUERY_RESULT and run it with the code shown
below. The search_customers method is triggered and provides the selection parameters given
by the user and the number of maximum received hits. If the number of hits is greater than the
maximum, the list of customers will be reduced. In the case of not meeting any criterion, the user
receives a message to that effect on screen.
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.
White paper
5 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
Testing implemented method At this stage, the class is ready to use in the Web Client Component. Before using it in the
component creation, it is important to test whether the implemented methods work correctly. To
do this an appropriate tool is needed.
GENIL_BOL_BROWSER provides this opportunity. The browser enables the searching, creating
and editing of different objects in SAP. To start tests, type the name of the created component.
Secondly, select SearchCustomers from the list. For each search object query proper attributes
are provided and as output we get a list with matching objects. Next, give the dynamic query
parameters. Putting no parameters receives all the customers from the database. To see the
details click on the particular customer.
Thanks to the above tool it is possible to test other methods e.g. CREATE_OBJECT. Clicking on
the new root object button enables the creation of a new object. Moreover, after implementing
the child method it is possible to drill into the structure and see all relations that connect objects
with each other. The mentioned functions make the GENIL_BOL_BROWSER tool very useful
during tests and object management.
White paper
6 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
White paper
7 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
In the views section we can find all the pages used in our CPC.
Search view is responsible for conducting a search method
Result view enables the retrieval and displaying of search results
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.
White paper
8 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.
White paper
9 Columnar Databases and In-Memory technology become a basic priority in the speed of
work-data warehouses
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.