BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

187
8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 1/187 BIT450 BIT450 SAP Exchange Infrastructure Development SAP NetWeaver Date Training Center Instructors Education Website Participant Handbook Course Version: 2005 Q3 Course Duration: 2 Day(s) Material Number: 50072895  An SAP course - use it to learn, reference it for work 

Transcript of BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

Page 1: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 1/187

BIT450BIT450 SAP Exchange

Infrastructure Development

SAP NetWeaver 

Date

Training Center 

Instructors

Education Website

Participant HandbookCourse Version: 2005 Q3

Course Duration: 2 Day(s)

Material Number: 50072895

 An SAP course - use it to learn, reference it for work 

Page 2: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 2/187

Copyright

Copyright © 2005 SAP AG. All rights reserved.

 No part of this publication may be reproduced or transmitted in any form or for any purpose without

the express permission of SAP AG. Additionally this publication and its contents are provided

solely for your use, this publication and its contents may not be rented, transferred or sold without

the express permission of SAP AG. The information contained herein may be changed without

 prior notice.

Some software products marketed by SAP AG and its distributors contain proprietary software

components of other software vendors.

Trademarks

• Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® and SQL Server® are

registered trademarks of Microsoft Corporation.

• IBM®, DB2®, OS/2®, DB2/6000®, Parallel Sysplex®, MVS/ESA®, RS/6000®, AIX®,S/390®, AS/400®, OS/390®, and OS/400® are registered trademarks of IBM Corporation.

• ORACLE® is a registered trademark of ORACLE Corporation.

• INFORMIX®-OnLine for SAP and INFORMIX® Dynamic ServerTM are registered

trademarks of Informix Software Incorporated.

• UNIX®, X/Open®, OSF/1®, and Motif® are registered trademarks of the Open Group.

• Citrix®, the Citrix logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®,

VideoFrame®, MultiWin® and other Citrix product names referenced herein are trademarks

of Citrix Systems, Inc.

• HTML, DHTML, XML, XHTML are trademarks or registered trademarks of W3C®, World

Wide Web Consortium, Massachusetts Institute of Technology.

• JAVA® is a registered trademark of Sun Microsystems, Inc.

• JAVASCRIPT® is a registered trademark of Sun Microsystems, Inc., used under license for 

technology invented and implemented by Netscape.

• SAP, SAP Logo, R/2, RIVA, R/3, SAP ArchiveLink, SAP Business Workflow, WebFlow, SAP

EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo and mySAP.com

are trademarks or registered trademarks of SAP AG in Germany and in several other countries

all over the world. All other products mentioned are trademarks or registered trademarks of 

their respective companies.

Disclaimer 

THESE MATERIALS ARE PROVIDED BY SAP ON AN "AS IS" BASIS, AND SAP EXPRESSLY

DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR APPLIED, INCLUDING

WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY AND FITNESS FOR APARTICULAR PURPOSE, WITH RESPECT TO THESE MATERIALS AND THE SERVICE,

INFORMATION, TEXT, GRAPHICS, LINKS, OR ANY OTHER MATERIALS AND PRODUCTS

CONTAINED HEREIN. IN NO EVENT SHALL SAP BE LIABLE FOR ANY DIRECT,

INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES OF ANY

KIND WHATSOEVER, INCLUDING WITHOUT LIMITATION LOST REVENUES OR LOST

PROFITS, WHICH MAY RESULT FROM THE USE OF THESE MATERIALS OR INCLUDED

SOFTWARE COMPONENTS.

Page 3: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 3/187

 About This Handbook 

This handbook is intended to complement the instructor-led presentation of this

course, and serve as a source of reference. It is not suitable for self-study.

Typographic Conventions

American English is the standard used in this handbook. The following

typographic conventions are also used.

Type Style Description

 Example text    Words or characters that appear on the screen. Theseinclude field names, screen titles, pushbuttons as well

as menu names, paths, and options.

Also used for cross-references to other documentation

 both internal (in this documentation) and external (in

other locations, such as SAPNet).

Example text   Emphasized words or phrases in body text, titles of 

graphics, and tables

EXAMPLE TEXT Names of elements in the system. These include

report names, program names, transaction codes, tablenames, and individual key words of a programming

language, when surrounded by body text, for example

SELECT and INCLUDE.

Example text   Screen output. This includes file and directory names

and their paths, messages, names of variables and

 parameters, and passages of the source text of a

 program.

Example text   Exact user entry. These are words and characters that

you enter in the system exactly as they appear in the

documentation.

<Example text>   Variable user entry. Pointed brackets indicate that you

replace these words and characters with appropriate

entries.

25-08-2005 © 2005 SAP AG. All rights reserved.   iii

Page 4: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 4/187

About This Handbook BIT450

Icons in Body Text

The following icons are used in this handbook.

Icon Meaning

For more information, tips, or background

 Note or further explanation of previous point

Exception or caution

Procedures

Indicates that the item is displayed in the instructor’s

 presentation.

iv   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 5: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 5/187

Contents

Course Overview ....... ....... ....... ....... ....... ...... ....... ....... ..  vii

Course Goals ....... ........ ........ ........ ........ ....... ........ .....vii

Course Objectives ... .... ... .... .... .... .... .... .... ... .... ... .... .... .vii

Unit 1: Development Objects in SAP XI .. .. ... .. .. ... .. .. .. ... .. ... .. 1

XI Components and Connectivity. .. ... .. ... ... .. ... .. ... ... .. .. ... ... 3

Development in SAP XI ... .... ... .... ... .... ... .... .... .... ... .... ...  12

Introduction to Proxies ............................................... 29

Proxy Runtime Configuration.. .. .. ... ... .. ... .. ... ... .. ... .. ... ... .. 38Integration Scenarios in the Integration Repository .. . . .. . .. . . . ..  47

Unit 2: Generating Proxy Objects....................................  67

Introduction to the Proxy Program Model.......................... 68

 ABAP Proxy Generation . . . .. . . . .. . .. . . . .. . . . .. . .. . . . . .. . . .. . . .. . . . .. 74Java Proxy Generation.. ... .... .... .... .... .... .... ... .... ... .... ....  83

Enhancing Interfaces .... .... ... .... .... .... .... ... .... ... .... ... ....  96

Unit 3: Using Generated Proxy Objects ........................... 109

 ABAP Server Proxy Implementation . . . . . .. . . .. . . .. . . . . .. . .. . . . .. . 110

Using Java Client Proxies...........................................122Configuration in the Integration Directory.........................138

Java Server Proxy Implementation. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .147Using ABAP Client Proxies .. ... .. ... ... .. ... .. ... ... .. .. ... .. ... ... 151

Server Proxies, Web Services, and WSDL.......................161

25-08-2005 © 2005 SAP AG. All rights reserved.   v

Page 6: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 6/187

Contents BIT450

vi   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 7: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 7/187

Course Overview 

This course provides an introduction to the program model for proxy objects.

Together with SAP Exchange Infrastructure, this program model presents a new

approach to implementing integration scenarios. In this approach, message formats

are saved centrally in a repository. In this repository, the actual functions are then

created in the back end by generating proxy objects. The course structure takes the

 participants through this procedure. Unit 1 introduces the concept and looks at the

definition of message formats, unit 2 addresses the subsequent generation of proxy

objects for ABAP and Java environments, and unit 3 explains how to use these

objects to exchange messages using  SAP Exchange Infrastructure.

Target Audience

This course is intended for the following audiences:

• ABAP and Java developers who want to implement functions in SAP

systems as server proxies as part of the implementation of an  SAP Exchange

 Infrastructure scenario

• ABAP and Java developers who want to develop function calls in an SAP

system by using client proxy objects as part of the implementation of an SAP 

 Exchange Infrastructure scenario.

Course PrerequisitesRequired Knowledge

• BIT400

• BC400

• JA100

Recommended Knowledge

• BC401

• JA300

• Basic knowledge of Web services and WSDL

Course Goals

This course will prepare you to:

• Understand how proxy objects are used in SAP Exchange Infrastructure (XI)

• Generate proxies for connecting SAP systems to XI 

• Implement generated proxies and use them in your own programs

25-08-2005 © 2005 SAP AG. All rights reserved.   vii

Page 8: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 8/187

Course Overview BIT450

Course Objectives

After completing this course, you will be able to:• Assess when to use proxy objects

• Execute the necessary proxy generation

• Use the generated client proxy objects

• Implement the generated server proxy objects

SAP Software Component Information

The information in this course pertains to the following SAP Software Components

and releases:

• XI 3.0

viii   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 9: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 9/187

Unit 1Development Objects in SAP XI

Unit Overview

Introduction to the topic of “XI development” and revision of the basic principles

of  XI  with reference to proxy technology.

Unit Objectives

After completing this unit, you will be able to:

• Understand the components of  SAP Exchange Infrastructure

• List the options available for connecting application systems to SAP 

 Exchange Infrastructure

• Understand the concepts of products, software components, and namespaces

• Create your own namespaces in the Integration Repository

• Describe the procedures for using proxies• Understand the scenario used in the course

• Configure an SAP system based on the  SAP WebAS ABAP  for proxy

communication, or check the configuration

• Configure an SAP system based on the  SAP WebAS Java  for proxy

communication, or check the configuration

• Create integration scenarios in the Integration Repository

• Create objects for message interfaces in the Integration Repository

Unit Contents

Lesson: XI Components and Connectivity......................................3

Exercise 1: Checking the Entries in the System Landscape Directory .9Lesson: Development in SAP XI............................................... 12

Exercise 2: Checking Namespaces. .. .. ... .. .. ... .. ... ... .. .. ... ... .. ... . 23Exercise 3: Creating and Using Software Components................ 25

Lesson: Introduction to Proxies ... .. ... ... .. ... .. ... ... .. ... .. ... .. ... .. ... ... . 29

Exercise 4: Checking Existing Interface Objects........................ 35

Lesson: Proxy Runtime Configuration ........................................ 38Exercise 5: Checking the Local Integration Engine of a Business

System........................................................................  43

25-08-2005 © 2005 SAP AG. All rights reserved.   1

Page 10: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 10/187

Unit 1: Development Objects in SAP XI BIT450

Lesson: Integration Scenarios in the Integration Repository. . . . .. . . .. . . . ..  47

Exercise 6: Creating an Integration Scenario and Repository Objects in

the Integration Repository .. ... .. ... ... .. ... .. ... ... .. ... .. ... ... .. .. ... ... . 53

2   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 11: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 11/187

BIT450 Lesson: XI Components and Connectivity

Lesson: XI Components and Connectivity

Lesson Overview

This lesson provides a recap of the architecture of the   SAP Exchange

 Infrastructure.

Lesson Objectives

After completing this lesson, you will be able to:

• Understand the components of  SAP Exchange Infrastructure

• List the options available for connecting application systems to SAP 

 Exchange Infrastructure

Business Example

You are responsible for development in SAP Exchange Infrastructure and need an

overview of the architecture and components of  SAP Exchange Infrastructure.

Components of SAP Exchange Infrastructure

The aim of  SAP Exchange Infrastructure is to provide a platform that allows

different interfaces to connect using a uniform technology. This improves the

overview and also reduces maintenance costs.

Figure 1: System Landscape with SAP Exchange Infrastructure

Components of SAP Exchange Infrastructure

SAP Exchange Infrastructure comprises various components:

25-08-2005 © 2005 SAP AG. All rights reserved.   3

Page 12: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 12/187

Unit 1: Development Objects in SAP XI BIT450

Figure 2: Architecture of SAP Exchange Infrastructure

• You can enter your system landscape in the System Landscape Directory

(SLD).

• You enter all the necessary interfaces of the various software components, as

well as mapping programs, in the  Integration Repository.

• You configure the scenarios in the Integration Directory.

• The Integration Builder  is the user interface (GUI) for working with the Integration Repository and  Integration Directory.

• The Business Process Engine controls the correlation of messages and the

 processing of messages within Business Process Management (BPM).

• The Integration Engine of the Integration Server  ensures that messages are

 processed according to the configuration in the Integration Directory. This

involves determining who the receiver is and mapping the inbound message

to the receiver interface structure.

• The  Adapter Engine forms the basis of many adapters for connecting

systems to the  Integration Server .

• The  Runtime Workbench  is the main tool for central monitoring of 

components and messages.

Connecting the Application Systems to XI

A local Integration Engine can be used on any application system that runs on

SAP Web AS  release 6.20 or higher. This means you can implement application

scenarios from XI . You define the interface structure in the Integration Repository.

You can then generate and call an outbound proxy in the application system; this

 proxy creates a message in XI format from the interface parameters and sends

4   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 13: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 13/187

BIT450 Lesson: XI Components and Connectivity

it to the  Integration Server . You can generate an inbound proxy in the target

system; this proxy receives a message in XI format from the  Integration Server 

and processes the data. ABAP and Java proxy generation is supported.

Figure 3: Runtime Procedure: Conversion to XI Message Format

At present, all other application systems are connected to  XI  using adapters. The

sender system provides data in a document format and sends it to the adapter byusing a particular protocol. The adapter converts the document to XI format and

sends it to the Integration Server  in http(s) format. The adapter that is to receive

the message is specified in the configuration. The Integration Server  sends the

message to the adapter. The adapter converts the message to the receiver protocol

and sends it to the receiver.

Proxy Technology and SAP Adapters

SAP adapters (RFC adapters, IDoc adapters) are designed for connecting SAP

systems that run on a technical basis predating SAP Web AS 6.20 (for example,

R/3 4.6), and which therefore do not directly support the XI protocol. Since SAP

adapters (based on the RFC protocol) can also be used to connect SAP systems

 based on SAP Web AS  >= 6.20, when you develop a new interface, you must

decide which of the two options to use.

25-08-2005 © 2005 SAP AG. All rights reserved.   5

Page 14: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 14/187

Unit 1: Development Objects in SAP XI BIT450

Figure 4: Overview of Proxies and Adapters

This requires an understanding of the SAP Exchange Infrastructure concept,

which is based on message formats (message interfaces). These message formats

are saved centrally in the   Integration Repository  using Internet standards

(WSDL, XML schema), independently of the programming languages actually

used (ABAP, Java, .NET). However, if you use SAP adapters, the interfaces are

developed locally in the business system and only imported to the  Integration

 Repository later. This does not comply with the SAP Exchange Infrastructure

concept of central interface development in the Integration Repository.

This central interface development simplifies the realization of integration

scenarios and supports the integration of external interfaces by importing the

corresponding WSDL files.

There is another significant difference of a more technical nature, namely the

protocol used. It is not always possible to communicate with the back-end system

using the RFC protocol. However, this is necessary when using an SAP adapter,

 because the Adapter Engine communicates with the SAP system using RFC. The

HTTP protocol, which is used in proxy technology, is less problematic, particularly

if firewalls are used between the Integration Server  and the business system.

6   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 15: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 15/187

BIT450 Lesson: XI Components and Connectivity

Figure 5: Outbound vs. Inbound

It is important to understand the definition of outbound and inbound. In the

application, an outbound message interface is used for a message sent  from

the application to the  Integration Server . In the context of adapters, messages

that are sent to the  Integration Server  require a sender adapter; this adapter 

sends messages from the sender to the Integration Server . In the case of proxies,client proxies correspond to an outbound interface and server proxies represent

an inbound interface.

Furthermore, when using adapters, the exchanged data format is adapter-specific

and differs from the proxy XML data format.

25-08-2005 © 2005 SAP AG. All rights reserved.   7

Page 16: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 16/187

Unit 1: Development Objects in SAP XI BIT450

8   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 17: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 17/187

BIT450 Lesson: XI Components and Connectivity

Exercise 1: Checking the Entries in the

System Landscape DirectoryExercise Objectives

After completing this exercise, you will be able to:

• Check the settings for your business systems in the System Landscape

 Directory (SLD)

Business Example

You want to implement business processes in an existing system landscape.

SAP Exchange Infrastructure is installed and the existing system landscape is

configured in the SLD. You want to check these settings to ensure that they are

complete and to make alterations where applicable.

Task: SLD Configuration in the Integration Server 

Check the configuration in the System Landscape Directory (SLD).

1. Log on to the System Landscape Directory.

2. Check whether the software component SC_BIT450_CIS is configured

in the  SLD.

3. Check whether the business system Training is configured in the SLD.

4. Which technical system is assigned to the business system Training in the

SLD?

25-08-2005 © 2005 SAP AG. All rights reserved.   9

Page 18: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 18/187

Unit 1: Development Objects in SAP XI BIT450

Solution 1: Checking the Entries in the

System Landscape DirectoryTask: SLD Configuration in the Integration Server 

Check the configuration in the System Landscape Directory (SLD).

1. Log on to the System Landscape Directory.

a) Call transaction SXMB_IFR to display a menu for the SAP Exchange

 Infrastructure J2EE Engine in the Web browser. It is also possible to

call the System Landscape Directory  from this page. The user name

and password are the same as those required to log on to the  Integration

Server .

2. Check whether the software component SC_BIT450_CIS is configured

in the  SLD.

a) To display the products and software components, choose Software!

Software Catalog  from the  SLD  initial screen. In the Software Type

field, select Software Components. To view only the relevant software

components, enter the prefix SC_  in the Display Filter  filter field and

choose Enter (or select the filter icon).

3. Check whether the business system Training is configured in the SLD.

a) To navigate back to the initial screen of the SLD, choose Home. To

display the business systems, choose Business Landscape on the SLDinitial screen.

 b) The business system  Training is maintained as an SAP system; it

corresponds to client 821 of the Integration Server .

4. Which technical system is assigned to the business system Training in the

SLD?

Answer:  This information is displayed in the overview or the detailed view

of the business systems:

The business system Training is assigned to client 821 of the  XI  system.

A technical system is also assigned to the business system, which has the

same system ID as the  XI  system.

10   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 19: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 19/187

BIT450 Lesson: XI Components and Connectivity

Lesson Summary

You should now be able to:• Understand the components of  SAP Exchange Infrastructure

• List the options available for connecting application systems to SAP 

 Exchange Infrastructure

25-08-2005 © 2005 SAP AG. All rights reserved.   11

Page 20: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 20/187

Unit 1: Development Objects in SAP XI BIT450

Lesson: Development in SAP XI

Lesson Overview

This lesson gives an overview of development objects and development

environments.

Lesson Objectives

After completing this lesson, you will be able to:

• Understand the concepts of products, software components, and namespaces

• Create your own namespaces in the Integration Repository

Business Example

You are a new member of an  XI  development team and need an overview of the

components involved and the procedure in a development project.

Development Objects and Programming Languages

Since SAP Exchange Infrastructure is based on the SAP Web Application Server ,

which as of release 6.20 enables ABAP development as well as Java development,

it may seem a good idea to separate development according to the various

 programming languages, but this is not necessarily the case.

Figure 6: SAP Web AS and SAP XI

12   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 21: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 21/187

BIT450 Lesson: Development in SAP XI

Although many SAP XI  tools are based on Java, it actually makes more sense to

organize development according to development objects. All development objects

are located in the Integration Repository (the Integration Directory essentiallycontains scenario configurations). Development objects are created in the

 Integration Repository independently of the development environment used later.

In addition, some development objects, in particular proxy objects, are located

in the application system and are dependent on the respective development

environment. These are the proxy objects generated for a message interface in

the Integration Repository  and the objects that are used by the generated proxy

objects, for example programs.

Products, Software Components, and Namespaces

In an SAP environment, a  product corresponds to a technical SAP component. A product consists of one or more software components and customers can see it,

install it, and renew it. A product is delivered by way of a product version, which

in turn contains software component versions.

Figure 7: Product and Software Component Versions (SWCV) in the SLD

A software component is a reusable product module that can be individually

upgraded or have patches installed. Software components are versioned to

enable development to continue alongside the productive use of a softwarecomponent. Development therefore always takes place in a software component

version (SWCV). The development manager creates a separate  namespace in the

 Integration Repository for objects that belong together semantically. This is similar 

to ABAP packages (previously called development classes) or Java packages. In

this way, the objects are identified uniquely by their name and namespace. The

objects of a namespace are always delivered together with the relevant SWCV.

25-08-2005 © 2005 SAP AG. All rights reserved.   13

Page 22: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 22/187

Unit 1: Development Objects in SAP XI BIT450

A namespace in XML is a user-defined constant that follows two conventions:

the prefix http:// and the prefix  urn:. The prefix http:// does not necessarily mean

