+ All Categories
Home > Documents > Thema: Generic Web-Service Adaptation for SAP’s Business Suite

Thema: Generic Web-Service Adaptation for SAP’s Business Suite

Date post: 12-Sep-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
113
1 Masterarbeit Generic Web-Service Adaptation for SAP’s Business Suite UI Framework Kai Hu Technische University Dresden Fakultät Informatik Institut für Systemarchitektur Lehrstuhl Rechnernetze Betreuender Hochschullehrer: Prof. Dr. rer. nat. habil. Dr. h. c. Alexander Schill Betreuer: Dipl.-Ing., Dipl.-Inf. Thomas Frambacher (SAP AG) Dr.-Ing. Gerald Hübsch Dr.-Ing. Thomas Springer Bearbeitungszeitraum: 01.04.2010 bis 30.09.201
Transcript
Page 1: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

1

Masterarbeit

Generic Web-Service Adaptation for SAP’s Business

Suite UI Framework

Kai Hu

Technische University Dresden

Fakultät Informatik

Institut für Systemarchitektur

Lehrstuhl Rechnernetze

Betreuender Hochschullehrer: Prof. Dr. rer. nat. habil. Dr. h. c. Alexander Schill

Betreuer: Dipl.-Ing., Dipl.-Inf. Thomas Frambacher (SAP AG)

Dr.-Ing. Gerald Hübsch

Dr.-Ing. Thomas Springer

Bearbeitungszeitraum: 01.04.2010 bis 30.09.201

Page 2: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

II

Selbständigkeitserklärung

Hiermit erkläre ich, dass die vorliegende Arbeit selbstständig, ohne fremde Hilfe

angefertigt wurde. Alle aus fremden Quellen direkt oder indirekt übernommenen

Gedanken sind als solche gekennzeichnet und im Literaturverzeichnis

aufgeführt.

Dresden, 28.09.2010

Page 3: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

1

Contents

Chapter 1 Introduction .......................................................................................... 1

1.1 Motivation ................................................................................................ 2

1.2 Structure of Thesis ................................................................................... 4

Chapter 2 Background & Related Work ............................................................... 5

2.1 Background .............................................................................................. 5

2.1.1 Introduction of SAP Business Suite & Web Dynpro technology ... 6

2.1.2 Introduction of Enterprise Service Oriented Architecture ............ 12

2.1.3 Introduction of Enterprise Services Repository ............................ 15

2.1.4 Introduction of SAP NetWeaver Process Integration (PI) ............ 17

2.1.5 Introduction of Floor Plan Manager Framework .......................... 21

2.2 Related Works ........................................................................................ 29

2.2.1 Consuming Web Services with Web Dynpro ABAP ................... 30

2.2.2 Consumption via SAP NetWeaver Composition Environment .... 32

2.2.3 Consuming Web Service via JDE EnterpriseOne Tools .............. 37

2.2.4 Dynvoker Approach ..................................................................... 40

2.3 Summary ................................................................................................ 43

Chapter 3 Design ................................................................................................. 45

3.1 Generic Adaptation Overview ................................................................ 46

3.2 Role Model ............................................................................................. 49

3.3 Main Concept of Generic Adaptation .................................................... 51

3.3.1 Acquisition of attributes ............................................................... 52

3.3.2 Field catalog creation .................................................................... 56

3.3.3 Consumption via Generic Adaptation .......................................... 59

3.3.4 Message-handling Class ............................................................... 66

3.4 Generic Adaptation for Synchronous Web Services .............................. 67

3.5 Generic Adaptation for Asynchronous Web Services ............................ 70

3.6 Analysis of automation for the three processes ...................................... 73

3.7 Summary ................................................................................................ 74

Chapter 4 Implementation ................................................................................... 75

4.1 Development environment ..................................................................... 76

4.2 Important field catalog types .................................................................. 77

4.3 Important methods within Generic Adaptation Interface ....................... 78

4.4 Implementation of Generic Adaptation Class ........................................ 80

4.4.1 Implementation of processes Acquisition of attributes & Field

catalog creation ...................................................................................... 81

4.4.2 Implementation of process Consumption via Generic

Adaptation section one .......................................................................... 84

4.4.3 Implementation of process Consumption via Generic

Adaptation section two .......................................................................... 86

4.5 Summary ................................................................................................ 88

Chapter 5 Evaluation ........................................................................................... 89

5.1 Synchronous Web Service via Generic Adaptation ............................... 90

5.1.1 Synchronous Web Service for List Generic UIBB ....................... 90

5.1.2 Synchronous Web Service for Search Generic UIBB .................. 93

5.1.3 Two synchronous Web Services for two Generic UIBBs ............ 96

Page 4: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

2

5.2 Asynchronous Web Service via Generic Adaptation ............................. 99

Chapter 6 Summary and Outlook ..................................................................... 102

6.1 Summary of the thesis .......................................................................... 103

6.2 Outlook ................................................................................................. 105

Bibliography ..................................................................................................... 107

Page 5: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

1

Chapter 1 Introduction

SAP solutions as the most popular software are affecting the business software

world. One of the SAP solutions, SAP Business Suite, is a bundle of business

applications that provides the integration of business information and processes,

collaboration, industry-specific functionality, and scalability. SAP UI framework

on the top of SAP Business Suite provides the user interfaces for the SAP

products belonging to SAP Business Suite, such as Human Capital Management,

Materials Management and Financial Services, etc. Floor Plan Manager

Framework as the standard UI framework for new SAP Business Suite

applications was introduced in 2006, and it has been widely used along with the

SAP Business Suite applications since.

Due to the benefit of Web Services compatibility for different platforms and

heterogeneous systems, the demand to adapt SAP Business Suite applications by

consuming Web Services is increasing. However the way to consume Web

Services within SAP UI framework needs lots of manually work. Therefore it

would be much better to enhance the consumption of Web Services by bridging

the gap between SAP standard UI framework and Web Services with a new

solution.

Page 6: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

2

1.1 Motivation

Floor Plan Manager Framework, based on Web Dynpro ABAP, is the standard

Business Suite UI framework for easy, efficient and highly-configurable

application development and adaptation. With the advantages below:

1. Easy configuration;

2. Dynamic behavior with coding possible;

3. Compliance with all UI guidelines guaranteed;

4. Modification free customers changes.

Floor Plan Manager Framework can achieve that customers are able to easily

adapt delivered UIs to their specific needs modification-free by simple UI

guidelines configuration, and also consistency across Business Suite applications

as well as 100% UI compliance can be guaranteed by means of predefined

components, which are all provided within Floor Plan Manager Framework.

On the other side, more than 5000 Web Services are published within SAP to

achieve the demand of compatibility. However, as the standard UI framework of

SAP Business Suite, Floor Plan Manager Framework consumes Web Services

needs lots of manually work, not only the coding work but also the configuration

work. Thus, the ability of Floor Plan Manager Framework to the consumption of

Web Services requires improvement. It means that it is better to introduce a new

solution based on the Floor Plan Manager Framework, which reuses the

advantages of Floor Plan Manager Framework and also provides a better

approach to consume Web Services within Floor Plan Manager Framework for

Business Suite applications.

In order to achieve the functionality with consumption of Web Services within

Floor Plan Manager Framework and bridge the gap between Floor Plan Manager

Framework and Web Services, there are two main problems to solve:

1. How to make the solution generic. Generic solution would be more

meaningful for users to consume Web Services within Floor Plan Manager

Framework. The users can consume any Web Services in the same way.

2. Secondly, how to integrate the consumption of Web Services into Floor Plan

Manager Framework. The idea is to provide a mechanism to map the attributes

of input and output parameters in the Web Services to Floor Plan Manager

Framework and easily for users to achieve their Business Suite applications.

This Thesis describes the solution with solving both of these problems and

introduces a solution, so called Generic Adaptation for Floor Plan Manager

Page 7: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

3

Framework to enhance the way of consuming Web Services for the Business

Suite applications. This Generic Adaptation also allows the enhancement of the

field for the usage of Floor Plan Manager Framework widely and the

enlargement of the potential users. Figure 1.1 shows the diagram of Generic

Adaptation with other entities. The Generic Adaptation is used as a bridge

between Web Services and Floor Plan Manager Framework. Generic Adaptation

handles the communication between both. Therefore, by enhancing the Floor

Plan Manager Framework with Generic Adaptation, users can achieve the

Business Suite (Web Dynpro) applications by consuming business models via

Web Services.

Web Services

Enabling

Web Services

Generic

Adaptation

Floor Plan

Manager

Framework

Web Dynpro

applications

Templates for Web

Dynpro applications

Business

Models

Figure 1.1: Diagram of Generic Adaptation

Page 8: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

4

1.2 Structure of Thesis

Chapter 2 describes the necessary background information. They are:

introduction of SAP Business Suite, introduction of Enterprise SOA,

introduction of Enterprise Service Repository, introduction of SAP NetWeaver

Process Integration and introduction of Floor Plan Manager Framework. The

second part of Chapter 2 introduces the related works, which already exist as

either products or scientific solutions.

Chapter 3 depicts the concept of the design of Generic Adaptation. It is mainly

comprised with role model, three processes of Generic Adaptation and two sub-

chapters with analysis of Generic Adaptation for synchronous and asynchronous

Web Services.

Chapter 4 gives the implementations based on the concepts and analysis from

chapter 3. And some important codes and defined types are presented here. The

chapter is focusing on the implementation of consumption of synchronous Web

Services via Generic Adaptation within Floor Plan Manager Framework.

Chapter 5 evaluates the implemented solution with different Floor Plan Manager

Framework components and with both synchronous and asynchronous Web

Services. And it also describes the drawbacks.

Chapter 6 concludes the Generic Adaptation. Based on the evaluations from

Chapter 5, the future work to enhance the solution is described also in this

chapter.

Page 9: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

5

Chapter 2 Background & Related Work

2.1 Background

This chapter provides a brief introduction to the important architectures and

technologies, which are provided by SAP and also the related products and

scientific solution, are described in this chapter.

First of all, the relationship between the technologies, architectures and the

Generic Adaptation is described here. The Generic Adaptation enhances the

functionality of consuming Web Services within Floor Plan Manager

Framework by providing a generic solution to achieve Business Suite

applications with Web Services. To achieve this goal, the important architecture

pattern is Enterprise Service Oriented Architecture (Enterprise SOA). And in

practical world, SAP NetWeaver Process Integration (PI) is implemented as

Enterprise SOA middleware, which is responsible for the transmission and

mapping of messaging within the Enterprise SOA.

Page 10: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

6

2.1.1 Introduction of SAP Business Suite & Web Dynpro

technology

This subchapter describes the concept of SAP Business Suite and Business Suite

applications in the first part. The second part depicts the basic UI technology,

which is Web Dynpro technology. Especially, the Web Dynpro ABAP is used as

basic UI technology for Floor Plan Manager Framework.

As one of the most important SAP solutions, SAP Business Suite is based on

SAP technology platform called SAP NetWeaver, which is the basis in all SAP

solutions. SAP Business Suite offers users an opportunity to improve business

processes efficiently and integrate business processes that enable them to

compete more effectively in their industry. [1] Integrated enterprise applications

delivered with SAP Business Suite enable enterprises to execute and optimize

business and IT strategies. Also SAP Business Suite enables the users to perform

essential, industry-specific, and business-support processes with modular

solutions that are designed to work with other SAP and non-SAP software. [1]

Figure 2.1 shows the technology stack of the SAP Business Suite and the SAP

Business Suite products.

SAP NetWeaver

SAP Business Suite

SAP

ERP

SAP

CRM

SAP

PLM

SAP

SCM

SAP

SRM

Figure 2.1: SAP Business Suite

Page 11: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

7

In the Figure 2.1, SAP Business Suite is a summarization of five SAP Business

Suite products, including:

Enterprise Resource Planning (SAP ERP);

Customer Relationship Management (SAP CRM);

Supply Chain Management (SAP SCM);

Supplier Relationship Management (SAP SRM);

Product Lifecycle Management (SAP PLM);

Web Dynpro is the UI technology for SAP Business Suite. Besides classic UI

technologies such as SAP Graphical User Interface (GUI) [5] or Business Server

Pages, [6] Web Dynpro ABAP as basic UI technology to represent the

NetWeaver application is mainly used for the Floor Plan Manager Framework. It

consists of a runtime environment and a graphical development environment

with special Web Dynpro tools that are integrated in the ABAP Workbench.

ABAP Workbench integrates graphical development environment in the SAP

systems. [7]

With it, the ABAP Workbench enables to develop, modify, test, and manage

client/server applications written in ABAP language, which is the programming

language special used within SAP. SAP Web Dynpro ABAP, which is Web

Dynpro technology special for ABAP language, is an important technical tool in

the development environment of web-based user interfaces. [4] Web Dynpro

ABAP offers the following advantages for application developers:

● The use of declarative and graphical tools significantly reduces the

implementation effort;

● Web Dynpro supports a structured design process;

● Strict separation between layout and business data;

● Reuse and better maintainability by using components;

● The layout and navigation is easily changed using the Web Dynpro tools;

● Automatic data transport using data binding;

● Automatic input check;

● User interface accessibility is supported;

● Full integration in the reliable ABAP development environment. [4]

Moreover Web Dynpro applications, or Business Suite applications based on

Web Dynpro ABAP, are built using declarative programming techniques. It

means that the users can specify which user interface elements they wish to have

Page 12: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

8

on the client and where those elements will get their data from. They also can

define the possible navigation paths declaratively in their Business Suite

applications. All the code to create the user interface is then generated

automatically within a standard runtime framework.[2].

Web Dynpro is also designed to support structured development. The software

modularization units are Web Dynpro components, which can be combined to

build complex applications. This helps Floor Plan Manager Framework to

reduce the redundant programming work for the users. All Web Dynpro

applications are constructed from the same basic units. [2]

Based on all these advantages provided from Web Dynpro, the Business Suite

applications are easily adjusted by configuring the underlying Web Dynpro

components and not by additional programming. Floor Plan Manager

Framework also gets benefits from the Web Dynpro adjustments. More details

are mentioned in the chapter 2.1.5 introduction of Floor Plan Manager

Framework.

Web Dynpro is also a client-independent programming model of the SAP

NetWeaver technology platform for developing user interfaces for professional

business applications. It is based on the Model View Controller (MVC) paradim

which ensures that the business logic is separated from the presentation logic. [8]

Model forms the interface to the back end system and thus enables the

Web Dynpro application access to data;

View is responsible for the representation of the data in the browser;

Controller lies between the view and the model. The controller formats

the model data to be displayed in the view, processes the user entries

made by the user, and returns them to the model. [8]

Figure 2.2 describes the Web Dynpro application MVC programming model.

Page 13: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

9

Figure 2.2: Web Dynpro application MVC programming model [2]

Web Dynpro component is the most important part for Web Dynpro MVC

model. It allows structuring complex Web Dynpro applications and developing

reusable entities. Web Dynpro components are containers for other entities

related to the user interface and Web Dynpro program. [2] Figure 2.3 shows the

structure of Web Dynpro component.

Page 14: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

10

Figure 2.3: Web Dynpro component [2]

Figure 2.3 describes that the entities related to the user interface of Web Dynpro

application are windows and views. The layout of a view is the rectangular part

of a page displayed by the client. The view contains user interface elements such

as input fields and buttons. The complete page sent to the client can be set up by

only one view, and can also be a combination of multiple views. The possibility

of combinations of views and the flow between the views is defined in a

window. [2]

A window can contain any number of views. A view can be embedded in any

number of windows. Both views and windows are integrated into Floor Plan

Manager Framework.

Inside Web Dynpro, programming part is located in Web Dynpro controllers.

Global variables of controllers are defined as controller attributes. Global data

related to the user interface, which is displayed by elements on the user interface

or used to manipulate user interface element properties, has to be stored in a

hierarchical storage called Web Dynpro context. The context is structured for

hierarchical data storage, stores data related to the user interface and also stores

the data transporting between the controller. The values of user interface

elements that allow user input have to be connected to the context attributes of

the corresponding Web Dynpro Component controller. This is called data

binding. Through data binding, an automatic data transport between the user

interface elements and the context attributes is established. [9]

Page 15: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

11

The variables defined in a Web Dynpro controller context can be referenced

from other Web Dynpro controllers. This is called context mapping. Context

mapping allows to share common attributes between different controllers, so

copying these attributes between the controller contexts is not necessary. So with

these two concepts, data transport between user interface elements located in

different views can be defined in a purely declarative way. [9] Web Dynpro

MVC model is the basis for Floor Plan Manager Framework. The Floor Plan

Manager Framework is implemented as Web Dynpro ABAP component and

integrated into the Web Dynpro ABAP development environment.

Page 16: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

12

2.1.2 Introduction of Enterprise Service Oriented Architecture

Enterprise Service Oriented Architecture (Enterprise SOA) is an important

architecture pattern, which is Service Oriented Architecture (SOA) merged with

SAP NetWeaver platform. Enterprise SOA describes the information about how

to publish and consume the thousands of Enterprise Web Services (Web

Services in short) within SAP.

SOA is also an architectural pattern, which requires all exposed functionality to

be published as services in a platform-independent manner. In any SOA-based

environment, it is possible to delivery loosely coupled and interoperable

application services based on Web Services standards that operate independently

of the underlying platform and programming language. [13] The individual

software components may be implemented in different programming languages.

For example, one software component might provide a service that is

implemented in Java and is accessed by another software component or service

that is implemented in ABAP or C#. Industry standards, for example WSDL for

Web Services, define the way in which the service is accessed. In this manner,

each software component or service encapsulates and therefore hides the vendor-

specific, language-specific implementation from the calling software component

or service. [13]

Besides the descriptions above, SOA has also another two advantages. One is the

strict separation of the service implementation with its publicly available

interface. SOA defines a communication endpoint, where the service provider is

published as a service description in a service registry. And the other one is that

SOA also represents a contract between the service provider and service

consumer. [13] For each service consumer, it can have several logical ports, and

each logical port is used to connect with an endpoint with a service provider.

Figure 2.4 shows the difference between SOA and Enterprise SOA.

Page 17: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

13

Figure 2.4: SOA & Enterprise SOA [3]

Compared with SOA, Obviously, Enterprise SOA has well organized repository,

which is called Enterprise Services Repository (ESR). And Enterprise SOA is

not only inherits the mechanism of providing the pair of communication

endpoint and logical port at both service provider part and service consumer

part, also Enterprise SOA is based on SAP NetWeaver platform and includes

business semantics. The design of Generic Adaptation is based on the Enterprise

SOA.

Figure 2.5 is the SAP Enterprise SOA Infrastructure. With Enterprise SOA, Web

Services are loosely coupled, so that they can communicate and interoperate to

each other. Enterprise SOA allows integrating the functionalities of both non-

SAP and SAP systems into service-based solutions. These systems can be

