web client in erp - apollogic - sap consulting - services ... · web client in erp supporting sap...

12
Web Client in ERP Supporting SAP GUI

Upload: docong

Post on 28-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Web Client in ERP Supporting SAP GUI

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.