that the namespace is a website. It is more important that namespaces must beglobally unique, not just within the SWCV. Therefore, the use of a company name

in the namespace is a valid option.

The namespaces in the Integration Repository also have implications for proxy

objects that are generated later, since they determine the package names for the

Java proxy objects. For further information on namespaces, see the documentation

in the SAP Library: SAP Exchange Infrastructure!  Design and Configuration

Time! Software Logistics!Organization of Shipment Contents! Namespaces.

Caution:  When creating your own namespaces, the name components

must never start with a number. If this is nevertheless the case, an

underscore (_) is placed before the number when the Java proxy objectsare generated.

The decisive and visible factors for the developer responsible for editing the

objects in the  Integration Repository are the SWCV and the namespace (the

 products are only visible in the Integration Repository in the integration scenarios).

Figure 8: Importing an SWCV to the Integration Repository

In the same way that software components are versioned, there are also product

versions. The relationship between a product version and a software component

version is saved in the SLD  as a software feature.

14   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 23: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 23/187

BIT450 Lesson: Development in SAP XI

The following preparations need to be made before development starts:

• Create a product version in the SLD

• Create a software component version (SWCV) for the product version

• Import the SWCV to the Integration Repository

• Create namespaces for the SWCV in the Integration Repository

Before you start development, you need to create the product and software

component versions in the  SLD. If you are creating a new product and new

software components, you must first create the product, then the software

components, and finally the corresponding versions. If a product and software

components already exist, you need to create a new version.

Hint:  There is also a based-on relationship for software components. If 

SAP component functions are used in a customer software component,

it makes sense to save these in the SLD using the based-on relationship.

This is saved as a  software feature for the software component version as

a component-component requisite association. For example, SAP ABA

6.20 is based on SAP Basis 6.20.

The software component versions are then imported to the  Integration Repository.

You create namespaces for the individual developers in the Integration Repository

in the SWCV. If the SWCV is a new version of an existing SWCV, you can copy

the objects from the old SWCV to the new version by using a release transfer.

For an SWCV you can also save logon data for an SAP back end, which enables

you to import RFC signatures and IDoc types. You can flag SWCVs as original

objects or as modifiable objects by using the relevant object attributes. You set

 both attributes in the system in which a SWCV is to be developed.

User-specific change lists are used in the   Integration Repository  during

development, which must be closed by activating the objects. Once development

is finished, the SWCV is flagged as not modifiable and the objects are released. As

of  XI 2.0, this means that the objects are exported from the Integration Repository,

for example, for import to a test system.

If an SWCV is to be used in other systems (for example, imported to a test

system), neither of the attributes Objects Are Original Objects or  Objects Are Modifiable are set. This prevents changes being made. If an attempt is made

to reset the attributes at a later date, warning messages will appear to prevent

changes from being made unintentionally.

Development Landscape

As in R/3, a development landscape typically comprises a development system

(DEV), a TEST system and a productive XI system (PROD).

25-08-2005 © 2005 SAP AG. All rights reserved.   15

Page 24: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 24/187

Unit 1: Development Objects in SAP XI BIT450

The System Landscape Directory (SLD) is typically used for all three XI  systems.

Hint:  It is also technically possible to create a separate  SLD  for each

 XI  system. In this case, data from the development SLD system can be

exported to the subsequent SLD system.

Similarly, the development objects of the   Integration Repository  are also

transported to the subsequent systems by export/import (or using the CMS:

Change Management Service, see below). It is possible to transport complete

software component versions, individual namespaces of a software component

version, or just single objects. For the Integration Directory configuration data,

the receiver and interface determinations can also be transported by export or 

import (including mapping). However, you have to recreate the communication

channels and logon data for each subsequent system, because each system hasdifferent technical systems and logon data.

Once the data has been exported from the  Integration Repository, you have to

move the export file to the target system import directory, and do the same for 

the export from the  Integration Directory. The corresponding directories are as

follows:

Integration Repository

Export   <systemdir>/xi/repository_server/export

Import   <systemdir>/xi/repository_server/import

Integration Directory

Export   <systemdir>/xi/directory_server/export

Import   <systemdir>/xi/directory_server/import

16   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 25: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 25/187

BIT450 Lesson: Development in SAP XI

Figure 9: XI Development Landscape

Business System Groups:  In the standard scenario, whereby one  SLD  is used for 

all XI  systems in a development landscape, you can create business system groups

in the SLD  (each group is assigned to an  Integration Server ). For example, you

can create group G1 as a group of business systems in a development landscape

and group G2 as a group of business systems in a test landscape. The business

systems are assigned to the groups automatically because each business system isalready assigned to an Integration Server .

 Next, you maintain the transport targets, that is, assign a business system from

group G1 to a business system from group G2. You do this directly in the business

system settings. Since the business system is already assigned to a business system

group, you just need to assign a business system from another group by choosing

Transport Targets in the detail view of the business system.

Figure 10: Business System Groups and Transport Targets in the SLD

25-08-2005 © 2005 SAP AG. All rights reserved.   17

Page 26: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 26/187

Unit 1: Development Objects in SAP XI BIT450

Maintaining these transport targets means that when you import configuration data

(for example, from the development system) to the  Integration Directory of a

subsequent system, the business system names are converted using the transporttarget information in the  SLD. The business system names are converted in the

receiver determinations, the interface determinations, and the routing conditions.

The Change Management Service (CMS)  is used for central administration of 

the Java development environment and the transports to the  Web AS 6.40  across

the whole software lifecycle. You can use it to configure development landscapes

and transport software changes. The functions of the CMS  are closely related to

the System Landscape Directory (SLD). As an administrator tool, the CMS  joins

all involved components together into one unit, which can also be used to realize

distributed development projects.

Hint:  For more information on how to use the CMS  and its restrictions,

see SAP Note 754143 CMS notes / restrictions, and related notes.

Figure 11: Change Management Server (CMS) for SAP XI

If the CMS  is set up on the Java side of the XI Integration Server , on the homepage

of the Exchange Infrastructure tools, you can use Administration to set for which

objects the CMS  should be used (menu path Repository / CMS Adjustment CMS 

transport settings). This is independent of the SWCV.

Authorizations

A series of composite roles are supplied for the various development activities in

 XI , which contain the roles for the ABAP and J2EE parts. The following table

shows the most important composite roles together with information on whether 

they have been assigned for the course for the users BIT450-## in one of the

clients used (OK), whether they have only been assigned to one component (J for 

J2EE and A for ABAP), or whether they have not been assigned at all (-).

18   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 27: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 27/187

BIT450 Lesson: Development in SAP XI

Composite Roles in SAP XI and in the Course

Composite Role 800 821

SAP_XI_DISPLAY_USER OK OK  

SAP_XI_DEVELOPER (J2EE) OK  

SAP_XI_CONFIGURATOR OK -

SAP_XI_MONITOR - -

SAP_XI_CONTENT_ORGANIZER - -

SAP_XI_ADMINISTRATOR - -

The users BIT450-## in client 821 have also been assigned authorization for the

 ABAP Workbench (SE80). The individual roles are described below, with an

explanation of how to look them up in role maintenance (PFCG).

SAP_XI_DISPLAY_USER  A user with this role can view all content from

the Integration Repository, the Integration Directory, the System Landscape

 Directory, the  Integration Engine/Server , and so on, within SAP Exchange

 Infrastructure.

SAP_XI_DEVELOPER  The XI developer is responsible for all activities

in SAP Exchange Infrastructure  that involve the design and development of 

 business processes. In particular, this includes the design of integration scenarios,

interfaces, and mappings in the Integration Repository  using the Integration

 Builder , as well as the import of existing interfaces from business systems. The

XI developer is also responsible for generating proxies (ABAP and Java) andimplementing them in business systems.

SAP_XI_CONFIGURATOR  The XI configurator is responsible for all activities

in  SAP Exchange Infrastructure  that involve the configuration of business

 processes (integration content). In particular, this includes the logical routing

settings, mapping, physical routing in the Integration Builder  and maintenance of 

 business systems and the  System Landscape Directory. The XI configurator is also

responsible for maintaining configuration data for the IDoc adapter (metadata).

SAP_XI_MONITOR  The  XI monitor  is responsible for all activities in SAP 

 Exchange Infrastructure that involve monitoring. In particular, this includes

monitoring XML message processing and message throughput, as well as error handling and status tracking. It also includes the monitoring of processed IDocs,

RFCs, and other messages in adapters. The XI monitor can also check the contents

of the runtime cache in the Integration Server  and trigger cache updates, for 

example.

SAP_XI_CONTENT_ORGANIZER  The  XI content organizer  is responsible

for activities in SAP Exchange Infrastructure   that involve the organization

and structuring of the contents of the Integration Repository, the Integration

 Directory, and the  System Landscape Directory. These are more important

25-08-2005 © 2005 SAP AG. All rights reserved.   19

Page 28: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 28/187

Unit 1: Development Objects in SAP XI BIT450

tasks that are not typically performed by an XI developer or an XI configurator 

(for example, maintenance and import of software components in the System

 Landscape Directory).

SAP_XI_ADMINISTRATOR  The  XI administrator  is responsible for all

activities in SAP Exchange Infrastructure  that involve technical configuration and

administration. In particular, this includes the settings for the  Integration Engine,

the Integration Server , the Integration Builder  (the Integration Repository and

 Directory), the System Landscape Directory, the Runtime Workbench, and the

IDoc adapter. The XI administrator is also responsible for maintaining the  SAP 

 Exchange Infrastructure profile data (Exchange Profile).

SAP Back-End System Development for SAP Adapters

Development in SAP back-end systems, for example  R/3 4.0, corresponds to thetechnologies and procedures from the areas of  RFC  programming and ALE.

There are therefore no XI-specific development activities to be taken into account

for connecting SAP back-end systems. For the SAP back-end system, there is

no difference between the RFC or ALE connection to  XI  and the connection to

another SAP back-end system. It is only necessary to configure the SAP adapters

(RFC adapters and IDoc adapters), as described in the course BIT400.

20   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 29: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 29/187

BIT450 Lesson: Development in SAP XI

Figure 12: Development in the SAP Back End: Standard

•   Inbound RFC

To receive inbound RFC calls, you have to create an RFC-enabled function

module (RFM: remote-enabled function module) in the back-end system and

import the RFC signature to the  Integration Repository.

•   Inbound ALE

An IDoc type must exist as the structure for the data record, and you have

to make the standard ALE configurations. You have to import the IDoc

type into the Integration Repository.•   Outbound RFC

You have to create an  RFC destination for the RFC adapter that can be used

in an application. The RFC signature for the called function module (RFM)

must be imported in the  Integration Repository.

•   Outbound ALE

You have to create an  RFC destination for the IDoc adapter that can be

used in ALE customizing, and an IDoc type that must be imported into the

 Integration Repository.

As well as the standard procedures for RFC and ALE technology, you also haveto configure the  SAP adapters and make the XI  configuration settings in the

 Integration Directory.

25-08-2005 © 2005 SAP AG. All rights reserved.   21

Page 30: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 30/187

Unit 1: Development Objects in SAP XI BIT450

22   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 31: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 31/187

BIT450 Lesson: Development in SAP XI

Exercise 2: Checking Namespaces

Exercise Objectives

After completing this exercise, you will be able to:

• Check the namespaces for a software component version imported to the

 Integration Repository

Business Example

As a member of a development project, you have to create your own objects in the

 Integration Repository and save them in a separate namespace.

Task:Check the software components  SC_BIT450_SALES and  SC_BIT450_CIS

in the Integration Repository.

1. Log on to the Integration Server . From the menu, start the  Integration

 Builder  and log on to the  Integration Repository.

2. Check which namespaces the software component versions

SC_BIT450_SALES and  SC_BIT450_CIS contain.

25-08-2005 © 2005 SAP AG. All rights reserved.   23

Page 32: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 32/187

Unit 1: Development Objects in SAP XI BIT450

Solution 2: Checking Namespaces

Task:

Check the software components  SC_BIT450_SALES and  SC_BIT450_CIS

in the  Integration Repository.

1. Log on to the Integration Server . From the menu, start the Integration

 Builder  and log on to the Integration Repository.

a) Log on to client 800 in the training system.

 b) Choose  Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Repository

(Design). The user name and password are the same as those required

to log on to the Integration Server .

2. Check which namespaces the software component versions

SC_BIT450_SALES and  SC_BIT450_CIS contain.

a) To navigate to the individual namespaces, open the software

components and the software component versions. To see where the

namespaces are maintained, double click the software component

version.

24   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 33: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 33/187

BIT450 Lesson: Development in SAP XI

Exercise 3: Creating and Using Software

ComponentsExercise Objectives

After completing this exercise, you will be able to:

• Create your own software components in the SLD

• Import software components into the Integration Repository

Business Example

To develop your own interfaces, you need your own software component.

Task 1:

Create the software component SC_BIT450_MARKETING_## Version 1.0 in

the System Landscape Directory for the product  P_BIT450_MARKETING.

1. Log on to the System Landscape Directory (SLD).

2. In the SLD, navigate to the list of software components.

3. Create a new software component SC_BIT450_MARKETING_## Version

1.0 for the vendor  bit450.com.

Task 2:Import the software component  SC_BIT450_MARKETING_## Version

1.0 from the SLD  into the Integration Repository  and create the namespace

http://bit450.com/xi/marketing##.

1. Log on to the Integration Repository.

2. Import your software component SC_BIT450_MARKETING_## Version

1.0.

3. Open your software component version SC_BIT450_MARKETING_##

Version 1.0 and enter the namespace http://bit450.com/xi/marketing##

25-08-2005 © 2005 SAP AG. All rights reserved.   25

Page 34: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 34/187

Page 35: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 35/187

BIT450 Lesson: Development in SAP XI

Task 2:

Import the software component  SC_BIT450_MARKETING_## Version

1.0 from the SLD  into the Integration Repository  and create the namespace

http://bit450.com/xi/marketing##.

1. Log on to the Integration Repository.

a) The homepage of the Integration Builder  (transaction SXMB_IFR)

 provides a link for logging on to the Integration Repository.

 b) Log on with your user  BIT450-## and your password from the

 Integration Server  client 800.

2. Import your software component SC_BIT450_MARKETING_## Version

1.0.

a) From the menu, choose Tools / Copy from System Landscape Directory

 / Import Software Component Versions.

 b) In the list of software component versions, select the line of your 

software component SC_BIT450_MARKETING_## Version 1.0

and choose Import .

c) After the message to report successful import has been displayed in the

import log, exit the list of software component versions by choosing

 Finish.

3. Open your software component version SC_BIT450_MARKETING_##

Version 1.0 and enter the namespace http://bit450.com/xi/marketing##

a) On the  Objects tab page, the software components are listed in

alphabetical order. Navigate to your software component and open it so

that the software component version SC_BIT450_MARKETING_##

Version 1.0 is displayed. Double click to open the detail screen for 

the software component version.

 b) Switch to change mode and in the  Namespaces area, enter the

namespace http://bit450.com/xi/marketing##.

c) Save your changes.

d) Your namespace is displayed in the left area of the menu under the

software component version SC_BIT450_MARKETING_## Version1.0. You can open the namespace and display the subareas.

e) Activate all your changes.

25-08-2005 © 2005 SAP AG. All rights reserved.   27

Page 36: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 36/187

Unit 1: Development Objects in SAP XI BIT450

Lesson Summary

You should now be able to:• Understand the concepts of products, software components, and namespaces

• Create your own namespaces in the Integration Repository

28   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 37: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 37/187

BIT450 Lesson: Introduction to Proxies

Lesson: Introduction to Proxies

Lesson Overview

This lesson provides an overview of proxy technology.

Lesson Objectives

After completing this lesson, you will be able to:

• Describe the procedures for using proxies

• Understand the scenario used in the course

Business ExampleYour company already uses  SAP Exchange Infrastructure. The company is

implementing a new integration scenario using SAP systems, and you need to plan

the technical conversion and decide whether to use proxies.

Proxy Objects

A proxy is a server function that enables two remote applications to communicate.

Proxy objects act as agents and often perform tasks such as converting transferred

data.

Proxy objects therefore provide “server” services in programming, so that (server)

application functions can be used from a (client) application. These functions usestandard protocols and formats, for example http and XML, independently of the

development language used to implement the server or the client. Each function

has a description, which is used to generate the proxy objects in the appropriate

development environment for the client. The use of proxy objects therefore

enables you to use server application functions in the client application.

25-08-2005 © 2005 SAP AG. All rights reserved.   29

Page 38: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 38/187

Unit 1: Development Objects in SAP XI BIT450

Figure 13: Proxy Principle: Server Functions

The server functions are described in a representation independent of the

development environments (and languages), typically in the form of special

machine-readable XML files, so that proxy objects can be generated automatically.

The format of the XML files is WSDL (Web Service Description Language. For 

further information, see http://www.w3.org/2002/ws).

In XI, the functions are saved as  message interfaces  in the  Integration

Repository and these interfaces are used to generate the proxy objects for the

respective development environment (currently ABAP or Java). Functions are

called using HTTP protocol and special XML data formats.

Proxy Objects in XI

Proxy objects are classes and methods in a programming language that generate

or process messages for a message format defined in the Integration Repository

(message interface). A distinction is made between client proxy for outbound

interfaces and server proxy for inbound interfaces:

Client Proxy Objects

enable you to create messages (which correspond to an outbound message

interface for which the proxy objects were generated) and send these

messages to the  Integration Server .

Server Proxy Objects

represent a back-end function that can be called using an XI message (that

corresponds to an inbound message interface).

Hint:   In XI 2.0, client proxies were called “outbound proxies”, as they

 belong to an outbound message interface, and server proxies were referred

to as “inbound proxies”.

30   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 39: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 39/187

BIT450 Lesson: Introduction to Proxies

To use proxy objects, the following steps are necessary:

1. Define the message interfaces in the Integration Repository.

2. Generate the proxy objects.

3. Use proxy runtime.

Define the message interfaces in the Integration Repository.

The repository objects to be used for a scenario are saved in the  Integration

 Repository at design time. This includes the message interface, message

types, and data types. Flagging the message interface as inbound or outbound

also determines whether server or client proxy objects will be generated

for this message interface.

Generate the proxy objects.

The system can then generate the proxy objects for a development

environment (ABAP or Java) from a defined message interface. These

objects are classes, methods, and in some cases structure definitions, that

are used in an inbound scenario to implement server functions, that is, to

 process an inbound message that corresponds to the message interface. In an

outbound scenario, the client proxy objects can be used to create and send an

outbound message corresponding to the message interface.

Using the proxy runtime.

To be able to use proxy objects, the business system in question must have a

 proxy runtime that enables messages to be sent and received independently

of the scenario and the message format. Proxy runtime includes, amongother things, a local Integration Engine. ABAP proxy runtime belongs to the

ABAP part of the  Web AS  (in the XI Add-On) and Java proxy runtime is part

of XI Connectivity, which can also be installed separately.

The development process in this case is different from the programming of an

RFC-enabled function module (RFM:  R emote-enabled Function Module). RFM

functions are developed (as an inbound interface) in the target system together 

with the signature (import and export parameters). The functions can then be

called. When using proxy objects, the interface definition is separated from

the implementation of the actual functions. First, the message format for the

inbound message is saved in the Integration Repository in the form of an inbound

message interface. This definition is used to create a shell (a method) representingthe corresponding interface, into which the functions must be incorporated (for 

inbound messages). This is similar to the creation of a function module source

text with a set signature.

25-08-2005 © 2005 SAP AG. All rights reserved.   31

Page 40: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 40/187

Unit 1: Development Objects in SAP XI BIT450

Figure 14: Proxy Generation and Use

At design time, you create the repository objects, which are then used for proxy

generation to generate proxy objects for a programming language such as ABAP

or Java. At runtime, a method can be accessed to send a message to SAP Exchange

Infrastructure, for example. Proxy runtime is used to send a message from an

SAP system.

Scenario for ExercisesIn the exercises, participants will connect a Java standalone application to a

client of an SAP ABAP system in a synchronous scenario by using proxy

technology. Customer information is saved in the target system (business system

SAP_BACKEND). This customer information is required for sales orders in

the business system WEB_AS_JAVA.

Design Time:  First, create the message interfaces CustomerInformation_Re-

quest and  CustomerInformation_Provide in the Integration Repository for the

software components SC_BIT450_SALES and SC_BIT450_CIS.

32   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 41: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 41/187

BIT450 Lesson: Introduction to Proxies

Figure 15: Design View: Creating Interfaces

The next step is to generate the proxy objects for both sides. You have to generate

a CustomerInformation_Request in the caller system by using the generated

 proxy method; this request is sent to the central Integration Server . You also

have to implement the generated proxy method in the target system, that is, you

must develop the ABAP instructions for compiling the answer for the message

format CustomerInformation_Provide.

Figure 16: Synchronous Scenario

25-08-2005 © 2005 SAP AG. All rights reserved.   33

Page 42: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 42/187

Unit 1: Development Objects in SAP XI BIT450

34   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 43: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 43/187

BIT450 Lesson: Introduction to Proxies

Exercise 4: Checking Existing Interface

ObjectsExercise Objectives

After completing this exercise, you will be able to:

• Find existing interface objects in the Integration Repository.

Business Example

You want to gain an overview of the existing interface objects.

Task:Check which interface objects are available in the SWCV SC_BIT450_CIS in

your namespace http://bit450.com/xi/abap##.

1. Log on to the Integration Repository.

2. Naviagte to the SWCV SC_BIT450_CIS  and the namespace

http://bit450.com/xi/abap##, and search for existing message interfaces.

25-08-2005 © 2005 SAP AG. All rights reserved.   35

Page 44: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 44/187

Unit 1: Development Objects in SAP XI BIT450

Solution 4: Checking Existing Interface

ObjectsTask:

Check which interface objects are available in the SWCV SC_BIT450_CIS in

your namespace http://bit450.com/xi/abap##.

1. Log on to the Integration Repository.

a) Log on to client 800 in the training system.

 b) Choose  Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Integration

 Repository. The user name and password are the same as those required