running on the SAP NetWeaver platform, as represented by the Partner and SAP

application boxes. They can also be running on other platforms, as represented

by the Legacy Third Party and SAP R/3 system boxes. [13]

Page 18: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

14

Figure 2.5: SAP Enterprise SOA Infrastructure [13]

Page 19: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

15

2.1.3 Introduction of Enterprise Services Repository

The most important part of Enterprise SOA is Enterprise Service Repository

(ESR). Enterprise SOA builds new or extends existing business applications in

SAP using independent building blocks. These building blocks, including

business objects, enterprise services, and process components, both SAP

supplied and custom-built, are stored in a central shared repository that is ESR.

ESR is a design-time tool that is the central place where the Enterprise SOA

element definitions are stored and maintained. [13] Each Web Service is defined

within ESR, and the ESR provides a pair of service interfaces for each Web

Service. The service interfaces are outbound service interface and inbound

service interface. All the Web Services can be extracted by connecting the

service interfaces, as showed in the Figure 2.7.

Enterprise SOA elements described below are defined in the ESR. For each Web

Service, there are four important elements at least are needed to be defined in the

ESR. They are Data types, Message Types, Operations and Service interfaces.

All these Data types, Message types and Operations’ metadata are encapsulated

with the Service Interfaces. Operations are the functions, which can be carried

out by the Web Services. The Operations can be synchronous or asynchronous

communications. Message Types are special within SAP Enterprise SOA. The

Message Types are used to identify what kind of Operations within the same

Service Interface. However inside SAP, all the Web Services can be connected

via Service Interfaces from the ESR, and the conversation can be done

automatically via Enterprise SOA.

Data types: Basic elements that are used to construct Web Services,

business objects, and interfaces. For example, to define data types such

as city, ZIP code, street, and house number that are used to construct a

customer or supplier address.

Message types: XML entities that are the design-time representation of

messages that describe the communication messages that are sent by

Web Services.

Operations: Synchronous or asynchronous actions that Web Services can

perform at runtime. For example, to define a material available check

operation, is a synchronous action that is performed by the purchase

order completion step in a process.

Service interfaces: Metadata descriptions of messages and operations that

are used at runtime. One example is the service interface that is used to

generate a WSDL document.

Business objects: Identifiable business entities such as a material or a

sales order that can have a logical relationship with other business

objects. Business objects are used to ensure orderly development and

generate Web Services. [13]

Page 20: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

16

The ESR holds all Enterprise SOA artifacts and also allows the users to

understand the dependencies between those elements in the ESR. [3] The ESR is

complemented by the Services Registry (SR) [10], which is the directory for all

service definitions and callable service endpoints available in the SAP systems.

Service providers publish their ready-to-use Web Services to the SR, consumer

applications retrieve the definitions from there. Thus the SR allows to categorize

and organize Web Services based on naming standards and classifications, to

browse and search for Web Services, access control of assets in the registry so

that only authorized users are able to publish, search, and view Web Services,

and labeling of Web Services and classification of providers and consumers, thus

providing a different view of the Web Services to the different classes of service

consumers.

Within SAP, ESR and SR are both supported in two different infrastructures.

They are SAP NetWeaver Process Integration and SAP NetWeaver Composition

Environment:

SAP NetWeaver Process Integration: With ESR to model the business

processes and design the service interfaces, data types and the message

exchanging.

SAP NetWeaver Composition Environment: Not focus on process

integration, the ESR and SR provide the capabilities for the service

providing and consumption.

Page 21: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

17

2.1.4 Introduction of SAP NetWeaver Process Integration (PI)

SAP NetWeaver PI is SAP’s implementation of Enterprise SOA middleware and

facilitates the integration of business processes that span different departments,

organizations, or companies. [11] SAP NetWeaver PI is not focusing on the

inner life of the individual process components or how the business logic is

implemented within a process component but rather on how the process

components exchange data with each other. Process integration is all about the

choreography of data exchange between process components. [11]

Within SAP NetWeaver PI, the most important part is the way to communicate

with each other between different systems and exchange the data. There are two

main approaches. If one system calls another using a remote function call, then it

is named Point-to-Point or Direct communication. If there is a central instance

interconnecting the systems, then it is called Mediated communication.

Compared to the Point-to-Point communication, the number and arrangement of

connections remains manageable within Mediated communication. However the

mechanism of providing a pair of communication endpoint and logical point for

both sides is also remaining within SAP NetWeaver PI. Below Figure 2.6 show

the differences of both communications.

Integration

Server

Figure 2.6: P2P on the left & Mediated communication on the right

Both Point-to-Point communication and Mediated communication are widely

used. For example, for synchronous Web Services, they are mostly using Point-

to-Point communications; for asynchronous Web Services, they can use both of

them.

There is a protocol, called eXchange Infrastructure (XI) protocol, is responsible

for the exchanging XML messages between different systems or environments.

Page 22: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

18

SAP XI protocol is based on general standards so as to enable external systems

to be integrated by providing a pair of proxy classes at both sides. The proxy

classes called Proxy Provider Class are used to communicate with the provider

via the endpoint and guarantee the mapping and exchanging of data with

provider. The proxy classes called Proxy Consumer Class are responsible to

communicate with the consumer via logical port and guarantee the mapping and

exchanging of data with consumer.

Within SAP NetWeaver PI, both of the proxy classes require to be generated

together with the creation of endpoint and logical port. The Proxy Provider Class

is generated at the service interface when the Web Service is published into

ESR. Also the endpoint of this Proxy Provider Class is created together. Then,

the Proxy Consumer Class is generated based on the WSDL, which is provided

by the Proxy Provider Class, and then the consumer creates the logical point

based on the created Proxy Consumer Class. Finally, both of the proxy classes

are connected via the endpoint and logical port with the Web Service.

At the center of the Mediated communication is an XML-based communication

that uses Hyper Text Transfer Protocol (HTTP). The application-specific

contents are transferred in messages in user-defined XML schema from the

sender to the receiver using the Integration Server. Senders and receivers that

exchange messages using the Integration Server are separated from one another.

This separation makes it easier to connect systems that are technologically

different. Every system that can exchange messages with the Integration Server,

which is showed in the Figure 2.8, can also exchange messages with all other

systems that are connected to the Integration Server. [12]

Figure 2.7 shows the way to consume Web Service under the help of SAP

NetWeaver PI in SAP Web Application Server in ABAP. As mentioned from

Chapter 2.1.3, the consumption is done bypassing service interfaces of ESR and

the use of proxy classes at both sides. A XI format message created by outbound

service interface will be sent to the Integration Server via the logical point of

Proxy Consumer Class. On the other hand, there is a Proxy Provider Class,

which will be generated at the inbound service interface. It receives and

exchanges the messages in XI format from the Integration Server and converts

the data into the required format in the Web Application Server. Then the

communication is established.

Page 23: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

19

Outbound

Service Interface

Inbound

Service Interface

Consumer

Proxy

Provider

Proxy

SAP NetWeaver

Application Server - ABAP

SAP NetWeaver

Application Server - ABAP

ABAP

Application

ABAP

Application

Enterprise Services Repository

ABAP Proxy Generation

Web Service Runtime

Figure 2.7: Enterprise Services Repository & Proxies

Figure 2.8 shows the way to use XI protocol to communicate with two SAP Web

Application Servers via Integration Server, which is included within SAP

NetWeaver PI. The Integration Server exchanges messages based on the help of

proxy classes, sending messages to the Integration Server, using the Proxy

Consumer Class and providing a Web Service on the SAP Web Application

Server which can be addressed by messages from the Integration Server, using

the Proxy Provider Class.

Page 24: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

20

Integration Server

Proxy

Consumer

Class

Web Service

Framework

SAP Web AS SAP Web AS

Proxy

Provider

Class

Web Service

Framework

XI

prototol

SOAP

Figure 2.8: Communication using Web Services

For consuming asynchronous Web Services with Point-to-Point communication,

the WS-RM protocol [13] is needed. It is very important to guarantee that the

request of message is sent and only once, when consuming the asynchronous

Web Services. The WS-RM protocol, so called Web Service-Reliable Messaging

protocol, is introduced to guarantee the reliable sending and only once.

Within SAP NetWeaver PI, SOA manager is the tool, which is used to configure

the proxy classes by creating the endpoint for the Proxy Provider Class and also

the logical ports for the Proxy Consumer Class. When the logical port is set to

the relative endpoint, the trace between both proxy classes is established.

Therefore, with SAP NetWeaver PI, the communication of the providers and

consumers of Web Services is successfully guaranteed across the entire IT

landscape, including providing access to legacy systems and Business-to-

Business protocols more quickly and easily. [15]

Page 25: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

21

2.1.5 Introduction of Floor Plan Manager Framework

Floor Plan Manager Framework, based on Web Dynpro ABAP technology, is

the standard UI Framework for SAP Business Suite applications. Floor Plan

Manager Framework, which provides the components, such as floorplans, UI

Building Blocks as templates and also the Configuration Editor as configuration

tool, is used to create Web Dynpro applications within SAP Business Suite. [14]

Figure 2.9 shows the Floor Plan Manager Framework within Business Suite.

End User

Administrator

Developer

Web Dynpro ABAP Application

Floor Plan Manager Framework

Business Logic

Business Data

Business Suite

Floorplans Configuration Editor

GUIBBs

Figure 2.9: Floor Plan Manager in the SAP Business Suite

Floor Plan Manager Framework is based on Web Dynpro ABAP that provides a

framework for developing new Web Dynpro ABAP application floorplans

Page 26: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

22

consistent with SAP UI guidelines. Floor Plan Manager Framework currently

supports the users in creating and configuring user interfaces with the following

floorplans, which can be configured using the Floor Plan Manager Configuration

Editor [14]:

Object Instance floorplan (OIF)

Guided Activity floorplan (GAF)

Overview Page floorplan (OVP)

And Floor Plan Manager Framework supports also the following floorplan areas:

Identification Region (IDR)

Message Region (MR)

Context Navigation Region (CNR)

Roadmap Element

Floorplans are design templates for applications. Thus, using floorplans can

improve the uniformity and the usability of applications. In the Web Dynpro

ABAP, floorplans are implemented as separate, highly configurable Web

Dynpro components that serve as main components in the Web Dynpro

applications. The Floor Plan Manager Framework for Web Dynpro ABAP is a

framework consisting of these highly configurable Web Dynpro components.

This allows combining multiple views of one or more Web Dynpro components

to a new Floor Plan Manager Framework application. [4]

Object Instance floorplan (OIF): The OIF usually describes several view

tabs, and a defined business object type determines those contents and

the distinctive tasks based on the users’ needs. Figure 2.10 shows the

example of Object Instance floorplan, named Flight Overview:

Figure 2.10: Example of OIF

Guided Activity floorplan (GAF): The GAF is a floorplan for an activity

that can be divided in a logical sequence of steps. It consists of a series of

Page 27: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

23

screens that guide the user through an activity to achieve a specific goal.

A roadmap provides a visual representation of the whole activity to the

user. [4]

Overview Page floorplan (OVP): The OVP is quite similar to OIF but

comprised with Assignment Blocks. But the main difference is that OVP

is focusing on Objects only and it doesn’t have any view tabs like OIF.

Figure 2.11 shows an example of OVP, named Business Partner Query

with two Assignment Blocks.

Figure 2.11: Example of OVP

Besides these floorplans above, Floor Plan Manager Framework also provides

UI-Building-Blocks (UIBBs) as design templates. UIBBs are contents to

comprise floorplans. UIBBs include Freestyle UIBBs and Generic UIBBs.

Freestyle UIBBs are normal UIBBs, in which the users can create the layout in

freestyles. Generic UIBBs are UIBBs with standard predefined layouts. And

Generic UIBBs support the users in creating and configuring application-specific

views. In the Figure 2.11, there are two Generic UIBBs in the OVP floorplan,

which are Generic UIBB for Search on the top and Generic UIBB for List on the

bottom.

The Freestyle UIBBs and also Generic UIBBs within Web Dynpro applications

are realized as Web Dynpro components. Generic UIBBs are centrally provided

UIBBs, where the Web Dynpro applications only need to define the business

logic as field catalog and input parameter in flat structure for Generic UIBBs.

And Generic UIBBs works with only flat structures. Therefore, all the field

Page 28: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

24

catalogs and input parameters require to be defined in flat structures within

Generic UIBBs. For example, Figure 2.11 includes two Generic UIBBs, and one

is a Generic UIBB for List on the bottom. Inside this Generic UIBB, there is a

field catalog, which comprises with five fields. Figure 2.12 shows the flat

structure for this field catalog in the Generic UIBB for List.

Structure of Field

Catalog

Company Name

First Name

Last Name

Legal Form

Partner ID

Figure 2.12: Example of flat structure for field catalog

A field catalog is a list of fields with certain types to define a certain type and

provides a certain interface for Generic UIBBs. Then Generic UIBBs can

communicate with these fields via the certain interface. Input parameters are

special field catalogs only for the input attributes. Both of field catalog and input

parameters are defined and configured at design time. For example, in the Figure

2.11, the Generic UIBB in the bottom comprised one field catalog, which is

showed as a table. This field catalog contains five different fields. All the fields

are defined from the business logic at design time.

Floor Plan Manager Framework and the Web Dynpro application components,

which include the Generic UIBBs, communicate via Floor Plan Manager

Interfaces during the floorplan event loop. The floorplan event loop comprises

with a sequence of predefined methods belonged to a class, so called feeder

class, that starts when the instance of floorplan is instantiated at runtime.

The predefined methods are defined in the Floor Plan Manager Interface, which

are triggered during the floorplan event loop. Feeder classes supply the specific

information for the UIBBs within the Web Dynpro applications by implementing

the Floor Plan Manager Interface together with the predefined methods at

runtime. For example, the definition of field catalog within the UIBBs is defined

with the GET_DEFINITION method in the feeder classes. And the method

GET_DATA determines the concrete values for the fields in the field catalogs

within the UIBBs. Table 2.1 and table 2.2 depict the examples above based on

the Generic UIBB in the Figure 2.11 on the bottom.

Page 29: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

25

Method of Feeder

Class

List Generic UIBB

GET_DEFINITION

Table 2.1: Example of GET_DEFINITION method within feeder class

Within Table 2.1, the diagram depicts the defined field catalog in the Generic

UIBB for List by implementing the predefined method GET_DEFINITION in

the feeder class. The definition for the field catalog is defined within feeder class

at design time.

Method of Feeder

Class

List Generic UIBB

GET_DATA

Table 2.2: Example of GET_DATA method within feeder class

The diagram in the Table 2.2 depicts the field catalog with the concrete values

by implementing the predefined method GET_DATA in the feeder class at

runtime.

Therefore, feeder classes provide all the necessary application-specific

information to the Generic UIBBs by implementing the Floor Plan Manager

Interfaces for the Generic UIBBs. All the necessary methods, such as

GET_DEFINITION and GET_DATA, and corresponding signatures are used to

achieve the standard communication between the Web Dynpro applications and

the Generic UIBBs within feeder classes. The communication embraces:

Web Dynpro application definition: for example, data definition,

structure or table definitions and the technical aspects;

Possible default layout information and the corresponding field

dependencies;

The action definition based on metadata from Business logic;

The action or event handling and data is forwarding to the underlying

application model. [17]

Page 30: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

26

The most common predefined methods within feeder classes are described below

for UIBBs.

AFTER_FAILD_EVENT

FLUSH

NEEDS_CONFIRMATION

PROCESS_BEFORE_OUTPUT

PROCESS_EVENT:

It is the main method within feeder classes. For example, in Search

Generic UIBBs, the method of PROCESS_EVENT checks the input

value for the search criteria from the end user and stores them inside

its parameter for further functions.

Right now, Floor Plan Manager Framework supports three kinds of Generic

UIBBs to cover the most important use cases. They are:

Form Generic UIBB:

Input parameter;

Result field catalog;

Search field catalog (optional);

List Generic UIBB, as showed in the Figure 2.11 on the bottom:

Input parameter;

Result field catalog;

Search Generic UIBB, as showed in the Figure 2.11 on the top:

Search field catalog;

Result field catalog;

Input parameter (optional).

Except the predefined methods above for UIBBs, there are several other methods

defined for different feeder classes by different Generic UIBB interfaces. They

are:

GET_DEFINITION:

Defines the field catalogs;

GET_DATA:

Get output values and display the output values in the result field catalog

for the Generic UIBBs;

GET_PARAMETER_LIST (option):

Defines the input parameters;

INITIALIZE (option):

Checks the changes of input values of input parameters and stores the

input values in the parameter IT_PARAMETER for the Generic UIBB.

Page 31: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

27

Floor Plan Manager Framework includes a role model with three different roles,

which are described in the Figure 2.9, Developer, Administrator and End User.

Different role has different responsibilities.

Developer: Design time: Defines field catalog and input parameter based on the

business logic for Generic UIBBs. And he implements the feeder classes to

determine the concrete value for the Generic UIBBs. For example, in the Figure

2.11, developer defines the field catalog with five fields for the List Generic

UIBB on the bottom, and the search field catalog with three fields as search

criteria for the Search Generic UIBB on the top.

Administrator: Design time: configure the Generic UIBBs based on the defined

field catalog and input parameter for floorplans. For example in the Figure 2.11,

the administrator can choose which field of search criteria is displayed in the

Search Generic UIBB on the top and also which field of field catalog is display

in the List Generic UIBB on the bottom.

End user: Runtime: trigger the Web Dynpro applications and choose the

preferred value for the search criteria in the Search Generic UIBBs. For

example, when the Web Dynpro application is started with the Search Generic

UIBB in the Figure 2.11 on the top, the end user can insert the values for the

search criteria of field catalog.

Figure 2.13 shows the Floor Plan Manager Framework Phase Model, which

describes that Floor Plan Manager Framework based on Web Dynpro ABAP, is

mainly comprised with the floorplan event loop. At runtime, the feeder class

implements the UIBBs interface with the predefined methods to provide

concrete value for defined field catalogs and input parameters for further

consumption of business logic. When the end user in the left triggers a Web

Dynpro application, then the WD runtime starts and checks whether there are

floorplan components. If yes, then go into the floorplans with the UIBBs or

Generic UIBBs. All the predefined methods are triggered during the sequence of

floorplan event loop. After the floorplan event loop, the phase turns back to the

Web Dynpro application.

Page 32: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

28

Figure 2.13: Floor Plan Manager Phase Model [16]

In the Figure 2.13, all the blue texts are the methods belonged to the Floor Plan

Manager Framework. Within Floor Plan Manager Framework, there is a

mechanism to receive the messages during the runtime and display them into the

Message Region in the floorplans by providing a parameter named

ET_Messages within four predefined methods of feeder classes. All the

parameters named ET_Messages are transmitting during the runtime with the

messages and providing the information to the Message Region to inform the

end user about the results of the actions. Four predefined methods include the

