Escolar Documentos
Profissional Documentos
Cultura Documentos
Connect WebSphere
Service-Oriented
Middleware to SAP
Business connectivity using WebSphere Enterprise
Service Bus, Process Server, and Message Broker
Integration scenarios using open
standards and WebSphere Adapters
Common broker-to-broker and
direct communication patterns
Saida Davies
Khirallah Birkler, Reinhard Heite
Uwe Klein, Mikko J. Mkel
Clara Akiko Matsuki
Pavel Parizek, Abdelkader Sall
Sascha Schefenacker
Robert Sulzmann
Torsten Wilms
ibm.com/redbooks
SG24-7220-00
Note: Before using this information and the product it supports, read the information in
Notices on page xix.
Version
Release
Modification
fix pack
Product Name
Product
Number
D5ATLL
D56UCLL
D56UCLL
D558JLL
D558JLL
IBM WebSphere MQ
5724-B41
IBMWebSphere MQ
5724-H72
D5245LL
D555XLL
D555XLL
Version
Release
Modification
Service
Pack
Product Name
18
IDES
3
SAP XI
Contents
Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
The team that wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Information about this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
Part 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter 1. Introduction and objective of the book. . . . . . . . . . . . . . . . . . . . 3
1.1 Executive summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 The scope of this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Intended audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Overview of the topics that this book covers . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 What is not covered in this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chapter 2. Key technologies and concepts . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Enterprise requirements for connecting systems . . . . . . . . . . . . . . . . . . . 12
2.1.1 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
iii
2.1.2 Maintainability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Integration logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.4 Consumability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.5 Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.6 Infrastructure intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 From peer-to-peer to business process management . . . . . . . . . . . . . . . 14
2.2.1 Direct connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Common messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Central integration broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.4 Enterprise service bus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.5 Business process management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Standards and technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Service component architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.3 Service Data Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.4 Java technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.5 Messaging and queuing technology . . . . . . . . . . . . . . . . . . . . . . . . . 29
Chapter 3. Product overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1 Introduction to the IBM SOA reference architecture . . . . . . . . . . . . . . . . . 34
3.1.1 IBM SOA reference architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 IBM WebSphere Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.1 Simple, rapid development and deployment . . . . . . . . . . . . . . . . . . . 39
3.2.2 Secure, scalable, highly available SOA runtime environment. . . . . . 40
3.2.3 Extensive communication services . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.4 Effective application management . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 IBM WebSphere Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 IBM WebSphere Process Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.1 SOA core. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5 IBM WebSphere Message Broker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5.1 Choosing between WebSphere Message Broker or WebSphere
Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6 IBM WebSphere Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.6.1 IBM WebSphere Adapter for SAP Software . . . . . . . . . . . . . . . . . . . 51
3.6.2 IBM WebSphere Business Integration Adapter for mySAP.com. . . . 53
3.7 WebSphere Integration Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.7.1 Supports SOA development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.7.2 Easy to build, test, and deploy J2EE applications. . . . . . . . . . . . . . . 56
3.7.3 Automated deployment tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.8 Reference documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.9 Introduction to SAP Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.9.1 A short overview of SAP NetWeaver . . . . . . . . . . . . . . . . . . . . . . . . 58
3.9.2 SAP WebApplication Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
iv
Contents
vi
Contents
vii
viii
5.8.2 Preparing the Integration Repository for JMS inbound scenario. . . 271
5.8.3 Configuring ItsoEsbJmsInboundScenario in the
Integration Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
5.8.4 Configuring ItsoWmbJmsInboundScenario in the
Integration Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
5.9 Preparing the SAP Exchange Infrastructure runtime . . . . . . . . . . . . . . . 323
Chapter 6. Web Services based integration to SAP Exchange Infrastructure
scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
6.1 System landscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
6.2 Scenarios overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
6.2.1 Scenario A: WebSphere Enterprise Service Bus consuming Web
Service from SAP Exchange Infrastructure . . . . . . . . . . . . . . . . . . 330
6.2.2 Scenario B: WebSphere Application Server consuming Web Service
from SAP Exchange Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . 330
6.2.3 Scenario C: SAP Exchange Infrastructure consuming Web Service from
WebSphere Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . 330
6.2.4 Extension A: WebSphere Process Server consuming Web Service from
SAP Exchange Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
6.2.5 Extension B: SAP Exchange Infrastructure consuming Web Service
from WebSphere Process Server . . . . . . . . . . . . . . . . . . . . . . . . . . 331
6.3 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
6.3.1 WebSphere installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
6.3.2 SAP XI configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
6.4 Scenario A: WebSphere Enterprise Service Bus consuming Web Service
from SAP Exchange Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
6.4.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
6.4.2 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
6.4.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
6.4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
6.5 Scenario B: WebSphere Application Server consuming Web Service from
SAP Exchange Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
6.5.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
6.5.2 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
6.5.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
6.5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
6.6 Scenario C: SAP Exchange Infrastructure consuming Web Service from
WebSphere Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
6.6.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
6.6.2 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
6.6.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
6.7 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
6.8 Extension A: WebSphere Process Server consuming Web Service from SAP
Contents
ix
Contents
xi
9.2.2 Scenario B: Send an IDoc using a Web Service into SAP . . . . . . . 777
9.2.3 Extension A: WebSphere Process Server deployment
and test process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
9.3 Scenario A: Web Service based access to
SAP WebApplication Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
9.3.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
9.3.2 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
9.3.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
9.3.4 Execution and test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
9.3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
9.4 Scenario B: Send an IDoc using a Web Service into SAP . . . . . . . . . . . 824
9.4.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
9.4.2 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
9.4.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
9.4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
9.5 Extension A: WebSphere Process Server deployment and test process 851
9.5.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
9.5.2 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
9.5.3 Deploying to WebSphere Process Server. . . . . . . . . . . . . . . . . . . . 872
9.5.4 Execution and test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
9.5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
Chapter 10. XML-based exchange of IDocs between WebSphere Application
Server and SAP WebAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
10.1 System landscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
10.2 Scenarios overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
10.2.1 Scenario A: Sending an IDoc from SAP to WebSphere Application
Server using XML/HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
10.2.2 Scenario B: Build a WebSphere MQ to SAP bridge . . . . . . . . . . . 879
10.3 Scenario A: Sending an IDoc from SAP to WebSphere Application Server
using XML/HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
10.3.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
10.3.2 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
10.3.3 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
10.3.4 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
10.3.5 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
10.3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
10.4 Scenario B: Build a WebSphere MQ to SAP bridge . . . . . . . . . . . . . . . 903
10.4.1 Operational model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
10.4.2 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
10.4.3 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
10.4.4 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
10.4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
xii
Contents
xiii
xiv
Contents
xv
xvi
Examples
2-1 SDO programming example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5-1 The location of soap:address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6-1 Invoke the UserExistenceIF interface from JSP page. . . . . . . . . . . . . . . 381
6-2 Example JSP code for index.jsp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
6-3 Implement the getUserList method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
6-4 Process validation error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
6-5 Include directives with relative paths. . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
6-6 Include directives without a path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
7-1 getUserList method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
7-2 Method generateEISFunctionName . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
8-1 The itsousdb.sql file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
8-2 insertTestdata.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
10-1 The doPost method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
10-2 The doGet method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
10-3 The MQSAP_Bridge Java class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
11-1 Code to fill dynamic authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
13-1 Values to create a new entry for a workflow event . . . . . . . . . . . . . . . 1358
13-2 Values to create a configuration object . . . . . . . . . . . . . . . . . . . . . . . . 1360
13-3 Create new BI Object parameter configuration . . . . . . . . . . . . . . . . . . 1361
13-4 Create new BI Object parameter configuration . . . . . . . . . . . . . . . . . . 1362
13-5 startAdapter.bat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381
13-6 Configuring WebSphere MQ to be used with the scenario . . . . . . . . . 1403
13-7 MQ_SAP_Setup.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1403
xvii
xviii
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may
make improvements and/or changes in the product(s) and/or the program(s) described in this publication at
any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
xix
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm
the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on
the capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the
sample programs are written. These examples have not been thoroughly tested under all conditions. IBM,
therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
Redbooks (logo)
iSeries
z/OS
AIX
CICS
DB2 Universal Database
DB2
Encina
IBM
Lotus
MQSeries
Parallel Sysplex
PowerPC
Rational
Redbooks
SupportPac
Tivoli
WebSphere
The following terms are trademarks of other companies:
BAPI, ABAP, SAP xApps, SAP NetWeaver, mySAP.com, mySAP, SAP R/3, SAP, and SAP logos are
trademarks or registered trademarks of SAP AG in Germany and in several other countries.
Enterprise JavaBeans, EJB, Java, JavaBeans, JavaServer, JavaServer Pages, JDBC, JDK, JRE, JSP,
JVM, J2EE, J2ME, J2SE, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the
United States, other countries, or both.
xx
Microsoft, Visual Basic, Windows, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.
Intel, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States, other countries, or both.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
Notices
xxi
xxii
Preface
This book demonstrates the use of IBM Service-Oriented Middleware products
to integrate data and processes located in SAP back-end systems. IBM
provides different Integration Brokers with a wide range of application and
technology adapters that can be used to build robust, flexible and extensible
integration scenarios in very fast implementation cycles.
The first part of this book introduces general concepts and challenges that a
service-oriented business integration architecture has to fulfill and to overcome.
It describes prevalent terminologies in more detail to get an overall view of all
involved components. It also introduces the various IBM WebSphere
Service-Oriented Middleware products and the relevant SAP products to provide
a common understanding of all the participating components. In addition, it
discusses how IBM service-oriented architecture relates to the SAP Enterprise
Service Architecture.
The second part highlights common integration scenarios and communication
patterns in more technical detail. Each scenario includes technical configuration
and step-by-step guidance.
In this book, we use the following WebSphere middleware products to implement
the chosen scenarios:
IBM WebSphere Application Server 6.0.2.9
IBM WebSphere Enterprise Service Bus 6.0.1 and 6.0.1.2
IBM WebSphere Process Server 6.0.1 and 6.0.1.2
xxiii
The standards-based integration scenarios use the Web Services and Java
Messaging Service capabilities that are built in to the WebSphere middleware
products and SAP.
Finally, the appendixes provide the source code and scripts that we use to
implement the scenarios.
xxiv
Preface
xxv
role and now, additionally, supports international customers and projects. Her
main responsibilities are to support and administer customer's SAP systems,
which include installations, upgrades, and migrations. She has extensive
experience in systems support whereby, she has worked as an output
management system instructor and a college professor in computer introduction
and scientific methodology. Clara is certified in the Hewlett Packard Output
Server (Dazel) and has supported this product for two years for an international
customer. Clara holds a Master degree in Information Systems Management and
Bachelor in Systems Analysis from PUC (Pontificia Universidade Catolica), in
Campinas, Sao Paulo, Brazil and speaks four languages.
Pavel Parizek is an IT Consultant for IBM Software Group, Application
Integration Middleware Group. He joined IBM in 1989. His experience includes
WebSphere Application server, WebSphere Portal server, WebSphere Process
server, and Encina / DCE. Currently, he works for the IBM Business Partner
Technical Enablement team, where his main responsibility is to assist in
development of proof of concept, evaluate and validate scenarios in the area of
WebSphere and SAP integration. Before joining IBM, he was software developer
in the medical, Wall Street, and banking industries.
Abdelkader Sall is a senior Consultant working for Lader Systems Ltd based in
Oxford, UK. He has Over seven years of IT experience in the areas of SAP and
IBM WebSphere products. His main responsibility is to provide consulting
services to global customers and his assignments include designing and
implementing integration solutions using SAP, WebSphere interchange Server
and WebSphere Process Server. He is an SAP Certified Development
Consultant, an IBM Certified System Administrator for WebSphere Application
Server Network Deployment V6.0, and also an IBM Certified Deployment
Professional for WebSphere Process Server v6.0. He holds a Master degree in
Applied Mathematics from the University of Paris-Sud XI, France.
Sascha Schefenacker is an IT Architect for IBM Software Group Germany. He
joined IBM six years ago. In the last four years, his work has been strongly SAP
specific. He is currently part of the WebSphere SAP Technology Team (WSTT)
in the Boeblingen laboratories. The team is responsible for building WebSphere
SAP related architecture, including customer assignments and proof of concepts.
His main responsibility is to evaluate, design, and architect areas where IBM can
be used in conjunction with SAP software. His additional focus are WebSphere
Portlet Factory, Rational Application Developer and Portal based Projects.
Sascha helps worldwide key customers assess scenarios where IBM software
can be placed to complement SAP infrastructures. He is an IBM Certified
Solution Designer for service-oriented architectures, specialized to combine SAP
NetWeaver and the WebSphere middleware process platform. He holds a
Bachelor of Science degree in Information Technology; Project management,
and e-business from the University of Cooperative Education, Stuttgart.
xxvi
Figure 1
From left: Mikko, Reinhard, Uwe, Clara, Robert, Sascha, Saida, Pavel, Torsten, Khirallah, and
Abdelkader
Preface
xxvii
The ITSO would like to express its special thanks to the IBM Deutschland
Entwicklung GmbH, Boeblingen, Germany for hosting this project, providing the
human resources, hardware, software, and access to SAP systems. Also to IBM
SAP International Competence Center (ISICC), Walldorf, Germany for providing
access to SAP systems.
Sincere thanks
Mark Giles, Manager
iSV Enablement, IBM Software Group, Application and Integration
Middleware Software, IBM Austin, USA for his total support to this project.
Marks support throughout the project was invaluable and the majority of the
resource was also assigned from his department.
Daniel Moellenbeck
IT Consultant, IT-Services, SAP Consulting, EAI, SAP Germany for his
valuable consulting time towards the configuration and of SAP XI and reviews
of the scenarios.
The team would also like to thank the following people for their guidance,
assistance, and contributions to this project:
Colin Hofmann
Senior Consultant SAP NetWeaver XI, IBM Germany
Christian Holsing
IBM SAP International Competence Center, Lotus Software, IBM Sales and
Distribution, Software Sales, IBM Germany
Alasdair Paton
WebSphere MQ Brokers, System Test team lead, IBM Software Group,
Application and Integration Middleware Software, IBM Hursley, U. K.
Mark Phillips
WebSphere MQ Technical Strategy, XMS, Web Services and Client APIs,
IBM Software Group, Application and Integration Middleware Software, IBM
Hursley, U. K.
Ariel G Polanco
Account Manager, Business Development EMEA, IBM Sales and Distribution,
Software Sales, IBM Mnchen, Germany
Zafrulla Khan
Software Engineer, WebSphere Business Integration Adapters, IBM Software
Group, Application and Integration Middleware Software, IBM CA, U. S.
Heiko Scholtes
IBM WebSphere Process Integration Level 2 Customer Support Engineer,
IBM Software Group, Application and Integration Middleware Software, IBM
Germany
xxviii
Elise Sivilay
Global Partner Manager IBM, SAP AG for support and assistance with legal
requirements
Stephen Todd, STSM
Messaging systems (especially message and database interactions), IBM
Software Group, Application and Integration Middleware Software, IBM
Hursley, U. K.
Comments welcome
Your comments are important to us!
We want our books to be as helpful as possible. Send us your comments about
this book or other IBM Redbooks in one of the following ways:
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an e-mail to:
redbooks@us.ibm.com
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface
xxix
xxx
xxxi
xxxii
Part 1
Part
Overview
This part provides a general overview of the topics and concepts that we discuss
in this book. It includes the following chapters:
Chapter 1, Introduction and objective of the book on page 3
Provides an overview of the scope of this book and includes:
Chapter 1.
Integration brokers
Enterprise Service Bus
Business process execution
Standard based communications
Adapter based communications
Messaging patterns
Communication patterns
1.6 Assumptions
This book makes a number of assumptions to simplify the information that we
present here and to make this information as useful and as relevant to as many
users as possible. We make the following assumptions:
Users have the appropriate security privileges on all the components that are
involved in the scenarios, including access to the operating system,
WebSphere middleware components, and SAP components.
Users are familiar with the usage, navigation, and administration of the
discussed WebSphere middleware products as well as the SAP products.
Users are familiar with the basic administrative activities on the Windows
operating system because all scenarios are implemented on Windows nodes.
Users have basic network skills that are required to set up and reproduce the
scenarios that we describe in this book.
We have tested the practical scenarios that we describe in this book with those
product versions that are listed in the Connect WebSphere Service-Oriented
Middleware to SAP and Preface. If you want to apply the scenarios that we
describe to other product versions, the implementation might differ.
10
Chapter 2.
11
Communication
Maintainability
Integration logic
Consumability
Quality of Service
Infrastructure intelligence
2.1.1 Communication
Typically most EIS have specific access mechanisms and might support only
proprietary protocols. The data formats used to exchange information is also
different from system to system as well as the communication styles such as
request and response, fire and forget, publish/subscribe, and event driven
patterns. Communication styles can also be categorized as synchronous or
asynchronous. Finally, the addressing schema between systems is also a
challenging topic. Discussing the communication requirements between
enterprise systems security is always a multi-fold issue with its whole broad
range from authorization, authentication, non-repudiation, and encryption to
confidentiality. This security discussion can be enriched by dealing with different
encoding and validation approaches of the different data formats.
2.1.2 Maintainability
Whenever several systems have to be managed, the desire to have a common
administration arises. The requirement to have a unified view across all
connected systems is also true for other essential topics such as logging,
auditing, and monitoring.
12
have a common business object model across all connected systems and to be
able to build relationships between exchanged data entities. This also justifies
the requirement to have a common business data repository to store common
object definitions in one central place.
2.1.4 Consumability
It is no longer sufficient to open back-end applications for external access. How
the data and the back-end access is given to the outside world is the key
difference. The business functionary must be available as a fine granular service
that can be consumed by any permitted consumer. The overall setup has to be
flexible to be able to react ad-hoc changes. Such late binding requirements are
most times dressed by introducing service registry and discovery concepts. In
such a scenario, a service provider can register an available service at a central
service registry. The component that is looking for a specific service can do this
using standardized discovery mechanisms of the service registry.
13
EIS 1
EIS 5
EIS 2
EIS 6
EIS 3
EIS 7
EIS 4
14
EIS 1
Messaging
provider
EIS 5
EIS 2
EIS 6
EIS 3
EIS 7
EIS 4
Message-queuing also eliminates the need for the application to deal with the
intricacies of different platforms or worry whether the other application is busy or
even online. It also takes care to ensure that message delivery is assured and
not duplicated. All of this capability strips out interface code from your
application.
15
EIS 1
EIS 5
EIS specific
Adapter
EIS 2
EIS 6
Integration
Broker
EIS 3
EIS 7
EIS 4
16
Figure 2-4 illustrates how the ESB can connect different systems with different
data types and protocols to one common service-enabled platform.
17
Figure 2-5 highlights how an ESB can simplify business integration architectures
by reusing common integration tasks within one product. This diagram puts the
value proposition into the context with other traditional integration approaches
which we discussed previously.
Direct Connectivity
(No middleware)
Message Queuing
Connectivity logic
Connectivity,
mediation &
custom
adaptation
logic
Enterprise
Application
Integration
Enterprise
Service Bus
Connectivity and
mediation logic
Connectivity,
mediation &
custom
adaptation logic
Mediation &
custom
adaptation
logic
Custom
adaptation
logic
Application
Application
Application
Application as
a service
All connectivity,
mediation and
custom logic
buried within the
application
Removes the
connectivity
logic from the
application
Removes the
connectivity +
mediation logic
from the
application
Reduces
application to its
core business
functions
(that is, a service)
18
Integrate people
Integrate processes
Manage and integrate
information
Gather requirements
Model & Simulate
Design
Financial transparency
Business/IT alignment
Process control
19
created and reused existing services that are the creation of a composite
application.
Deploy
After assembly, the assets are then deployed into a secure and integrated
environment that takes advantage of specialized services that provide
support for integrating people, processes, and information. This level of
integration helps ensure that all the key elements of the organization are
connected and working together.
Manage
When deployed, customers manage and monitor the composite applications
and underlying resources from both an IT and a business perspective.
Information gathered during the manage phase is used to gain real-time
insight into business processes that enable better business decisions and
that feed information into the life cycle for continuous process improvement.
Underpinning all of these life cycle stages is governance, which provides
guidance and oversight for the SOA project.
At this point, it is clear that a comparison of an ESB driven integration approach
with a BPM driven integration approach is not appropriate. Typically, an ESB
integration is the first stage, which is followed by the introduction of a flexible
SOA-based BPM integration that in fact uses the granular services that are
provided by the ESB.
In both stages the integration is using additional logic to make it more efficient. In
the ESB, it is in integration logic that enables it to route, transform, convert, and
handle messages between systems. This is all on the technical message or data
layer that enables the ESB, for example, to convert from one format to another.
By contrast, the BPM layer includes additional application logic because the data
used here is typically of business nature. On the BPM layer, the decision is taken
if a customer for example can use a premium service based on the information
that is fetched from the customer base system.
Finally, it can be summarized that the introduction of powerful ESB-based
integration foundation combined with a flexible BPM layer on top can enable
enterprises to execute real event-driven computing and to react quickly and
efficiently to changes within their business environment.
20
WSIL
Publish
Discover
Discover
WSDL
Provider
Requester
Web
service
SOAP
Client
HTTP
Legend
References to service descriptors
Pointers to WSDL documents
Originates from
21
22
Component
Java
Java
WSDL
Port Type
Interface
Reference
WSDL
Port Type
Implementation
Java
BPEL
State
Machine
Business
Rule
Human
Task
Selector
Implementation Types
23
24
service components in their implementations. They do not hard code the other
services they use. They declare soft links called service references. Service
wires resolve service references. You can use SCA wiring to create SCA
applications by component assembly, as shown in Figure 2-9.
Service Module
Service
Component
Export
Service
Component
Implementation
Java
Implementation
Standalone
Reference
Java
Import
Wire
25
As an example, consider modeling customer data with a SDO data object. The
properties associated with the customer might be firstName (String), lastName
(String), and customerID (long). The code in Example 2-1 shows how to use the
DataObject API to obtain and set properties for the customer data object.
Example 2-1 SDO programming example
DataObject customer =
customer.setString("firstName","John");
customer.setString("lastName","Doe");
customer.setInt("customerID", 123);
int id = customer.getInt(customerID);
Another important concept in the SDO architecture is the data graph. A data
graph is a structure that encapsulates a set of data objects. From the top level
data object in the graph, all other data objects can be reached by traversing the
references from the root data object. In the SDO programming model, data
graphs are represented by the commonj.sdo.DataGraph Java interface
definition.
Java language
First of all, Java is language. Java is one of the most popular programming
languages today. It has been around for many years since Sun Microsystems
introduced it in early 1990s.
Any programming language is based on a well-defined syntax and semantic. Any
high-level language program, including Java, is a text file with a unique file
extension (.java for the Java programs). A program, as a text file, cannot be
executed on a computer. There is a need for another component, called a
compiler, that converts a human readable text file into machine instructions.
Typically, these instructions are unique for a specific hardware platform, such as
Intel or PowerPC. To avoid duplication, the occurrence of common
programming segments in different applications, the most frequently used
functions (segments of programs) are pre-written and grouped in special
libraries. These libraries are called differently for different platforms and
languages. For Java they are called Java class libraries. These packages are
downloaded to a computer and can be included (or referenced) to any program.
Thus we achieve code reuse.
26
As a language (meaning syntax and semantic), Java has not changed a lot.
However, the runtime support and the number of available packages have grown
tremendously. As the result, Java programming language is one of the most
popular languages for enterprise applications.
The main characteristic of the Java language include:
Java is a high-level programming language.
Java is object-oriented language.
This concept is supported by many programming languages. It is based on
the idea that the program is seen as the collection of objects. Each object
represents an entity within the business task that this program has to solve.
For example, many applications have Customer or Address objects. The
objects communicate through well-defined interfaces, called methods, by
exchanging messages.The object-oriented programming claims to achieve a
better flexibility, reusability of the code, and maintainability. It is a popular
choice for the large-scale solutions.
Java is platform independent.
A Java program written according to the best practices can be moved to any
supported platform without any change or need to recompile.
27
Java platform
To support the development and deployment of the Java applications, you need
to have a special environment on your system. This environment is called Java
platform. Figure 2-10 shows the architecture of the Java platform.
There are several editions of the Java platform in existence today to meet the
various requirements:
Java Platform Micro Edition (Java ME, formerly J2ME)
This edition targets development and deployment of the Java applications for
small, mobile devices, such as PDAs and cell phones.
Java Platform Standard Edition (Java SE, formerly J2SE)
This edition targets development and deployment for most of the Java
applications running on the servers.
Java Platform Enterprise Edition (Java EE, formerly J2EE)
This edition has additional support API for enterprise-level applications. The
examples of additional API include Web Services, distributed deployment of
the applications, and communication API.
28
Java platform is a set of specifications that defines the services and APIs for the
Java environment. Java platform is the document. The product, that implements
this document, is called Java Software Development Kit (Java SDK). It includes
the following major components (Figure 2-10):
Java Virtual Machine (JVM)
Java Runtime Environment (JRE)
Development tools
29
SupportPacs
Some additional functionality and documentation, which is not supplied in the
base WebSphere MQ product, is provided within a WebSphere MQ
SupportPac.
The areas of functionality that SupportPacs provide are varied and include the
following features:
30
For a list of all available SupportPacs and for more details about the SupportPac
system and the categories of SupportPacs, see the following Web page:
http://www.ibm.com/software/integration/support/supportpacs
31
32
Chapter 3.
Product overview
This chapter gives an introduction to the IBM service-oriented architecture (SOA)
reference architecture and the SAP NetWeaver architecture. It also provides an
overview of the business integration products that are outlined in the IBM SOA
reference architecture and the SAP NetWeaver architecture. This chapter
describes in more detail the products that we use in the scenarios of this book.
This chapter discusses the following topics:
33
Process:
WebSphere Process Server
WebSphere ESB and Message Broker
WebSphere Partner Gateway & Adapters
People:
WebSphere Portal
WebSphere Everyplace Deployment
Workplace Collaboration Services
Information:
WebSphere Information Integrator
Application Infrastructure:
WebSphere Application Server & XD
34
The software that comprises IBM SOA Foundation has been carefully selected
from the leading-edge IBM software portfolio to support each stage of the SOA
life cycle. That life cycle includes four stages. Underpinning these stages are
governance and processes that provide guidance and oversight for the SOA
project. The stages of the SOA life cycle are:
Model
You begin the Model phase by gathering and analyzing business
requirements that you use to model, simulate and optimize your business
processes. The resulting business processes are used to design associated
software services and service levels to support these processes. During this
phase, you use a model to establish a common understanding between
business and IT of your business processes, objectives and outcomes, as
well as to help ensure that the resulting application meets your defined
business requirements. This model also provides a base line to measure
business performance.
IBM products that support the Model phase are IBM WebSphere Business
Modeler and IBM Rational Software Architect.
Assemble
During the Assemble phase, you create services out of existing assets, such
as enterprise resource planning (ERP) and financial systems, IBM CICS
applications and other solutions that run your business. In many cases, a
library of existing services can be used to find services that already exist in
your organization. If no functionality exists, you can create and test a service
to deliver the functionality required for a particular business process. After the
required services are available, the services are orchestrated to implement a
business process.
IBM products that support the Assemble phase are IBM Rational Application
Developer, IBM WebSphere Integration Developer, and IBM WebSphere
Portlet Factory.
Deploy
During the Deploy phase, you configure and scale the run-time environment
to meet the service levels required by your business processes. After a
business process is configured, you can deploy it into a robust, scalable,
highly secure services environment. This services environment is optimized
to reliably run mission-critical business processes while providing the
flexibility to make updates dynamically in response to the changing business
requirements. This service-oriented approach also reduces the cost and
complexity associated with maintaining numerous point-to-point integrations.
IBM products that support the Deploy phase are IBM WebSphere Application
Server, IBM WebSphere MQ, IBM WebSphere Message Broker, IBM
35
Manage
The Manage phase involves establishing and maintaining service availability
and response times, as well as managing underlying services assets. You
can monitor key performance indicators (KPIs) in real time to get the
information you need to prevent, isolate, diagnose and fix problems.
Understanding the real-time performance of your business processes
enables you to provide vital feedback to the business-process model to
enable continuous improvement. This phase also involves managing and
maintaining version control over the services that make up your business
processes. The management phase ultimately enables you to make better
business decisions sooner than earlier possible.
IBM products that support the Manage phase are IBM WebSphere Business
Monitor and the products of IBM Tivoli.
Governance and processes
Governance and processes are critical to the success of any SOA initiative.
To help ensure success, you might choose to create a center of excellence
within your business to implement governance policies and to follow proven
international governance standards of control objectives for information and
related technology. Implementing strong governance policies can result in
successful SOA implementations and also has the potential to result in higher
profits and increased shareholder value.
36
Integrated
environment
for design
and creation
of solution
assets
Process Services
Orchestrate and
automate business
processes
Information Services
Manages diverse
data and content in a
unified manner
Access Services
Facilitates interactions
with existing information
and application assets
IT Service
Management
Development Services
Manage
and secure
services,
applications
&
resources
Infrastructure Services
Optimizes throughput,
availability and performance
37
Today (V6)
Message
Broker
WebSphere
Business
Integration
Server
v4.3
MQ
Workflow
InterChange
Server
WebSphere Business
Integration Tools
WebSphere Business
Integration Server
Foundation v5.1.1
IBM started building a business integration server that exploits SOA and Web
Services concepts in WebSphere Business Integration Server Foundation V5.1
(note the terminology Foundation in the product name). WebSphere Process
Server V6 now achieves the goal of being a robust and highly functional product
for business integration that exploits SOA.
The concepts from WebSphere MQ Workflow and WebSphere Interchange
Server are carried forward in WebSphere Message Broker V6. For example, all
the robust staff capabilities that customers appreciated with WebSphere MQ
Workflow are in WebSphere Process Server V6, including a robust set of client
components. WebSphere Message Broker also includes the concepts of
WebSphere InterChange Server, such as business objects, canonical business
processes, and cross-referencing capabilitiesthe features that made
WebSphere InterChange Server the ideal solution for data synchronization
scenarios.
The sections that follow outline the WebSphere products that we use in the
scenarios of this book.
38
39
40
41
42
43
Choreography
WebSphere ESB
Mediation
WebSphere
Application Server ND
Clustering
WebSphere
Application
Server
App Server
Service
Components
Business
Business
Processes
Processes
Supporting
Services
Mediation
Mediation
Flows
Flows
SOA Core
Human
Human
Tasks
Tasks
Interface
Maps
Service Component
Architecture
Business
Object Maps
Business
Objects
Business
Business
State
State
Machines
Machines
Business
Business
Rules
Rules
Relationships
Selectors
Selectors
Common Event
Infrastructure
44
Supporting services
Supporting services in IBM WebSphere Process Server address a number of
transformation challenges for connecting components and external artifacts (as
illustrated in Figure 3-5 on page 44). Those supporting services include:
Mediation flows
Mediation flows intercept and modify messages that are passed between
existing services (providers) and clients (requesters) that want to use those
services.
Interface maps
Interface maps reconcile the differences between components that have
different interfaces.
Business object maps
Business object maps support mappings between the source and target
business objects.
Relationships
Relationships are supporting services in WebSphere Process Server
applications that establish an association between data from two or more data
types.
Selectors
Selectors provide flexibility at points in the processing of components in an
application running on IBM WebSphere Process Server.
45
Service components
All integration artifacts running on IBM WebSphere Process Server (for example,
business processes, business rules, and human tasks) are represented as
components with well defined interfaces. Within the SCA, a service component
defines a service implementation (see Figure 3-5 on page 44). Service
components include:
Business processes
Business processes are service components that provide the primary means
through which enterprise services are integrated.
Human tasks
Human tasks are stand-alone service components that can be used to either
assign work to employees or to invoke other services.
Business state machines
Business state machines are service components that specify the sequences
of states, responses, and actions that an object or an interaction goes through
during its life in response to events.
Business rules
Business rules are service components that declare policy or conditions that
must be satisfied within your business.
46
Broker
Domain
Configuration
Manager
Optional User
Name Server
Application
Message
Flow
Broker
Application
Message
Sets
Application
Application
47
48
WebSphere
Adapter
EIS
A WebSphere Adapter:
Integrates with WebSphere Process Server.
Connects an application running on WebSphere Process Server with an EIS.
Enables data exchange between the application and the EIS.
49
WebSphere
Integration
Broker
WebSphere
Business
Integration
Adapter
EIS
50
Request processing
Known as outbound support in WebSphere Adapters.
Object definition
With WebSphere Adapters, you use an enterprise metadata discovery
component to probe an EIS and develop business objects and other useful
artifacts. This enterprise metadata discovery component is part of the
WebSphere Adapter. WebSphere Business Integration Adapters use a
separate Object Discovery Agent (ODA) to probe an EIS and generate
business object definition schemes.
WebSphere Business Integration Adapter for mySAP.com is shipped with the
WebSphere Adapter for SAP Software package.
51
The adapter supports outbound processing (from the adapter to the SAP system)
and inbound processing (from the SAP system to the adapter) of events, as
shown in Figure 3-9.
WebSphere
Adapter for
SAP Software
SCA
component
BAPI
outbound
interface
SCA
component
ALE
outbound
interface
SAP
application
Endpoint
Event
recovery
ALE
inbound
interface
52
5. The adapter then executes the function on the destination SAP software
system, sending the event data to SAP.
53
54
Business processes
Human tasks
Business state machines
Business rules
Supporting services
Interface maps
Business object maps
Relationships
Selectors
Java objects
55
56
applications. Now, you start building a solution from the services available to
you; and build only the services you do not have, enabling true incremental
solution.
Flexible in managing deployed processes
WebSphere Integration Developer allows you to test, debug business
processes and deploy them on WebSphere Process Server with a few mouse
clicks.
When deployed, you can change and manage the processes with minimal
disruption. WebSphere Integration Developers rich GUI intensive features allow
management of deployed processes with minimal skills and disruption.
57
58
People Integration
Information Integration
Process Integration
Application platform
Solution life cycle Management
Composite Application Framework
SAP NetWeaver
People Integration
Portal
Collaboration
Information Integration
Business
Intelligence
Knowledge
Management
Process Integration
Integration
Broker
Business Process
Management
Multi-Channel Access
Application Platform
J2EE
ABAP
DB and OS Abstraction
.NET
WebSphere
People Integration
People Integration within SAP NetWeaver provides the user with the requested
functionality with the correct information. SAP Enterprise Portal is the core
component of the People Integration area.
Information Integration
The Information Integration section includes products that are responsible for
making structured and unstructured information available in the enterprise in a
consistent and accessible manner. The products are SAP Business Intelligence
(BI), Knowledge Management (KM), and Master Data Management (MDM).
Process Integration
Process Integration enables business processes to spread across system
boundaries and execute seamlessly across heterogeneous IT landscapes. The
59
3rd
Party
3rd
Party
Mainframe
Other
Integration
Solution
3rd
Party
Application platform
The application platform of SAP NetWeaver is the SAP WebApplication Server
(Web AS). It provides a platform independent, maintainable basis for business
Web applications and Web Services that encompass Java 2 Enterprise Edition
(J2EE) and ABAP and supports open standards for development.
The major key capability of SAP WebAS is the full support for both the SAP
proprietary and proven ABAP technology and the open source J2EE technology.
SAP WebAS integrates the ABAP and Java personalities in one application
server. This is not performed by providing one hybrid interpreter or virtual
60
machine, but by coupling the ABAP and the Java interpreter through well defined
interfaces and communication channels.
61
Connectivity layer
The Internet Communication Manager (ICM) dispatches user interface
requests to the presentation layer and provides a single framework for
connectivity using various communication protocols. Currently, modules are
available for Hypertext Transfer Protocol (HTTP), HTTPS (extension of HTTP
running under the Secure Socket Layer (SSL)), Simple Mail Transport
Protocol (SMTP), SOAP, and Fast Common Gateway Interface (FastCGI).
Persistence layer
The persistence layer supports database independence and scalable
transaction handling. Business logic can be developed completely
independent of the underlying database and operating system. Database
independence is also made possible by support for open standards. The
database interface ensures optimized data access from within the ABAP
environment through Open SQL. SAP propagates the outstanding capabilities
of Open SQL for ABAP to Open SQL for Java and offers a variety of standard
APIs to application programmers, such as SQLJ. Other technologies, such as
Java Data Objects (JDO) and container managed persistence (CMP) for EJB
or the direct use of the Java Database Connectivity (JDBC) API are also
supported.
3rdParty
PartyApps/
Apps/
3rd
Exchange
Exchange
Browser/
Portal
Presentation Layer
Integration Layer
Web Dynpro
Business Layer
J2EE/ABAP
Persistence
Database Interface
62
Integration
Engine
63
Web Services
The SAP WebApplication Server implements the following basic Web
Services standards: XML, SOAP, WSDL, UDDI client.
SAP provides a range of components that translate the ABAP standards
(RFC, BAPI) into the communication formats of the Internet.
You create a Web Service so that users can access the available functions,
such as a RFC enabled function module, function group, or BAPI.
To create a Web Service for a function module or a BAPI with a predefined
feature profile, use the Web Service Creation Wizard. The ABAP
Workbench offers an environment where you can publish, search for, and call
Web Services. It enables the SAP WebApplication Server to act both as a
server and client for Web Services.
Note: The context in the called system is not kept open over multiple calls
(calls are stateless; there is no session). Some updating BAPIs require an
additional external commit call to actually cause any change on the SAP
database to happen.
64
Central Monitoring
Integration Builder (IB)
Integration
Repository
(IR)
Integration
Directory
(ID)
SAP
Systems
3rd Party
Systems
Integration
Server
(IS)
3rd Party
Middleware
Component
Marketplace/
Business
Partner
Configuration
Runtime
Design time and configuration time each have a central data storage point
providing an overview of all data that is relevant to the cross-component process:
the Integration Repository and the Integration Directory respectively. To edit
this data the Integration Builder is used. The content of the Integration
Repository and Integration Directory is known as collaboration knowledge.
The Integration Server is the central distribution engine for messages in SAP
Exchange Infrastructure at runtime. All systems that use SAP Exchange
Infrastructure to communicate use this server to exchange messages. These
systems are referred to as business systems at a logical level; within a specific
system landscape they are called technical systems or communication parties.
Using the configuration data from the Integration Directory, the Integration Server
decides to which receiver or receivers it must send the message and whether a
mapping needs to be executed beforehand.
The next paragraphs offer a more detailed overview of the architectural
components.
65
Runtime
The configuration data is evaluated at runtime and controls communication.
SAP XI runtime consists of a series of components:
The Integration Engine is the central runtime component. It receives
messages using XI message protocol and performs central services such as
routing and mapping for received messages.
The proxy runtime uses proxies to exchange messages with the Integration
Server. This section addresses the programming model for ABAP and Java
proxies.
The Adapter Engine is the runtime component for adapter communication.
Adapters are used to connect other systems to the Integration server. Each
adapter converts calls or messages from a sender into the XI message format
for the Integration Engine and conversely, the adapter receives messages
from the Integration Engine and converts them for the receiver.
The respective adapters are either connected using the Adapter Engine or
run independently (for instance, the IDoc adapter and the plain HTTP
adapter).
Central monitoring monitors XI runtime components, the message flow, and
the performance.
66
The Business Process Engine is the runtime component for the execution of
integration processes on the Integration Server. It extends the Integration
Server function to include stateful message processing.
Figure 3-14 provides an overview of all the components that can communicate
with the Integration Server.
Central Monitoring
Integration Server
Integration
Directory
Integration Engine
System
Landscape
Directory
Adapter Engine
XI
Protocol
Non-Central
Integration Engine
RosettaNet, ... XI
Protocol
IDocs
RFCs
File
DB
JMS
Proxy Runtime
Proxy
SAP Web AS > 6.40
SAP
System
3rd Party
Systems
Apps of
Business
Partner
Partner
Connectivity
Kit
Apps of
(small)
Business
Partner
All the systems either send messages to, or receive messages from the
Integration Server. It is the task of the Integration Server to distribute the
messages received according to the rules that are configured in the Integration
Directory. In this way, messages can be exchanged between all systems in a
heterogeneous system landscape, regardless of whether a message was sent to
the Integration Server using an adapter or the proxy runtime.
67
Third-party systems
The design objects are based on XML standards. SAP Exchange Infrastructure
supports various XML standards, like XSD, WSDL or BPEL. The advantage of
this is that you can reuse external programs and schema definitions.
Using the tool Integration Builder: Configuration an integration scenario is
defined, which consists of:
The business systems or business processes, which are involved in the
scenario as a receiver or sender of message.
Communication channels defining the protocol of the connection between a
business system and the Integration Server.
The message types and their mapping rules that are associated with the
communication channels.
The routing rules defining how the Integration Server forwards received
message to receiving business systems.
68
69
70
Part 2
Part
Scenarios
This part provides an overview of the integration solutions that we use as sample
business scenarios in this book. We begin this part with a chapter that provides
an overview of the scenarios. Then, in the chapters that follow, we talk about
each scenario in detail and discuss the following topics:
Operational models
Preparation
Installation
Configuration
Testing
Conclusion
71
72
Chapter 4.
Scenarios overview
This chapter gives an overview of the wide range of feasible integration
scenarios between IBM and SAP components. The first section uses tables to
make the different integration options visible and gives you the opportunity to
select between various decision criteria. The second section discusses briefly
the most popular feasible integration options. The last section includes more
details about the scenarios that we implement in this book.
This chapter includes the following topics:
Integration scenario tables on page 74
Feasible integration scenarios on page 80
Implemented integration scenarios in this book on page 124
73
MVS
IMS
3270
CGI
Network
iSeries
Queues
JNDI
IIOP
DOS
EJBs
VM
JCA
APIs
CICS
MDBs
JMS
DB2
RMI
DASD
RPCs
Servlets
Java
XML
EIS
JSPs
SOAP
COBOL
Web Services
Linux
ERP
SQL
CORBA
WSIF
URLs
jpgs
HTTP
SAP
domain
WSDL
JDBC
Besides proprietary and open standards, there are various access mechanisms
and policies in place which have to be taken into consideration when choosing
an appropriate integration approach.
74
WPS
WESB
WMB
WMQ
WebSphere MQ
XI
SAP WebAS
J2EE
ABAP
ABAP
BAPI
ALE/IDoc
ALE/IDoc
AXM
WS
Web Services
JMS
SCA
RFC
R/3 link
Adapter
75
WAS
WPS /
WESB
(SCA)
WMB
WMQ
WS
BAPI
ALE/IDoc
AXM
Outbound
WS / JMS
WS
WS
RFC
RFC
n/a
Inbound
WS / JMS
WS
WS
RFC
RFC
n/a
Outbound
WS / JMS
WS
WS
Inbound
WS / JMS
WS
WS
Outbound
WS / JMS
WS
WS
Inbound
WS / JMS
WS
WS
Outbound
JMS
JMS
n/a
n/a
R/3 link
n/a
Inbound
JMS
JMS
n/a
n/a
R/3 link
n/a
T1a - Adapter
N3b
a. These are adapter based integration scenarios. Refer to Table 4-2 for more details.
b. These scenarios are described in WebSphere Business Integration for SAP, SG24-6354. Because
the setup and configuration has not changed, we do not describe these scenarios again in our book.
Table 4-2 highlights in more detail the adapter-based integration scenarios and
differentiates between the use of the WebSphere Adapter for SAP and the
WebSphere Business Integration Adapter for SAP.
Table 4-2 T1 - Adapter based integration scenarios
WPS /
WESB
(SCA)
76
JCA Adapter
WebSphere Business
Integration Adapter
BAPI
ALE
/IDoc
BAPI
ALE /IDoc
AXM
Outbound
BA
A1
BA
A1
DT
Inbound
n/a
A1,A2
RF
A1,A2
AEN
BAPI
BA
Single BAPI
Multiple BAPI
Transactional BAPI
Read Table BAPI
ALE
RF
RFC Server
A1
Single ALE
Batch ALE
ABAP
Extension
Module
A2
AEN
DT
Dynamic Transactions
Dynamic retrieve
Advanced iDoc Handling
77
Table 4-3 lists all integration scenarios that are technically feasible and that could
be set up between the various IBM and SAP components. Which option you
choose depends on the specific requirements of your integration project.
Table 4-3 Enumeration of all feasible integration scenarios
SAP Exchange
Infrastructure
SAP WebAS
ABAP
J2EE
WAS
WPS /
WESB
(SCA)
WMB
WMQ
WS
BAPI
ALE/IDoc
AEN
Outbound
i,xix
ii
iii
xxix
xxx
n/a
Inbound
iv,xx
vi
xxxi
xxxii
n/a
Outbound
vii,xxi
viii
ix
Inbound
x,xxii
xi
xii
Outbound
xiii,xxiii
xiv
xv
Inbound
xvi,xxiv
xvii
xviii
Outbound
xxv
xxvi
n/a
n/a
xlii
n/a
Inbound
xxvii
xxviii
n/a
n/a
xliii
n/a
T3
N3
WPS /
WESB
(SCA)
78
JCA Adapter
WebSphere Business
Integration Adapter
BAPI
ALE
/IDoc
BAPI
ALE
/IDoc
AEN
Outbound
xxxiii
xxxiv
xxxvi
xxxvii
xxxviii
Inbound
n/a
xxxv
xxxix
xl
xli
Outbound
WAS
WPS /
WESB
(SCA)
WMB
Inbound
ABAP
J2EE
WS
BAPI
ALE/IDoc
11A,11B,
11C,11D
12B,12C
AEN
9B
10A
Outbound
6A,7A
Inbound
6C,7B
Outbound
8A
Inbound
8B
Outbound
WMQ
6B
SAP WebAS
9A
12A
13A,13B
10B
Inbound
79
80
WAS
J2EE Application
WS Client
SOAP/HTTP
Synchronous invocation
SOAP Adapter
System A
SAP XI
81
can be exported and used to generate a Web Services client on the WebSphere
Application Server side. The supported transport mechanism between the Web
Service client and the Web Service provider is HTTP (Figure 4-3).
System A
System B
WAS
SAP J2EE
J2EE Application
WS Client
J2EE Application
SOAP/HTTP
Synchronous invocation
WS Provider
In this scenario the SAP J2EE engine acts as a Web Service provider while IBM
WebSphere Application Server is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
System B
WAS
SAP WebAS
J2EE Application
WS Client
ABAP Application
SOAP/HTTP
Synchronous invocation
82
WS Provider
In this scenario the ABAP part of the SAP Web Application Server acts as a Web
Service provider while IBM WebSphere Application Server is the Web Service
consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in WebSphere
Application Server invoking SAP Web Application Server using Web Service
(9B) on page 133.
WAS
J2EE Application
WS Provider
SOAP/HTTP
Synchronous invocation
SOAP Adapter
System A
SAP XI
In this scenario the IBM WebSphere Application Server acts as the Web Service
provider while SAP Exchange Infrastructure is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
83
System B
WAS
SAP J2EE
J2EE Application
WS Provider
J2EE Application
SOAP/HTTP
Synchronous invocation
WS Client
In this scenario, the IBM WebSphere Application Server acts as the Web Service
provider while the SAP J2EE engine is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
84
System B
WAS
SAP WebAS
J2EE Application
WS Provider
ABAP Application
SOAP/HTTP
Synchronous invocation
WS Client
In this scenario the IBM WebSphere Application Server acts as the Web Service
provider while the SAP Web Application Server is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.11, SAP ERP
invoking WebSphere Application Server using XML over HTTP (10A) on
page 134.
85
WPS/WESB
SCA Module
WS Import
SOAP/HTTP
Synchronous invocation
SOAP Adapter
System A
SAP XI
86
System B
WPS/WESB
SAP J2EE
SCA Module
WS Import
J2EE Application
SOAP/HTTP
Synchronous invocation
WS Provider
In this scenario, the SAP J2EE engine acts as a Web Service provider while IBM
WebSphere Process Server/WebSphere Enterprise Service Bus is the Web
Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
87
System B
WPS/WESB
SAP WebAS
SCA Module
WS Import
ABAP Application
SOAP/HTTP
Synchronous invocation
WS Provider
In this scenario, the SAP Web Application Server acts as a Web Service provider
while IBM WebSphere Process Server/WebSphere Enterprise Service Bus is the
Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.9,
WebSphere Enterprise Service Bus invoking SAP Web Application Server
(ABAP) using Web Service (9A) on page 133.
88
WPS/WESB
SCA Module
WS Export
SOAP/HTTP
Synchronous invocation
SOAP Adapter
System A
SAP XI
In this scenario the IBM WebSphere Process Server and WebSphere Enterprise
Service Bus acts as a Web Service provider while the SAP Exchange
Infrastructure is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.4, SAP
Exchange Infrastructure invoking WebSphere Enterprise Service Bus using Web
Service (6C) on page 129.
89
System B
WPS/WESB
SAP J2EE
SCA Module
WS Export
J2EE Application
SOAP/HTTP
Synchronous invocation
WS Client
In this scenario the IBM WebSphere Process Server and WebSphere Enterprise
Service Bus acts as a Web Service provider while the SAP J2EE engine is the
Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
90
System B
WPS/WESB
SAP WebAS
SCA Module
WS Export
ABAP Application
SOAP/HTTP
Synchronous invocation
WS Client
91
WMB
Message Flow
HTTP
Request Node
SOAP/HTTP
Synchronous invocation
SOAP Adapter
System A
SAP XI
92
System B
WMB
SAP J2EE
Message Flow
HTTP
Request Node
J2EE Application
SOAP/HTTP
Synchronous invocation
WS Provider
In this scenario SAP J2EE engine acts as a Web Service provider while IBM
WebSphere Message Broker is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
93
System B
WMB
SAP WebAS
Message Flow
HTTP
Request Node
ABAP Application
SOAP/HTTP
Synchronous invocation
WS Provider
In this scenario SAP Web Application Server acts as a Web Service provider
while IBM WebSphere Message Broker is the Web Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
94
WMB
Message Flow
HTTP
Input Node
SOAP/HTTP
Synchronous invocation
SOAP Adapter
System A
SAP XI
95
System B
WMB
SAP J2EE
Message Flow
HTTP
Input Node
J2EE Application
SOAP/HTTP
Synchronous invocation
WS Client
96
System B
WMB
SAP WebAS
Message Flow
HTTP
Input Node
ABAP Application
SOAP/HTTP
Synchronous invocation
WS Client
97
WAS
J2EE Application
JMS Provider
Message
Producer (EJB)
JMS Adapter
System A
SAP XI
Asynchronous invocation
Assured delivery
98
System B
J2EE Application
JMS Adapter
WAS
JMS Provider
Message
Listener (MDB)
SAP XI
Asynchronous invocation
Assured delivery
99
WPS/WESB
SCA Module
JMS Provider
JMS Import
JMS Adapter
System A
SAP XI
Asynchronous invocation
Assured delivery
100
WPS/WESB
SCA Module
JMS Provider
JMS Export
JMS Adapter
System A
SAP XI
Asynchronous invocation
Assured delivery
101
WMB
Message Flow
JMS Provider
MQOutputNode
MQInputNode
JMS Adapter
System A
SAP XI
Correlation
Bridge
Asynchronous invocation
Assured delivery
In this scenario SAP Exchange Infrastructure acts as the Service provider while
the IBM WebSphere Message Broker is the Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.7,
WebSphere Message Broker invoking SAP Exchange Infrastructure using JMS
(8A) on page 132.
102
System B
Message Flow
JMS Adapter
WMB
JMS Provider
MQInputNode
MQOutputNode
SAP XI
Correlation
Bridge
Asynchronous invocation
Assured delivery
In this scenario IBM WebSphere Message Broker acts as the Service provider
while the SAP Exchange Infrastructure is the Service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.8, SAP
Exchange Infrastructure invoking WebSphere Message Broker using JMS (8B)
on page 132.
103
WebSphere MQ
Queue Manager
JMS Provider
Asynchronous invocation
Assured delivery
JMS Adapter
System A
SAP XI
104
System B
WebSphere MQ
SAP J2EE
Queue Manager
J2EE Application
JMS
Message
Listener (MDB)
105
WebSphere MQ
Queue Manager
JMS Provider
Asynchronous invocation
Assured delivery
JMS Adapter
System A
SAP XI
106
System B
WebSphere MQ
SAP J2EE
Queue Manager
J2EE Application
JMS
Message
Producer (EJB)
107
WAS
J2EE Application
System B
SAP Java
Connector (JCO)
System A
SAP ERP
TCP / RFC
Synchronous invocation
JCO as RFC Client
BAPI/RFM
BAPI/RFM
BAPI/RFM
In this scenario the SAP ERP systems acts as a service provider while IBM
WebSphere Application Server is the service requestor.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
108
J2EE Application
J2EE Application
Send
IDOC
System B
SAP Java
Connector (JCO)
System A
SAP ERP
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
Receive
IDOC
ALE
Distribution
Model
In this scenario the SAP ERP systems acts as the IDOC receiver while IBM
WebSphere Application Server is the IDOC sender.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
109
J2EE Application
RFC Server
TCP / RFC
Synchronous invocation
JCO as RFC Server
SAP Gateway
WAS
System B
SAP Java
Connector (JCO)
System A
SAP ERP
ABAP Application
110
J2EE Application
Receive
IDOC
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
SAP Gateway
WAS
System B
SAP Java
Connector (JCO)
System A
SAP ERP
ALE Distribution
Model
Send
IDOC
In this scenario the SAP ERP systems acts as the IDOC sender while IBM
WebSphere Application Server is the IDoc receiver.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
111
WPS/WESB
SCA Module
EIS Import
System B
JCA Adapter
System A
SAP ERP
TCP / RFC
Synchronous invocation
BAPI/RFM
In this scenario the IBM WebSphere Process Server and WebSphere Enterprise
Service Bus acts as a service consumer while the SAP ERP systems is the
service provider.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this scenario in 4.3.13, WebSphere
Enterprise Service Bus executing a single BAPI using WebSphere Adapter for
SAP (11A) on page 136. Also read 4.3.14, WebSphere Enterprise Service Bus
executing a multiple BAPIs using WebSphere Adapter for SAP (11B) on
page 136 through 4.3.16, WebSphere Enterprise Service Bus executing the
RFC_READ_TABLE BAPI using WebSphere Adapter for SAP (11D) on
page 138 for more complex integration options.
112
WPS/WESB
SCA Module
EIS Import
System B
JCA Adapter
System A
SAP ERP
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
Receive
IDOC
ALE
Distribution
Model
In this scenario the SAP ERP systems acts as the IDOC receiver while IBM
WebSphere Process Server and WebSphere Enterprise Service Bus is the IDOC
sender.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.18,
WebSphere Enterprise Service Bus sending single IDOC to SAP ERP using
WebSphere Adapter for SAP (12B) on page 139. Also read 4.3.19, WebSphere
Enterprise Service Bus sending multiple IDOCs to SAP ERP using WebSphere
Adapter for SAP(12C) on page 140 for batch transfer of IDocs.
113
WPS/WESB
SCA Module
EIS Export
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
SAP Gateway
System B
JCA Adapter
System A
SAP ERP
ALE Distribution
Model
Send
IDOC
In this scenario the SAP ERP systems acts as the IDOC sender while IBM
WebSphere Process Server/WebSphere Enterprise Service Bus is the IDOC
receiver.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.17, SAP ERP
sending single IDOC to WebSphere Enterprise Service Bus using WebSphere
Adapter for SAP (12A) on page 138.
114
System B
WPS/WESB
SCA Module
JMS Import
SAP ERP
BAPI/RFM
SI
Bus
JMS
WBI Adapter
for SAP
TCP / RFC
Synchronous invocation
In this scenario the SAP ERP systems acts as the service provider while IBM
WebSphere Process Server and WebSphere Enterprise Service Bus is the
service consumer.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
115
System B
SAP ERP
WPS/WESB
SCA Module
JMS Import
Receive
IDOC
SI
Bus
JMS
WBI Adapter
for SAP
ALE
Distribution
Model
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
In this scenario, the SAP ERP systems acts as the IDOC sender while IBM
WebSphere Process Server and WebSphere Enterprise Service Bus is the IDOC
receiver. You can find a list of other feasible integration scenarios in Table 4-3 on
page 78.
116
System A
SAP ERP
WPS/WESB
SCA Module
JMS Import
ABAP
ABAP
Handlers
ABAP
Handlers
Handlers
SI
Bus
JMS
WBI Adapter
for SAP
ABAP
Extension
Module
TCP / RFC
Dynamic Transactions
Dynamic Retrieve
Enhanced IDOC handling
In this scenario the SAP ERP systems acts as the service provider while IBM
WebSphere Process Server/WebSphere Enterprise Service Bus is the service
117
consumer. You can find a list of other feasible integration scenarios in Table 4-3
on page 78.
System B
SCA Module
JMS Export
SAP Gateway
WPS/WESB
SI
Bus
JMS
WBI Adapter
for SAP
118
SAP ERP
ABAP Application
TCP / RFC
Synchronous invocation
In this scenario the IBM WebSphere Process Server and WebSphere Enterprise
Service Bus acts as the service provider while the SAP ERP systems is the
service consumer. You can find a list of other feasible integration scenarios in
Table 4-3 on page 78.
System B
SCA Module
JMS Export
SAP Gateway
WPS/WESB
SI
Bus
JMS
WBI Adapter
for SAP
SAP ERP
ALE Distribution
Model
Send
IDOC
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
119
In this scenario the SAP ERP systems acts as the IDOC sender while IBM
WebSphere Process Server and WebSphere Enterprise Service Bus is the IDOC
receiver.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
120
System B
SAP ERP
WPS/WESB
SCA Module
JMS Export
SI
Bus
Event
Infrastructure
JMS
WBI Adapter
for SAP
ABAP
Extension
Module
TCP / RFC
Enhanced Event notification
Event polling
In this scenario, the SAP ERP systems acts as a business event producer while
the IBM WebSphere Process Server and WebSphere Enterprise Service Bus is
the business event receiver.
You can find a list of other feasible integration scenarios in Table 4-3 on page 78.
You can find a further description of this integration scenario in 4.3.20, SAP ERP
sending business event to WebSphere Enterprise Service Bus using WebSphere
Business Integration Adapter for SAP and SIBus (13A) on page 141. Also read
4.3.21, SAP ERP sending business event to WebSphere Enterprise Service Bus
using WebSphere Business Integration Adapter for SAP and MQ link (13B) on
page 141 for information about the usage of an external WebSphere MQ.
4.2.42 WebSphere MQ sending IDOC into SAP ERP using MQ link for
SAP R/3 (xlii)
This scenario describes the integration capabilities of the product MQ link for
SAP R/3. You can configure this component to pick up messages that arrive on a
certain WebSphere MQ message queue and to post them as an IDOC into the
SAP ERP target system. The messages that arrive in the observed queue have
to have a certain format to ensure that the transformation to the IDOC format is
successful. The connectivity to WebSphere MQ is performed using a standard
121
System B
SAP ERP
WebSphere MQ
Queue Manager
Receive
IDOC
Native MQ
MQSeries link
for SAP R/3
Inbound
Server
ALE
Distribution
Model
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
122
System B
SAP Gateway
WebSphere MQ
Queue Manager
Native MQ
MQSeries link
for SAP R/3
Outbound
Server
SAP ERP
ALE Distribution
Model
Send
IDOC
TCP / RFC
Synchronous invocation
Asynchronous IDOC delivery
123
WebSphere
Adapter
for
SAP
WebSphere
ESB
WebSphere
ESB
WBI
Adapter
for
SAP
IDoc
RFC
RFC
SOAP/HTTP
WebSphere
ESB
WebSphere
ESB
XML/JMS
124
SAP
ABAP
Web AS
SAP
ABAP
Web AS
SAP
ABAP
Web AS
SAP
Exchange
Infrastructure
(XI)
SAP
Exchange
Infrastructure
(XI)
WESB
WAS
WPS
Web Services
Consumer
SOAP
WESB
WPS
JMS Services
Consumer
JMS
WMB
SAP Exchange
Infrastructure
as
Web Services
Provider
SAP Exchange
Infrastructure
as
JMS Services
Provider
RFC
SAP ECC
RFC
SAP ECC
Figure 4-47 highlights the inbound scenario that integrates WebSphere Message
Broker with the SAP Exchange Infrastructure.
RFC
SAP ECC
RFC
SAP ECC
SAP Exchange
Infrastructure
as
Web Services
Consumer
SAP Exchange
Infrastructure
as
JMS Services
Consumer
SOAP
Web Services
Provider
WESB
WAS
WPS
WESB
WPS
JMS
JMS Services
Provider
WMB
125
SOAP/HTTP
WebSphere
Application
Server
XML/HTTP
SAP
Exchange
Infrastructure
(XI)
SAP
ABAP
Web AS
Stand-alone
Java Client
WebSphere MQ 6.0
requestqueue
SOAP/MQ
sender
SOAP/HTTP response
SOAP/MQ
listener
MQ/SAP
Bridge.java
requestqueue
126
WebServiceenabled RFC
ALE
IDOC_INBOUND_ASYNCHRONOUS
127
128
129
130
131
132
133
WebAS. In the development steps the Web Service Client generation features of
the RAD are used to generate a client from the WSDL file provided by the SAP
WebAS. After this the build in Web Services Explorer is used to invoke the Web
Service provided by SAP WebAS.
The used communication style is Web Service calls using SOAP through HTTP.
This style is the most popular access mechanism within service based scenarios
as HTTP is pretty flexible and SOAP can be understood by any Web Service
runtime. The SOAP/HTTP mechanism is also included within the WS-I Basic
profile and therefore gives a good level of interoperability when calls are made
between Web Service runtimes of different vendors. While this way to connect to
systems is flexible it lacks certain QoS requirements like assured delivery and
once only delivery but this is caused by the underlying transport protocol which
does not provide these capabilities. Especially in this scenario where the enabled
RFC is creating an IDOC in the SAP ERP system, additional efforts have to be
spend to ensure that the HTTP call to the SAP back-end system does not
failthe HTTP protocol does not provide this reliability out of the box. In
productive environments such a setup is very unlikely as typical IDOC delivery
scenarios mandate the usage of more reliable transport protocols like
transactional RFC or JMS. The advantage of the scenario is that the IDOC
structure is sent unparsed - this means there is no additional time spend to
validate or transform the payload.
The detailed description of the implementation can be found in 9.4, Scenario B:
Send an IDoc using a Web Service into SAP on page 824.
134
receiver. While this way to connect to systems is flexible it lacks certain QoS
requirements like assured delivery and once only delivery but this is caused by
the underlying transport protocol which does not provide these capabilities. This
scenario delivers an IDOC structure through the HTTP transport, in productive
environments such a setup is very unlikely as typical IDOC delivery scenarios
mandate the usage of more reliable transport protocols like transactional RFC or
JMS. The advantage of the scenario is that the IDOC structure is sent unparsed this means there is no additional time spend to validate or transform the payload.
You can find the detailed description of the implementation in 10.3, Scenario A:
Sending an IDoc from SAP to WebSphere Application Server using XML/HTTP
on page 879.
135
136
Within this scenario multiple BAPI representations are accessed and executed.
The different BAPIs are assigned to dedicated business object operations like
Create, Update, Retrieve or Delete. This enables the developer to create a
high-level business object which encapsulates and hides the back-end system
specifics from the calling components. For test purposes, the build in Test client
is used to trigger the generated service operation manually.
You can find the detailed description of the implementation in 11.5, Scenario B:
WebSphere Enterprise Service Bus executes a multiple BAPI call on
page 1005.
137
138
For ALE inbound event processing, the adapter acts as a Remote Function Call
(RFC) Server by listening for ALE events from an SAP system. The adapter
spawns listener threads to the SAP system. Whenever an event occurs in SAP,
the event is pushed to the adapter through the event listeners. An inbound event
can include multiple IDocs, with each IDoc corresponding to a single business
object. The multiple IDocs are pushed out by the SAP system to the adapter in
the form of an IDoc packet.
You can configure the adapter to update the IDoc status for the purpose of
monitoring your IDoc processing. If the adapter configuration property
ALEUpdateStatus is set to true (indicating that an audit trail is required for all
message types), then the adapter updates the IDoc status of ALE business
objects that are retrieved from the SAP system. The update is accomplished by
updating a status IDoc called ALEAUD that the adapter sends to the SAP system
as an inbound IDoc event. After the event is sent to the message endpoint, the
adapter updates the status of the IDoc in SAP to indicate a failure or success in
processing.
You can find the detailed description of the implementation in 12.4, Scenario A:
WebSphere Enterprise Service Bus receives SAP IDOCs on page 1190.
139
into the SAP application can be verified by inspecting the IDocs that have been
generated in SAP. This scenario describes the various steps which have to be
performed in order to send one single IDoc to an SAP ERP system.
You can find the detailed description of the implementation in 12.5, Scenario B:
WebSphere Enterprise Service Bus sends a single SAP IDOC on page 1236.
140
141
142
Chapter 5.
143
The chapter starts with an overview of the scenarios from an SAP Exchange
Infrastructure perspective as well as an illustration of the major configurations
steps.
First, we discuss the following introductory topics:
Scenarios overview on page 145
Overview of SAP XI configuration steps on page 147
Common preparation on page 149
After that, we introduce the system landscape followed by detailed descriptions
on how to perform the following tasks in SAP Exchange Infrastructure:
Configuring the SOAP outbound scenario in SAP Exchange Infrastructure
on page 165
Configuring the SOAP inbound scenario in SAP Exchange Infrastructure on
page 190
Configuring the JMS outbound scenarios in SAP Exchange Infrastructure on
page 210
Configuring the JMS inbound scenarios in SAP XI on page 264
Preparing the SAP Exchange Infrastructure runtime on page 323
144
WESB
WAS
WPS
Web Services
Consumer
SOAP
WESB
WPS
SAP Exchange
Infrastructure
as
Web Services
Provider
RFC
SAP ECC
Outbound Scenarios
JMS Services
Consumer
JMS
WMB
RFC
SAP ECC
RFC
SAP ECC
SAP Exchange
Infrastructure
as
Web Services
Consumer
SAP Exchange
Infrastructure
as
JMS Services
Consumer
SAP Exchange
Infrastructure
as
JMS Services
Provider
SOAP
RFC
Web Services
Provider
SAP ECC
WESB
WAS
WPS
WESB
WPS
JMS
JMS Services
Provider
Inbound Scenarios
WMB
145
146
Sender Agreement
Receiver Determination
Interface Determination
Business System
Communication Channel
Receiver Agreement
Communication Channel
Business System
Integration
Processes
Message Interface
Interface Mapping
Message Interface
147
Integration Repository
Integration Directory
Products
Interface Objects
Configuration Scenarios
Software Components
Mapping Objects
Business Systems
Technical Systems
Integration Processes
Communication Channels
Business Systems
Imported Objects
Sender Agreements
Receiver Determinations
Interface Determinations
Receiver Agreements
The following sections explain the meaning of the various artefacts in more detail
by showing how to apply them to concrete integration scenarios.
Before starting with the scenarios in detail, the registrations in the SAP System
Landscape Directory, which are common to all scenarios, are introduced.
148
ITSO_SAP_2
WebSphere MQ Client
V 6.0
WebSphere MQ
V 6.0
ITSO_IBM_1
ITSO_SAP_3
149
Technical Systems
Business Systems
WebSphere Message
Broker, 6.0
WEBSPHERE MESSAGE
BROKER on ITSO_IBM_2
ITSO_ADVANCED_ESB
WEBSPHERE ESB on
ITSO_IBM_1
ITSO_ESB
SDC on ITSO_SAP_3
ITSO_SAP_ECC
ITSO_SG247220, 1.0
The next section starts with a detailed descriptions of the registrations within the
System Landscape Directory. Thereby, all entries in Table 5-1 must be registered
except the product SAP ECC, which is expected to be pre-configured.
150
151
4. Enter ibm.com as the vendor, ITSO_SG247220 as the product name, and 1.0 as
the version, as shown in Figure 5-8. Click Create.
152
6. In the Software Catalog, click New Product. Enter ibm.com as the vendor,
WebSphere Message Broker as the product name, and 6.0 as the version, as
shown in Figure 5-10. Click Create.
7. Enter WMB as the name of the software component and 6.0 as its version, as
shown in Figure 5-11. Then, click Create and Cancel subsequently.
153
8. In the Software Catalog, click New Product. Enter ibm.com as the vendor,
WebSphere ESB as the product name, and 6.0 as the version, as shown in
Figure 5-12. Click Create.
9. Enter WESB as the name of the software component and 6.0 as its version, as
shown in Figure 5-13. Then, click Create and Cancel subsequently.
154
155
3. Select WebSphere Message Broker from the list of available products and
click Add as shown in Figure 5-16.
Figure 5-16 Select WebSphere Message Broker from the list of available products
4. The chosen product displays in the Selected Products list (Figure 5-17). Click
Finish.
5. Choose the Home link and open Business Landscape from the System
Landscape Directory Home page in Figure 5-6 on page 151. In the Business
Landscape panel, click New Business System as shown in Figure 5-18.
156
6. Enter ITSO_Advanced_ESB as the name for the new business system as shown
in Figure 5-19.
7. Select Third-Party as the type of the new business system and click Next as
shown in Figure 5-20.
157
2. Select WebSphere ESB from the list of available products, and click Add
(Figure 5-23). Then, click Finish.
158
3. Define the business system for the WebSphere ESB instance. Again open
Business Landscape from the SLD homepage and click New Business
System on the Business Landscape panel as shown in Figure 5-6 on
page 151. Enter the Name ITSO_ESB for the new business system and click
Next as shown in Figure 5-24.
4. Select Third-Party as the type of the new business system and click Next as
shown in Figure 5-20 on page 157. Select the technical system
WEBSPHERE ESB that is associated with the new business system and click
Next as shown in Figure 5-25. Leave the followings two screens unchanged.
Click Next and then Finish.
159
2. Complete the details of the SAP ECC instance, such as its name, installation
number, and host name on the next panel and click Next.
Note: You can get the details from your SAP system administrator if the
SAP system administrator is not doing registration within the System
Landscape Directory for you in any way.
Figure 5-27 Details of technical system for SAP ECC system SDC
160
3. In the same way, add additional information about the message server and
central application server of SAP ECC on the next panel and click Next as
shown in Figure 5-28.
Figure 5-28 Add additional information about the technical system for SDC
4. Complete your client information in the next panel and click Next as shown in
Figure 5-29.
Figure 5-29 Specify client number of the technical system for SDC
5. Finally, select SAP ECC from the list of available products and click Add (as
shown in Figure 5-30). Then, click Finish.
161
6. Next define the business system for the SAP ECC back-end system. Again
open Business Landscape from the SLD homepage and click New
Business System on the Business Landscape panel as shown in
Figure 5-18 on page 156. Enter ITSO_SAP_ECC as the name of the new
business system and click Next as shown in Figure 5-31.
7. Select Web AS ABAP the type of the associated technical system and click
Next as shown in Figure 5-32.
Figure 5-32 Select Web AS ABAP as type of the associated technical system
8. Select SDC as the associated technical system and click Next as shown in
Figure 5-33.
162
9. Leave the product selection panel unchanged and click Next. On the last
panel , leave Application System as the Business System Role, and click
Finish as shown in Figure 5-34.
163
164
BapiUserExistenceCheck
Receiver Agreement
BapiUserExistenceCheck_IM
ItsoRfcReceiverChannel
ITSO_SAP_ECC
BAPI_USER_EXISTENCE_CHECK
165
Interface Mappings
BapiUserExistenceCheck
Message Types
BapiUserExistenceCheck_IM
Message Mappings
BapiUserExistenceCheckQuery_MT
BapiUserExistenceCheckResponse _MT
Imported Objects
BAP_USER_EXISTENCE_CHECK
BapiUserExistenceCheckQuery_MM
BAP_USER_EXISTENCE_CHECK
BapiUserExistenceCheckResponse_MM
BAP_USER_EXISTENCE_CHECK.Response
Data Types
BapiUserExistenceCheckQuery_DT
BapiUserExistenceCheckResponse_DT
166
Before you implement the definitions in the Integration Repository and the
configuration scenario in the Integration Directory, ensure that all entities in
Table 5-2 are registered in the system Landscape Directory.
Table 5-2 Registrations in System Landscape Directory for ItsSoapOutboundScenario
Software Products
Technical Systems
Business Systems
WebSphere ESB on
ITSO_IBM_1
ITSO_ESB
SDC on ITSO_SAP_3
ITSO_SAP_ECC
ITSO_SG247220, 1.0
167
3. Within the Import from SAP System SDC dialog box, specify the logon data to
open a connection to SDC and click Continue as shown in Figure 5-41.
Figure 5-41 Logon to SAP System from where to import the metadata
168
5. When the message Ready for Import displays (Figure 5-43), click Finish.
Close the dialog box after a successful import.
6. In the following steps, you create a data type that models the request
message of BAPI_USER_EXISTENCE_CHECK. Select the Data Types
folder within the defined namespace and select New as shown in Figure 5-45.
169
8. Using the input help facilities of the type definition editor, define the structure
of BapiUserExistenceCheckQuery_DT as shown in Figure 5-47.
170
171
11.In the Edit Message Type panel (Figure 5-50), click the blue icon that includes
a question mark on the right-hand side of the panel to open the input help.
Select the BapiUserExistenceCheckQuery_DT data type. The editor
imports the respective definitions.
172
13.Derive a message interface from the defined message types. Navigate to the
Message Interfaces folder and select New from its context menu as shown in
Figure 5-52.
173
15.In the Edit Message Interface dialog box (Figure 5-54), select Outbound and
Synchronous as attributes of the message interface. Choose
BapiUserExistenceCheckQuery_MT as the Output Message and
BapiUserExistenceCheckResponse_MT as Input Message using the input
help. Save the configuration.
Note: Remember that message directions within the SAP Exchange
Infrastructure are named from the perspective of the involved business
systems.
16.In the left pane of the Design:Integration Builder application, navigate to the
Message Mappings folder within the defined namespace and select New from
its context menu as shown in Figure 5-55.
174
18.In the Edit Message Mapping dialog box, use the input help of the mapping
editor to select BapiUserExistenceCheckQuery_MT as the source and
BAPI_USER_EXISTENCE_CHECK as the target interface of mapping. Map
the respective USERNAME attribute of the source to the target (Figure 5-57).
175
176
177
This step finishes the configuration of the design objects in the integration
respository. All configurations are stored temporarily in a change list. The
configurations become active on the Integration Server as soon as the
change list is activated.
24.Select the Change Lists tab in the right pane of the Design: Integration
Builder, open the Standard Change List of the software component that you
just configured, and select Activate from its context menu, as shown in
Figure 5-63.
178
2. Select Configuration Scenario in the left pane of the Create Object dialog
box, enter ItsoSoapOutboundScenario as the name of the new scenario
(Figure 5-65), and click Create.
179
4. Within the window Assign Business System, click Continue twice until
3. Select Business Systems is selected in the left pane as shown in
Figure 5-67. Select ITSO_ESB from the list of business systems in the right
pane, deactivate the automatic creation of a communication channel and click
Finish.
5. Open the new folder ITSO_ESB, which is created for the assigned business
system within the configuration scenario, select Communication Channel,
and select New from its context menu as in Figure 5-68.
180
181
9. Open the new folder ITSO_SAP_ECC, which is created for the assigned
business system within the configuration scenario, select Communication
Channel and select New from its context menu as shown in Figure 5-72.
182
183
12.Within the Create Object dialog box, enter ITSO_ESB as the service entry,
BapiUserExistenceCheck as the interface and
http://ibm.com/itso/sg247220 (Figure 5-75) as its namespace and click
Create.
184
15.In the Create Object dialog box, specify ITSO_ESB as the sender,
BapiUserExistenceCheck as the interface together with its namespace, and
ITSO_SAP_ECC as the receiver (Figure 5-78), and click Create.
Figure 5-78 Specify sender and receiver to which Interface Determination applies
16.The Display Interface Determination dialog box opens. Within the Configured
Inbound Interfaces section of this dialog box, choose
BAPI_USER_EXISTENCE _CHECK as the inbound interface of the receiver
185
18.Select the sender and interface to which this sender agreement applies
(Figure 5-81).
186
187
23.All the definitions within the Integration Directory that you have configured are
stored temporarily within a change list. Switch to the Change Lists tab within
the left pane, open the Standards Change List folder, and select Activate
from its context menu as shown in Figure 5-86. After this step, the
configurations are operational.
188
2. In the Define Web Service dialog box, click Continue. You need to specify the
Web address of the Web Service. Although it does not generate the correct
Web address, click Propose URL (Figure 5-88). Then, click Continue for the
next step.
189
4. You need to specify the business system that is defined as the sender within
the Integration Scenario as well as the respective message interface, as
shown in Figure 5-90. Click Continue.
5. An overview of the generated WSDL displays. Click Save to store the WSDL.
Then, open the WSDL within your favorite editor and ensure that
soap:address refers to a location as depicted in Example 5-1. After you edit
the WSDL, 51100 is the port of the J2EE engine that hosts the adapter
framework for the SAP Exchange Infrastructure.
Example 5-1 The location of soap:address
<soap:address
location="http://ITSO_SAP_2:51100/XISOAPAdapter/MessageServlet?channel=
:ITSO_ESB:ItsoSoapSenderChannel"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
You can now use the WSDL to generate the Web Service Client on the ESB.
190
ItsoRfcSenderChannel
BAPI_USER_GETLIST
Receiver Agreement
ItsoSoapReceiverChannel
BapiUserGetlist_To_UserListInterface_IM
ITSO_ESB
UserListInterface_MI
191
The two message interfaces as well as the interface mapping are specified in the
Integration Repository, as shown in Figure 5-92. The BAPI_USER_GETLIST
interface is imported from a directory that is managed by the SAP ECC instance
and includes all the metadata of the RFCs that is hosted by that system.
The UserListInterface_MI interface is derived from a WSDL
UserListInterface.wsdl that is provided by WebSphere ESB. The WSDL
references its request and response message types as external XML schema
UserListRequestBO.xsd and UserListResponseBO.xsd. The response message
type consists of a list of data types that are described by the XML schema
UserInfoBO.xsd.
The WSDL as well as its referenced XML schemas are imported as external
definitions into the Integration Repository.
The BapiUserGetlist_To_UserListInterface_IM interface mapping consists of two
message mappings that map the respective input and output message interface.
Imported Objects
Interface Mappings
BAP_USER_GETLIST
BapiUserGetlist_To_UserListInterface_IM
Message Mappings
BapiUserGetlist_To_UserListRequest_MM
UserListResponse_To_BapiUserGetlist_MM
Message Interfaces
UserListInterface_MI
External Definitions
getUserListRequestMsg
getUserListResponseMsg
UserListInterface
External Definitions
UserListRequestBO
UserListResponseBO
UserInfoBO
192
2. Enter UserInfoBO as the name of the new external definition (Figure 5-94) and
click Create.
193
3. In the Edit External Definition dialog box, select xsd as the Category, and
click the button beside the File field, which opens a file dialog box. Browse to
the file location where the external definition files resides and select the
UserInfoBO.xsd file. The XML schema is loaded and displays in this definition
dialog box. For cross-referencing this schema within other external
definitions, input the file name into the Source field as well (Figure 5-95).
194
195
196
197
d. Specify the mapping using either the graphical facilities of the mapping
editor as shown in Figure 5-101 or using the Text Preview facility as shown
in Figure 5-102. Thereby map includeName to true if the attribute
WITH_USERNAME equals to X.
198
199
12.To create a new interface mapping, navigate to the Interface Mappings folder
within the software component ITSO_SG247220 and select New from its
context menu. Then, follow these steps:
a. Enter the name BapiUserGetlist_To_UserListInterface_IM. Within the
Edit Interface Mapping dialog box, select BAPI_USER_GETLIST as the
source and UserListInterface_MI as the target interface.
b. Click Read Interfaces to load the respective request and response
message type interfaces into the editor. Go to the Request tab and specify
the BapiUserGetlist_To_UserListRequest_MM mapping program
(Figure 5-104).
13.In the same dialog box, go to the Response tab and choose
UserListResponse_To_BapiUserGetlistResponse_MM as the mapping
program for response processing.
200
201
202
203
204
205
The left operand RfcDestination of the condition refers to a context object that
can be selected using the Condition Editor. The right operand
ITSO_XI_TO_ESB is given as a literal.
206
207
208
209
210
Although WebSphere ESB and Message Broker both consume the same JMS,
they have varying communication endpoints that consist of different queues
hosted by different queue managers. These different endpoints are reflected by
different communication channels within the scenarios configured in SAP
Exchange Infrastructure.
The different communication channels lead to different SAP Exchange
Infrastructure scenarios in the description that we provide here. Although the
presentation includes some redundant configuration steps, it offers the choice to
configure WebSphere ESB and Message Broker as enterprise information
systems independently.
Regardless of the fact that these two scenarios are two different SAP Exchange
Infrastructure scenarios, we present them both in one section because they
share definitions within the Integration Repository and have similar
configurations in the Integration Directory that distinguish themselves only by
using different names.
The section starts with an overview of the configurations steps. It then
documents the common preparation of the Integration Repository, followed by
information about configuration of the Integration Directory for WebSphere ESB
and WebSphere Message Broker.
211
Sender Agreement
Receiver Determination
Interface Determination
Esb2XiJmsSenderChannel
ESB2XI_Request
Receiver Agreement
MyAsynchJmsToSynchRfcBridge
ITSO_ESB
ItsoRfcReceiverChannel
ITSO_SAP_ECC
Esb2XiJmsReceiverChannel
XI2ESB_Response
212
Sender Agreement
Receiver Determination
Interface Determination
Wmb2XiJmsSenderChannel
WMB2XI_Request
ITSO_Advanced_ESB
Receiver Agreement
MyAsynchJmsToSynchRfcBridge
ItsoRfcReceiverChannel
ITSO_SAP_ECC
Wmb2XiJmsReceiverChannel
XI2WMB_Response
213
As shown in Figure 5-127, the integration process stores the value of the field
JMSMessageID of the request message within a process internal container
SynchRequest. In addition, it assigns this value to the field ConversationID of an
internal XI message before it forwards this message. When an internal XI
message comes in as a response to the prior request, the stored value within the
container SynchRequest is assigned to the JMSCorrelationID field of the JMS
response message.
Note: The approach is documented according to the guide How to Correlate
JMS published by SAP. You can download the document from the SAP
Developer Network at the following Web site:
http://sdn.sap.com
On this page, navigate to Exchange Infrastructure XI How-to Guides.
MyAsynchJmsToSynchRfcBridge
XI Message
...
ConversationID
JMSMessageID
...
...
JMS Response Message
...
ConversationID
SynchRequest
XI Message
...
JMSCorrelationID
ConversationID
...
...
214
The message interfaces and their respective mappings, which are involved in
both scenarios, are depicted in Figure 5-128. JMS request messages, which are
sent across either Esb2XiJmsSenderChannel or Wmb2XiJmsSenderChannel,
have the interface BapiUserExistenceCheckQuery_MI. The structure of the JMS
response messages is determined by the message interface
BapiUserExistenceCheckResponse_MI. The communication channel
ItsoRfcReceiverChannel is associated with the interface
BAPI_USER_EXISTENCE_CHECK.
BapiUserExistenceCheckQuery_MI
BapiUserExistenceCheckQuery_MI_2_ABS
BapiUserExistenceCheckQuery_ABS
MyEsbAsnychJmsToSynchRfcBridge
BapiUserExistenceCheck_ABS
BAP_USER_EXISTENCE_CHECK
BapiUserExistenceCheckResponse_ABS
BapiUserExistenceCheckResponse_ABS_2_MI
BapiUserExistenceCheckResponse_MI
Message interface
Interface mapping
215
All the message interfaces, their mappings as well as the integration process are
specified within the Integration Repository. Figure 5-129 gives an overview of the
entities and their relationships in the Integration Repository specific to both
scenarios.
BapiUserExistenceCheckQuery_MI
BapiUserExistenceCheckQuery_MI_2_ABS
BapiUserExistenceCheckQuery_MT
BapiUserExistenceCheckQuery_MM
BapiUserExistenceCheckQuery_ABS
BapiUserExistenceCheckQuery_DT
BAPI_USER_EXISTENCE_CHECK
BAPI_USER_EXISTENCE_CHECK
BapiUserExistenceCheck_ABS
BAPI_USER_EXISTENCE_CHECK.Response
BapiUserExistenceCheckResponse_MI
BapiUserExistenceCheckResponse_MT
BapiUserExistenceCheckResponse_ABS_2_MI
BapiUserExistenceCheckResponse_ABS
BapiUserExistenceCheckResponse_MM
map to
refer to
BapiUserExistenceCheckResponse_DT
Interface or type
Mapping
AsynchJmsToSynchRfcBridge
Integration process
216
Technical Systems
Business Systems
ITSO_ESB
SDC on ITSO_SAP_3
ITSO_SAP_ECC
ITSO_SG247220 1.0
Technical Systems
Business Systems
WebSphere Message
Broker 6.0
WEBSPHERE MESSAGE
BROKER on ITSO_IBM_2
ITSO_ADVANCED_ESB
SDC on ITSO_SAP_3
ITSO_SAP_ECC
ITSO_SG247220 1.0
217
218
2. Within the Import from SAP System SDC dialog box, specify the logon data to
open a connection to SDC and click Continue (Figure 5-131).
219
5. The following steps created a data type that models the request message of
BAPI_USER_EXISTENCE_CHECK. Navigate to the Data Types folder within
the defined namespace and select New from its context menu.
6. Enter BapiUserExistenceCheckQuery_DT as the name of the new data type
(Figure 5-134) and click Create.
7. Using the input help facilities of the type definition editor, define the structure
of BapiUserExistenceCheckQuery_DT as shown in Figure 5-135.
220
9. Navigate to the Message Types folder within the defined namespace, and
select New from its context menu. Enter BapiUserExistenceCheckQuery_MT as
the name of the new message type and click Create.
221
11.Following the approach of the previous steps, create a new message type
BapiUserExistenceCheckResponse_MT based on the existing data type
BapiUserExistenceCheckResponse_DT. Refer to Figure 5-138.
222
223
15.Browse to the Message Interfaces folder and select New from its context
menu. Then, follow these steps:
a. On the next panel, enter BapiUserExistenceCheckResponse_MI as the
name and click Create.
b. In the Edit Message Interface dialog box, select Inbound category and
Asynchronous mode as attributes of the message interface. Select
BapiUserExistenceCheckResponse_MT as the Input Message
(Figure 5-141).
16.Browse to the Message Interfaces folder and select New from its context
menu. Then, follow these steps:
a. On the next panel, enter BapiUserExistenceCheck_ABS as the name and
click Create.
b. In the Edit Message Interface dialog box, select Abstract category and
Synchronous mode as attributes of the message interface. Choose the
imported RFC message BAPI_USER_EXISTENCE_CHECK as the
224
17.Browse to the Message Interfaces folder and select New from its context
menu. Then, follow these steps:
a. On the next panel, enter BapiUserExistenceCheckQuery_ABS as the name
and click Create.
b. In the Edit Message Interface dialog box, select Abstract category and
Asynchronous mode as attributes of the message interface. Choose the
imported RFC message BAPI_USER_EXISTENCE_CHECK as Message
(Figure 5-143).
225
18.Browse to the Message Interfaces folder and select New from its context
menu. Then, follow these steps:
a. On the next panel, enter BapiUserExistenceCheckResponse_ABS as the
name and click Create.
b. In the Edit Message Interface dialog box, select Abstract category and
Synchronous mode as attributes of the message interface. Choose the
imported RFC message BAPI_USER_EXISTENCE_CHECK.Response
as Message (Figure 5-144).
19.You next define the mappings between the provided types and interfaces.
Navigate to the Message Mappings folder within the defined namespace and
select New from its context menu as shown in Figure 5-145.
226
227
228
229
26.Navigate to the Interface Mappings folder and select New from its context
menu. Then, follow these steps:
a. Enter BapiUserExistenceCheckResponse_ABS_2_MI as the name of the new
mapping and click Create.
b. In the Edit Interface Mapping dialog box, select
BapiUserExistenceCheckResponse_ABS as the source and
BapiUserExistenceCheckResponse_MI as the target (Figure 5-151).
c. Click Read Interfaces to fill the source and target message interfaces by
the editor. Use the input help to select the Mapping Program
BapiUserExistenceCheckResponse_MM.
230
29.Within the Edit Integration Process dialog box, define a process skeleton
using the graphical definition editor as shown in Figure 5-153. The skeleton
consists of one receive step followed by two send steps.
31.Annotate the processing steps by selecting the receive step and defining its
properties as shown in Figure 5-155. Because this step represents the
receiving of a JMS message, its mode is defined as asynchronous.
231
32.Select the second process step and specify its properties as depicted in
Figure 5-156. This step defines the synchronous RFC call to
ITSO_SAP_ECC. Therefore, both a request as well as a response message
are determined.
33.Select the third processing step that defines the sending of the JMS response
message and define its properties as shown in Figure 5-157. Assign the value
of the container SynchRequest.ConversationId to the field Conversation ID to
prepare the setting of the JMSCorrelationID as shown Figure 5-127 on
page 214. The values of the fields Receiver From and Response to Message
determine this step to be a response to the processing step specified in
Figure 5-155 on page 231.
This step ends the configuration of the design objects in the integration
respository. All configurations are stored temporarily in a change list. The
configurations become active on the Integration Server as soon as you
activate the change list.
232
34.Go to the Change Lists tab in the right pane of the Design: Integration Builder,
open the Standard Change List of the software component that you just
configured and select Activate from its context menu (Figure 5-158).
233
2. Select Configuration Scenario in the left pane of the Create Object dialog
box, enter ItsoEsbJmsOutboundScenario as the name of the new scenario
(Figure 5-161), and click Create.
234
4. Within the window Assign Business System, click Continue twice until 3.
Select Business Systems is selected in the left pane, as shown in Figure 5-163.
Select ITSO_ESB from the list of business systems in the right pane,
deactivate the automatic creation of a communication channel, and click
Finish.
5. Open the new folder ITSO_ESB, which is created for the assigned business
system within the configuration scenario, select Communication Channel
and select New from its context menu (Figure 5-164).
235
Port
Channel Name
ITSO_IBM_1
3414
ItsoQmgr2
all.clients
236
237
238
9. Navigate to the Business System folder and select Assign Business System
from its context menu. Within the window Assign Business System click
Continue until 3. Select Business Systems is selected in the left pane
(Figure 5-168). Choose ITSO_SAP_ECC from the list of business systems,
deselect generating communication channels automatically and click Finish.
10.Open the new folder ITSO_SAP_ECC that is created for the assigned
business system within the configuration scenario, select Communication
Channel, and select New from its context menu.
239
240
13.Within the Install Integration Process dialog box, click Continue on the first
panel, then select the AsynchJmsToSynchRfcBridge process from the list
of Repository Processes (Figure 5-171), and click Continue.
16.Within the Create Object dialog box, enter ITSO_ESB as the Service entry,
BapiUserExistenceCheckQuery_MI as the Interface, and
http://ibm.com/itso/sg247220 as its namespace and click Create. Refer to
Figure 5-174.
241
242
243
20.In the Create Object dialog box, specify ITSO_ESB as the sender,
BapiUserExistenceCheckQuery_MI as the interface together with its
namespace, and MyAsynchJmsToSynchRfcBridge as the receiver and click
Create. Refer to Figure 5-178.
Figure 5-178 Specify Sender and Receiver to which Interface Determination applies
21.The Display Interface Determination dialog box opens. Within the Configured
Inbound Interfaces section, choose BapiUserExistenceCheckQuery_ABS
as the inbound interface of the receiver together with the mapping
BapiUserExistenceCheckQuery_MI_2_ABS, which maps the outbound
interface of the sender to inbound interface of the receiver. Refer to
Figure 5-179.
244
245
246
247
248
30.All the definitions within the Integration Directory that have been configured
during the previous steps are temporarily stored within a change list. Switch
to the Change Lists tab within the left pane, open the Standards Change List
folder and select Activate from its context menu. Refer to Figure 5-188. After
this step, the configurations are operational.
249
2. Select Configuration Scenario in the left pane of the Create Object dialog
box, enter ItsoWmbJmsOutboundScenario as the name of the new scenario and
click Create. Refer to Figure 5-190.
250
4. Within the Assign Business System window, click Continue twice until 3.
Select Business Systems is selected in the left pane. Refer to Figure 5-192.
Select ITSO_Advanced_ESB from the list of business systems in the right
pane, deactivate the automatic creation of a communication channel and click
Finish.
5. Open the new folder ITSO_Advanced_ESB, which is created for the assigned
business system within the configuration scenario, select Communication
Channel and select New from its context menu. Refer to Figure 5-193.
251
Port
Channel Name
ITSO_IBM_2
3414
ItsoQmgr1
all.clients
252
253
10.Open the new folder ITSO_SAP_ECC, which is created for the assigned
business system within the configuration scenario, select Communication
Channel and select New from its context menu. Refer to Figure 5-198.
254
255
13.Within the Install Integration Process dialog box, click Continue on the first
panel, then select the AsynchJmsToSynchRfcBridge process from the list
of Repository Processes and click Continue. Refer to Figure 5-201.
256
257
258
Figure 5-208 Specify Sender and Receiver for new Interface Determination
21.The Display Interface Determination dialog box opens. Within the Configured
Inbound Interfaces section, choose BapiUserExistenceCheckQuery_ABS
as the inbound interface of the receiver together with the mapping
BapiUserExistenceCheckQuery_MI_2_ABS, which maps the outbound
interface of the sender to inbound interface of the receiver. Refer to
Figure 5-209.
259
260
261
262
263
30.All the definitions within the Integration Directory that have been configured
during the previous steps are temporarily stored within a change list. Switch
to the Change Lists tab within the left pane, open the Standards Change List
folder and select Activate from its context menu (Figure 5-218). After this
step, the configurations are operational.
264
Sender Agreement
Receiver Determination
Interface Determination
Receiver Agreement
ItsoRfcSenderChannel
ITSO_SAP_ECC
MyEsbSynchRfcToAsynchJmsBridge
Xi2EsbJmsReceiverChannel
XI2ESB_Request
ITSO_ESB
Xi2EsbJmsSenderChannel
ESB2XI_Response
265
The configurations for WebSphere Message Broker being a JMS provider are
delivered as the scenario ItsoWmbJmsInboundScenario within the SAP
Exchange Infrastructure Integration Directory, as shown in Figure 5-220. The
configuration scenario includes two business systems ITSO_Adavanced_ESB
representing the WebSphere Message Broker instance on ITSO_IBM_2, and
ITSO_SAP_ECC representing the SAP_ECC instance on ITSO_SAP_3.
The business system ITSO_SAP_ECC is connected with communication
channel ItsoRfcSenderChannel for sending RFC calls to the Integration Server.
The Integration Server forwards the request as an asynchronous JMS message
to the queue XI2WMB_Request using the communication channel
Xi2WmbJsmReceiverChannel. The resulting JMS response message is
delivered from the queue WMB2XI_Response to the Integration Server using the
channel Xi2WmbJmsSenderChannel.
ItsoWmbJmsInboundScenario
Sender Agreement
Receiver Determination
Interface Determination
Receiver Agreement
ItsoRfcSenderChannel
ITSO_SAP_ECC
Xi2WmbJmsReceiverChannel
XI2WMB_Request
MyWmbSynchRfcToAsynchJmsBridge
ITSO_Advanced_ESB
Xi2WmbJmsSenderChannel
WMB2XI_Response
266
SynchRfcToAsynchJmsBridge
JMS Request Message
XI Message
...
XI Message
...
MessageID
ConversationID
JMSCorrelationID
...
...
...
XI Message
...
...
ConversationID
JMSCorrelationID
...
...
CorrId
Correlation Container
assign
check
267
UserListRequestBO
UserListRequestBO_ABS_To_UserListRequestBO
UserListRequestBO_ABS
BAPI_USER_GETLIST
BAPI_USER_GETLIST_ABS
MyEsbSynchRfcToAsnychJmsBridge
UserListResponseBO_ABS
UserListResponseBO_To_UserListResponseBO_ABS
UserListResponseBO
Figure 5-222 Overview of message interfaces and mappings for the JMS inbound scenarios
268
UserListRequestBO_ABS_To_UserListRequestBO
Message Type
UserListRequestBO
UserListRequestBO_ABS
BapiUserGetlist_To_UserListRequestBO_MM
http://itso.ibm.com/sg247220/UserListRequestBO
Data Type
UserListRequestBO
http://itso.ibm.com/sg247220/UserListRequestBO
BAPI_USER_GETLIST
BAPI_USER_GETLIST
BAPI_USER_GETLIST_ABS
BAPI_USER_GETLIST.Response
UserListResponseBO_TO_UserListResponseBO_ABS
UserListResponseBO
UserListResponseBO
Message Type
UserListResponseBO_ABS
UserListResponseBO_To_BapiUserGetlistResponse_MM
http://itso.ibm.com/sg247220/UserListResponseBO
map to
Data Type
UserListResponseBO
refer to
http://itso.ibm.com/sg247220/UserListResponseBO
Interface or type
Mapping
Data Type
UserInfoBO
http://itso.ibm.com/sg247220/UserInfoBO
SynchRfcToAsynchJmsBridge
Integration process
Figure 5-223 Definitions in the Integration Repository for the JMS inbound scenarios
269
the provided XML schema files. Because the external XML schema files are
defined in different namespaces, these namespaces have to be reflected within
the data types as well. Then a message type is derived from the data type.
Finally, the message type is used as an input for building a message interface.
The mapping definitions follow the hierarchical structure as well. For instance,
the interface mapping UserListRequestBO_ABS_To_UserListRequestBO is built
from the message mapping BapiUserGetlist_To_UserListRequestBO_MM which
maps the respective message types.
Business systems and their associated software products have to be registered
within the System Landscape Directory before they can be referenced within a
configuration scenario. Table 5-7 depicts the registrations that are necessary for
ItsoEsbJmsInboundScenario.
Table 5-7 Registrations in System Landscape Directory ItsoEsbJmsInboundScenario
Software Products
Technical Systems
Business Systems
WEBSPHERE ESB on
ITSO_IBM_1
ITSO_ESB
SDC on ITSO_SAP_3
ITSO_SAP_ECC
ITSO_SG247220, 1.0
Technical Systems
Business Systems
WebSphere Message
Broker, 6.0
WEBSPHERE MESSAGE
BROKER on ITSO_IBM_2
ITSO_ADVANCED_ESB
SDC on ITSO_SAP_3
ITSO_SAP_ECC
ITSO_SG247220, 1.0
270
271
3. Specify UserInfoBO as the name of the new data type and click Create. In the
Edit Data Type dialog box, select the XSD tab and click the button to import
the file including the XML schema UserInfoBO. Refer to Figure 5-226.
Figure 5-226 Import Data Type Definition from File for UserInfoBO
4. Go to the Type Definition tab and ensure that the result of the import looks
like that shown in Figure 5-227.
272
7. Specify UserListResponseBO as the name of the new message type and click
Create.
273
274
275
b. Within the Edit Message Type dialog box, select the type
UserListRequestBO that you defined in the previous step into the entry of
Data Type Used. Note again that you do not have to insert the names
manually, but you can do it by means of the input help. Specify
http://ibm.com/itso/sg247220 as the XML Namespace. Refer to
Figure 5-232.
276
277
Having defined the message interfaces that are derived from the external
XML schema files, the next steps describe the import of the
BAPI_USER_GETLIST and how to derive the abstract message types.
15.Start importing the metadata of BAPI_USER_GETLIST by navigating to the
Imported Objects folder of the namespace http://ibm.com/itso/sg247220 and
selecting Import of SAP Objects from the context menu of RFCs (refer to
Figure 5-130 on page 218). Then follow these steps:
a. Specify the logon data to the SAP system SDC and click Continue.
b. From the list of Objects, choose BAPI_USER_GETLIST and click
Continue (Figure 5-236).
c. Click Finish to execute the import.
278
279
280
For the specification of the mapping use either the graphical facilities of the
mapping editor as shown in Figure 5-241 or define it using the Text Preview
facility as shown in Figure 5-242. Thereby map includeName to true if the
attribute WITH_USERNAME equals X.
281
282
23.To create a new interface mapping navigate to the Interface Mappings folder
within the software component ITSO_SG247220 and select New from its
context menu.
a. Specify the name UserListRequestBO_ABS_To_UserListRequestBO.
b. Within the Edit Interface Mapping dialog box, select
UserListRequestBO_ABS as the source and UserListRequestBO as
the target interface, both from namespace http://ibm.com/itso/sg247220.
Refer to Figure 5-244.
c. Click Read Interfaces to load the respective request and response
message type interfaces into the editor.
d. Click the Request tab and specify the
BapiUserGetlist_To_UserListRequestBO_MM mapping program.
283
As a final major configuration step define the integration process. The main task
of this process is to correlate the response with request message as depicted in
Figure 5-221 on page 267. In addition, the process has to bridge the
synchronous RFC call to the asynchronous JMS request/response calls. For this
task a communication pattern from the XI Integration Repository is used.
25.Create a new integration process. Specify SynchRfcToAsynchJmsBridge for
the process name. Refer to Figure 5-246.
284
285
29.Still in Figure 5-249, define the Value entry under Properties using the
express editor which opens if you double-click the field (see Figure 5-250).
Select Interface Variable with entry Interface and Context Object with
entry ConversationId. This configuration determines the correlation rule that
the value of CorrId is checked against the value of the ConversationId within
a message of type UserListResponseBO_ABS.
Note: During the description of the different processing steps keep in mind
that the actual sender and receiver of messages with their respective
communication channels are only defined within the Integration Directory.
30.Next define the properties of the different process steps. Start by selecting the
first receive step and specify the properties as shown in Figure 5-251. The
mode Opens S/A Bridge defines this step to be the receiver of a synchronous
call that handles internally an asynchronous request/reply pattern. The entry
to Message refers to the container element defined in Figure 5-248.
286
32.The third process step is meant to receive the response to the request
message that was sent by the previous step. Refer to Figure 5-253. The
received message, which is put into the Response container, gets correlated
to its respective request by means of the correlation CorrHeader.
287
288
289
290
291
Port
Queue Manager
Name
Channel Name
ITSO_IBM_1
3414
ItsoQmgr2
all.clients
292
293
294
295
296
297
Note: If you plan to run the different SOAP or JMS inbound scenarios
simultaneously, this receiver determination might already exist. In this
case, just add the existing receiver determination to the scenario and
extend it by the row including the condition and service as shown in
Figure 5-266.
16.Likewise, create a receiver determination in the scenario for messages of
type UserListRequestBO_ABS sent from Service
MyEsbSynchRfcToAsynchJmsBridge. In the Edit Receiver Determination
dialog box, refer to ITSO_ESB as the receiver of the message of the stated
type. Refer to Figure 5-268.
298
17.Finally, create a receiver determination which establishes the rule that every
message from service ITSO_ESB and of type UserListResponseBO is
forwarded to MyEsbSynchRfcToAsynchJmsBridge. Refer to Figure 5-269.
299
300
301
302
24.In the same way create a sender agreement for sender ITSO_ESB with
interface UserListResponseBO, selecting Xi2EsbJmsSenderChannel as the
Sender Communication Channel. Refer to Figure 5-276.
303
304
305
Figure 5-220 together with the interfaces and mappings involved that are shown
in Figure 5-222 on page 268.
This section illustrates how to assemble the definitions from the Integration
Repository into the overall scenario.
1. Open the Integration Directory from the SAP Exchange Infrastructure tools
page (Figure 5-5 on page 151). After a login, the Configuration: Integration
Builder application opens. Create a new configuration scenario by selecting
Open New from its menu. Refer to Figure 5-160 on page 234.
2. Select Configuration Scenario in the left pane, specify
ItsoWmbJmsInboundScenario as the name of the new scenario, and click
Create (Figure 5-281).
4. Within the window Assign Business System, click Continue twice until 3.
Select Business Systems is selected in the left pane. Refer to Figure 5-283.
Select ITSO_Advanced_ESB from the list of business systems in the right
pane, deactivate the automatic creation of a communication channel and click
Finish.
306
307
308
Port
Channel Name
ITSO_IBM_2
3414
ItsoQmgr1
all.clients
309
310
311
312
12.Next add the receiver determinations to the scenario. Select the Receiver
Determination folder within the ItsoWmbJmsInboundScenario and select New
from its context menu. Refer to Figure 5-290.
313
314
Note: If you plan to run the different SOAP or JMS inbound scenarios
simultaneously, this receiver determination might already exist. In this
case, just add the existing receiver determination to the scenario and
extend it by the row including the condition and service as shown in
Figure 5-292.
15.Create a receiver determination in the scenario for messages of type
UserListRequestBO_ABS sent from Service
MyWmbSynchRfcToAsynchJmsBridge. In the Edit Receiver Determination
dialog box, refer to ITSO_Advanced_ESB as the receiver of the message of
the stated type. Refer to Figure 5-294.
315
16.Finally, create a receiver determination which establishes the rule that every
message from service ITSO_Advanced_ESB and of type
UserListResponseBO is forwarded to MyWmbSynchRfcToAsynchJmsBridge.
Refer to Figure 5-295.
316
317
318
319
320
321
322
323
2. Copy the libraries listed in Table 5-11 from the installation directory of the
WebSphere MQ V6.0 Client to the directory C:\WUtemp\jmsproviderlib.
Table 5-11 Java Libraries from C:\Program Files\IBM\WebSphere MQ\Java\lib
CL3Export.jar
CL3Nonexport.jar
com.ibm.mq.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
rmm.jar
324
4. Deploy the created library using the Software Deployment Manager GUI for
SAP J2EE engine as described in the document How to Install and Configure
External Drivers. Refer to Figure 5-309.
325
326
Chapter 6.
327
ITSO_SAP_2
ITSO_SAP_3
ITSO_IBM_3
328
The environment includes two nodes for WebSphere software (ITSO_IBM_1 and
ITSO_IBM_3) and two nodes for SAP software (ITSO_SAP_2 and
ITSO_SAP_3).
ITSO_IBM_1 node includes the WebSphere Business Integration products,
including the WebSphere Enterprise Service Bus and WebSphere Process
Server runtimes and the WebSphere Integration Developer toolkit.
ITSO_IBM_3 node includes the WebSphere Application Server runtime for
running standard J2EE applications as well as the Rational Application
Developer tool for developing them.
ITSO_SAP_2 node includes SAP Exchange Infrastructure and the related
tools and databases.
ITSO_SAP_3 node includes the SAP ERP back-end and databases of
business applications.
Note: This environment setup and these specific product versions were used
to build the examples in this chapter. Always use the latest fix packs and other
patches while installing your environment.
329
330
6.3 Preparation
This section describes the required preparation steps for creating the example
scenarios and their extensions.
331
SAP Exchange
Infrastructure 3.0 SP18
JSP Page
Mediation Module
SOAP/
ITSOESB2SAPXI_WS
HTTP
ItsoSoapOutboundScenario
RFC
BAPI_USER_EXISTENCE_CHECK
6.4.2 Development
This section describes the required development steps for building the Mediation
Module for the WebSphere Enterprise Service Bus.
332
3. If automatic building is currently enabled, disable it. You can check this from
the drop-down menu Project Build Automatically as shown in Figure 6-3.
The disabling of the automatic build improves the performance of the
WebSphere Integration Developer because it will not needlessly build the
workspace after each save operation.
333
334
2. Select Library as the project type and click Next as shown in Figure 6-5.
335
3. Type ITSOSAPXI_WS_Lib as the library name and use the default location for
library as in Figure 6-6.
4. Click Finish to create the library.
336
337
338
339
5. Expand the tree in the Business Integration View to verify that the import
created new data types, an interface, and a Web service port definition as
depicted in Figure 6-10.
340
341
342
343
344
345
3. Right-click in a empty area in the Business Object editor that opens and
select Add attribute as shown in Figure 6-16.
346
4. In the Properties view, set the following properties for the new attribute
(Figure 6-17):
a. Enter username in the name field and make sure that the type field is set to
string.
b. Select Required.
5. Save the Business Object by pressing Ctrl+S and then close the editor.
6. Repeat steps 1 through 5 and create an additional Business Object with the
properties that are specified in Table 6-1.
Table 6-1 Properties for the response Business Object
Namespace
http://itso.ibm.com/sg247220
Folder
Leave as empty
Name
UserExistenceResponseBO
Inherit from
<none>
message
Type
string
Required
No
347
8. Save the response Business Object by pressing Ctrl+S and then close the
editor.
9. Right-click the Interfaces node of the ITSOESB2SAPXI_WS module in the
Business Integration View and select New Interface as shown in
Figure 6-18.
348
10.In the window that opens, set the properties of the interface as follows
(Figure 6-19):
a. Clear the default box and enter http://itso.ibm.com/sg247220 in the
namespace field.
b. Leave the folder field as empty.
c. Enter UserExistenceIF in the name field.
349
11.In the interface editor of the UserExistenceIF, right-click in the empty area
and select Add Request Response Operation as shown in Figure 6-20.
350
14.In the properties view of the input parameter, enter request in the Name field
and select UserExistenceRequestBO in the Type field.
15.In the Interface editor, right-click in the checkUserExistence row again and
select Add Output.
16.In the properties view of the output parameter, enter response in the name
field and select UserExistenceResponseBO in the type field as shown in
Figure 6-22.
Figure 6-22 The UserExistenceIF interface after adding the operation in its input and output parameter
17.Press Ctrl+S to save the interface and close the interface editor.
351
352
353
4. Select UserExistenceIF from the list and click OK as shown in Figure 6-25.
354
5. From the Business Integration View in the library module, select the
BapiUserExistenceCheck interface and drag it to the Assembly Editor. Select
Import with Web Service Binding and click OK as shown in Figure 6-26.
6. Select Import1 that you just created and rename it to SAP_XI as shown in
Figure 6-27.
355
356
Figure 6-30 Select the folder for the Mediation Flow implementation
357
4. In the flow section of the editor, select XSL Transformation primitive from
the palette and place it in the middle as shown in Figure 6-32.
Figure 6-32 Create a new XSL Transformation primitive in the request flow
358
7. In the same way as in the previous step, create a connection from the out
terminal of the transformation primitive to the in terminal of the Invoke node
as shown in Figure 6-34.
8. In the flow section, select the RequestTF primitive and switch to the Details
tab of the Properties view. Then, click New to create a new mapping as
shown in Figure 6-35.
359
9. Leave the Message Type settings with the default values and click Finish to
create the mapping as shown in Figure 6-36. This action opens the Mapping
editor.
Figure 6-36 Specify the message types for the XSLT mapping
10.In the Mapping editor, expand all the child nodes of both the source tree and
the target tree. Select the smo/body/checkUserExistence/request/username
node in the source tree and then select
smo/body/BapiUserExistenceCheckQuery_MT/USERNAME in the target
tree.
360
12.Save the mapping by pressing Ctrl+S and closing the Mapping editor.
13.In the Details tab of the Properties view, click Regenerate XSL to generate
the corresponding XSL file as shown in Figure 6-38.
Figure 6-38 Generate the XSL file for the request transformation
361
15.In the Flow section of the editor, click the Response tab to switch to the
response flow as shown in Figure 6-39.
Figure 6-40 Create the XSL Transformation primitive to the response flow
17.Using the same technique as in the request flow, create following connections
between the different nodes and primitives as shown in Table 6-3.
Table 6-3 List of connections for the response flow
362
Source
node/primitive
Source terminal
Target
node/primitive
Target terminal
Response BapiUserExistence
Check
out
ResponseTF
in
ResponseTF
out
Response checkUserExistence
in
After creating the connections, the response flow looks as illustrated in the
Figure 6-41.
18.Select ResponseTF primitive on the Flow section and click New on the
Details tab of the Properties view.
19.Leave the message types of the mapping to default values and click Finish to
create the mapping.
363
20.In the mapping editor, expand all the child nodes of both source and target
trees and create a mapping from
smo/body/BapiUserExistenceCheckResponse_MT/RETURN/MESSAGE to
smo/body/checkUserExistenceResponse/response/message as shown in
Figure 6-42.
21.Save the mapping by pressing Ctrl+S and closing the Mapping editor.
22.Click Regenerate XSL to generate the corresponding XSL file.
23.In the Mediation Flow Editor, press Ctrl+S to save the Mediation Flow and
close the Mediation Flow Editor.
364
2. Select the just created Stand-alone References and click Add Reference as
shown in Figure 6-44.
365
3. Select UserExistenceIF from the list and click OK as shown in Figure 6-45.
366
5. From the Assembly Editor, select the wiring tool and create a wire from the
Stand-alone Reference to the UserExistence_MediationFlow component as
shown in Figure 6-47.
367
7. Verify that the utility Java interface was generated to the module. You can
verify this from the Business Integration View, as shown in Figure 6-48.
368
2. From the cleaning options select Clean all projects and make sure that Start
a build immediately is selected. Click OK to start the cleaning and building
process as shown in Figure 6-50.
369
3. From the EJB Deployment Descriptor editor, switch to the WS Binding sheet
as shown in Figure 6-53.
4. In the Port Qualified Name Binding Details section, enter itsouser in the User
ID field and itso01 in the Password field as shown in Figure 6-54.
Figure 6-54 Configure the HTTP basic authentication for the Web Service client
5. Save the changes by pressing Ctrl+S and closing the EJB Deployment
Descriptor editor.
Attention: If the application is cleaned and rebuilt after you configure the
HTTP basic authentication in the EJB deployment descriptor, you will lose
these configurations and will have to configured them again.
370
6.4.3 Testing
This section demonstrates how to test the implementation of the scenario A
using two different approaches.
Note: Before starting the testing, make sure that the required SAP
configurations have been completed and the SAP environment is running.
3. After the server has started, verify from the Console view that the server is up
and running. There is a log entry with a message Server server1 open for
e-business as shown in Figure 6-56.
371
4. In the Servers view, right-click WebSphere ESB Server v6.0 and select Add
and remove projects as shown in Figure 6-57.
372
373
374
10.In the Test Client, click the Invoke icon to create a new Invoke node as
shown in Figure 6-63.
375
11.Enter unknown in the value field of the username input parameter and click
Continue.
12.Because there is no such user as unknown in the SAP system, the response
message includes the text User UNKNOWN does not exist as shown in
Figure 6-64.
2. From the Project Explorer view right-click the Dynamic Web Projects node
and select New Dynamic Web Project as shown in Figure 6-66.
376
3. In the window that opens, set the project properties as follows (Figure 6-67):
a. Type ITSOESB2SAPXI_WSClient in the name field.
b. Select WebSphere ESB Server v6.0 as target server.
c. Make sure that the Add module to an EAR project option is selected.
d. Select ITSOESB2SAPXI_WSApp as the EAR project.
e. Make sure that the Context Root field includes the value
TSOESB2SAPXI_WSClient.
f. Click Next.
377
378
379
6. In the window that opens, type index.jsp to the File name field and leave
other fields at their default values. Click Finish to create the JSP page
(Figure 6-70).
380
7. In the JSP editor, replace the source code of the page with a code that uses
the Java interface that was created by the Stand-Alone Reference. The
fragment of JSP code in Example 6-1 demonstrates the invoking of the
Mediation Module using the existing Java interface.
Example 6-1 Invoke the UserExistenceIF interface from JSP page
<%
ServiceManager manager = new ServiceManager();
BOFactory factory = (BOFactory)
manager.locateService("com/ibm/websphere/bo/BOFactory");
UserExistenceIF service = (UserExistenceIF)
manager.locateService("UserExistenceIFPartner");
String message = new String();
if (request.getParameter("userName") != null) {
DataObject reqObj =
factory.create("http://itso.ibm.com/sg247220",
"UserExistenceRequestBO");
reqObj.setString("username", request.getParameter("userName"));
DataObject respObj = service.checkUserExistence(reqObj);
message = respObj.getString("message");
}
%>
You can find the full source code of the JSP page in Appendix A, Additional
material on page 1441.
8. Save the JSP page by pressing Ctrl+S and then close the editor.
9. Select Project Build All from the menu to rebuild the workspace as shown
in Figure 6-71.
381
10.From the Servers view, right-click WebSphere ESB Server v6.0 and select
Publish to redeploy the application with the new Web module as shown in
Figure 6-72. Click OK to close the message window.
11.Open a Web browser and open the JSP page that you created previously. If
the WebSphere ESB Test Environment is configured to default settings, the
Web address of the JSP page is:
http://localhost:9081/ITSOESB2SAPXI_WSClient/index.jsp
12.Enter itsouser in the username field and click Submit. After processing the
request, the result field is populated with the message User ITSOUSER exists
(Figure 6-73).
382
6.4.4 Conclusion
This scenario demonstrated how you can use the WebSphere Enterprise Service
Bus to consume a Web Service from the SAP Exchange Infrastructure. From the
WebSphere Enterprise Service Bus perspective, SAP Exchange Infrastructure
as the provider of the Web Service is transparent for the client and building so
that the mediation module can be performed by following generic guidelines.
However, enabling HTTP basic authentication, which is typical to SAP Exchange
Infrastructure configurations, requires some advanced configuration efforts in the
WebSphere Enterprise Service Bus.
383
WebSphere Application
Server 6.0.2.5
SAP Exchange
Infrastructure 3.0 SP18
Web Module
ITSOWAS2SAPXI_WS
JSP Page
SOAP/
HTTP
ItsoSoapOutboundScenario
RFC
BAPI_USER_EXISTENCE_CHECK
6.5.2 Development
This section describes how to build the Web Module for the WebSphere
Application Server. Common preparation procedures include the following steps:
1. Start the Rational Application Developer.
2. Open the preferences by selecting Window Preferences as shown in
Figure 6-75.
384
3. Expand the Workbench Capabilities node and make sure that all the
sub-nodes of the Web Services Developer node are checked. When
complete, click OK as shown in Figure 6-76.
385
386
2. In the properties window, set the project properties as follows (Figure 6-80):
a. Type ITSOWAS2SAPXI_WS to the Name field.
b. Leave the Project location field to default value.
c. Make sure that Servlet version field is set to 2.4.
d. Make sure that WebSphere Application Server v6.0 is selected as
Target server.
e. Make sure that the Add module to an EAR project option is selected.
f. Make sure that EAR project field is set to ITSOWAS2SAPXI_WSEAR.
g. Make sure that Context root field is set to ITSOWAS2SAPXI_WS.
h. Leave the Add support for annotated Java classes option clear.
i. Click Finish.
387
388
389
390
3. In the Import window, set the import properties as follows (Figure 6-83):
a. Use the Browse button to select the source directory where the WSDL file
generated by SAP Exchange Infrastructure has been stored.
b. Select the BapiUserExistenceCheck.wsdl file.
c. Make sure that Into folder field includes value ITSOWAS2SAPXI_WS.
d. From the options, select Create selected folders only.
e. Click Finish to import the WSDL file.
391
392
2. In the window that opens, set the client properties as follows and click Next.
a. Select Java Proxy as Client Proxy type.
b. Make sure that option Create folders, when necessary, is selected and the
other options are not selected as shown in Figure 6-85.
393
4. Click Finish to generate the client. If prompted, select Yes to allow the
Rational Application Developer to overwrite the existing web.xml file.
394
5. To verify the successful creation of the Web Service client, expand the Java
Resources node on the Project Explorer view. It includes a set of Java
classes packaged in the com.ibm package as shown in Figure 6-87.
395
396
2. In the JSP properties window, set the properties as follows (Figure 6-89):
a. Make sure that Folder field includes value /ITSOWAS2SAPXI_WS/WebContent.
b. Type index.jsp in the File Name field.
c. Make sure that Markup language is set to HTML.
d. Make sure that all of the option fields are clear.
e. Set the Model field to None.
f. Clear the Configure advanced options field.
g. Click Finish.
397
3. In the JSP editor, switch to the Source view of the editor as shown in
Figure 6-90.
4. Replace the source code of the JSP page with an implementation that uses
the previously generated Web Service client to invoke the Web Service
provided by SAP Exchange Infrastructure. Example 6-2 is a code fragment
that demonstrates the key parts of such implementation.
Example 6-2 Example JSP code for index.jsp
398
399
3. In the Port Qualified Name Binding Details section, enter itsouser in the User
ID field and itso01 in the Password field as shown in Figure 6-93.
4. Save the changes to the deployment descriptor by pressing Ctrl+S and then
close the editor.
400
2. From the clean options windows, make sure that Clean all projects and
Start a build immediately are selected. Click OK to start the cleaning and
building process as shown in Figure 6-95.
401
6.5.3 Testing
This section illustrates the execution and test of the created project in a
WebSphere Application Server environment.
1. In the Servers view, select WebSphere Application Server v6.0 and click
Start on the toolbar as shown in Figure 6-96.
2. Verify the successful start-up of the server by switching to the Console view
and making sure that it includes following log entry.
WSVR0001I: Server server1 open for e-business
3. In the Servers view, right-click WebSphere Application Server v6.0 and
select Add and remove projects as shown in Figure 6-97.
402
403
6. In the browser, type itsouser to the Username field and click Submit. The
application returns with a response message User ITSOUSER exists as
shown in Figure 6-99.
6.5.4 Conclusion
This scenario demonstrates how you can use the WebSphere Application Server
to consume a Web Service from the SAP Exchange Infrastructure. From the
WebSphere side, the implementation of the integration follows the standard
steps of generating a Web Service client from an externally-provided WSDL
interface. As in scenario A, enabling HTTP basic authentication requires some
extra configuration work. From the SAP perspective, using WebSphere
Application Server as a client is transparent to the service provider.
404
SAP Exchange
Infrastructure 3.0 SP18
BAPI_USER_GETLIST
RFC
ItsoSoapInboundScenario
SOAP/
Mediation Module
HTTP
ITSOSAPXI2ESB_WS
6.6.2 Development
This section describes the required development steps for building the mediation
module and the Java component for the WebSphere Enterprise Service Bus.
Common preparation procedures include:
1. Starting the WebSphere Integration Developer.
2. Changing to Business Integration Perspective if you currently have some
other perspective open.
3. If automatic building is currently enabled, disabling it. We describe this
procedure in detail in Common preparation procedures on page 332.
405
406
2. In the windows that opens, set the properties of the Mediation Module as
follows (Figure 6-102):
a. Enter ITSOSAPXI2ESB_WS in the Module name field.
b. Use the default location for the module.
c. Make sure that WebSphere ESB Server v6.0 is selected as target
runtime.
d. Select Create mediation flow component.
e. Click Finish to create the Mediation Module.
407
408
2. In the Business Object properties window, set the properties as follows (Refer
to Figure 6-104):
a. Leave the Module field set at ITSOSAPXI2ESB_WS.
b. Clear the default option in the Namespace field and enter
http://itso.ibm.com/sg247220 as value.
c. Leave the Folder field to empty.
d. Enter UserListRequestBO in the Name field.
e. Leave the Inherit from field set to <none>.
f. Click Finish to create the Business Object.
409
3. In the Business Object editor that opens, right-click the empty area and select
Add attribute as shown in Figure 6-105.
4. In the Properties View, set the attribute properties as follows (Figure 6-106):
a. Enter amount in the Name field.
b. Select int in the Type field.
c. Select Required.
410
6. After adding the two attributes, the request Business Object looks as
illustrated in Figure 6-108.
Figure 6-108 The UserListRequestBO Business Object after adding the attributes
7. Save the changes by pressing Ctrl+S and then close the Business Object
editor.
411
8. Create a second business object and set the properties as listed in Table 6-4.
Refer to Figure 6-109.
Table 6-4 Properties for the UserInfoBO Business Object
Module
ITSOSAPXI2ESB_WS
Namespace
http://itso.ibm.com/sg247220
Folder
Leave as empty
Name
UserInfoBO
Inherit from
<none>
Figure 6-109 Set the properties for the UserInfoBO Business Object
412
Type
Required
username
string
yes
firstName
string
no
lastName
string
no
fullName
string
no
After adding the four attributes, the UserInfoBO looks as illustrated in the
Figure 6-110.
Figure 6-110 The UserInfoBO Business Object after adding the attributes
10.Save the Business Object by pressing Ctrl+S and then close the Business
Object editor.
413
11.Create a third business object and set the properties as listed in Table 6-6.
Refer to Figure 6-111.
Table 6-6 Properties for the UserListResponseBO Business Object
Module
ITSOSAPXI2ESB_WS
Namespace
http://itso.ibm.com/sg247220
Folder
Leave as empty
Name
UserListResponseBO
Inherit from
<none>
414
Figure 6-112 Create the userList attribute to the response Business Object
13.Save the changes to the Business Object and then close the editor.
415
14.In the Business Integration View, right-click the Interfaces node and select
New Interface as shown in Figure 6-113.
416
15.In the window that opens, set the Interface properties as follows
(Figure 6-114):
a. Make sure that the Module field is set to ITSOSAPXI2ESB_WS.
b. Clear the default option in the Namespace field and set it to
http://itso.ibm.com/sg247220.
c. Leave the Folder field as empty.
d. Type UserListIF in the Name field.
417
16.In the Interface Editor that opens, right-click the empty area and select Add
Request-Response Operation as shown in Figure 6-115.
418
19.In the Properties View, enter request in the name field and set the type field
to UserListRequestBO.
20.In the Interface Editor, right-click the getUserList operation again and select
Add Output.
21.In the Properties View, enter response in the name field and set the type field
to UserListResponseBO (Figure 6-117).
Figure 6-117 The getUserList operation after adding input and output parameters
22.Save the interface by clicking Ctrl+S and then close the Interface Editor.
419
420
421
Figure 6-120 Select the interface to add to the Mediation Flow component
422
423
424
425
a. In the window that opens, select New Package to create a new Java
package for the class file as shown in Figure 6-125.
426
427
428
429
4. In the Flow section of the editor, create a connection from the out terminal of
the Request node to the in terminal of the Invoke node (Figure 6-131).
430
6. In the Response flow, create a connection from the out terminal of the Callout
Response node to the in terminal of the Input Response node (Figure 6-133).
7. Save the Mediation Flow component by clicking Ctrl+S and then close the
Mediation Flow Editor.
431
2. When prompted, select Yes to generate a WSDL file that includes the port
and binding information as shown in Figure 6-135.
4. Save the Assembly Diagram by pressing Ctrl+S and then close the Assembly
Editor.
432
6.6.3 Testing
This section illustrates the execution and test of the created project in a
WebSphere Enterprise Service Bus environment.
2. When the server has started, make sure that the Console view includes the
following log entry.
WSVR0002I: Server server1 open for e-business
3. Right-click the WebSphere ESB Server v6.0 runtime and select Add and
remove Projects as shown in Figure 6-138.
433
434
435
4. In the Test Function Module: Initial Screen view, set the fields as follows
(Figure 6-141):
a. Enter ITSO_XI_TO_ESB in the RFC target sys field.
b. Enter 3 in the MAX_ROWS field.
c. Enter X in the WITH_USERNAME field.
5. Click Execute to execute the function call and to open the result view.
436
6. In the Test Function Module: Result Screen view, click the button located in
left side of the 3 Entries column of the USERLIST Result row. This action
opens the USERLIST result set as shown in Figure 6-142.
437
7. Double-click the USERLIST result entries to open the details of this structure.
6.7 Conclusion
This scenario demonstrates how you can use SAP Exchange Infrastructure to
consume a Web Service from the WebSphere Enterprise Service Bus. In the
WebSphere side, the implementation of the scenario follows the standard path of
developing a mediation module and creating a Web Service export for the client
(here SAP Exchange InfrastructureI). In this example, the actual service provider
(Java component) used the same interface as the export, so no data mapping in
the WebSphere side were required. In the SAP Exchange Infrastructure side, the
implementation of the example requires the creation of inbound scenario, which
maps the interface that is used by the BAPI component to the interface that is
provided by WebSphere Enterprise Service Bus.
438
SAP Exchange
Infrastructure 3.0 SP18
Module
ITSOWPS2SAPXI_WS
Module
SOAP/
ITSOESB2SAPXI_WS
HTTP
ItsoSoapOutboundScenario
RFC
BAPI_USER_EXISTENCE_CHECK
6.8.2 Development
This section describes the required development steps for implementing the
ITSOWPS2SAPXI_WS module.
439
Reorganizing resources
Because some of the interfaces and Business Objects that are required by the
extension are currently located in the mediation module, you have to move them
to the library to expose them. To reorganize resources, follow these steps:
1. In the Business Integration View, while pressing Ctrl, select
UserExistenceRequestBO, UserExistenceResponseBO from Business
Objects and UserExistenceIF from interfaces. Then, right-click and select
Refactor Move as shown in Figure 6-145.
440
3. In the preview window, click OK to move the files as shown in Figure 6-147.
441
442
4. Save the Assembly Diagram by pressing Ctrl+S and then close the editor.
443
3. After creating the module, right-click the module that you just created in the
Business Integration View and select Open Dependency Editor as shown in
Figure 6-153.
444
445
6. Save the changes made to the Dependency Editor by pressing Ctrl+S and
then close the editor.
446
6. In the Assembly Editor, select the process component and click Add
Reference as shown in Figure 6-160.
7. From the list of interfaces, select UserExistenceIF again and click OK.
447
448
10.In the Business Process Editor, select the Invoke node from the palette and
place it between the Receive and Reply nodes as shown in Figure 6-163.
449
12.Select the Invoke SAP_XI node, and switch to the Details tab of the
Properties View. Click the Browse button as shown in Figure 6-165.
450
14.In the Details tab, click the button located in right side of the request input
parameter as shown in Figure 6-167.
Figure 6-167 Define the input parameter for the invoke node
451
15.Select the Request variable from the list and click OK as shown in
Figure 6-168.
16.In the Details tab, click the button located on the right side of the response
output parameter.
17.Select the Response variable from the list and click OK.
452
18.After defining the input and output parameters for the invoke node, the Details
tab looks as illustrated in Figure 6-169.
Figure 6-169 The details of the invoke node after setting the parameters
19.Save the changes to the process by pressing Ctrl+S and then close the
Business Process Editor.
453
3. Click the Add Interface icon above the import and select the UserExistenceIF
interface from the list. Then, click OK.
4. Right-click UserExistenceMediation_Import and select Generate
Binding SCA Binding as shown in Figure 6-172.
454
7. Using the wiring tool from the palette, create a wire from
UserExistence_Process to UserExistenceMediation_Import as shown in
Figure 6-175.
Figure 6-175 Create a wire from the process component to the import node
8. Save the Assembly Diagram by pressing Ctrl+S and then close the editor.
455
6.8.3 Testing
This section illustrates the execution and test of the created project in a
WebSphere Process Server environment.
1. In the Servers view, select the WebSphere Process Server v6.0 runtime and
click the Start icon as shown in Figure 6-177.
2. Verify the successful startup of the server by switching to the Console View
and making sure that in includes following log entry.
WSVR0001I: Server server1 open for e-business
456
3. Right-click the WebSphere Process Server v6.0 runtime and select Add and
Remove projects as shown in Figure 6-178.
457
4. In the project selection window, click Add All to move both applications to the
right side. Then, click Finish to deploy the applications as shown in
Figure 6-179.
458
459
460
8. After invoking the component, the Test Client displays the message return
parameter with value User ITSOUSER exists as shown in Figure 6-182.
6.8.4 Conclusion
This extension demonstrates how you can use the WebSphere Process Server
to consume a Web Service from the SAP Exchange Infrastructure.
From the SAP Exchange Infrastructure perspective, the configuration does not
care whether the consuming client is WebSphere Enterprise Service Bus or
WebSphere Process Server. Also, in the WebSphere side, creating the Web
Service import from a WSDL file is similar both in standard modules as well as in
Mediation Modules. For demonstration purposes, this extension scenario
combines both types of modules. It is a combination of SCA imports and exports.
However, the Web Service call can be also made directly from the business
process (or from any other WebSphere Process Server specific component)
without the usage of a Mediation Module.
461
SAP Exchange
Infrastructure 3.0 SP18
Module
ITSOSAPXI2WPS_WS
BAPI_USER_GETLIST
RFC
ItsoSoapInboundScenario
SOAP/
Mediation Module
HTTP
ITSOSAPXI2ESB_WS
6.9.2 Development
This section describes how to modify the ITSOSAPXI2ESB_WS Mediation
Module and how to implement the ITSOSAPXI2WPS_WS module.
462
463
2. In the window that opens, enter ITSOSAPXI_WS_Lib in the Library name field
and use the default location for library as shown in Figure 6-185.
464
4. In the Dependency Editor, using the Add button add the ITSOSAPXI_WS_Lib
library to the list of required libraries and verify that the Deploy with Module
option is selected as shown in Figure 6-187.
5. Save the changes by pressing Ctrl+S and then close the Dependency Editor.
465
466
467
3. Select the Import node from palette and place it on the diagram. Rename it to
UserListProcess_Import as shown in Figure 6-192.
468
4. Using the Wiring tool from the palette, create a wire from the
UserList_MediationFlow component to the UserListProcess_Import. If
prompted, click OK to create a matching interface on the target node as
shown in Figure 6-193.
Figure 6-193 Create a wire from the mediation flow to the import
5. Save the changes by pressing Ctrl+S and then close the Assembly Editor.
469
470
5. In the Depedency Editor, use the Add button to add the ITSOSAPXI_WS_Lib
library to the list of required libraries. Make sure that the Deploy with Module
option is selected as shown in Figure 6-196.
6. Save the changes by pressing Ctrl+S and then close the Dependency Editor.
471
4. Select the UserListIF interface from the list and click OK as shown in
Figure 6-199.
472
8. In the Business Process Editor, select the Invoke node from the palette and
place it between the Receive and Reply nodes as shown in Figure 6-201.
473
10.Select the Invoke Java node and switch to the Details tab of the Properties
View. Click Browse as shown in Figure 6-203.
474
475
12.In the Details tab of the Properties View, click the button which is located in
the right side of the request input parameter as shown in Figure 6-205.
Figure 6-205 Define the variable for the request input parameter
476
13.Select the Request variable from the list and click OK as shown in
Figure 6-206.
14.n the Details tab of the Properties View, click the button which is located in
the right side of the response input parameter.
15.Select Response for the response output parameter.
16.Save the business process by pressing Ctrl+S and then close the Business
Process Editor.
17.Save the Assembly Diagram by pressing Ctrl+S.
477
478
3. In the window that opens, enter com.ibm.itso.sg247220 in the Name field and
click Finish to create the Java package as shown in Figure 6-209.
479
480
7. Select the Java component from the palette and place it on the diagram as
shown in Figure 6-212.
481
482
11.In the window that opens, enter UserListService_JavaImpl in the Name field
and click OK as shown in Figure 6-215.
Figure 6-216 Create a wire from the process component to the Java component
483
Figure 6-218 shows the assembly diagram after you generate the export.
484
485
3. Select the UserListProcess_Import node and switch to the Binding tab of the
Properties View. Click Browse as shown in Figure 6-221.
4. From the SCA Export Selection list select the UserList_ProcessExport and
click OK as shown in Figure 6-222.
5. Save the changes by pressing Ctrl+S and then close the Assembly Editor.
486
6.9.3 Testing
This section demonstrates how to test the extension.
487
5. In the project selection window, click Add All to move both applications to the
right side. Then, click Finish to deploy the applications as shown in
Figure 6-224.
488
489
The validation error shown in Example 6-4 is caused by a relative path reference
in the UserListIF.wsdl file. This relative path is generated by WebSphere
Integration Developer when the interfaces and Business Objects are been
moved from the Mediation Module to the library module. To correct this error,
follow these steps:
1. In the Java perspective, right-click the UserListIF.wsdl file and select Open
With WSDL Editor as shown in Figure 6-225.
490
3. If the WSDL file includes directives with relative paths to the XSD files as
shown in Example 6-5, remove the path from the schemaLocation attribute as
shown in Example 6-6.
Example 6-5 Include directives with relative paths
<xsd:include
schemaLocation="../ITSOSAPXI_WS_Lib/UserListResponseBO.xsd"/>
<xsd:include
schemaLocation="../ITSOSAPXI_WS_Lib/UserListRequestBO.xsd"/>
Example 6-6 Include directives without a path
<xsd:include schemaLocation="UserListResponseBO.xsd"/>
<xsd:include schemaLocation="UserListRequestBO.xsd"/>
4. Save the changes to the WSDL file and deploy the application again.
491
4. In the Test Function Module: Initial Screen view, set the fields as follows
(Figure 6-228):
a. Enter ITSO_XI_TO_ESB in the RFC target sys field.
b. Enter 3 in the MAX_ROWS field.
c. Enter X in the WITH_USERNAME field.
5. Click Execute to execute the function call and to open the result view.
492
6. In the Test Function Module: Result Screen view, click the button located in
left side of the 3 Entries column of the USERLIST Result row. This opens the
USERLIST result set as shown in Figure 6-229.
7. Double-click the USERLIST result entries to open the details of this structure.
493
6.9.4 Conclusion
This extension demonstrates how you can use the SAP Exchange Infrastructure
to consume a Web Service from the WebSphere Process Server. From the SAP
Exchange Infrastructure perspective, the changing of runtime from WebSphere
Enterprise Service Bus to WebSphere Process Server is transparent because
the original Mediation Module is included in the extension as a mediating
component.
494
Chapter 7.
JMS-based integration
scenarios between
WebSphere Enterprise
Service Bus and SAP
Exchange Infrastructure
This chapter describes how to integrate WebSphere Enterprise Service Bus and
WebSphere Process Server with SAP Exchange Infrastructure using Java
Message Service technology. It covers different integration scenarios using SAP
Exchange Infrastructure both as a JMS provider and JMS consumer in
combination with WebSphere Enterprise Service Bus and WebSphere Process
Server. We discuss each scenario in detail by describing its architecture, the
required configuration, development steps, and testing.
The chapter includes the following topics:
System landscape on page 496
Scenarios overview on page 497
Preparation on page 498.
495
ITSO_SAP_2
WebSphere MQ 6,0
Microsoft Windows XP Professional SP2
ITSO_SAP_3
SAP ERP Central Component
5.0
DB2 Enterprise Server Edition
V 8.2
496
The environment includes one node for the WebSphere software (ITSO_IBM_1)
and two nodes for the SAP software (ITSO_SAP_2 and ITSO_SAP_3):
ITSO_IBM_1 node includes the WebSphere Enterprise Service Bus, the
WebSphere Process Server, and the WebSphere Integration Developer
toolkit.
ITSO_SAP_2 node includes the SAP Exchange Infrastructure and the related
tools and databases.
ITSO_SAP_3 node includes the SAP ERP back-end system and databases
of business applications.
Attention: This configuration is the setup that we use for this book. The
operating system and version number of products might be different in your
environment. Always apply the latest fix pack.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
497
7.3 Preparation
The scenarios access SAP Exchange Infrastructure using Java Message
Service. There are common preparation steps for all scenarios. You need to
install WebSphere MQ 6.0 software and configure a foreign bus in both
WebSphere Enterprise Service Bus and WebSphere Process Server. We do not
discuss how to install WebSphere Enterprise Service Bus, WebSphere Process
Server, WebSphere Integration Developer, and WebSphere MQ 6.0 in this book.
Check the product documentation if you do not have these products installed.
498
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
499
500
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
501
7. Enter Itso_ForeignBus as name of the new foreign bus and click Next as
shown in Figure 7-6.
502
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
503
11.Click the Save link to apply the changes to the master configuration
(Figure 7-10).
12.Click Save to update the master repository with the changes as shown in
Figure 7-11.
504
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
505
506
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
507
508
c. Enter the data for the foreign bus name and the queue manager name
(Figure 7-17) as shown in Table 7-1. Then, click Next.
Table 7-1 WebSphere MQ link properties
Name
Itso_MQLink
Itso_ForeignBus
Itso_ESBAppBus
The Queue manager name is the name of the virtual queue manager that
is associated with the messaging engine and by which the messaging
engine is known to a remote WebSphere MQ network.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
509
d. Enter or select the values shown in Table 7-2 to create the sender MQ
channel (Figure 7-18). Then, click Next.
Table 7-2 Sender channel properties
510
Itso_BusToMQ
Host name
localhost
Port
3414
Transport chain
OutboundBasicMQLink
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
511
e. Enter the Receiver MQ channel name as shown in Figure 7-19. Then, click
Next.
512
g. Click the Save link to apply the changes to the master configuration
(Figure 7-21).
h. Click Save to update the master repository with the changes as shown in
Figure 7-22.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
513
Configuring WebSphere MQ
To configure WebSphere MQ, follow these steps:
1. Define the queue manager:
a. In the WebSphere MQ Explorer, right-click the Queue Managers folder
and select New Queue Manager.
b. Enter ItsoQmgr2 in the Queue manager name entry, then click Next.
c. Accept the default settings and click Next.
d. Enter the value 3414 in the Listen on port number field and then click
Finish (Figure 7-23).
Note: Check whether the port 3414 is available by issuing the netstat -a
command. If the port is already in use, then select a different port and use
that port.
514
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
515
516
Transmission Protocol
TCP/IP
Connection Name
localhost(5559)
Transmission Queue
Itso_XQESBAppBus
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
517
518
ESB 6.0.1.2
SAP XI
SAP
MQ6
ESB2XI_Request
ITSOESB2SAPXI_JMS
BAPI_USER_EXISTENCE_CHECK
XI2ESB_Response
ITSO_IBM_1
ITSO_SAP_2
ITSO_SAP_3
Attention: This is the setup that we use for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
519
7.4.2 Configuration
This section describes how to:
Create the WebSphere MQ queues (request and response queues) that is
needed to communicate with SAP Exchange Infrastructure.
Create the destinations and JMS resources in WebSphere Enterprise Service
Bus.
520
Remote queue
XI2ESB_Response
Itso_ESBAppBus
Transmission queue
Itso_XQESBAppBus
e. The dialog box now looks similar to that shown in Figure 7-29. Click Finish
to complete the creation of the remote queue definition.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
521
522
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
523
f. Save the changes by clicking the Save link as shown in Figure 7-35.
524
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
525
526
i. Save the changes by clicking the Save link as shown in Figure 7-40.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
527
528
e. Enter true as a Context value as shown in Figure 7-43. Then, click OK.
f. Save the changes by clicking the Save link. Then, confirm the changes by
clicking Save.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
529
530
Name
ESB2SAPXI_CF
JNDI name
jms/ESB2SAPXI_CF
Bus name
SCA.APPLICATION.esbCell.Bus
ESB2XI_Request
JNDI name
jms/ESB2XI_Request
Queue name
ESB2XI_Request
Bus name
SCA.APPLICATION.esbCell.Bus
XI2ESB_Response
JNDI name
jms/XI2ESB_Response
Queue name
XI2ESB_Response
Bus name
SCA.APPLICATION.esbCell.Bus
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
531
7.4.3 Development
This section describes how to create a Mediation Module that communicates with
SAP Exchange Infrastructure using a JMS binding. It explains how to complete
the following tasks:
Creating a new library project that includes the schema that are imported for
SAP Exchange Infrastructure.
Creating a Mediation Module.
532
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
533
534
3. Click Next.
4. Click Browse on the same line as the From directory.
5. Browse to the directory where the schemas are located. In this scenario, the
directory is C:\ITSO.
6. Click OK.
7. Select BapiUserExistenceCheckQuery_MT.xsd and
BapiUserExistenceCheckResponse_MT.xsd, as shown in Figure 7-49.
8. Click Finish.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
535
3. Deselect Default.
4. Enter http://ibm.com/itso/sg247220/esb as Namespace.
5. Name the new interface UserQueryResponseInterface as shown in
Figure 7-51.
536
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
537
e. In the Interface editor pane, select the userQueryResponse and click the
Add Output icon as shown in Figure 7-56.
538
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
539
540
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
541
542
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
543
544
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
545
546
d. After wiring the operations, the request flow open. Wire the
UserQueryResponseInterface_userQueryResponse_Input to the in terminal
of UserQueryResponseInterfacePartner_userQueryResponse_Callout as
shown in Figure 7-72.
9. After wiring the request flow, do the same with the response flow:
a. In the mediation flow editor, click the Response tab as shown in
Figure 7-73.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
547
b. Wire
UserQueryResponseInterfacePartner_userQueryResponse_CalloutResponse
to UserQueryResponseInterface_userQueryResponse_InputResponse as
shown in Figure 7-74.
10.After implementing the mediation flow, open the Assembly Diagram and wire
UserExist_JMSMediationFlow to UserExist_JMSImport as shown in
Figure 7-75.
548
2. At the Configure JMS Import Service dialog box, follow these steps:
a. Select Configure new messaging provider resources.
b. Select Business Object XML using JMS TextMessage as a
Serialization type.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
549
550
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
551
552
3. Select the ITSOESB2SAPXI_JMS project on the left and click Add to move it
to right.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
553
554
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
555
556
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
557
7.4.6 Conclusion
This scenario demonstrates how you can use WebSphere Enterprise Service
Bus as a JMS consumer in a context where SAP Exchange Infrastructure acts as
a JMS provider. From the WebSphere Enterprise Service Bus perspective, SAP
Exchange Infrastructure as the JMS provider provides schemas of the Message
Types that are imported into WebSphere Enterprise Service Bus as Data Types.
558
SAP
SAP XI
MQ6
ESB 6.0.1.2
X12ESB_Request
BAPI_USER_GETLIST
ITSOSAPX12ESB_JMS
ESB2XI_Response
ITSO_SAP_3
ITSO_SAP_2
ITSO_IBM_1
Attention: This is the setup that we use for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
559
7.5.2 Configuration
This section describes how to:
Create the WebSphere MQ queues (request and response queues) that are
needed to communicate with SAP Exchange Infrastructure.
Create the destinations and JMS resources in WebSphere Enterprise Service
Bus.
560
Remote queue
XI2ESB_Request
Itso_ESBAppBus
Transmission queue
Itso_XQESBAppBus
e. The dialog box opens as shown in Figure 7-89. Click Finish to complete
the creation of the remote queue definition.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
561
562
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
563
f. Save the changes by clicking the Save link. Confirm the changes by
clicking Save.
564
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
565
566
7. Save the changes by clicking the Save link. Confirm the changes by clicking
Save.
After creating the alias destination EBS2XI_Response, the next task is to create
MQRFH2 headers. Follow these steps:
1. Return to EBS2XI_Response general properties.
2. Click the Context properties link as shown in Figure 7-98.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
567
6. Save the changes by clicking the Save link. Confirm the changes by clicking
Save.
568
SAPXI2ESB_CF
JNDI Name
jms/SAPXI2ESB_CF
Bus Name
SCA.APPLICATION.esbCell.Bus
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
569
c. Click New.
d. In the create dialog box, enter or select the values as shown in Table 7-10.
e. Click OK.
Table 7-10 XI2ESB_Request JMS properties
Name
XI2ESB_Request
JNDI name
jms/XI2ESB_Request
Bus name
SCA.APPLICATION.esbCell.Bus
Queue name
XI2ESB_Request
ESB2XI_Response
JNDI name
jms/ESB2XI_Response
Bus name
SCA.APPLICATION.esbCell.Bus
Queue name
ESB2XI_Response
570
SAPXI2ESB_AS
JNDI name
eis/SAPXI2ESB_AS
Destination type
Queue
jms/XI2ESB_Request
7.5.3 Development
This section describes how to create a Mediation Module that communicates
with SAP Exchange Infrastructure when WebSphere Enterprise Service Bus is
acting as a JMS provider.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
571
6. Open the module in the Assembly Editor. Select the default mediation module
Module1 and change the name of it to UserList_JMSMediationFlow.
572
2. In the Business Object window, set the values as shown in Table 7-13.
Table 7-13 UserInfo business object properties
Default
Unchecked
Namespace
http://itso.ibm.com/sg247220/UserInfo
Folder
Leave blank
Name
UserInfo
Inherit from
<none>
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
573
574
4. The UserInfoBO opens in the Business Object Editor. In the business object
editor, right-click UserInfoBO and select Add Attribute as shown in
Figure 7-105.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
575
7. From the Properties view, specify that the attribute is mandatory by selecting
Required as shown in Figure 7-107.
576
Type
Required
firstName
string
no
lastName
string
no
fullName
string
no
http://itso.ibm.com/sg247220/UserListRe
questBO
Folder
Leave blank
Name
UserListRequestBO
Inherit from
<none>
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
577
578
Name
Type
Required
amount
int
yes
includeName
boolean
yes
http://itso.ibm.com/sg247220/UserListResponseBO
Folder
Leave blank
Name
UserListResponseBO
Inherit from
<none>
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
579
580
Name
Type
Array
userList
UserInfoBO
yes
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
581
582
8. In the Interface Editor, select the getUserList operation and click the Add
Input icon.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
583
Figure 7-116 Set the Name and the Type of the input parameter
10.In the Interface Editor, select the getUserList operation and click the Add
Output icon.
11.Set the Name to useroutput and the Type to UserListResponseBO as shown
in Figure 7-117.
Figure 7-117 Set the Name and the Type of the output parameter
584
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
585
586
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
587
588
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
589
590
6. After wiring the Operations, the request flow appears (Figure 7-129).
Implement the request flow by following these steps:
a. For logging purpose select the Message Logger from the left palette and
drag-and-drop on the panel then a MessageLogger1 component is
created.
b. Right-click MessageLogger1 and select Show in Properties.
c. In the Properties View, select the Details tab and enter a slash (/) as Root.
d. Wire the UserListInterface_getUserList_Input to the in terminal of
MessageLogger1.
e. Wire the MessageLogger1 out terminal to the in terminal of
UserListInterfacePartner_getUserList_Callout.
7. After wiring the request flow, do the same with the response flow. In the
mediation flow editor, go to the Response tab as shown in Figure 7-130.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
591
8. Then, implement the Response flow by following these steps (Figure 7-131):
a. To be able to log the response message that is generated by the Java
component, select the Message Logger from the left palette and
drag-and-drop on the panel then a MessageLogger1 component is
created.
b. Right-click MessageLogger1 and select Show in Properties.
c. In the Properties View, select the Details tab and enter a slash (/) as Root.
d. Wire UserListInterfacePartner_getUserList_CalloutResponse to the in
terminal of MessageLogger1.
e. Then wire MessageLogger1 out terminal to the in terminal of
UserListInterface_getUserList_InputResponse.
592
9. After implementing the Mediation Flow, open the Assembly Diagram and wire
the UserListJMS_Export to the UserList_JMSMediationFlow as shown in
Figure 7-132.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
593
594
b. In the next window, select the package where the Java implementation is
generated. To define a new package, click New Package as shown in
Figure 7-138.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
595
596
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
597
f. At this stage, the class still includes some errors due to types that cannot
be resolved. To solve this issue, right-click anywhere in the class and
select Source Organize imports as shown in Figure 7-141.
598
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
599
600
2. From the list of available perspectives select the Java perspective as shown
in Figure 7-145.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
601
4. Then select Java Java Project and click Next as shown in Figure 7-147.
602
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
603
604
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
605
606
3. From the Open Dependency Editor, click Add under Java as shown in
Figure 7-153.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
607
5. Make sure that Deploy with Module is set as shown in Figure 7-155.
608
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
609
610
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
611
612
4. After generating the JMS binding, click UserListJMS_Export and display the
component by right-clicking and selecting Show in Properties.
5. Specify the activation specification properties:
a. Click Binding Endpoint configuration.
b. Select Specify JNDI name for pre-configured messaging provider
resource.
c. Enter eis/SAPXI2ESB_AS in the JNDI Lookup Name field as shown in
Figure 7-160.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
613
614
9. Check the method binding and verify that the native method binding name
correspond to the name that is return by the custom selector that you defined
previously. Follow these steps:
a. Select Binding Method bindings.
b. Expand Bound Methods in the navigation tree.
c. Select getUserList. The dialog box now looks like Figure 7-164, where
the Native Method equals getUserList, which also corresponds to the
string that is return by the custom selector ITSOCustomSelector.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
615
616
3. Select the ITSOSAPXI2ESB_JMS project on the left and click Add to move it
to right as shown in Figure 7-166.
4. Click Finish to deploy the project ITSOSAPXI2ESB_JMS.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
617
Run rfhutil.exe.
Select the Main tab.
Enter ItsoQmgr2 as the Queue Manager Name.
Enter XI2ESB_Request as the Queue Name.
Click Read File and load the file ItsoSAPXI2ESB.xml.
618
b. Select the RFH tab and select Version 2 as the RFH Type as shown in
Figure 7-169.
5. Then select the Main tab and click Write Q to put the message in the
XI2ESB_Request queue.
6. The message is then processed by WebSphere Enterprise Service Bus,
which then generates the response message in the ESB2XI_Response
queue.
7. Read the response message:
a. Using rfhutil.exe, enter ItsoQmgr2 as Queue Manager and
ESB2XI_Response as Queue Name.
b. Select Start Browse.
c. Select the Data tab and XML as Data format.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
619
620
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
621
4. The result displays and the dialog box opens as shown in Figure 7-172.
622
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
623
624
7.5.7 Conclusion
This scenario demonstrates how you can use WebSphere Enterprise Service
Bus as a JMS provider so that it communicates with SAP Exchange
Infrastructure acting as a JMS client. In this scenario, you need a custom function
selector because there are missing JMS custom headers with the
TargetFunctionName property.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
625
WPS 6.0.1.2
SAP XI
SAP
MQ6
ITSOWPS2SAPXI_JMS
ESB2XI_Request
BAPI_USER_EXISTENCE_CHECK
ITSOESB2SAPXI_JMS
XI2ESB_Response
ITSO_IBM_1
ITSO_SAP_2
ITSO_SAP_3
Attention: This is the setup that we use for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
7.6.2 Configuration
For this scenario, use the same WebSphere MQ queues and create the same
destinations and JMS resources on the WebSphere Process Server V6.0 server
that we describe in 7.4.2, Configuration on page 520.
626
7.6.3 Development
This section describes how to create a process component that communicates
with the Mediation Module that you created in Scenario A.
The section includes the following steps:
Creating an SCA export of the Mediation Module that was used in scenario A.
Creating a Mediation Module for the process component.
Implementing the Business Process.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
627
628
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
629
2. Click Add.
3. From the Library Selection dialog box, select ITSO2SAPXI_JMSLib.
4. Click OK. The dependency editor looks as shown in Figure 7-183.
630
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
631
632
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
633
10.The Select an Interface dialog box now looks as shown in Figure 7-188. Click
Finish to complete the creation of the business process.
634
3. Set a Partner to the invoke activity by selecting the Invoke activity. Then, click
Set Partner to create a partner that is associated to the invoke activity as
shown in Figure 7-190.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
635
d. In the Properties View (lower pane), select the Details properties tab and
click Browse reference interface.
636
5. In the Business Process Editor, select the invoke activity and in the Properties
View select the Details tab.
6. In the Operation field, use the drop-down menu to select the operation
userQueryResponse.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
637
7. For the Input(s) variable, click the ellipses (...) button. At the Select variable
for UserInput prompt, select UserInput as shown in Figure 7-195. Then, click
OK.
638
8. For the Output(s) variable, click the ellipses (...) button. At the Select variable
for UserResponse prompt, select UserResponse as shown in Figure 7-196.
Then, click OK.
9. Examine the properties of the invoke activity for the business process using
the Figure 7-197.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
639
640
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
641
642
4. A window prompt opens. From this window prompt, select import with SCA
Binding as shown in Figure 7-201. Then, click OK.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
643
7.6.4 Deployment
The deployment to the WebSphere Process Server does not differ from the
deployment on a WebSphere Enterprise Service Bus. To deploy to WebSphere
Process Server, follow these steps:
1. Start the WebSphere Process Server from WebSphere Integration Developer
by selecting the Servers tab. Then, select WebSphere Process Server v6.0
server and right-click and select Start.
644
3. Select the project ITSOWPS2SAPXI_JMS on the left and click Add to move it
to right. Refer to Figure 7-204.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
645
This action starts the BPC Explorer, which is integrated in the WebSphere
Integration Developer environment (Figure 7-206).
646
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
647
7.6.6 Conclusion
This extension demonstrates how you can use WebSphere Process Server as a
JMS consumer in a context where SAP Exchange Infrastructure acts as a JMS
provider. From the SAP Exchange Infrastructure, the configuration does not
distinguish whether the JMS consumer is WebSphere Enterprise Service Bus or
WebSphere Process Server. For demonstration purposes, this extension
scenario reuses the Mediation Module that was created in scenario A. However,
the JMS import that was created in the Mediation Module can also be directly
created in the module.
648
SAP
SAP XI
SCA
X12ESB_Request
BAPI_USER_GETLIST
ITSOSAPXI2WPS_JMS
ESB2XI_Response
ITSO_SAP_3
ITSO_SAP_2
ITSO_IBM_1
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
649
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
7.7.2 Configuration
You can use the same WebSphere MQ queues and create the same
destinations and JMS resources on the WebSphere Process Server v6.0 server
that we describe in 7.5.2, Configuration on page 560.
7.7.3 Development
This section describes how to create a process component that communicates
with SAP Exchange Infrastructure. It includes:
Creating a Mediation Module for the process component that reuses the
same objects as described in scenario C.
Implementing the Business Process.
650
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
651
652
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
653
654
9. The Select an interface dialog box now looks like Figure 7-218. Click Finish
to complete the creation of the business process.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
655
2. Click under the Receive activity to add invoke to the business process.
3. Set a Partner to the invoke activity by selecting the invoke activity. Then, click
the Set Partner to create a partner that is associated to the invoke activity as
shown in Figure 7-220.
656
e. In the Properties View (lower pane), select the Details properties tab, and
click Browse for reference interface.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
657
5. In the Business Process Editor, select the invoke activity, in the Properties
View select the Details tab.
6. In the Operation field, use the drop-down menu to select the operation
getUserList.
658
7. For the input variable, click the ellipses (...) button. At the Select variable for
userinput prompt, select Userinput as shown in Figure 7-225. Then, click
OK.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
659
8. For the output variable, click the ellipses (...) button. At the Select Variable for
useroutput prompt, select Useroutput as shown in Figure 7-226. Then, click
OK.
9. Examine properties of the invoke activity for the business process using
Figure 7-227.
660
Figure 7-228 Drag-and-drop the business process onto the Assembly Diagram
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
661
7.7.4 Deployment
This section illustrates how to deploy the created Mediation Module in a
WebSphere Process Server environment. Follow these steps:
1. Start the WebSphere ESB Server from WebSphere Integration Developer by
selecting the Servers tab. Then, select WebSphere Process Server v6.0
server and right-click and select Start.
2. If the server is started, right-click WebSphere Process Server v6.0 and
select Add and remove projects as shown in Figure 7-231.
662
3. Select the project ITSOSAPXI2WPS_JMS on the left and click Add to move it
to right as shown in Figure 7-232.
4. Click Finish to deploy the project ITSOSAPXI2WPS_JMS.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
663
Run rfhutil.exe.
Select the Main tab.
Enter ItsoQmgr2 as Queue Manager Name.
Enter XI2ESB_Request as Queue Name.
Click Read File and load the file ItsoSAPXI2WPS.xml.
664
b. Select the RFH tab and select Version 2 as the RFH Type as shown in
Figure 7-235.
5. Then select the Main tab and click Write Q to put the message in the
XI2ESB_Request queue.
6. WebSphere Process Server then processes the message and generates the
response message in the ESB2XI_Response queue.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
665
666
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
667
4. The result displays and the dialog box now looks like Figure 7-238.
668
7.7.6 Conclusion
This extension demonstrates how you can use WebSphere Process Server as a
JMS provider in a context where SAP Exchange Infrastructure acts as a JMS
client. From the SAP Exchange Infrastructure the configuration does not
differentiate whether the JMS provider is WebSphere Enterprise Service Bus or
WebSphere Process Server.
Chapter 7. JMS-based integration scenarios between WebSphere Enterprise Service Bus and SAP Exchange Infrastructure
669
670
Chapter 8.
JMS-based integration
scenarios between
WebSphere Message Broker
and SAP Exchange
Infrastructure
This chapter documents in detail how to connect WebSphere Message Broker to
SAP Exchange Infrastructure using reliable communication that is based on JMS
with WebSphere MQ as a messaging provider. This topic is illustrated by means
of two scenarios in which WebSphere Message Broker acts as a Service
Provider as well as a Service Consumer.
We begin this chapter with an overview of the scenarios. After that, we provide a
short introduction of how to configure scenarios within Message Broker and then
give a detailed description of how to prepare the Message Broker environment.
Finally, we document the detailed configuration of the two scenarios, which you
can set up independently and run concurrently.
671
672
BapiUserExistenceCheckQuery_MT.xsd
WebSphere
Application
Server
SOAP
WebSphere
Message
Broker
SAP Exchange
Infrastructure
JMS
RFC
BapiUserExistenceCheckResponse_MT.xsd
UserListRequestBO.xsd
RFC
SAP Exchange
Infrastructure
JMS
WebSphere
Message
Broker
JDBC
DB2
UserListResponseBO.xsd
Note that from the perspective of WebSphere Message Broker, SAP Exchange
Infrastructure is just another JMS Service Consumer or Provider and vice versa,
connected by a contract that is defined in terms of XML schema files. The
description of both scenarios is self-contained, so that the reader can configure
them independently.
For a general overview of how to configure scenarios in WebSphere Message
Broker, see 8.2, An overview of how to configure scenarios in WebSphere
Message Broker on page 675.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
673
This environment rests upon the system landscape depicted in Figure 8-3.
WebSphere Message Broker and its components are installed on node
ITSO_IBM_2. For testing the JMS inbound scenario, DB2 Enterprise Server
Edition is installed on this node additionally. The test of the JMS outbound
scenario is triggered by a Web Service client that is deployed on a WebSphere
Application Server on node ITSO_IBM_3. Both JMS scenarios rely on SAP
Exchange Infrastructure running and configured on node ITSO_SAP_2 as well
as an SAP ECC instance on node ITSO_SAP_3.
ITSO_IBM_2
ITSO_SAP_2
WebSphere MQ Client
V 6.0
WebSphere MQ
V 6.0
ITSO_SAP_3
ITSO_IBM_3
674
Message flow
Configuration
Manager
Broker
Queue
Manager
Figure 8-4 Elements of configuring and executing a scenario using message broker
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
675
format, before it travels through the message flow along the connections
between the nodes which define the data and control flow. Along its way, a
message is manipulated before it is finally submitted using an output node.
Different mechanisms exist for implementing data and control manipulations
such as:
ESQL, which is an extension of the Structured Query Language (SQL).
Java with respective set of libraries for navigating and manipulating the
internal message tree.
Mapping nodes that support mappings of the fields of an input message to
those of an output message using graphical elements.
The structure of messages processed within a flow can be specified by a
message set. A message set comprises both a physical and a logical format
definition. The physical format defines the exchange format of a message, for
example Tagged Delimited Strings or XML. The logical format defines the actual
message structure in a message definition file. Associating a message set with
nodes of a message flows supports validation of the messages to be processed
by that flow.
The design elements introduced above are specified using the Message Brokers
Toolkit, which is an eclipse-based development environment providing special
editors and tools for defining message flows, message sets, and subsuming
them into projects.
In addition, the toolkit provides an administration perspective for deploying the
design artifacts on the broker, where they are actually executed. The Toolkit is
not directly connected to the broker but uses the configuration manager as a link
in between. The configuration manager stores configuration details in an internal
configuration repository providing a central store for the resources deployed on
the broker. The configuration manager then is responsible for deploying of
message flows to the broker.
Note that multiple brokers on different machines can be subsumed under one
broker domain in which case one and only one configuration manager is
responsible for storing all the configuration data and deploying to all the brokers
in the domain.
Finally, the communication between the toolkit, configuration manager and
broker is based on messaging using queues that are managed by a WebSphere
MQ queue manager. Also the predominant computational paradigm is based on
WebSphere MQ.
676
Configuration Manager
ItsoConnection
ItsoConfigMgr
Queue Manager
ItsoQmgr1
Database
brkdb2
Broker
ItsoBrk
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
677
3. In the Create Queue Manager dialog box, enter ItsoQmgr1 as the name of the
new queue manager, specify DEAD_LETTER_QUEUE as the dead letter queue of
the queue manager. Refer to Figure 8-7.
678
4. Click Next until step 4 is displayed. Select Create listener configured for
TCP/IP and enter 3414 as the listener port. Click Finish to create and start the
new queue manager. Refer to Figure 8-8.
5. Again in the WebSphere MQ Explorer, select the Queues folder of the new
queue manager ItsoQmgr1 and select New Local Queue from its context
menu as shown in Figure 8-9.
6. Enter the name DEAD_LETTER_QUEUE and click Finish as shown in Figure 8-10.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
679
7. Repeat the previous two steps to create the queues as listed in Table 8-1.
Table 8-1 Local Queues required for the scenarios
Queue name
Scenario
WMB2XI_Request
ItsoConsumeJmsServiceFromXi
XI2WMB_Response
ItsoConsumeJmsServiceFromXI
STORE_CALL_STATE
ItsoConsumeJmsServiceFromXI
XI2WMB_Request
ItsoProvideJmsServiceToXi
WMB2XI_Response
ItsoProvideJmsServiceToXi
8. Open the folder Advanced in the left pane of the WebSphere MQ Explorer,
click Channels and select New Server-connection Channel from its
context menu as shown in Figure 8-11.
9. Enter all.clients as the name of the new channel (Figure 8-12) and click
Next.
680
10.Select MCA in the all.clients - Properties dialog box and enter a name of a
local operating system user, here mymquser, under which the message
channel agent of this channel runs (Figure 8-13). Ensure that the user is a
member of the local groups mqm and mqbrks. Click Finish.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
681
5. Start the configuration manager and broker, using the following commands:
mqsistart ItsoConfigMgr
mqsistart ItsoBrk
Alternatively, you can use the services entry from the operating systems
administrative console. Refer to Figure 8-14.
682
4. In the Domain dialog box, enter ItsoQmgr1 as the name of the queue
manager for the domain, together with its port 3414 as shown in Figure 8-17.
Click Next.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
683
7. Again, click Domain Connections and select New Broker from its context
menu. Refer to Figure 8-20.
8. In the Broker dialog box, enter ItsoBrk as the Broker name and ItsoQmgr1 as
the Queue Manager Name (Figure 8-21). Click Next.
684
A response message indicates whether the broker has been added to the
domain connection successfully. In addition, an entry to ItsoBrk is added to
the displayed domain connection in the Domains view. Refer to Figure 8-23.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
685
XI2WMB_Response
CheckNames
BapiUserExistenceCheckQuery_MT
BapiUserExistenceCheckResponse_MT
The flow, which is derived from the Web Service Host scenario that is provided
by the Message Brokers Toolkit samples gallery, consists of two paths. The first
path is initiated by a Web Services request that is received by a HTTP Input
node. The payload of the corresponding SOAP request is defined by the
message definition file set CheckNames, which is taken as the base for
generating the WSDL ItsConsumeJmsServiceFromXi_Message_SetService.
The node Create_XI_Msg creates a message of type
BapiUserExistenceCheckQuery_MT from the payload of the SOAP request.
Using the MQOutput node WMB2XI_Request, the created message is put into
the queue with the same name as the output node. From there the message gets
consumed by the counterpart of the JMS outbound scenario in SAP Exchange
Infrastructure.
The header of the SOAP request is further processed by the node
Create_Response_Header that extracts a request/response context and stores it
in a queue STORE_CALL_HEADER as a temporary container. We explain this
mechanism in more detail later.
686
The second path of the message flow is triggered by an incoming message in the
queue represented by the MQInput node XI2WMB_Response. This message is
a response to executing the counterpart of the JMS outbound scenario in SAP
Exchange Infrastructure. Node RETRIEVE_CALL_STATE takes this response,
retrieves the corresponding request/reply context from the temporary container
and forwards both, the payload of the response message and the
request/response context to node Create_Response_Msg. There the actual
SOAP response message is created before it is finally returned using the HTTP
Reply node.
The construction of the message flow supports concurrent execution of Web
Services calls. Basic to this construction is the mechanism for calling and
retrieving the request/response header from the queue STORE_CALL_STATE
as illustrated in Figure 8-25.
Node Create_XI_Msg transforms an incoming request message A into a
message A of structure BapiUserExistenceCheckQuery_MT before it forwards it
to the queue WMB2XI_Request. When the message flow forwards message A
to node Create_Response_Msg, a new message C is derived there, which is
stored in queue STORE_CALL_HEADER. Message C includes
A field CorrelationID which is assigned the value of field MessageID of
message A
A request/response context from the header of the original message A
When a response B to request message A is received in queue
XI2WMB_Response, node RETRIEVE_CALL_STATE retrieves the message C
from STORE_CALL_STATE by means of the value of field CorrelationID.
Message C together with message B is forwarded to node
Create_Response_Msg where an appropriate response message B is
constructed.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
687
Request Message
Request A
WMB2XI_Request
Request A
...
...
MessageID
MessageID
Req/Resp-Context
...
...
STORE_CALL_STATE
Message C
Response Message
Response B
...
XI2WMB_Response
CorrelationID
Response B
Req/Resp-Context
...
CorrelationID
Req/Resp-Context
...
Get by CorrelationID
...
The next section provides a detailed description of how to configure the scenario.
688
2. Within the Message Broker Toolkit select New Message Set Project from
the file menu (Figure 8-26).
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
689
5. Define XML as the physical message format by selecting XML Wire Format
Name (Figure 8-29). The value XML1 is inserted as a default name for the
physical format. Click Finish.
690
The previous steps determined the physical format of the message set. Next
define its logical structure by importing the two XML schema files provided by
SAP Exchange Infrastructure.
7. Select the ItsoConsumeJmsServiceFromXI Message Set Project and select
File Import. Refer to Figure 8-31.
Figure 8-31 Start importing the XML schema files from SAP Exchange Infrastructure
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
691
8. In the Import dialog box, select File system as the import source and click
Next.
9. Navigate to the file system where you have stored the XML schema files
BapiUserExistenceCheckQuery_MT.xsd and
BapiUserExistenceCheckResponse_MT.xsd (see5.7.3, Exporting the XML
schema files on page 233) and select the files (Figure 8-32). Click Finish. As
a result, the two files are imported into the project folder.
692
10.Next, create a new message definition file from the imported XML schema
files. Select the message set project and select New Message Definition
File from its context menu as shown in Figure 8-33.
11.In the New Message Definition File dialog box, select XML schema file
(Figure 8-34) and click Next.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
693
Figure 8-36 Select target message set for new message definition file
694
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
695
17.Next create the message definition file CheckNames. Select File New
Message Definition File either from the context menu of the project or from
the file menu as shown in Figure 8-33 on page 693. This time, select Create a
new message definition file (Figure 8-40) and click Next.
696
Figure 8-41 Choose message set and file name for new message definition file
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
697
19.Leave xsd as the default Prefix, select Use target namespace and enter a
namespace, for example http://sg247220.itso.ibm.com (Figure 8-42). Click
Finish.
698
23.Still in the Message Definition Editor, select Elements and Attributes and
select Add Global Elements from its context menu as shown in Figure 8-46.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
699
24.A global element with a default name is added and highlighted. Rename it to
userName as shown in Figure 8-47.
25.Select the CheckNameIn in the Messages folder and select Add Element
Reference from its context menu as shown in Figure 8-48.
26.Select the new entry, which is created, and select tns:userName as shown in
Figure 8-49.
700
27.Repeat steps 20 to 26 and apply them to the entries shown in Table 8-2.
Table 8-2 Add message CheckNameOut
Messages
Types
Elements and
Attributes
Element
Reference
CheckNameOut
CheckNameOut
userExistsMsg
CheckNameOut
tns:userExistsMsg
28.Ensure that the result looks like Figure 8-50. Save the definition.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
701
The following steps document how to derive the WSDL for the Web Services
based frontend (refer to Figure 8-1 on page 673) from the message definition file
CheckNames.mxsd:
1. Start to create a new message definition file by selecting File New
Message Definition File either from the context menu of the project or from
the file menu (Refer to Figure 8-33). This time, select IBM supplied message
(Figure 8-51) and click Next.
Figure 8-51 Create a new message definition file with IBM supplied source
702
Figure 8-53 Select target message set and enter message definition file name
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
703
704
5. Keep all the defaults on the first window of the dialog box Message Category
File and click Next. On the next panel select the target message set, accept
cat1 category file and click Next. Figure 8-55 opens.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
705
7. As a result the file cat1.category is created and opened in the category editor.
Because you do not have to apply any changes, just close this file.
706
9. In the New WSDL Definition dialog box, select the message set
ItsoConsumeJmsServiceFromXi_Message_Set and click Next as shown in
Figure 8-58.
Figure 8-58 Select message set folder for new WSDL Definition
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
707
708
13.Select the SOAP/HTTP as the bindings (Figure 8-62) and click Next.
14.Finally, the service properties of the WSDL display as shown in Figure 8-63.
Ensure that the Port Address includes the correct host name. Click Finish.
15.As a result, the folder wsdl includes the generated WSDL file together with
the XML schema CheckName.xsd. Export the folder wsdl for building the
Web Services test client as described in 8.4.3, Testing the scenario on
page 733.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
709
710
4. Start creating a new message flow by selecting New Message Flow from
the file menu as shown in Figure 8-68.
Figure 8-69 Select project and name for new message flow
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
711
6. Open the new message flow in the Message Flow Editor, if it is not already
displayed there. Using the Palette in the left pane, add the following built-in
nodes to the canvas as shown in Figure 8-70.
712
7. During the next steps, the message flow template is adjusted to the business
needs. Start by selecting the Compute node and select Rename from its
context menu as shown in Figure 8-71. Enter Create_XI_Msg as the new node
name and click OK.
Compute
Create_XI_Msg
MQOutput
WMB2XI_Request
Compute1
Create_Response_Header
MQOutput1
STORE_CALL_HEADER
MQInput
XI2WMB_Response
MQGet
RETRIEVE_CALL_STATE
Compute2
Create_Response_Msg
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
713
9. Next create the connections between the various nodes. First, select the
HTTP Input node and select Create Connection from its context menu as
shown in Figure 8-72.
10.Select the Out terminal for the connection as shown in Figure 8-73 and click
OK. As shown in the figure, a node can have a different number of terminals
which can represent different results of processing in the node.
714
Terminal
Create_XI_Msg
Out
WMB2XI_Request
WMB2XI_Request
Out
Create_Response_Msg
Create_Response_Msg
Out
STORE_CALL_STATE
XI2WMB_Response
Out
RETRIEVE_CALL_STATE
RETRIEVE_CALL_STATE
Out
Create_Response_Msg
Create_Response_Msg
Out
HTTPReply
Note: The built-in nodes offer additional terminals for error, exception and
so on, to make the flow more resilient. However, these additional terminals
are not used here, because the main focus of the documented
configurations is on providing basic integration fucntionality.
The following steps define the properties of the input and output nodes and
customize the compute nodes.
13.Select the HTTP Input node and select Properties from its context menu as
shown in Figure 8-75.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
715
14.In the HTTP Input Node Properties dialog box, select Basic in the left pane
and assign /wassoap/servlet/router to the URL Selector field as shown in
Figure 8-76.
15.Click Default in the left pane and choose the values of the fields Message
Domain, Message Set, Message Type and Message Format from the
drop-down lists of the fields as shown in Figure 8-77. Click OK to save the
configurations.
716
16.Next customize the first compute node Create_XI_Msg. Click that node and
open Properties from its context menu. In the Compute Node Properties
dialog box, select Basic in the left pane and enter
SynchSoapToAsynchJmsFlow_Create_XI_Msg into the ESQL Module field as
shown in Figure 8-78. Click OK to save the configuration.
17.Again click Create_XI_Msg and select Open ESQL from the context menu
as shown in Figure 8-79.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
717
18.As a result, a template is created and opened in the ESQL editor. Change the
template to the code displayed in Figure 8-80. You can copy the ESQL
module from the Web material available to download (see Appendix A,
Additional material on page 1441).
718
For more information about ESQL and the logical tree structure refer to
Message Flows handbook which you can download from:
http://www-306.ibm.com/software/integration/wbimessagebroker/library/
19.Click node WMB2XI_Request and open Properties from its context menu. In
the MQOutput Node Properties dialog box select Basic in the left pane and
enter ItsoQmgr1 as queue manager and WMB2XI_Request as the queue name
as shown in Figure 8-81.
Figure 8-81 Set queue manager and queue name in properties of WMB2XI_Request
20.Select Advanced in the left pane. Set Transaction Mode to Yes and Message
Context to Default as shown in Figure 8-82. Click OK to save the
configuration.
Note: In contrast to the Web Services Host pattern, the request and
reply-to-queue properties are not configured in this scenario, because all
the queues to be used by SAP Exchange Infrastructure have to be
configured statically.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
719
720
23.Click the STORE_CALL_STATE node and select Properties from its context
menu. Set ItsoQmgr1 as Queue Manager Name and STORE_CALL_STATE as the
Queue Name in the MQOutput Node properties dialog box as shown in
Figure 8-85.
Figure 8-85 Set queue manager and queue name for STORE_CALL_STATE
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
721
24.Select Advanced in the left pane and set Transaction Mode to Yes and
Message Context to Default as shown in Figure 8-86. Click OK to save the
configuration.
722
26.Select Default in the left pane and specify the Message Domain, Message
Set, Message Type and Message Format of the messages to be processed
by this node as depicted in Figure 8-88. Click OK to save the configuration.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
723
724
33.Open the ESQL Editor from the context menu of the Create_Response_Msg
node and specify the module
SynchSoapToAsynchJmsFlow_Create_Response_Msg as shown in
Figure 8-95. You can copy the ESQL module from the Web material available
to download (see Appendix A, Additional material on page 1441).
The module constructs a SOAP response message from the payload of the
message received by the node XI2WMB_Response and the
request/response context as processed by RETRIEVE_CALL_STATE.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
725
726
2. Expand Broker Archives, select the folder Servers and select New
Message Broker Archive from its context menu as shown in Figure 8-97.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
727
3. Ensure that Servers is selected in the Message Broker Archive dialog box,
enter ItsConsumeJmsServiceFromXi as the name of the broker archive and
click Finish. Refer to Figure 8-98.
728
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
729
6. The compiled message flow and message set as a dictionary file are added to
the broker archive. Refer to Figure 8-101. Save and close the broker archive.
730
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
731
Figure 8-105 Select execution group where to deploy the bar file
11.As a result, the files that are included within the message broker archive
appears in the respective execution group folder. Refer to Figure 8-106.
The last step finished the definition of the message flow. Proceed with testing it
as described in the next section.
732
ItsoConsumeJmsServiceFromXi_Message_SetService.wsdl
WMB2XI_Request
BAPI_USER_EXISTENCE_CHECK
XI2WMB_Response
In the scenario documented here, the Web Services client is generated using
Rational Application Developer. As a graphical user interface for calling the Web
Services client, Java Server Pages are created as well and deployed on the
WebSphere Application Server.
Before actually performing the test, ensure that:
The message set and flow of scenario ItsoConsumeJmsServiceFromXi is
deployed on WebSphere Message Broker.
ItsoWmbJmsOutboundScenario is active on SAP Exchange Infrastructure.
The queues WMB2XI_Request and XI2WMB_Response exist on queue
manager ItsoQmgr1.
The SAP ECC instance is up and running.
To test the scenario:
1. Start the Rational Application Developer on node ITSO_IBM_3 by issuing
Start Programs IBM Rational IBM Rational Application
Developer V6.0 Rational Application Developer.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
733
Figure 8-108 Enable the Web Services Capabilities in the preferences dialog box
4. Select New Dynamic Web Project to create the project for the Web
Service client as shown in Figure 8-110.
734
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
735
7. In the Import dialog box, select File system as the import source and click
Next. Browse to the shared drive that includes the wsdl folder as exported
from the Message Brokers Toolkit (Refer to Figure 8-64 on page 709) and
select the folder (Figure 8-113). Click Finish.
8. Open the imported WSDL file in the WSDL-Editor and ensure that the entry
soap:address refers to node ITSO_IBM_2 and port 7080. Refer to
Figure 8-114.
736
9. Navigate to the imported WSDL file and select Web Services Generate
Client from its context menu as shown in Figure 8-115.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
737
10.In the Web Services Client dialog box, select Test the Web Service
(Figure 8-116) and click Next.
The previous step generates the proxy to the given WSDL file. In addition it
creates Java Server Pages for testing the client and deploys them on the
integrated WebSphere Application Server. After a successful deployment, the
JSP TestClient.jsp is displayed in the integrated Web browser.
738
12.For testing the JMS outbound scenario, click cat1 in the Methods pane, enter
a name of a user that is registered on the SAP ECC instance and click Invoke
as shown in Figure 8-118.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
739
UserListRequestBO
UserListResponseBO
XI2WMB_Request
WMB2XI_Response
ITSOUSDB
740
UserListRequestBO
amount
includeNames
UserListResponseBO
userList
username
UserInfoBO
firstName
lastName
fullName
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
741
5. Define XML as the physical message format by selecting XML Wire Format
Name as shown in Figure 8-124. The value XML1 is inserted as a default name
for the physical format. Click Finish.
742
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
743
Figure 8-127 Choose message set and file name for new message definition file
744
9. Leave xsd as the default Prefix, select Use target namespace and enter
http://itso.ibm.com/sg247220/UserListRequestBO as the Namespace as
shown in Figure 8-128. Click Finish.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
745
746
14.A local element with a default name is added and highlighted. Rename it to
amount and select int as its type from the drop-down list of the respective
field as shown in Figure 8-133.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
747
748
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
749
20.Rename the created element to username and leave the default string type.
Create additional three local elements firstName, lastName, and fullName as
shown in Figure 8-138. Ensure that the Min Occurs entry for those elements
includes a 0. Save and close the definition.
750
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
751
752
e. Set Min Occurs to 0 and Max Occurs to -1 for the element userList as
shown in Figure 8-144. Save the definition and close the editor.
The last steps finished the definition of the message set. Next export the
created message definition files as XML schema files to make them available
to SAP Exchange Infrastructure (see 5.8.2, Preparing the Integration
Repository for JMS inbound scenario on page 271).
25.Generate a folder xml-schema-files in the message set project as a
destination of generating the XML schema files.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
753
26.Select UserInfoBO.mxsd and select New XML Schema from its context
menu as shown in Figure 8-145.
Figure 8-146 Select destination folder where to generate the XML schema file
28.Apply the previous two steps to generate XML schema files for
UserListResponseBO.mxsd and UserListRequestBO.mxsd.
754
The XML schema files are ready for export to a shared file system, from where
they can be imported into the Integration Repository of the SAP Exchange
Infrastructure.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
755
4. Start creating a new message flow by selecting New Message Flow from
the file menu as shown in Figure 8-150.
Figure 8-151 Select project and name for new message flow
756
6. Open the new message flow in the Message Flow Editor, if it is not already
displayed there. Using the Palette in the left pane, add a MQInput, MQOutput
and Compute built-in node to the canvas as shown in Figure 8-152.
7. During the next steps, the message flow template is adjusted to the business
needs. Start by selecting the MQInput node and select Rename from its
context menu as shown in Figure 8-153. Enter XI2WMB_Request as the new
node name and click OK.
8. In the same way, click the MQOutput node, select Rename from the context
menu and enter WMB2XI_Response as the new node name.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
757
9. Next create the connections between the various nodes. First, select the
XI2WMB_Request and select Create Connection from its context menu as
shown in Figure 8-154.
10.Select the Out terminal for the connection as shown in Figure 8-155 and click
OK.
12.In addition, create a connection from the Out terminal of the node Compute to
WMB2XI_Response.
758
The following steps define the properties of the input and output nodes and
customize the Compute node.
13.Select the XI2WMB_Request node and select Properties from its context
menu. In the MQInput Node Properties dialog box, select Basic in the left
pane and enter XI2WMB_Request as the Queue Name as shown in
Figure 8-157.
14.Click Default in the left pane and associate the Message Type
UserListRequestBO with its respective domain, Message Set and Message
Format as shown in Figure 8-158. Click OK to save the configuration.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
759
15.Select the WMB2XI_Response node and select Properties from its context
menu. In the MQOutput Node Properties dialog box, select Basic in the left
pane and enter ItsoQmgr1 as the Queue Manager Name and
WMB2XI_Response as the Queue Name as shown in Figure 8-159. Click OK to
save the configuration.
16.Open the Properties dialog box of the Compute node and enter ITSOUSDB
into the field Data Source. This entry establishes the link to the database
ITSOUSDB including the test data. Leave all other defaults and click OK.
Refer to Figure 8-160.
760
17.Select the Compute node again and select Open ESQL from its context
menu as shown in Figure 8-161.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
761
The details of this code are beyond the scope of this book. Therefore only the
major logical steps are explained.
The operation CopyMessageHeaders copies all the header fields, in
particular the field JMSCorrelationID, of the request message to the response
message.
762
The Main function first constructs a string that includes the SELECT statement
for retrieving user data from the table USERLISTTB. The amount of user data
to be retrieved is determined by attributes of the request message.
Note that the request message is converted into an internal logical tree
structure whose root is denoted by InputRoot. In the same way, OutputRoot
refers to the root of the logical tree that represents the response message.
The PASSTHRU statement delivers the constructed SELECT string to the
database system for execution. The logical tree of the response message is
then populated by the result of this execution.
2. Expand Broker Archives, select the folder Servers and select New
Message Broker Archive from its context menu as shown in Figure 8-164.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
763
3. Ensure that Servers is selected in the Message Broker Archive dialog box,
enter ItsProvideJmsServiceToXi as the name of the broker archive as shown
in Figure 8-165 and click Finish.
764
6. The compiled message flow and message set as a dictionary file are added to
the broker archive. Refer to Figure 8-168. Save and close the broker archive.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
765
766
Figure 8-172 Select execution group where to deploy the bar file
11.The message flow is ready for testing as soon as the files that are included
within the message broker archive appear in the respective execution group
folder. Refer to Figure 8-173.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
767
The last step finished the definition of the message flow. Proceed with testing it
as described in the next section.
XI2WMB_Request
ItsoProvideJmsServiceToXi
ITSOUSDB
WMB2XI_Response
768
CREATE DB ITSOUSDB
CONNECT TO ITSOUSDB
CATALOG SYSTEM ODBC DATA SOURCE ITSOUSDB
CONNECT RESET
CONNECT TO ITSOUSDB
DROP TABLE USERLISTTB
CREATE TABLE USERLISTTB (USERNAME CHAR(15) NOT NULL, FIRSTNAME CHAR(25)
NOT NULL, LASTNAME CHAR(25) NOT NULL, FULLNAME CHAR(50) NOT NULL)
CONNECT RESET
TERMINATE
2. Execute db2start in a command window to ensure that DB2 is started.
3. Open a DB2 command window by executing Start Programs IBM
DB2 Command Line Tools Command Window
4. In the command window issue db2 -vf itsousdb.sql which executes the
commands within the file.
5. Create an additional file insertTestdata.sql that includes SQL statements for
inserting the test data into the table USERLISTDB, similar to the ones shown
in Example 8-2.
Example 8-2 insertTestdata.sql
CONNECT TO ITSOUSDB
insert into USERLISTTB VALUES ('saida', 'Saida', 'Davies', 'Saida
Davies')
insert into USERLISTTB VALUES ('sascha', 'Sascha', 'Schefenacker',
'Sascha Schefenacker')
insert into USERLISTTB VALUES ('clara', 'Clara Akiko', 'Matsuki',
'Clara Akiko Matsuki')
CONNECT RESET
TERMINATE;
6. Again in the DB2 command window issue db2 -vf insertTestData.sql to
execute the insert-statements within the file.
Having prepared the test database, open an SAP Logon to the SAP ECC
instance on ITSO_SAP_3 to actually execute the test.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
769
7. In the application SAP Easy Access choose transaction code se37 to open
the transaction Function Builder and click Enter (Figure 8-175).
770
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
771
10.The Test Function Module: Result Screen opens. The return data of the call
BAPI_USER_GETLIST are included in the table USERLIST as shown in
Figure 8-178.
772
11.To display the data that is returned, click the icon beside the value 3 Entries
(Figure 8-178). This opens the Structure Editor: Display USERLIST from
Entry panel and shows the actual data that is retrieved from the database
ITSOUSDB by means of the scenario ItsoProvideJmsServiceToXi
(Figure 8-179).
8.7 Conclusion
This chapter illustrated how to configure WebSphere Message Broker as a JMS
Service Provider and JMS Service Consumer to SAP Exchange Infrastructure.
This collaboration between the two middleware systems rests upon XML schema
files as interface contracts only. Thus, for message broker it is transparent that
the communication partner is SAP Exchange Infrastructure and vice versa.
The scenarios that we introduced are self-contained. You can use them as
showcases for collaboration based on open standards. In addition, you might use
them as patterns for more complex business scenarios. Even though not
demonstrated here, the one-way JMS communication can be treated as a
special case of the more general two-way request and reply pattern that was
investigated thoroughly during this chapter.
Chapter 8. JMS-based integration scenarios between WebSphere Message Broker and SAP Exchange Infrastructure
773
774
Chapter 9.
775
ITSO.SAP.COM
WebSphere Application
Server ND 6.0.2.9
WebSphere Enterprise
Service Bus 6.0.1.2
WebSphere Process Server
6.0.1.2
Microsoft Windows XP SP2
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
776
777
WID
TestClient
Mediation module
SOAP/HTTP response
WebService
enabled BAPI
BAPI_USER_EXISTENCE_CHECK
ITSO.IBM.COM
ITSO.SAP.COM
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
9.3.2 Preparation
This section shows how to expose the BAPI BAPI_USER_EXISTENCE_CHECK
as a Web Service and test this Web Service in SAP.
778
779
780
e. Click Display and select Yes in the Create Object dialog box as shown in
Figure 9-5.
f. Enter a Short Text for the package. Keep the default values as shown in
Figure 9-6. Click New.
h. Click Continue.
781
782
783
784
785
786
787
788
g. Save the Web Service definition and virtual interface within your selected
package as shown in Figure 9-15 by clicking Save.
789
790
The BAPI is now Web Service enabled and the WSDL file is available for the
Web Service consumer.
791
792
4. Enter a user name as input parameter, for example KTW, and click Send as
shown in Figure 9-22.
793
794
9.3.3 Configuration
To create a Web Service client for the SAP Web Service using WebSphere
Integration Developer and WebSphere Enterprise Service Bus V6, follow these
steps:
1. Start the WebSphere Integration Developer.
2. Close the Welcome page as shown in Figure 9-24.
795
796
797
798
c. Browse for the WSDL file as shown in Figure 9-28, for example
C:\ITSO\Z_BAPI_USER_EXISTENCE_CHECK_WS.wsdl and click
Finish.
799
800
801
802
10.Click the Import1 component, then click the Properties tab and the Bindings
tab as shown in Figure 9-33. Review the Endpoint address of the Web
Service.
803
804
Now the Mediation Module component includes the reference symbol and
looks as shown in Figure 9-36.
805
13.Move the mouse over the Reference symbol and wire it to the
CallWebService component. The Assembly Diagram Editor now displays as
shown in Figure 9-37.
806
807
808
809
Figure 9-43 The renamed Export component wired to the Mediation1 component
810
There two mappings are created. First the request flow mapping is done, then
the response flow mapping is implemented:
a. Drag-and-drop the userExistenceCheck operation to the
Z_BAPI_USER_EXISTENCE_CHECK operation.
b. Click the wire between userExistenceCheck and
Z_BAPI_USER_EXISTENCE_CHECK to open the flow editor.
c. Drop a XSL Transformation node to the editor and wire it as shown in
Figure 9-45.
i. Wire the out terminal of the Request node to the in terminal of the
XSLTransformation1 node.
ii. Wire the out terminal of the XSLTransformation1 node to the in
terminal of the Invoke node.
iii. The fail terminal is not wired in this implementation. If exceptions in the
XSLTransformation1 node are caught, then the fail terminal must be
wired. Because the fail terminal is not wired, exceptions are printed in
the SystemOut.log of the server. Also the Immediate Response node is
not wired. The Immediate Response node can be used if SAP is not
invoked but you want to send a response back to the caller; you can
think of implementing a more complex transformation where you check
the integrity of your input message first before sending it to SAP.
811
d. Click the XSLTransformation1 node and select the Properties tab and
the Details tab as shown in Figure 9-46.
e. Click New to create a XSLT implementation.
f. In the New XSLT Mapping dialog box, keep the values as shown in
Figure 9-47 and click Finish.
812
813
c. In the New XSLT Mapping dialog box, keep the values as shown in
Figure 9-50 and click Finish.
814
815
22.To call the Web Service in SAP the HTTP authentication settings for the Web
Service in the Deployment Descriptor of the application must be configured.
Therefore, SAP user ID and password are required. Follow these steps:
a. In WebSphere Integration Developer switch to the Resource perspective.
b. Click Window Open Perspective Other on the menu as shown in
Figure 9-52.
816
817
d. Open in the Navigator view the EJB Deployment Descriptor file ejb-jar.xml
in the ITSOWebSphere2SAPEJB folder by double-clicking as shown in
Figure 9-54.
818
h. Under HTTP basic authentication, enter the SAP password into the field
Password as shown in Figure 9-55.
819
820
6. Mark the CallWebService Emulator and click Remove. If the emulator is not
removed, the Web Service interface to SAP is not called. It would make
sense to keep the emulator, if only the mediation is tested without accessing
SAP. The test client view now looks as shown in Figure 9-57.
821
8. Enter a string value for the UserId field, for example ktw, as shown in
Figure 9-58.
9. Click Continue.
822
10.Select the Deployment Location, for example WebSphere ESB Server V6.0,
as shown in Figure 9-59 and click Finish.
11.After the test has finished, the test client displays the result as shown in
Figure 9-60.
9.3.5 Conclusion
In this section, we created an SAP Web Service based on the BAPI
BAPI_USER_EXISTENCE_CHECK. The SAP WSDL was imported into
WebSphere Integration Developer. Based on the SAP WSDL interface in
823
SOAP/HTTP request
SOAP/HTTP response
WebService
enabled RFC
ALE
IDOC_INBOUND_ASYNCHRONOUS
ITSO.IBM.COM
ITSO.SAP.COM
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
824
9.4.2 Preparation
This section describes how to:
Generate the Web Service in SAP
Configure ALE in SAP
Terminology
ALE is the acronym for Application Link Enabling and describes the loose
coupling of distributed SAP business applications. The key concept is an
asynchronous message based exchange of business data between distributed
applications.
ALE is a core SAP communication technology and included within any SAP
Basis system respectively SAP WebApplication Server.
825
2. Create the Web Service using the Web Service wizard. In transaction SE80,
right-click the package, for example Z_ITSOPACKAGE, and select Create
Enterprise Service / Web Service Web Service as shown in Figure 9-62.
Note: Names of custom objects in SAP have to start with the letter Z.
826
827
828
829
830
7. Save the Web Service definition and virtual interface within your selected
package as shown in Figure 9-67 by clicking Save.
831
The BAPI is now Web Service enabled and the WSDL file is available for the
Web Service consumer.
832
Configuring ALE
The SAP application must be configured to process inbound Idocs. This chapter
describes the step-by-step configuration of ALE. This section includes the
following configuration steps:
833
834
3. Click Create Model View. Enter a Short text, for example WASCON, and a
Technical Name, for example WASCON, for the Model View as shown in
Figure 9-72.
4. Select the Model View that was created and click Add Message Type.
a. Enter the name of the Logical System, for example WAS, into the Sender
field.
b. Enter the name of the SAP Logical System, for example BSCCLIENT800,
into the Receiver field.
c. Enter MATMAS into the Message type field as shown in Figure 9-73.
Figure 9-73 Transaction bd64: Add a message type to the model view
5. Click Save.
835
836
7. In the next panel keep the default values as shown in Figure 9-75 and click
OK.
837
838
9. Open transaction WE20 to check the Partner Profiles. Refer to Figure 9-77.
Now the SAP system is able to receive and process incoming IDocs of type
MATMAS from WebSphere through a Web Service call.
9.4.3 Configuration
This section presents the configuration steps for building and testing Web
Services clients for sending IDocs into SAP with IBM Rational Application
Developer and WebSphere Application Server V6. The clients are derived from a
WSDL, which is generated by SAP tools as described within the previous
839
sections. Given that Rational Application Developer together with the integrated
WebSphere Application Server V6 is up and running, perform the following
steps:
1. Create a Dynamic Web Project in Rational Application Developer by selecting
File New Dynamic Web Project as shown in Figure 9-78.
840
2. Name the project DeliverIDOC2SAP and click Finish as shown in Figure 9-79.
841
4. On the next panel, select File system and click Next as shown in
Figure 9-81.
5. Browse to the file location of the WSDL to be imported and open it. Select
Z_IDOC_INBOUND_ASYNCHRONOUS_WS.wsdl and click Finish.
842
843
844
9. Enter the parameters listed in Table 9-1 for first segment of the IDoc data
record IDOC_CONTROL_REC_40. Leave the other parameters blank.
Table 9-1 Parameters for the IDoc control record
Type
Value
Comment
TABNAM
EDI_DC40
MANDT
800
DOCREL
640
DIRECT
IDOCTYP
MATMAS05
MESTYP
MATMAS
STDMES
MATMAS
SNDPOR
XMLPORT
SNDPRT
LS
SNDPRN
WEBSPHERE
RCVPOR
SAPBSC
RCVPRT
LS
RCVPRN
BSCCLNT800
CREDAT
2006-10-03
CRETIM
09:09:09
1 = SAP outbound
2 = SAP inbound
845
10.Enter the parameters listed in Table 9-2 for the first IDOC_DATA_REC_40.
Table 9-2 Parameters for the first segment of the IDoc data record
Type
Value
SEGNAM
E1MARAM
MANDT
800
DOCNUM
Comment
leave blank
SEGNUM
000001
PSGNUM
000000
HLEVEL
02
Hierarchy level
SDATA
005200-265###########
19941111WILMS#######
19961125TORSTEN####
#KCEDPLQBG######XR
OH#C004#############
###########KGM
846
Name
Value
Length
MSGFN
005
MATNR
200-265
ERSDA
19941111
ERNAM
WILMS
12
LAEDA
19961125
AENAM
WILMS
12
PSTAT
KCEDPLQBG
15
LVORM
MTART
ROH
MBRSH
MATKL
004
27
MEINS
KGM
12.Enter the parameters given in Table 9-4 for the second segment of the IDoc
data record IDOC_DATA_REC_40.
Table 9-4 Parameters for the second segment of the IDoc data record
Type
Value
SEGNAM
E2MAKTM
MANDT
800
DOCNUM
Comment
leave blank
SEGNUM
000002
PSGNUM
000001
HLEVEL
03
Hierarchy level
SDATA
005EADDITIOVE#VXXL#
5924#NEW############
########EN
847
14.Review the Web Service response message for any errors. If the Web
Service call was successful, the request message is replied as response
message. Refer to Figure 9-85.
848
15.Log in to SAP and open transaction WE02 to check the IDoc status. If that
transaction has a status of 53, then it was posted successfully to the SAP
application. Refer to Figure 9-86.
849
17.Enter 200-265 into the Material field as shown in Figure 9-87 and click Enter.
850
19.Review the product description. It is now ADDITIOVE VXXL 5924 NEW. Refer to
Figure 9-89.
9.4.4 Conclusion
This scenario explained how to send an IDoc through the SOAP/HTTP protocol
into SAP. First, the RFC IDOC_INBOUND_ASYNCHRONOUS was exposed as
Web Service in SAP. Using this RFC any IDocs can be processed in SAP. Then
SAP ALE was configured to process inbound material Master IDocs. The SAP
Web Service definition file was imported from SAP into Rational Application
Developer and in a bottom up approach a J2EE Web Service client was created.
In this scenario we used the Web Services Explorer in Rational Application
Developer as client to send IDoc data through SOAP/HTTP into SAP.
851
the module created in scenario A through SCA binding. The BPC Explorer is
used as Web interface to administer the business process.
This is only a short introduction to one of the powerful features WebSphere
Process Server offers. For additional information refer to:
Technical Overview of WebSphere Process Server and WebSphere
Integration Developer, REDP-4041, which is available at:
http://www.redbooks.ibm.com/redpapers/pdfs/redp4041.pdf
Patterns: Serial and Parallel Processes for Process Choreography and
Workflow, SG24-6306, which is available at:
http://www.redbooks.ibm.com/redbooks/pdfs/sg246306.pdf
Mediation module
WebService
enabled BAPI
BAPI_USER_EXISTENCE_CHECK
ITSO.SAP.COM
ITSO.IBM.COM
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
9.5.2 Development
This section describes how to create a process component that communicates
with the Mediation Module created in Scenario A. The section includes the
following steps:
Create a library project for the interfaces
Create a Mediation module for the Process component
Implement the Business Process
852
853
854
855
c. Select in the Library Selection dialog box, the ITSOCommonLib and click
OK as shown in Figure 9-94.
856
5. Move the interface from the ITSOWebSphere2SAP project into the library.
857
858
8. Check that the interface was moved. Expand the Interface folder in the
ITSOCommonLib project and make sure the interface UserExistCheck is
available as shown in Figure 9-98.
859
860
861
862
863
864
865
866
867
868
869
870
19.Set the Username variable as Input and the ExistResponse variable as the
Output as shown in Figure 9-113.
871
872
873
874
You see the result in the BPC Explorer as shown in Figure 9-119.
Figure 9-119 The result is displayed in the field Process Output Message
875
9.5.5 Conclusion
In this scenario, the Mediation Module created in Scenario A, which maps a
simple interface to an SAP Web Service enabled BAPI, was deployed on
WebSphere Process Server. The mediation service was exposed as SCA
binding and called from a second module which contains a business process
implemented in WS-BPEL.
This scenario shows how to decouple the data transformation from the business
logic. The data transformation and back-end access can be changed without
affecting the business logic and vice versa. The Mediation Module containing the
data transformation can be reused from an amount of SCA and non-SCA
applications.
876
10
Chapter 10.
XML-based exchange of
IDocs between WebSphere
Application Server and
SAP WebAS
This chapter describes how to send an IDoc through the HTTP protocol in the
XML format from SAP to WebSphere Application Server. On WebSphere
Application Server, a simple servlet deploys that catches the IDoc from HTTP
and sends a status message back to SAP. This chapter also describes how to
build a SOAP bridge from WebSphere MQ to SAP using the SOAP/WebSphere
MQ implementation and an Axis Web service.
The chapter discusses the following topics:
System landscape on page 878
Scenarios overview on page 878
Scenario A: Sending an IDoc from SAP to WebSphere Application Server
using XML/HTTP on page 879
Scenario B: Build a WebSphere MQ to SAP bridge on page 903
877
ITSO.SAP.1
WebSphere Application
Server ND 6.0.2.9
WebSphere MQ 6.0
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
878
XML/HTTP request
XML/HTTP response
ITSO.IBM.COM
XML HTTP
Port
ALE
ITSO.SAP.COM
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
879
10.3.2 Preparation
This section describes the configuration steps in SAP:
Set up the RFC connection to WebSphere
Create a XML HTTP port
Configure ALE in SAP
880
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
881
Configuring ALE
You must configure the SAP application to process outbound Idocs. This chapter
describes step-by-step the configuration of ALE and includes information about
the following configuration steps:
882
6. Select as Content Type Text/XML as shown in Figure 10-5 and click Save.
A prompt for Workbench request pop-up window opens. SAP records information
whenever a user changes critical SAP system properties.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
883
884
4. Select the Model View that you created and click Add Message Type.
a. Enter BSCCLNT800 as the name of the SAP Logical System in the Sender
field.
b. Enter WEBSPHERE as the name of the Logical System in the Receiver field.
c. Enter MATMAS in the Message Type field as shown in Figure 10-8.
Figure 10-8 Transaction BD64: Add a message type to the model view
5. Click Save.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
885
886
7. In the next panel, keep the default values and click OK (Figure 10-10).
The summary displays. Note that no RFC ports are created and the default
XML port is used instead.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
887
9. Double-click MATMAS.
888
10.Set the Receiver port to XMLHTTP as shown in Figure 10-12 and save the
changes.
The SAP System is now configured to send MATMAS IDocs through the HTTP
port to external systems.
10.3.3 Configuration
To create a servlet in Rational Application Developer which receives the IDoc
from SAP and sends a status message back to SAP follow these steps:
1. Start the Rational Application Developer with a new workspace.
2. Close the Welcome page.
3. Create a new Project by clicking File New Project.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
889
890
5. Enter ITSOSAP2WebSphere as the Name for the project and click Finish as
shown in Figure 10-14.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
891
892
7. Select Servlet in the Web folder and click Next as shown in Figure 10-16.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
893
894
9. In the next panel of the Create Servlet dialog box, keep the default values as
shown in Figure 10-17 and click Finish.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
895
//the doPost method receives the IDOC over XML/HTTP from SAP and sends a status back
//to SAP
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
896
// doGet method is called by SAP during the connection test in transaction SM59
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//response message to SAP
response.setContentType("text/xml");
ServletOutputStream out = response.getOutputStream();
out.print("Connection to WebSphere Application Server established");
out.close();
System.out.println("******************************************");
System.out.println("*****Connection test request from SAP*****");
System.out.println("******************************************");
}
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
897
The servlet returns a status 200 to SAP, which means that SAP updates the
Status record to IDoc delivered to Port.
You can also consider to extend the servlet to send the ALEAUD IDoc to SAP to
update the Idoc Status, for example to IDoc processed. Therefore, you have to
set the ALEUAD IDoc to the IDoc number that you want to update and the status.
For information about how to send an Idoc into SAP, refer to Scenario A:
Sending an IDoc from SAP to WebSphere Application Server using XML/HTTP
on page 879.
898
10.3.4 Deployment
Deploying to the WebSphere Process Server does not differ from the deployment
on a WebSphere Process Server v6.0 or a WebSphere Enterprise Service Bus.
To deploy to WebSphere Application Server V6 start WebSphere Application
Server V6:
1. If the server is started, right-click the entry in the Server tab and select Add
and remove projects.
2. Add the project to WebSphere Application Server V6.
3. Select the module on the left and click Add to move it to the right.
10.3.5 Test
To test WebSphere Application Server V6:
1. Open the RFC Destination in transaction SM59.
2. Click Test connection as shown in Figure 10-21.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
899
Figure 10-23 The result of the connection test in WebSphere Application Server
900
4. After the connection test, send an IDoc from SAP to WebSphere Application
Server V6 as follows:
a.
b.
c.
d.
e.
f.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
901
902
b. Expand Control Rec. and notice that the IDoc has the status Data passed
to port OK. Refer to Figure 10-27.
The IDoc was sent out of SAP and into WebSphere Application Server V6
successfully.
10.3.6 Conclusion
An IDoc was sent through the HTTP protocol in the XML format from SAP to
WebSphere Application Server. On WebSphere Application Server a simple
servlet receives the IDoc from SAP and sent a status message back to SAP.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
903
Stand-alone
Java client
SOAP/MQ
sender
WebSphere MQ 6.0
SOAP/HTTP request
requestqueue
SOAP/MQ
listener
MQ/SAP
Bidge.java
SOAP/HTTP response
WebService
enabled RFC
ALE
responsequeue
IDOC_INBOUND_ASYNCHRONOUS
ITSO.IBM.COM
ITSO.SAP.COM
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
10.4.2 Preparation
This section describes how to:
Generate Web service in SAP
Configure ALE in SAP
904
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
905
906
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
907
908
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
909
8. Save the Web Service Definition and Virtual Interface within your selected
package as shown in Figure 10-34 by clicking Save.
910
The BAPI is now Web service enabled and the WSDL file is available for the
Web service consumer.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
911
Configuring ALE
The SAP application must be configured to process inbound Idocs. This chapter
describes the step-by-step configuration of ALE.
This chapter includes the following configuration steps:
912
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
913
4. Select the Model View that was created and click Add Message Type.
a. Enter WAS as the name of the Logical System in the Sender field.
b. Enter BSCCLIENT800 as the name of the SAP Logical System in the
Receiver field.
c. Enter MATMAS into the Message Type field as shown in Figure 10-40.
Figure 10-40 Transaction BD64: Add a message type to the model view
5. Click Save.
914
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
915
7. In the next panel, keep the default values and click OK (Figure 10-42).
916
8. The summary is displayed. Note that no RFC ports are created because we
use only inbound processing. Refer to Figure 10-43.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
917
9. Open transaction WE20 to check the Partner Profiles. Refer to Figure 10-44.
Now the SAP system is able to receive and process incoming IDocs of type
MATMAS from WebSphere through a Web service call.
918
10.4.3 Development
After the SAP system is configured, you can configure WebSphere MQ to use
SOAP, and you can develop the MQ/SAP bridge in the form of a Java Snippet. In
addition, you can implement a test client to test the Web service call through
WebSphere MQ.
This section describes the following steps:
Prerequisites
Configuring WebSphere MQ to use SOAP
Developing the MQ/SAP bridge Java Snippet and deploy it into WebSphere
MQ
Developing a stand-alone Java client to test the MQ/SAP bridge
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
919
Export
Z_IDOC_INBOUND_ASYNCHRONOUS_WS.wsdl
from SAP
Configuration
Import
Z_IDOC_INBOUND_ASYNCHRONOUS_WS.wsdl
into Rational Application Developer
Development
Import
com.ibm.sap.MQSAPBridge_Wmq.wsdl
into Rational Application Developer
920
Test
Prerequisites
The following software must be installed on the system:
WebSphere MQ V6
Microsoft .NET Framework 1.1 SDK
JAVA SDK 1.4.2
Rational Application Developer (optional)
setupWMQSOAP ITSO.QM
If a queue manager is specified that does not exist, the queue manager is
created. When the queue manager has been created or if it already exists, a
default response queue is created.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
921
922
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
923
Figure 10-48 Import the WSDL file from the file system
iii. Select the WSDL file from the folder where it is saved, for example
C:\ITSO, and click Finish.
924
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
925
g. In the Web Service client dialog box, keep the default settings and click
Finish.
926
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
927
3. Create the Java snippet that implements the Web service call to SAP:
a. Right-click the ITSO_MQSAPBridge folder and select New Class.
b. In the New Java Class dialog box, enter MQSAPBridge as the Name and
define a Package, for example com.ibm.sap.
c. Click Finish.
928
package com.ibm.sap;
import sap_com.document.sap.rfc.functions.*;
import sap_com.document.sap.rfc.functions.holders.*;
public class MQSAPBridge {
public static final String SCCSID = "@(#) @(#) com/ibm/sap/MQSAPBridge.java, soap,
p000, p000-L050512 1.8 06/09/19 18:12:58";
public String sendIdoc (String sdata_e1maram, String sdata_e2maktm) throws
Exception
{
String ret;
try {
//CREATE A WEB SERVICE PROXY
System.out.println("creating the proxy...");
Z_IDOC_INBOUND_ASYNCHRONOUS_WSProxy myProxy = new
Z_IDOC_INBOUND_ASYNCHRONOUS_WSProxy();
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
929
eDI_DC40.setSNDPOR(new Char10("XMLPORT"));//SENDERPORT
eDI_DC40.setSNDPRT(new Char2("LS"));//SENDERPARTNERTYPE
eDI_DC40.setSNDPRN(new Char10("WEBSPHERE"));//SENDERPARTNER
eDI_DC40.setRCVPOR(new Char10("SAPBSC"));//RECEIVERPORT
eDI_DC40.setRCVPRT(new Char2("LS"));//RECEIVERTYPE
eDI_DC40.setRCVPRN(new Char10("BSCCLNT800"));//RECEIVERPARTNER
eDI_DC40.setCREDAT(new Date("2006-10-03"));//CREATIONDATE
eDI_DC40.setCRETIM(new Time("09:09:09"));//CREATIONTIME
//END SET PARAMETERS OF IDOC CONROL RECORD
//ADD THE CONTROL RECORD TO A HOLDER TABLE
TableOfEDI_DC40 tableOfEDI_DC40 = new TableOfEDI_DC40 ();
tableOfEDI_DC40.setItem(0,eDI_DC40);
TableOfEDI_DC40Holder tableOfEDI_DC40Holder = new
TableOfEDI_DC40Holder(tableOfEDI_DC40);
930
tableOfEDI_DD40.setItem(1,eDI_DD40_e2maktm);
TableOfEDI_DD40Holder tableOfEDI_DD40Holder = new
TableOfEDI_DD40Holder(tableOfEDI_DD40);
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
931
932
iii. Repeat steps i and ii to add the initialization of the item variable also in
the TableOfEDI_DD40.java file.
iv. Then, replace the following line of code:
private sap_com.document.sap.rfc.functions.EDI_DD40[] item;
with this line of code:
private sap_com.document.sap.rfc.functions.EDI_DD40[] item =
new EDI_DD40[1];
Refer to Figure 10-55.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
933
934
b. In the Export dialog box, select JAR file and click Next as shown in
Figure 10-57.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
935
936
Now all required artifacts for the deployment into WebSphere MQ are
exported from Rational Application Developer into the file system.
4. Open a Command Prompt and switch to the folder C:\ITSO\com\ibm\sap.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
937
5. Execute the dir command to check that the exported files are available.
Figure 10-60 shows the output for the dir command.
938
7. Add other classes to the CLASSPATH variables that are required for
performing the WebSphere MQ deployment steps. Run
C:\WebSphereMQ\bin\amqwsetcp.cmd to set the CLASSPATH variable. Refer
to Figure 10-61.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
939
Visual Basic and C# proxy code with a suffix of Service. In this case
MQSAPBridgeService.cs and MQSAPBridgeService.vb.
Folder called Remote containing the Java client code in the appropriate
folder structure.
Script files to start and stop the listener. For a Windows system, they
are called startWMQJListener.cmd and endWMQJListener.cmd.
940
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
941
3. Right-click the imported WSDL as shown in Figure 10-63 and select Web
Services Generate Client.
942
4. In the Web Service Client dialog box, set the Client proxy type to Java proxy
as shown in Figure 10-64.
6. Create a Java class in the project. This class includes a main method, and it
acts as client that uses the generated Java proxy. Follow these steps:
a. Right-click the new created project ITSO_ClientApp and select New
Class.
b. In the New Java Class dialog box, enter ClientApp as a name for the
class.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
943
944
7. In the Java editor pane insert the code as shown in Figure 10-67.
8. Note that the packages com.ibm.sap.* are imported. Therefore, you must add
the project ITSO_MQSAPBridge to the Java Build Path of the
ITSO_ClientApp project. To add this project, follow these steps:
a. Right-click the ITSO_ClientApp and select Properties.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
945
b. In the Properties for ITSO_ClientApp dialog box, click Java Build Path
and click the Projects tab as shown in Figure 10-68. Select
ITSO_MQSAPBridge.
Figure 10-68 Add the ITSO_MQSAPBridge project to the Java Build Path
9. Switch to the Libraries tab to add the required WebSphere MQ libraries for
the project.
10.Add the jar files listed in Table 10-1 to the Java Build Path of the project by
using the Add External JARs option.
Table 10-1 Add the jar files to the Java Build Path
946
Library
Location
axis.jar
commons-discovery.jar
commons-logging.jar
jaxrpc.jar
saaj.jar
servlet.jar
wsdl4j.jar
com.ibm.mq.jar
com.ibm.mq.soap.jar
commonservices.jar
10.4.4 Testing
This section explains how to start ITSO_ClientApp to test the scenario.
ITSO_ClientApp calls the MQSAP_Bridge Web service through SOAP/MQ. The
MQSAP_Bridge sends an IDoc through SOAP/HTTP into SAP. The IDoc is
processed in SAP. To start ITSO_ClientApp:
1. In Rational Application Developer open the MQSAP_Bridge project.
2. Select Run Run As 3 Java Application as shown in Figure 10-69. The
IDoc data is sent through the Web service into SAP.
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
947
3. Check in the SAP transaction WE02 that the IDoc was processed
successfully (Figure 10-70).
Completing these steps means that the test was successfully performed. The
IDoc data was sent from the WebSphere stand-alone Java snippet over
SOAP/MQ to the MQSAP_Bridge service in WebSphere MQ. The
MQSAP_Bridge service transferred the IDoc data through SOAP/HTTP to SAP.
10.4.5 Conclusion
This scenario shows how to send an IDoc unparsed through WebSphere MQ into
SAP. Therefore, the RFC IDOC_INBOUND_ASYNCHRONOUS is exposed as
Web service in SAP. A stand-alone Java client puts a message on a queue using
SOAP/MQ. A Java Axis Web service deployed on WebSphere MQ served this
request and called the Web service exposed RFC
948
Chapter 10. XML-based exchange of IDocs between WebSphere Application Server and SAP WebAS
949
950
11
Chapter 11.
Adapter-based integration to
SAP: JCA Adapter
BAPI scenarios
This chapter provides an overview of the implemented scenarios and describes
the common preparations for all scenarios. It also includes the installation of the
WebSphere Adapter for SAP Software and the configuration of the WebSphere
Enterprise Service Bus and WebSphere Process Server. It describes the
development of the different scenarios that use the WebSphere Adapter to
connect to an SAP system through remote function calls. The scenarios include
single BAPI calls, multiple BAPI calls, transactional BAPI calls, and the use of a
remote function call to access SAP data directly.
You can enhance these scenarios with additional extensions. Extension A
explains the dynamic authentication feature of the WebSphere Adapter for SAP
Software (JCA Adapter). Extension B runs the Service Component Architecture
modules on WebSphere Enterprise Service Bus and WebSphere Process Server
using additional possibilities of the WebSphere Process Server.
951
ITSO.SAP.1
952
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
953
11.3 Preparation
The scenarios access SAP through the WebSphere Adapter for SAP Software
which is using SAP JCo. There are common preparation steps for all scenarios.
You need to install the WebSphere Adapter for SAP Software, and you need to
create a Java 2 Connector (J2C) Authentication Data Entry in the runtime
environment.
The procedure to install WebSphere Enterprise Service Bus, WebSphere
Process Server, WebSphere Integration Developer, and SAP JCo is not part of
this book. Check the product documentation if you do not have these products
installed.
954
955
956
4. You see the Welcome panel as shown in Figure 11-4. Click Next.
5. Read the software license agreement. If you accept the terms of the
agreement, select that option as shown in Figure 11-5 and click Next.
957
958
Important: Always apply the latest fix pack as explained in the product
documentation.
After you set up the WebSphere Adapter for SAP Software, you find two different
adapter resource files in the target directory.
/adapter/SAP/deploy/CWYAP_SAPAdapter.rar
Use this file if you want the adapter to perform ALE and BAPI processing
without local transaction support. In this case, the application provides the
local transaction support.
/adapter/SAP/deploy/CWYAP_SAPAdapter_Tx.rar
Use this file if you want the container (WebSphere Process Server) to control
local transaction support for BAPI processing. In this case, the adapter
participates in the local transaction started by the container.
959
960
961
962
963
v6.0 and click Start. Wait until the server status changes to Started. Refer to
Figure 11-13.
964
3. You do not need a user name to log in. Just click Log in as shown in
Figure 11-15.
965
966
967
b. Enter the data provided in the Table 11-1. Refer to Figure 11-18.
Table 11-1 User Credentials for the SAP System
Alias
SAPLogin
User ID
itsouser
Password
itso1
c. Click OK.
968
d. A new Entry, esbNode/SAPLogin, is in the list. Click the Save link to save
the master configuration and check whether the new entry is in the list.
Refer to Figure 11-19.
e. To make sure it is saved, click Save, which results in a new Entry with
esbNode/SAPLogin as J2C Authentication data name. Refer to
Figure 11-20.
3. Repeat steps 1 and 2 to configure the WebSphere Process Server v6.0 in the
same way.
969
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPSimpleBAPI
Adapter 6.0.1
RAR
TCP/SAPRFC
User Management
One call
BAPI_USER_EXISTENCE_CHECK
ITSO.IBM.1
970
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
11.4.2 Development
The section includes the following steps:
Creating a module with SAP call
Creating an Export
Creating a Mediation
971
972
3. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software, which you created in 11.3.3,
Deploying WebSphere Adapter for SAP Software on page 960 and click
Next as shown in Figure 11-24.
If you have previously run the Enterprise Service Discovery wizard, your
connection properties have been saved and appear when you expand the
adapter name node (click the plus symbol, +, next to the adapter name). You
can select the saved connection properties if you plan to connect to the same
SAP application as when you last ran the Enterprise Service Discovery
wizard.
4. In the Configure Settings for Discovery Agent window, Specify the adapter
configuration properties for connecting to SAP as provided in the Table 11-2.
Properties marked with an asterisk (*) are mandatory. Be sure to set the
Select Module property (under Metadata Properties) to the value BAPI.
Table 11-2 Credentials for the SAP System
Alias
SAPLogin
UserName
itsouser
Password
itso1
Client
800
System Number
00
ApplicationServerHost
ITSO.SAP.1
BAPI
973
5. You see the completed panel as shown in Figure 11-25. Click Next.
974
6. In the next window configure the used BAPI. Click Run Query as shown in
Figure 11-26.
If you receive an error the connection to the SAP system cannot be
established. Check whether there is a firewall between you and the server or
whether the logon credentials are correct.
975
7. Click the plus sign (+) before RFC and expand the tree structure. Then, select
Discover By Name as shown in Figure 11-27 but do not drill down further,
because a filter must be applied first.
8. Click Filter because in an SAP system there are usually a lot of BAPIs and
RFCs.
976
9. In the Filter Properties for Discover By Name window, enter the name of the
Remote Function Call (RFC) that you want to discover. You can include an
asterisk (*) as a wild card character at the beginning or end of the name to
indicate that you want to discover all SAP application components that
contain the specified name. Enter Discovery Criteria BAPI_USER* as shown in
Figure 11-28. Then, click OK to start the search.
977
10.Use the plus sign (+) before Discover By Name to expand the tree structure.
The structure only includes the filtered SAP Calls as shown in Figure 11-29.
978
979
12.This adds the selected BAPI in the Objects to be imported field as shown in
Figure 11-31. If there is the requirement to include multiple IDocs, repeat the
previous steps. Otherwise, click Next.
980
981
14.The next panel offers selection of the module where the new objects and
interfaces get saved (Figure 11-33). Click New to create a new module.
982
983
Attention: Do not fill the UserName and Password fields in this panel.
These fields were used for the development process before the J2C
Authentication Data Entry was supported. Now, the values stored in these
fields are not used, but they are readable in the module development in
clear text.
984
985
Creating an Export
To create an export, follow these steps:
1. Add an Export to the Assembly Diagram by using the palette to make the
SCA component callable from outside, as shown in Figure 11-38.
986
987
5. Use Add Input and name the Input username (Figure 11-42).
6. Use Add Output and name the output existResponse (Figure 11-43).
988
8. In the Assembly Diagram use the Wire tool and wire the bound interface to
the Mediation (Figure 11-45).
10.Use the Add Interface option for the Export. Refer to Figure 11-47.
989
11.In the window, select the new created Interface UserExist and click OK as
shown in Figure 11-48.
990
Creating a Mediation
To create a Mediation, follow these steps:
1. Right-click Mediation1 and select Generate Implementation as shown in
Figure 11-49.
991
3. The Mediation Flow Editor opens. Just connect the checkUser operation from
the newly created interface with the retrieveSapexist_Wrapper operation from
the SAP interface through drag-and-drop. Refer to Figure 11-51.
992
993
994
8. This opens the mediation editor. Open the tree structures and assign the
username on the left through drag-and-drop to the Username on the right.
Refer to Figure 11-56.
9. This drag-and-drop adds the mapping to the overview section (Figure 11-57).
995
10.Save and Close the XSL Transformation. In the Mediation Flow Editor, switch
to the Response configuration, as shown in Figure 11-58.
11.Create a similar XSL Transformation for the response. Just map the Message
[0..1] to the existResponse, as shown in Figure 11-59.
12.In the detail properties of both XSL Transformation, click Regenerate XSL as
shown in Figure 11-60.
996
13.Both times a Message window displays as shown in Figure 11-61. Click OK.
997
15.Click Project in the menu and check whether your WebSphere Integration
Developer is configured to Build Automatically as shown in Figure 11-63. If
not, start the Build Project.
998
11.4.3 Deployment
This section illustrates how to deploy the created SCA module in a WebSphere
Enterprise Service Bus environment. The same deployment for the WebSphere
Process Server is illustrated in 11.9.3, Deployment on page 1153.
To deploy to WebSphere Enterprise Service Bus:
1. Start WebSphere Enterprise Service Bus as described in 11.3.4, Configuring
J2C authentication data on page 963. If the server is started, right-click the
entry in the Server tab and select Add and remove projects as shown in
Figure 11-64.
999
2. Select the module on the left and click Add to move it to the right
(Figure 11-65).
3. Click Finish.
1000
2. This starts the test client which is integrated in the WebSphere Integration
Developer environment. Switch to the Configurations tab (Figure 11-67).
1001
4. When all Emulators are removed, go back to the Events tab (Figure 11-69).
1002
5. Enter itsouser in the table field on the right side which represents the data
input for the call and click Continue to start the test (Figure 11-70).
1003
You see the result with values in the Test Client table. Refer to Figure 11-72.
11.4.5 Conclusion
This scenario demonstrates how you can configure the WebSphere Adapter to
provide an interface to call an SAP BAPI from an SAP ERP System to interact
with the system. This kind of interaction with SAP is used if special calls with data
retrieval or data manipulation is needed and there is a BAPI or RFC available to
solve this task. It is more easier and faster than using complex IDocs.
1004
Business Object
create
BAPI_USER_CREATE1
BAPI_USER_DELETE
retrieve
BAPI_USER_GET_DETAIL
This is a good possibility to group SAP calls that operate with the same object to
a single adapter configuration.
1005
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPMultipleBAPI
Adapter 6.0.1
RAR
TCP/SAPRFC
ITSO.IBM.1
User Management
BAPI_USER_CHANGE
BAPI_USER_CHANGE
BAPI_USER_CREATE1
BAPI_USER_CREATE1
BAPI_USER_DELETE
BAPI_USER_DELETE
BAPI_USER_GET_DETAIL
BAPI_USER_GET_DETAIL
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
11.5.2 Development
The section includes following steps:
Creating a module with SAP call
Creating an Export
Creating a Mediation
1006
1007
1008
3. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software that you created in 11.3.3,
Deploying WebSphere Adapter for SAP Software on page 960 and click
Next as shown in Figure 11-77.
If you have previously run the Enterprise Service Discovery wizard, your
connection properties have been saved and appear when you expand the
adapter name node (click the plus symbol, +, next to the adapter name). You
can select the saved connection properties if you plan to connect to the same
SAP application as when you last ran the Enterprise Service Discovery
wizard.
SAPLogin
UserName
itsouser
Password
itso1
Client
800
System Number
00
ApplicationServerHost
ITSO.SAP.1
BAPI
1009
5. You see the completed panel as shown in Figure 11-78. Click Next.
1010
6. In the next window configure the used BAPI. Click Run Query (Figure 11-79).
If you receive an error the connection to the SAP system cannot be
established. Check whether there is a firewall between you and the server or
whether the logon credentials are correct.
1011
7. Click the plus sign (+) before RFC and expand the tree structure. Then, select
Discover By Name as shown in Figure 11-80.
1012
8. Click Filter because in an SAP system there are usually a lot of BAPIs and
RFCs.
9. In the Filter Properties for Discover By Name window, enter the name of the
Remote Function Call (RFC) that you want to discover. You can include an
asterisk (*) as a wild card character at the beginning or end of the name to
indicate that you want to discover all SAP application components that
contain the specified name.
Enter Discovery Criteria BAPI_USER* as shown in Figure 11-81. Then, click
OK to start the search.
1013
10.Use the plus sign (+) before Discover By Name to expand the tree structure.
The structure only includes the filtered SAP Calls as shown in Figure 11-82.
1014
1015
1016
1017
1018
15.The next panel offers selection of the module where the new objects and
interfaces get saved. Click New to create a new module (Figure 11-87).
1019
1020
18.Enter the Java 2 Connector (J2C) Authentication Data Entry and click Use
discovered connection properties as shown in Figure 11-90. With this
option the user name and password comes out of the server and the adapter
with the needed parameter get stored in the module.
Restriction: The Node level deployment of the WebSphere Adapter for
SAP Software is currently not supported. Always deploy with the options
Adapter with module and Use discovered connection properties
selected.
1021
1022
At this point, the SAP Outbound interface is ready (Figure 11-91). In the next
steps, you build a sample mediation module to receive the data out of the
inbound interface, transform it to another interface, and provide it to other SCA
components.
Creating an Export
To create an export, follow these steps:
1. Right-click the Interface name and select New Interface (Figure 11-92).
We map the complex SAP interface to make it easier to use.
1023
4. Use Add Input and name the Input username (Figure 11-95).
1024
5. Use Add Output and name the output firstname (Figure 11-96).
7. Create a second interface with the name SetFirstname and the details as
shown in Figure 11-98.
1025
9. Create a wire between the Exports and the Mediation. Then create a wire
between the Mediation and the Outbound interface as shown in
Figure 11-100.
1026
1027
Creating a Mediation
To create a Mediation, follow these steps:
1. Right-click Mediation1 and select Generate Implementation as shown in
Figure 11-104.
1028
1029
4. Select the connection to get the first name and add an Extensible Stylesheet
Language (XSL) Transformation to the flow as shown in Figure 11-108.
1030
c. This opens the mediation editor. Open the tree structures and assign the
username on the left through drag-and-drop to Username on the right.
Refer to Figure 11-112.
1031
1032
h. Create a similar XSL Transformation for the response with the result as
shown in Figure 11-117.
1033
1034
1035
d. As the value of the function enter X to use this static string and click OK as
shown in Figure 11-121.
1036
1037
1038
9. Click Project in the menu and check whether your WebSphere Integration
Developer is configured to Build Automatically. If not, start the Build Project.
Refer to Figure 11-126.
1039
11.5.3 Deployment
This section illustrates how to deploy the created SCA module in a WebSphere
Enterprise Service Bus environment. The same deployment for the WebSphere
Process Server is illustrated in 11.9.3, Deployment on page 1153.
To deploy to WebSphere Enterprise Service Bus:
1. Start WebSphere Enterprise Service Bus as described in 11.3.4, Configuring
J2C authentication data on page 963. If the server is started, right-click the
entry in the Server tab and select Add and remove projects as shown in
Figure 11-127.
1040
2. Select the module on the left and click Add to move it to the right as shown in
Figure 11-128.
3. Click Finish.
1041
1042
4. After all emulators are removed (Figure 11-132), go to the Events tab.
1043
6. A window opens to select the server where the application is deployed. Select
WebSphere ESB Server v6.0 as shown in Figure 11-134.
1044
You see the result with values in the Test Client table with Sascha as the
firstname as shown in Figure 11-135.
7. Right-click again in the assembly editor on the import and select Test
Component on the SetFirstname Export as shown in Figure 11-136. This
starts another test client which is integrated in the WebSphere Integration
Developer environment.
1045
You see the result with values in the Test Client table with the message User
ITSOUSER has changed as shown in Figure 11-138.
1046
10.Repeat steps 1 and 2 to test whether the data in the SAP system is changed.
This time the result for the firstname is Alexander as shown in Figure 11-139.
11.5.5 Conclusion
This scenario demonstrates how you can configure the WebSphere Adapter to
provide different operations to call different SAP BAPI from an SAP ERP System
to interact with the system. This kind of interaction with SAP is to group a set of
special calls with data retrieval or data manipulation together to one adapter
configuration. It is more easy and faster than using complex IDocs.
1047
BAPIs execute in a specific sequence for the business flow to complete correctly,
the transaction supports this sequence.
The adapter supports a BAPI transaction, or sequence of BAPIs, using a
top-level wrapper business object that consists of multiple child BAPIs, each one
representing a single BAPI in the sequence. The BAPI transaction wrapper
object represents the complete transaction. Each second-level child business
object represents a structure parameter or table parameter of the method.
Simple attributes correspond to simple parameters of the method. The adapter
uses the application specific information set on the operation to determine the
sequence of BAPI calls. BAPI_TRANSACTION_COMMIT can be issued after
each BAPI call by specifying the keyword COMMIT in the ASI sequence. The
adapter calls BAPI_TRANSACTION_COMMIT at the end of a sequence of BAPI
calls even if the application specific information sequence does not specify any
COMMITs.
The adapter supports commit and rollback features which are provided by SAP.
It is recommended to evaluate each BAPI if it requires a dedicated commit
(BAPI_TRANSACTION_COMMIT) and if it is possible to rollback
(BAPI_TRANSACTION_ROLLBACK) the transaction.
1048
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPTransactionalBAPI
Adapter 6.0.1
RAR
TCP/SAPRFC
Multiple calls
per operation
Sequential
Invocation
ITSO.IBM.1
User Management
BAPI_USER_CHANGE
BAPI_USER_GET_DETAIL
BAPI_USER_CREATE1
BAPI_USER_LOCK
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
11.6.2 Development
The section includes the following steps:
Creating a module with SAP call.
Creating an Export
Creating a Mediation
1049
1050
1051
3. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software that you created in 11.3.3,
Deploying WebSphere Adapter for SAP Software on page 960 and click
Next as shown in Figure 11-143.
If you have previously run the enterprise service discovery wizard, your
connection properties have been saved and appear when you expand the
adapter name node (click the plus symbol, +, next to the adapter name). You
can select the saved connection properties if you plan to connect to the same
SAP application as when you last ran the enterprise service discovery wizard.
1052
Alias
SAPLogin
UserName
itsouser
Password
itso1
Client
800
System Number
00
ApplicationServerHost
ITSO.SAP.1
BAPI
5. You see the completed panel as shown in Figure 11-144. Click Next.
1053
6. In the next window, configure the used BAPI. Click Run Query as shown in
Figure 11-145.
If you receive an error the connection to the SAP system cannot be
established check if there is a firewall between you and the server or if the
logon credentials are correct.
1054
7. Click the plus sign (+) before RFC and expand the tree structure. Then, select
Discover By Name as shown in Figure 11-146.
8. Click Filter because in an SAP system there are usually a lot of BAPIs and
RFCs.
1055
9. In the Filter Properties for Discover By Name window, enter the name of the
Remote Function Call (RFC) that you want to discover. You can include an
asterisk (*) as a wild card character at the beginning or end of the name to
indicate that you want to discover all SAP application components that
contain the specified name. Enter Discovery Criteria BAPI_USER* as shown in
Figure 11-147. Then, click OK to start the search.
1056
10.Now use the plus sign (+) before Discover by Name to expand the tree
structure. The structure only includes the filtered SAP Calls. Refer to
Figure 11-148.
1057
1058
12.This adds the selected BAPI in the Objects to be imported field as shown in
Figure 11-150. If there is the requirement to include multiple IDocs, repeat the
previous steps. Otherwise, click Next. Do the same for BAPI_USER_LOCK.
1059
1060
14.In the next panel, you select the module where the new objects and interfaces
get saved:
a. Click New to create a new module (Figure 11-152).
1061
1062
d. Enter the Java 2 Connector (J2C) Authentication Data Entry and select
Use discovered connection properties as shown in Figure 11-155. With
this option the user name and password come from the server and the
adapter with the needed parameter is stored in the module.
Restriction: The Node level deployment of the WebSphere Adapter for
SAP Software is not supported currently. Always deploy with the
Adapter with module and Use discovered connection properties
options selected.
Attention: Do not fill the UserName and Password fields in this panel.
These fields were used for the development process before the J2C
Authentication Data Entry was supported. Now, the values stored in
these fields are not used, but they are readable in the module
development in clear text.
e. Click Finish to generate all artifacts.
1063
1064
At this point, the SAPOutboundInterface is ready. In the next steps, you build a
sample mediation module to receive the data out of the inbound interface,
transform it to another interface, and provide it to other SCA components.
1065
4. Use Add Input (Figure 11-160) and name the Input username.
1066
5. Use Add Output (Figure 11-161) and name the outputs firstname and
islocked.
1067
8. Create a wire between the Export and the Mediation. Then create a wire
between the Mediation and the Outbound interface. Refer to Figure 11-164.
Creating a Mediation
To create a mediation, follow these steps:
1. Right-click Mediation1 and select Generate Implementation as shown in
Figure 11-166.
1068
1069
1070
8. This opens the mediation editor. Open the tree structures and assign the user
name on the left through drag-and-drop to the Username on the right. Refer
to Figure 11-173.
1071
9. This drag-and-drop adds the mapping to the overview section. Do the same
for the second user name as shown in Figure 11-174.
1072
14.Create a similar XSL Transformation for the response with the result as
shown in Figure 11-178.
1073
15.In the detail properties of the XSL Transformation, click Regenerate XSL.
16.Finally, select Generate Binding SCA Binding (Figure 11-179).
17.Click Project in the menu and check whether your WebSphere Integration
Developer is configured to Build Automatically. If not, start the Build Project
as shown in Figure 11-180.
1074
11.6.3 Deployment
This section explains how to deploy the SCA module that you created in a
WebSphere Enterprise Service Bus environment. We describe the same
deployment for the WebSphere Process Server in 11.9.3, Deployment on
page 1153.
To deploy to WebSphere Enterprise Service Bus:
1. Start WebSphere Enterprise Service Bus as described in 11.3.4, Configuring
J2C authentication data on page 963. If the server is started, right-click the
entry in the Server tab and select Add and remove projects as shown in
Figure 11-181.
1075
2. Select the module on the left and click Add to move it to the right. Refer to
Figure 11-182.
3. Click Finish.
1076
2. Click the Lock/Unlock button. You see that the user is not locked as shown in
Figure 11-184.
1077
3. Right-click in the assembly editor on the import and select Test Component
as shown in Figure 11-185.
This action starts the test client that is integrated in the WebSphere
Integration Developer environment.
a. Switch to the Configurations tab as shown in Figure 11-186.
1078
c. After all emulators are removed (Figure 11-188), go to the Events tab.
1079
d. Enter itsouser as the username and click Continue to start the test
(Figure 11-189).
Attention: Do not lock a user in SAP if you cannot unlock it again. At
least two users are needed.
1080
4. A window opens to select the server where the application is deployed. Select
WebSphere ESB Server v6.0 as shown in Figure 11-190.
5. You see the result with values in the Test Client table with Alexander as the
firstname and USER ITSOUSER locked for the islocked message as shown in
Figure 11-191.
1081
7. Click the Lock/Unlock button. You see that the user is now locked as shown in
Figure 11-193. Click the Unlock button to unlock the user again.
11.6.5 Conclusion
This scenario demonstrated how you can configure the WebSphere Adapter to
call different operations for different SAP BAPI from an SAP ERP System in a
row to interact with the system. This type of interaction with SAP creates a
transaction that needs to be executed in a special order. It can provide data
retrieval or data manipulation and is easier and faster than using complex IDocs.
1082
Technically this is the same solution, just that there is not a special HDR
configuration.
You can access all SAP tables through this method, but it is not recommended to
access tables directly. If possible use RFC, BAPI, or IDocs to retrieve and update
data in SAP.
WID 6.0.1.2
Testclient
SCA
USR02
ITSOWebSphereSAPReadTableBAPI
Adapter 6.0.1
RAR
ITSO.IBM.1
TCP/SAPRFC
One call
User Management
BAPI_USER_CHANGE
BAPI_USER_CREATE1
RFC_READ_TABLE
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
1083
11.7.2 Development
The section includes the following steps:
Creating a module with SAP call
Creating an Export
Creating a Mediation
1084
3. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software, which you created in 11.3.3,
Deploying WebSphere Adapter for SAP Software on page 960. Then, click
Next as shown in Figure 11-197.
If you have previously run the Enterprise Service Discovery wizard, your
connection properties have been saved and appear when you expand the
adapter name node (click the plus symbol, +, next to the adapter name). You
can select the saved connection properties if you plan to connect to the same
SAP application as when you last ran the enterprise service discovery wizard.
1085
1086
Alias
SAPLogin
UserName
itsouser
Password
itso1
Client
800
System Number
00
ApplicationServerHost
ITSO.SAP.1
BAPI
1087
1088
b. Click the plus sign (+) before RFC and expand the tree structure. Select
Discover By Name as shown in Figure 11-200.
c. Click Filter because in an SAP system there are usually a lot of BAPIs and
RFCs.
d. In the Enter Discovery Criteria field, enter RFC_READ* (Figure 11-201).
1089
1090
1091
h. This adds the selected BAPI in the Objects to be imported field as shown
in Figure 11-204. Click Next.
1092
1093
8. The next panel offers selection of the module where the new objects and
interfaces get saved:
a. Click New to create a new module. Refer to Figure 11-206.
1094
1095
d. Enter the J2C Authentication Data Entry and select Use discovered
connection properties as shown in Figure 11-209. With this option the
user name and password comes from the server and the adapter with the
needed parameter is stored in the module.
Restriction: The Node level deployment of the WebSphere Adapter for
SAP Software is not supported currently. Always deploy with the
options Adapter with module and Use discovered connection
properties selected.
Attention: Do not fill the UserName and Password fields in this panel.
These fields were used for the development process before the J2C
Authentication Data Entry was supported. Now, the values stored in
these fields are not used, but they are readable in the module
development in clear text.
e. Click Finish to generate all artifacts.
1096
1097
At this point, the SAP Outbound interface is ready. In the next steps, you build a
sample mediation module to receive the data out of the inbound interface,
transform it to another interface, and provide it to other SCA components.
Creating an Export
To create an Export, follow these steps:
1. Right-click the Interface name and select New Interface as shown in
Figure 11-211 because we map the complex SAP interface to a much simpler
for easy use.
1098
4. Use Add Input and name the Input Table, SAPOption, and Column. Refer to
Figure 11-214.
1099
5. Use Add Output and name the output DataRow. Refer to Figure 11-215.
1100
8. Create a wire between the Export and the Mediation. Then create a wire
between the Mediation and the Outbound interface. Refer to Figure 11-218.
1101
Creating a Mediation
To create a Mediation, follow these steps:
1. Right-click Mediation1 and select Generate Implementation as shown in
Figure 11-220.
1102
3. The Mediation Flow Editor opens. Just connect the readTable operation with
the retrieveSaptable_Txn through drag-and-drop as shown in Figure 11-222.
1103
1104
8. This opens the mediation editor. Open the tree structures and right-click the
Delimiter in the right tree structure. Select Define XSLT Function as shown
in Figure 11-227.
9. In the new window select String function and click Next as shown in
Figure 11-228.
1105
10.Select string as the Function name and click Add as shown in Figure 11-229.
1106
12.You see the new Input parameter and click Finish as shown in Figure 11-231.
1107
1108
17.In the Mediation Flow Editor switch to the Response configuration. Refer to
Figure 11-235.
18.Create a similar XSL Transformation for the response with the result as
shown in Figure 11-236.
1109
19.In the detail properties of the XSL Transformation, click Regenerate XSL.
20.Generate the SCA Binding as shown in Figure 11-237.
21.Click Project in the menu and check whether your WebSphere Integration
Developer is configured to Build Automatically. If not, start the Build Project.
Refer to Figure 11-238.
1110
11.7.3 Deployment
This section explains how to deploy the SCA module that you created in a
WebSphere Enterprise Service Bus environment. We describe the same
deployment for the WebSphere Process Server in 11.9.3, Deployment on
page 1153.
To deploy to WebSphere Enterprise Service Bus:
1. Start WebSphere Enterprise Service Bus as described in 11.3.4, Configuring
J2C authentication data on page 963. If the server is started, right-click the
entry in the Server tab and select Add and remove projects as shown in
Figure 11-239.
1111
2. Select the module on the left and click Add to move it to the right as shown in
Figure 11-240.
3. Click Finish.
1112
This starts the test client which is integrated in the WebSphere Integration
Developer environment.
a. Switch to the Configurations tab as shown in Figure 11-242.
1113
c. After all emulators are removed, go to the Events tab (Figure 11-244).
d. Enter the data provided in Table 11-6 into the test client.
Table 11-6 Test values for Read Table
1114
QueryTable
USR02
SAPOptions
Column
ANAME
You see the result with values in the Test Client table with the name of the
SAP user who created the user you are looking for. Refer to Figure 11-246.
1115
3. Now go to the SAPGUI panel of the SE16 and enter USR02 as the Table name
as shown in Figure 11-247.
1116
11.7.5 Conclusion
This scenario demonstrated how you can configure the WebSphere Adapter to
access SAP data tables from an SAP ERP System. You can use this type of
interaction with SAP if special data from an SAP needs to be accessed without
using a RFC or BAPI. It is very direct and offers possibilities for direct table
manipulation.
1117
found in the SAP system. The advantage of this extension is that the SAP login is
performed with a user provided by the application and not with one specified
technical user stored for the WebSphere Adapter. Refer to Figure 11-250.
WESB 6.0.1.2 (WAS 6.0.2.9)
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPSimpleBAPI
Set SAP User
and Password
Adapter 6.0.1
RAR
TCP/SAPRFC
User Management
One call
BAPI_USER_EXISTENCE_CHECK
ITSO.IBM.1
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
11.8.2 Development
The section includes following steps:
Creating a module with SAP call
Creating an Interface
Creating a Java implementation
1118
1119
Now you have three single components in your Assembly Diagram as shown
in Figure 11-254.
1120
1121
1122
Creating an Interface
To create an Interface, follow these steps:
1. In the left navigator, right-click Interfaces and select New Interface to
create a new Interface as shown in Figure 11-257.
1123
3. Use the Action bar options to add a 2-way operation with the input and output
as shown in Figure 11-259.
4. In the next steps, connect the components in the Assembly Diagram. Every
time the question windows open in this project, you do the same actions.
Follow these steps:
a. Click OK to create a matching reference as shown in Figure 11-260.
1124
1125
6. Click the left button in the bubble to add a interface to the component. This
action opens a new window. Enter websphereSAP in the Filter field, select
WebSphereSAPDynamicAuthenticationInterface, and click OK as shown
in Figure 11-263.
1126
7. Wire the Java Component to the Export. Now the Assembly Diagram looks as
shown in Figure 11-264.
1127
1128
4. Replace the generated method with the code as shown in Example 11-1.
Important: The strings CSusername and CSpassword are predefined in the
Connection Specification.
Example 11-1 Code to fill dynamic authentication
1129
5. Click Project in the menu and check whether your WebSphere Integration
Developer is configured to Build Automatically (Figure 11-268). If not, start the
Build Project.
1130
11.8.3 Deployment
This section explains how to deploy the SCA module that you created in a
WebSphere Enterprise Service Bus environment. We describe the same
deployment for the WebSphere Process Server in 11.9.3, Deployment on
page 1153.
To deploy to WebSphere Enterprise Service Bus:
1. Start WebSphere Enterprise Service Bus as described in 11.3.4, Configuring
J2C authentication data on page 963. If the server is started, right-click the
entry in the Server tab and select Add and remove projects as shown in
Figure 11-269.
1131
2. Select the module on the left and click Add to move it to the right as shown in
Figure 11-270.
3. Click Finish.
1132
1133
1134
3. Select the Emulators and then click Remove as shown in Figure 11-274.
4. Go to the Events tab and enter the data that is listed in Table 11-7 as the
Initial request parameters.
Table 11-7 Testcase 1
Username
itsouser
username
something
password
wrong
1135
6. Now, you select the server on which the application is deployed. Select
WebSphere Enterprise Service Bus Server v6.0 as shown in
Figure 11-276.
1136
The test fails because the user provided in the business graph were not
available in the SAP system. The error message that you receive states that
the login user name or password were incorrect (Figure 11-277).
7. Run the test again but use this data that is listed in Table 11-8 to complete the
Initial request parameters.
Table 11-8 Testcase 2
Username
itsouser
username
itsouser
password
itso1
1137
This time the test is successful because you used the correct user name and
password as shown in Figure 11-279.
1138
11.8.5 Conclusion
This scenario illustrated that the application is using the credentials that are
provided in the business graph.
This scenario demonstrated how you can configure the WebSphere Adapter to
access SAP with a user that is defined during runtime. If you use this type of
interaction with SAP, it needs to be performed by a special user, typically in a
Human Resource environment where the user has special permissions and work
items.
1139
SCA
ITSOWPSExtension
BPC Explorer
Lib
SCA
ITSOWebSphereSAPSimpleBAPI
Lib
Adapter 6.0.1
RAR
TCP/SAPRFC
User Management
One call
BAPI_USER_EXISTENCE_CHECK
ITSO.IBM.1
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
11.9.2 Development
The section includes the following steps:
Creating a common library
Creating a new Module as caller
Implementing the Process
1140
1141
2. Because you deploy this module on WebSphere Process Server, you need to
create the J2C Authentication Data Entry on the WebSphere Process Server
also. Navigate to Binding Security attributes and change the J2C
Authentication Data Entry to widNode/SAPLogin as shown in Figure 11-282.
1142
1143
4. Configure the Module to use the Library by double-clicking the project to open
the Dependencies editor (Figure 11-286).
1144
1145
1146
1147
1148
1149
9. Wire the new process to the Import1 and add the UserExist interface to the
process.
1150
3. In the process view select Invoke in the palette left and insert it with a left click
to the process between the Receive and Reply. Refer to Figure 11-299.
4. Select the Invoke and use the Set Partner option in the bubble as shown in
Figure 11-300.
1151
1152
11.9.3 Deployment
The steps to deploy to WebSphere Process Server are the same as those to
deploy on a WebSphere Enterprise Service Bus. To deploy to WebSphere
Process Server:
1. Start WebSphere Process Server as described in 11.3.4, Configuring J2C
authentication data on page 963. If the server is started, right-click the entry
in the Server tab and select Add and remove projects as shown in
Figure 11-304.
1153
2. Select the module on the left and click Add to move it to the right as shown in
Figure 11-305.
1154
2. This action starts the BPC Explorer which is integrated in the WebSphere
Integration Developer environment. Refer to Figure 11-307.
1155
1156
11.9.5 Conclusion
This scenario demonstrated how you can easily reuse a module that is designed
for WebSphere Enterprise Service Bus in a WebSphere Process Server
environment. Also, you can use the powerful additional options of a WebSphere
Process Server. You can extend every WebSphere Adapter for SAP Software
project easily. This reusable modules also allows a reuse of investment if a
company starts with a WebSphere Enterprise Service Bus environment and then
upgrades to a WebSphere Process Server license.
1157
1158
12
Chapter 12.
Adapter-based integration to
SAP: WebSphere Adapter
for SAP Software ALE
scenarios
This chapter begins with an overview of the implemented scenarios and
describes the common preparations for the scenarios. It also includes the
installation of the WebSphere Adapter for SAP Software and the configuration of
the SAP System, WebSphere Enterprise Service Bus, and WebSphere Process
Server. The chapter shows the possibilities of Inbound ALE, from SAP to
WebSphere. In addition, the scenarios cover single transfers as well as
acknowledgement and batch transfers.
The chapter also shows the possibilities of Outbound ALE, from WebSphere to
SAP. The scenarios cover single transfers and batch transfers.
Finally, Extension A shows the possibility to run the Service Component
Architecture modules on WebSphere Enterprise Service Bus and WebSphere
Process Server to use additional possibilities of the WebSphere Process Server.
1159
ITSO.SAP.1
1160
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1161
12.3 Preparation
In the scenarios, SAP is accessed through the WebSphere Adapter for SAP
Software. There are common preparation steps for all scenarios. The following
steps needs to be configured in the SAP system (refer to your SAP
administrator):
1.
2.
3.
4.
5.
RFC destination
Receiver port
Logical system
Distribution model
Partner profile
1162
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1163
2. In the RFC Destination dialog box, specify a new name (ITSO_DEST) and the
Connection Type T for TCP/IP Connection. Select Destination Save (or
Ctrl+S) to save. Now, you can specify the following additional settings:
a. Enter an optional description.
b. Select Registered Server Program as Activation Type.
c. Enter a Program ID (ITSO_SERVER). This Program ID has to be
configured later in the activation spec of the WebSphere Adapter for SAP.
Select Destination Save (or Ctrl+S) to save. Refer to Figure 12-3.
1164
3. Enter a port name and select the button with the check mark on it. Refer to
Figure 12-5.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1165
1166
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1167
2. Enter a new Logical System (ITSO_LSYS) and a description and click the Save
icon (or Ctrl+S). Refer to Figure 12-8.
1168
4. Enter a short description and click the Save icon (or Enter). Refer to
Figure 12-10.
5. The Workbench request is created and the number is set inside the dialog
box. Click the icon with the check mark on it (or Enter). Refer to Figure 12-11.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1169
3. Click Create model view. In the dialog box, enter Short text and a name of
the model view (ITSO_MODEL). Click the Continue icon. Refer to Figure 12-13.
1170
4. Select the new distribution model and click Add message type. Refer to
Figure 12-14.
6. Select the new distribution model and click Add message type again.
7. Enter the logical system name of the SAP client (in our case BSCCLNT800) as
Sender and the logical system name of the WebSphere system (ITSO_LSYS)
as Receiver. Enter Message Type as MATMAS. Click the Continue icon. Refer
to Figure 12-16.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1171
1172
4. In the Post processing: permitted agent, enter US for User, and specify your
SAP user ID. Refer to Figure 12-18.
5. Click the Save icon (or Ctrl+S).
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1173
7. Enter Message Type as MATMAS, Receiver port as ITSO_PORT, and Basic type
as MATMAS05. Select Transfer IDoc immed as shown in Figure 12-19.
8. Click the Save icon (or Ctrl+S).
1174
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1175
1176
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1177
1178
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1179
5. Read and accept the software license agreement and click Next as shown in
Figure 12-26.
1180
8. You get a successfully installed notice. Click Finish as shown in Figure 12-29.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1181
After setting up the WebSphere Adapter for SAP Software, you find two different
adapter resource files in the target directory.
/adapter/SAP/deploy/CWYAP_SAPAdapter.rar
Use this file if you want the adapter to perform ALE and BAPI processing
without local transaction support. In this case, the application provides the
local transaction support.
/adapter/SAP/deploy/CWYAP_SAPAdapter_Tx.rar
Use this file if you want the container (WebSphere Process Server) to control
local transaction support for BAPI processing. In this case, the adapter
participates in the local transaction started by the container.
1182
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1183
1184
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1185
2. Select the ESB Server v6.0 and click the Start icon or select Start in the
pop-up menu. Wait until the server status changes to Started. Refer to
Figure 12-34.
1186
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1187
7. In the J2C authentication data view, click New as shown in Figure 12-37.
1188
8. In the General Properties dialog box, enter an Alias name (SAPLogin). Refer
to Figure 12-38.
9. Enter the SAP user ID and password. Click Ok.
10.A new Entry esbNode/SAPLogin is in the list.
11.Click OK in the Global Security view. In the Save dialog box, click Save.
Refer to Figure 12-39.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1189
1190
as an inbound IDoc event. After the event is sent to the message endpoint, the
adapter updates the status of the IDoc in SAP to indicate a failure or success in
processing.
bd10
WID 6.0.1.2
Testclient
SCA
ITSOSAPWebSphereALEInbound
ALE
Adapter 6.0.1
RAR
TCP/SAPRFC
MATMAS05
ITSO.SAP.1
ITSO.IBM.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1191
12.4.2 Development
This section describes how to create a WebSphere Enterprise Service Bus
mediation module that includes the transformation logic to map the SAP interface
into a simplified interface of a Java component. It uses the WebSphere Adapter
for SAP software to receive an SAP IDOC from the backend and send this
document through a Mediation node to a Java component.
1192
3. In the New Mediation Module dialog box, specify Module Name, select
WebSphere ESB Server as Target Runtime and select Create mediation
flow component. Then, select Finish as shown in Figure 12-43.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1193
1194
2. In the Select a wizard dialog box, expand the Business Integration folder,
select Enterprise Service Discovery and click Next as shown in
Figure 12-45.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1195
3. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software and click Next as shown in
Figure 12-46. If you have run the enterprise service discovery wizard
previously, your connection properties have been saved and appear when you
expand the adapter name node (click the plus symbol, +, next to the adapter
name). You can select the saved connection properties if you plan to connect
to the same SAP application as when you last ran the enterprise service
discovery wizard.
1196
5. Click Next.
6. In the Find and Discover Enterprise Services window, click Run Query.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1197
7. Under Objects Discovered by query, drill down to the Discover By Name node
and select it as shown in Figure 12-48, but do not drill down further, because
you need to apply a filter.
8. Click Filter. In the Filter Properties for Discover by Name window, enter the
name of the IDoc that you want to discover. You can include an asterisk (*) as
a wild card character at the beginning or end of the name to indicate that you
want to discover all SAP application components that include the specified
name. In this example scenario, enter MATMAS*. Refer to Figure 12-49.
9. Click OK.
1198
10.Expand Discover By Name. The filtered list of IDocs are retrieved from the
SAP system as shown in Figure 12-50.
11.Select MATMAS05 and click Add.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1199
12.In the Configuration Parameters window, select Use SAP Field Name to
generate attribute(s). Click OK as shown in Figure 12-51.
If there is the requirement to include multiple IDocs, repeat the previous two
steps.
13.When added the IDocs into the Objects to be imported list, select Finish.
14.The Configure Objects dialog box opens, enter a object location, click Add,
select the operation Create, and click OK. Click Next as shown in
Figure 12-52.
15.The Generate Artifacts dialog box opens. Optionally, you can specify a folder
where the SAPInboundInterface artifacts are created.
1200
16.Be sure that the Deploy connector with module and Use discovered
connection properties option is selected.
Note: Deployment of the WebSphere Adapter for SAP Software direct as a
resource adapter on the server and use of the connection properties
specified on the server are not supported in the current release of the
adapter.
Specify the J2C Authentication Entry, configured in the prerequisite task.
Attention: Do not fill the username and password fields directly in this
panel. Otherwise, the password is stored in clear in a configuration file.
For security reasons, always use the J2C Authentication Data Entry
instead field instead.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1201
1202
18.It is possible to update the status of the SAP system, when the IDoc arrives.
The Adapter sends out an IDoc of type ALEAUD to the SAP system. To
enable this, select AleUpdateStatus and specify the values for
AleSuccesscode, AleFailureCode, AleSuccessText, and AleFailureText.
Refer to Figure 12-54.
19.Click Finish to generate all artifacts.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1203
20.Set the SAP IDoc message type in the generated business object
SapMatmas05:
a. In the Business Integration view, open the Data Types directory, right-click
the business object SapMatmas05, and select open. Refer to
Figure 12-55.
b. The Business object view opens. Select the SapMatmas05 object and
select Application Info in the Properties pane.
21.Navigate to sapasi:MsgType and enter the value MATMAS. Save and close the
business object.
Important: Take care to distinguish between the Message Type
(MATMAS) and the Basic Type (MATMAS05).
1204
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1205
2. Create a new Interface with one operation having a string as input parameter.
Right-click interfaces and select New Interface as shown in Figure 12-57.
3. In the Create a new interface dialog box, specify a directory name, where the
artifacts are created (sapif) and the interface name (ITSOMaterial). Click
Finish as shown in Figure 12-58.
1206
4. The interface view opens. You can specify the operations and parameters.
Click Add One Way Operation as shown in Figure 12-59.
5. Select the new operation and click Add Input as shown in Figure 12-60.
Name the input parameter material. Save and close the interface view.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1207
2. Select the new Java component and click Add Interface as shown in
Figure 12-62.
1208
3. In the Add Interface dialog box, select ITSOMaterial and click OK as shown
in Figure 12-63.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1209
4. Wire the right side of the Mediation1 component to the left side of the Java
component as shown in Figure 12-64.
1210
6. At this stage, the interfaces are defined and wired together. In the next steps,
you implement the Java component and generate the mediation component.
In the Assembly Diagram, select the Java component and then right-click and
select Generate Implementation as shown in Figure 12-66.
7. In the Generate implementation dialog box, accept the defaults and click OK.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1211
8. The generated Java file with the implementation of the Java component
opens. You have to change the operation method for the needs of the sample
scenario. This operation prints the material number to the output console. To
change the operation method, scroll down to the method public void
operation1 (String material).
9. Insert System.out.println(material); and save the file. Refer to
Figure 12-67.
1212
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1213
4. In the lower part of the mediation editor, select the mediation primitive: XSL
Transformation. Click into the white space of the lower pane to create the
mediation primitive. Wire the Request - emitCreateAfterImageSapMatmas05
to the XSL Transformation and the XSL Transformation to Invoke - operation1
as shown in Figure 12-69.
1214
6. You need a new mapping file to mediate the input interface to the output
interface. Click New.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1215
7. In the dialog box that opens, accept the defaults as shown in Figure 12-71
and click Finish.
1216
8. In the XSLT mapping view, open the source message and navigate to the
material number as shown in Figure 12-72. Drag the element MatNr on the
element material inside the target message. The result is visible in the
overview pane. Save and close the XSLT mapping file.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1217
1218
12.4.3 Deployment
You can deploy the module on the WebSphere ESB Server or the WebSphere
Process Server. This scenario uses WebSphere ESB Server. To deploy the
module, follow these steps:
1. Start the WebSphere ESB Server. Refer to Figure 12-74.
2. Rebuild your project to make sure, all artifacts are generated. Select
Project Clean in the menu bar as shown in Figure 12-75. In the
confirmation select your project or rebuild all projects.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1219
3. Add the project to the server. In the server view, right-click WebSphere ESB
Server and select Add and remove projects as shown in Figure 12-76.
The application starts and the SAP adapter listeners which listen for SAP
inbound events start also.
1220
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1221
3. Select WebSphere ESB Server v6.0 in the Deployment location dialog box
as shown in Figure 12-80 and click Finish.
1222
Inside the attached test event view, new events are generated.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1223
7. Click the request messages to examine the business objects passed between
the components of the module. The SAPInboundInterface delivers the SAP
material data structure, while the Mediation1 component delivers the SAP
material number to be passed to the Java component. The SAP material
number is printed to SystemOut. Refer to Figure 12-82.
1224
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1225
3. Select WebSphere ESB Server in the Deployment location dialog box and
click Finish as shown in Figure 12-85.
4. The test client is listening for events. In the SAP GUI open the transaction
BD10 (Send Material). Insert a material number (1500-710) and a logical
1226
system (ITSO_LSYS) and click the Execute icon. Refer to Figure 12-86. Click
OK on the information dialog boxes that display.
Inside the Attached test Events view, new events are generated.
5. Click the request messages to examine the business objects passed between
the components of the module. The SAPInboundInterface delivers the SAP
material data structure, while the Mediation1 component delivers the SAP
material number to be passed to the Java component. The SAP material
number is printed to SystemOut. Refer to Figure 12-87.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1227
1228
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1229
3. Select WebSphere ESB Server v6.0 in the Deployment location dialog box
and click Finish as shown in Figure 12-91.
1230
4. The test client is listening for events. In the SAP GUI, open the transaction
WE20 (PartnerProfiles). Select ITSO_LSYS under Partner Profiles
Partner Type LS (Logical System). Refer to Figure 12-92.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1231
1232
8. Repeat the previous step with two additional material numbers (1500-720 and
1500-700).
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1233
9. Open the transaction WE14 (Process all selected IDocs). Enter MATMAS05 as
Basic type to limit the IDocs to be processed. Refer to Figure 12-95. Click the
Execute icon. All collected IDocs of type MATMAS05 are sent out in one
message.
1234
10.Inside the Attached test Events view, new events are generated. Refer to
Figure 12-96.
11.Click the request messages to examine the business objects passed between
the components of the module. The SAPInboundInterface delivers the SAP
material data structure, while the Mediation1 component delivers the SAP
material number to be passed to the Java component. The SAP material
numbers are printed to SystemOut. The various IDocs are processed in
sequence.
12.4.7 Conclusion
This scenario demonstrated how you can configure the WebSphere Adapter to
start listeners to listen on IDoc messages that are sent by the SAP system. This
type of interaction with SAP is very powerful and can receive single IDocs and
packages with a set of IDocs (batch). It is often used for system replications or
system-to-system transfers. The adapter offers additional support to send an
acknowledgement IDoc to SAP.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1235
1236
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPALEOutbound
Adapter 6.0.1
RAR
TCP/SAPRFC
ITSO.IBM.1
ALE
MATMAS05
( ALEAUD )
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1237
12.5.2 Development
This section explains how to develop the SCA component. Follow these steps:
1. In WebSphere Integration Developer, switch to the Business Integration
perspective.
2. Create a new mediation project. In the Business Integration view, right-click
and select New Mediation Module as shown in Figure 12-98.
1238
3. In the New Mediation Module dialog box, specify the Module Name, select
WebSphere ESB Server v6.0 as Target Runtime, and select Create
mediation flow component as shown in Figure 12-99. Click Finish.
4. Right-click the new mediation project in the Business Integration view and
select New Enterprise Service Discovery. If Enterprise Service
Discovery is not visible, select Other as shown in Figure 12-100.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1239
5. In the Select a wizard dialog box, expand the Business Integration folder and
select Enterprise Service Discovery and click Next as shown in
Figure 12-101.
1240
6. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software and click Next as shown in
Figure 12-102. If you have run the enterprise service discovery wizard
previously, your connection properties have been saved and appear when you
expand the adapter name node (click the plus sign, +, next to the adapter
name). You can select the saved connection properties if you plan to connect
to the same SAP application as when you last ran the enterprise service
discovery wizard.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1241
8. Click Next.
9. In the Find and Discover Enterprise Services window, click Run Query.
1242
11.Click Filter. In the Filter Properties for Discover By Name window, enter the
name of the IDoc that you want to discover. You can include an asterisk (*) as
a wild card character at the beginning or end of the name to indicate that you
want to discover all SAP application components that contain the specified
name. In this example scenario, enter MATMAS*. Refer to Figure 12-105.
12.Click OK.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1243
13.Expand Discover By Name (filtered). The filtered list of IDocs are retrieved
from the SAP system. Refer to Figure 12-106.
1244
15.In the Configuration Parameters window, select Use SAP Field Name to
generate attribute(s) as shown in Figure 12-107. Click OK.
If there is the requirement to include multiple IDocs, repeat the previous two
steps.
16.When added the IDocs into the Objects to be imported list, select Finish.
17.The Configure Objects dialog box opens, enter a Object Location (Enter
relative Path), click Add, select Operations Execute and click OK. Then,
click Next. Refer to Figure 12-108.
18.The Generate Artifacts dialog box opens. Optionally, you can specify a folder
where the SAPOutboundInterface artifacts are created.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1245
19.Be sure that the Deploy connector with module and Use discovered
connection properties options are selected. Refer to Figure 12-109.
Note: Deployment of the WebSphere Adapter for SAP Software direct as a
resource adapter on the server and use of the connection properties
specified on the server, are not supported in the current release of the
adapter.
1246
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1247
Attention: Do not fill the username and password fields directly in this
panel. Otherwise the password is stored in clear in a configuration file. For
security reasons, always use the J2C Authentication Data Entry field
instead.
21.Specify the SAP connection properties as shown in Figure 12-109.
22.Click Finish to generate all artifacts.
23.Open the Assembly Editor. The SAPInboundInterface that you generated in
the previous steps and an empty mediation module display.
At this point, the SAP Outbound interface is ready to be used in the further
development of the mediation module. In the next stage, you test the SAP
Outbound interface with the integrated test client.
12.5.3 Deployment
You can deploy the module on the WebSphere ESB Server or the WebSphere
Process Server. In this scenario, you use WebSphere ESB Server. To deploy the
module, follow these steps:
1. Start the WebSphere ESB Server. Refer to Figure 12-110.
1248
2. Rebuild your project to make sure that all artifacts are generated. Select
Project Clean in the menu bar as shown in Figure 12-111. In the
confirmation, select your project or rebuild all projects.
3. Add the project to the server. In the server view, right-click WebSphere ESB
Server and select Add and remove projects as shown in Figure 12-112.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1249
1250
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1251
Value
Comment
ReceiverPort
SAPxxx
PartnerTypeOfSender
LS
NameOfBasicType
MATMAS05
PartnerNumberOfSender
ITSO_LSYS
NameOfTableStructure
EDI_DC40
Client
800
Logical MessageType
MATMAS
PartnerNumberOfRecipient
xxxCLNTxxx
PartnerTypeOfRicipient
LS
1252
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1253
Value
Comment
Msgfn
004
Change
MatNr
1500-700
Material to change
Matkl
01002
Material class
Bismt
P-xyz-700
Meins
CSE
Unit of measurement
1254
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1255
1256
7. In the SAP GUI open the transaction WE02 (IDoc List). You can select the
received IDoc. Refer to Figure 12-120.
12.5.5 Conclusion
This scenario demonstrated how you can configure the WebSphere Adapter to
transfer IDoc messages to the SAP system. This kind of interaction with SAP is
very powerful and can send single IDocs. It is often used for system replications
or system-to-system transfers.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1257
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPALEOutbound
Adapter 6.0.1
RAR
TCP/SAPRFC
ITSO.IBM.1
1258
ALE
MATMAS05
( ALEAUD )
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
12.6.2 Development
This section explains how to develop the SCA component. Follow these steps:
1. In WebSphere Integration Developer, switch to the Business Integration
perspective.
2. Create a new mediation project. In the Business Integration view, right-click
and select New Mediation Module as shown in Figure 12-122.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1259
3. In the New Mediation Module dialog box, specify Module Name, select
WebSphere ESB Server v6.0 as Target Runtime and select Create
mediation flow component as shown in Figure 12-123. Click Finish.
4. Right-click the new mediation project in the Business Integration view and
select New Enterprise Service Discovery. If Enterprise Service
Discovery is not visible, select Other as shown in Figure 12-124.
1260
5. In the Select a wizard dialog box, expand the Business Integration folder and
select Enterprise Service Discovery and click Next as shown in
Figure 12-125.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1261
6. When prompted to select an adapter to use for discovering the service, select
IBM WebSphere Adapter for SAP Software and click Next as shown in
Figure 12-126. If you have run the enterprise service discovery wizard
previously, your connection properties have been saved and appear when you
expand the adapter name node (click the plus sign, +, next to the adapter
name). You can select the saved connection properties if you plan to connect
to the same SAP application as when you last ran the enterprise service
discovery wizard.
1262
8. Click Next.
9. In the Find and Discover Enterprise Services window, click Run Query.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1263
11.Click Filter. In the Filter Properties for Discover by Name window, enter the
name of the IDoc that you want to discover. You can include an asterisk (*) as
a wild card character at the beginning or end of the name to indicate that you
want to discover all SAP application components that include the specified
name. In this example scenario, enter MATMAS*. Refer to Figure 12-129.
12.Click OK.
1264
13.Expand Discover By Name (filtered). The filtered list of IDocs are retrieved
from the SAP system. Refer to Figure 12-130.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1265
15.In the Configuration Parameters window, select Create ALE Wrapper and
Use SAP Field Name to generate attribute(s). Click OK. Refer to
Figure 12-131.
If there is the requirement to include multiple IDocs, repeat the previous two
steps.
16.When added the IDocs into the Objects to be imported list, select Finish.
17.The Configure Objects dialog box opens, enter an Object Location, click Add,
select Operations Execute, and click OK. Click Next. Refer to
Figure 12-132.
1266
18.The Generate Artifacts dialog box opens. Optionally, you can specify a folder
where the SAPOutboundInterface artifacts are created.
19.Be sure that the Deploy connector with module and Use discovered
connection properties fields are selected.
Note: Deployment of the WebSphere Adapter for SAP Software direct as a
resource adapter on the server and use of the connection properties
specified on the server, are not supported in the current release of the
adapter.
20.Specify the J2C Authentication Entry that you configured in a prerequisite
task.
.
Attention: Do not fill the username and password fields directly in this
panel. Otherwise the password is stored in clear in a configuration file. For
security reasons, always use the J2C Authentication Data Entry field
instead.
21.Specify the SAP connection properties Refer to Figure 12-133.
22.Click Finish to generate all artifacts.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1267
1268
At this point, the SAP Outbound interface is ready to be used in the further
development of the mediation module. In the next stage, you test the SAP
Outbound interface with the integrated test client.
12.6.3 Deployment
You can deploy the module on the WebSphere ESB Server or the WebSphere
Process Server. In this scenario, you use WebSphere ESB Server. Follow these
steps:
1. Start the WebSphere ESB Server. Refer to Figure 12-134.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1269
2. Rebuild your project to make sure that all artifacts are generated. Select
Project Clean as shown in Figure 12-135. In the confirmation select your
project or rebuild all projects.
3. Add the project to the server. In the server view, right-click WebSphere ESB
Server and select Add and remove projects as shown in Figure 12-136.
1270
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1271
1272
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1273
Value
Comment
ReceiverPort
SAPxxx
PartnerTypeOfSender
LS
NameOfBasicType
MATMAS05
PartnerNumberOfSender
ITSO_LSYS
NameOfTableStructure
EDI_DC40
Client
800
LogicalMessageType
MATMAS
PartnerNumberOfRecipient
xxxCLNTxxx
PartnerTypeOfRicipient
LS
1274
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1275
Value
Comment
Msgfn
004
Change
MatNr
1500-700
Material to change
Matkl
01002
Material class
Bismt
P-xyz-700
Meins
CSE
Unit of measurement
1276
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1277
7. You can store the inserted SapMatmas05 record in a data pool for later
reuse. Right-click the SapMatmas05[0] record and select Add Value to Pool
as shown in Figure 12-144.
8. In the Value Name dialog box, click OK. Refer to Figure 12-145.
1278
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1279
11.Select the SapMatmas05 record that you want to copy and click OK as shown
in Figure 12-147.
1280
12.To make the three records targeting different materials, change the data in
SapMatmas05E2maram005 for each record as shown in Table 12-5.
Table 12-5 Change SapMatmas05E2maram005 data
MatNr
1500-700
1500-710
1500-720
Material to change
Bismt
P-xyz-700
P-xyz-710
P-xyz-720
13.When finished preparing the data, click Continue to send the IDoc to SAP.
Refer to Figure 12-148.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1281
14.In the SAP GUI open the transaction WE02 (IDoc List). You can check the
received IDocs. Refer to Figure 12-149.
12.6.5 Conclusion
This scenario demonstrated how you can configure the WebSphere Adapter to
transfer a collection of IDoc messages to the SAP system. This kind of
interaction with SAP is very powerful and can send batch IDocs. It is often used
for system replications or system-to-system transfers. WebSphere Adapter for
SAP Software sends these objects in one message containing a set of IDocs
representing the single business objects to SAP.
1282
bd10
WID 6.0.1.2
Testclient
SCA
ITSOSAPWebSphereALEInbound
ALE
TCP/SAPRFC
MATMAS05
ITSO.SAP.1
Adapter 6.0.1
RAR
ITSO.IBM.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1283
12.7.2 Development
The section includes following steps:
Creating a Shared Library
Creating a business process module
Extending the mediation module
1284
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1285
1286
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1287
3. Right-click the new module and select Open Dependency Editor as shown
in Figure 12-156.
1288
4. Add ITSOCommonLib as the required library, then save and close the editor.
Refer to Figure 12-157.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1289
5. Open the assembly editor, in the palette, select Export icon and place the
Export into the pane. On the Export component, select Add Interface as
shown in Figure 12-158. Select the interface ITSOMaterial and click OK.
6. In the palette, click the Process icon and create a process component. Refer
to Figure 12-59.
1290
7. Connect the Export and the Process component together. In the confirmation
dialog box, click OK.
8. Right-click the process component and click Generate Implementation as
shown in Figure 12-60. Select OK on the location dialog box.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1291
9. Add a Java snippet below the Receive action. Refer to Figure 12-162.
1292
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1293
1294
2. Open the Assembly Editor and add an Import component from the palette.
Refer to Figure 12-166.
3. Remove the Java component and connect the Mediation component with the
Import.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1295
5. Right-click the import again and select Select Service to Import as shown in
Figure 12-169.
1296
6. In the SCA Export Selection dialog box, select Export1 of the business
process module that you developed in the previous task. Click OK. Refer to
Figure 12-170.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1297
1298
12.7.3 Deployment
This section explains how to deploy the project that you created in a WebSphere
Process Server environment. Follow these steps:
1. In the Server view, right-click WebSphere Process Server and select Start
as shown in Figure 12-172.
2. Rebuild your project to make sure that all artifacts are generated. Select
Project Clean in the menu. In the confirmation, rebuild all projects.
3. After the server is started, in the Server view, right-click WebSphere Process
Server and select Add and remove Projects as shown in Figure 12-173.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1299
1300
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1301
12.7.5 Conclusion
This scenario demonstrated how you can easily reuse a module, implementing
an SAP ALE Inbound scenario, designed for WebSphere Enterprise Service Bus
in a WebSphere Process Server environment. Also the powerful additional
options of a WebSphere Process Server could be used.
Every WebSphere Adapter for SAP Software project can be extended very
easily. This also allows a reuse of investment if a company starts with a
WebSphere Enterprise Service Bus environment and then upgrades to a
WebSphere Process Server.
WID 6.0.1.2
Testclient
SCA
ITSOWebSphereSAPALEOutbound
Adapter 6.0.1
RAR
TCP/SAPRFC
IDoc
ITSO.IBM.1
1302
ALE
MATMAS05
( ALEAUD )
ITSO.SAP.1
Attention: This is the setup that we used for this book. The operating system
and version number of products might be different in your environment.
Always apply the latest fix pack.
12.8.2 Development
The section includes the following steps:
Creating a Shared Library
Extending the mediation module
Creating a business process module
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1303
1304
7. This is the place to put in a mediation, where you can change or map the
messages. In this scenario, the message is passed unchanged. In the lower
pane, connect Request - executeSAPMatmas05:SAPOutboundInterface to
Invoke - executeSAPMatmas05:SAPOutboundInterfacePartner as shown in
Figure 12-179.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1305
9. In the lower pane connect Response executeSAPMatmas05:SAPOutboundInterfacePartner to Response executeSAPMatmas05.:SAPOutboundInterface as shown in Figure 12-180.
10.Save and close the mediation component and the assembly editor.
1306
5. Open the assembly editor, in the palette, select the Import icon, and place
the Import into the pane. On the Import component, select Add Interface.
Select the SAPOutboundInterface interface and click OK as shown in
Figure 12-81.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1307
1308
9. In the palette, click the Process icon and create a process component.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1309
1310
12.The Business Process Editor opens. Place a new Invoke action between the
Receive and Reply action as shown in Figure 12-185.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1311
12.8.3 Deployment
This section explains how to deploy the project that you created in a WebSphere
Process Server environment. Follow these steps:
1. In the Server view, right-click WebSphere Process Server and select Start.
2. Rebuild your project to make sure that all artifacts are generated. Select
Project Clean in the menu. In the confirmation rebuild all projects.
3. After the server is started, in the Server view, right-click WebSphere Process
Server and select Add and remove Projects.
4. Add the ITSOWebsphereALEOutboundApp and ITSOWPSALEOutboundApp
to the configured projects.
1312
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1313
3. Per default, the current component is tested and the import is emulated. In
this case, the imported service is executed. In Configurations, select
Emulators Import1 and click Remove as shown in Figure 12-188.
1314
5. If the SapMatmas05 data that you used in the SAP ALE Outbound scenario is
stored in the Data Pool, you can reuse it. In the Initial Parameter section,
right-click SapMatmas05 and select Use Value from Pool as shown in
Figure 12-189.
In the Data Pool dialog box, filter for type SapMatmas05, select
SapMatmas05, and click OK. Refer to Figure 12-190. The data are copied to
the Initial Parameter section.
If there is already data in the pool, you can reuse that data and you can skip
to step 10 on page 1320. Otherwise, you need to enter the data manually and
need to continue with the next step.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1315
6. If the data is not present in the data pool, in the Initial Parameters section,
navigate to the SapIDocControlRecord and fill in the initial request parameter.
Refer to Figure 12-191.
Table 12-6 shows the required parameters of the SapIDocControlRecord.
Table 12-6 SapIDocControlRecord
1316
Parameter
Value
Comment
ReceiverPort
SAPxxx
PartnerTypeOfSender
LS
NameOfBasicType
MATMAS05
PartnerNumberOfSender
ITSO_LSYS
NameOfTableStructure
EDI_DC40
Client
800
LogicalMessageType
MATMAS
PartnerNumberOfRecipient
xxxCLNTxxx
PartnerTypeOfRicipient
LS
Value
Comment
Msgfn
004
Change
MatNr
1500-700
Material to change
Matkl
01002
Material class
Bismt
P-xyz-700
Meins
CSE
unit of measurement
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1317
1318
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1319
10.Click Continue to send the IDoc to SAP. In the Deployment Location dialog
box, select WebSphere Process Server as deployment location and click
Finish. Refer to Figure 12-194.
1320
11.In the SAP GUI open the transaction WE02 (IDoc List). The received IDoc
can be checked. Refer to Figure 12-195.
12.8.5 Conclusion
This scenario demonstrated how you can reuse a module, implementing an SAP
ALE Outbound scenario, designed for WebSphere Enterprise Service Bus in a
WebSphere Process Server environment. Also, you can use the powerful
additional options of a WebSphere Process Server.
Every WebSphere Adapter for SAP Software project can be extended very
easily. This also allows a reuse of investment if a company starts with an
WebSphere Enterprise Service Bus environment and then upgrades to a
WebSphere Process Server.
Chapter 12. Adapter-based integration to SAP: WebSphere Adapter for SAP Software ALE scenarios
1321
1322
13
Chapter 13.
Adapter-based integration to
SAP: WebSphere Business
Integration Adapter
scenarios
This chapter begins with an overview of the implemented scenarios. It then
describes the preparations that are common to all the scenarios. The preparatory
steps include installing the WebSphere Business Integration Adapter or
mySAP.com and pre-requisite software, preparing the SAP environment for
event notification, and the development steps that are common to all the
scenarios.
This chapter then describes each scenario separately. While the scenarios are
meant to apply to either WebSphere Enterprise Service Bus or WebSphere
Process Server, the development is slightly different for these two target
environments. This chapter documents the WebSphere Enterprise Service Bus
environment. Scenario A is extended to run on WebSphere Process Server.
1323
1324
ITSO.SAP.2
WebSphere MQ 5.3
Attention: This is the setup that we used for this book. It reflects the current
support statements for Windows environment. The operating system and
version number of products might be different in your environment. Always
apply the latest fix packs.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1325
1326
13.3 Preparation
As pointed out in the scenario overview, the scenarios differ in the configuration
of messaging. Another difference is introduced to support the configuration of
more than one scenario in the same environment. The connector is named
differently for each scenario. This naming difference then carries over to the
development process.
There are common preparation steps for both scenarios. These common steps
include software installation and configuration in both the WebSphere and SAP
environments.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1327
1328
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1329
1330
d. You can accept the default installation path or choose another one. Then,
click Next. Refer to Figure 13-7.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1331
f. Click Yes to Install JRE as the System JVM as shown in Figure 13-9.
g. Review the current settings summary and click Next to start copying files.
Refer to Figure 13-10.
1332
h. In the Install Complete dialog box, click Finish to close the wizard as
shown in Figure 13-11.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1333
1334
Ignore the missing software prerequisite warning if present, and click Launch
WebSphere MQ Installer.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1335
7. Read the license agreement and then select I accept the terms in the
license agreement in the License Agreement dialog box. Click Next as
shown in Figure 13-15.
1336
8. Select Custom in the Setup Type dialog box. (A Typical installation does not
select the Java Messaging feature. See step 10). Click Next as shown in
Figure 13-16.
9. Select the folder for all three destination dialog boxes (only the first one is
shown in the figure) and click Next to continue. Refer to Figure 13-17.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1337
10.Select the Server and Java Messaging features and click Next. Refer to
Figure 13-18.
Note: The adapter in the configuration needs the JMS libraries and does
not start if it cannot find them.
11.Confirm the current settings and click Install as shown in Figure 13-19.
1338
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1339
14.Click Finish in the confirmation dialog box as shown in Figure 13-22. The
installation is complete.
15.In the Welcome to the Prepare WebSphere MQ Wizard dialog box, click
Cancel (Figure 13-23). You perform the step to prepare WebSphere MQ later
using a script.
1340
3. Wait for the Welcome dialog box. Click Next to continue (Figure 13-25).
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1341
4. Read the license agreement and select I accept the terms in the license
agreement in the Software License Agreement. Then, click Next
(Figure 13-26).
5. Do not select the IBM WebSphere InterChange Server option and click Next
as shown in Figure 13-27.
1342
6. Click Browse or enter the installation directory and click Next to continue as
shown in Figure 13-28.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1343
8. Ensure that the correct Java library is completed (Figure 13-30) and click
Next to continue.
9. Accept the value in the Program Group dialog box and click Next as shown in
Figure 13-31.
1344
10.Confirm the information in the location and features dialog box and click Next
as shown in Figure 13-32.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1345
1346
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1347
Figure 13-36 WebSphere Business Integration Adapter installation language dialog box
Figure 13-37 WebSphere Business Integration Adapter installation welcome dialog box
4. Read the license agreement and select I accept the terms in the license
agreement in the Software License Agreement. Then, click Next
(Figure 13-38).
1348
Figure 13-38 WebSphere Business Integration Adapter installation license dialog box
5. Click Browse or enter the installation directory and then click Next as shown
in Figure 13-39.
Figure 13-39 WebSphere Business Integration Adapter installation directory dialog box
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1349
6. Review the summary and click Next to continue as shown in Figure 13-40.
Figure 13-40 WebSphere Business Integration Adapter installation summary dialog box
7. Leave all the fields blank (you do not use IBM WebSphere InterChange
Server in this scenario) as shown in Figure 13-41 and click Next.
1350
8. Accept the default Program Group and click Next as shown in Figure 13-42.
9. In the completion confirmation dialog box, click Finish to close the wizard as
shown in Figure 13-43.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1351
Description
connectors\SAP\bapi\client
connectors\SAP\bapi\server
connectors\SAP\dependencies
connectors\messages
connectors\SAP\samples
connectors\SAP\CWSAP.jar
connectors\SAP\start_SAP.bat
repository\SAP
lib
bin
Important: Always apply the latest fix packs as explained in the product
documentation.
1352
You can download the SAP JCo for the appropriate operating system from the
SAP Web site at:
http://service.sap.com/connectors
An SAPNet account is required to access the site and to download the SAP JCo.
After you extract the SAP JCo files, copy these files:
librfc32.dll
sapjco.jar
sapjcorfc.dll
To the following directories:
connectors\SAP
ODA\SAP
Note: Install the Microsoft files msvcp71.dll and msvcr71.dll files in the
Windows system path. See SAP Note 684106 on the SAP Service
Marketplace Web site (http://service.sap.com) for additional details. The
DLL files are included in the attachments section of the SAP Note along with
instructions on how to install them. You must have a valid user name and
password for the SAP Service Marketplace to view the SAP Note.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1353
1354
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1355
4. Expand Events, and note the details on Event created (Figure 13-46).
1356
5. Use SAP Business Workflow to hook up on the workflow event. Use the
transaction code SWETYPV and scroll down to the area of the Object Type.
Refer to Figure 13-47.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1357
6. Click New Entries to create a new entry for the event (Figure 13-48).
Example 13-1 gives the details of the values to create a new entry for a
workflow event.
Example 13-1 Values to create a new entry for a workflow event
1358
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1359
1360
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1361
1362
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1363
1364
Figure 13-56 Start Business Object wizard through New Using ODA
5. Click Find Agents to get a list of the running ODAs and select the Located
agent and click Next. Refer to Figure 13-57.
6. Specify the SAP back-end system with values shown in Table 13-2. Then,
click Next.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1365
Value
User Name
itsouser
Password
itso1
Client
800
System Number
00
AS Hostname
ITSO.SAP.2
File Destination
C:\repository\export\ITSO_SAP
Note: You can use saved system profiles to avoid typing errors by opening the
Current profile select box. Refer to Figure 13-58.
1366
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1367
1368
8. ODA now generates the object definition. Make sure that the Prefix Value is
correct or change it in the additional values dialog box. Refer to Figure 13-61.
9. Click Yes in the dialog box that warns you about the 512 bytes limitation and
select the attributes to be included (Figure 13-62). Then, in the next dialog
box, click OK.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1369
10.Save Business object definitions as shown in Figure 13-63 and click Finish.
Important: The business object name has to match the value that you
entered earlier in the configuration value field (for example, SAP47_aufk).
Check that the Retrieve verb of the business object is set to the value
sap.bapimodule.vDynRetBOH.
11.Close the Business Object Designer.
1370
3. Wait for the message Server server1 open for e-business to display in the
Console view as shown in Figure 13-64.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1371
WID 6.0.1.2
Testclient
Event
Notification
2
SCA
JMS
ITSOSAPWebSphereAEN
4
SI Bus
ITSO_SAP_1/DELIVERYQUEUE
ITSO.IBM.1
ITSO.SAP.2
13.5.2 Configuration
This section includes following steps:
Configuring the SAP connector
Deploying WebSphere Business Integration artifacts
Creating a batch file on the desktop which starts the connector
1372
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1373
3. In the New Connector dialog box (Figure 13-67), follow these steps:
a. Enter ITSO_SAP_1 as the Name.
b. Select WAS in the System Connectivity droplist.
c. Select SAPConnectorTemplate from the Template Name list.
d. Click OK.
1374
Property
Value
ApplicationName
ITSO
jms MessageBrokerName
WBIA_QM:WBIA.JMS.SVRCONN:localhost:5558
jms Username
jms Password
MessageFileName
SAPConnector.txt
RepositoryDirectory
C:\repository\ITSO_SAP
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1375
5. To determine the port for the JMS MessageBrokerName, look it up using the
administrative console under Servers Application servers server1
Communications Ports. Look for SIB_MQ_ENDPOINT_ADDRESS. Refer
to Figure 13-69.
6. In the Connector-Specific Properties tab, enter the values listed in Table 13-4.
Refer to Figure 13-70.
Table 13-4 Connector-Specific Properties values
1376
Property
Value
ApplicationUserName
itsouser
ApplicationPassword
itso1
Modules
Extension
Client
800
Hostname
ITSO.SAP.2
Sysnr
00
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1377
1378
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1379
5. Clear all except the AgentDelivery operation as shown in Figure 13-76. This
is the only operation that is used. Click Next.
1380
The directory after the export procedure includes the following files:
ITSO_SAP_1.cfg
ITSO_SAP_1.wsdl
ITSO_SAP_1JMSBindings.wsdl
ITSO_SAP_1JMSService.wsdl
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1381
13.5.3 Development
This section explains how to develop the SCA component. Follow these steps:
1. Switch to WebSphere Integration Developer.
2. In the Business Integration view, right-click to bring up the context menu.
Select New Mediation Module as shown in Figure 13-78.
1382
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1383
1384
6. In the Configure Settings for Discovery Agent dialog box, browse for the
Connector configuration file, and Business object schema directory as
created in the configuration section. Click Next. Refer to Figure 13-82.
Figure 13-82 ESD wizard settings for discovery agent dialog box
7. In the Find and Discover Enterprise Services dialog box, click Run Query.
Refer to Figure 13-83.
Figure 13-83 ESD wizard find and discover service dialog box - Run Query
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1385
8. Select the discovered object SAP47_aufk and click Add (Figure 13-84).
Figure 13-84 ESD wizard find and discover service dialog box - Add
1386
10.This completes the Find and Discover Enterprise Services dialog box.
Click Next as shown in Figure 13-86.
Figure 13-86 Completed ESD wizard find and discover service dialog box
11.Specify the folder in which the artifacts will be generated and click Finish
(Figure 13-87).
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1387
1388
14.Create new Java component, and wire the mediation flow component to the
Java component. Refer to Figure 13-90.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1389
15.Click OK in the Add Wire and in the following Add Reference dialog boxes as
shown in Figure 13-91.
1390
17.In the Generate Implementation dialog box, select or create a new package
and click OK. Refer to Figure 13-93.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1391
19.In the Assembly diagram, click the mediation component and select
Generate implementation (Figure 13-95). Click Yes in the Open dialog box.
20.Select the folder for the implementation, and click OK. Refer to Figure 13-96.
1392
21.Connect the source and target operations, and wire the request to the invoke
node. Refer to Figure 13-97.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1393
13.5.4 Deployment
Deployment of the just developed module into the WebSphere Enterprise
Service Bus is fully supported by the IBM WebSphere Integration Developer
tooling. It creates all the artifacts and queue definitions.To deploy to WebSphere
Enterprise Service Bus, follow these steps:
1. In the WebSphere Integration Developer servers view right-click WebSphere
ESB Server v6.0 and select Add and remove projects. Refer to
Figure 13-98.
1394
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1395
1396
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1397
3. Make sure that WebSphere ESB Server v6.0 is selected, and click Finish.
Refer to Figure 13-103.
1398
4. Start the connector using the batch file startAdapter.bat that was created
earlier.
5. Log into SAP.
6. Navigate to the Create Maintenance Order transaction IW31.
7. Use the transaction to trigger a new MaintOrder.CREATE event
(Figure 13-104).
Note: The order needs to be created correctly to produce the notification. One
way to do it is to find an existing valid maintenance order using transaction
code IW33 - order type PM01. Display detail, note functional location. In the
Central Header panel, complete the missing detailorder description and
cost.
You can confirm the event notification using the IBM WebSphere Business
Integration Station, Management tab, log, or current events functions.
Transactions /CWLD/DISPLAY_LOG or /CWLD/ED.
You can use WebSphere Business Integration: Archived Events (/CWLD/EM)
to resubmit previous event.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1399
8. The test client window is now showing the caught event (Figure 13-105).
13.5.6 Conclusion
This scenario demonstrated how you can use the WebSphere Enterprise Service
Bus to process event notifications from SAP system using WebSphere Business
Integration Adapter or mySAP.com configured as SI Bus client. An application
was assembled to listen for an SAP event .Test client was used to display the
event data.
1400
WID 6.0.1.2
Testclient
Event
Notification
2
SCA
JMS
ITSOSAPWebSphereAEN
4
SI Bus
WMQ 5.3
ITSO_SAP_1/DELIVERYQUEUE
SCAAPPLICATIONesbCellBus
(XMTQ)
ITSO.IBM.1
ITSO.SAP.2
13.6.2 Configuration
The component that allows messages to be exchanged between a WebSphere
Application Server and a WebSphere MQ is WebSphere MQ link. To the
WebSphere MQ link engine, the WebSphere MQ queue manager appears to be
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1401
a foreign bus. To the queue manager, the WebSphere MQ link engine appears to
be another WebSphere MQ queue manager. Figure 13-107 depicts the nature of
the configuration that needs to be performed. Refer to Table 13-5.
BUS:BUS1
ALIASDEST (AQ1)
BUS1.TO.QM01
MQLINK (TO.QM01)
SEND
TARGID: LQ1@QM01
TARG.BUS: FB.QM01
S BUS1.TO.QM01
R QM01.TO.BUS1
R
LQ1
QM01.TO.BUS1
BUS1
(XMITQ)
R
= receiver channel
= sender channel
SCA.APPLICATION.esbCell.Bus
FB.QM01
ItsoQmgr1
TO.QM01
TO.OtsoQmgr1
BUS1.TO.QM01
Bus1.2.ItsoQmgr1
QM01.TO.BUS1
ItsoQmgr1.2.Bus1
ITSO_SAP/REQUESTQUEUE
RQ1
ITSO_SAP/DELIVERYQUEUE
ITSO_SAP/RESPONSEQUEUE
1402
RQ1
RNAME (Q1)
RQMNAME (BUS1)
XMITQ (BUS1)
PUT
APPLICATION
APPLICATION
(QMGR:BUS1)
(QMGR:BUS1)
Configuring WebSphere MQ
To configure WebSphere MQ, follow these steps:
1. Define queue manager [ItsoQmgr1].
2. Define sender channel [ItsoQmgr1.2.Bus1].
3. Define receiver channel [Bus1.2.ItsoQmgr1].
4. Define transmission queue [SCA.APPLICATION.esbCell.Bus].
Important: The WebSphere MQ link receiver channel must have the same
name as its partner WebSphere MQ Sender channel, and vice versa.
5. Define the queues that are required by the adapter. The connector name is
ITSO_SAP. You can use the WebSphere MQ Explorer or the command line
with the configure_mq.bat script that is included with WebSphere Business
Integration Adapter or mySAP.com. Refer to Example 13-6.
Example 13-6 Configuring WebSphere MQ to be used with the scenario
C:\WebSphere\WBIAdapters\templates\configure_mq.bat ItsoQmgr1 MQ_SAP_Setup.txt
****************************************************
* WebSphere MQ Link will require sender, and receiver channels
* First define the transmission queue for the sender channel.
****************************************************
DEFINE QLOCAL('SCA.APPLICATION.esbCell.Bus') USAGE(XMITQ)
*******************************************************
* Define the channel, channel type and transport method
* SI Bus uses port 5558 for embedded messaging by default
*******************************************************
DEFINE CHANNEL('ItsoQmgr1.2.Bus1') CHLTYPE(SDR)
XMITQ('SCA.APPLICATION.esbCell.Bus') CONNAME('localhost(5558)')
TRPTYPE(TCP)
DEFINE CHANNEL('Bus1.2.ItsoQmgr1') CHLTYPE(RCVR) TRPTYPE(TCP)
****************************************************
* Define the SAP ADAPTER QUEUES
****************************************************
DEFINE QLOCAL(ITSO_SAP/ADMININQUEUE)
DEFINE QLOCAL(ITSO_SAP/ADMINOUTQUEUE)
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1403
1404
3. In the content pane, under Topology, click Foreign buses. A list of foreign
buses is displayed.
4. Click New to start the foreign bus definition wizard.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1405
5. Specify the following properties for the new foreign bus (Figure 13-109):
a. Name, [FB.ItsoQmgr1]
b. Description (optional)
c. Select Send allowed.
d. Click Next.
1406
6. Select the Routing type for the foreign bus as Direct, WebSphere MQ Link.
Click Next. Refer to Figure 13-110.
7. Specify the Routing definition properties for the foreign bus (accept defaults).
Click Next. Refer to Figure 13-111.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1407
8. Review the Summary. Refer to Figure 13-112. Click Finish to create the
foreign bus.
1408
e. Review the default values in the remaining fields on the panel, modify any
values as necessary. Refer to Figure 13-113. Click Next.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1409
4. Review the default values in the remaining fields on the panel, and modify
any values as necessary. Refer to Figure 13-114. Click Next.
1410
b. Review the default values in the remaining fields on the panel, using the
field help in the Help pane to obtain more information about each field.
Modify any values as necessary. Refer to Figure 13-115. Click Next. Refer
to Figure 13-115. Click Next.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1411
1412
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1413
1414
3. In the New Connector dialog box (Figure 13-120), follow these steps:
a. Enter ITSO_SAP_2 as the Name.
b. Select WAS in the System Connectivity droplist.
c. Select SAPConnectorTemplate from the Template Name list. Click OK.
Value
ApplicationName
WED
jms MessageBrokerName
ItsoQmgr1
jms Username
jms Password
MessageFileName
SAPConnector.txt
RepositoryDirectory
C:\repository\ITSO_SAP
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1415
1416
Value
ApplicationUserName
itsouser
ApplicationPassword
itso1
Modules
Extension
Client
800
Hostname
ITSO.SAP.2
Sysnr
00
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1417
7. From File menu, save the connector configuration into the project. Refer to
Figure 13-124.
8. Save the connector configuration to file
c:\repository\export\ITSO_SAP\TSO_SAP_2.cfg.
1418
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1419
1420
The directory includes the following files after the export procedure:
ITSO_SAP_2.cfg
ITSO_SAP_2.wsdl
ITSO_SAP_2JMSBindings.wsdl
ITSO_SAP_2JMSService.wsdl
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1421
13.6.3 Development
This section explains how to develop the SCA component. Follow these steps:
1. Switch to WebSphere Integration Developer.
2. In the Business Integration view, right-click to bring up the context menu.
Select New Mediation Module as shown in Figure 13-130.
1422
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1423
1424
6. In the Configure Settings for Discovery Agent dialog box, browse for the
Connector configuration file, and Business object schema directory as
created in the previous steps. Click Next. Refer to Figure 13-134.
Figure 13-134 ESD wizard settings for discovery agent dialog box
7. In the Find and Discover Enterprise Services dialog box, click Run Query.
Refer to Figure 13-135.
Figure 13-135 ESD wizard find and discover service dialog box - Run Query
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1425
Figure 13-136 ESD wizard find and discover service dialog box - Add
1426
10.This completes the Find and Discover Enterprise Services dialog box, click
Next. Refer to Figure 13-138.
Figure 13-138 Completed ESD wizard find and discover service dialog box
11.Specify the folder for the artifacts that will be generated and click Finish.
Refer to Figure 13-139.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1427
1428
14.Create new Java component, and wire the mediation flow component to the
Java component. Refer to Figure 13-142.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1429
15.Click OK in the Add Wire and in the Add Reference dialog boxes. Refer to
Figure 13-143.
1430
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1431
18.In the assembly diagram, click the mediation component, and select
Generate implementation. Refer to Figure 13-146.
.
19.Select folder for the implementation, and click OK. Refer to Figure 13-147.
1432
20.Connect the source and target operations, and wire the request to the invoke
node. Refer to Figure 13-148.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1433
13.6.4 Deployment
Deployment of the just developed module into the WebSphere Enterprise
Service Bus UTE is fully supported by tooling. It creates all the artifacts and
queue definitions. (AEN does not use any request queue, so there is no need to
define any alias for it).
To deploy to WebSphere Enterprise Service Bus, follow these steps:
1. In the WebSphere Integration Developer servers view right-click the
WebSphere ESB Server v6.0 and select Add and remove projects as
shown in Figure 13-149.
1434
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1435
1436
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1437
3. Make sure that WebSphere ESB server v6.0 is selected, and click Finish as
shown in Figure 13-154.
1438
4. Start the connector using the batch file startAdapter.bat created earlier.
5. Log into SAP.
6. Navigate to the Create Maintenance Order transaction IW31.
7. Use the transaction to trigger a new MaintOrder.CREATE (Figure 13-155).
Note: The order needs to be created correctly to produce the notification. One
way to do it is to find an existing valid maintenance order using transaction
code IW33 - order type PM01. Display detail, note functional location. In the
Central Header panel, complete the missing detailorder description and
cost.
You can confirm the event notification using the IBM WebSphere Business
Integration Station, Management tab, log, or current events functions.
Transactions /CWLD/DISPLAY_LOG or /CWLD/ED.
You can use WebSphere Business Integration: Archived Events (/CWLD/EM)
to resubmit previous event.
Chapter 13. Adapter-based integration to SAP: WebSphere Business Integration Adapter scenarios
1439
The test client window now shows the caught event. Refer to Figure 13-156.
13.6.6 Conclusion
This scenario demonstrated how you can use the WebSphere Enterprise Service
Bus to process event notifications from SAP system using WebSphere Business
Integration Adapter or mySAP.com configured as MQ Client. WebSphere MQ
was configured as a foreign bus. The scenario assembled an application to listen
for an SAP event and used the test client to display the event data.
1440
Appendix A.
Additional material
This book refers to additional material that you can download from the Internet as
described in this appendix.
1441
Description
All compressed files
Scenario A - ESB-to-SAPXI
Scenario B - WAS-to-SAPXI
Scenario C - SAPXI-to-ESB
Scenarios for chapter 7
Scenarios for chapter 11
1442
Glossary
Administration Console_The IBM Administrative
Console is the Web interface to the Application
Server, Process Server, or Enterprise Service Bus.
It offers powerful options for configuration and
deployment.
Bar file_Abbreviation for message broker archive
file, used to store compiled message flows,
message sets and other code to be deployed to an
execution group.
binding_Defines the kind of interaction as well as
the caller and sender. It could be used to connect
different SCA Modules together.
BIP message_An event message produced by
WebSphere Message Broker, identifiable by its BIP
number, for example BIP1003.
BO_A Business Objects are representations of data
structure used in business processes.
BPEL_The Business Process Execution Language
is a open standard to store process definitions in a
file.
Breakpoint_Used as a point to stop the flow of a
message in a message flow when the flow debugger
is attached.
Broker_A broker is a set of execution processes
that host and run message flows.
Broker Administration perspective_This is the
perspective in the Message Brokers Toolkit which is
used for administering and monitoring objects in the
broker domain. This perspective is also used for
changing the configuration and message flow
deploy operations.
1443
1444
Glossary
1445
1446
HDR
Hierarchical Dynamic
Retrieve
ALE
HTTP
APIs
Application Programming
Interfaces
IBM
International Business
Machines Corporation
BAPI
Business Application
Programming Interface
ICM
Internet Communication
Manager
BI
Business Intelligence
IDE
BO
Business Objects
integrated development
environment
BOR
IDOC
Intermediate Document
BPC
IBM SICC
BPEL
ITSO
BPM
Business Process
Management
International Technical
Support Organization
J2C
Java 2 Connector
BSP
J2EE
CAF
Composite Application
Framework
JCA
JCo
Java Connector
CBE
JDO
CCMS
Computing Center
Management System
JMS
JSP
JavaServer Page
CEI
JSPs
JavaServer Pages
CMP
Container-managed
persistence
KM
Knowledge Management
CTSC
Collaboration Technology
Support Center
KPIs
LS
Logical System
Enterprise application
integration
LUW
MATMAS
Message Type
EAR
MDM
EIS
Enterprise information
systems
ODA
PMI
Process Monitoring
Infrastructure
EAI
EJB
Enterprise JavaBeans
ERP
QoS
Quality of Service
ESB
RAD
GUI
Rational Application
Developer
1447
RFC
RFM
SCA
Service component
architecture
SDO
SIB
SIP
SLD
SMO
SMTP
SOA
Service-oriented architecture
SQL
SSL
TCP
TRPTYPE
UDDI
Universal Description,
Discovery, and Integration
WebAS
WSDL
WSIL
XML
XSD
XSLT
XSL transformation
1448
Related publications
We consider the publications that we list in this section particularly suitable for a
more detailed discussion of the topics that we cover in this book.
1449
Online resources
These following are also relevant as further information sources:
Detailed information about IBM WebSphere products is available at:
http://www.ibm.com/software/websphere
You can find a huge collection of material at IBM Developer Works:
http://www.ibm.com/developerworks/websphere
WebSphere Message Broker V6.0 online documentation is available at:
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?to
pic=/com.ibm.etools.mft.doc/ah24100_.htm
High availability document for WebSphere Message Broker is available at:
http://www-128.ibm.com/developerworks/websphere/library/techarticles
/0403_humphreys/0403_humphreys.html
WebSphere Message Broker requirements
http://www-306.ibm.com/software/integration/wbimessagebroker/require
ments/
Configuring dynamic authentication in WebSphere Adapter for SAP
http://www-128.ibm.com/developerworks/websphere/library/techarticles
/0608_martinez/0608_martinez.html
SupportPacs
http://www.ibm.com/software/integration/support/supportpacs
1450
Related publications
1451
1452
Index
A
ABAP extension module 117
ABAP transports 117
ABAP workbench function builder 63
abstract message interface 215
adapter based communications 5
adapter engine 66
adapter type 183
ALE (Application Link Enabling) 7, 5153, 77, 109,
111, 113114, 116, 119, 139, 825, 833, 880, 882,
904, 912, 959, 1159, 11611162, 1182, 1236, 1258,
1283, 1302
ALE distribution model 113114, 116, 119
ALEAUD 139
APIs (Application Programming Interfaces) 53
application link enabling 825
Application Link Enabling (ALE) 7, 5153, 77, 109,
111, 113114, 116, 119, 139, 825, 833, 880, 882,
904, 912, 959, 1159, 11611162, 1182, 1236, 1258,
1283, 1302
Application Programming Interfaces (APIs) 53
assemble 19
assembly diagram 534
assembly editor 355
asynchronous 231
B
BAPI 7, 5152, 6364, 75, 332, 383, 438, 778, 851,
951, 970, 1005, 1047, 1083, 1117, 1182
BAPI logical unit of work 953
BapiUserExistenceCheckQuery_MT.xsd 535
BapiUserExistenceCheckResponse_MT.xsd 535
BD10 901
BD64 834
BO (Business Objects) 344
BPC Explorer 625, 646, 777, 852, 873874, 1139,
1155
BPEL (Business Process Execution Language) 54
BPM (Business Process Management) 19
broker 46, 676
broker administration navigator 683
broker archive 726
broker domain 676
BSCCLIENT800 835
Business Application Programming Interface (BAPI)
7, 5152, 6364, 75, 332, 383, 438, 778, 851, 951,
970, 1005, 1047, 1083, 1117, 1182
business event producer 121
business integration perspective 332
business integration view 337
business landscape 156
Business Object editor 413
Business Object maps 45
Business Objects (BO) 344
Business Process Choreographer Explorer (BPC
Explorer) 625, 646, 777, 852, 873874, 1139, 1155
business process editor 453
business process engine 67
business process execution 5
Business Process Execution Language (BPEL) 54
Business Process Management (BPM) 19
business systems 68
C
callout response node 431
CBE 42
CCMS 69
CEI 42
central integration broker 15
channels folder 516
child nodes 360
cloudscape database 623
cloudview 623
CMP (Container Managed Persistence) 62
collaboration knowledge 65
Common Base Event (CBE) 42
Common Event Infrastructure (CEI) 42
commonj.sdo.DataObject 25
communication patterns 5
compiler 26
computational paradigm 676
Computing Center Management System (CCMS)
69
condition editor 205
configuration 66
configuration manager 48, 676
1453
D
data graph 26
data object 25
data record 63
data types 344
dead letter queue 678
default messaging provider window 531
delta 685
deploy 20
deployment descriptor 399
design 66
integration builder 163
development tools 29
direct connectivity 14
distribution engine 65
document style 791
doGet method 897
doPost method 896
dynamic retrieve 117
dynamic transactions 117
E
EAI 64
EAR 50, 56, 377, 1184
EAR project 377
eclipse 47
edit interface mapping 177
EIS 12, 1416, 4951, 112114, 1194
EJB binding 43
emulators 555
enhanced event notification 120
Enterprise Application Archive (EAR) 50, 56, 377,
1184
1454
F
file system 534
foreign bus 498
function builder 434
G
generic Web service client 392
getUserList 583
governance and processes 36
H
HDR (Hierarchical Dynamic Retrieve) 138, 953
Hierarchical Dynamic Retrieve (HDR) 138, 953
HTTP request node 92
I
IBM rational application developer 35
IBM SOA Reference Architecture 33
IBM SOA reference architecture 3637
IBM support assistant 41
IBM WebSphere adapter 49
IBM WebSphere application server 35
IBM WebSphere business monitor 36
IBM WebSphere enterprise service bus 35
471
ItsoSoapSenderChannel 181
J
J2EE 28, 39, 49, 56, 6061
Java 22, 2427, 29, 5152, 5556, 6162, 66, 68
Java 2 Enterprise Edition (J2EE) 28, 39, 49, 56,
6061
Java 2 Enterprise Edition Connector architecture
(JCA) 49
Java class libraries 26
Java client 903, 941
Java Data Objects (JDO) 62
Java Database Connectivity (JDBC) 62
Java Message Service (JMS) 41, 48, 50, 75, 77,
98103, 105, 107, 117, 119, 131132, 145, 685,
739
Java platform 28
Java Platform Micro Edition (Java ME) 28
Java Platform Standard Edition (Java SE) 28
Java Runtime Environment (JRE) 29
Java SDK 29
Java snippet 922
Java Software Development Kit (Java SDK) 29
Java Virtual Machine (JVM) 29
JavaServer Page (JSP) 25, 61
JCA 49
JCA adapters 49
JDO 62
JMS 41, 48, 50, 75, 77, 98103, 105, 107, 117,
119, 131132, 145, 685, 739
JMS Adapter 130
JMS adapter 98104, 106, 131
JMS API 98103, 105, 107, 130131
JMS binding 43, 103, 115118, 120, 130
JMS connection factory 530
JMS consumer 146, 213, 495
JMS export 498
JMS invocation 80
JMS libraries 130131
JMS outbound scenarios 210
JMS protocol 130131
JMS provider 54, 99100, 102107, 130132, 141,
495
JMS request messages 132
JMS transport layer 50
JMSCorrelationID 267
JNDI Lookup Name 551
Index
1455
JRE 29
JSP 61
JSP (JavaServer Page) 25
JVM 29
K
key performance indicators (KPIs) 36
methods 27
model 19
MQ client link 77
MQInput 675
MQInput node 675
MQOutput node 675
MQOutputNode 102
multiple BAPI call 953
MyAsynchJmsToSynchRfcBridge 213
L
library 335
library name 533
listen on port number 514
load balancing 48
logging primitive 623
logical messages 63
logical routing rules 147
Logical Unit of Work 1047
Logical Unit of Work (LUW) 137
M
manage 20
mapping editor 364
markup language 397
master configuration 504
master repository 504
mediation base 42
mediation flow components 43
mediation flow editor 357
mediation flows 45
mediation functions 42
mediation layer 42
mediation logic 796
mediation module 129
mediation primitives 43
mediations 42
message brokers toolkit 676
message consumer 98
message definition file 676
message emitter 107
message flow 93, 675
message logger 591
message producer 98
message queuing infrastructure 29
message set 676
messaging backbone 107
messaging engine 505
messaging patterns 5
1456
N
new interface definition 536
Node
esbNode 530
O
object definition 51
Object Discovery Agent (ODA) 53
Object Discovery Agent Development Kit (ODK) 54
object key 69
object-oriented language 27
ODA (Object Discovery Agent) 53
open dependency editor 444
outbound 145
outbound processing 52
outbound scenarios 145
output nodes 675
OutputRoot 763
P
PASSTHRU 763
path reference 490
port 3414 514
Process Monitoring Infrastructure (PMI) 69
programming language 27
properties hierarchy 691
Q
quality of service 13
queue manager clusters 30
queue manager name 509
R
Rational Application Developer (RAD) 128
rational software development platform 47
receiver agreement 187
receiver channel 516
S
SAP API function call 970
SAP exchange infrastructure 83
SAP Exchange Infrastructure (XI) 128
SAP Java Connector (SAP JCo) 51
SAP JCo installation
librfc32.dll 954
msvcp71.dll 954
msvcr71.dll 954
sapjco.jar 954
sapjcorfc.dll 954
SAP NetWeaver 58
SAP NetWeaver Architecture 33
SAP Web Application Server 82
SAP XI configuration 331
SCA (Service component architecture) 23
SCA binding 43
SCA.APPLICATION.esbCell.Bus 500, 522
SDO (Service Data Objects) 23
SE80 778
selectors 45
sender agreement 186
sender channel 516
serialization 549
Service component architecture (SCA) 23
service component architecture module 8687
Service Data Objects (SDO) 23
Service Integration Bus (SIB) 8
Service Message Object (SMO) 42
service references 25
service-oriented architecture (SOA) 4, 14, 20, 23,
T
tagged delimited strings 676
target bus 525
target identifier 526
target runtime 539
target tree 360
technical landscape 155
technical system browser 155
technical systems 68
test client 332
testing 402
text editor 624
third-party systems 68
topology configuration deploy 685
Index
1457
U
Universal Description, Discovery, and Integration
(UDDI) 22
User ITSOUSER 375
User UNKNOWN 376
UserExist_JMSImport 543
UserExistenceIF 354
UserList_JMSMediationFlow 585
UserListInterface 594
UserListResponseBO 580
useroutput 584
userQueryResponse 537
V
validation error 490
virtual interface 778
virtual queue manager 509
visual mapping editor 810
W
Web Service calls 134
Web Service client 82
Web Service consumer. 86
Web Service creation wizard 64
Web Service provider 82
Web Services 21
Web Services binding 43
Web Services Description Language (WSDL) 22
Web Services invocation 80
WebApplication Server (WebAS) 6
WebSphere adapter binding 43
WebSphere administration console 531
WebSphere application server network deployment
42
WebSphere Business Integration Adapter adapter
77
WebSphere Business Integration Adapter Advanced Event notification
SIBus 1371
WebSphereMQ 1371
WebSphere Business Integration Adapter for
mySAP.com) 834, 884, 913
WebSphere business modeler 55
1458
X
XML (Extensible Markup Language) 21
XML Namespace 276
XML Schema Definition (XSD) 55
Index
1459
1460
Connect WebSphere
Service-Oriented
Middleware to SAP
(2.5 spine)
2.5<->nnn.n
1315<-> nnnn pages
Back cover
Connect WebSphere
Service-Oriented
Middleware to SAP
Business
connectivity using
WebSphere
Enterprise Service
Bus, Process Server,
and Message Broker
Integration
scenarios using open
standards and
WebSphere Adapters
Common
broker-to-broker
and direct
communication
patterns
SG24-7220-00
ISBN 0738486205
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed by
the IBM International Technical
Support Organization. Experts
from IBM, Customers and
Partners from around the world
create timely technical
information based on realistic
scenarios. Specific
recommendations are provided
to help you implement IT
solutions more effectively in
your environment.