to log on to the Integration Server .

2. Naviagte to the SWCV SC_BIT450_CIS  and the namespace

http://bit450.com/xi/abap##, and search for existing message interfaces.

a) Open the SWCV SC_BIT450_CIS, then choose version 1.0  and the

namespace http://bit450.com/xi/abap##.

 b) Open the Interface Objects / Message Interface node, and double click to

open the existing message interface  CustomerInformation_Provide.

c) In the message interface CustomerInformation_Provide, the message

types MtName and  MtCustomerInfo, and the fault message type

MissingInformation are referenced. You can double click on thesenames to navigate to the message type definitions. The data types

referenced in the message types are also directly displayed here.

36   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 45: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 45/187

BIT450 Lesson: Introduction to Proxies

Lesson Summary

You should now be able to:• Describe the procedures for using proxies

• Understand the scenario used in the course

25-08-2005 © 2005 SAP AG. All rights reserved.   37

Page 46: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 46/187

Unit 1: Development Objects in SAP XI BIT450

Lesson: Proxy Runtime Configuration

Lesson Overview

This lesson explains the required configuration for the ABAP and Java runtime

environments.

Lesson Objectives

After completing this lesson, you will be able to:

• Configure an SAP system based on the SAP WebAS ABAP  for proxy

communication, or check the configuration

• Configure an SAP system based on the  SAP WebAS Java  for proxy

communication, or check the configuration

Business Example

In your company, interfaces of an SAP system are connected to  SAP XI  using

 proxy technology, and you are responsible for checking the configuration.

ABAP Proxy Runtime Configuration

You have to configure the proxy runtime in the business system so that the local

Integration Engine is not the Integration Server  itself, but an application system.

You also need to determine to which Integration Server  the messages will be sent.In ABAP, you have to make client-specific configuration settings using transaction

SXMB_ADM. You have to specify that each client is an application system, which

means that proxy runtime belongs to a local Integration Engine. You also have to

set the corresponding Integration Server . You can do this directly using a URL, or 

 by using an existing SM59 destination.

38   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 47: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 47/187

BIT450 Lesson: Proxy Runtime Configuration

Figure 17: ABAP Proxy Runtime Configuration

As with the application systems, you also have to configure the central  Integration

Server  as the Integration Server . Of course, in this case you do not need to set

further parameters for the corresponding Integration Server .

For connecting an SAP ABAP back-end system, additional general configuration

steps are required. These are listed briefly below:

• RZ0: Register the technical system in the SLD

• Define the business system in the SLD  and import into the directory

• Define a communication channel XI recipient for back end

• SXMB_ADM: Define the Integration Engine as decentral

• SXMB_ADM: Maintain the destination on the central Integration Engine

• Enable access to the SLD: SLDAPICUST + SM59

• Create user XIAPPLUSER 

• SXMB_ADM: Activate queues

Hint:  These points are covered in more detail in the basic course  BIT400.

25-08-2005 © 2005 SAP AG. All rights reserved.   39

Page 48: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 48/187

Unit 1: Development Objects in SAP XI BIT450

Java Proxy Runtime Configuration

The use of Java proxies requires a  SAP J2EE Engine 6.40 SP5  or higher.

Together with the Messaging System (MS), the Java proxy runtime (JPR) must

 be installed on the SAP J2EE Engine. Both the JPR and the MS are components

of the XI 3.0 Adapter Framework  (AF), which is available from the SAP Service

 Marketplace.

Hint:   To install the XI Adapter Framework, you need to install the

following Software Delivery Archives (SDA) and Software Component

Archives (SCA) using the Software Deployment Manager (SDM):

Two SDAs that contain external libs (for license reasons, these cannot be

supplied by SAP):

• aii_af_ra_ms_sonic_client.sda

• aii_adapter_jms_provider_lib.sda

Two SCAs that contain the actual Adapter Framework:

•   SAPXIAFCnn_x.sca (contains AF core libraries and services)

•   SAPXIAFnn_x.sca (contains AF applications)

(nn stands for the relevant number of the SP, and X is the patch level,

for example SAPXIAF09_0.sca).

Hint:  Since the Adapter Framework makes intensive use of the other services of the SAP J2EE Engine, SAP recommends that you install the

AF at the same SP level as the J2EE Engine (from SP9, the SP numbers of 

the components have been synchronized).

In contrast to  XI 2.0, the Java proxy runtime requires almost no manual

configuration. It is more important that the SAP J2EE Engine is correctly

integrated into the system landscape. The required and optional steps are described

in more detail in the following.

Connection to the SLD:

for security reasons, in   XI 3.0, the   SLD   access data is no

longer maintained in the file dbconnect.properties. Instead, itis stored in the  Secure Store  of the J2EE Engine, which gets its date

from the  Exchange Profile of the   Integration Servers. You can configure

the corresponding connection to the   Integration Server  using the link:

http://<host>:< port>/exchangeProfile/connection. js p.

40   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 49: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 49/187

BIT450 Lesson: Proxy Runtime Configuration

Figure 18: Configuration of the J2EE Proxy Runtime: Access to the

exchangeProfile

To ensure that  SLD  access is activated, call the service CPACache in the  Visual 

 Administrator  and check whether the parameter SLDAccess has the value true.

The J2EE engine accesses the SLD  itself using the configuration of the  SLD Data

Supplier service (with the help of the  Visual Administrator ).

Business System

In XI 2.0, the JPR uses the file technicalID.properties to determine the

associated business system. In XI 3.0, the business system is identified by the SAP

J2EE Server, which automatically logs on to the  SLD  when the Adapter 

Framework is installed. The business system referenced by the technical system

acts as a sender service for outgoing messages.

Logging and Tracing:

To change the standard logging and tracing settings, use the  Visual Administrator 

and call the service Log Configuration. Switch to "Advanced Mode" and select

the "Runtime" tab, followed by "Destinations". Here, choose the entries

library_com.sap.aii.proxy.xiruntime_JPRTrace

application_sap.com/com.sap.xi.proxyserver_ProxyServerTrace

Here you can change the relevant log and trace settings at runtime. However, these

settings only take effect if the following settings are made in the  LogManager

(in the kernel tree of the server node):

either  ForceSingleTraceFile is set to NO

or   com.sap.aii.proxy   has been added to

SingleTraceFile_UnrestrictedLocations.

25-08-2005 © 2005 SAP AG. All rights reserved.   41

Page 50: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 50/187

Unit 1: Development Objects in SAP XI BIT450

42   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 51: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 51/187

BIT450 Lesson: Proxy Runtime Configuration

Exercise 5: Checking the Local Integration

Engine of a Business SystemExercise Objectives

After completing this exercise, you will be able to:

• Check which Integration Server  your business system  SAP_BACKEND is

assigned to.

Business Example

The client of an SAP system is a business system which exchanges messages by

using SAP Exchange Infrastructure. Therefore, an Integration Server  must be

assigned to the client in the SAP system.

Task 1:

Check the SLD  for the systems SAP_BACKEND and  WEBAS_JAVA.

1. Log on to the SLD  and check the list of business systems.

Task 2:

In the Integration Directory, check whether the systems SAP_BACKEND and

WEBAS_JAVA  have been imported, and which communication channels are

available.

1. Navigate to the business systems.

Task 3:

Check which  Integration Server  the business system  SAP_BACKEND is

assigned to.

1. Log on to the business system SAP_BACKEND and call the transaction for 

configuring the Integration Engine.

25-08-2005 © 2005 SAP AG. All rights reserved.   43

Page 52: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 52/187

Unit 1: Development Objects in SAP XI BIT450

Solution 5: Checking the Local Integration

Engine of a Business SystemTask 1:

Check the SLD  for the systems SAP_BACKEND and  WEBAS_JAVA.

1. Log on to the SLD  and check the list of business systems.

a) A list of business systems is displayed under System Landscape /

Business Landscape.

 b) The systems  SAP_BACKEND and  WEBAS_JAVA are included in

this list.

c) Select the name of the system to view the detailed information.

Task 2:

In the Integration Directory, check whether the systems SAP_BACKEND and

WEBAS_JAVA  have been imported, and which communication channels are

available.

1. Navigate to the business systems.

a) Log on to the Integration Directory.

 b) Choose Objects! Service Without Partner !  Business System!

SAP_BACKEND! Communication Channel . You will see thecommunication channel that the instructor created (SAP_Proxy_In).

This channel has the type XI recipient and references an SM59

destination.

c) Choose  Objects! Service Without Partner !  Business System

! WEBAS_JAVA! Communication Channel . You will see the

communication channel that the instructor created (J2E_Proxy_In).

This channel has the type XI recipient and references an SM59

destination.

d) Optional: You can log on to the Integration Server  (XI client 800)

and use transaction SM59 to check the SM59 destinations referenced

in the communication channels.

Continued on next page

44   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 53: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 53/187

BIT450 Lesson: Proxy Runtime Configuration

Task 3:

Check which  Integration Server  the business system  SAP_BACKEND is

assigned to.

1. Log on to the business system SAP_BACKEND and call the transaction for 

configuring the Integration Engine.

a) Log on to SAP_BACKEND. Use the parameters provided by the

instructor.

 b) Call transaction SXMB_ADM to configure the Integration Engine.

c) Under the Configuration node, choose the second entry  Configuration

 Data (Integration Engine).

d) In the Global Configuration Data section, the Role of Business System

 parameter shows that the role LOC Application System  is assigned to

the current client. The assigned Integration Engine is configured using

the Corresponding Integration Server  parameter, which contains the

URL of the Integration Engine.

Hint:  For an explanation of how to configure the URL

for calling the  Integration Server , use the F1 help for the

Corresponding Integration Server  field.

25-08-2005 © 2005 SAP AG. All rights reserved.   45

Page 54: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 54/187

Unit 1: Development Objects in SAP XI BIT450

Lesson Summary

You should now be able to:• Configure an SAP system based on the SAP WebAS ABAP  for proxy

communication, or check the configuration

• Configure an SAP system based on the  SAP WebAS Java  for proxy

communication, or check the configuration

46   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 55: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 55/187

BIT450 Lesson: Integration Scenarios in the Integration Repository

Lesson: Integration Scenarios in the Integration

Repository

Lesson Overview

This lesson introduces the Integration Repository, including integration scenarios

and interface objects.

Lesson Objectives

After completing this lesson, you will be able to:

• Create integration scenarios in the Integration Repository

• Create objects for message interfaces in the Integration Repository

Business Example

You want to implement a new integration scenario using  SAP Exchange

 Infrastructure. You are a member of a project team and are responsible for creating

the necessary objects in the  Integration Repository  as well as an integration

scenario, so that your colleagues can later retrace the objects you have created

and used.

Introduction to Integration Scenarios

Business scenarios in the  Integration Repository are the graphical representation

of an integration scenario and contain information about the systems involved, as

well as the interfaces and mappings used. They are therefore a type of integration

 plan and can be saved, for example, as image files (jpg).

The integration scenarios in the Integration Repository  can be copied to the

 Integration Directory for generating configuration scenarios.

It is not a prerequisite for production operation to save an integration scenario

in the Integration Repository, but it is recommended for documentation and

retraceability purposes. It also considerably simplifies the later creation of a

configuration scenario in the  Integration Repository.

SAP also supplies integration scenarios for your components that use SAP 

 Exchange Infrastructure.

Elements of Integration Scenarios

An integration scenario enables you to save the components involved in the form

of vertical (colored) columns. These application columns are assigned a role in

the scenario, which is a purely descriptive name. You do not enter any business

25-08-2005 © 2005 SAP AG. All rights reserved.   47

Page 56: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 56/187

Unit 1: Development Objects in SAP XI BIT450

systems in the integration scenarios. At design time, the integration scenario

should represent the process independently of the business systems that will be

used later.

When you create the application component, you can assign a product from

the SLD. If it is not yet clear which product will be used, or the product is not

maintained in the SLD, you can use a product template instead.

In the components of the integration scenario, you create actions, which represent

the process steps in the scenario. An action sends or receives an (ext.) message.

Message interfaces are saved for the actions, which describe the format of the

message.

A connection line between the actions is used to connect the process steps. It

indicates where messages are exchanged between process steps. The message

interfaces used are entered in the connection line. If different message interfacesare used, you have to create a relevant message mapping in the connection line.

If the connected actions are on the same level, the process is synchronous. If 

the action on the right-hand side is below the action on the left-hand side, this

represents an asynchronous scenario step.

Hint:  Although an integration scenario is a representation of an

integration scenario that is typically distributed across two or more

components, the integration scenario itself must be assigned as an object

to a component and to a namespace in the Integration Repository. This

also applies to mapping objects, which connect the message interfaces of two components. The component that an integration scenario is assigned

to is not important at this stage. In the scenario used in the following

exercises, the integration scenario and the mapping objects are assigned to

the sender system.

The Integration Scenario for the Exercises

In the exercises, an integration scenario containing the message interfaces to be

used is created in the  Integration Repository.

Hint:  The software components have already been created and importedto the  Integration Repository. The namespaces for the objects to be

created have also been saved in the software component versions.

48   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 57: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 57/187

Page 58: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 58/187

Unit 1: Development Objects in SAP XI BIT450

The objects required in the Integration Repository are shown below. The objects

for the software component SC_BIT450_CIS have already been created in the

 Integration Repository.

Figure 21: Overview of Message Formats

The Java application sends a query containing a complex data type with two

customer fields. However, the application function in the target system onlyexpects a simple data type with the combined name of the customer. You therefore

require a mapping for this part of the message on the Integration Server .

Figure 22: Mapping Types

50   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 59: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 59/187

BIT450 Lesson: Integration Scenarios in the Integration Repository

You have to create a message mapping, which maps the outbound message type

with two source fields to the inbound message type with one target field. An

interface mapping is also necessary. This maps the two message interfaces toeach other and contains the message mapping.

Finally, you have to make the relevant configuration settings in the  Integration

 Directory so that the message sent by the Java application is correctly forwarded

to the target system.

Figure 23: Configuration in the Integration Directory

25-08-2005 © 2005 SAP AG. All rights reserved.   51

Page 60: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 60/187

Unit 1: Development Objects in SAP XI BIT450

52   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 61: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 61/187

BIT450 Lesson: Integration Scenarios in the Integration Repository

Exercise 6: Creating an Integration

Scenario and Repository Objects in theIntegration Repository

Exercise Objectives

After completing this exercise, you will be able to:

• Create integration scenarios in the Integration Repository

Business Example

You are a member of a project team and want to implement an integration scenario.

To ensure that the message formats you use and the systems involved can betraced even after your project has been completed, create a integration scenario

containing the necessary information in the  Integration Repository along with the

actual message information (message interfaces).

Task 1:

Create an integration scenario called  BIT450_CustomerInfoScenario_## in the

 Integration Repository.

1. Log on to the Integration Repository.

2. Create a new integration scenario called BIT450_CustomerInfoScenario_##

for your software component version  SC_BIT450_SALES 1.0  in your namespace http://bit450.com/xi/java##.

3. Insert the following two application components into your integration

scenario: product version P_BIT450_SALES 1.0 with the role “Sales

and Distribution” and product version  P_BIT450_CIS 1.0 with the role

“CustomerInfoCenter”.

4. Insert the action RequestCustomerInformation   for product

version   P_BIT450_SALES 1.0  with the outbound interface

CustomerInformation_Request into your application component.

Caution:  Make sure that you enter the names correctly whencreating the objects since these names are used in all the following

exercises, especially proxy runtime. If you are unsure of the names,

use the graphics from this lesson or ask your instructor.

5. Insert the action you just created and the action ProvideCustomerInforma-

tion (from the software component SC_BIT450_CIS) into your integration

scenario and insert a connection line between the actions.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   53

Page 62: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 62/187

Unit 1: Development Objects in SAP XI BIT450

Task 2:

In the Integration Repository, create the necessary repository objects for the

integration scenario you just created.

Hint:  There are two methods for creating the objects: top-down (by

forwards navigation from the integration scenario to the message interface

down to the data types) or bottom-up (from the data types to the message

types up to the message interface). The top-down method is described

 below.

1. Log on to the Integration Repository.

2. Check whether the message interface CustomerInformation_Provide for 

the software component version (SWCV)  SC_BIT450_CIS 1.0  in your namespace http://bit450.com/xi/abap## corresponds to the current scenario

and that only objects from your namespace are referenced.

3. Create the outbound message interface CustomerInformation_Request

saved in the action  RequestCustomerInformation in your namespace

http://bit450.com/xi/java##.

It should contain an output message type  MtCustomerName, an

input message type  MtCustomerInfo, and a fault message type

MissingInformation.

The message type MtCustomerName should in turn use a complex data

type PersonName comprising the elements  Surname (XSD:string) andName (XSD:string).

The message type MtCustomerInfo should use the complex data type

CustomerInfo comprising the integer element  ID  and the string elements

NAME, CUSTTYPE, POSTCODE, and CITY.

4. Create the message mapping CustomerNameMerge for the software

component version  SC_BIT450_SALES 1.0  in your namespace

http://bit450.com/xi/java## to map the message types MtCustomerName

and MtName to each other.

In this message mapping, map both the Surname and  Name fields from the

source structure, separated by a blank, to  MtName (located in the SWCVSC_BIT450_CIS 1.0 in the namespace http://bit450.com/xi/abap##).

The sequence should be first name, then surname.

Test your message mapping.

5. Create the interface mapping  CustomerInfoMap for the software

component version  SC_BIT450_SALES 1.0  in your namespace

http://bit450.com/xi/java##  to map the message interfaces

Continued on next page

54   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 63: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 63/187

BIT450 Lesson: Integration Scenarios in the Integration Repository

CustomerInformation_Request and  CustomerInformation_Provide to

each other (using the message mapping CustomerNameMerge for the

request).

25-08-2005 © 2005 SAP AG. All rights reserved.   55

Page 64: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 64/187

Unit 1: Development Objects in SAP XI BIT450

Solution 6: Creating an Integration

Scenario and Repository Objects in theIntegration Repository

Task 1:

Create an integration scenario called BIT450_CustomerInfoScenario_## in the

 Integration Repository.

1. Log on to the Integration Repository.

a) Log on to client 800 in the training system.

 b) Choose  Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Repository(Design). The user name and password are the same as those required

to log on to the Integration Server .

2. Create a new integration scenario called BIT450_CustomerInfoScenario_##

for your software component version  SC_BIT450_SALES 1.0  in your 

namespace http://bit450.com/xi/java##.

a) Navigate to your namespace  http://bit450.com/xi/java## in the

software component version  SC_BIT450_SALES 1.0 and expand

the Integration Scenarios & Processes  node. Use the context menu

for the   Integration Scenarios  node to create a new integration

scenario BIT450_CustomerInfoScenario_##. Enter the name on theinitial screen, use the predefined values for namespace and software

component version, and choose Create. You can enter a description in