ET_Messages parameters. They are GET_DEFINITION, GET_DATA,

CHECK_CONFIG and PROCESS_EVENT. All of these methods can return a

message during the floorplan event loop, and store the messages within

ET_Messages displayed in the Message Region of the floorplans.

Page 33: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

29

2.2 Related Works

However there are also several existing solutions inside and outside SAP, which

can also deal with the consumption of Web Services. This chapter describes the

concepts of these solutions and analyzes the advantages and disadvantages of

these solutions.

Page 34: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

30

2.2.1 Consuming Web Services with Web Dynpro ABAP

Within Web Dynpro ABAP technology, there is one existing way to deal with

Web Services by creating a service call as Web Dynpro component for the Web

Dynpro ABAP application.

During the creation of service call, the user can choose the attributes of input and

output parameter of Web Service for further configuration. All the chosen

attributes are mapped to the Web Dynpro application context. Based on the

advantages of MVC model of Web Dynpro ABAP, Web Dynpro application

maps the attributes of Web Services to the fields in the layout via the Web

Dynpro application context, and triggers the Web Services as service call within

the Web Dynpro components.

The most important part of this solution is the wizard to create the service call,

called Web Dynpro Service Wizard. Web Dynpro Service Wizard actually is a

process for specific Web Service consumption manually. It integrates the

function of Web Service inside Web Dynpro component as a service calls:

1. Create Web Dynpro application and also the Web Dynpro component;

2. Start the process to create Service Call within Web Dynpro component,

and the process for the configurations;

Specify the controller;

Specify the Service type, for example: Web Service proxy:

The Web Service proxy means the pair of proxy classes

provided to deal with the mapping between XML-based

and ABAP-based for the Web Service.

Specify proxy class, method name and logical port name;

Choose input / output Parameters and map to the context of Web

Dynpro component;

Finally the Service Call is created for the specific Web Service

based on the configurations.

3. Draw the Layout in the view of Web Dynpro component and map the

layout elements with context of Web Dynpro component.

Figure 2.14 shows diagram of Web Dynpro Service Call Wizard. The two green

boxes in the middle are two different ways to go through the Web Dynpro

Service Call Flow. Function Module and Web Service proxy class are two ways

to choose the Services types to be created as Service Calls.

Page 35: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

31

Creation of Web Dynpro Component

A

Function

Module

Web Service

Proxy class

1. Function Module’s name, Logical Port

name;

2. Proxy Class, Method name, Logical

Port name.

Choose Input/Output

Parameters

Context of

WDCMapping Input/

Output

Parameters to

Context

Draw Layout of Web Dynpro

Component A

Connect the elements of Layout

to Context elements

Figure 2.14: Diagram of Web Dynpro Service Call Wizard

The Advantages of the solution within Web Dynpro ABAP, based on the Web

Dynpro Service Wizard, is that the process is easy to follow. But it also has

some lacking points:

1. The Wizard is not independent. For each specific Web Service, the whole

process is almost the same. However, the configuration for the service

call is dependent on the different kind of Web Services. Therefore a lot

of manually configurations is necessary for each consumption of Web

Service;

2. The consumer has the global view of Web Services. During the

configuration, the consumer needs to specify the input and output

parameter of Web Service, and map them to the context of Web Dynpro

component. It is not convenient for the user to consume any Web Service

without global view.

3. The layout of views needs to be drawn all by the users.

Page 36: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

32

2.2.2 Consumption via SAP NetWeaver Composition

Environment

The second solution which deals with the consumption of Web Services is based

on Web Dynpro Java in SAP NetWeaver Composition Environment 7.1. Web

Dynpro Java is represented inside SAP NetWeaver Composition Environment

7.1.

Except SAP NetWeaver PI, SAP NetWeaver Composition Environment (CE)

7.1 is also another platform that provides the Service Oriented Architecture to

walk through the process of consuming Web Services.

The reason to provide SAP NetWeaver PI and SAP NetWeaver CE is because

that each focuses different environments. SAP NetWeaver PI is ideal for

situations where human integration is not required. [18] SAP NetWeaver

Composition Environment is an ideal environment for developing complete

composite applications, where have collaborative processes and want to

aggregate data from different back-end systems into one or more UIs. [18]

Before, SAP always uses SAP NetWeaver PI to provide Enterprise Services in

ABAP, and use SAP NetWeaver CE to consume Enterprise Services. Below

Figure 2.15 depicts the basic components of SAP NetWeaver Composition

Environment. Symbol 1, a Java EE 5 application server, represents the basic

foundation of SAP NetWeaver Composition Environment. Symbol 2, also part

of SAP NetWeaver Composition Environment, is the development and modeling

environment SAP NetWeaver Development Studio. SAP NetWeaver

Composition Environment consists of different architectural layers – an

underlying service and business objects layer, a UI layer, and a process layer,

where glue together the UIs and service calls. The addition of the services layer

is very important, and it can decouple all service consumers, like the UIs, from

back-end systems, and then replace those back-end systems as needed without

any impact on the consumer side. [18] As showed in the Figure 2.15, SAP

NetWeaver Composition Environment can also consume Web Services from

ESR. At UI layer, SAP NetWeaver Composition Environment comprises

dedicated tools, like SAP NetWeaver Visual Composer, for model-driven UI

development for lightweight UIs with almost no complicated UI logical. [19]

Page 37: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

33

Figure 2.15: Basic Components of SAP NW CE [18]

SAP NW Visual Composer: is used to model lightweight UI logical. It can

create new models or reuse the existing models, such as Web Services, Remote

Function Calls (RFCs), Portlet Applications, SAP NW Visual Composer models

and also Web Dynpro application. SAP NW Visual Composer can search or

restrict the Enterprise Services Classifications by using UDDI – standard

identification criteria. For example, from the SR, it can choose Customer or

Employee as Business Object Search Criteria to find out all the relative Services

to Customer or Employee. It is much easy for users to choose and connect with

Enterprise Logic. After the Service is chosen, SAP NW Visual Composer drags

and drops the Service inside as model. Figure 2.16 shows an example that

modeling a Web Service’s user interface within SAP NetWeaver Visual

Composer. SAP NetWeaver Visual Composer retrieves the WSDL information

for that chosen Service, which the systems can then use to automatically derive

input and output forms or tables from the respective parameters of this Service.

SAP NetWeaver Visual Composer allows users to model these parameters

without any additional coding. [18]

Page 38: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

34

Figure 2.16: Modeling a Web Service’s user interface within SAP NetWeaver

Visual Composer [18]

Adaptive Web Service Model: For complicated UI logical, or more complex

input verifications, it is better to use Web Dynpro Java to consume Web Services

by creating a model, which is similar to the solution above, to support the

connectivity to Web Services. The Adaptive Web Service Model is the interface

that the user would use to support the connectivity to Web Services for the Web

Dynpro Java applications. The Adaptive Web Service Model provides the

functions:

Calling Web Services from Web Dynpro Java applications;

Create Web Services Logical destinations with Configuration of connection,

authentication and encryption settings;

Tracing of model content, such as model metadata, for problem analysis;

Access Web Service runtime Service Extension Interface to modify HTTP,

SOAP, and Security settings via API.

The Web Service destinations provide the benefits for changing of settings

without modifying the code or configuration files of the Web Dynpro Java

applications. The Adaptive Web Service Model needs to create two kinds of

Web Services destinations. They are:

Metadata destination: is used to find the WSDL at runtime from which the

Adaptive Web Service Model reads its metadata;

Execution destination: is used to execute the Web Services. [19]

Figure 2.17 shows the architecture of the use case of Adaptive Web Service

Model. For this Adaptive Web Service Model, dynamic proxies enhance the

Web Service runtime. The Dynamic Invocation interface is used to retrieve the

Web Service destinations for the logical ports. The Web Dynpro runtime, which

Page 39: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

35

is part of the J2EE Engine of the SAP Web Application Server, comes with a

Common Model Interface-based metadata generation. [20]

.

Figure 2.17: Use Case for Adaptive WS Model for Web Dynpro Java [20]

The Adaptive Web Service Model object creation always requires a model

instance, which is used to bind the context-to-model for an Adaptive Web

Service Model object. This model instance is not created or maintained by the

Adaptive Web Service Model itself, below Listing 2.1 is the code sample to

achieve this model instance. [21]

//create model instance

Model model = new Model ();

//create model objects + relations

Request_NumberToWords requestMO = new Request_NumberToWords

(model);

NumberToWords words = new NumberToWords (model);

Words.setUbiNum (123);

RequestMO.setNumberToWords (words);

//bind model object to WD context

WdContext.nodeRequest_NumberToWords ().bind (requestMO);

Listing 2.1: Sample of model instance creation

After the Adaptive Web Service Model object is creation, then the user can trace

the request / response of a Web Service call by switching on logging for the

Model object. All the complete http-request / -response are contained within the

logs.

The solution for consumption of Web Service via SAP NetWeaver Composition

Environment makes so many benefits for the users with the details process and

Page 40: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

36

architectures. Especially the users are in the J2EE local Application Server. The

main part of this solution is Adaptive Web Service Model (AWS) and it provides

many advantages in different areas:

1. Adaptability: In AWS, the metadata of Web Service is re-loaded at runtime

from the WSDL. With this, the runtime is capable of adapting to the

compatible changes of the WSDL thus avoiding the need for re-import of the

model and re-deployment of application;

2. Configuration: HTTP Proxy settings, like host and port, in AWS Model are

configurable and are not tightly coupled with the imported model. This

eliminates the need of additional entities such as logical port in AWS Model.

Additionally, AWS allows maintaining configurable destinations for

different Web Service providers;

3. Authentication: Accessing authenticated WSDL in AWS is possible by

providing the required user credentials during import process;

4. Structure Complexity: AWS Model supports for nested complex types;

5. Security: AWS Model also supports advanced security features like non-SAP

SSO authentication tickets, WS SOAP header etc. [21]

Conclusion, the solution for consumption of Web Service in SAP NetWeaver

Composition Environment has many advantages and provides also benefits for

many users. However, the solution can be limited only to SAP NetWeaver

Composition Environment, because The Floor Plan Manager Framework is

based on Web Dynpro ABAP. It is better to find the solution based on the SAP

NetWeaver Process Integration

Page 41: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

37

2.2.3 Consuming Web Service via JDE EnterpriseOne Tools

JDE EnterpriseOne stands for the product of Oracle. Oracle’s JD Edwards

EnterpriseOne is an integrated application suite of comprehensive enterprise

resource planning (ERP) software that combines business value, standards-based

technology, and deep industry experience into a business solution with a low

total cost of ownership. [22] Oracle's JD Edwards EnterpriseOne Tools, which is

Business Services Development based on Service-Oriented-Architecture,

includes support for the development, deployment, and management of Web

Services, providing the ability to aggregate JD Edwards EnterpriseOne business

functions and database operations into a “business service” that can then be

exposed as a Web Service and also can be consumed. JD Edwards

EnterpriseOne can be a Web Service Provider and also a Web Service

Consumer. JD Edwards EnterpriseOne Web Services are called published

business services. A published business service consists one or more classes, one

of which publishes methods. Each method performs a business process. The user

creates a Web Service by creating a published business service and identifying

the published class. [24]

As a Web Service Provider, JD Edwards EnterpriseOne exposes Web

Services for consumption by external systems. Each operation of the Web

Service performs a business process. Multiple Java classes are used to

perform the requested business process. The JD Edwards EnterpriseOne

Web Service is generated from a Java class called a published business

service class. The methods of the published business service class receive

and return data through payload classes called value objects. Within each

method, internal business service and value object classes are used to access

existing logic and data in the JD Edwards EnterpriseOne system. The

business processes exposed through the published business service class can

be accessed from an external system using a Web Service call or from other

published business service classes. [24]

As a Web Service Consumer, JD Edwards EnterpriseOne calls an external

Web Service from within the JD Edwards EnterpriseOne business logic

layer. An action that uses a business function occurs in JD Edwards

EnterpriseOne. The business function calls a business service. The business

service calls an external Web Service. A Web Service proxy is provided end

point and security information for the external Web Service. The external

Web Service returns the results of the call to the business service. The

business service passes the results to the business function. [24]

The business services server enables JD Edwards EnterpriseOne to natively

produce and consume Web Services. The business services server production

environment is used by the administrators to create Web Services. An

Page 42: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

38

administrator generates Web Service interfaces that expose the business service

logic. During the Web Service generation, WSDL files are produced. WSDL

files are used by external systems during orchestration development. After Web

Services are generated from the Java classes, they can be consumed by external

systems. [24]

JD Edwards EnterpriseOne can call Web Services. To enable JD Edwards

EnterpriseOne as Web Service consumer, the user needs to create a business

service that uses a Web Service proxy to call an external Web Service. A method

in that business service can be called by a JD Edwards EnterpriseOne business

function. The business function, which resides in the user enterprise server, uses

an API to call the business service method, which resides on the business

services server. JDENet is the communication mechanism between the servers.

An Object Configuration Manager (OCM) mapping tells the enterprise server the

business services server name and port for sending the JDENet messages. After

the OCM is configured with the business services server information, user can

ping the business services server from OCM to ensure that the business services

server is running and listening for messages. [24]

It is also possible to create a business service to consume an external Web

Service in the same way. But instead of using a published business service as the

Web Service, the business service is used to consume the Web Service by using

the Web Service proxy. A Web Service proxy is a collection of classes generated

with the target WSDL of external Web Services. Within JD Edwards

EnterpriseOne, a business function can directly call a business service that can

then call out to the external Web Service. The process is fully Synchronous,

allowing the response to be sent directly back to the business function. [23]

Figure 2.18 shows the way JD Edwards EnterpriseOne consumes External Web

Services. The target Web Service information will be retrieved from JDE

Enterprise Server to JDE Web Server via JDENet. Then Business Service calls

the External Web Service via Web Service proxy client, which is generated

based on the target WSDL of the external Web Service.

Page 43: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

39

Figure 2.18: Structure of consumption of External Web Services by JDE

EnterpriseOne [23]

Page 44: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

40

2.2.4 Dynvoker Approach

Except the solutions or products are already on the market, there are lot of Web

Service research projects which provide tools to improve the usage of Web

Services. Web Services are also targeted directly in the interaction between

humans and machines. A generic human-driven ad-hoc usage is introduced with

benefits in many scenarios, including rapid service testing and dynamic

inclusion of services as plug-ins into applications. Dynvoker, based on the

interaction model for ad-hoc service usage, is a generic Web Service client. [25]

When the message syntax, operational semantics and non-functional properties

of services are described by the file format specifications, it is possible to call

the services with the generic clients, such as Dynvoker, by introspecting the

descriptions and deducing behavioral information. [25]

Ad-hoc usage of simple services requires:

Navigation: to find the desired service. Navigation guides the user from

the expression of a goal to generate the input form automatically;

Form Generation: to form an interaction pattern. Including creation of

form elements, layout and embedding the form into an application

context and augmentation of existing services with local hints for the

graphical representation;

Submission: is done in the background and involves the interaction with

a service. After the submission of the form, the service is invoked and the

output form is rendered based on the results. [25]

Figure 2.19 describes the basic interaction model for ad-hoc service usage. For

more complex use cases, the forms can either be pure input and output forms

using previous input or output information.

Figure 2.19: Basic interaction model for ad-hoc service usage [25]

Page 45: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

41

Dynvoker consists of a relatively small application core which can be run as a

servlet, a web service or a command-line application. The generic handling of

input, i.e. web service descriptions, and output, i.e. user interfaces, is reflected in

the modular architecture, showed as Figure 2.20. It contains several adapters to

generate forms, and inference modules for various service description formats.

[25]

Figure 2.20: Dynvoker Architecture [25]

GUIDD stands for the GUI Development Descriptor [26]. WSGUI, or Web

Services Graphical User Interface, has been introduced to derive user interfaces

from service definitions. When internal variable names are used, along with

complex type definitions, value restrictions and unclear services and operations,

it is very hard for user to navigate a Web Service. [26] The WSGUI concepts

allow the GUIDD side by side with a WSDL file to make the internal operations

visually accessible to the user, independent of the environment like desktop

toolkit or web browser. A GUIDD file is an XML-formatted file and consists of

a header and 4 sections. The section Operations describes the general page

creation and another section named Source is coupled to the existence of a Web

Service file. Another two are responsible for the display of input and output

forms. [25]

However, right now a large number of services with WSDL descriptions can

already be used with Dynvoker. Dynvoker is a viable generic client, which can

dynamically explore method-centric and resource-centric services alike, output

forms in various formats or integrate GUI services to provide a richer user

experience. [26]

This solution introduces an ad-hoc usage of Web Service, which is special for

humans-to-machines model. And it also depicts a generic client, called

Dynvoker, which includes an interaction model. With the generic client been

developed, it allows the access to all the existing services without the need for

the cooperation from the service authors [25].

Both of these two aspects can help the design of the Generic Adaptation. The

goal of Generic Adaptation is to provide a bridge to gap the Web Services and

the Floor Plan Manager Framework, which is the standard UI framework within

Page 46: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

42

SAP. Therefore the ad-hoc usage for the humans-to-machines model is quite fit

for the design of Generic Adaptation. In the Figure 2.19, the interaction model

for ad-hoc service usage guides the processes or interactions for the human-to-

machine model to deal with the information from the Web Services by

contacting with the service interfaces. However, within the ESR, there is also a

pair of service interfaces is provided for each published Web Service within SAP.

Therefore, all the service interfaces from the ESR can be reused for the Generic

Adaptation.

On the other hand, the idea for the generic client is also useful for the design of

Generic Adaptation. The goal for the Generic Adaptation is also generic for any

kind of Web Services, and also can work for multiple Web Services. Within

Floor Plan Manager Framework, the feature, field catalogs and input parameters

are created to contain the fields and worked as interfaces for the Generic UIBBs.

Therefore, it is possible to create the field catalogs and input parameters for the

information from the Web Services. Then the Floor Plan Manager Framework is

allowed to access all the existing Web Services without the need for the

cooperation from the Web Service authors.

Page 47: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

43

2.3 Summary

In this chapter, the basic architecture and technologies are introduced, and they

are the partners to be connected by the help of the Generic Adaptation.

Enterprise SOA and SAP NetWever PI as SAP’s implementation of SOA

middleware are all existed within SAP. Enterprise SOA is the architecture to

deal with Web Services within SAP. SAP NetWeaver PI deals with the mapping

between xml-based data type and ABAP-based data type by providing the pair of

proxy classes at both provider and consumer sides, and also handles the

communication for messaging.

Floor Plan Manager Framework, as the standard UI framework, extracts

information from business logic, defines field catalogs and input parameters for

Generic UIBBs. Floor Plan Manager Framework Configuration Editor is

responsible for configuration and provides the Generic UIBBs as application-

specific views. Feeder classes are implemented at runtime to exactly determine

the concrete value of field catalogs.