the detail view. Save the integration scenario.

Continued on next page

56   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 65: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 65/187

Page 66: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 66/187

Unit 1: Development Objects in SAP XI BIT450

Caution:  Make sure that you enter the names correctly when

creating the objects since these names are used in all the followingexercises, especially proxy runtime. If you are unsure of the names,

use the graphics from this lesson or ask your instructor.

a) Using the context menu for  Actions, create an action called

RequestCustomerInformation for the software component

version   SC_BIT450_SALES 1.0   in your namespace

http://bit450.com/xi/java##. Enter the name on the initial screen, use

the predefined values for namespace and software component version,

and choose Create.

In the detail view under Use, leave  Internal   selected. Under 

Outbound Interfaces  use the icon with the green cross toenter  CustomerInformation_Request in the  Name field and

http://bit450.com/xi/java## in the Namespace field.

Hint:  Since the outbound interface is not created until later,

you can use the F4 input help for the namespace, but not for 

the outbound interface.

Save your entries.

Continued on next page

58   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 67: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 67/187

BIT450 Lesson: Integration Scenarios in the Integration Repository

5. Insert the action you just created and the action ProvideCustomerInforma-

tion (from the software component SC_BIT450_CIS) into your integration

scenario and insert a connection line between the actions.

a) Navigate to your integration scenario (in software component

SC_BIT450_SALES) and insert both actions by choosing Insert Action

from the context menu for the respective component. Insert the action

RequestCustomerInformation into the component with the role Sales

and Distribution and insert the action  ProvideCustomerInformation

into CustomerInfoCenter .

Hint:   Since the actions are assigned to the corresponding

software components (and, in this case, the software

components are assigned to different products), make sure thatyou assign them to the correct application component.

 b) Select both actions (by holding down the Shift key and clicking the

left mouse button). Then call the context menu and choose Create

Connection Between Selected Actions to create a connection between

the two actions.

c) In the detail view for the connection, select the inbound interface

CustomerInformation_Provide.

d) In the detail view, choose the Mapping  tab and maintain the following

mapping under “Assigned Interface Mapping”:

 Name CustomerInfoMap

 Namespace http://bit450.com/xi/java##

Software component version SC_BIT450_SALES

Hint:   Since the interface mapping is not created until later,

you cannot use the input help.

e) Choose Enter  to exit the detail view.

f) You also have the option of defining the actions as start or end actions.To do so, in change mode, use the corresponding function in the context

menu for the action in the integration scenario.

g) Save and activate all objects.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   59

Page 68: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 68/187

Unit 1: Development Objects in SAP XI BIT450

Task 2:

In the Integration Repository, create the necessary repository objects for the

integration scenario you just created.

Hint:  There are two methods for creating the objects: top-down (by

forwards navigation from the integration scenario to the message interface

down to the data types) or bottom-up (from the data types to the message

types up to the message interface). The top-down method is described

 below.

1. Log on to the Integration Repository.

a) Log on to client 800 in the training system.

 b) Choose  Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Repositor y

(Design). The user name and password are the same as those required

to log on to the Integration Server .

2. Check whether the message interface CustomerInformation_Provide for 

the software component version (SWCV)  SC_BIT450_CIS 1.0  in your 

namespace http://bit450.com/xi/abap## corresponds to the current scenario

and that only objects from your namespace are referenced.

a) Open the SWCV and navigate to the interface objects in your 

namespace. Under  Message Interfaces, open the message interface

CustomerInformation_Provide that has already been created bydouble clicking it.

 b) Check that the correct message types are referenced by checking the

namespaces and also by navigating to the referenced message types

and then to the data types by double clicking.

c) You can also start a check in the message interface by choosing

 Message Interface! Check (F7). If a message type has been entered

that does not exist, an error message will appear.

3. Create the outbound message interface CustomerInformation_Request

saved in the action  RequestCustomerInformation in your namespace

http://bit450.com/xi/java##.

It should contain an output message type  MtCustomerName, an

input message type  MtCustomerInfo, and a fault message type

MissingInformation.

The message type MtCustomerName should in turn use a complex data

type PersonName comprising the elements  Surname (XSD:string) and

Name (XSD:string).

Continued on next page

60   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 69: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 69/187

Page 70: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 70/187

Unit 1: Development Objects in SAP XI BIT450

-> Element NAME (XSD:string)

-> Element CUSTTYPE (XSD:string)

-> Element POSTCODE (XSD:string)

-> Element CITY (XSD:string)

Hint:  Of course, you can also copy the message

type  MtCustomerInfo  from the ABAP component

SC_BIT450_CIS, including all its dependent objects. You

then only need to manually correct the XML namespace of 

the message type.

Save and activate all objects.

Hint:  There is an icon under the Object  menu option that

enables you to save all objects at the same time.

4. Create the message mapping CustomerNameMerge for the software

component version  SC_BIT450_SALES 1.0  in your namespace

http://bit450.com/xi/java## to map the message types MtCustomerName

and MtName to each other.

In this message mapping, map both the Surname and  Name fields from the

source structure, separated by a blank, to  MtName (located in the SWCV

SC_BIT450_CIS 1.0 in the namespace http://bit450.com/xi/abap##).

The sequence should be first name, then surname.

Test your message mapping.

a) In the objects for your namespace http://bit450.com/xi/java##,

navigate to the Message Mappings node by choosing Mapping Objects.

To create a new message mapping, call the context menu. Enter the

name CustomerNameMerge and choose Create. Enter a description.

 b) In the navigation tree for the software component  SC_BIT450_SALES ,

search for the  Message Types  node and the message type

MtCustomerName. Use Drag&Drop to drag this type to the handicon in the source structure (to the field labeled  Choose a Source

 Message). Search for your message type  MtName in the software

component SC_BIT450_SALES , in the  Message Types node, and use

Continued on next page

62   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 71: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 71/187

Page 72: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 72/187

Page 73: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 73/187

BIT450 Lesson: Integration Scenarios in the Integration Repository

Lesson Summary

You should now be able to:• Create integration scenarios in the Integration Repository

• Create objects for message interfaces in the Integration Repository

25-08-2005 © 2005 SAP AG. All rights reserved.   65

Page 74: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 74/187

Unit Summary BIT450

Unit Summary

You should now be able to:

• Understand the components of  SAP Exchange Infrastructure

• List the options available for connecting application systems to SAP 

 Exchange Infrastructure

• Understand the concepts of products, software components, and namespaces

• Create your own namespaces in the Integration Repository

• Describe the procedures for using proxies

• Understand the scenario used in the course

• Configure an SAP system based on the SAP WebAS ABAP  for proxy

communication, or check the configuration

• Configure an SAP system based on the  SAP WebAS Java  for proxycommunication, or check the configuration

• Create integration scenarios in the Integration Repository

• Create objects for message interfaces in the Integration Repository

66   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 75: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 75/187

Unit 2 Generating Proxy Objects

Unit Overview

The topic has been introduced and you have created the objects in the  Integration

 Repository. These objects will now be used to generate proxy objects, which will

 be used in the actual programming (unit 3).

Unit Objectives

After completing this unit, you will be able to:

• Explain the procedure for using proxy objects

• Describe the relationship between message types and proxy methods

• Create and generate the corresponding ABAP proxy objects for a message

interface from the Integration Repository

• Understand the generated proxy objects

• Generate the corresponding Java proxy objects for a message interface from

the  Integration Repository

• Understand the functions of the generated proxy objects

• Enhance message interfaces using data type enhancements without

modifications

• Modify message interfaces

Unit Contents

Lesson: Introduction to the Proxy Program Model ..........................  68

Exercise 7: Generating a WSDL File in the Integration Repository.. . 71Lesson: ABAP Proxy Generation.............................................. 74

Exercise 8: Generating ABAP Proxy Objects... .. .. .. .. .. .. .. .. .. .. .. .. . 79

Lesson: Java Proxy Generation ............................................... 83Exercise 9: Generating Java Proxy Objects ... .. .. .. .. .. .. .. .. .. .. .. .. .. 89

Lesson: Enhancing Interfaces ................................................. 96Exercise 10: Checking Proxy Enhancements ..........................101

25-08-2005 © 2005 SAP AG. All rights reserved.   67

Page 76: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 76/187

Unit 2: Generating Proxy Objects BIT450

Lesson: Introduction to the Proxy Program Model

Lesson Overview

Introduction to the concept of central interface maintenance.

Lesson Objectives

After completing this lesson, you will be able to:

• Explain the procedure for using proxy objects

• Describe the relationship between message types and proxy methods

Business ExampleYou are responsible for introducing WSDL documents in an integration project

and want to know how this standard is used in  XI .

Proxy Model

Figure 24: Proxy Generation and Use

68   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 77: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 77/187

Page 78: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 78/187

Unit 2: Generating Proxy Objects BIT450

Figure 26: Proxy Runtime

On the outbound side, the exchange profile and therefore the  System Landscape

 Directory are accessed to obtain information about the URL of the  Integration

Server  to be used.

70   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 79: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 79/187

BIT450 Lesson: Introduction to the Proxy Program Model

Exercise 7: Generating a WSDL File in the

Integration RepositoryExercise Objectives

After completing this exercise, you will be able to:

• Generate a WSDL file for a message interface you have already created

Business Example

You have created a message interface and you want to find out how to describe the

saved information by using the Web service standard WSDL.

Task: Generate a WSDL File for a Message Interface

Generate a WSDL file for your message interface CustomerInformation_Provide

in the Integration Repository.

1. Log on to the Integration Repository.

2. In the Integration Repository, display the detail view of the inbound message

interface CustomerInformation_Provide for software component version

SC_BIT450_CIS 1.0 in your namespace  http://bit450.com/xi/abap##.

3. Export the WSDL file to the directory \\xitrans\group##\CustomerInfor-

mation_Provide.wsdl .

4. Display the WSDL file that you have created.

25-08-2005 © 2005 SAP AG. All rights reserved.   71

Page 80: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 80/187

Unit 2: Generating Proxy Objects BIT450

Solution 7: Generating a WSDL File in the

Integration RepositoryTask: Generate a WSDL File for a Message Interface

Generate a WSDL file for your message interface CustomerInformation_Provide

in the  Integration Repository.

1. Log on to the Integration Repository.

a) Log on to client 800 in the training system.

 b) Choose  Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Repository

(Design). The user name and password are the same as those required

to log on to the Integration Server .

2. In the Integration Repository, display the detail view of the inbound message

interface CustomerInformation_Provide for software component version

SC_BIT450_CIS 1.0 in your namespace  http://bit450.com/xi/abap##.

a) Open the software component version SC_BIT450_CIS 1.0, then your 

namespace http://bit450.com/xi/abap##. In the interface objects,

navigate to the message interface CustomerInformation_Provide.

 b) Open the detail view of the message interface by double clicking the

name.

3. Export the WSDL file to the directory \\xitrans\group##\CustomerInfor-mation_Provide.wsdl .

a) The detail view has its own menu on the right-hand side of the screen.

Choose Tools! Export WSDL from this menu and save the WSDL file

on your PC as  CustomerInformation_Provide.wsdl in the directory

\\xitrans\group##\.

4. Display the WSDL file that you have created.

a) To open the file, you can double click on it directly in the above

directory or open it from within an application such as Notepad.

72   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 81: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 81/187

Page 82: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 82/187

Unit 2: Generating Proxy Objects BIT450

Lesson: ABAP Proxy Generation

Lesson Overview

Introduction to ABAP proxy generation and proxy objects.

Lesson Objectives

After completing this lesson, you will be able to:

• Create and generate the corresponding ABAP proxy objects for a message

interface from the Integration Repository

• Understand the generated proxy objects

Business Example

You are an ABAP developer and are responsible for generating ABAP proxy

objects. You want to know the necessary procedure.

Generating ABAP Proxy Objects

The required objects, such as transaction SPROXY, are available in every SAP

system based on SAP Web AS 6.40  or above.

Hint:  In the  SAP Web Application Server 6.20, the objects are delivered

with the APP-INT add-on.

The transaction SPROXY reads the information stored in the  Integration

 Repository as a WSDL file and saves it in the SAP system.

The user interface of the transaction SPROXY displays the message interfaces

saved in the Integration Repository under their corresponding software component

version and namespace, grouped into inbound and outbound message interfaces.

If no proxy objects have been generated for a message interface, only the message

interface name is listed. If proxy objects have been generated, then you can

navigate to them directly.

Hint:  For SAP components (vendor = ’sap.com’): only the software

component versions that are installed in the same system are offered (see

the table CVERS or view the system status and choose the details button

for the software component version).

To create new proxy objects, select the name of the message interface and then

choose Create Proxy from the context menu.

74   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 83: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 83/187

BIT450 Lesson: ABAP Proxy Generation

Figure 27: ABAP Proxy Generation: Steps

The next step is to specify a package and a prefix to avoid naming conflicts

 between the objects to be created and existing objects.

Hint:  If the package checks are activated in the SAP system, the

 properties of the package must be correctly maintained for the use of the

generic proxy objects. (To deactivate the package checks, in the table

“PAKPARAM”, set the key “GLOBAL_SWITCH” to “OFF”.)

However, naming conflicts may still occur, or the object names in the  Integration

 Repository may be longer than is permitted in ABAP. Any such conflicts will be

displayed in a separate window. You can then view the objects that you want to

generate and make any necessary changes to their names before generating them.

The created interface defines the interface (inbound and outbound parameters)

for the method  execute_synchronous (or, in the asynchronous case,

execute_asynchronous). The created class implements this interface, which

means it contains a method that corresponds to the interface declaration and can

 be used at runtime.

25-08-2005 © 2005 SAP AG. All rights reserved.   75

Page 84: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 84/187

Unit 2: Generating Proxy Objects BIT450

Figure 28: Generated ABAP Objects Interface

The signature of the method execute_synchronous corresponds to the message

interface. It contains the inbound message type as INPUT, the outbound message

type as OUTPUT and the fault message type as the exception. The method

signature and the data structures will be explained in more detail later.

ABAP Server Proxy ObjectsIn the case of an inbound message interface, you create a method in the generated

class. The method will be implemented later; at the moment it is still empty and

serves to receive and process a message from the  Integration Server . You also

create all the necessary dictionary objects for the method interface.

76   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 85: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 85/187

BIT450 Lesson: ABAP Proxy Generation

Figure 29: Generated ABAP Server Proxy Objects

Hint:  Even if the server proxy objects have been activated in the

transaction SPROXY, you still have to activate the generated class

separately. As this method still has to be implemented and activated, the

class itself must also be activated, during this implementation at the latest.

ABAP Client Proxy Objects

In the case of an outbound message interface, you create a method (for example,

execute_synchronous) in the generated class. The method will be used later, for 

example, it may be called in a program to send a message to the  Integration Server .

You also create all the necessary dictionary objects for the method interface.

25-08-2005 © 2005 SAP AG. All rights reserved.   77

Page 86: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 86/187

Unit 2: Generating Proxy Objects BIT450

Figure 30: Generated ABAP Proxy Objects (Outbound)

Converting WSDL to the Target Language:

For a short introduction to XSD with details about ABAP

(and Java), listing the exact mapping of XSD data types

to ABAP types, see the documentation in the SAP Library:

SAP Exchange Infrastructure!  Design and Configuration Time!  Design!

 Proxy Generation ! Converting WSDL to the Target Language.

78   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 87: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 87/187

BIT450 Lesson: ABAP Proxy Generation

Exercise 8: Generating ABAP Proxy

ObjectsExercise Objectives

After completing this exercise, you will be able to:

• Generate all the necessary proxy objects in an SAP client for an inbound

message interface defined in the  Integration Repository

Business Example

As part of an XI  project, you want to connect an SAP back-end system to the

 Integration Server  using proxy technology. The message formats have already

 been created in the Integration Repository, and you are responsible for creating

(and later implementing) the server proxy objects in the SAP back end.

Task:

Generate all the necessary proxy objects for the inbound message interface

CustomerInformation_Provide in the business system SAP_BACKEND.

1. Log on to the business system SAP_BACKEND and call the transaction

for generating proxy objects.

2. Generate all the necessary proxy objects for the inbound message interface

CustomerInformation_Provide in the software component versionSC_BIT450_CIS 1.0, in the namespace http://bit450.com/xi/abap##.

25-08-2005 © 2005 SAP AG. All rights reserved.   79

Page 88: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 88/187

Unit 2: Generating Proxy Objects BIT450

Solution 8: Generating ABAP Proxy

ObjectsTask:

Generate all the necessary proxy objects for the inbound message interface

CustomerInformation_Provide in the business system SAP_BACKEND.

1. Log on to the business system SAP_BACKEND and call the transaction

for generating proxy objects.

a) Log on to client 8xx of the SAP_BACKEND system.

 b) Call the transaction SPROXY for generating proxy objects.

Continued on next page

80   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 89: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 89/187

BIT450 Lesson: ABAP Proxy Generation

2. Generate all the necessary proxy objects for the inbound message interface

CustomerInformation_Provide in the software component version

SC_BIT450_CIS 1.0, in the namespace http://bit450.com/xi/abap##.

a) Select the software component version SC_BIT450_CIS 1.0 in

the namespace  http://bit450.com/xi/abap##. Navigate to the

 Message Interface (inbound) node and then to the message interface

CustomerInformation_Provide.

 b) Start the generation process by double clicking the message interface

name CustomerInformation_Provide.

c) A modal dialog box appears. Enter the package $TMP and the prefix

Z##_  (including the underscore).

Hint: The prefix helps to prevent naming conflicts with objects

that already exist in the system and other exercise groups.

Caution: To create proxy objects in an SAP customer system,

you require an OSS key and development authorization.

d) If there are naming conflicts or the object name exceeds the permitted

length, a modal dialog box will alert you to this. In this case, the next

screen has additional tab pages informing you of warnings and conflicts.

e) To view the objects to be generated, use the Generation and  Structure

tab pages.

You can change the interface name to  Z##_II_CUS-

TOMER_INFO_PROVIDE or change the name of the implementing

class to Z##_CL_CUSTOMER_INFO_PROVIDE, or both, as an

example. In the following exercises, do not forget that you have

changed these names.

f) To activate the proxy objects, choose Activate or, from the menu,

 Proxy!  Activate.

g) Navigate to the objects you have created by double clicking

them. In particular, navigate to the proxy interface Z##_II_CUS-

TOMER_INFORMATION_PR , to the implementing class

Z##_CL_CUSTOMER_INFORMATION_PR , and from there to

the method Z##_CL_CUSTOMER_INFORMATION_PR~exe-

cute_synchronous.

Note:  The method is empty because you have not yet

implemented the functions that will be executed by an inbound

message.

25-08-2005 © 2005 SAP AG. All rights reserved.   81

Page 90: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 90/187

Unit 2: Generating Proxy Objects BIT450

Lesson Summary

You should now be able to:• Create and generate the corresponding ABAP proxy objects for a message

interface from the Integration Repository

• Understand the generated proxy objects

82   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 91: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 91/187

BIT450 Lesson: Java Proxy Generation

Lesson: Java Proxy Generation

Lesson Overview

Generation of Java proxy objects in the Integration Repository

Lesson Objectives

After completing this lesson, you will be able to:

• Generate the corresponding Java proxy objects for a message interface from

the  Integration Repository

• Understand the functions of the generated proxy objects

Business Example

You are a Java developer and are responsible for generating Java proxy objects.

You want to know the necessary procedure.

Generating Java Proxy Objects

Using the Java proxy generation function, you can generate Java classes or Java

 proxy objects from a message interface in the Integration Repository. Using

these objects, you can then implement sender and receiver applications in Java;

the proxy objects establish the connection to the  Integration Server  using the

Java proxy runtime.You can generate Java proxies for J2EE applications on the SAP Web Application

Server . Proxy generation generates J2EE beans and proxy classes for this purpose.

The generated beans satisfy the EJB 2.0 standard. Java proxy generation is a part

of the Integration Builder  with the following functions:

• Generation of an archive (as Jar- or Zip file) starting from one or more

message interfaces of the same software component version. The archive

contains the bean and proxy classes.

• Opening of existing archives for subsequent generation of proxies. Proxy

generation recognizes the original message interfaces for which proxy

objects are contained in the archive.In the Integration Repository, you can call Java proxy generation as follows:

• From the main menu, choose Tools! Java Proxy Generation

• From the context menu, choose Java Proxy Generation...   for message

interfaces in the navigation tree.

25-08-2005 © 2005 SAP AG. All rights reserved.   83

Page 92: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 92/187

Unit 2: Generating Proxy Objects BIT450

In the first step of Java proxy generation, you have to specify an archive (in Jar-

or Zip format). You have two options:

• You can Create a New Archive. With this option, if you select an existing

archive, it is overwritten.

• You can Change an Existing Archive. Choose this option if you want to

regenerate proxy objects. In this case, Java proxy generation recognizes the

message interfaces for which proxies already exist in the archive, so that

these can be regenerated at the same time. You can only regenerate proxy

classes for the entire message interface.

Hint:  jar files are Java archives that can deliver multiple classes together 

as one package. You can open and unpack these archives in  Windows by

using WinZip, for example. You can also use the jar command - which issimilar to tar under Linux:

Hint:

jar -xf <filename> : Extracts a jar filejar -tf <filename> : Displays content of jar file

Figure 31: Integration Builder: Generating Java Proxy Objects

Make sure that you adhere to the file hierarchy when you unpack the archive. The

namespace of the objects becomes the package name of the Java classes and is

reflected in the file system and subfolders that are used by the Java runtime. A

namespace http://bit450.com/xi/java## thus becomes com ! bit450!  xi!

 java##  in the file system. This folder contains the Java classes that belong to

this package.

84   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 93: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 93/187

BIT450 Lesson: Java Proxy Generation

Figure 32: Namespaces, Packages and Folders

Converting the Message Interface to Java

Compared to ABAP, Java has fewer restrictions regarding names for labels (for 

example, for classes or data types). The length of labels in Java is practically

unlimited and they are case-sensitive. The technical names of the generated Java

 proxy classes are based on the JAX RPC specification:

• Namespaces are mapped to packages.

• Classes for interfaces have the suffix _PortType.

• Classes for data types have the suffix _Type

The suffixes correspond to the element names from the imported WSDL document

and help to avoid naming collisions. For this reason, naming conflicts are very

unlikely. If a naming conflict occurs, proxy generation terminates and triggers

an error message.

Conversion of Data Types

Predefined XSD data types are mapped to their Java equivalents. For 

example, values of the XSD type string  are transformed to the Java

classjava.lang.String.

All non-fixed predefined data types are mapped as follows:

25-08-2005 © 2005 SAP AG. All rights reserved.   85

Page 94: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 94/187

Unit 2: Generating Proxy Objects BIT450

Data Type Conversion Between XSD and Java

XSD Java

<attribute> (local) Attributes of a class (including access

methods)

<complex> (global) Class

<complex> (local) Inner class

<element

 maxOccurs="unbounded">

Attributes of an (inner) class

(including access methods)

<element> (local) Attribute of an (inner) class (including

access methods)

The XSL elements <extension>,   <element abstract="true"> and<redefine> cannot be converted.

The proxy runtime does not recognize the XSL language elements for restricting

the value range (for example <pattern>) and for defining key relationships

(for example, <keyref>) - these properties should be checked as a part of the

schema validation.

Hint:  For more information on the XML schema language elements

supported by Java proxy generation, see the SAP Service Marketplace

(Internet address  service.sap.com/xi ! Media Library

! Documentation: SAP XI 3.0 (SP1) – Supported XML Schema and WSDL (EN)).

Java Proxy Objects (Outbound)

For an outbound message interface, a Java class with the ending  _PortType

(and additional EJB-relevant classes and interfaces) are created. This

class contains a generated method according to the pattern  <Datentypinbound Nachricht> MyInterfaceName (<Datentyp outboundNachricht>). To send a message using the Java proxy runtime, the method

described above must be called on the remote interface of the proxy bean.

Java Proxy Objects (Inbound)

For an inbound message interface, you create a Java interface with the suffix

 _PortType (and Java beans, if necessary). This interface contains a method

declaration according to the pattern  <Datentyp outbound Nachricht>MyInterfaceName (<Datentyp inbound Nachricht>). To process

the messages sent by the  Integration Server , the interface _PortType must be

implemented.

86   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 95: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 95/187

Page 96: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 96/187

Unit 2: Generating Proxy Objects BIT450

88   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 97: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 97/187

BIT450 Lesson: Java Proxy Generation

Exercise 9: Generating Java Proxy Objects

Exercise Objectives

After completing this exercise, you will be able to:

• Generate Java proxy objects for a message interface in the Integration

 Repository

• Use the Java development environment Netweaver Developer Studio to

integrate the created objects into a project

Business Example

You want to use proxy runtime to enable communication between a J2EE and the

 Integration Server . To use the data types and transfer a message to the IntegrationServer  by calling a method, you need the corresponding proxy objects.

Task:

Generate the necessary proxy objects for the outbound message interface

CustomerInformation_Request and integrate them into a project in the  SAP 

 Netweaver Developer Studio.

1. Log on to the Integration Repository.

2. Navigate to the message interface CustomerInformation_Request in the

namespace http://bit450.com/xi/java## of the software component version

SC_BIT450_SALES.

3. Generate the Java proxy objects for the message interface

CustomerInformation_Request in a Java archive with the

name  CustomerInfo.zip  and save the archive under the path

<WORKSPACE>\temp\CustomerInfo.zip.

Hint:  <WORKSPACE> is used here as a variable; your instructor 

will inform you which workspace to use, for example “N:\My

Documents\BIT450\”.

4. Unpack the objects from the archive CustomerInfo.zip to the directory<WORKSPACE>\temp\CustomerInfo.

5. Start the SAP NetWeaver Developer Studio and create an EJB module project

called  Exc_Sales_EJB.

6. Import the unpacked proxy classes into the EJB module project.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   89

Page 98: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 98/187

Unit 2: Generating Proxy Objects BIT450

7. Use the variable SAP_USER_ADD_LIBS to add the libraries from the

directory  <WORKSPACE>\libs\WebAS\ext  to the project. To do this, point

the variable to the path  <WORKSPACE>\libs\WebAS\ext .

8. Choose the J2EE Explorer  tab and view the newly imported classes and

interfaces.

90   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 99: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 99/187

BIT450 Lesson: Java Proxy Generation

Solution 9: Generating Java Proxy Objects

Task:

Generate the necessary proxy objects for the outbound message interface

CustomerInformation_Request and integrate them into a project in the  SAP 

 Netweaver Developer Studio.

1. Log on to the Integration Repository.

a) Log on to client 800 in the training system.

 b) Choose  Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Repository

(Design). The user name and password are the same as those required

to log on to the Integration Server .

2. Navigate to the message interface CustomerInformation_Request in the

namespace http://bit450.com/xi/java## of the software component version

SC_BIT450_SALES.

a) Open the software component version SC_BIT450_SALES, then

your namespace http://bit450.com/xi/java##. Navigate to Interface

Objects!  Message Interfaces and go to the message interface

CustomerInformation_Request that you created.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   91

Page 100: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 100/187

Unit 2: Generating Proxy Objects BIT450

3. Generate the Java proxy objects for the message interface

CustomerInformation_Request in a Java archive with the

name  CustomerInfo.zip  and save the archive under the path<WORKSPACE>\temp\CustomerInfo.zip.

Hint:  <WORKSPACE> is used here as a variable; your instructor 

will inform you which workspace to use, for example “N:\My

Documents\BIT450\”.

a) To start Java proxy generation, call the context menu for the

message interface name. A new window is opened. First use the

Create  icon to enter the name and the path of the Java archive:

<WORKSPACE>\temp\CustomerInfo.zip.

Hint:   For the Java archive, the name “CustomerInfo.jar”

would be more suitable, but the “.zip” file ending enables you

to later open the archive within the training environment.

 b) Choose Continue. You can skip the next three steps, as these only list

the message interface selected using the context menu.

c) At the end, choose Finish to start the generation and then choose  Close

to exit the assistant.

4. Unpack the objects from the archive CustomerInfo.zip to the directory

<WORKSPACE>\temp\CustomerInfo.

a) Start WinZip by double clicking on the file  CustomerInfo.zip in the

directory  <WORKSPACE>\temp\.

 b) Use the option Use Folder Names  to extract all files to the directory

<WORKSPACE>\temp\CustomerInfo.

c) The Java files and several folders are created, which correspond to the

namespace of the message interface in the  Integration Repository.

Continued on next page

92   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 101: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 101/187

BIT450 Lesson: Java Proxy Generation

5. Start the SAP NetWeaver Developer Studio and create an EJB module project

called  Exc_Sales_EJB.

a) Start the SAP Netweaver Developer Studio by choosing  Start !

 Programs!  BIT450 course ! SAP NetWeaver Delelopment 

Studio (BIT450) from the menu. When this batch file is started, the

workspace is set to the directory  <WORKSPACE>. This means that the

configuration files are saved in this directory and any properties files

that the Java application works with are expected in this directory.

 b) To create a new EJB module project, choose  File! New! Project . In

the next screen, choose the project type J2EE  and on the right-hand

side, choose EJB Module Project . Name the project Exc_Sales_EJB

and leave the Project Contents option as “use default”. This specifies

that the Java source files for the project are created in the directory

<WORKSPACE>/Exc_Sales_EJB.

6. Import the unpacked proxy classes into the EJB module project.

a) Choose the J2EE Explorer  tab to switch to the J2EE view and under 

your project Exc_Sales_EJB, select the directory ejbModule.

 b) Import the unpacked proxy classes from step 4 using the menu File

!  Import...   . Choose File System. Now navigate to the directory

<WORKSPACE>\temp\CustomerInfo, select the directory com (on the

left) and the file genInfo.xml (right) and choose  Finish.

.

7. Use the variable SAP_USER_ADD_LIBS to add the libraries from the

directory  <WORKSPACE>\libs\WebAS\ext  to the project. To do this, point

the variable to the path  <WORKSPACE>\libs\WebAS\ext .

a) From the menu, choose Project !  Properties, Java Build Path and

then choose the Libraries tab.

 b) Click on  Add Variable, choose  Edit , find the variable

SAP_USER_ADD_LIBS, and choose “Edit” again. Assign the

directory  <WORKSPACE>\libs\WebAS\ext  to this variable, either 

directly by entering it in the field  Path, or by using the  Folder 

 pushbutton. Close all windows apart from the last one with the title

“Properties for Exc_Sales_EJB”.

c) Choose  Add Variable   again, and select the variable

SAP_USER_ADD_LIBS, which is now adjusted to your environment,

directly from the list, and choose  Extend.... Now select all Java archives

contained under  WebAS–>ext  and click on OK (you can use the  Ctrl

key to select more than one entry at the same time). Close all windows.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   93

Page 102: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 102/187

Unit 2: Generating Proxy Objects BIT450

8. Choose the J2EE Explorer  tab and view the newly imported classes and

interfaces.

a) Switch to the J2EE Explorer view of your project Exc_Sales_EJB and

select the directory ejbModule.

 b) All classes imported in exercise step 6 are located in the relative

directory com! bit450! xi! java## , which corresponds to the file

 package com.bit450.xi.java##, which is predefined by the namespace

http://bit450.com/xi/java## in the Integration Builder .

94   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 103: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 103/187

BIT450 Lesson: Java Proxy Generation

Lesson Summary

You should now be able to:• Generate the corresponding Java proxy objects for a message interface from

the  Integration Repository

• Understand the functions of the generated proxy objects

25-08-2005 © 2005 SAP AG. All rights reserved.   95

Page 104: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 104/187

Unit 2: Generating Proxy Objects BIT450

Lesson: Enhancing Interfaces

Lesson Overview

This lesson provides an introduction to the concepts involved in enhancing

message interfaces based on data type enhancements and modifications.

Lesson Objectives

After completing this lesson, you will be able to:

• Enhance message interfaces using data type enhancements without

modifications

• Modify message interfaces

Business Example

Your company uses proxies whose message interfaces also reuse SAP data types.

You need to enhance these interfaces due to new requirements. You are a member 

of the development team for  SAP Exchange Infrastructure, with responsibility

for explaining the options for enhancing interfaces and implementing the

enhancement.

Interfaces Based on Message Types

Message interfaces can be defined on the basis of message types or externaldefinitions. This lesson covers message interfaces that use message types. If new

interfaces are created in the customer namespace in the Integration Builder , it is

also possible to reuse SAP objects. This section deals with these interfaces.

Relationships Between Software Components

The “based-on” relationships are a prerequisite for the use of objects from

other software component versions. These are represented in the SLD  using the

dependencies of a software component version. If a “based-on” relationship is

defined between a customer software component version and an SAP software

component version in the  SLD, in the  Integration Repository, a subnode “Basis

Objects” is displayed under the node of the customer software component version.This contains the objects of the SAP software component version, which can be

used in the same way as objects of the customer’s own namespace.

96   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 105: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 105/187

BIT450 Lesson: Enhancing Interfaces

Figure 33: “Based-on” Relationship

Data Type Enhancements for Enhancing Interfaces

Message interfaces can be defined on the basis of message types or external

definitions. If messages refer to message types, they can be enhanced without the

need for modifications. A data type enhancement is then created for the data typethat is referenced in the message type. A data type enhancement is a separate

object, which references the data type that it enhances.

Figure 34: The Object Type Data Type Enhancement

This means that if a message type from a customer namespace uses an SAP data

type, this SAP data type can then be enhanced by a data type enhancement in the

customer namespace.

25-08-2005 © 2005 SAP AG. All rights reserved.   97

Page 106: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 106/187

Page 107: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 107/187

BIT450 Lesson: Enhancing Interfaces

Figure 36: Modifying an SAP Object

Confirm this message using the  Modify button. You can then modify the SAP

object within the customer software component. If you also use the same SAP

object in other software components, the modification does not affect the other 

software components in the repository. The repository then contains differentversions of the same SAP object. However, only one version can be active within

an SAP application system.

Figure 37: Two Versions of an SAP Data Type in the Repository

Subsequent SAP deliveries do not overwrite the modified version of the object in

the repository, instead you are informed that conflict resolution is required.

With the support of a conflict editor, you can then reconcile the new SAP object

with your modified version in an integration step.

25-08-2005 © 2005 SAP AG. All rights reserved.   99

Page 108: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 108/187

Unit 2: Generating Proxy Objects BIT450

In an SAP application system in which a proxy is implemented using an object

modified in this way, this object then appears twice in the SPROXY : in the original

SAP component and in the customer component.

Figure 38: One Version of an Object at Two Positions in the SPROXY Tree

To regenerate the proxy for the modified status, you need to regenerate themodified object in the customer component. This changes the SAP structure (a

repair order is required!). There is only one version of the SAP structure. All

software component versions that use this SAP data type now use the modified

structure. A modification of this type in the ABAP system will be overwritten

 by subsequent SAP deliveries. In contrast to the Integration Repository, the

modification is therefore lost, but can be easily restored by regenerating the

modified data type.

100   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 109: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 109/187

Page 110: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 110/187

Unit 2: Generating Proxy Objects BIT450

Solution 10: Checking Proxy

EnhancementsTask:

In this exercise, you will reproduce the enhancements of an interface of a client

 proxy that uses SAP data types.

Similar to the proxy used so far for querying customer information, the client

 proxy queries address information for customers. Information from the table

SCUSTOM is expected in return.

The data type Address from the namespace  http://sap.com/xi/XI/TestCase of the

software component version SAP BASIS 6.40  is reused.

1. Check the enhancement (without modifications) of the message

interface CustomerAddress_Request using the data type enhancement

Webuser2Address  of the data type Address within the namespace

http://bit450.com/xi/customer.com of the software component version

SC_BIT450_CUSTOMER.

a) Log on to the Integration Repository: Choose Exchange Infrastructure:

Integration Builder ! Start Integration Builder or transaction

SXMB_IFR. Choose the link  Integration Builder :   Design. The user 

name and password are the same as those required to log on to the

 Integration Server .

 b) In the object tree, navigate to the data type enhancementWebuser2Address by choosing SC_BIT450_CUSTOMER !

SC_BIT450_CUSTOMER, 1.0 of customer.com!http://bit450.com/xi/customer.com! Interface Objects! Data Type

Enhancements.

Display the data type enhancement.

c) In the object tree, navigate to the data type Address by choosing

SC_BIT450_CUSTOMER ! SC_BIT450_CUSTOMER, 1.0 of 

customer.com -> Basis Objects! http://sap.com/xi/XI/TestCase!

Interface Objects! Data Types. Display the data type.

d) Log on to client 821 in your SAP system.

e) In the SPROXY tree, navigate to the data type Address by

choosing SC_BIT450_CUSTOMER, 1.0 of customer.com

! http://sap.com/xi/XI/TestCase! Data Type ! Address.

Display the data type. Navigate to the implementing structure

SXIPERF_PRX_ADDRESS. The data type enhancement is added

using the append structure Z00_WEBUSER2ADDRESS.

Continued on next page

102   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 111: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 111/187

BIT450 Lesson: Enhancing Interfaces

2. Check the enhancement of the message interface CustomerAddress_Re-

quest using the modification of the data type  Address within the SAP

namespace http://sap.com/xi/XI/TestCase of the software component versionSC_BIT450_CUSTOMER.

a) Log on to the Integration Repository: Choose Exchange Infrastructure:

Integration Builder ! Start Integration Builder, or transaction

SXMB_IFR. Choose the link  Integration Builder :   Design. The user 

name and password are the same as those required to log on to the

 Integration Server .

 b) In the object tree, navigate to the modified data type Address by

choosing SC_BIT450_CUSTOMER ! SC_BIT450_CUSTOMER, 1.0

of customer.com! Basis Objects! http://sap.com/xi/XI/TestCase!Interface Objects! Data Types. Display the modified data type.

c) In the object tree, navigate to the original data type Address by choosing

SAP BASIS! SAP BASIS 6.40 -> http://sap.com/xi/XI/TestCase!Interface Objects! Data Types.

Display the original data type.

d) Log on to client 821 in your SAP system.

e) In the SPROXY tree, navigate to the data type Address by

choosing SC_BIT450_CUSTOMER, 1.0 of customer.com

! http://sap.com/xi/XI/TestCase! Data Type ! Address.

Display the data type. Navigate to the implementing structure

SXIPERF_PRX_ADDRESS. The data type modification is insertedas the field CUST_TYPE.

25-08-2005 © 2005 SAP AG. All rights reserved.   103

Page 112: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 112/187

Unit 2: Generating Proxy Objects BIT450

Lesson Summary

You should now be able to:• Enhance message interfaces using data type enhancements without

modifications

• Modify message interfaces

104   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 113: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 113/187

Page 114: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 114/187

Unit Summary BIT450

106   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 115: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 115/187

BIT450 Test Your Knowledge

Test Your Knowledge

1. In what form are the message formats of the message interfaces called from

the Integration Repository for the generation of proxy objects?

Choose the correct answer(s).

!   A As HTML files.

!   B As WSDL files.

!   C As flat files.

!   D They have to be copied manually.

2. If the message interface information in the Integration Builder  is changed,

how does this information get to the system where the message interface

was used to generate proxy objects?

3. Which tool is used to generate the necessary Java proxy objects?

25-08-2005 © 2005 SAP AG. All rights reserved.   107

Page 116: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 116/187

Test Your Knowledge BIT450

Answers

1. In what form are the message formats of the message interfaces called from

the Integration Repository for the generation of proxy objects?

Answer:   B

Web Service Description Language (WSDL) is used as the Internet standard.

2. If the message interface information in the Integration Builder  is changed,

how does this information get to the system where the message interface

was used to generate proxy objects?

Answer:  You have to regenerate the proxy objects. In the inbound case, thesource text of the implementing method is not overwritten, but you may

have to adjust it.

3. Which tool is used to generate the necessary Java proxy objects?

Answer:  In Java programming, the proxy objects are generated directly in

the Integration Repository (where the message interfaces were created) and

saved in the file system as a Java archive.

108   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 117: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 117/187

Unit 3 Using Generated Proxy Objects

Unit Overview

You have already generated the necessary proxy objects. In this unit these objects

will be used to send messages to the  Integration Server  (outbound using a client

 proxy) and process messages from the  Integration Server  (inbound using a server  proxy).

Unit Objectives

After completing this unit, you will be able to:

• Implement a generated server proxy method in ABAP

• Use a generated client proxy method in Java to generate a message and send

it to the Integration Server 

• Configure the integration scenario in the Integration Directory

• implement and configure a previously generated Java server proxy for 

generating and sending a message to the Integration Server .

• Use a generated client proxy method in ABAP to send a message to XI 