However Floor Plan Manager Framework does not include the function of

consumption of Web Services as the way same way for the consumption of

business logic.

Also the related works are described here. Below Table 2.3 depicts the

comparisons between all the related works and requirements of Generic

Adaptation.

Human-to-

Machine

Web

Services

Environment Generic

Solution

Automation

Requirements

for Generic

Adaptation

Yes All Web Dynpro

ABAP

Yes No need

SAP WD

ABAP

No need Easy

structured

Web Dynpro

ABAP

No No need

SAP NW CE No need All Web Dynpro

Java

No No need

JDE

EnterpriseOne

No need All Java No No need

Dynvoker Yes All Not specified Yes Required

Table 2.3: Table of the comparisons with Generic Adaptation

Page 48: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

44

The next chapter shows the concepts of design for the Generic Adaptation,

which works as a bridge between Web Services and Floor Plan Manager

Framework based on the existing architectures and related works described

within this chapter.

Page 49: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

45

Chapter 3 Design

This chapter describes the concept of design of the Generic Adaptation for Web

Services consumption within Floor Plan Manager Framework for Web Dynpro

applications. First, an overview of the Generic Adaptation is given. Second, the

subchapter describes the role model, which improves the role model of Floor

Plan Manager Framework. Third, the subchapter shows the main concept of

Generic Adaptation with three processes, which is based on the requirements of

existing architectures and technologies. Fourth, the subchapter describes how

Generic Adaptation works for synchronous Web Services. And fifth,

demonstrates the way that Generic Adaptation works for asynchronous Web

Services. And then the sixth, describes the analysis of the automation for the

three processes. The last section in this chapter gives a conclusion of design for

the Generic Adaptation.

The design is guided by the motivations and research questions that motivate this

thesis. Generic Adaptation is based on the architectures and techniques that have

been described in chapter 2 Background and it is introduced as a gap to bridge

between Web Services and Floor Plan Manager Framework. The main goal is to

provide a generic solution for the consumption of Web Services for Web Dynpro

applications and also enhance the functionality of Floor Plan Manager

Framework.

Existing techniques embedded in this design chapter were described in the

Chapter 2 Background. The main contributions of the Generic Adaptation

however, are pointed out in the particular subchapters and an evaluation is

shown in the chapter 5.

Page 50: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

46

3.1 Generic Adaptation Overview

Generic Adaptation provides a generic solution to consume Web Services in

Web Dynpro applications within Floor Plan Manager Framework. The design of

Generic Adaptation is based on the requirements of the existing architectures,

technologies and analysis of existing solution in the chapter 2.

From chapter 2, the consumer part is Floor Plan Manager Framework, and more

specifically, the feeder classes of Generic UIBBs in floorplans of Floor Plan

Manager Framework. On the other hand, SAP has integrated SOA into the main

infrastructure called Enterprise SOA. Enterprise SOA provides the way to

extract the Web Services by communicating with the service interfaces within

ESR. SAP NetWeaver PI as the middleware of Enterprise SOA, which handles

the transmission of messaging, the mapping of data-format and exchanging of

messages, provides one pair of proxy classes for each Web Service. From which

the Proxy Consumer Class is used to communicate with the consumer part via

outbound service interface, and the Proxy Provider Class is used to communicate

with the provider part via inbound service interface, and the communication

between two proxy classes is guaranteed by the endpoint at Proxy Provider Class

and logical port at Proxy Consumer Class. Therefore the design of Generic

Adaptation is based on the feeder classes of Generic UIBBs and the Proxy

Consumer Classes of the service interfaces within ESR.

The design of Generic Adaptation should include three parts below:

.

1. Contact with the service interfaces within ESR, and create a channel to

retrieve the information from Web Services;

2. Create field catalogs and input parameters as interfaces for

communication between Generic UIBBs and the information retrieved

from Web Services;

3. Trigger the consumption of Web Services and handle all the interactions

during the consumption.

Generic Adaptation includes Generic Adaptation Interface, which will be

implemented by Generic Adaptation Class at runtime for specific Web Service,

and a message-handling class providing the messages during the consumption.

Regarding to the three aspects above, the Generic Adaptation Interface should

provide the methods, which can achieve all the three aspects to fit all kinds of

Web Services and Generic UIBBs. Therefore, Generic Adaptation Interface

includes four methods. They are:

CREATE_FIELD_CATALOG: the method of GET_DEFINITION in the

feeder class defines the field catalogs under the help of the method of

CREATE_FIELD_CATALOG in the Generic Adaptation Interface;

Page 51: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

47

CREATE_INPUT_PARAMETER: the method of

GET_PARAMETER_LIST in the feeder class defines the input parameters

under the help of the method of CREATE_INPUT_PARAMETER in the

Generic Adaptation Interface;

GET_INPUT_VALUE: get input values for input parameters for List or

Form Generic UIBBs by communicating with the parameter

IT_PARAMETER within the method INITIALIZE in the feeder class, and

get input values for search criteria of search field catalog for Search Generic

UIBBs by communicating with the method of PROCESS_EVENT in the

feeder class at runtime;

GET_OUTPUT_VALUE: get the output value after the consumption of

Web Services, and fill the concrete values into the result field catalog for

Generic UIBBs by communicating with the method of GET_DATA in the

feeder class at runtime.

Figure 3.1 shows an overview of Generic Adaptation. On the left in Figure 3.1

depict the relationship between Proxy Consumer Class, Proxy Provider Class

and Web Services. On the right in Figure 3.1 depicts the relationship between

feeder classes, Generic UIBBs and Floor Plan Manager Framework. All of them

interact with Generic Adaptation Class. The Generic Adaptation Class

implements the Generic Adaptation Interface at runtime. All the implemented

four methods, showed in the Figure 3.1, are taking care of the interactions

between the Proxy Consumer Classes and feeder classes as the main concept of

Generic Adaptation.

Page 52: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

48

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

Generic Adaptation ClassProxy Consumer Class Feeder Class

1 1 1 1..*

Proxy Provider Class

11

Web Service

1

1

+AFTER_FAILD_EVENT()

+FLUSH()

+NEEDS_CONFIRMATION()

+PROCESS_BEFORE_OUTPUT()

+PROCESS_EVENT()

+GET_DEFINITION()

+GET_DATA()

+GET_PARAMETER_LIST()

+INITIALIZE()

«interface»

IF_FPM_GUIBB

GUIBB

1

1

Floor Plan Manager Framework

0..*1

Figure 3.1: Overview of Generic Adaptation

Page 53: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

49

3.2 Role Model

This subchapter describes the role model, which improves the role model of

Floor Plan Manager Framework under the help of Generic Adaptation. As

described in the chapter 2 Background, there are three roles within the role

model of Floor Plan Manager Framework. They are Developer, Administrator

and End user showed in the Figure 2.9.

Generic Adaptation also introduces a new role, called Controller role. Figure 3.2

describes the enhanced Floor Plan Manager Framework role model. Compared

with Figure 2.9, the consumption of Web Services via Generic Adaptation can

enhance the Floor Plan Manager Framework with the consumption of Web

Services within business logic.

The role Controller takes care of the implementation of Generic Adaptation

Class to achieve the interactions with Proxy Consume Classes and feeder

classes. As showed in the Figure 3.2, the Controller encapsulates all the Web

Services within the Generic Adaptation by implementing the Generic Adaptation

Class, so that the developer of Floor Plan Manager Framework can consume

different Web Services in the same way. This improvement makes more

convenient for the developer to consume any Web Services.

The developer role can directly communicate with Generic Adaptation Class and

implement the feeder classes for the Generic UIBBs. But the developer has no

direct communication with the Web Services. The Generic Adaptation

encapsulates all the details of Web Services, such as the structure of input and

output parameters of methods within Web Services. The developer defines the

field catalogs and input parameters at design time via the communication with

Generic Adaptation Class. And developer implements the feeder classes to

determine the concrete values for the field catalogs at design time.

The administrator role is focusing on the configuration of floorplans with

Generic UIBBs via Configuration Editor. The administrator can choose the

values for the input parameters and decide which fields can be displayed in the

field catalogs in the Generic UIBBs at design time.

The End User can trigger the Web Dynpro applications and especially insert the

value for the search criteria of search field catalogs for Search Generic UIBBs at

runtime.

Page 54: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

50

End User

Administrator

Developer

Web Dynpro ABAP Application

Floor Plan Manager Framework

Business LogicWeb Service

(Proxy Consumer

Class)

Business DataBusiness Suite

Floorplans Configuration Editor

GUIBBs

ControllerGeneric

Adaptation

Figure 3.2: Enhanced Floor Plan Manager Framework

From the Figure 3.2, by implementing the Generic Adaptation Class, the role

Controller enhances the functionality of directly consumption of Web Services

for Floor Plan Manager Framework.

Page 55: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

51

3.3 Main Concept of Generic Adaptation

This section enhances the overview of Generic Adaptation of the chapter 3.1 in

more details. Generic Adaptation provides a generic solution with three

processes to consume Web Services within Floor Plan Manager Framework and

also provides a message-handling class to handle all the messages showed in the

Message Region of floorplans within Floor Plan Manager Framework.

This generic solution includes Generic Adaptation Interface and Generic

Adaptation Class. The Generic Adaptation Interface provides four methods, and

they handle all the three requirements discussed in the chapter 3.1. Therefore,

Generic Adaptation Interface is generic for all kinds of Web Services and

Generic UIBBs by providing these basic four methods. All the three processes

are implemented by the four methods within Generic Adaptation Interface.

However, Generic Adaptation Class is also generic for all kind of Generic

UIBBs, but specific for the different Web Services. For each Web Service, there

is one instance of Generic Adaptation Class is instantiated. Therefore, Generic

Adaptation can not only work for one Web Service and also multiple Web

Services with different instances at the same time within one floorplan of Floor

Plan Manager Framework.

The main concept of Generic Adaptation can be separated into three processes.

First, process of Acquisition of attributes depicts the interactions between

Generic Adaptation and SAP Enterprise SOA. Second, the process of Field

catalog creation defines the field catalogs and input parameters based on the

different Generic UIBBs by communicating with the methods of

GET_DEFINITION and GET_PARAMETER_LIST in the feeder classes. After

these two processes, all the attributes of Web Services are mapped into the field

catalogs and input parameters, then the Generic UIBBs of Floor Plan Manager

Framework can communicate with the attributes via the field catalogs and input

parameters as interface. The last process, Consumption via Generic Adaptation

is responsible for the interactions after the consumption in the backend. At the

end, the subchapter gives a concept about the message-handling class.

Page 56: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

52

3.3.1 Acquisition of attributes

For the first process, Acquisition of attributes is also introduced based on the

requirement of Generic UIBBs within Floor Plan Manager Framework. All the

Generic UIBBs within Floor Plan Manager Framework can only works with the

flat structures. For example, all the types of field catalogs and input parameters

should be flat structures.

The structure of Proxy Consumer Class is displayed in the Figure 3.3, which

shows the structure of one Proxy Consumer Class with three methods. However,

one Proxy Consumer Class includes at least one method. One method includes at

least one output parameter, and the input parameter is optional.

Proxy Consumer

Class

Method 1

Method 2(Optional)

Method 3(Optional)

Input

Parameter

(Optional)

Output

Parameter

Input

Parameter

(Optional)

Output

Parameter

Input

Parameter

(Optional)

Output

Parameter

Figure 3.3: Structure of a Proxy Consumer Class

Each input and output parameter has a parameter type, which stores the structure

of the attributes of the parameter. All the attributes of input and output

parameters can be found within these structures. The process of Acquisition of

attributes is focusing on extracting the attributes from the structures of the input

and output parameter of Proxy Consumer Class.

However, the types of input and output parameters of Proxy Consumer Class

within Enterprise SOA are not only flat structure, and they can be very deep

structure with many levels. Therefore, the structures are quite different from

each other. Figure 3.4 depicts both flat and deep structures of parameter types.

Page 57: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

53

Flat Parameter

Type

Deep Parameter

Type

Attribute A

Attribute B

Attribute N

First Level

First Level

Second Level

Second Level

Second Level

Attribute A

Attribute B

Attribute C

Attribute D

Attribute E

Figure 3.4: Left: Flat Parameter Type; Right: Deep Parameter Type

Demonstrated in Figure 3.4, on the left is the example of Flat Parameter Type,

and the type has one level with three Attributes, which is fit for the requirement

of the Generic UIBBs within Floor Plan Manager Framework. On the right is an

example of Deep Parameter Type, and it includes several levels with attributes at

leaves. Obviously, this deep parameter type is not fit for the flatten requirement

of Generic UIBBs. However, the process Acquisition of attributes needs to

extract all the attributes from the deep parameter type.

Another problem is the name conflict during the Acquisition of attributes.

During the acquisition, there might same Web Services are consumed or same

names of attributes of parameters. For instance, there is a Web Service named

Delivery Check. There is an attribute named Address in the input parameter, and

another attribute also named Address in the output parameter. However,

Acquisition of attributes extracts attributes from input and output parameters

separately, and stores them in separate field catalogs. The details of field

catalogs are described in the chapter 3.3.2 Field catalog creation.

For the name conflict of names for Web Services, each Proxy Consumer Class

maps to one Web Service, and is generated based on the WSDL of the Proxy

Provider Class. After the generation, the name of the Proxy Consumer Class is

comprised with 2 parts, one part is directly made of the name of Web Service,

and another part is random during the generation of the Proxy Consumer Class.

That means even for the same WSDL, the name of the generated Proxy

Consumer Class is different. And the same, the names of the parameter types of

input and output parameter of methods are also different based for each

generation.

The methods of Generic Adaptation Interface, CREATE_FIELD_CATALOG

and CREATE_INPUT_PARAMETER are responsible to extract the attributes,

and create field catalogs and input parameters based on the requirements of

Generic UIBBs. As mentioned in Chapter 3.2, the Controller role has the global

view of Web Service about the structures of input and output parameters. When

Page 58: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

54

the Controller implements the Generic Adaptation Class to consume the Web

Service with these two methods, the Generic Adaptation Class extracts the

attributes. Figure 3.5 depicts an example of process Acquisition of attributes for

the Generic Adaptation. One Web Service includes four attributes.

In more details, the Controller predefines the flatten parameter types with the

attributes based on the structures of input and output parameters of the Web

Services. And then at runtime, the Controller searches the input and output

parameter types by identifying the names of Web Services and method of the

Web Services. And then Controller compares the attributes of defined parameter

types with the extracted attributes. If the defined types are matched with the

input and output parameter types, then the defined types are sent to the second

process of Field catalog creation.

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

Generic Adaptation Class-Attribute A

-Attribute B

-Attribute C

-Attribute N

Proxy Consumer Class

Feeder Class

1 1 1 1..*

Figure 3.5: An example of process of Acquisition of attributes

Figure 3.5 shows the diagram of process of Acquisition of attributes by

implementing the methods of Get field catalog and Get input parameter. For

example, at the Proxy Consumer Class side, there are four attributes come from

input and output parameters. Controller within Generic Adaptation Class

predefines the input parameter type and output parameter type. At runtime, the

process of Acquisition of attributes extracts all the four attributes and compares

with the attributes within the defined parameter types. If all the attributes are

matched, then the defined parameter types are sent to the feeder classes for the

next process of Field catalog creation.

Therefore, after the process of Acquisition of attributes, the attributes to create

field catalogs and input parameters of Generic UIBBs within Floor Plan

Manager Framework are ready for the second process of Field catalog creation.

Page 59: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

55

Compared with the solution of consuming Web Services with Web Dynpro

ABAP in the chapter 2.2.1, process of Acquisition of attributes can deal with all

kinds of structures for input and out parameters. However, the solution of

consuming Web Services with Web Dynpro ABAP can only work for deep

structure for input and output parameters of Web Services by manually mapping

all the attributes including the sub-level attributes of the input and output

parameters to the Web Dynpro context.

Page 60: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

56

3.3.2 Field catalog creation

The process of Field catalog creation is also based on the requirement of Floor

Plan Manager Framework and mainly handled by the feeder classes. The main

Generic UIBBs provided within Floor Plan Manager Framework are Form

Generic UIBB, List Generic UIBB and Search Generic UIBB. Different Generic

UIBB requires different kinds of field catalogs and input parameters at design

time. All the concrete values are filled in at runtime during the process of

Consumption via Generic Adaptation. The field catalog stands for the different

field catalogs and input parameters, which are used to contain the attributes from

Web Services as fields.

Search Generic UIBB: Input parameter (optional);

Search field catalog;

Result field catalog.

Form Generic UIBB: Input parameter;

Search field catalog (optional);

Result field catalog.

List Generic UIBB: Input parameter;

Result field catalog.

From the list above, there are totally 3 different kinds of field catalog. All these

three kinds of field catalogs are defined based on the attributes extracted from

the process of Acquisition of attributes by implementing the methods of

CREATE_FIELD_CATALOG and CREATE_INPUT_PARAMETER, as

showed in the Figure 3.5. CREATE_FIELD_CATALOG communicates with the

method of GET_DEFITITION in the feeder class to define all the field catalogs.

And CREATE_INPUT_PARAMETER defines all the input parameters by

communicating with the method of GET_PARAMETER_LIST in the feeder

class.

Under the mechanism of Floor Plan Manager Framework for Generic UIBBs,

those attributes of input parameter of Web Services are used to define the input

parameters for List or Form Generic UIBBs and search field catalogs for Search

Generic UIBBs, and those attributes of output parameter of Web Services are

used to define the result field catalogs for all kinds of Generic UIBBs. Figure 3.6

demonstrates an example of the process of Field catalog creation for these three

different field catalogs.

Page 61: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

57

Search field catalog

(Search Generic

UIBBs)

Input parameter

(Form & List

Generic UIBBs)

Result field catalog

(Search, Form &

List Generic

UIBBs)

Input-Attribute1

(Web Service)

Input-Attribute2

(Web Service)

Input-Attribute3

(Web Service)

Input-Attribute1

(Web Service)

Input-Attribute2

(Web Service)

Input-Attribute3

(Web Service)

Output-

Attribute1 (Web

Service)

Output-

Attribute2 (Web

Service)

Output-

Attribute3 (Web

Service)

Figure 3.6: Example of created field catalogs

In the Figure 3.6, all the created field catalogs are flattening, with the relative

attributes based on the requirements of different Generic UIBBs within Floor

Plan Manager Framework.

After the process of Field catalog creation, the extracted attributes of Web

Services are used to define the field catalogs for the Generic UIBBs. Figure 3.7

displays an example of the processes Acquisition of attributes and Field catalog

creation with multiple Web Services and Generic UIBBs by implementing the

methods CREATE_FIELD_CATALOG and CREATE_INPUT_PARAMETER

with two Proxy Consumer Classes. It defines the field catalogs for one feeder

class of Search Generic UIBB and one feeder class of List Generic UIBB.

Page 62: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