• Describe how to use server proxies as a Web service

• Describe any inbound interface as a Web service

Unit Contents

Lesson: ABAP Server Proxy Implementation .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . 110

Exercise 11: Implementing an ABAP Server Proxy Method .......... 117

Lesson: Using Java Client Proxies ... ... .. .. ... .. .. ... .. ... ... .. .. ... ... .. ... 122Exercise 12: Using Java Client Proxy Methods ........................129

Lesson: Configuration in the Integration Directory . .. .. .. .. .. .. .. .. .. .. .. .. 138Exercise 13: Configuration in the Integration Directory ............... 141

Lesson: Java Server Proxy Implementation... .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..147

Lesson: Using ABAP Client Proxies... ... .. ... ... .. ... .. ... ... .. .. ... .. ... ... 151Exercise 14: Generating ABAP Client Proxy Objects .................157

Lesson: Server Proxies, Web Services, and WSDL .......................161

Exercise 15: Checking a Web Service for a Server Proxy .. . .. . . . . .. .169

25-08-2005 © 2005 SAP AG. All rights reserved.   109

Page 118: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 118/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson: ABAP Server Proxy Implementation

Lesson Overview

Introduction to the technology and main steps involved in server proxy

implementation.

Lesson Objectives

After completing this lesson, you will be able to:

• Implement a generated server proxy method in ABAP

Business Example

You are an ABAP developer and have generated ABAP proxy objects. You now

want to implement the inbound method.

Signature of Method to Be Implemented

Before discussing the implementation of the method execute_ synchronous, it is

useful to take another look at the method signature. An ABAP object interface

and method have been generated from the message interface in the Integration

 Repository (including its outbound, inbound, and fault message types). This

method has a signature that corresponds to these message types.

When the message type names are mapped to the ABAP data structures, theUpperCamelCase method is employed, which means that each upper case letter in

the message type name is assigned an underscore in the ABAP structure name (for 

example, UpperCamelCase -> UPPER_CAMEL_CASE).

110   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 119: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 119/187

BIT450 Lesson: ABAP Server Proxy Implementation

Figure 39: Signature of Method to Be Implemented

The object called CONTROLLER , which is displayed in the previous graphic,

is added to every structure in the method signature as a data structure. The

CONTROLLER object is a control table of type PRXCTRLTAB, containing

information on whether or how the initial fields will appear in the message. In the

standard procedure for inbound interfaces, if any tags are missing or empty, the

default value is set before the application is called.

Extended XML Handling

In ABAP, if an interface parameter is initial, you do not know whether the

 parameter was not assigned a value at all, or an initial value was transferred. In

addition, the XSD standard specifies the procedure for default values. For proxy

generation, the following standard procedure exists for server proxies:

If element tags are empty or attribute tags are missing, inbound processing on

the server side of the ABAP proxy runtime sets the default value before the

application is called. If elements have an attribute nil = "true" or the element

tag is absent altogether, the corresponding parameter is left initial. Optional,

initial, scalable elements without a default value are suppressed in the message to

improve performance. You can override this standard procedure.

Regardless of whether or not you set the parameter EXTENDED_XML_HAN-

DLING for the sender, at the receiver, you can set the ABAP proxy runtime

to complete the control tables for fields. To do this, call the method

SET_EXTENDED_XML_HANDLING of the payload protocol, and set the

 parameter EXTENDED_XML_HANDLING (to ’X’). When parsing messages

to this proxy, the ABAP proxy runtime then determines whether the field was

25-08-2005 © 2005 SAP AG. All rights reserved.   111

Page 120: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 120/187

Unit 3: Using Generated Proxy Objects BIT450

transferred in the message, whether the field contained an initial value, or whether 

it had no value at all. The proxy runtime correspondingly completes a control

table that can be evaluated by the application.

DATA:

lo_context TYPE REF TO if_ws_server_context,

lo_payload_protocol TYPE REF TO if_wsprotocol_payload.

lo_context = cl_proxy_access=>get_server_context( ).

lo_payload_protocol

?= lo_context->get_protocol( if_wsprotocol=>payload ).

lo_payload_protocol->set_extended_xml_handling( ’X’ ).

Hint:  You can use the method GET_EXTENDED_XML_HANDLING to

check whether you have activated the extended XML handling.

Possible values for the VALUE field of the CONTROLLER table

Value Meaning

sai_ctrl_initial Initial value was sent for the field.

sai_ctrl_nil The value xsi:nil was sent in the message for this field.

sai_ctrl_none The field was not part of the message.

Implementation (Synchronous)

Once the server proxy has been generated, you implement the application

functions.

To do so, you have to perform the following steps:

• Transfer the message information from the interface to local variables

• Check the authorization, if necessary (and create error message, if necessary)

• Check that the information is correct and complete

• Process the information (and create error message, if necessary)

• Provide the interface with the message response (in synchronous case)

These steps are the same as those for the implementation of other functions, for 

example a function module. The only difference is that the function interface is

saved centrally in the Integration Repository at design time and cannot be changed

locally during implementation. If the interface must be changed, you have to

change the message interface in the Integration Repository and regenerate the

 proxy objects.

112   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 121: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 121/187

BIT450 Lesson: ABAP Server Proxy Implementation

Figure 40: Implementing the Synchronous Inbound Method

The parameters INPUT and  OUTPUT are available for the first and last step.

Hint:   If you change the message interface in the  Integration Repository

after the proxy objects have been generated, you can regenerate the proxy

objects without overwriting the coding of the implementing method.

Usually, you then have to adjust the coding to the changed interface.

Figure 41: Structure of Error Messages

25-08-2005 © 2005 SAP AG. All rights reserved.   113

Page 122: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 122/187

Unit 3: Using Generated Proxy Objects BIT450

If an error occurs when the inbound message is being checked, you can generate

an exception by using the error class. You enter detailed information by using

the table  faultDetail.

Hint:   The structure of the standard error message corresponds to the

data type ExchangeFaultData, which is automatically created in each

namespace and automatically referenced in each fault message type

(under standard data).

You can also use the same error class if an error occurs during information

 processing, for example, if no data is found for the inbound information. A better 

solution, however, is to save another fault message type for the message interface

in the  Integration Repository.

Of course, application error messages are only sent back to the sender in the

case of synchronous messages. In the case of asynchronous messages the error 

messages are persisted, that is, kept for later analysis.

Setting and Triggering Application Errors

DATA: l_fault type <Fault-Message-Type>,

l_detail type <Fault-Message-Type>.

l_fault-fault_text = <...>.

l_fault-fault_url = <...>.

l_detail-severity = <...>.

l_detail-text = <...>.

l_detail-id = <...>.

l_detail-url = <...>.

append l_detail to l_fault-fault_detail.

RAISE EXCEPTION TYPE <Name of exception class>

EXPORTING

FAULT_DATA = l_fault.

The triggered error is sent to the  Integration Server  and then to the sender by

means of the proxy runtime.

114   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 123: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 123/187

BIT450 Lesson: ABAP Server Proxy Implementation

Figure 42: Example of Error Message Using Proxy Runtime

Implementation (Asynchronous)

In the asynchronous case, the data is not returned to the OUTPUT structure, since

a business message is not sent back to the sender.

Error Analysis for Server Proxy

By using the ICF Server Recorder in transaction SICF, it is possible to record the

incoming request and the corresponding response for access to HTTP services,

including for the service  /sap/xi/engine, which represents the inbox of the XI

 pipeline. The menu option  Edit !  Recorder  in transaction SICF enables you to

access the ICF Server Recorder . Three selection options are available:

• Activate recording

• Deactivate recording

• Display recording

Activate recording:  First select the service that you want to record. Choose

 /sap/xi/engine, followed by the menu path  Edit !  Recorder !  Activate

 Recording . When you activate a recording, you can enter user names to restrict

the recording to the required users. Under  URL path, enter the request path to be

recorded by the  ICF Recorder (the default setting is the service that you most

recently selected). Here you can also set the recording time and lifetime (retention

 period for monitoring data in the database). By default, only the requests are

recorded. If you also want to record the response, under  Recording Level , select

the option Request + Response.

25-08-2005 © 2005 SAP AG. All rights reserved.   115

Page 124: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 124/187

Unit 3: Using Generated Proxy Objects BIT450

Deactivate Recording:  After recording, you should always deactivate the ICF 

Server Recorder  to prevent performance problems. To do this, choose the menu

 path Edit !  Recorder !  Deactivate Recording . On the following screen, youthen need to select the user and then click on Deactivate.

Display Recording:  To display the recorded ICF communication data, choose

the menu path Edit ! Recorder !  Display Recording . As for the recording, you

can also choose restriction criteria here.

Hint:  Note that although you can record other users’ ICF communication

data, you require special authorization to be able to view this data. To

edit the recorded data, you must have authorization for the transaction

SICFRECORDER . If you have the required authorizations, you

can process the recorded communication data. Without additionalauthorization, you can only edit your own entries. Authorization object:

 S_ICFREC 

Debugging the Server Proxy

If you have activated HTTP debugging for the user that will be used to access the

server proxy, you can also debug the server proxy.

• Log on as the user with which the server proxy will be accessed at runtime

• Navigate to the proxy method that you want to debug and choose Utilities / 

Settings

• Navigate to the ABAP Editor tab page and from there to the  debuggingtab page, and activate  external debugging for the user that will access the

server proxy

• Choose Utilities! Breakpoints! Set/Delete, and in the following window,

choose External Debugging

Hint:  An external call is not usually made using the dialog user. For 

debugging, you may have to change the user for the call.

116   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 125: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 125/187

BIT450 Lesson: ABAP Server Proxy Implementation

Exercise 11: Implementing an ABAP

Server Proxy MethodExercise Objectives

After completing this exercise, you will be able to:

• Implement an inbound proxy method in ABAP to process a message

received by the Integration Server 

Business Example

You have already generated the proxy objects for an inbound message interface

and are now responsible for implementing the functions in ABAP.

Task:

Implement the method  execute_synchronous of your implementing class

Z##_CL_CUSTOMER_INFORMATION_PR  in the business system

SAP_BACKEND.

1. Log on to the business system SAP_BACKEND and navigate to the proxy

class Z##_CL_CUSTOMER_INFORMATION_PR  that you have already

created.

2. Implement the method with an initial completeness check for the inbound

data. If errors occur, you want this to trigger an exception with explanatorytext. Otherwise, the method for the customer name searches for a hit in

the table SCUSTOM. If it finds an entry, it returns it using the OUTPUT

 parameter. If not, it triggers an exception.

Do not forget to activate your changes.

Hint:  For help with the solution, you can copy the example solution

ABAP_inbound.txt by uploading it to your ABAP coding. The

instructor can show you how to do this.

3. Test your method in the transaction SPROXY.

25-08-2005 © 2005 SAP AG. All rights reserved.   117

Page 126: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 126/187

Unit 3: Using Generated Proxy Objects BIT450

Solution 11: Implementing an ABAP

Server Proxy MethodTask:

Implement the method  execute_synchronous of your implementing class

Z##_CL_CUSTOMER_INFORMATION_PR  in the business system

SAP_BACKEND.

1. Log on to the business system SAP_BACKEND and navigate to the proxy

class Z##_CL_CUSTOMER_INFORMATION_PR  that you have already

created.

a) Log on to client 8xx in your SAP system. Use the logon parameters

 provided by the instructor.

 b) Call transaction SPROXY.

c) Select the software component version  SC_BIT450_CIS in the

namespace http://bit450.com/xi/abap##. Navigate to the Message

 Interface (inbound) node and then to the message interface

CustomerInformation_Provide.

d) To display the generated objects, double click the message interface

name CustomerInformation_Provide.

e) To navigate to the editor, double click on the name of your 

implementing class Z##_CL_CUSTOMER_INFORMATION_PR and then double click on the name of the method  execute_synchronous.

Hint:  If you know the name of your class, you can enter it

directly in the  Class Builder  (transaction SE24). This is a

quicker way to get to the method editor.

2. Implement the method with an initial completeness check for the inbound

data. If errors occur, you want this to trigger an exception with explanatory

text. Otherwise, the method for the customer name searches for a hit in

the table SCUSTOM. If it finds an entry, it returns it using the OUTPUT

 parameter. If not, it triggers an exception.

Do not forget to activate your changes.

Hint:  For help with the solution, you can copy the example solution

ABAP_inbound.txt by uploading it to your ABAP coding. The

instructor can show you how to do this.

Continued on next page

118   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 127: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 127/187

BIT450 Lesson: ABAP Server Proxy Implementation

a) First declare the data structures:

* Data structure to get data of input message

Data: l_customer_name type Z##_customer_name.

* Data structure to get data of output messagedata: l_customer_info type Z##_customer_info.

* Data types generated* from fault message ’MissingInformation’:

data: l_standard_data type Z##_EXCHANGE_FAULT_DATA,l_detail_data type Z##_EXCHANGE_LOG_DATA.

* Structure to hold data selected from database:DATA: l_scustom type scustom.

 b) Receive the INPUT parameters in local parameters.

l_customer_name = input-MT_NAME.

c) Check whether the customer name is initial. If it is, trigger an exception:

if l_customer_name is initial.l_standard_data-fault_text = ’No name was supplied’....RAISE Exception TYPE Z##_CX_MISSING_INFORMATION

exporting standard = l_standard_data.endif.

d) Read whether an entry exists for the name in the database table

SCUSTOM:

select single * from scustominto corresponding fields of l_scustom

where name = l_customer_name.

e) Check whether an entry is found. If not, trigger an exception and use a

corresponding error text:

if l_scustom is initial.l_standard_data-fault_text = ’No customer found’....

RAISE Exception TYPE Z##_CX_MISSING_INFORMATIONexporting standard = l_standard_data.endif.

f) If an entry is found, enter the results in the OUTPUT parameter 

CUSTOMER_INFO:

move-corresponding l_scustom to l_customer_info.output-mt_customer_info = l_customer_info.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   119

Page 128: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 128/187

Page 129: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 129/187

BIT450 Lesson: ABAP Server Proxy Implementation

Lesson Summary

You should now be able to:• Implement a generated server proxy method in ABAP

25-08-2005 © 2005 SAP AG. All rights reserved.   121

Page 130: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 130/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson: Using Java Client Proxies

Lesson Overview

This lesson introduces the generated Java proxy objects and explains how to use

them.

Lesson Objectives

After completing this lesson, you will be able to:

• Use a generated client proxy method in Java to generate a message and send

it to the Integration Server 

Business Example

You are a member of an integration project team and are responsible for 

 programming outbound processing using generated Java proxy objects, and

therefore need to develop the Java application.

Using Generated Proxy Objects

Once you have generated the Java proxy objects in the  Integration Repository,

you can use them in your own application. As well as the generated class and

its method, it is also important to know the data types, data structures, and

 possible exceptions. You can use a standard Java IDE (Integrated Development

Environment) such as the SAP NetWeaver Developer Studio to represent this. You

can also use javadoc to generate HTML documentation for the generated Java

 proxy classes: javadoc -d <destination directory>. For example:  javadoc *.java

-d <workspace>\doc\ (if the “doc” directory has already been created).

The process for an outgoing message is illustrated in the following diagram.

122   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 131: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 131/187

BIT450 Lesson: Using Java Client Proxies

Figure 43: Outbound Java Scenario

You have to perform the following steps in your own application:

• Generate the proxy bean

• Declare the required objects

• Compile the information to be sent

• Call the client proxy method• Catch any exceptions

• Receive the response message (in the synchronous case)

In XI 2.0, it was possible to generate and send synchronous Java outbound proxies

using a J2SE application. In XI 3.0, all Java proxy applications are Enterprise Java

Beans and therefore represent a J2EE application. This also changes the calling

 behavior of the client application. Proceed as follows:

• Create the JNDI context

• Locate the home interface of the proxy bean

• Generate the remote interface

Unlike the ABAP proxy method, the classes, interfaces and the method in the

Java outbound scenario each have a name that is generated from the message

interface name. The classes and interfaces are assigned the suffix _PortType

and an ending that identifies their purpose. The method retains its name, but

 begins with a lower-case letter and does not contain any underscores. For an

25-08-2005 © 2005 SAP AG. All rights reserved.   123

Page 132: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 132/187

Unit 3: Using Generated Proxy Objects BIT450

existing message interface CustomerInformation_Request, this means that a

method customerInformationRequest  is generated, along with the following

classes and interfaces:

•   CustomerInformationRequest_PortType - Proxy class

•   CustomerInformationRequest_PortTypeHome - Home interface

•   CustomerInformationRequest_PortTypeRemote - Remote interface

•   CustomerInformationRequest_PortTypeBean - Implementation

A client proxy bean can be called by a variety of applications such as servlets,

JSPs, applets, or even J2SE applications. The example coding illustrates the

required steps.

Generating and Calling a Proxy Bean

// Generating the initial JNDI context

Context ctx = new InitialContext();

// Using the JDNI name to locate the home interface

Object obj = ctx.lookup("bit450.com/sales/CustomerInformationXX");

// Casting the Home Interface

CustomerInformationRequest_PortTypeHome homeInterface =

(CustomerInformationRequest_PortTypeHome) obj;

// Using the home interface to create the remote interfaceCustomerInformationRequest_PortTypeRemote remoteInterface =

homeInterface.create();

// Generating the query object

PersonName_Type person = new PersonName_Type();

// ...Filling the query object person

// Calling the proxy method to create and send the message

CustomerInfo_Type custInfo = remoteInterface.customerInformationRequest(person);

Hint:  The names of the objects homeInteface, remoteInteface,

personand custInfo are selected arbitrarily.

124   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 133: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 133/187

BIT450 Lesson: Using Java Client Proxies

For complex data types, you use the setter methods of the generated classes to set

the parameters of the outbound message.

Hint:   In Java, methods that are used to change (set) or call (get) object

attributes (properties) are called setter/getter methods.

A class called PersonName_Type is created for a complex data type PersonName

stored in the Integration Repository. This class has the fields of the complex data

type as attributes (surname and name) and provides setter and getter methods:

setSurname() for setting the surname.

Using the above coding example, you could set the complex data type PersonName

as follows:

Setting the Complex Data Type

PersonName_Type person = new PersonName_Type();

person.setName("SAP");

person.setSurname("AG");

The same applies to receiving the response message in a synchronous scenario. In

this case the getter methods would be used. Example:

Accessing the Attributes of the ResponseMessage

// Call proxy method

CustomerInfo_Type custInfo = remoteInterface.customerInformationRequest(person);

// Reading the attributes

String ID = custInfo.getID().toString();

String city = custInfo.getCITY();

In addition to the exceptions stored in the message interface, you must also

catch any system exceptions that occur, for example, if the Integration Server 

cannot find a receiver due to configuration errors. The exception class

(com.sap.aii.proxy.xiruntime.core)ApplicationFaultException is available in

Java for this purpose. You can also use the superordinate class of all application

classes (com.sap.aii.proxy.xiruntime.core)SystemFaultException to catch

any application exceptions. In the asynchronous case, the application errors are

 persisted (saved) in the target system.

25-08-2005 © 2005 SAP AG. All rights reserved.   125

Page 134: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 134/187

Unit 3: Using Generated Proxy Objects BIT450

Catching Exceptions

try {

custInfo = custInfoReq.customerInformationRequest(person);

} catch (MissingInformation_Message_Exception e) {

errorType = "Missing Information";

errorText = e.getMessage();

error = true;

} catch (SystemFaultException e) {

errorType = "System Fault Exception occurred";

errorText = e.getMessage();

error = true;

} catch (ApplicationFaultException e) {

errorType = "Application Fault Exception occurred";errorText = e.getMessage();

error = true;

} catch (Exception e) {

errorType = "Other occurred";

errorText = e.getMessage();

error = true;

}

The additional parameter  MessageSpecifier enables you to use further proxy

runtime services, for example, adding an additional attachment to the message.

MessageSpecifier: Additional Attachment

try {

custInfo = custInfoReq.customerInformationRequest(person);

// Sends an additional document (addData is Object Date type)

custInfo.$messageSpecifierRead().createAttachment("AddData", "text/html", addData)

}

You can also use the  MessageSpecifier object to set the logical receiver system,

for example. However, note that this procedure does not comply with the centralinformation collection concept in SAP Exchange Infrastructure. Technical

changes in particular must then be configured locally. On the other hand, functions

such as saving the message after it has been sent successfully are not critical.

Default and Initial Values:  In the Java outbound case, the default value is set for 

all initial fields when the XML data stream is generated. Optional, initial, scalable

elements without a default value are suppressed in the message to improve

 performance. The zero pointer in Java is converted to xsd:nil.

126   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 135: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 135/187

BIT450 Lesson: Using Java Client Proxies

Deployment of Java Proxies

You must ensure that the proxy beans and proxy classes generated by Java proxy

generation are deployed together with the application program. To do this, include

them in the same EAR file as the classes of your application. The generated

classes depend on the classes of the Java proxy runtime, which must be installed

on the J2EE server. To declare this dependency for EJB applications, copy the

following packages into the descriptor file application-j2ee-engine.xml:

•   com.sap.aii.proxy.xiruntime

•   com.sap.aii.af.sdk.xi

•   com.sap.xi.util.misc

•   com.sap.guid

All library dependencies are of the type weak  and have the provider namesap.com.

25-08-2005 © 2005 SAP AG. All rights reserved.   127

Page 136: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 136/187

Unit 3: Using Generated Proxy Objects BIT450

128   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 137: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 137/187

BIT450 Lesson: Using Java Client Proxies

Exercise 12: Using Java Client Proxy

MethodsExercise Objectives

After completing this exercise, you will be able to:

• Use generated proxy objects for an outbound message interface to send a

message to the Integration Server 

Business Example

You are responsible for a scenario in which a JSP application calls information

from a back end using the  Integration Server . You are also responsible for 

implementing the proxy method call.

Task:

Create a J2EE application that sends a message to the  Integration Server  by

calling the client proxy method.

1. In the SAP NetWeaver Developer Studio, in the project Exc_Sales_EJB,

open the subfolder  EJB Candidates. In this subfolder, add the candidate

CustomerInformationRequest_PortTypeBean to  ejb-jar.xml.

2. Open the vendor-specific deployment descriptor (ejb-j2ee-engine.xml)

and assign the EJB that you have just created the JNDI namebit450.com/sales/CustomerInformation##

Hint:  The JNDI name is used to find and reference a software

component in the J2EE server.

3. Create the EJB archive for your EJB project.

4. Open the Web project  Exc_Sales_Web in the Project Navigator view and

navigate to the class com.bit450.sales.CustomerInformationCheck .

5. Implement the method checkCustomerInfo   in the class

com.bit450.sales.CustomerInformationCheck  so that the bean class of theJNDI context is used, the required data types are declared and filled, the

message is sent, and the result is received.

To do this, adjust the variable JNDI_NAME and the import statements to

include your group number. The transfer parameters  surName and  nameshould be used to fill the class PersonName_Type with values. Assign

the return value to the variable cisResult. If an error occurs, enter the

relevant values in the fields errorType, errorText and error.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   129

Page 138: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 138/187

Unit 3: Using Generated Proxy Objects BIT450

If the is successful, the return structure CustomerInfo is issued in a JSP

(customerinformationresult.jsp), if an error occurs, the corresponding

error message is displayed. The complete presentation logic is alreadyimplemented in the form of JSPs and can be copied.

Hint:   To view the example solution, see the class

com.bit450.sales.CustomerInformationCheck  in the project

Sol_Sales_Web.

6. Create the Web archive for your Web project.

7. Optional: Enter your group number in the header line of your JSP.

8. Create a new Enterprise Application Project with the name

Exc_Sales_EAR_##. Assign the two projects Exc_Sales_EJB andExc_Sales_Web  to this.

9. Change the context  /sales##  for your Web application in the file

application.xml ( Modules tab) to include your group number.

10. The proxy beans and proxy classes that you have generated are dependent on

the Java proxy framework, which must be installed on the J2EE server. To

declare this dependency for EJB applications, copy the following packages

to the descriptor file application-j2ee-engine.xml:

com.sap.aii.proxy.xiruntimecom.sap.aii.af.sdk.xi

com.sap.xi.util.misccom.sap.guidAll library dependencies are of the type weak  and have the provider name

 sap.com.

11. In the SAP NetWeaver Developer Studio, store the parameters for the SAP

J2EE Engine provided by the instructor.

12. Create the Enterprise Application Archive  for your EAR project and

deploy your EAR in the J2EE server.

13. Start your application using the URL http://<host>:< port>/sales## and send

a query to check whether the message has arrived on the Integration Server .

14. Check the inbound message in the monitor on the Integration Server .

130   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 139: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 139/187

BIT450 Lesson: Using Java Client Proxies

Solution 12: Using Java Client Proxy

MethodsTask:

Create a J2EE application that sends a message to the  Integration Server  by

calling the client proxy method.

1. In the SAP NetWeaver Developer Studio, in the project Exc_Sales_EJB,

open the subfolder  EJB Candidates. In this subfolder, add the candidate

CustomerInformationRequest_PortTypeBean to  ejb-jar.xml.

a) Start the SAP NetWeaver Developer Studio  (or switch to the NWDS

if it is already open). In the EJB Explorer , select the project

Exc_Sales_EJB and open the subfolder  EJB Candidates.

 b) In the context menu, choose  Add to ejb-jar.xml  for the EJB candidate

CustomerInformationRequest_PortTypeBean.

2. Open the vendor-specific deployment descriptor (ejb-j2ee-engine.xml)

and assign the EJB that you have just created the JNDI name

bit450.com/sales/CustomerInformation##

Hint:  The JNDI name is used to find and reference a software

component in the J2EE server.

a) Double click to open the file ejb-j2ee-engine.xml.

 b) Click on the tab Enterprise Beans and open the subfolder  Session

 Beans. The EJB CustomerInformationRequest_PortTypeBean that

you have just created is displayed. Click on your EJB to select it. A list

of input fields is displayed on the right-hand side.

c) In the field  JNDI name, enter your group-specific JNDI name

(bit450.com/sales/CustomerInformation##).

d) Save your setting, for example, with CTRL+S.

3. Create the EJB archive for your EJB project.

a) Switch to the J2EE Explorer  view (on the left).

 b) Open the context menu for the root element (Project) Exc_Sales_EJB.

Select the menu option Build EJB Archive.

c) You receive a confirmation message, and the entry Exc_Sales_EJB.jar

is displayed in  Exc_Sales_EJB.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   131

Page 140: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 140/187

Unit 3: Using Generated Proxy Objects BIT450

4. Open the Web project  Exc_Sales_Web in the Project Navigator view and

navigate to the class com.bit450.sales.CustomerInformationCheck .

a) To the left of the J2EE Explorer  view, switch to the Navigator  view.

 b) Select the project  Exc_Sales_Web and in the context menu, choose

 Project ! Open Project .

c) Now return to the J2EE Explorer  view. The project  Exc_Sales_Web is

displayed.

d) In the project  Exc_Sales_Web, open the path  source / 

com / bit450 / sales  and double click to open the class

com.bit450.sales.CustomerInformationCheck .

5. Implement the method checkCustomerInfo   in the class

com.bit450.sales.CustomerInformationCheck  so that the bean class of theJNDI context is used, the required data types are declared and filled, the

message is sent, and the result is received.

To do this, adjust the variable JNDI_NAME and the import statements to

include your group number. The transfer parameters  surName and  nameshould be used to fill the class PersonName_Type with values. Assign

the return value to the variable cisResult. If an error occurs, enter the

relevant values in the fields errorType, errorText and  error.

If the is successful, the return structure CustomerInfo is issued in a JSP

(customerinformationresult.jsp), if an error occurs, the corresponding

error message is displayed. The complete presentation logic is already

implemented in the form of JSPs and can be copied.

Hint:   To view the example solution, see the class

com.bit450.sales.CustomerInformationCheck  in the project

Sol_Sales_Web.

a) In the Import statement and in the declaration of the string

JNDI_NAME, change the placeholder ## to your group number.

Hint:  In the SAP NetWeaver Developer Studio, you can use theTasks tab at the bottom to produce a list of TODOs. You can

double click to navigate to the positions that must be edited.

 b) The following points refer to the method checkCustomerInfo:

Get the home interface from the JNDI context, and use it to generate

the remote interface:

Context ctx = new InitialContext();

Continued on next page

132   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 141: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 141/187

BIT450 Lesson: Using Java Client Proxies

CustomerInformationRequest_PortTypeHome cisHome =(CustomerInformationRequest_PortTypeHome)

ctx.lookup(JNDI_NAME);CustomerInformationRequest_PortTypeRemote

cisRemote = cisHome.create();

c) Declare the required data structure and fill it:

PersonName_Type requestType = new PersonName_Type();requestType.setName(name);requestType.setSurname(surName);

d) Call the method customerInformationRequest on the remote

interface and assign the result of the variable cisResult to:

cisResult =cisRemote.customerInformationRequest(requestType);

e) Catch any exceptions that occur in the application:

} catch (RemoteException e) {errorType = "Remote exception occurred";errorText = e.getMessage();error = true;

} catch (NamingException e) {errorType = "Naming exception occurred";

errorText = e.getMessage();error = true;} catch (CreateException e) {

errorType = "Creation exception occurred";errorText = e.getMessage();error = true;

} catch (MissingInformation_Message_Exception e) {errorType = "Missing Information";errorText = e.getMessage();error = true;

} catch (SystemFaultException e) {errorType = "System Fault Exception occurred";

errorText = e.getMessage();error = true;

} catch (ApplicationFaultException e) {errorType = "Application Fault Exception occurred";errorText = e.getMessage();error = true;

} catch (Exception e) {errorType = "System Exception occurred";errorText = e.getMessage();

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   133

Page 142: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 142/187

Unit 3: Using Generated Proxy Objects BIT450

error = true;}

6. Create the Web archive for your Web project.

a) If necessary, switch to the J2EE Explorer  view.

 b) Use the context menu  Build WEB Archive  for the project

Exc_Sales_Web.

c) After you have successfully generated the Web archive (WAR), a

success message is displayed.

7. Optional: Enter your group number in the header line of your JSP.

a) In the project Exc_Sales_Web, double click to open the file WebContent 

 / headerline.html .

 b) In the HTML page display, choose the Source tab.

c) Navigate to the middle and change the string “BIT450-## JSP Client”

to your group number.

d) Save the file headerline.html. You can then close the file.

8. Create a new Enterprise Application Project with the name

Exc_Sales_EAR_##. Assign the two projects Exc_Sales_EJB and

Exc_Sales_Web  to this.

a) Choose File!  New!  Enterprise Application Project .

 b) Assign the name Exc_Sales_EAR_## and click on Next .

c) In the next window, select your projects Exc_Sales_EJB and

Exc_Sales_Web, and choose  Finish.

d) In the J2EE Explorer , a new project  Exc_Sales_EAR_## is listed,

which contains the subnodes application-j2ee-engine.xml  and

application.xml.

9. Change the context  /sales##  for your Web application in the file

application.xml ( Modules tab) to include your group number.

a) In the project Exc_Sales_EAR_##, double click to open the fileapplication.xml.

 b) On the Modules tab, select your Web Application  Exc_Sales_Web.war.

c) In the Context Root  field, enter the context /sales##.

d) Save the file. You can now also close the file if required.

Continued on next page

134   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 143: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 143/187

BIT450 Lesson: Using Java Client Proxies

10. The proxy beans and proxy classes that you have generated are dependent on

the Java proxy framework, which must be installed on the J2EE server. To

declare this dependency for EJB applications, copy the following packagesto the descriptor file application-j2ee-engine.xml:

com.sap.aii.proxy.xiruntimecom.sap.aii.af.sdk.xicom.sap.xi.util.misccom.sap.guidAll library dependencies are of the type  weak  and have the provider name

 sap.com.

a) In your project Exc_Sales_EAR_##, double click to open the file

application-j2ee-engine.xml.

Perform the following steps for all four of the packages listed above:

 b) Select the entry  references.

c) Use the Add  button to define a new reference.

d) In the next window, choose Create New. In the definition, for  Reference

Target , set the corresponding package from the above list, Reference

type is  weak , Reference target type is  library, and the Provider name is

sap.com. (To reference the next package, select the entry references.)

e) When you have referenced all four packages, save the file

application-j2ee-engine.xml. You can now also close the file if 

required.

11. In the SAP NetWeaver Developer Studio, store the parameters for the SAP

J2EE Engine provided by the instructor.

a) Navigate to the menu Windows!  Preferences.

 b) In the  Preferences window, select the entry SAP J2EE Engine  on the

left, and on the right, choose SAP J2EE engine is installed on remote

host .

c) In the fields Message Server Host  and  Message Server Port , enter the

values supplied by the instructor.

d) Exit maintenance by choosing Apply and  OK .

e) Optionally, you can select the tab J2EE Engine  on the bottom

right-hand side to view the status of the J2EE Engine.

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   135

Page 144: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 144/187

Unit 3: Using Generated Proxy Objects BIT450

12. Create the Enterprise Application Archive  for your EAR project and

deploy your EAR in the J2EE server.

a) If necessary, switch to the J2EE Explorer  view.

 b) In the context menu for the project Exc_Sales_EAR_##, choose Build

Application Archive.

c) A success message is displayed and the file Exc_Sales_EAR.ear  is

listed in the project Exc_Sales_EAR_##.

d) Now use the context menu for the file Exc_Sales_EAR.ear  and choose

Deploy to J2EE engine. Enter the password supplied by the instructor.

In the Deploy Output View, you can display the log outputs and error 

messages of the deployment process. The last message should be

“Finished Deployment”.

13. Start your application using the URL http://<host>:< port>/sales## and send

a query to check whether the message has arrived on the Integration Server .

a) Open a browser and enter the URL http://<host>:< port>/sales##.

 b) Use the test data Name = SAP  and  Surname = AG and send the

query.

c) You get an error message indicating that the configuration is missing

in the Integration Directory (“no receiver”).

14. Check the inbound message in the monitor on the Integration Server .

a) Log on to the  Integration Server  (client 800). Call transactionSXMB_MONI and start the monitor for processed XML messages.

On the selection screen, enter  WEBAS_JAVA in the Sender Business

System field, and choose Execute to start the monitor.

 b) Navigate to the detail view of your message and check the message

structure by choosing   Inbound Message!  Payloads!  Main

 Document .

136   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 145: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 145/187

BIT450 Lesson: Using Java Client Proxies

Lesson Summary

You should now be able to:• Use a generated client proxy method in Java to generate a message and send

it to the Integration Server 

25-08-2005 © 2005 SAP AG. All rights reserved.   137

Page 146: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 146/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson: Configuration in the Integration Directory

Lesson Overview

In this lesson, the necessary configuration settings for the integration scenario are

made in the Integration Directory, so that the Java standalone application receives

a response from the ABAP proxy object.

Lesson Objectives

After completing this lesson, you will be able to:

• Configure the integration scenario in the Integration Directory

Business Example

You are a member of a project team. Once the proxy objects have been used, you

are responsible for making the configuration settings in the  Integration Directory.

Receiver Determination

First, you have to create an integration scenario in the  Integration Directory,

which will contain the configuration settings. In  XI 2.0, this integration scenario is

not related to the integration scenarios in the Integration Repository. To create

a receiver determination, you have to specify the following sender information:

 business system, (outbound) interface name, and interface namespace.

You can create one or more receivers for this sender, and also a condition to

determine when a message is sent to these receivers.

Interface Determination

You have to create an interface determination for the receiver that is entered in

the receiver determination. This involves specifying one or more (inbound)

interface names and interface namespaces. You use an interface mapping from the

 Integration Repository for each interface.

138   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 147: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 147/187

BIT450 Lesson: Configuration in the Integration Directory

Figure 44: Configuration Overview Integration Directory

Communication Channel for Integration Engines

If a business system has an ABAP Integration Engine, you have to use a

communication channel of type Integration Engine. In the current integration

scenario, this communication channel must therefore refer to the business system

Training.You either create the communication channel as a URL, or as a reference

to an SM59 destination. If using the URL option, the required entry is

http://<host>:<port>/sap/xi/engine/?type=receiver .

Figure 45: Communication Channel of Local Integration Engine

25-08-2005 © 2005 SAP AG. All rights reserved.   139

Page 148: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 148/187

Unit 3: Using Generated Proxy Objects BIT450

If the communication channel is an SM59 destination, you have to maintain it in

the ABAP part of the Integration Server . It must reference the local Integration

Engine of the business system. As an http destination it must therefore have thefollowing properties:

 Name Any name, in upper case letters, in this case:

XI_TRAINING

Connection Type   H (HTTP destination for R/3 system)

Target Host Back-end Host (in this case: localhost)

Service Number 8000 (ABAP HTTP port)

Path Prefix   /sap/xi/engine/?type=receiver

(ICM service for local Integration En-

gine)

Logon Data (user/pw/language/client of target system)

You then create a communication channel of type Integration Engine in the

 Integration Directory. In the communication channel, you can either specify

the receiver parameters with interface names and namespace, or enter generic

 placeholders (*).

J2EE Integration Engine:

If the receiver system is a business system based on an  SAP J2EE server  with

 proxy objects, the URL entry in the communication channel must be as follows:

http://<host>:<port>/MessagingSystem/receive/JPR/XI.

Once you have completed the above steps, you will be able to use the integration

scenario to display and call all the maintained configurations.

140   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 149: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 149/187

BIT450 Lesson: Configuration in the Integration Directory

Exercise 13: Configuration in the

Integration DirectoryExercise Objectives

After completing this exercise, you will be able to:

• Create a configuration scenario in the Integration Directory by copying an

integration scenario from the Integration Repository.

• Configure the synchronous exercise scenario in the Integration Directory

Business Example

You are responsible for configuring a scenario in which a Java application callsinformation from a back end using the Integration Server.

Task: Configuration in the Integration Directory

You make the settings for routing and mapping messages in the Integration

Directory. This is where you configure the Integration Repository objects that

were created at design time. The following tasks take you through the individual

steps that are required to configure the synchronous scenario.

Configure the synchronous scenario that was described in the lesson “Business

Scenarios in the Integration Repository” Create a configuration scenario by

copying the integration scenario from the Integration Repository.

1. Log on to the Integration Server. From the menu, start the Integration

Builder and log on to the Integration Directory.

2. In the Integration Directory, create the configuration scenario

BIT450_Sync_##  by copying the integration scenario

BIT450_Scenario1_##.

3. In the configuration scenario BIT450_Sync_##  that you created

 previously, use the automatic Integration Scenario Configurator to save a

configuration with the following information:

Sender   Business System WEBAS_JAVAInterface Name CustomerInformation_Request

Interface

 Namespace

http://bit450.com/xi/java##

Receiver   Business System SAP_BACKEND

Interface Name CustomerInformation_Provide

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   141

Page 150: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 150/187

Unit 3: Using Generated Proxy Objects BIT450

Interface

 Namespace

http://bit450.com/xi/abap##

Interface

Mapping

Interface Mapping

 Name

CustomerInfoMap

IF Mapping

 Namespace

http://bit450.com/xi/java##

SWCV SC_BIT450_SALES 1.0

Connection

Communication

Channel

SAP_Proxy_In

HTTP Destination SAP_BACKEND_IE

4. To check the configuration, resend a message from your Java application

(http://<host>:<port>/sales##.

142   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 151: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 151/187

BIT450 Lesson: Configuration in the Integration Directory

Solution 13: Configuration in the

Integration DirectoryTask: Configuration in the Integration Directory

You make the settings for routing and mapping messages in the Integration

Directory. This is where you configure the Integration Repository objects that

were created at design time. The following tasks take you through the individual

steps that are required to configure the synchronous scenario.

Configure the synchronous scenario that was described in the lesson “Business

Scenarios in the Integration Repository” Create a configuration scenario by

copying the integration scenario from the Integration Repository.

1. Log on to the Integration Server. From the menu, start the IntegrationBuilder and log on to the Integration Directory.

a) Choose   Exchange Infrastructure: Integration Builder ! Start 

 Integration Builder  or call transaction SXMB_IFR. Choose Directory

(Configuration). The user name and password are the same as those

required to log on to the Integration Server.

2. In the Integration Directory, create the configuration scenario

BIT450_Sync_##  by copying the integration scenario

BIT450_Scenario1_##.

a) Choose Tools! Copy Integration Scenario from the Integration

 Repository.

 b) Use the   F4 help   to select your integration scenario

BIT450_Scenario1_## and choose Continue to confirm.

c) Enter the name of the configuration scenario: BIT450_Sync_## and

confirm by choosing  Finish and  Close.

3. In the configuration scenario BIT450_Sync_##  that you created

 previously, use the automatic Integration Scenario Configurator to save a