58

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

Generic Adaptation Class

-Input Attribute A

-Output Attribute D

Proxy Consumer Class-A

-Search field catalog : <unspecified> = Attribute A

-Result field catalog : <unspecified> = Attribute D

Feeder Class-Search Generic UIBB

1

1 1

1

-Input parameter : <unspecified> = Attribute B

-Input paramter : <unspecified> = Attribute C

-Result field catalog : <unspecified> = Attribute E

Feeder Class-List Generic UIBB

1

1

-Input Attribute B

-Input attribute C

-Output Attribute E

Proxy Consumer Class-B

1

1

Figure 3.7: Example of processes Acquisition of attributes and Field catalog

creation with multiple Web Services and Generic UIBBs

In the Figure 3.7, two Proxy Consumer Classes are showed on the left. Proxy

Consumer Class A includes attribute A for input parameter, and attribute D for

its output parameter. Proxy Consumer Class B has attributes B and C within the

input parameter, and attribute E for its output parameter.

Two feeder classes, displayed on the right side, one implements the Search

Generic UIBB on the top, and another implements the List Generic UIBB on the

bottom.

After the process of Field catalog creation, all the extracted attributes are

mapped into different field catalogs by communicating with the

GET_DEFITITION and GET_PARAMETER_LIST methods in the feeder

classes at runtime. All of the field catalogs are flattening, and fit the

requirements of Generic UIBBs.

Compared with the solution of consuming Web Services with Web Dynpro

ABAP in the chapter 2.2.1, the process of Field catalog creation integrates all the

attributes into the Floor Plan Manager Framework very well by filling the field

catalogs and input parameters with the attributes. However the solution of

consuming Web Services with Web Dynpro ABAP needs to manually map all

the attributes to the Web Dynpro application context.

Page 63: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

59

3.3.3 Consumption via Generic Adaptation

The process of Consumption via Generic Adaptation is the most important

process of the concept of Generic Adaptation. The Consumption via Generic

Adaptation is responsible mainly to deal with the interactions via Configuration

Editor at design time and interactions via the consumption of Web Services at

runtimes.

All the interactions above can affect the output values of the consumption of

Web Services. Therefore, there should be a process to handle all these

interactions, and trigger the necessary methods when these interactions

happened. Process of Consumption via Generic Adaptation is responsible for

this issue.

The methods of GET_INPUT_VALUE and GET_OUTPUT_VALUE from the

Generic Adaptation Interface are implemented during the process of

Consumption of Generic Adaptation and handle the interactions. Both of

GET_INPUT_VALUE and GET_OUTPUT_VALUE use the results from the

previous processes at runtime and evaluate the results from the previous

processes at design time.

First of all, the method of GET_INPUT_VALUE is responsible to get the input

values of search criteria for Search Generic UIBBs from the end user at runtime

by communicating with the method of PROCESS_EVENT of feeder class. And

it is also responsible to get the values for input parameter by checking the

changes of the input parameters at runtime under the help of the method of

INITIALIZE of feeder class.

In additional, the method of GET_OUTPUT_VALUE firstly evaluates the

changes for the field catalogs within Configuration Editor at design time, and

then it uses the input values from the method of GET_INPUT_VALUE to

trigger the consumption of Web Services. Moreover, this method automatically

returns the output values to fill the result field catalogs for the Generic UIBBs at

runtime.

Figure 3.8 displays sequences of Consumption via Generic Adaptation for List

Generic UIBB. This example is special for the method GET_INPUT_VALUE

getting input values for the List Generic UIBB. In the Figure 3.8, there are five

objects, and they are the end user, Web Dynpro runtime, FPM (Floor Plan

Manager Framework) – List Generic UIBB, feeder class – List and Generic

Adaptation Class. Each of them performs its activities after the end user triggers

the action within Web Dynpro applications. The red annotations stand for the

actions or processes happened during the action blocks, which is described as

dark blue block in the Figure 3.8. All the black contexts, showed as the

messages, depict the items sent to the next object.

Page 64: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

60

1. There are totally three action blocks within Generic Adaptation Class

object. They are presenting the three processes of the Generic

Adaptation. The four methods defined within Generic Adaptation

Interface achieve these three processes when the feeder class triggers the

instance of Generic Adaptation Class.

2. First, the feeder class for List Generic UIBB instantiates the instance of

Generic Adaptation Class. Then, based on the attributes extracted within

the process of Acquisition of attributes, the methods of

GET_DEFINITION and GET_PARAMETER_LIST define the result

field catalog and input parameters at design time. After the third process

of Consumption via Generic Adaptation, feeder class fills the output

values with method of GET_DATA from the Generic Adaptation Class

into the result field catalog and deliveries the result field catalog with

concrete values to List Generic UIBB.

3. FPM-List Generic UIBB instantiates the feeder class first of all. Then,

after the administrator inserts the values for the input parameters at

design time. The parameter of IT_PARAMETER within the method of

INITIALIZE stores the input values. Then at runtime, FPM-List Generic

UIBB directly deliveries the input values and together with the

configurations on the field catalogs within Configuration Editor to the

instance of Generic Adaptation Class. At last, with the returned concrete

values from output, the FPM-List Generic UIBB includes the result field

catalog is returned back to the WD (Web Dynpro) runtime.

4. WD runtime is triggered with the action from end user, and finishes the

action after the consumption of Web Services is done.

Page 65: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

61

End user

Web Dynpro Runtime FPM-List Generic UIBB Feeder Class-List Generic Adaptation Class

Web Dynpro AfterAction

Web Dynpro Onaction

Modify Generic UIBBs

List Generic UIBB with Result field catalog

Action

Instantiate Feeder Class

Instantiate Generic Adaptation Class

Result field catalog with output value

Attributes

Input parameter & Result field catalog

Input parameter with values

Action of result field catalog

FPM start

Create List

Generic UIBB

Feeder Class start Process of

Acquisition

of Attributes

Field

catalog

creationGet_parameter_list

defines input parameter;

Get_definition defines

Define result field catalogInsert value for Input

parameter and stored by

Initialize

Get input value in the

Consumption via

Generic Adaptation

Check the actions for

result field catalogs

Get output value via

Get_data in the

Consumption via

Generic Adaptation

Figure 3.8: Sequences of Consumption via Generic Adaptation for List Generic

UIBB

Figure 3.9 shows the sequences of Consumption via Generic Adaptation for

Search Generic UIBB. This example is special for the method

GET_INPUT_VALUE getting input values from the search criteria of Search

Page 66: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

62

Generic UIBB. In the Figure 3.9, there are five objects, and they are the end

user, Web Dynpro runtime, FPM (Floor Plan Manager Framework) – Search

Generic UIBB, feeder class – Search and Generic Adaptation Class. Each of

them performs its activities after the end user triggers the action within Web

Dynpro applications. The red annotations stand for the actions or processes

happened during the action blocks, which is described as dark blue block in the

Figure 3.9. All the black contexts, showed as messages, depict the items sent to

the next object.

1. There are totally three action blocks within Generic Adaptation Class

object. They are presenting the four methods of the Generic Adaptation

Interface. The four methods defined within Generic Adaptation Interface

achieve the three processes when the feeder class triggers the instance of

Generic Adaptation Class.

2. First, the feeder class for Search Generic UIBB instantiates Generic

Adaptation Class. Then, based on the attributes extracted within the

process of Acquisition of attributes, the method of GET_DEFINITION in

the feeder class defines the search field catalog and result field catalog at

design time. After the process of Consumption via Generic Adaptation,

the method of GET_DATA in the feeder class fills the output values

from the Generic Adaptation Class into the result field catalog and

deliveries the result field catalog with concrete values to Search Generic

UIBB.

3. FPM-Search Generic UIBB instantiates the feeder class first of all. Then,

FPM-Search Generic UIBB checks the actions on the search and result

field catalogs within Configuration Editor, and deliveries to the instance

of Generic Adaptation Class. At last, with the concrete values of result

field catalog, FPM-Search Generic UIBB turns back to the WD (Web

Dynpro) runtime.

4. WD runtime is triggered with the action from end user, and finishes the

action after the consumption of Web Services is done. But there is one

special action compared with the example for the FPM-List Generic

UIBB. At WD runtime, the end user inserts the values for the search

criteria of the search field catalog. Then, all the values are received by

the method of PROCESS_EVENT in the feeder class at runtime and sent

to the Generic Adaptation Class to trigger the third process of

Consumption via Generic Adaptation.

Page 67: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

63

End user

Web Dynpro Runtime FPM-Search Generic UIBB Feeder Class-Search Generic Adaptation Class

Web Dynpro AfterAction

Web Dynpro Onaction

Modify Generic UIBBs

Search Generic UIBB with Result field catalog

Action

Instantiate Feeder Class

Instantiate Generic Adaptation Class

Result field catalog with output value

Attributes

Search field catalog & Result field catalog

Search field catalog with input values

Action of both field catalogs

FPM start

Create Search

Generic UIBB

Feeder Class startProcess of

Acquisition of

Attributes

Field catalog

creation

Get_definition: defines

search field catalog

and result field catalog

Process_event: gets

values for Search

criteria for search

field catalog within

Web Dynpro runtime

Get input value in

the Consumption

via Generic

Adaptation

Check the actions for

result field catalogs

Get output value via

Get_data in the

Consumption via

Generic Adaptation

Figure 3.9: Sequences of Consumption via Generic Adaptation for Search

Generic UIBB

Page 68: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

64

Based on both of the examples above, GET_INPUT_VALUE method of

Consumption via Generic Adaptation can get input values in two different ways.

Figure 3.8 shows the way to get input values special for List or Form Generic

UIBBs, and Figure 3.9 displays the way to get input values special for Search

Generic UIBBs.

The process of Consumption of Generic Adaptation takes care of the interactions

after the consumption of Web Services within Web Dynpro application with

GET_OUTPUT_VALUE method. Figure 3.10 demonstrates the diagram of

result with process of Consumption of Generic Adaptation by implementing the

method of GET_OUTPUT_VALUE for two Web Services. And this example

also depicts the way that Generic Adaptation can work for multiple Web

Services at same time.

In the Figure 3.10, the Generic Adaptation works for two Generic UIBBs to

consume two different Proxy Consumer Classes by separating both of the Proxy

Consumer Classes with names, and for each Proxy Consumer Class, there is one

instance of Generic Adaptation Class is instantiated. After the function calls for

both Proxy Consumer Classes, Proxy Consumer Class A returns output values A

and B, and Proxy Consumer Class B returns output values C, D and E. The

GET_OUTPUT_VALUE method receives the output values and fills them into

different result field catalogs of feeder class-Search and feeder class-List. After

all, Floor Plan Manager Framework displays the Generic UIBBs with concrete

result field catalogs in the Web Dynpro applications.

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

+GET_OUTPUT_VALUE()

Generic Adaptation Class

Actions from the Configuration Editor

+Function call A()

-Output value A

-Output value B

Proxy Consumer Class-A

-Result field catalog : <unspecified> = Output value A

-Result field catalog : <unspecified> = Output value B

Feeder Class-Search Generic UIBB

1

1 1

1

-Result field catalog : <unspecified> = Output value C

-Result field catalog : <unspecified> = Output value D

-Result field catalog : <unspecified> = Output value E

Feeder Class-List Generic UIBB

1

1+Function call B()

-Output value C

-Output value D

-Output value E

Proxy Consumer Class-B

1

1

Figure 3.10: Example of GET_OUTPUT_VALUE method

Page 69: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

65

These three processes are the basic concept of the concept of Generic

Adaptation. All of them are necessary for all kinds of consumption of Web

Services with Generic Adaptation for Floor Plan Manager Framework. However

all Web Services can be divided into two parties based on different

communications. One is synchronous Web Services and another is asynchronous

Web Services. Below, the two sub chapters describe the Generic Adaptation for

both synchronous and asynchronous communications.

Compared with the solution of consuming Web Services with Web Dynpro

ABAP in the chapter 2.2.1, the Generic Adaptation provides a generic solution

for consuming Web Services by encapsulating all the Web Services within

Generic Adaptation. The Floor Plan Manager framework consumes any Web

Services in the same way by implementing the Generic Adaptation Interface. In

addition, there is no need to draw any layout manually within Floor Plan

Manager Framework.

Page 70: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

66

3.3.4 Message-handling Class

This subchapter gives an analysis about the message-handling class for Generic

Adaptation and describes how Generic Adaptation provide the message-handling

class to display message during the consumption of Web Services.

The error-handling is one of the important cases for the consumption of Web

Services. Users require the function to deal with the different kinds of errors

during the consumption of Web Services. Therefore, the message-handling class

is important for the users of Generic Adaptation within Floor Plan Manager

Framework. The message-handling class defines several messages with contexts

and can be displayed when the errors are appeared. Then the users can be alerted

with the messages and trigger the actions in time.

In the chapter 2.1.5 Introduction of Floor Plan Manager Framework, Message

Region of floorplans is the area to display all the messages with the help of

parameter ET_Messages within three methods in the feeder classes.

Generic Adaptation designs one message-handling class, which is separately

with Generic Adaptation Class, and directly, communicates with the parameter

ET_Messages during the actions of feeder classes. There are three methods,

which includes the parameter, need communications with Generic Adaptation.

1. GET_DEFINITION: feeder class defines all the field catalogs within this

method. Generic Adaptation checks whether the action of definition is

successful or not. If the action gets an error, then one error defined

message within message-handling class is stored in the ET_Messages

parameter and displayed in the Message Region.

2. GET_DATA: feeder class gets the output values from the Generic

Adaptation. If the action is successful, then a defined successful message

from message-handling class is transformed into the ET_Messages, and

showed in the Message Region. If the action if not successful, then a

defined error message will be displayed in the Message Region.

3. PROCESS_EVENT: especially, feeder class for Search Generic UIBB

gets the input values for search criteria of search field catalog by

implementing this method. If the action if successful, then a defined

successful message from message-handling class is transformed into the

ET_Messages, and showed in the Message Region. And in the opposite,

an error message will be displayed in the Message Region.

Page 71: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

67

3.4 Generic Adaptation for Synchronous Web Services

Synchronous Web Services stand for the Web Services with synchronous

communications, which require all the parties involved during the

communications. Usually, synchronous Web Services perform business checks

such as tickets availability, where the calling software component waits for a

response before continuing.

Within Enterprise SOA, all the synchronous Web Services are published with

both input and output parameters for each synchronous communication in the

ESR. Figure 3.11 depicts the diagram of Synchronous communication for Web

Services. In the Figure 3.11, synchronous communication includes only two

steps. First, the sender sends the request for the consumption of Web Service.

Then the receiver replies the message with result of consumption to the sender

immediately. Both of the partners of synchronous communications need to be

alive during the synchronous communication, it is meaningful for the use cases

as Web Dynpro applications as UI consume the Web Services. Because the end

user of Web Dynpro applications always want to see the result as soon as he

triggered the consumption of Web Services.

Sender Receiver

Step 1: Sender send message to Receiver with

request to consume the Web Service.

Step 2: Receiver immediately reply message to

Sender with the result of consumption of Web

Service.

Figure 3.11: Diagram of synchronous communication

The sequences for the consumption of synchronous Web Services via Generic

Adaptation within Floor Plan Manager Framework is described below. The Web

Dynpro application based on the Floor Plan Manager Framework stands for the

sender, and the Web Services, which can provide this synchronous

communication, stands for the receiver. Firstly, the process Acquisition of

attributes extracts all the attributes from the input and output parameters. Then

the field catalogs are defined in the methods of GET_DEFINITION and

GET_PARAMETER_LIST in the feeder class under the help of process Field

catalog creation. After that, the process Consumption via Generic Adaptation

updates the configurations within Configuration Editor and triggers the

consumption of synchronous Web Service. Finally, the output values from the

Page 72: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

68

Web Service will be filled into the result field catalog in the Generic UIBB and

displayed via the Web Dynpro application.

Based on the analysis above, Generic Adaptation can fit very well for

synchronous Web Services. Figure 3.12 demonstrates an example of

consumption of the synchronous Web Service with Generic Adaptation. The

example includes two senders and two receivers.

Sender 1

(Feeder

Class 1)

Sender 2

(Feeder

Class 2)

Receiver 1

(Proxy

Consumer

Class 1)

Receiver 2

(Proxy

Consumer

Class 2)

Search field catalog 1

Input parameters 1

Result field catalog 1

Search field catalog 2

Input parameters 2

Result field catalog 2

Generic Adaptation

1.Request for

Receiver 1

6.Return concrete

Result catalog 1

1.Request for

Receiver 2

6.Return concrete

Result catalog 2

Processes of Acquisition

of Attributes &

Field catalog creation

Process of Consumption

via Generic Adaptation

Instance 1 of

Generic Adaptation

Class

Instance 2 of

Generic Adaptation

Class

2.Request for

Attributes

3.All Attributes

2.Request for

Attributes

3.All Attributes

4.Input values

4.Input values

5.Trigger the

Consumptions with

concrete Field

catalogs

Figure 3.12: Diagram of consuming synchronous Web Service

In the Figure 3.12, it shows that for each sender the Generic Adaptation

instantiates an instance of Generic Adaptation Class. Then, first, senders send

requests to Generic Adaptation. Second, after Generic Adaptation receives the

requests from senders, it sends requests for the attributes to the receivers. Third,

all the attributes are acquired from the receiver side as Proxy Consumer Class.

Fourth, senders as Generic UIBBs insert the input values, and the Generic

Adaptation checks and receives. Fifth, Generic Adaptation triggers the

consumption of receivers. Finally, the concrete result values are filled in the

result field catalogs and sent to the senders.

However, in the Figure 3.12, the senders are the Generic UIBBs within Floor

Plan Manager Framework, and the Proxy Consumer Classes stand for the

receivers. Generic Adaptation provides one Generic Adaptation Class for one

Page 73: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

69

Proxy Consumer Class, as described as Instance of Receiver in the Figure 3.12.

Firstly, Generic Adaptation receives the requests for the consumption of

receivers, it instantiates the instances of Proxy Consumer Classes within Generic

Adaptation Classes. After the feeder classes fill the input values for the created

field catalogs and input parameters. The consumption of Web Services starts by

calling both instances within Generic Adaptation Classes. Finally, the concrete

result field catalogs are returned to the Generic UIBBs to display.

In conclusion, the mechanism of Generic Adaptation is not only working for the

synchronous Web Services, also provides a generic solution for the consumers to

consume more than one Web Service by implementing the Generic Adaptation

Interface with the same four methods and the same processes.

Page 74: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

70

3.5 Generic Adaptation for Asynchronous Web Services

Asynchronous Web Services stand for the Web Services with asynchronous

communications, which do not require all the parties alive involved during the

communications. Asynchronous Web Services are usually used in processes that

are separate business process steps, where the calling software component or

service continues to operate without waiting for a response.

Figure 3.13 displays the diagram of asynchronous communication. The first part

of the diagram is quite similar to the diagram of synchronous communication.

But there is no direct response immediately sent from receiver to sender. There

are more steps processed in the backend from both sides. On the receiver side,

the process of request is happened in the backend after the receiver is alive. On

the sender side, there is a container in the backend, which is used to periodically

check the return messages from receiver. If the message arrives, the container

stores the value and then informs the sender with a warning message. Finally,

the result message can be showed or received in an application at sender side.

Sender Receiver

Step 1: When Sender is on-line, Sender sends

message to Receiver with request to consume the

Web Service.

.

.

.

Step 2: When Receiver is on-

line, it processes the request for

a period time.

Receiver

(Backend)

Container

(Backend)

Step 3: After the process during some period time, the

result of consumption is sent back to the sender side.

Step 4: When the reply is

notified, the container stores

the result, and create a

warning to Sender with the

receipt of the result

consumption.

Figure 3.13: Diagram of asynchronous communication

From Chapter Background, ESR is the repository to store all the Web Services

for Enterprise SOA. ESR provides one pair of service interfaces to encapsulate

the Web Service, and provides a communication channel for the consumption

via ESR in Enterprise SOA.

Page 75: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

71

For synchronous Web Service, the inbound service interface provides the Proxy

Provider Class at the provider part, and the consumer requires to generate a

Proxy Consumer Class at the outbound service interface based on the WSDL

provided by the Proxy Provider Class, in the meantime, endpoint and logical port

are created to guarantee the communication between both proxy classes through

the service interfaces.

However, it is different for asynchronous Web Service in ESR. The process of

asynchronous communication is supported with two steps and two pair of

inbound and outbound service interfaces. The first pair of service interfaces

provides a Proxy Provider Class at the inbound service interface in the same way

like the synchronous Web Service as showed in the Figure 2.7, but the method of

this Proxy Provider Class includes only input parameter. Therefore the first pair

of service interfaces is only responsible for the message of requesting. Then the

second pair of service interfaces provides a Proxy Consumer Class at the

outbound service interface. And this proxy class includes a method with only

output parameter, which is only responsible for the message of responding.

Consequently, the consumer for the asynchronous Web Service requires to

generate a Proxy Consumer Class based on the first pair of service interfaces to

achieve only responsible for the requesting, which is the same way as for the

synchronous Web Service. In additional, the consumer has to generate a Proxy

Provider Class based on the second pair of service interfaces to be responsible

for the responding. The ESR, when publishing the asynchronous Web Service

into ESR, supports the communication between both of the proxy classes at the

provider side automatically.

As the analysis above, for the first step of asynchronous communication,

Generic Adaptation can fit very well in the same way by extracting the attributes

of input parameters of Proxy Consumer Class at the consumer side, creating the

field catalogs for the Generic UIBBs and consuming the Web Service, but no

result field catalog for the output values. For the second step of asynchronous

communication, Generic Adaptation can also extract the attributes of output

parameter of Proxy Provider Class at consumer side, and create the result field

catalog to contain the concrete value of the attributes. However the process of

Consumption via Generic Adaptation is not required to trigger the consumption,

it only requires to delivery the result field catalog into the Generic UIBBs. The

processes of checking the message of responding and filling the concrete value

are both guaranteed by the process in the backend, not relative to the Floor Plan

Manager Framework.

Figure 3.14 describes the diagram of consuming asynchronous Web Service via

Generic Adaptation. Because the proxy classes are different, the Generic

Adaptation provides one Generic Adaptation Classes for both steps separately.

In the step two, the message of responding can also be displayed in other

applications, compared with the Generic UIBBs.

Page 76: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

72

Sender 1

(Feeder

Class 1)

Receiver 1

(Proxy

Consumer

Class 1)

Search field catalog 1

Input parameters 1

Generic Adaptation

1.Request for

Receiver 1

Processes of Acquisition

of Attributes &

Field catalog creationProcess of Consumption

via Generic Adaptation

Instance 1 of

Generic

Adaptation Class

2.Request for

Attributes

3.All Attributes

4.Input values

5.Trigger the

Consumptions with

concrete search

field catalog 1 and

input parameter 1

Processing when receiver

aliveSender 1

(Feeder Class 2 )

Receiver 1

(Proxy

Provier

Class 1)

Result field

catalog 1

Generic Adaptation

Processes of Acquisition

of Attributes &

Field catalog creation

1.All Attributes

Sender 1

(Other

applications)

2. Process in the backend fills the concrete values

Figure 3.14: Diagram of consuming asynchronous Web Services

Compared with Figure 3.12, Generic Adaptation can work for both synchronous

and asynchronous Web Services. For synchronous Web Services, one Generic

Adaptation Class is implemented to achieve the whole consumption of one

synchronous Web Service. However two Generic Adaptation Classes are

implemented to achieve the whole consumption of one asynchronous Web

Service. Therefore, Generic Adaptation Class is dependent on the proxy classes,

but Generic Adaptation Class is not dependent on the feeder classes. However

the Generic Adaptation Interface is dependent on neither of proxy classes nor

feeder classes.

In conclusion, Generic Adaptation provides a generic solution to consume all

kinds of SAP Web Services within Floor Plan Manager Framework.

Page 77: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

73

3.6 Analysis of automation for the three processes

This section describes the analysis of automation for the three processes. As

discussed in the Table 2.3, the design of Generic Adaptation has no requirements

for the automation. However, the three processes can be semi-automation to

enhance the functionalities of Generic Adaptation.

For the process of Acquisition of attributes, as described in the section 3.3.1, it is

semi-automation. The Controller predefines the flatten parameter types with the

attributes, and then searches for the parameter types of Web Services at runtime

by comparing with the name of Web Services and methods. Moreover, the

Controller compares the attribute types within the predefined parameter types

with the attribute types from the searched parameter types at runtime one by one.

If it is the same, then the attributes are filled into the predefined flatten

parameter types. During this process, there is one problem, which is the

complicit for the attributes’ names. For instance, the deep parameter type in the

Figure 3.4 on the right, if the attribute B and attribute E have the same name

Student. Then the Controller fills AttributeB_Student and AttributeE_Student

into the predefined flatten parameter types.

For the process of Field catalog creation, all the field catalogs are defined with

the predefined flatten parameter types in the methods

CREATE_FIELD_CATALOG and CREATE_INPUT_PARAMETER at design

time. This process can be automation, in which all the field catalogs are defined

based on the predefined flatten parameter types at runtime automatically.

However, it is much easier to define the field catalogs with the predefined flatten

parameter types at design time.

For the process of Consumption via Generic Adaptation, the best way to support

automation is to provide a wizard with several steps. The steps are provided for

the users to insert the names of Web Services, Generic UIBBs, and also the

attributes of the parameter types and etc. And then the Generic Adaptation Class

for the specific Web Service is generated out. However, within this thesis, the

process of Consumption via Generic Adaptation is achieved by the method

GET_INPUT_VALUE and GET_OUTPUT_VALUE within the Generic

Adaptation Interface.

Page 78: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

74

3.7 Summary

The conclusion from the above design is, Generic Adaptation can work as a

bridge between the Enterprise SOA and Floor Plan Manager Framework by

providing a generic solution for the consumption of all kinds of Web Services in

Web Dynpro applications with Floor Plan Manager Framework. The advantages

that

Generic Adaptation is a generic solution by encapsulating all the attributes of

input and output parameters of the Web Services with Generic UIBBs within

Floor Plan Manager Framework under the implementation of the Generic

Adaptation Interface with four methods. Figure 3.10 depicts an example of the

consumption for two different Web Services, and those two Web Services are

consumed in the same way by implementing the Generic Adaptation Interface to

improve the solution for multiple Web Services is generic. However, the Generic

Adaptation Classes is specific for each Web Service, but all the different Generic

UIBBs can consume one Web Service via the same Generic Adaptation Class.

From the examples of Figure 3.8 and Figure 3.9, all the three recent Generic

UIBBs can work with the Generic Adaptation based on the concepts above.

Even later, there might be some new Generic UIBBs are introduced by Floor

Plan Manager Framework, it is also possible to consume Web Services via

Generic Adaptation by analyzing the field catalog and input parameter of the

new Generic UIBBs.

It is a little bit different to consume asynchronous Web Services via Generic

Adaptation as to consume synchronous Web Services. For the consumption of

asynchronous Web Services, except the Web Dynpro application for the end user

to trigger the consumption, it is necessary to deal with the messages of

responding separately with another pair of proxy classes, and also display the

responses with another Generic UIBB or other applications.

There is one fact required to be enhanced is the way to differentiate the

mandatory attributes and optional attributes of input and output parameters of

Web Services. Although, the Configuration Editor can differentiate the

mandatory attributes with optional attributes by proving a warning message

during the configurations by the administrator. However, Generic UIBBs do not

provide the functions to check all the mandatory attributes included. Therefore,

the functionalities of Generic Adaptation is required improving the function to

guarantee the entire mandatory attributes assembly.

Page 79: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

75

Chapter 4 Implementation

This chapter covers details about the implementation of Generic Adaptation.

First, the overview of the implementation environment is explained and second,

the important field catalog types are described in the subchapter. In the third part

of this chapter, the implementation of the four methods defined within Generic

Adaptation Interface is described. The fourth part of this chapter, the

implementation of specific Generic Adaptation Class is presented, which

contains the implementation for the processes within the concept of design for

Generic Adaptation based on the synchronous Web Services.

Since the existing architectures and technologies are described in chapter

Background, in this chapter, only the implementation related to the Generic

Adaptation is described. Table 4.1 includes the names of Generic Adaptation

entities and used feeder classes for the implementation.

Generic Adaptation Interface IF_GENERIC_ADAPTATION

Generic Adaptation Class CL_GENERIC_ADAPTATION

List Feeder Class ZHK_WS_TEST_FOR_NEWIF

Search Feeder Class ZHK_WS_TEST_FOR_NEWIF_SEARCH

Table 4.1: Table of entities for Generic Adaptation for implementation

Below describes the necessary steps to complete the implementation of Generic

Adaptation:

1. Searching the parameter types of Web Services at runtime;

2. Acquisition of attributes and define the field catalogs with the attributes at

design time;

3. Get the input values for the input parameter or search field catalogs at

runtime;

4. Trigger the consumption of Web Services, and return the output values and

fill into the result field catalogs for the Generic UIBBs.

Page 80: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

76

4.1 Development environment Because of the requirements for Floor Plan Manager Framework, Generic

Adaptation is achieved based on the Web Dynpro ABAP, and all the classes are

implemented in ABAP OO language, which is a Object-Oriented programming

language used within SAP.

The prototype of the Generic Adaptation is implemented to prove the concept of

Generic Adaptation. The prototype is comprised with several use cases of the

usages for different Generic UIBBs and Web Services. All the successful use

cases can illustrate Generic Adaptation is a generic solution for Floor Plan

Manager Framework to consume all kinds of Web Services.

Page 81: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

77

4.2 Important field catalog types

Field catalog types stand for the types of field catalog, which requires creating in

the process of Field catalog creation. Because the Generic UIBBs within Floor

Plan Manager Framework can work only for flat structure, it is necessary to

create these field catalogs in flat structure to achieve good compatibility with

Floor Plan Manager Framework.

Based on the different Generic UIBBs, the field catalogs are including three

different field catalog types. All the data types of field catalogs are defined with

structures below, and all the structures are provided by different Generic UIBBs.

1. Input parameter:

FPMGB_S_PARAM_DESCR:

NAME: STRING

TYPE: CHAR

2. Search field catalog:

FPMGB_S_SEARCHFIELD_DESCR:

NAME: CHAR

TEXT: STRING

3. Result field catalog:

FPMGB_S_LISTFIELD_DESCR:

NAME: CHAR

TEXT: STRING

Therefore, by defining the field catalog types with these structures, all the field

catalogs with the attributes from Web Services can be integrated into Generic

UIBBs and configured with Configuration Editor by the administrator.

Page 82: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

78

4.3 Important methods within Generic Adaptation Interface

Generic Adaptation Interface, which is the main part of Generic Adaptation

solution, is totally generic for Floor Plan Manager Framework and Web

Services. The consumption of Web Service within Floor Plan Manager

Framework is achieved by implementing the Generic Adaptation Interface.

The four methods defined by Generic Adaptation Interface are responsible to

realize the three processes of Generic Adaptation, which are described in the

chapter 3 as the main extending part based on the existing architectures and

technologies. And also the four methods satisfy the basic requirements for the

design of Generic Adaptation. The methods of CREATE_FIELD_CATALOG

and CREATE_INPUT_PARAMETER take care of the processes of Acquisition

of attributes and Field catalog creation, and the methods of

GET_INPUT_VALUE and GET_OUTPUT_VALUE response for the process of

Consumption via Generic Adaptation. All the methods are defined with

importing and exporting parameter. All the parameters, which are used to

transmit the information in the runtime, are required to fit both Floor Plan

Manager Framework and Web Services.

1. CREATE_FIELD_CATALOG: is responsible to create field catalogs

with two exporting parameters: EO_FIELD_CATALOG_HK and

ET_FIELD_DESCRIPTION_HK. Table 4.2 includes the parameters of

method CREATE_FIELD_CATALOG.

Parameter Description

EO_FIELD_CATALOG_HK (type ref

to CL_ABAP_TABLEDESCR)

Exporting parameter, contain the

fields;

ET_FIELD_DESCRIPTION_HK (type

FPMGB_T_LISTFIELD_DESCR)

Exporting parameter, contain the

description of fields.

Table 4.2: Parameters of CREATE_FIELD_CATALOG

2. CREATE_INPUT_PARAMETER: is responsible to create input

parameters with one exporting parameter INPUT_PARAMETER. Table 4.3

depicts the parameter of method CREATE_INPUT_PARAMETER.

Parameter Description

INPUT_PARAMETER (type

FPMGB_T_PARAM_DESCR)

Exporting parameter, contain the pair

of name and type for input parameters.

Table 4.3: Parameter of CREATE_INPUT_PARAMETER

Page 83: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

79

3. GET_INPUT_VALUE: is responsible to get the changed values of Input

parameter from Configuration Editor for List or Form Generic UIBBs or get

the input values for search criteria by communicating with the method

PROCESS_EVENT in the feeder class special for Search Generic UIBBs.

There is one importing parameter INPUT_PROXY_VALUE. Table 4.4

shows the parameter of method GET_INPUT_VALUE.

Parameter Description

INPUT_PROXY_VALUE (type ref to

DATA)

Importing parameter, receive the input

values.

Table 4.4: Parameter of method GET_INPUT_VALUE

4. GET_OUTPUT_VALUE: is responsible to trigger the consumption of

Web Service, get the returned output values and deliver to the feeder classes

of Generic UIBBs. A pair of importing and exporting parameters is defined

for the transmission of information. Table 4.5 shows the parameters of

method GET_OUTPUT_VALUE.

Parameter Description

INPUT_PROXY (type ANY) Importing parameter, contain the

inputs for the consumption of Web

Service;

OUTPUT_PROXY (type DATA) Exporting parameter, contain the

outputs after the consumption of Web

Service.

Table 4.5: Parameters of method GET_OUTPUT_VALUE

However, all the four methods defined within Generic Adaptation Interface work

as adapter for Floor Plan Manager Framework by providing the flatten field

catalogs to fit the requirements of Generic UIBBs, and fill the concrete values

into the field catalogs by communicating with the Web Services.

Page 84: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

80

4.4 Implementation of Generic Adaptation Class

Based on the concept of the design, the implementation of Generic Adaptation

Interface is generic for all kinds of Web Services and also generic for different

Generic UIBBs with consumptions. However, the implementation of Generic

Adaptation Class is specific for the different Web Services. For each Web

Service, there is at least on instance of Generic Adaptation Class is instantiated.

Below Table 4.6 describes the specific Web Services:

Name Description

Business Partner By ID Query Response Name of the specific Web Service

Synchronous Web Service Communication type

ZBPHKCO_BUSINESS_PARTNER_BY_ID Name of Proxy Consumer Class

BUSINESS_PARTNER_BY_IDQUERY_RE Name of method

ID Name of attributes in the input

parameter

LASTNAME, FIRSTNAME,

COMPANY_NAME, PARTNER_ID &

LEGAL_FORM

Name of attributes in the output

parameter

Table 4.6: Description of the specific Web Service

Page 85: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

81

4.4.1 Implementation of processes Acquisition of attributes &

Field catalog creation

Processes of Acquisition of attributes and Field catalog creation with methods

CREATE_FIELD_CATALOG and CREATE_INPUT_PARAMETER:

For List Generic UIBB:

Field of Input parameter: ID;

Fields of Result field catalog:

LASTNAME, FIRSTNAME, COMPANY_NAME, PARTNER_ID &

LEGAL_FORM;

For Search Generic UIBB:

Search criteria of Search field catalog: ID;

Fields of Result field catalog:

LASTNAME, FIRSTNAME, COMPANY_NAME, PARTNER_ID &

LEGAL_FORM;

Within this step, in the method of CREATE_FIELD_CATALOG, includes the

creation of field catalog and the acquisition of parameter types for the Web

Service.

DATA:

ls_descr_result type line of FPMGB_T_LISTFIELD_DESCR.

Ls_descr_result-name = 'LASTNAME'.

APPEND ls_descr_result TO et_field_description_hk.

Ls_descr_result-name = 'FIRSTNAME'.

APPEND ls_descr_result TO et_field_description_hk.

Ls_descr_result-name = 'COMPANY_NAME'.

APPEND ls_descr_result TO et_field_description_hk.

Ls_descr_result-name = 'PARTNER_ID'.

APPEND ls_descr_result TO et_field_description_hk.

Ls_descr_result-name = 'LEGAL_FORM'.

APPEND ls_descr_result TO et_field_description_hk.

eo_field_catalog_hk ?= cl_abap_tabledescr=>describe_by_data( lt_list_bp ).

Listing 4.1: Sample codes for creation of field catalog for List Generic UIBB

Page 86: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

82

Creation of field catalog for List Generic UIBB is described in Listing 4.1

above, and below Listing 4.2 is the code for the acquisition of parameter types

for the Web Service of Business Partner By ID Query Response.

output = lo_class_rtti->GET_METHOD_PARAMETER_TYPE

( P_METHOD_NAME = 'BUSINESS_PARTNER_BY_IDQUERY_RE'

P_PARAMETER_NAME = 'output').

input = lo_class_rtti->GET_METHOD_PARAMETER_TYPE

( P_METHOD_NAME = 'BUSINESS_PARTNER_BY_IDQUERY_RE'

P_PARAMETER_NAME = 'input').

Listing 4.2: Sample codes of acquisition of parameter types

Figure 4.1 depicts the diagram of implementation for this specific Web Service

after the first step for List and Search Generic UIBBs.

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

Generic Adaptation Class

+BUSINESS_PARTNER_BY_IDQUERY_RE()