configuration with the following information:

Sender   Business System WEBAS_JAVA

Interface Name CustomerInformation_Request

Interface

 Namespace

http://bit450.com/xi/java##

Receiver   Business System SAP_BACKEND

Interface Name CustomerInformation_Provide

Continued on next page

25-08-2005 © 2005 SAP AG. All rights reserved.   143

Page 152: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 152/187

Unit 3: Using Generated Proxy Objects BIT450

Interface

 Namespace

http://bit450.com/xi/abap##

Interface

Mapping

Interface Mapping

 Name

CustomerInfoMap

IF Mapping

 Namespace

http://bit450.com/xi/java##

SWCV SC_BIT450_SALES 1.0

Connection

Communication

Channel

SAP_Proxy_In

HTTP Destination SAP_BACKEND_IE

a) Step 1 Select component view: As only one view is available, you

can skip this step.

 b) Step 2: Assign services: Select the application components to which

you want to assign a service (for example, SALES). Choose  Assign

Service. Choose the pushbutton with the green cross to insert a line,

and then use the F4 help to assign the service: for the component

SALES, this is the service WEBAS_JAVA, for the component

CustomerInfoSystem, this is the service SAP_BACKEND.

c) Step 3: Configure connections: Select the connection that you

want to configure and click on  Configure Connections. Assignthe communication channel  SAP_Proxy_In  to the receiver 

SAP_BACKEND and check the mapping settings.

d) Step 4: Generate: Generate the objects by clicking on Generate. Under 

Settings – General, choose  Generate and leave the rest of the settings

on the default values. Choose  Start  to confirm.

e) Display the resulting log. Close the log window. You do not need

to save.

f) Close the Integration Scenario Configurator window and save the

changes.

g) On the Change Lists tab, in the navigation toolbar (left of the window),

activate your change list by clicking the right mouse button and

choosing Activate from the context menu.

Continued on next page

144   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 153: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 153/187

BIT450 Lesson: Configuration in the Integration Directory

4. To check the configuration, resend a message from your Java application

(http://<host>:< port>/sales##.

a) Open a browser and enter the URL http://<host>:<port>/sales##.

 b) Use the test data Name = SAP and  Surname = AG and send the

query.

c) You will see the correct response from the target system (incl. your 

group number).

d) You can also call transaction SXMB_MONI in client 800 and use the

monitor for processed XML messages. On the selection screen, enter 

 WEBAS_JAVA in the Sender Business System field, and choose Execute

to start the monitor.

Your message is displayed with a checked flag icon, which indicatesthat it has been processed successfully.

25-08-2005 © 2005 SAP AG. All rights reserved.   145

Page 154: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 154/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson Summary

You should now be able to:• Configure the integration scenario in the Integration Directory

146   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 155: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 155/187

BIT450 Lesson: Java Server Proxy Implementation

Lesson: Java Server Proxy Implementation

Lesson Overview

Introduction to Java inbound proxy implementation.

Lesson Objectives

After completing this lesson, you will be able to:

• implement and configure a previously generated Java server proxy for 

generating and sending a message to the Integration Server .

Business Example

You are a member of an integration project team and are responsible for 

 programming inbound processing using generated Java proxy objects, and

therefore need to implement and configure the server proxy.

Java Server Proxy Implementation

You have created an inbound message interface for your service in the  Integration

 Repository. You can use Java proxy generation to generate server proxy beans and

server proxy classes and include them in your application.

Figure 46: Java Inbound Proxy Implementation

25-08-2005 © 2005 SAP AG. All rights reserved.   147

Page 156: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 156/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson Summary

You should now be able to:• implement and configure a previously generated Java server proxy for 

generating and sending a message to the Integration Server .

150   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 157: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 157/187

BIT450 Lesson: Using ABAP Client Proxies

Lesson: Using ABAP Client Proxies

Lesson Overview

Introduction to the generated objects and using the method for an outbound

message.

Lesson Objectives

After completing this lesson, you will be able to:

• Use a generated client proxy method in ABAP to send a message to XI 

Business Example

You are an ABAP developer and have already generated the ABAP proxy objects.

You now want to know how to use the classes and methods for an outbound call.

Using Generated Proxy Objects

Once you have generated the proxy objects using transaction SPROXY, you can

use them in your own application. As well as the generated class and its method

(execute_synchronous in the synchronous case), it is also important to know

the data types, data structures, and possible exceptions. You can check this in

transaction SPROXY.

The following graphic illustrates the flow of an outbound message for thesynchronous and asynchronous case.

Figure 47: Processing Steps for Outbound Messages

25-08-2005 © 2005 SAP AG. All rights reserved.   151

Page 158: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 158/187

Unit 3: Using Generated Proxy Objects BIT450

You have to perform the following steps in your own application:

• Declare the required types

• Compile the information to be sent

• Call the client proxy method

• Set a commit work (in the asynchronous case)

• Catch any exceptions

• Receive the response message (in the synchronous case)

Hint:  In XI 2.0, the client proxy method was a class method. This means

that when you use client proxies on an  SAP WebAS 6.20  system, you do

not have to generate an instance.As of  XI 3.0, (and hence for  SAP WebAS from 6.40), the client proxy

method is an object method. This means that an instance (an object) of 

the class must first be generated before the execute_synchronous method

can be called.

Figure 48: Proxy Programming Model for SAP XI 2.0 and 3.0

Hint:  The ABAP report  SXIVERI_PROXY_GENVERS_CHECK 

 provides support for the migration of proxy objects from XI 2.0 to XI 3.0.

It lists proxy objects with an outdated generation version.

152   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 159: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 159/187

Page 160: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 160/187

Page 161: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 161/187

BIT450 Lesson: Using ABAP Client Proxies

You also have to catch any system exceptions which occur in addition

to the exceptions saved in the message interface, for example, if the

Integration Server cannot find a receiver due to configuration errors. Theexception class  CX_AI_SYSTEM_FAULT is available in ABAP for this

 purpose. You can also use the superordinate class of all application classes

CX_AI_APPLICATION_FAULT to catch any application exceptions. In the

asynchronous case, the application errors are persisted (saved) in the target system.

Figure 49: Schema of an ABAP Outbound Call

If an application error occurs, you have to look at all detailed messages in a loop

 by using the table  faultDetail.

25-08-2005 © 2005 SAP AG. All rights reserved.   153

Page 162: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 162/187

Unit 3: Using Generated Proxy Objects BIT450

Figure 50: Structure of an Application Error Message

Extended XML Handling

In ABAP, if an interface parameter is initial, you do not know whether the

 parameter was not assigned a value at all, or an initial value was transferred. In

addition, the XSD standard specifies the procedure for default values. For proxy

generation, this results in the following standard behavior for client proxies: when

the XML data stream is generated, the default value is set in all initial fields.

Optional, initial, scalable elements without a default value are suppressed in the

message to improve performance. You can override this standard procedure.

For rendering/parsing the XML data stream, there is a special mode in which it is

 permitted, for example, to explicitly suppress certain tags, set them to XSI:NIL,

and so on. As this mode is very performance-intensive, you have to activate it

explicitly by selecting a flag.

CREATE OBJECT lo_abc.

lo_payload_protocol

?= lo_abc->get_protocol( if_wsprotocol=>payload ).

lo_payload_protocol->set_extended_xml_handling (X).

CALL METHOD lo_abc->excecute_asynchronous ...

Hint:   The method GET_PROTOCOL returns an object of the type

IF_WSPROTOCOL. IF_WSPROTOCOL_ASYNC_MESSAGING

implements IF_WSPROTOCOL, so you need to perform a type casting:

lo_async_messaging ?= ....

IF_WSPROTOCOL contains all available protocols as constants

154   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 163: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 163/187

BIT450 Lesson: Using ABAP Client Proxies

The ABAP proxy generation functions generate control tables of type

PRXCTRLTAB (line type PRXCTRL) for each complex type. This component is

called CONTROLLER. Using this table you can define for each individual fieldwhether it is to occur in the message, and how. For a table line, set the FIELD

field to the ABAP field names, the VALUE field to a value from the type pool sai,

and attach the line to the table. The VALUE field can have the following values:

Possible values for the VALUE field of the CONTROLLER table

Value Meaning

sai_ctrl_initial Field appears with type-correct initial value in the message;

it controls default handling and performance optimization.

Value is ignored for structures or complex types.

sai_ctrl_nil The value xsi:nil is sent for this field in the message.sai_ctrl_none Field does not occur in message, regardless of this value or 

the default.

Asynchronous Case

As mentioned above, in the case of asynchronous ABAP client proxies, you have

to execute a  commit work  after calling the method execute_asynchronous, and

this sends the message.

For asynchronous messages you can use the CONTROLLER object, for example,

to set the Queue ID for the processing type Exactly Once In Order. This queueID is the serialization context (a string), which ensures that all messages with

this string are processed by the receiver in the same order as they are called by

the sender.

Setting the Queue ID

* Serialization context to bundle asynchronous messages

* that shall be received in the same order as sent

DATA:

lo_async_messaging TYPE REF TO if_wsprotocol_async_messaging.

lo_async_messaging ?=

lo_abc->get_protocol( if_proxy_protocol=>async_messaging ).

lo_async_messaging->set_serialization_context(’MY_QUEUE_ID’).

CALL METHOD ...

Hint:  The CONTROLLER object from XI 2.0 is no longer supported.

25-08-2005 © 2005 SAP AG. All rights reserved.   155

Page 164: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 164/187

Unit 3: Using Generated Proxy Objects BIT450

Error Analysis for Client Proxy

Similarly to the ICF server recorder, transaction SICF also offers an  ICF client

recorder. Choose the menu option  Client / Recorder  to access the functions for 

activating, deactivating, and displaying a recording.

Debugging for client proxy calls is the same as the standard debugging in ABAP.

156   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 165: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 165/187

BIT450 Lesson: Using ABAP Client Proxies

Exercise 14: Generating ABAP Client

Proxy ObjectsExercise Objectives

After completing this exercise, you will be able to:

• Generate ABAP client proxy objects for an outbound message interface

Business Example

You will be using an ABAP SAP system to generate a call using proxy technology,

and you want to generate the required proxy objects.

Task 1:

In the  SAP_BACKEND system, generate the proxy objects for the outbound

message interface RequestInformation_Send in your namespace (SWCV

SC_BIT450_CIS).

1. Start the transaction SPROXY in the SAP_BACKEND.

2. Generate the proxy objects for the outbound message interface

RequestInformation_Send in your namespace http://bit450.com/xi/abap##

(SWCV SC_BIT450_CIS)

Task 2:Test your ABAP client proxy.

1. Start a test call in transaction SPROXY.

25-08-2005 © 2005 SAP AG. All rights reserved.   157

Page 166: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 166/187

Unit 3: Using Generated Proxy Objects BIT450

Solution 14: Generating ABAP Client

Proxy ObjectsTask 1:

In the SAP_BACKEND system, generate the proxy objects for the outbound

message interface RequestInformation_Send in your namespace (SWCV

SC_BIT450_CIS).

1. Start the transaction SPROXY in the SAP_BACKEND.

a) Log on to the SAP_BACKEND system using the logon information

 provided by the instructor.

 b) Call transaction SPROXY.

2. Generate the proxy objects for the outbound message interface

RequestInformation_Send in your namespace http://bit450.com/xi/abap##

(SWCV SC_BIT450_CIS)

a) In transaction SWCV, navigate to your namespace for the outbound

message interface.

 b) Start the proxy generation by double clicking on the message interface.

Use the package $TMP and the prefix Z##_.

c) Check the proxy objects for naming conflicts.

d) To activate all the objects, choose “Activate” or, from the menu, Proxy!  Activate.

Continued on next page

158   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 167: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 167/187

Page 168: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 168/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson Summary

You should now be able to:• Use a generated client proxy method in ABAP to send a message to XI 

160   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 169: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 169/187

BIT450 Lesson: Server Proxies, Web Services, and WSDL

Lesson: Server Proxies, Web Services, and WSDL

Lesson Overview

You want to use inbound interfaces as a Web service.

Lesson Objectives

After completing this lesson, you will be able to:

• Describe how to use server proxies as a Web service

• Describe any inbound interface as a Web service

Business ExampleYou want to use inbound interfaces as a Web service and need to know which

 possibilities are available for which interfaces.

Web Services

A Web service is a modular function that is described and called by Internet

standards.

• Is an application function

• Is self-descriptive

• Is modular  

• Can be published

• Can be called using standards

A Web service is described in Web Service Description Language (WSDL)

 by means of XML files. It can be processed automatically, for example, for 

generating a proxy object to call the service.

A Web service is called using Internet standards: based on the http(s) protocol and

the XML data format SOAP (Simple O bject Access  Protocol).

25-08-2005 © 2005 SAP AG. All rights reserved.   161

Page 170: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 170/187

Unit 3: Using Generated Proxy Objects BIT450

Figure 51: WSDL for Describing a Web Service

Because a Web service proxy object is adjusted to the respective developmentenvironment, the service can be called using a simple local method call. You do

not need to program SOAP messages, since this is done by the proxy object. This

is exactly what happens when you use XI client proxies.

To publish a Web service, you have to make the description file, that is, the WSD

(or WSDL file), available in the Service Directory.

Figure 52: Publishing and Calling a Web Service

The directory itself is based on the UDDI standard: Universal Description and

Discovery.

162   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 171: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 171/187

BIT450 Lesson: Server Proxies, Web Services, and WSDL

Overview: XI and Web Services

There are two main methods by which inbound interfaces in XI 3.0 can be used

as Web services:

• A server proxy can be described as a Web service and then called directly;

• Using the Integration Server , any inbound interface can be described and

used as a Web service.

The second option is described in the following graphic as an “Enhanced Web

Service”.

Figure 53: XI and Web Services

Server Proxy as Web Service

In SAP XI , synchronous server proxies can also be used as a Web service. To do

this, you need to create a “virtual interface” and a “Web Service Definition” for 

the server proxy object.

25-08-2005 © 2005 SAP AG. All rights reserved.   163

Page 172: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 172/187

Unit 3: Using Generated Proxy Objects BIT450

Figure 54: Virtual Interface for SAP XI Server Proxy

The SAP WebAS 6.40 introduces the Web Services Framework, which uses virtual

interfaces to represent SAP interfaces such as server-proxy, BAPIs, etc. as a Web

service. This means that if a virtual interface is created for a server proxy, the

server proxy can be used directly as a Web service via this interface.

To create these objects, you use the  WebService Wizard, which is integrated in

the Object Navigator  (transaction SE80) and can be called in transaction SPROXY

using the menu Goto!WebService Wizard . You enter the names of the virtual

interface (for example, Z_VI_CustomerInfo) and the Web service definition (for 

example, Z_WSD_CustomerInfo) in the  WebService Wizard , which then creates

the objects. In the Web service definition, the Web service is assigned features

such as the communication type, authentication level, and transport properties.

The virtual interface defines the mapping of names for operations and end point

 parameters of the Web service and uses the structures of the proxy. If you want to

later enhance the proxy interface using the message types, the virtual interface is

automatically enhanced at the same time.

As for ABAP Web services in general, the Web service you have created for the

server proxy can also be displayed in Web service administration (transactionWSADMIN). You can also call the Web service homepage (menu  Web Service

! Web Service Homepage) and generate a WSDL file (menu  Web Service!

WSDL). The WSDL file then enables other systems to call the server proxy

as a Web service. It contains information on the address of the Web service,

and information on the parameters and structures. The address of the Web

service is also visible directly in the transaction WSADMIN (for example,

“/sap/bc/srt/xip/sap/Z_WSD_CustomerInfo”), here you need to add the host and

 port.

164   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 173: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 173/187

Unit 3: Using Generated Proxy Objects BIT450

168   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 174: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 174/187

BIT450 Lesson: Server Proxies, Web Services, and WSDL

Exercise 15: Checking a Web Service for 

a Server ProxyExercise Objectives

After completing this exercise, you will be able to:

• Check Web service definitions for a server proxy

Business Example

You want to check whether a Web service definition exists for a server proxy.

Task:Check whether a Web service definition exists for the server proxy

CustomerInformation_Provide in the namespace  http://bit450.com/xi/abap00

and start the homepage for the Web service.

1. Log on to SAP_BACKEND.

2. Navigate to Web service administration for the SOAP runtime.

3. Navigate to the Web service definition created by the instructor.

4. Call the homepage for the Web service.

5. Test the Web service.

25-08-2005 © 2005 SAP AG. All rights reserved.   169

Page 175: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 175/187

Unit 3: Using Generated Proxy Objects BIT450

Solution 15: Checking a Web Service for 

a Server ProxyTask:

Check whether a Web service definition exists for the server proxy

CustomerInformation_Provide in the namespace  http://bit450.com/xi/abap00

and start the homepage for the Web service.

1. Log on to SAP_BACKEND.

a) Use the logon parameters provided by the instructor.

2. Navigate to Web service administration for the SOAP runtime.

a) Start transaction WSADMIN for administration of the Web services for the SOAP runtime.

3. Navigate to the Web service definition created by the instructor.

a) Open the node “SOAP Application for XI Proxies” and open the entry

Z_WSD_CustomerInfo, to display the entry  BIT450 WebService

Demo. Select the entry with the mouse.

4. Call the homepage for the Web service.

a) Use F8  or choose Web Service!Web Service Homepage to call the

homepage.

 b) When asked to select the “Settings for WSDL Generation”, chooseDocument-Style.

c) To log on to the Web service homepage, you must have a user for the

J2EE server that provides the homepage. Use the logon information

 provided by the instructor.

Continued on next page

170   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 176: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 176/187

BIT450 Lesson: Server Proxies, Web Services, and WSDL

5. Test the Web service.

a) On the Web service homepage, choose Test from the menu to display

the test interface.

 b) Under Z_WSD_CustomerInfoSoapBinding, choose the link to

CustomerInformation_Provide.

c) For “parameters (string)”, enter  SAP AG and send the data by pressing

Send .

d) The request and the response are then displayed in separate fields.

Hint:  Note that the test message is not displayed in the XI

message monitor (SXI_MONITOR), as the access is not

 processed using the proxy runtime, but by the SOAP runtimeof the system instead.

25-08-2005 © 2005 SAP AG. All rights reserved.   171

Page 177: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 177/187

Unit 3: Using Generated Proxy Objects BIT450

Lesson Summary

You should now be able to:• Describe how to use server proxies as a Web service

• Describe any inbound interface as a Web service

Related Information

More information on the subject of Web services in ABAP is provided in the

course BC416 “ABAP Web Services”.

172   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 178: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 178/187

Page 179: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 179/187

Page 180: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 180/187

Page 181: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 181/187

Page 182: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 182/187

Unit Summary BIT450

174   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 183: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 183/187

BIT450 Test Your Knowledge

Test Your Knowledge

1. How do you access the interface parameters in the ABAP inbound method

to be implemented?

2. How is the business system determined for a client proxy bean that sends a

message to the Integration Server ?

25-08-2005 © 2005 SAP AG. All rights reserved.   175

Page 184: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 184/187

Test Your Knowledge BIT450

Answers

1. How do you access the interface parameters in the ABAP inbound method

to be implemented?

Answer:   The parameters INPUT and OUTPUT are available. These

correspond to the DDIC data type of the message types for the method.

2. How is the business system determined for a client proxy bean that sends a

message to the Integration Server ?

Answer:  Using the SAP WebAS J2EE Server , which is registered on the

SLD as a technical system, the Java proxy runtime determines the assigned

 business system from the SLD.

176   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 185: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 185/187

BIT450 Course Summary

Course Summary

You should now be able to:

• Assess when to use proxy objects

• Execute the necessary proxy generation

• Use the generated client proxy objects

• Implement the generated server proxy objects

25-08-2005 © 2005 SAP AG. All rights reserved.   177

Page 186: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 186/187

Course Summary BIT450

178   © 2005 SAP AG. All rights reserved. 25-08-2005

Page 187: BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

8/10/2019 BIT450 - 2005-Q3 - A4 - SAP Exchange Infrastructure Development.pdf

http://slidepdf.com/reader/full/bit450-2005-q3-a4-sap-exchange-infrastructure-developmentpdf 187/187

Feedback SAP AG has made every effort in the preparation of this course to ensure the

accuracy and completeness of the materials. If you have any corrections or 

suggestions for improvement, please record them in the appropriate place in the

course evaluation.