-ID

-LASTNAME

-FIRSTNAME

-COMPANY_NAME

-PARTNER_ID

-LEGAL_FORM

ZBPHKCO_BUSINESS_PARTNER_BY_ID

Input parameter, Output parameter

+GET_DEFINITION()

+GET_PARAMETER_LIST()

-Input parameter : <unspecified> = ID

-Result field catalog : <unspecified> = LASTNAME

-Result field catalog : <unspecified> = FIRSTNAME

-Result field catalog : <unspecified> = COMPANY_NAME

-Result field catalog : <unspecified> = PARTNER_ID

-Result field catalog : <unspecified> = LEGAL_FORM

List Feeder Class

1 1

+GET_DEFINITION()

-Search field catalog : <unspecified> = ID

-Result field catalog : <unspecified> = LASTNAME

-Result field catalog : <unspecified> = FIRSTNAME

-Result field catalog : <unspecified> = COMPANY_NAME

-Result field catalog : <unspecified> = PARTNER_ID

-Result field catalog : <unspecified> = LEGAL_FORM

Search Feeder Class

1

1 1

1

Figure 4.1 Diagram of implementation for the specific Web Service after the

first step for List and Search Generic UIBBs

Page 87: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

83

Figure 4.1 shows that after the first step of Generic Adaptation, the Generic

Adaptation Class extracts all the attributes from input and output parameter from

Proxy Consumer Class of ZBPHKCO_BUSINESS_PARTNER_BY_ID. And

also creates field catalogs for both List and Search feeder classes by

implementing the method of CREATE_FIELD_CATALOG and the method of

CREATE_INPUT_PARAMETER via GET_DEFINITION and

GET_PARAMETER_LIST.

Page 88: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

84

4.4.2 Implementation of process Consumption via Generic

Adaptation section one

Section one of process Consumption via Generic Adaptation with method

GET_INPUT_VALUE:

For List Generic UIBB, it communicates with the parameter of

IT_PARAMETER within the method INITIALIZE as showed in the Listing 4.3:

IF IT_PARAMETER IS NOT INITIAL.

LOOP AT IT_PARAMETER INTO ls_parameter.

mr_input_value = ls_parameter-value.

ENDLOOP.

ENDIF.

CALL METHOD lr_gac->IF_Generic_Adaptation~get_input_value (

EXPORTING

input_proxy_value = mr_input_value).

Listing 4.3: Sample codes of GET_INPUT_VALUE for List Generic

UIBB

IT_PARAMETER is the parameter within INITIALIZE, kept the input values

for the input parameter, and lr_gac is the instance of Generic Adaptation Class.

For Search Generic UIBB, it communicates with the method

PROCESS_EVENT via parameter of IT_FPM_SEARCH_CRITERIA as

described in the Listing 4.4:

cl_fpm_guibb_search_conversion=>to_abap_select_where_tab( EXPO

RTING it_fpm_search_criteria = it_fpm_search_criteria

IMPORTING et_abap_select_table = lt_result ).

CALL METHOD lr_gac->IF_Generic_Adaptation~get_input_value (

EXPORTING

input_proxy_value = ls_result-partner_id).

Listing 4.4: Sample codes of GET_INPUT_VALUE for Search Generic UIBB

Page 89: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

85

After the end user inserts the input values for the search criteria of search field

catalog, the end user pushes the search button, then the codes above is triggered

to get the input value for Search Generic UIBB.

Figure 4.2 shows the diagram of implementation for the first section based on

the specific Web Service for List and Search Generic UIBBs.

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

+GET_INPUT_VALUE()

Generic Adaptation Class

INPUT_PROXY_VALUE

+INITIALIZE()

-Input parameter value : <unspecified> = 0000000008

List Feeder Class

IT_PARAMETER

+PROCESS_EVENT()

-Search field catalog value : <unspecified> = 0000000008

Search Feeder Class

IT_FPM_SEARCH_CRITERIA

1

1 1

1

Figure 4.2: Diagram of implementation for the method GET_INPUT_VALUE

based on the specific Web Service for List and Search Generic UIBBs

Figure 4.2 shows that the implementation of GET_INPUT_VALUE of the

specific Web Service for both List and Search Generic UIBBs. The importing

parameter INPUT_PROXY_VALUE gets input values from parameter

IT_PARAMETER from List feeder class, and also gets input values for search

criteria from parameter IT_FPM_SEARCH_CRITERIA from Search feeder

class.

Page 90: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

86

4.4.3 Implementation of process Consumption via Generic

Adaptation section two

Section two of process Consumption via Generic Adaptation with method

GET_OUTPUT_VALUE. For all kinds of Generic UIBBs, the method

GET_OUTPUT_VALUE triggers the consumption of Web Service and sends

the output values to the method GET_DATA to create the concrete result field

catalog for Generic UIBBs.

CALL METHOD lr_bp_proxy_class->

BUSINESS_PARTNER_BY_IDQUERY_RE(

EXPORTING

input = input_proxy_value

IMPORTING

output = ls_bp ).

APPEND ls_bp TO lt_bp.

LOOP AT lt_bp INTO ls_bp.

le_bp-firstname = ls_bp-business_partner_by_idreponse-business_partner-

person-firstname.

le_bp-lastname = ls_bp-business_partner_by_idreponse-business_partner-

person-lastname.

le_bp-company_name = ls_bp-business_partner_by_idreponse-

business_partner-organization-company_name.

le_bp-legal_form = ls_bp-business_partner_by_idreponse-business_partner-

organization-legal_form.

le_bp-partner_id = ls_bp-business_partner_by_idreponse-business_partner-id.

ENDLOOP.

APPEND le_bp TO OUTPUT_PROXY

Listing 4.5: Sample codes of GET_OUTPUT_VALUE method

Above, Listing 4.5 are the codes within method GET_OUTPUT_VALUE,

lr_bp_proxy_class is instance of ZBPHKCO_BUSINESS_PARTNER_BY_ID.

The parameter OUTPUT_PROXY value contains the result values and is sent to

GET_DATA to fill the result catalog and displayed in the Generic UIBBs.

CALL METHOD lr_gac->IF_Generic_Adaptation~get_output_value(

EXPORTING

INPUT_PROXY = input_proxy_value

IMPORTING

OUTPUT_PROXY = CT_DATA).

Listing 4.6: Sample codes of GET_DATA method

Page 91: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

87

Above, Listing 4.6 is the code within the GET_DATA method, which calls the

method GET_OUTPUT_VALUE to get the concrete output values to the

parameter CT_DATA. This parameter belonged to GET_DATA is responsible to

delivery the concrete output values for the result field catalog in the Generic

UIBBs at runtime automatically by Floor Plan Manager Framework.

Figure 4.3 displays the diagram of implementation of GET_OUTPUT_VALUE

based on the specific Web Service in the process of Consumption via Generic

Adaptation for both List and Search Generic UIBBs.

+CREATE_FIELD_CATALOG()

+CREATE_INPUT_PARAMETER()

+GET_INPUT_VALUE()

+GET_OUTPUT_VALUE()

«interface»Generic Adaptation Interface

+GET_OUTPUT_VALUE()

Generic Adaptation Class

INPUT_PROXY, OUTPUT_PROXY

+BUSINESS_PARTNER_BY_IDQUERY_RE()

-LASTNAME : <unspecified> = Brown

-FIRSTNAME : <unspecified> = Maria

-COMPANY_NAME : <unspecified> = DelBont Industries

-PARTNER_ID : <unspecified> = 0000000008

-LEGAL_FORM : <unspecified> = Ltd.

ZBPHKCO_BUSINESS_PARTNER_BY_ID

+GET_DATA()

-Result field catalog : <unspecified> = Brown

-Result field catalog : <unspecified> = Maria

-Result field catalog : <unspecified> = DelBont Industries

-Result field catalog : <unspecified> = 0000000008

-Result field catalog : <unspecified> = Ltd.

List Feeder Class

CT_DATA

11

+GET_DATA()

-Result field catalog : <unspecified> = Brown

-Result field catalog : <unspecified> = Maria

-Result field catalog : <unspecified> = DelBont Industries

-Result field catalog : <unspecified> = 0000000008

-Result field catalog : <unspecified> = Ltd.

Search Feeder Class

CT_DATA

1

1 1

1

Figure 4.3: Diagram of implementation of GET_OUTPUT_VALUE based on

the specific Web Service for both List and Search Generic UIBBs.

In the Figure 4.3, during the process of Consumption via Generic Adaptation,

the Generic Adaptation Class triggers the Proxy Consumer Class via parameter

INPUT_PROXY provided by the method GET_OUTPUT_VALUE and the

parameter INPUT_PROXY_VALUE provided by the GET_INPUT_VALUE

method. And then the output values are returned and stored in the parameter

OUTPUT_PROXY. At last, by communicating with the parameter of

CT_DATA in the GET_DATA methods for both feeder classes, the output

values are filled into the result field catalogs for both of List and Search Generic

UIBBs.

Page 92: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

88

4.5 Summary

In conclusion, based on the implementation examples above, the Generic

Adaptation Interface is generic, and the Generic Adaptation Class is specific for

the specific Web Service, but is also generic for different Generic UIBBs.

Therefore, the implementation proves the concept of design, and also

implements the concept of the Generic Adaptation. The next chapter Evaluation

displays several use cases of consumption Web Services via Generic Adaptation

within Floor Plan Manager Framework.

Page 93: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

89

Chapter 5 Evaluation

In this chapter, it is focusing on the evaluations when consuming Web Services

via Generic Adaptation within Floor Plan Manager Framework. All of the

evaluations for synchronous and asynchronous Web Services are described in

this chapter. However, it puts emphasis on the synchronous Web Service.

For the evaluation of synchronous Web Service, this chapter depicts the

consumption from two different Generic UIBBs, one is List Generic UIBB and

the other is Search Generic UIBB. All the three processes during the solution of

Generic Adaptation are evaluated, and also compared with the solution of

consuming Web Services with Web Dynpro ABAP described in the chapter

2.2.1.

For the evaluation of asynchronous Web Service, a Form Generic UIBB within

Floor Plan Manager Framework consumes one asynchronous Web Service to

show the evaluations of Generic Adaptation for asynchronous Web Services.

Page 94: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

90

5.1 Synchronous Web Service via Generic Adaptation

In this section, the evaluation of consumption for synchronous Web Service via

Generic Adaptation will be evaluated as introduced in the chapter 3.4. The

performance is according to two use cases of consumptions separately from List

Generic UIBB and Search Generic UIBB within Floor Plan Manager

Framework. And then another use case is that two synchronous Web Services

are consumed via Generic Adaptation together within two Generic UIBBs in one

floorplan. The processes, which are used within this evaluation, are described in

the chapter 3.3. The synchronous Web Service is introduced in the chapter 4.4,

called Business Partner By ID Query Response. Another synchronous Web

Service is introduced in the chapter 5.1.3. The floorplan used for this evaluation

is OVP, as showed in the Figure 2.11.

5.1.1 Synchronous Web Service for List Generic UIBB

This section shows the evaluation of the synchronous Web Service, named

Business Partner By ID Query Response for List Generic UIBB. The processes

are introduced in the chapter 3.3. After the processes of Acquisition of attributes

and Field catalog creation, the input parameter and result field catalog are

created. The administrator now can insert values for the input parameter and also

choose the fields to display in the List Generic UIBB via Configuration Editor.

Figure 5.1 and Figure 5.2 show that the administrator is inserting values for

input parameter and choosing the fields to display later.

Figure 5.1: Inserting value for input parameter

As the input parameter includes only one attribute, called ID, for the method of

BUSINESS_PARTNER_BY_IDQUERY_RE in the Web Service of Business

Partner By ID Query Response, therefore, only one input parameter is created,

named ZBPHKPARTY_PARTY_ID. Figure 5.1 displays the popup from the

Page 95: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

91

Configuration Editor, and then the administrator inserts “0000000008” as the

value for the input parameter.

Figure 5.2: Choosing fields for result field catalog

As described in the section 4.4, the output parameter of method

BUSINESS_PARTNER_BY_IDQUERY_RE includes five attributes, called

LASTNAME, FIRSTNAME, COMPANY_NAME, PARTNER_ID &

LEGAL_FORM, in the Web Service Business Partner By ID Query Response,

therefore the created result field catalog contain all the five attributes as fields.

Figure 5.2 displays the popup from the Configuration Editor, and then the

administrator decides to display all the five fields in the List Generic UIBB via

Configuration Editor.

Compared with the solution introduced in the chapter 2.2.1, named consuming

Web Service via Web Dynpro ABAP, during the creation of the service call the

user needs to manually configure the attributes as inputs or outputs. And also

after the service call is created as Web Dynpro component, the user requires

drawing the layout, writing codes to insert value for the inputs manually and

mapping the layout with the input values. However, by reusing the framework of

Floor Plan Manager Framework, Generic Adaptation provides a much easier

solution for users to handle the preparation of consumption Web Services

obviously.

Subsequently, the method of GET_INPUT_VALUE within process of

Consumption via Generic Adaptation gets the input value “0000000008” for the

input parameter, and sends to the method of GET_OUTPUT_VALUE as inputs

to call the Web Service.

Page 96: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

92

Afterward, the output values are received and filled in the result field catalog in

the List Generic UIBB. Figure 5.3 describes the List Generic UIBB after the

consumption of the Web Service.

Figure 5.3: List Generic UIBB with output values

Figure 5.3 shows that the List Generic UIBB is displayed in the OVP floorplan

with the output values. Based on the input value of “0000000008”, the

consumption is triggered, and the concrete values for the attributes in the output

parameter are filled in the result field catalog.

The advantages of Generic Adaptation for synchronous Web Service with List

Generic UIBBs:

With Generic Adaptation, all the attributes with the parameters of Web

Service are all mapped in the field catalogs and input parameters. Then it is

much more convenient for the user to communicate with all the attributes.

With Generic Adaptation, compared with the solution of consumption via

Web Dynpro ABAP, it is much more meaningful. As in the solution of

consumption via Web Dynpro ABAP, all the attributes in the output

parameter are displayed in the screen after consumption. For example, one

Web Service includes the output parameter with 1000 attributes, most of the

values of attributes in the output parameter are blank or not relative the

usages. However, with Generic Adaptation, the user can work with the

Generic UIBBs as interface to choose the attributes displayed in the screen.

Page 97: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

93

5.1.2 Synchronous Web Service for Search Generic UIBB

This section shows the evaluation of the synchronous Web Service, named

Business Partner By ID Query Response for Search Generic UIBB. The

processes are introduced in the chapter 3.3. After the processes of Acquisition of

attributes and Field catalog creation, the search field catalog and result field

catalog are created with the attributes from input and output parameters of the

Web Service. Then the administrator can choose the fields of both field catalogs

to display as search criteria or result field catalog in the Search Generic UIBB.

Figure 5.4 and Figure 5.5 show that the administrator is choosing fields for both

field catalogs.

Figure 5.4: Choosing field for search criteria

In the Figure 5.4, only one field, named PARTNER_ID is chosen as search

criteria as there is only one attribute in the input parameter of Web Service

Business Partner By ID Query Response.

Below, Figure 5.5 shows that all the fields displayed in the result field catalog

for the Search Generic UIBB.

Page 98: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

94

Figure 5.5: Choosing fields for result field catalog

However, the method GET_INPUT_VALUE gets the input value at runtime

from the end user by communicating with the IT_FPM_SEARCH_CRITERIA

parameter in the method PROCESS_EVENT in the feeder class. This parameter

contains the input value from the end user for the search criteria. Then the input

value is stored in the parameter INPUT_PROXY_VALUE of method

GET_INPUT_VALUE.

After that, within the process of Consumption via Generic Adaptation, the

method GET_OUTPUT_VALUE triggers the consumption of Web Service with

the search criteria value. Then the output values are returned and stored within

parameter OUTPUT_VALUE. Finally, the output values are filled in the result

field catalog and displayed as showed in the Figure 5.6.

Figure 5.6: Search Generic UIBB with result list catalog

In the Figure 5.6, the Search Generic UIBB with the search criteria and result

field catalog are displayed, also with the successful messages in the Message

Region in the OVP floorplan. Moreover, the successful message is displayed to

depict that the consumption of Web Service is successful.

Page 99: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

95

The advantages of Generic Adaptation for synchronous Web Service with

Search Generic UIBBs:

With Generic Adaptation, all the attributes with the parameters of Web

Service are all mapped in the search field catalogs and result field catalog.

The user can easily work on the search criteria and see the result in the result

field catalog. All the attributes are visible to the user via the field catalogs as

interfaces in the Search Generic UIBB. The user can choose the relevant

attributes, and delete the non-relevant attributes in the search criteria and also

in the final result field catalog.

With Generic Adaptation, compared with the solution of consumption via

Web Dynpro ABAP, it is much more meaningful. As in the solution of

consumption via Web Dynpro ABAP, all the attributes in the parameters

require to be manually mapped in the Web Dynpro context. And the user can

only work on the attributes while coding.

By reusing the feather of Message Region, the user can be informed whether

the consumption is successful or not via the messages displayed in the

Message Region.

Page 100: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

96

5.1.3 Two synchronous Web Services for two Generic UIBBs

This section introduces another use case, which includes two synchronous Web

Services, and two Generic UIBBs. Both of the Web Services are consumed

within one OIF floorplan in the separate Generic UIBB.

This evaluation shows that with Generic Adaptation, the user of Floor Plan

Manager Framework can consume more than one Web Service in the same

floorplan at same time. For example, if the user wants to search for the

information of a business partner and also display the information of a product.

Then he might need to consume two synchronous Web Services in the same

floorplan at same time. Generic Adaptation can also work for this use case by

create two local instances of Generic Adaptation Class for each synchronous

Web Services.

Table 5.1 depicts the description of the second synchronous Web Service with

the name of method, attributes of input parameter and also output parameter.

Name Description

Product By ID Query Response Name of the second Web

Service

Synchronous Web Service Communication type

ZPOHKCO_PRODUCT_BY_IDQUERY_RES Name of Proxy Consumer Class

PRODUCT_BY_IDQUERY_RESPONSE_IN Name of method

PRODUCT_ID Name of attributes in the input

parameter

PRODUCT_ID, CATEGORY_ID,

TYPE_CODE, MEASURE_UNIT_CODE &

PRODUCT_PRICE

Name of attributes in the output

parameter

Table 5.1: Description of the second synchronous Web Service

Based on the design concept of chapter 3.4, the Figure 3.12 shows the diagram

of this use case with two senders and two receivers, which stand for these two

synchronous Web Services and two Generic UIBBs.

After the processes of Acquisition of attributes and Field catalog creation,

attributes from both synchronous Web Services are used to create the input

parameter and result field catalog for one List Generic UIBB, and search field

catalog and result field catalog for one Search List Generic UIBB. Figure 5.7

shows the input value for input parameter for the List Generic UIBB is insert as

“HT-1001” for the Web Service Product By ID Query Response.

Page 101: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

97

Figure 5.7: Inserting input value of input parameter for Web Service Product By

ID Query Response

In the meantime, the administrator can choose the fields in the field catalogs for

both Generic UBBs in the Configuration Editor. After the end user choose

“0000000021” as the input value for the search criteria for Search Generic

UIBB, and then method of GET_OUTPUT_VALUE handles the consumptions

of both Web Services with separate instances of Generic Adaptation Class.

Figure 5.8 describes the OIF floorplan with concrete values for the result field

catalogs of two Generic UIBBs.

Figure 5.8: OIF floorplan with concrete values for both Generic UIBBs

In the Figure 5.8, the result field catalog includes the output values based on the

Partner ID “0000000021” got from the search criteria at runtime for the Search

Generic UIBB on the top. And the result field catalog displays the output values

based on the Product ID “HT-1001” got from the input parameter in the List

Generic UIBB on the bottom. It proves that the consumptions of both

synchronous Web Services for separate Generic UIBBs in one OIF floorplan are

successful. In additional, all the three kinds of floorplans provided by Floor Plan

Page 102: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

98

Manager Framework are all possible. And, the successful message is displayed

to depict that both of the consumptions of Web Service is successful.

Therefore, based on all the three different use cases in the chapter 5.1, Generic

Adaptation successfully provides a generic solution to enhance Floor Plan

Manager Framework with the consumption of synchronous Web Service. The

user of Floor Plan Manager Framework can not only consume one synchronous

Web Service in one Generic UIBB, but also ability to consume more than one

synchronous Web Services in separate Generic UIBBs in the same floorplan at

same time.

Page 103: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

99

5.2 Asynchronous Web Service via Generic Adaptation

This chapter briefly describes the evaluation of consumption asynchronous Web

Services via Generic Adaptation within Floor Plan Manager Framework based

on the design concept in the chapter 3.5.

From the design concept, for asynchronous Web Services, the user requires

generating two proxy classes, because the mechanism of asynchronous Web

Services in ESR includes a Proxy Provider Class at inbound service interface,

and a Proxy Consumer Class at outbound service interface. Therefore the user

has to generate one Proxy Consumer Class based on the Proxy Provider Class,

provided at inbound service interface, to handle the sending of requests. And in

additional, one Proxy Provider Class based on the Proxy Consumer Class,

provided at outbound service interface, to handle the receiving of returned

messages.

This use case includes one asynchronous Web Service, and the description is

described in the Table 5.2. And two generated proxy classes, one Form Generic

UIBB is created in the floorplan displaying all the attributes of input parameter

for choosing. And one Report, which is pure ABAP programming, is created to

communicate with the generated Proxy Provider Class for the receiving of

returned messages. This use case is focusing on the request of message with

Form Generic UIBB, the response of message is handled in the backend by a

pure ABAP programming.

Name Description

Send Single Flight Booking Name of Web Service

Asynchronous Web Service Communication type

ZHKCO_SINGLE_FLIGHT_REQ Name of Proxy Consumer Class

ZHKCO_SINGLE_FLIGHT_RES Name of Proxy Provider Class

SINGLE_FLIGHT_REQUEST_IN Name of method (Consumer)

SINGLE_FLIGHT_RESPONSE_OUT Name of method (Provider)

FLIGHTDATA, FLIGHT_CLASS,

FIRSTNAME, LASTNAME &

DATEBIRTH

Name of attributes in the input

parameter

AGENCY_NUMBER,

ORDER_NUMBER

Name of attributes in the output

parameter

Table 5.2: Description of asynchronous Web Service

After the processes of Acquisition of attributes and Field catalog creation are

finished, the search field catalog is created with the attributes in the input

parameter, and the attributes of output parameter are extracted to create result

field catalog in the Form Generic UIBB, which is totally the same as the

processes for synchronous Web Services. Then the method

Page 104: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

100

GET_INPUT_VALUE gets the input values from the end user at runtime, which

is also the same as it is worked for Search Generic UIBBs. After all, the method

GET_OUTPUT_VALUE triggers the consumption of asynchronous Web

Service with the input values and all the processes are done for the Proxy

Consumer Class and Form Generic UIBB. Figure 5.9 describes the runtime

when the end user fills the input values for the search field catalog in Form

Generic UIBB.

Figure 5.9: Filling the input values for the Form Generic UIBB

When the receiver is alive, the consumption will be processed in the backend,

and the output values are returned to the sender by the pure ABAP

programming. Figure 5.10 depicts the output values by the ABAP programming

in the backend.

Page 105: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

101

Figure 5.10: Returned output values in the backend

The use case of asynchronous Web Service shows that Generic Adaptation can

also work for asynchronous Web Services by also mapping the attributes in the

input and output parameter of Web Services with the field catalogs and input

parameters. Then the user can directly work with these attributes via the Generic

UIBBs. However, Floor Plan Manager Framework is standard for UI framework,

and the responses of asynchronous Web Services are always taking a long time.

Therefore, the responses of messages for asynchronous Web Services are always

handled in the backend with the pure ABAP programming.

All in all, Generic Adaptation can work for Floor Plan Manager Framework to

consume all kinds of Web Services by mapping the attributes of input and output

parameter in the Web Services into the field catalogs and input parameters, and

handling all the interactions during the consumptions at runtime.

Page 106: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

102

Chapter 6 Summary and Outlook

Nowadays, Floor Plan Manager Framework is more and more used as standard

UI framework for Business Suite applications within SAP and around all the

SAP’s customers. Moreover, the Web Services are more and more consumed

within the Business Suite applications as well, along with the worldwide used

Enterprise SOA. The existing solutions within SAP are consumption Web

Services via SAP Web Dynpro ABAP and consumption via SAP NetWeaver

Composition Environment. Neither of them is based on the Floor Plan Manager

Framework.

Therefore, the idea of the solution based on the Floor Plan Manager Framework,

achieves the consumption of Web Services within Business Suite applications

via reusing the benefits of Floor Plan Manager Framework and also other

existing architectures and technologies within SAP. The new solution is not only

generic for different Web Services, but also for all the three Generic UIBBs

within Floor Plan Manager Framework.

Page 107: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

103

6.1 Summary of the thesis

The First chapter depicts the introduction, which gives an overview with the

outline diagram of Generic Adaptation. And also the motivation of the thesis is

mentioned in the first chapter with the main problems to solve.

The second chapter describes all the existing architectures and technologies

within SAP, which are reused within this thesis. And also the related solutions

and products are described at the end of this chapter with a table, which

compares with the requirements of Generic Adaptation and other existing

solution, then points out a proposal for the design of Generic Adaptation.

The third chapter, which is also the concept of design, is based on the proposal.

Within this chapter, the design of Generic Adaptation is described in details with

mainly three processes and also the applicability for both synchronous and

asynchronous Web Services is analyzed here. Based on the proposal, Generic

Adaptation includes a Generic Adaptation Interface, which is totally generic for

all kinds of Web Services. And four methods provided by the Generic

Adaptation Interface take care of the adaptations between Floor Plan Manager

Framework and Web Services under the help of Enterprise SOA and Generic

UIBBs. Generic Adaptation also provides the Generic Adaptation Class, which

implements the Generic Adaptation Interface. During the consumption of Web

Services, an instance of Generic Adaptation Class is instantiated for the specific

Web Service. Therefore, the Generic Adaptation Class is specific for Web

Services. This chapter also gives an example to demonstrate the possibility of

consuming multiple Web Services at same time within one floorplan of Floor

Plan Manager Framework.

The fourth chapter is the implementation part, which provides the prototypes to

demonstrate that the design of Generic Adaptation is working. This chapter is

focusing on the details of the implementation of the prototypes of Generic

Adaptation. It mainly includes the implementation of Generic Adaptation

Interface with the four methods, and also the important signatures of the

methods, and also the implementation of the Generic Adaptation Class with a

concrete example, along with the UML diagrams for technique details.

The fifth chapter is the evaluation part of Generic Adaptation based on the

prototypes for both synchronous Web Services and asynchronous Web Services.

As in conclusion, Generic Adaptation provides a generic solution for the

consumption of Web Services within Floor Plan Manager Framework by

implementing the Generic Adaptation Interface, and also it can work for multiple

Web Services by providing an instance of Generic Adaptation Class for each

Web Service. The prototypes are basically satisfied all the requirements and

Page 108: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

104

enhance the functionality of Floor Plan Manager Framework with the

consumption of Web Services.

The sixth chapter gives the summary and outlook for the thesis. Within the

summary, the main aspects of each chapter are described here. And the outlook

is focusing on the future plan and also the short points.

During the work on the research questions for this thesis the two problems

described in the first chapter have been achieved.

1. The solution should be generic. Generic solution would be more

meaningful for users to consume Web Services within Floor Plan Manager

Framework. The users can consume any Web Services in the same way.

This Generic Adaptation provides the Generic Adaptation Interface as the

mainly generic part for all kinds of Web Services. And all the four methods

within the Generic Adaptation Interface achieve the function of adaptation

between Floor Plan Manager Framework and Web Services.

2. Secondly, the question is how to integrate the consumption of Web

Services into Floor Plan Manager Framework. The idea is to provide a

mechanism to map the attributes of input and output parameters in the

Web Services to Floor Plan Manager Framework and easily for users to

achieve their Business Suite applications.

This Generic Adaptation analyzes the structures of Web Services and extracts all

the attributes into the field catalogs in flatten. And all the field catalogs are used

as the interfaces for the Generic UIBBs within Floor Plan Manager Framework

to communicate with the Web Services. Therefore, the users of Floor Plan

Manager Framework can consume the Web Services as the same of consumption

of business data as before.

Page 109: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

105

6.2 Outlook

During the work on the research questions for this thesis a number of new

questions have been raised that are worth exploring in future work.

Q1. Generic Adaptation Interface is generic, but the Generic Adaptation

Class is still specific for the Web Service. Is there any other way to achieve a

full generic solution?

The original idea is to achieve the generic by providing an interface directly

during the generation of all the Proxy Consumer Classes. However, the

generation is fixed, and also the Proxy Consumer Classes are required to be

stable, non-editable.

Q2. Secondly, how is the possibility of automation for the process of

Acquisition of attributes?

The process of Acquisition of attributes is semi-automation. The Controller

predefines the flatten parameter types with the attributes, and then searches for

the parameter types of Web Services at runtime by comparing with the name of

Web Services and methods. Moreover, the Controller compares the attribute

types within the predefined parameter types with the attribute types from the

searched parameter types at runtime one by one. If it is the same, then the

attributes are filled into the predefined flatten parameter types. However, this is

not a full automation solution. It is better to provide a solution to extract all the

attributes with the name of Web Services and methods.

Q3. Thirdly, how is the possibility of automation for the process of Field

catalog creation?

The design of the process of Field catalog creation is those fields catalogs are

defined with the predefined flatten parameter types in the methods

CREATE_FIELD_CATALOG and CREATE_INPUT_PARAMETER at design

time. This process can be automation in the way that all the field catalogs are

defined based on the predefined flatten parameter types at runtime automatically.

Q4. Fourthly, how is the possibility of automation for the implementation of

Generic Adaptation Class?

The best way to support automation of the implementation of Generic

Adaptation Class is to provide a wizard with several steps. The steps are

provided for the users to insert the names of Web Services, Generic UIBBs, and

also the attributes of the parameter types and etc. And then the instance of

Generic Adaptation Class for the specific Web Service is generated out.

Page 110: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

106

Q5. Fifthly, how should the entire mandatory attributes is included for the

consumption of Web Services?

For the mandatory attributes, either the Floor Plan Manager Framework should

enhance the feature for it or the improved Generic Adaptation should include the

ability to select all the mandatory attributes for the consumption of Web

Services.

This thesis has described that the solution of Generic Adaptation can bridge the

gap between the Web Services and Floor Plan Manager Framework, and

provides a generic solution with the Generic Adaptation Interface. All the

problems for the solutions are solved, and all the basic requirements are

satisfied. However, this solution still has some shorts points described in the

outlook. Therefore, it still has some open questions for the future work, and the

functionality of Generic Adaptation can be enhanced to meet more requirements

which will lead more and more wide use of it.

Page 111: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

107

Bibliography

[1]: SAP homepage. URL: www.sap.com. Accessed on 05/04/2010

[2]: Fundamentals of Web Dynpro For ABAP. SAP AG. URL:

https://websmp106.sap-

ag.de/~form/sapnet?_SHORTKEY=01100035870000441461&_SCENARIO=01

100035870000000112&_OBJECT=011000358700006256352006E . Accessed

on 05/04/2010

[3]: Daniel Stollenwerk. Enterprise SOA Development Handbook. SAP AG, 30

April 2008. URL: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40db47

35-02f9-2a10-b198-a888a056bb67. Accessed on 08/04/2010

[4]: Floor Plan Manager for Web Dynpro ABAP. SAP AG. URL: https://websmp101.sap-

ag.de/~form/sapnet?_SHORTKEY=01100035870000441461&_SCENARIO=0

1100035870000000112&_OBJECT=011000358700000847392009E.

Accessed on 10/04/2010

[5]: Wikipedia, 2010a. Wikipedia: SAP GUI. URL:

http://en.wikipedia.org/wiki/SAPgui. Accessed on 15/04/2010

[6]: SAP Library, 2010a. SAP Library: Creating Web Applications with BSPs.

URL: http://help.sap.com/saphelp_470/helpdata/en/c8/101c3a1cf1c54be1000000

0a114084/content.htm. Accessed on 16/04/2010

[7]: SAP Library, 2010b. SAP Library: ABAP Workbench. URL: http://help.sap.com/saphelp_glossary/en/35/26b1a7afab52b9e10000009b3

8f974/content.htm. Accessed on 16/04/2010

[8]: SAP Library, 2010c. SAP Library: Web Dynpro for Java. URL: http://help.sap.com/saphelp_tm60/helpdata/en/15/0d4f21c17c8044af48681

30e9fea07/content.htm. Accessed on 17/04/2010

[9]: Neha Thukral. SAP Wiki: Introduction to controller. 22 April 2009. URL: http://wiki.sdn.sap.com/wiki/display/WDABAP/Introduction+to+controllers

[10]: Services Registry: Classification Services. SAP AG. April 2009. URL:

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/102c7743-

c904-2c10-bfa1-fef093e786ec?QuickLink=index&overridelayout=true

[11]: Peter Gutsche. SAP Process Integration Handbook. SAP AG. 30 June

2009. URL:

Page 112: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

108

http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8078cff3-

e045-2c10-9bae-abf0ca5040c5?QuickLink=index&overridelayout=true

[12]: SAP Library 2010e. SAP Exchange Infrastructure. URL:

http://help.sap.com/saphelp_nw04/helpdata/en/0f/80243b4a66ae0ce10000000a1

1402f/content.htm. Accessed on 22/04/2010

[13]: Peter Markus. SAP Wiki: Why point-to-point support requires extending

implementations. SAP AG. March 2010. URL:

https://wiki.wdf.sap.corp/wiki/display/PTGSOA/Why+point-to-

point+support+requires+extending+implementations. Accessed on 23/04/2010

[14]: Floor Plan Manager Developer’s Guide. SAP AG Internal Document.

URL:

https://portal.wdf.sap.corp/irj/go/km/docs/room_project/cm_stores/documents/w

orkspaces/e1f2879b-3584-2c10-0ca9-

bc6e2c47815c/FPM%20Developer's%20Guide%20702e.pdf. Accessed on

06/05/2010

[15]: Getting Started with Service Bus-Based Integration. SAP SDN. URL:

http://www.sdn.sap.com/irj/sdn/soa-servicebus?rid=/webcontent/uuid/40984052-

9449-2a10-6da5-a2457efc7194. Accessed on 08/05/2010

[16]: Saundattikar, Rohan. SAP WiKi: FPM Phase Model. SAP AG. June 2009.

URL:

https://wiki.wdf.sap.corp/wiki/download/attachments/626624202/FPM+Phase+

Model.pdf?version=1. Accessed on 07/07/2010

[17]: Saundattikar, Rohan. SAP WiKi: GUIBB. SAP AG. June 2009. URL:

https://wiki.wdf.sap.corp/wiki/display/FPM/GUIBB. Accessed on 09/07/2010

[18]: Stiehl, Volker. SAP insider: A How-To Guide for Consuming Services

with SAP NetWeaver Composition Environment. SAP insider. Apr/May/Jun

2008. URL:

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0d4aa08-

beed-2a10-fab2-ad975cead04a?QuickLink=index&overridelayout=true.

Accessed on 21/07/2010

[19]: Ganz, Bertram. SAP Wiki: FAQ – Models – Adaptive Web Service. SAP

AG. 20th

Jan 2009. URL: http://wiki.sdn.sap.com/wiki/display/WDJava/FAQ+-

+Models+-+Adaptive+Web+Service. Accessed on 21/07/2010

[20]: Using the Adaptive Web Service Model for Java Web Dynpro. SAP AG

Article. 14th

August 2006. URL:

http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b2bc0932-

0d01-0010-6d8e-cff1b2f22bc7. Accessed on 21/07/2010

[21]: Joshi, Dhawal. SAP AG Article. Web Dynpro Java – Highlights of

Adaptive Web Service Model. SAP AG Article. 2nd

April 2007. URL:

Page 113: Thema: Generic Web-Service Adaptation for SAP’s Business Suite

109

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b04308ed-

62d5-2910-b3a6-c26771b1c78e?language=zh. Accessed on 22/07/2010

[22]: JD Edwards EnterpriseOne. Oracle Products and Services. URL:

http://www.oracle.com/us/products/applications/jd-edwards-

enterpriseone/index.html. Accessed on 22/07/2010

[23]: Harrison Dave. DWS. JDE EnterpriseOne Business Services – Consuming

External Web Services Tutorial. DWS. July 2009. URL:

http://www.oracle.com/technology/tech/fmw4apps/jde/pdf/consuming-external-

web-services-using-business-services.pdf. Accessed on 22/07/2010

[24]: Oracle. JD Edwards EnterpriseOne Tools 8.98 Business Services

Development Guide. Oracle. September 2008. URL:

http://download.oracle.com/docs/cd/E13780_01/jded/acrobat/E1_TOOLS898TD

E-B0908.pdf. Accessed on 01/08/2010. Accessed on 01/08/2010

[25]: Josef Spillner, Marius Feldmann, Iris Braun, Thomas Springer, and

Alexander Schill. Ad-Hoc Usage of Web Services with Dynvoker. Dresden

University of Technology, Dept. of Computer Science, Chair for Computer

Networks, Dresden, Germany, 2008

[26]: Josef Spillner. GUI Development Descriptor. 20th March 2007. URL:

http://wsgui.berlios.de/guidd/. Accessed on 02/08/2010


Recommended