Escolar Documentos
Profissional Documentos
Cultura Documentos
Lee Gavin Geert Van de Putte Suresh Addala Rajaraman Hariharan Daniel Max Kestin Pushkar Suri Kiran Tatineni
ibm.com/redbooks
International Technical Support Organization Implementing WebSphere Business Integration Express for Item Synchronization May 2004
SG24-6083-00
Note: Before using this information and the product it supports, read the information in Notices on page ix.
First Edition (May 2004) This edition applies to Version 4, Release 3, of IBM WebSphere Business Integration Express for Item Synchronization (product number 5724-F81).
Copyright International Business Machines Corporation 2004. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Part 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 1. UCCnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 The challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 What is UCCnet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Some important terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.1 GLOBALregistry and Item Registry. . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.2 Global Location Number (GLN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.3 Global Trade Item Number (GTIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.4 Target Market (TM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.5 UCCnet Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Current item exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 UCCnet proposed scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6 UCCnet messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6.1 RCIR: Register Catalogue Item Registry . . . . . . . . . . . . . . . . . . . . . 12 1.6.2 CI: Catalogue Item Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6.3 CIP: Catalogue Item Publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6.4 CIN: Catalogue Item Notification. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6.5 CIC: Catalogue Item Confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6.6 Query messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.7 UCCnet message structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7.1 Envelope: transport layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7.2 Transaction: Command layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.8 End-to-End flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.9 Advantage of Item Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Chapter 2. AS2 communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2 What is EDIINT? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3 AS1 and AS2 specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4 What kind of data can you send with AS2? . . . . . . . . . . . . . . . . . . . . . . . . 26
iii
2.5 UCCnet supports the AS2 protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Chapter 3. WebSphere Business Integration Express for Item Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 Technical overview and components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3 Collaboration components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Chapter 4. iSoft Peer-to-Peer Agent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1 Communication features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Data integrity and security characteristics . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3 Administration features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4 Load-balancing and multi-machine setup . . . . . . . . . . . . . . . . . . . . . . . . . 36 Chapter 5. Business case and scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.1 Scenario overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.2 Business process overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.3 Technical process overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.3.1 ItemAdd workflow (add a new item to UCCnet) . . . . . . . . . . . . . . . . 44 5.3.2 CatalogueItemNotification_Add workflow . . . . . . . . . . . . . . . . . . . . . 45 5.3.3 CatalogueItemConfirmation workflow . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.4 Sending email through UCCnet_processWorklist collaboration object subdiagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.4 Component overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Part 2. Install and configure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Chapter 6. About some of the key components . . . . . . . . . . . . . . . . . . . . . 53 6.1 What are collaborations?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.1.1 What collaborations are installed? . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.2 What are business objects? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.2.1 Application-Specific and Generic Business Objects . . . . . . . . . . . . . 56 6.2.2 What are the key business objects? . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.3 What are connectors? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.4 What are maps? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.4.1 What do they do in the solution?. . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.5 What are relationships?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.5.1 Where are they used. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.6 Other tables of interest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.6.1 Audit Log Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Chapter 7. WebSphere BI Express installation and verification . . . . . . . . 69 7.1 JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 7.2 DB2 V8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
iv
WebSphere MQ V5.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 WebSphere Application Server Express V5.0.2 . . . . . . . . . . . . . . . . . . . . 70 Microsoft Visual Studio C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 WebSphere Business Integration Express . . . . . . . . . . . . . . . . . . . . . . . . 71 Installation verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.7.1 Review initial start-up of the InterChange Server . . . . . . . . . . . . . . . 82 7.7.2 Perform WebSphere MQ configuration . . . . . . . . . . . . . . . . . . . . . . . 84 7.7.3 Start the InterChange Server and register it . . . . . . . . . . . . . . . . . . . 85 7.7.4 Review deployed components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.7.5 Switching to Design mode for the ICS . . . . . . . . . . . . . . . . . . . . . . . 91 7.8 ICS monitor in WebSphere Application Server Express . . . . . . . . . . . . . . 92 Chapter 8. WebSphere BI Express configuration. . . . . . . . . . . . . . . . . . . . 95 8.1 Set-up the audit and logging service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 8.2 Load relationship tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.3 Create meta-objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.4 Create and configure connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8.4.1 JTextRWLConnector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.4.2 ISoft Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 8.4.3 PortConnector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 8.5 Create and configure the collaboration objects . . . . . . . . . . . . . . . . . . . . 111 8.5.1 UCCnet_ItemSync collaboration object . . . . . . . . . . . . . . . . . . . . . 112 8.5.2 ItemCommandRouter collaboration object . . . . . . . . . . . . . . . . . . . 119 8.5.3 UCCnetXSD_CIN_Dispatcher collaboration object. . . . . . . . . . . . . 125 8.5.4 UCCnetXSD_CIN_Dispatcher_forRWL collaboration object . . . . . 131 8.5.5 UCCnet_processWorklist collaboration object . . . . . . . . . . . . . . . . 134 8.5.6 UCCnet_requestWorklist collaboration object. . . . . . . . . . . . . . . . . 143 8.5.7 Update Maps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 8.5.8 Deploying objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 8.6 Unit Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Chapter 9. Configuration for integration of back-end system . . . . . . . . 163 9.1 Create application tables and event tables . . . . . . . . . . . . . . . . . . . . . . . 164 9.2 Create and test the database trigger. . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 9.2.1 Create the Application-Specific Business Object . . . . . . . . . . . . . . 167 9.3 Build a map for transforming the ASBO into a GBO . . . . . . . . . . . . . . . . 173 9.4 Testing the map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 9.5 Create the JDBC connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.6 Deployment of the changed and new objects . . . . . . . . . . . . . . . . . . . . . 186 9.7 Validation using the Test Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 9.8 Validation using the JDBC Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Chapter 10. Configure the AS2 connection . . . . . . . . . . . . . . . . . . . . . . . 197 10.1 Install iSoft for supplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Contents
10.1.1 Run Buildcfg5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 10.1.2 p2pagent.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 10.1.3 Generate keys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 10.2 Install iSoft for test receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 10.3 Unit test for send RCIR and receive MDN. . . . . . . . . . . . . . . . . . . . . . . 205 Chapter 11. Final configuration and test from end-to-end . . . . . . . . . . . 211 11.1 Processing messages from UCCnet . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.2 Process the response from UCCnet . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.3 Test the Catalogue Item Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 11.3.1 Create the map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 11.3.2 Modify the connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 11.3.3 Modify the collaborations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 11.4 Test the Catalog Item Confirmation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 11.5 End-to-end simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Part 3. Appendixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Appendix A. Getting started with UCCnet . . . . . . . . . . . . . . . . . . . . . . . . 227 A.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A.1.1 System requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A.1.2 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A.2 Configuring your user account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A.3 Obtain and register your own digital certificates . . . . . . . . . . . . . . . . . . . 228 A.3.1 Import your digital certificate into SYNCpoint . . . . . . . . . . . . . . . . . 229 A.3.2 Bind your userid to certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 A.4 Obtain UCCnets public key digital certificate . . . . . . . . . . . . . . . . . . . . . 229 A.5 Subscribe your user IDs to relevant events . . . . . . . . . . . . . . . . . . . . . . 230 A.5.1 Subscribe retailer to publication information . . . . . . . . . . . . . . . . . . 230 A.5.2 Subscribe supplier to authorization information . . . . . . . . . . . . . . . 239 Appendix B. Our sample messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 Sample message texts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Appendix C. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 System requirements for downloading the Web material . . . . . . . . . . . . . 260 How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
vi
Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Contents
vii
viii
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. 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 illustrates 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. 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 IBM's application programming interfaces.
ix
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Eserver Eserver Redbooks (logo) ibm.com DB2 IBM MQSeries Redbooks WebSphere
The following terms are trademarks of other companies: Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Other company, product, and service names may be trademarks or service marks of others.
Preface
IBM WebSphere Business Integration Express for Item Synchronization is designed for mid-market suppliers pursuing supply chain integration through the UCCnet GLOBALregistry. This IBM Redbook will help you install, tailor and configure the new WebSphere Business Integration Express for Item Synchronization.
The Team:(back) Kiran, Raja, Suresh, Daniel (front) Pushkar, Lee, Geert
xi
Lee Gavin is a Consulting IT Architect at the International Technical Support Organization, Raleigh Center. She writes extensively and teaches IBM classes worldwide on all areas of the WebSphere MQ Family, Business Integration, and Business Process Management. Geert Van de Putte is an IT Specialist at the International Technical Support Organization, Raleigh Center. He is a subject matter expert in messaging and business integration and has seven years of experience in the design and implementation of WebSphere MQ-based application integration solutions. He has published several Redbooks about messaging and business integration solutions. Geert has also taught several classes about messaging, business integration, and workflow. Before joining the ITSO, Geert worked at IBM Global Services, Belgium, where he designed and implemented EAI solutions for customers in many industries. Geert holds a Master of Information Technology degree from the University of Ghent in Belgium. Suresh Addala is an EAI Consultant working with Miracle Software Systems, Inc. He started his career as a Java programmer developing J2EE-based applications. His current expertise is in IBM Business Integration tools such as WebSphere BI. He has a good knowledge of other EAI tools such as WebMethods and Mercator. He was a member of the quality team tasked with achieving ISO9001-2000 certification for the company. He holds a Bachelor's degree in Engineering from Nagarjuna University, India. Rajaraman Hariharan is a Solutions Architect in the Distribution Sector working for the IBM Software Group. Rajaraman brings strong skills in Java and IBM middleware products including the WebSphere Business Integration Message Broker and the WebSphere Interchange Server. He is skilled in IBM solutions in the Retail domain. His recent engagements include store to enterprise integration and item synchronization. He is involved in architecting solutions and products for customers in the Retail Industry. Rajaraman holds a bachelor's degree in Computer Science and Technology from Pondicherry Engineering College, India. Daniel Max Kestin is an Advisory IT Specialist for IBM Global Services working in the US EAI national practice. He has 10 years of experience programming and teaching the Java and C programming languages. His areas of expertise include WebSphere MQ, WebSphere MQ Integrator, Java application development, and UNIX shell scripting. His past projects have focused on the needs of customers in the Banking, Insurance, Government, Education, and Retail industries. He is certified by IBM as a System Administrator for WebSphere MQ 5.3 and a Specialist for WebSphere MQ Integrator. Daniel graduated from Columbia University in New York City with a degree in Computer Science. Pushkar Suri is a Solutions Architect at Netcom Systems, Edison, NJ. He has more than seven years of experience in developing J2EE-based applications. He
xii
holds a degree Masters degree in Computer Applications from JNU, India. His areas of expertise include developing e-business applications.He is a co-author of the IBM Redbook B2B Solutions Using WebSphere Business Connection, SG24-6197-00, and the Redpaper Implementation of iSoft and Integration with an EAI solution, REDP-3625-00. He is a Sun-certified Programmer for Java 1.4. He is also an IBM-certified Enterprise Developer for IBM WebSphere Application Server. Kiran Tatineni holds a Bachelors degree from Nagarjuna University, India, and is now a EAI consultant with Miracle Software Systems, Inc. He has over four years of experience in the design and implementation of various EAI/EDI tools such as WebSphere Interchange Server, WebSphere Data InterChange, MQ Workflow, and WebSphere MQSeries. He has a working knowledge of EDI and XML and other AS2 engines such as iSoft and WebSphere Business Integration Connect. Thanks to the following people for their contributions to this project: Margaret Ticknor International Technical Support Organization, Raleigh Center Jay Curtiss, Steve Liu, and Steve Lindauer IBM Raleigh All those Business Partners who attended the workshop
Preface
xiii
Comments welcome
Your comments are important to us! We want our Redbooks to be as helpful as possible. Send us your comments about this or other Redbooks in one of the following ways: Use the online Contact us review redbook form found at:
ibm.com/redbooks
Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HZ8 Building 662 P.O. Box 12195 Research Triangle Park, NC 27709-2195
xiv
Part 1
Part
Overview
Chapter 1.
UCCnet
Today's suppliers, consumer packaged goods companies, manufacturers, and wholesalers face many challenges. Each year, 20,000 new food and non-food Universal Product Code (UPC) items are created, and it typically takes 10 to 30 days to get these new items and price changes to market. Data elements that describe these individual items may change up to four times per year. Furthermore, nearly three out of five orders placed need to be revisited and reworked before completion. To meet these escalating data demands on suppliers, UCCnet has implemented multi-industry standards for product identification and related electronic communications. A subsidiary of the Uniform Code Council Inc., UCCnet is a neutral industry organization that implements these standards by requiring its community of trading partners to provide standardized item data in particular formats to its registry.
standards-compliance verification, and synchronization of product information. It also provides registry and lifecycle management of synchronized products, user locations, and user trade capabilities. UCCnet has been developed to provide an essential backbone that links trade exchange members, peer-to-peer partners, industry-driven e-marketplaces, and alliance partners to one open and seamless repository of information. Today approximately 1500 retail and supplier companies currently subscribe to UCCnet, including: Approximately 30 national and international and smaller regional retailers Approximately 1470 large and small suppliers
Chapter 1. UCCnet
When any information is exchanged with the UCCnet GLOBALregistry, the GLN will uniquely identify where the data is coming from (or going to in the case of Catalog Item Notification). For more information on GLN and how a GLN is obtained, see Appendix A, Getting started with UCCnet on page 227 or go to the following Web site: GLN Introduction
http://uc-council.org/reflib/01801/index.html
Chapter 1. UCCnet
A GTIN is stored as a 14 digit number. However, the basis for this number may be any one of the family of the EAN/UPC standard data structures. Table 1-1 shows how each of the structures would be translated to a GTIN.
Table 1-1 GTINs and structures Structure EAN/UCC-8 EAN-12 EAN/UCC-13 EAN/UCC-14 Current content XXXXXXXC XXXXXXXXXXXC XXXXXXXXXXXXC XXXXXXXXXXXXXC Proposed GTIN 000XXXXXXXXXXC 0XXXXXXXXXXXC 0XXXXXXXXXXXXXC XXXXXXXXXXXXXC
The make up of these are as follows: right-justified and zero-filled to the left to create the 14 digits.
EAN/UCC-8
Seven digits that represent the EAN.UCC Company Prefix and Item Reference number One digit that is the check digit
UCC-12
Six digits that represent the UCC Company Prefix Five digits that represent the Item Reference number One digit that is a check digit or Seven digits that represent the UCC Company Prefix Four digits that represent the Item Reference number One digit that is a check digit or Eight digits that represent the UCC Company Prefix Three digits that represent the Item Reference number One digit that is a check digit or Nine digits that represent the UCC Company Prefix Two digits that represent the Item Reference number One digit that is a check digit
EAN/UCC-13
Twelve digits that represent the EAN.UCC Company Prefix and the Item Reference number One digit that is the check digit
EAN/UCC-14
One digit that indicates packaging level (Indicator digit) Twelve digits that represent the EAN.UCC Company Prefix and Item Reference number One digit that is the check digit Note: The Item Reference is the number assigned by the owner of the EAN.UCC Company Prefix to uniquely identify a trade item within the company.
A GTIN example
Lets take an example where a company is already using unique UPCs. (In these examples, n represents the check digit). Each: UPC-12 Case: UPC-12 Pallet: UPC-12 01234568881N 01234568882N 01234568883N
In this case what is needed, is to simply add 00 to create unique GTINs. Each: GTIN Case: GTIN Pallet: GTIN 0001234568881N 0001234568882N 0001234568883N
Note: The check digit does not change in this case, the company is using the same UPC on multiple levels of the hierarchy. Each: UPC-12 Case: UPC-12 Pallet: UPC-12 01234569999N 01234569999N 01234569999N
Chapter 1. UCCnet
What would be needed here is the use the Indicator digit to make unique GTINs Each: GTIN Case: GTIN Pallet: GIN 0001234569999N 301234569999N 701234569999N
Note: In this case, the check digit on the case and pallet would change due to the added Indicator digit. A good GTIN calculator can be found at:
http://www.uc-council.org/ean_ucc_system/education_support/cdc.html
10
The supplier and retailer represent the trading data differently in their back-end systems. Any change in the item catalog on the suppliers end, for example an item added into the supplier catalog or an item change, has to be manually exchanged with the retailer. This data has to be converted into the retailer specific format, either prior to dispatch by the supplier or by the retailer on receipt of the data. In many cases, this may be a manual task. As a result, the whole process is not only time consuming, but it can lead to errors or discrepancies due to multiple format representations of the data or simply due to human error. The use of inaccurate trading data costs the retail industry tens of billions of dollars annually in supply-chain errors, bottlenecks, and time-to-market delays.
Chapter 1. UCCnet
11
Integration Express provides an item-synchronization solution to connect these back-end business processes with the UCCnet global repository. Thus, any item change in these processes is automatically propagated and updated in the UCCnet GLOBALregistry. See Figure 1-3.
12
Allows for changes and corrections Permits performance of Data Validation before items are added
Chapter 1. UCCnet
13
GTIN Query Retrieves the 35 elements defining the GTIN from the GLOBALregistry Other Queries Organizations
14
</representingParty> </messageHeader>
Chapter 1. UCCnet
15
16
Mandatory element, containing GLN and name of brand owner. dataPool catalogueItemClassification Mandatory element, for example a UDEX classification. itemDescription brandName, descriptionShort, additionalItemDescription. isTradeItemInformationPrivate Controls whether an item is visible to the public or to subscribers only productType Case, display, pallet, etc. eanuccType and eanuccCode Case code number (UN), UPC-12, EAN.UCC-13...). unitIndicator isTradeItemAConsumerUnit isTradeItemAnOrderableUnit effectiveDate Measurements quantityOfNextLowerLevelTradeItem netContent (and unitOfMeasure) height, width, depth (and unitOfMeasure) netWeight, grossWeight (and unitOfMeasure) volume (and unitofMeasure)
Chapter 1. UCCnet
17
RCIR
GTIN/GLN/TM 35 attrs
Data validation 1
2
Data provider Supplier
UCCnet GLOBALregistry
registration response
1. The supplier sends a correctly-formatted RCIR message to UCCnet that includes the key values of GTIN/GLN/TM. 2. The message is received and validated by UCCnet through its validation engine. Then, the valid item data is added to the registry. 3. A RCIR Response message is sent to the supplier with the outcome of the RCIR from Step One. See Figure 1-5 on page 19.
18
CIN
GTIN/GLN/TM 151 attrs list of GLNs
1
1-n
3 4
UCCnet GLOBALregistry
CIN
notification response
Recipient Worklists
1. After the item has been added to the GLOBALregistry, one or more Catalogue Item Notification (CIN) messages are sent to UCCnet. Each of these messages contains the GLN of the subscribing retailer and the item details such as GTIN and UDEX category. 2. At UCCnet the router will verify that the item exists with the GLOBALregistry. 3. The retailers whose GLN is in the CIN from the supplier will be forwarded a CIN from UCCnet. 4. A CIN Response message will be sent from UCCnet to notify that the CIN has been sent to the recipients. See Figure 1-5. Important: Only GTINs that have been successfully added to the GLOBALregistry and RCIR are eligible for Catalogue Item processing.
Chapter 1. UCCnet
19
3
CIC Status: Data provider Supplier
UCCnet Router 4 2
CIC Status
UCCnet GLOBALregistry
1. When a recipient organization (the retailer) has taken action with the item data that was sent in the CIN, it will send a Catalogue Item Confirmation (CIC) to UCCnet to indicate the status of the processing of that item. Statuses may be any of the following: Review The addition of the item is currently being reviewed by the retailer. Accepted The item has been accepted by the retailer but has not yet been synchronized. Synchronised The item has been accepted by the retailer and will be synchronized in their systems. Rejected The item is rejected and no further information is required.
20
2. UCCnet will verify with the GLOBALregistry that the GTIN in the CIC is valid and exists. 3. UCCnet will send a CIC Notification to the supplier.
Chapter 1. UCCnet
21
22
Chapter 2.
AS2 communications
This chapter provides an overview of the AS2 specification and discusses the function of AS2 in securely exchanging business documents over the Internet.
23
2.1 Overview
Applicability Statement 2 (AS2) is a draft standard from the Internet Engineering Task Force for securely exchanging business documents over the Internet, with guarantees in place to ensure that a document is not lost. AS2 provides the instructions for software at one company to send any type of document (called a payload) to software at another company using HTTP. If you host a Web site and can browse other Web sites, you have all the connectivity required to use AS2. AS2 offers options for security ranging from sending data over a secure connection (HTTP/S) to package encryption (using a digital certificate to completely encrypt the business document). A document also can be digitally signed, letting a receiver be confident that the document is valid. The fastest way to send a document is to deliver it directly to the recipient with no intermediate routing or mailboxing, and this is exactly what AS2 specifies. AS2-capable software at the sender establishes a connection over the Internet to the receiver's AS2 software and sends the document. The receiver then gives the sending system a receipt. Because large e-commerce networks use service providers that have long guaranteed reliable document exchange, delivery has seldom been a worry for EDI managers. But as small companies begin exchanging documents over the Internet, all bets are off. Therefore, a system of receipts is needed. Fortunately, AS2 offers flexible yet standard receipts usable under many circumstances.
24
25
AS2 will support larger keys and other algorithms as they become readily available.
26
Chapter 3.
27
3.1 Features
The solution allows suppliers to send and receive item data to and from the UCCnet GLOBALregistry. The suppliers can synchronize data from internal systems with the UCCnet GLOBALregistry, allowing item information changes to occur throughout the suppliers trading network. In addition to these benefits, this product sets an integration foundation that accommodates future supply chain integration initiatives.
28
WebSphere Business Integration Express for Item Sync includes an entitlement to three instances of any of the above technology adapters. An AS2 channel product is used as the Gateway to communicate with UCCnet. The AS2 channel product is iSoft Peer-to-Peer Agent Express. Together, these components provide the business process integration and connectivity for enterprise applications. They also allow for integration with the UCCnet GLOBALregistry.
29
30
Chapter 4.
31
32
File System
Internet
HTTP(s) SMTP
33
can be delivered asynchronously or synchronously and can be signed and encrypted using the same technologies that are available for sending documents. The status of a document, including several statistics, can be generated by the P2PAgent in the form of a notice. Again, this notice can be a message in a queue or a file in a named directory. Any errors can be reported in a daily log file. Alternatively, an error for a given document can result in an error file or message specifically tied to that document. The error document can contain, for example, HTTP error codes. The P2PAgent can also be configured to try to send a document several times, for example three times at an interval of one minute. If the agent has tried to send a document the maximum allowed number of times, the document can be stored in a separate location: a given directory or queue. This feature is sometimes referred to as the recycle feature. The message or file contains nothing but the original document, while the error itself is stored in the error message or file. The advantage of this separation is that the recycled document can be used without any alteration in a back-up transmission system, such as a VAN.
34
2003.02.05 15:30:09.561 [mq://FMCQM/workorders] 2003.02.05 15:30:09.561 2003.02.05 15:30:09.571 2003.02.05 15:30:09.581 2003.02.05 15:30:09.591 [mq://FMCQM/receipts] 2003.02.05 15:30:09.611 2003.02.05 15:30:09.621 2003.02.05 15:30:09.621 2003.02.05 15:30:09.631 2003.02.05 15:30:09.711 status ok Build: Host: Control IP:
POPT OK Work-order path set to POPT POPT POPT POPT POPT POPT POPT POPT HPIM OK OK OK OK OK OK OK OK OK Work-order searching enabled Work-order file-spec set to [wo] PKI path set to [pki] Async. receipt path set to First-receive interval set to [300000ms] Mailbox host set to [mq://FMCQM] Mailbox address set to [0.0.0.0] Mailbox port set to [0] HTTP inbound service started
3.1.2002.10.30.1 vdputteg 9.24.104.115:3501 --Config------------Partner-Pairs: 2 Key-Pairs: 3 Inbound Ctlrs: 1 Outbound Txns: 0 Transports: 0 Trace Level: 3 Buffer Size: 4096 Peer Group: 0 Role:
--Services-------Serialize: ON Outbound: ON Control: OFF Work-Orders: ON Beacon: OFF Router: OFF Web-UI: OFF PKI Admin: OFF
--Timeouts----------------------Connect: 30.000s First-Receive: 300.000s Next-Receive: 90.000s First-Send: 30.000s Next-Send: 90.000s Resend Wait: 60.000s Beacon Wait: 20.000s Work Order Interval: 10.000s Stop Thread: 10.000s
--Options--------Local Config: YES Show Trace: YES Write Trace: YES Fast Write: NO Notices: FILE
--Locations---------------------------------------------Error Path: error Log Path: log Notice Path: mq://FMCQM/notices PKI Path: pki Receipt Path: mq://FMCQM/receipts Work-Order Path: mq://FMCQM/workorders
For settings and commands that you need to execute every time at start-up of the agent, you should use the configuration file, which is named by default p2pagent.cfg. We will use the configuration file often when implementing an iSoft solution in this redbook. Some packages of the iSoft product provide a command line utility, called buildcfg, that will quickly generate such a configuration file by asking the end user to answer some simple questions. This utility only builds a starting configuration file. It is very probable that you will need to edit this file to optimize the final configuration.
35
Series of commands that you execute from time to time but are not required to be executed during the start-up of the agent can be stored in a work order file. You can then use the batch command to execute the commands whenever this is appropriate. Work order files also can be executed automatically. The agent can be configured to monitor a directory for files with a given extension. (The default extension is .wo.) When such a file is dropped in the correct directory, the agent will read it and execute the commands. Example 4-2 shows a sample work order file. It has an XML format where individual commands are the data values of a command XML element. The actual command can be any command that is supported by the agent. The actual command does not look any different from what you would have typed in an interactive session.
Example 4-2 Sample work order file <xml> <command> send http QA_a QA_b -fNedi\edifile.x12 -r1 -cE</command> </xml>
In addition to file-based work orders, you can use a message queue. However, the contents of the message should not be in the XML format that is shown in Example 4-2. The contents of the message should be the command text only, without the xml and command tags. Unfortunately, the response or output of the command is not sent back as a reply message. The output of the command is shown in the console view and in the log file, if activated. Web-based status reporting can be turned on by executing the command start GUI. The P2PAgent will then listen on port 80 for any HTTP requests. If a request is received, it responds with the output of the status command. The standard product does not offer a complete Web-based administration tool. However, this functionality is available as an add-on product.
36
The Router role: This is the role that can perform software-based load sharing between multiple computers that provide the Transport role. The Router provides a single point-of-entry for data of a given Internet protocol. The actual processing of the incoming data is then delegated to one of the computers performing the Transport role. Figure 4-2 graphically shows this inbound load-sharing technique.
Transport
Transport
Transport
Router
Internet
The Admin role: This is the role that performs the outbound distribution in addition to other services. Documents that have been prepared for sending to trading partners are distributed by the Admin role to the computers that provide the Transport role. In addition to this outbound load sharing, the Admin role also provides administration services to manage trading partner relationships, for example. Figure 4-3 on page 38 graphically shows how the different roles work together. The EDI Generator role, for example, could be provided by WebSphere Data Interchange.
37
EDI Generator
Admin
Transport
Transport
Transport
Internet
In this redbook, we will focus on an implementation of iSofts P2PAgent where all roles are performed by a single computer. For more information about setting up a multi-machine implementation of the P2PAgent, please refer to the product documentation of iSofts P2PAgent.
38
Chapter 5.
39
40
RCIR
GTIN/GLN/TM 35 attrs
Data validation 1
2
Data provider Supplier
UCCnet GLOBALregistry
registration response
41
CIN
GTIN/GLN/TM 151 attrs list of GLNs
1
1-n
3 4
UCCnet GLOBALregistry
CIN
notification response
Recipient Worklists
42
3
CIC Status: Data provider Supplier
UCCnet Router 4 2
CIC Status
UCCnet GLOBALregistry
43
6. UCCnet sends a response to the supplier in the form of a message containing the CIC information from the retailer.
44
11.The ItemBasic business object is converted into an application-specific business object by the CwItemBasic_to_UCCnetXSD_envelope_ registerCommand_itemAddChange map. 12.Once the conversion is complete, the business object is passed to UCCnet through the AS2 channel connector (in our scenario, the iSoft P2P Agent Connector). 13.The connector sends the business object to the Data Handler for XML, which produces the ItemAdd XML message in UCCnet format. 14.The connector then passes the message to the AS2 channel server (in our scenario, the iSoft P2P Agent Express). 15.The AS2 channel server creates the digest. Then, it encrypts and then transmits the ItemAdd message to UCCnet. 16.An RCIR_ADD_Response notification is generated by UCCnet to indicate a successful ItemAdd. This notification is returned to the AS2 channel server. 17.The AS2 channel server delivers the notification to the AS2 channel connector. 18.The AS2 channel connector sends the notification to the Data Handler for XML, which converts it into a UCCnetXSD_envelope business object. The business object contains the entire UCCnet notification, including each individual data instance and the commands related to it. 19.The business object is passed to the InterChange Server. 20.The mapping services are invoked. The application-specific business object is converted to a UCCnetGBO_envelope business object by passing through the UCCnetXSD_envelope_to_UCCnetGBO_envelope map. 21.The generic business object is passed to a UCCnet_processWorklist collaboration object. 22.The UCCnet_processWorklist collaboration object receives the business object on its From port, identifies it as an RCIR_ADD_RESPONSE notification, and dispatches it to its RCIR_ADD_RESPONSE subdiagram.
45
1. It retrieves the ItemBasic business object for the received message (using the DestinationAppRetrieve port (We use the JDBC connector to retrieve the item data from our ERP application.) 2. It logs the notification in the audit_log table 3. It sends the ItemBasic business object out through its CIN_DISPATCHER port to the UCCnetXSD_CIN_Dispatcher collaboration object 4. The UCCnetXSD_CIN_Dispatcher collaboration object receives the ItemBasic business object on its From port 5. It maps the ItemBasic business object to a UCCnetXSD_envelope business object using the map defined in its collaboration parameters. 6. The collaboration object uses the category code from the new UCCnetXSD_envelope to retrieve the GLNs of any trading partners that subscribe to the category found in the CIN_DISPATCHER_GLN_FILE property. 7. The collaboration object sends a CatalogueItemNotification_ADD (CIN_ADD) business object out to the AS2 connector for each GLN found in the GLN subscription file. 8. At this point, the trading partners can respond to UCCnet with any of the following Catalogue Item Confirmation responses: REVIEW This state is used to tell parties that an item is being reviewed by the retailer. REJECTED This state is used to tell parties that an item is rejected and that no additional information is requested at this time. ACCEPTED This state is used to tell initiators that an items has been accepted by the retailed, but has not yet been synchronized. This is similar to the UCCnet Pre-Authorization. SYNCHRONISED This state is used to tell initiators that an item has been accepted by the retailer and will be synchronized. This is similar to the UCCnet Authorization. The rest of this example assumes that a demand-side trading partner has responded with a SYNCHRONISED response. 9. UCCnet performs a compliance check on the data and, if all the data exists in the appropriate format, generates a SYNCHRONISED notification to indicate a successful receipt.
46
10.The notification is returned to the AS2 channel server. 11.The AS2 channel server delivers the notification to the AS2 channel connector. 12.The AS2 channel connector sends the notification to the Data Handler for XML, which converts it into a UCCnetXSD_envelope business object. This business object contains the entire UCCnet notification, including each individual data instance and the commands related to it. 13.The business object is delivered to the InterChange Server. 14.The mapping services are invoked and the application specific business object is converted to a UCCnetGBO_envelope business object by passing it through the UCCnetXSD_envelope_to_UCCnetGBO_envelope input map. 15.The business object is delivered to the UCCnet_processWorklist collaboration object. 16.The UCCnet_processWorklist collaboration object receives the object on its From port, identifies it as a CATALOGUE_ITEM_CONFIRMATION response, and dispatches it to its CATALOGUE_ITEM_CONFIRMATION subdiagram.
47
48
Supplier
UCCnet Global Registry AS2 iSoft P2P Agent Express JText Adapter
JDBC Adapter
Existing Systems
49
50
Part 2
Part
51
52
Chapter 6.
53
54
A UCCnet_requestWorklist collaboration object is triggered when it receives a UCCnetGBO_envelope business object from the JTextRWL Connector. The JTextRWLConnector sends this triggering business object after it polls an input file folder and discovers an XML message that contains a UCCnet worklist query command. (The mechanism by which the UCCnet worklist query command is placed in the input file folder is independent of the collaboration template and must be set up by the user--more on this in later chapters.) 3. UCCnet_processWorklist collaboration template An object based on the UCCnet_processWorklist collaboration template processes the notifications that a UCCnet_requestWorklist collaboration object requested from UCCnet. This collaboration object is triggered when it receives a UCCnetGBO_envelope business object from an AS2 channel connector. 4. UCCnetXSD_CIN_Dispatcher collaboration template An object based on the UCCnetXSD_CIN_Dispatcher collaboration object fulfills one of the following two tasks: It processes an ItemBasic business object received from the UCCnet_processWorklist collaboration object as part of an item-add or item-change request. It processes an ItemBasic business object received from the ItemCommandRouter collaboration object as part of an item-delist or item-withdraw request. Note: This collaboration template is used only if you are implementing a solution with the schema-based XML definition (as we are in the redbook). As objects based on this template can receive a triggering object from one of two collaboration objects, you must create two collaboration objects from this template--more on this in the following chapters. 5. ItemCommandRouter collaboration template An object based on the ItemCommandRouter collaboration template is used to process ItemBasic business objects received from objects based on the ItemSync collaboration template. It processes an object in one of two ways: For item-add and item-update requests, the collaboration object sends an RCIR through the AS2 channel connector. For item-delist and item-withdraw requests, the collaboration object passes the business object to a UCCnetXSD_CIN_Dispatcher collaboration object for further processing.
55
Note: This collaboration template is used only if you are implementing a solution with the schema-based XML definition.
56
Generic A generic business object contains a set of business-related attributes that are common across a wide range of applications, not tied to any specific application's data model. When the connector agent (through its application-specific component) detects an application event such as an update, it retrieves the appropriate data entity from the application and transforms it into an application-specific business object. After the connector agent has built an application-specific business object, it sends the business object to the connector controller in the InterChange Server. The connector controller exchanges business objects between collaborations and the connector agent. Collaborations are generally application-neutral, so the business object that a connector controller exchanges with a collaboration must be a generic business object. The use of generic business objects enhances the reusability of the collaboration because its business logic is not bound to specific versions of specific applications.
57
A UCCnetXSD_CIN_Dispatcher collaboration object uses the ItemBasic business object to build CatalogueItemNotification messages to send to trading partners. 2. UCCnetGBO_envelope business object When a UCCnet_processWorklist collaboration object exchanges data with an AS2 channel connector, the data must be mapped between the business object used by the connector and the UCCnetGBO_envelope business object used by the collaboration object. A UCCnet_requestWorklist collaboration object uses this business object to exchange messages between the JTextRWL connector and an AS2 channel connector. A UCCnet_processWorklist collaboration object uses this business object to exchange messages with the AS2 channel connector. A UCCnetXSD_CIN_Dispatcher collaboration object uses this business object to exchange messages between an ItemCommandRouter collaboration object and an AS2 channel connector. 3. UCCnetDTD_envelope business object This business object is the result of an ItemBasic business object being converted by an AS2 channel connector when the DTD XML definition type and iSoft connectivity are used. Unlike the UCCnetGBO_envelope business object, it does not contain default values for the XMLDeclaration and DocType attributes and does not contain the TPIRouteInfo child business object. Before this business object is processed by the collaboration objects included with the solution, it must first be transformed into a UCCnetGBO_envelope business object by passing through the UCCnetDTD_envelope_to_UCCnetGBO_envelope map. (Because our solution is using XSD processing, we will not be using this business object). 4. UCCnetXSD_envelope business object This business object is the result of an ItemBasic business object being converted by an AS2 channel connector when the XSD XML definition type and iSoft connectivity are used. Unlike the UCCnetGBO_envelope business object, it does not contain default values for the XMLDeclaration and DocType attributes and does not contain the TPIRouteInfo child business object. Before this business object is processed by the collaboration objects included with the solution, it must first be transformed into a UCCnetGBO_envelope business object by passing through the UCCnetXSD_envelope_to_UCCnetGBO_envelope map. As mentioned earlier, these business objects are very complex and contain many child objects, as a user, you will probably be most concerned with the mapping
58
your own data to the complex ItemBasic business objects. (See Figure 6-1 on page 60.)
59
Figure 6-1 XSD envelope business object and some of the child business objects
60
There are other business objects provided for this solution (such as business objects for use with TPI processing). However, because we are not using this product in our solution, they are not discussed here.
61
mechanism, if there is one. A connector can also interact with the application at the command of a collaboration or to verify the results of its previous requests.
62
formats. Maps are also provided to perform mapping between the UCCnet GBO formats and the UCCnet envelope formats. As with the business objects, mapping operations can be very complex. Many maps will call a sub-map to perform the mapping required for a child business object. See Figure 6-2.
Also, as with the business objects, no maps are provided to map application data to the ItemBasic object and vice versa. As the user, you must analyze your data
63
and create maps that will perform these mapping activities before the collaborations continue. We cover this in later chapters.
64
All of these relationships are implemented as static (lookup) relationships and the lookup of these relationship tables is performed as part of the mapping functions between the generic item business object and the UCCnet envelope business objects. The creation and population of these relationships is part of the post installation configuration. It is discussed in the 8.2, Load relationship tables on page 97. See Figure 6-3.
Of these nine relationships: Two have a single participant and are used as a look-up only. These are processed GTINs and trading partner information. Seven have two participants and are used for data transformation. The table names indicate the name of the relationship and the name of the participant, as in the following examples: LIUT_UCCNET_T Contains lookup values for unit of length, height, and weight as known by UCCnet
65
LIUT_SAP_T Contains lookup values as they relate to an ERP or customer application. The name SAP does not imply that you must have an SAP system: it is merely a reference to an ERP system. The data in these tables is an indicative sample only, and each customer must populate these tables with his own data after analysis of his values and the UCCnet equivalent has been performed. This can be done by using the Relationship Manager or by inserting values using your favorite DB2 tool. In the solution, the relationships in Table 6-1are used in the mapping operations:
Table 6-1 Relationships Relationship name GTIN LiUT PrTyNT SiUT TPTable UDEX UpcTyT VoUT WeUT Usage Processed GTIN Unit Of Length Weight Height Primary Unit of Measure Size Unit Trading Partner Product Hierarchy (UDEX category) UPC Type (Bar Code Id) Unit of Volume Unit of Weight
66
The UCCnet_ItemSync and UCCnet_processWorklist collaborations both interact with this table. A UCCnet_ItemSync collaboration object updates the table each time it processes an ItemBasic business object. The collaboration object performs this processing only if all of the fields for which UCCnet requires data are complete. TRADING_PARTNER table The trading_partner table, or GLN table, is a relational table provided with the item synchronization solution. It maintains the complete list of trading partners by using the Global Location Number (GLN) of each as the key. The table is configured for all of correct columns as part of the post-installation activities that we cover later in this book. After these columns are in place, the table must be populated manually through methods provided by the individual database. We also cover this in the following chapters.
67
68
Chapter 7.
69
7.1 JDK
Install the JDK according to the product instructions.
70
Include C:\Program Files\Microsoft Visual Studio\VC98\include Lib C:\Program Files\Microsoft Visual Studio\VC98\lib
Important: When the compiler is installed, many environment variables are stored for the user who installed the product. Edit the systems environment variables.Copy the user variable for administrator contents of Include, path and lib to the corresponding system variable. The new system values for Include, path, and lib should include the setting for Visual C++ so that DB2 can use c++ utilities for compiling stored procedure and so forth. Restart DB2 and related db2 processes so that these changes are in effect.
71
2. Click Software Prerequisites, to make sure that all the required components are installed. See Figure 7-2. Note: As part of the setup here, we install WebSphere MQ V5.3 and CSD4 (one version higher than the recommended), so we ignore the Not Installed error message.
3. Select the Database Setup to configure the application database, and click Continue. See Figure 7-3 on page 73.
72
4. Enter the value for the DB2 compiler path. (For our installation, it is where we stored the vcvars32.bat file during the C++ compiler installation). 5. Ensure that the Use the default value for DB2_SQLROUTINE_COMPILE_COMMAND box is checked. See Figure 7-4 on page 74.
73
6. Click Continue. The processing may take a few minutes because a Windows user (smbadmin) and a DB2 database (SMB_DB) are being created. 7. After the database configuration has completed, select Install Product. See Figure 7-5 on page 75.
74
Note: This error message can be ignored because it relates to the WebSphere MQ CSD3 not being installed. SInce we have already installed CSD4, we ignore the prerequisites and launch the installation. 8. Click Ignore prerequisites. 9. Select Launch Installation to continue. See Figure 7-6 on page 76.
75
10.When you see the Welcome screen, click Next to continue. See Figure 7-7.
11.Accept the license agreement and click Next to continue. See Figure 7-8 on page 77.
76
12.Select the type of installation required (Custom) and click Next to continue. See Figure 7-9 on page 78.
77
78
14.Select the Adapters required for your installation. We choose: iSoft JDBC JText 15.Click Next to continue and verify the selected components. See Figure 7-11.
16.Verify the components for installation and click Next to continue. This next stage may take a while because (1) the product is being installed and (2) there are also InterChange Server Express deployments going on under the covers. We check the outcome of these deployments as part of the verification process. See Figure 7-12 on page 80.
79
17.Read the summary information and click Next to continue. See Figure 7-13.
80
The installation of WebSphere BI Express is complete after your machine has restarted. We will now move on to verify that the installation has completed successfully.
19.Start the System Manager using the following path: IBM WebSphere Business Integration Express for Item Sync Toolset Express Administrative System Manager. 20.The Studio might open in the Resource perspective instead of the System Manager perspective. If so, select Window Open Perspective Other and select System Manager perspective from the presented list of available perspectives. See Figure 7-14.
81
82
9. Switch to the folder Tables, as shown in Figure 7-16, and verify that tables exist for the deployed stored procedures. You can right-click on these tables to get a snapshot of the records in those tables. However those tables should be empty at this time.
83
84
1. Start the InterChange Server. This will open a console window for the ICS itself and for the Transient Name Server, which is the Object Request Broker (ORB) client. 2. Since the default configuration is not generating log messages to the console, you will need to open the InterChangeSystem.log file to find out if the server is in the ready status. 3. Switch now to the System Manager. Locate the pane InterChange Servers. Right-click the empty folder Server Instances and select Register Server. See Figure 7-18 on page 86.
85
4. In the next window, you can either type in the name of your ICS (for example, SUPPLIER) or click Browse button to let Studio find it. Set the field User Name to admin. The password is the word null. 5. Select the option to Save userid/password information and click Finish. See Figure 7-19.
86
6. If all goes well, the pane InterChange Servers should now show your ICS and indicate that it is running in Production mode and that Studio is connected to it. See Figure 7-20.
7. Right-click the ICS name and select Edit Configuration. A new editor pane will appear, as shown in Figure 7-21 on page 88. Select the tab Trace/Log levels and mark the check boxes to write trace and log messages To Console.
87
8. Select the tab WebSphere MQ and review the parameters. Check that the parameters are as you expect for your queue manager/port and hostname. See Figure 7-22 on page 89.
88
9. Select File Save to save the changes and to deploy them to the server.
89
2. From here, you can see that no connectors or collaborations are currently deployed to the server. This window also allows you to stop/start maps, relationships, connector controllers and collaborations. 3. Switch back to the view InterChange Servers. Right-click your ICS and select Shutdown Gracefully to stop the ICS. See Figure 7-24.
90
2. In the field Target, add the keyword -design as shown in Figure 7-25. Click OK. 3. Restart the InterChange Server. 4. Verify that the logging is now performed to the console as well. When you see the ready message in the console window, switch back to the System Manager. Right-click the ICS in the InterChange Serverspane and select Connect. Verify user ID and password and click OK. 5. When connected, the mode should now be design, as shown in Figure 7-26 on page 92.
91
3. When this step completes, start the application server by entering the command below.
C:\IBM\WebSphere\Express502\AppServer\bin\startServer.bat ICSMonitor
4. When the server is started, access the monitor by opening a browser and entering the following URL:
http://<your hostname>:7089/ICSMonitor
92
5. Provide the name of the server and the password and click Login. The explorer will now show the System Overview pane, as shown in Figure 7-28 on page 94.
93
Some of the views in the monitor require that you have the SVG Viewer plug-in installed. This can be downloaded from the Adobe Web site.
94
Chapter 8.
95
6. Verify the output to make sure that the DB2 objects were created. 7. In WordPad, open the file InterchangeSystem.UCCnet in the folder C:\IBM\WebSphereItemSync\samples\UCCnet. You need to edit the values of four properties in this file: a. USER_NAME: Change the value attribute from crossworlds to smbadmin. b. DRIVER: Change the value attribute from com.ibm.crossworlds.jdbc. sqlserver.SQLServerDriver to COM.ibm.db2.jdbc.app.DB2Driver. c. DATA_SOURCE_NAME: Change the value attribute from jdbc:ibm-crossworlds:sqlserver://HostName:1433;DatabaseName=CWRep ository to jdbc:db2:SMB_DB. d. PASSWORD: Change the value attribute from admin to smbP4$$word.
96
e. Save your changes and copy the whole contents of this file to the clipboard. 8. Make a backup of the file InterChangeSystem.cfg and then open this file in WordPad. 9. Scroll to the bottom of this file and paste the clipboard before the closing XML tag: </cw:ServerConfig>. 10.Save the configuration file and restart the InterChange Server.
97
98
5. Select File Save as and save the business object with the name MO_DataHandler_UCCnetXMLConfig. Check the window that the object is saved in the project ItemSyncLibrary. 6. Change the default value of the attributes listed in Table 8-1.
Table 8-1 Attributes and values for MO_DataHandler_UCCnetXMLConfig Attribute name BOPrefix DTDPath Value UCCnetXSD c:\Envelope.xsd This must be the full path to the XML structure document false true true
7. Save the business object and close it. 8. Open the business object MO_DataHandler_Default and save it as MO_DataHandler_UCCnet_envelope. 9. Delete all attributes except the ones shown in Figure 8-2. Change the Type value for attribute text_xml to MO_DataHandler_UCCnetXMLConfig. See Figure 8-2.
10.Save and close the business object. 11.Open the business object MO_JTextConnector_Default in the Business Object Designer and save it as MO_JTextRWLConnector_Default.
99
12.Change the Type values for the EventDataHandler and the OutputDataHandler as shown in Figure 8-3.
13.Provide folder names for the attributes OutputDir, EventDir, and ArchiveDir, making sure that the names are shorter than the indicated maximum length. We used: c:\UCCnet\JTextRWL\<out / archive / event> Note: This is different in Version 4.3.1. Please review the product documentation. 14.Set the attributes OutputExt and EventExt to xml. Set the attribute EndBODelimiter to EOF. Tip: Click the top of the Name column to sort the attributes in name order. Drag the end of the default column to resize it. 15.Save and close the business object. 16.Create the folder names using the Windows Explorer. 17.Perform similar steps to create the business object MO_JTextISoftConnector_Default, shown in Figure 8-4 on page 101. Again ,we used the same naming convention as above with JTextISoft and the connector name. See Figure 8-4 on page 101.
100
18.Also, create also the folders that you use. Important: Regardless of which version you are using, you need to complete this step because it is not done automatically for you.
19.Create the new business object MO_ISoftAdapterConfig by right-clicking the folder Business Objects in the System Manager and selecting Create New Business Object. 20.Make sure that the project ItemSyncLibrary is selected. See Figure 8-5 on page 102.
101
21.Add the attributes as shown in Figure 8-6. The value in the field App Spec Info is:
OutputQueue=queue://<queue manager name>/<queue name>;DataEncoding=Text
22.Save and close the business object. 23.Using WebSphere MQ Explorer, create the local queue that you used in the business object MO_ISoftAdapterConfig (making the default persistence YES).
102
8.4.1 JTextRWLConnector
This is the connector used for the Request Work List function. It is a JText connector. For this connector, we need to first create a new short-cut in the Start Programs folder. 1. Using Explorer, go to the following folder:
C:\Documents and Settings\All Users\Start Menu\Programs\IBM WebSphere Business Integration Express for Item Sync \Adapters\Connectors
2. Copy the existing short-cut JText Connector and paste it as JTextRWLConnector. 3. Open the properties of this new short-cut. 4. Update the field Target to reflect the name of this connector (JTextRWL) and the name of your ICS (SUPPLIER in our case), as shown in Figure 8-7. The value in the field Target should then be like this:
C:\IBM\WebSphereItemSync\connectors\JText\start_JText.bat JTextRWL SUPPLIER
103
5. Switch back to the System Manager. Right-click the folder Connectors in the ICL ItemSyncLibrary and select Create New Connector. 6. The tool Connector Configurator Express will start and present you the new connector window. Set the name to JTextRWLConnector (one word, case sensitive) and select JText for template name. See Figure 8-8.
7. After clicking OK, the Connector Configurator Express shows the standard properties for this connector. 8. Update the properties shown in Figure 8-9 on page 105, as follows: AgentTraceLevel to 5 ControllerTraceLevel to 5 LogAtInterChangeEnd property to true This will provide maximum tracing capabilities at runtime for debugging purposes.
104
9. Update the property MessageFileName to: C:\IBM\WebSphereItemSync\connectors\messages\JTextConnector.txt Note: It is worth mentioning again here that everything in your configuration is case sensitive. (Remember that this is all a Java application under the covers.)
10.Add business objects on the tab Supported Business Objects, as shown in Figure 8-10 on page 106. Mark required Agent Support as shown. Note: Agent Support indicates that this is to be a Business Object known to the Connector Agent. That is, the part of the connector that recognizes ASBOs (Application Specific Business Objects) and the meta-objects required to serialize and de-serialize the data streams for processing. The GBO is used at the Connector Controller end and, as such, does not require Agent Support.
105
11.Select File Save To Project before switching to the tab Associated Maps. 12.Select Explicit Binding and then select the maps from the drop-down listbox, as shown in Figure 8-11 on page 107. 13.At this point also set the logging and tracing to go to both the console and a file, we choose, as follows:
C:\IBM\WebSphereItemSync\connectors\JText\JTextRWL.log
106
14.Save the connector to the project and save it to file as well. Save the cfg file in the folder C:\IBM\WebSphereItemSync\connectors\JText.
107
3. After you click OK, the Connector Configurator Express shows the standard properties for this connector. 4. Update the fields AgentTraceLevel and ControllerTraceLevel to provide maximum tracing at runtime. Also set the LogAtInterChangeEnd to true and the logging and tracing to both console and file. 5. Update the field MessageFileName to
C:\IBM\WebSphereItemSync\connectors\messages\ISoftConnector.txt
6. Now switch to the tab Connector-Specifc Properties. The adapter uses a number of queues for its internal processing. Change the queue names to refer to the queue manager you are using (for example, SUPPLIER) instead of the default name crossworlds.queue.manager. 7. Create these queues.
108
In the Additional Materials is a file named iSoftQueues.tst. You can use this file to create the queues from a command window as follows:
runmqsc SUPPLIER <iSoftQueues.tst
8. Set the field DataHandlerConfigMO to the name of the meta-object that we created earlier: MO_DataHandler_UCCnet_envelope. 9. Change the field ConfigurationMetaObject to the name of meta-object created before: MO_ISoftAdapterConfig. 10.Verify that a property UseDefaults exists and has the value True. Note: This value will ensure that if we have allocatted any default values to properties in our meta-object definitions that they will be used if any mandatory value is not passed. 11.Switch now to the tab Supported Business Objects and add business objects to this tab, as shown in Figure 8-13. Check Agent Support for the business objects as indicated.
12.Save the connector to the project and switch then to the tab Associated Maps. 13.Select Explicit Binding and chose the maps as shown in Figure 8-14 on page 110.
109
14.Save the connector to the project and save it to a file as well as to the folder C:\IBM\WebSphereItemSync\connectors\iSoft.
8.4.3 PortConnector
A Port connector is a null connector that can be used for testing during collaboration development, as a stub or driver for instance. It is also a connector that can be used to bind unused ports on a collaboration. We will now create and configure a Port connector. 1. Repeat the same steps to create a PortConnector (using the Port connector template). 2. Set the trace levels appropriately. 3. The Port connector requires Agent Support for the business objects ItemBasic and UCCnetGBO_envelope. 4. Save the connector to the project and to a file in the folder C:\IBM\WebSphereItemSync\connectors\.
110
We will not be creating the email collaborations. Where these collaborations would normally be used, we will bind with a Port connector. See Figure 8-15.
Item.Verb
ItemSync
Item, delist and withdraw
ItemCommandRouter
UCCnet_XSD_CIN_Dispatcher_forIRC
connector
connector
111
The figure above shows the basic flow from a back-end application to UCCnet as it works through a series of collaborations. As can be seen, the first of the collaborations that must be processed as part of the item synchronization process is the ItemSync itself. This is where we will commence building the collaboration objects.
From ItemBasic.Create
Update table
To
Figure 8-16 Flow of UCCnet_ItemSync collaboration
1. From the System Manager, right-click on the Collaboration Objects folder in the ItemSyncLibrary ICL 2. Select Create New Collaboration Object. See Figure 8-17 on page 113.
112
3. Select the UCCnet_ItemSync template. 4. Enter a Collaboration Object name of UCCnet_ItemSyncObject. 5. Click Next. See Figure 8-18 on page 114.
113
6. On this screen, we select the binding type for the ports. 7. Set the binding types as shown in Table 8-3:
Table 8-3 Port binding types Port DestinationAppRetrieve From To Binding Type Connector Connector Collaboration
114
9. Set the trace levels to their maximum values. 10.Click Next. See Figure 8-20 on page 116.
115
116
Property SUPPLIER_NAME
Value ITSOSUPPLY2 (for the trading partner lookup substitute your UCCnet user identifier)
12.Click OK. 13.You are now be able to see the collaboration object ready to have the ports bound. See Figure 8-21.
14.Right-click on each port in turn and select Bind Port. See Figure 8-22 on page 118.
117
15.A pop-up box appears to allow you to select the connector or collaboration you wish to bind to. Note: You will only see the connectors that have the correct business object support. See Figure 8-23.
118
Table 8-5 Port bindings Port From Bind With Port Connector (this is for unit testing purposes only - we will rebind the port to an actual application connector after initial testing) Leave for the time being. We will get back to it later. Port
To DestinationAppRetrieve
17.We need to come back and bind the To port after we have created the ItemCommandRouter object.
Item.Verb
ItemSync
Item, delist and withdraw
ItemCommandRouter
UCCnet_XSD_CIN_Dispatcher_forIRC
connector
connector
As can be seen from Figure 8-24, from the ItemSync collaboration, processing continues to another collaboration, which is the ItemCommandRouter collaboration. See Figure 8-25 on page 120.
119
From
TO_RCIR
connector
1. Create another new Collaboration object, as shown in Figure 8-26 on page 121.
120
2. Click the ItemCommandRouter template. 3. Enter a Collaboration Object name of ItemCommandRouterObject. 4. Click Next. See Figure 8-27 on page 122.
121
6. Click Next.
122
7. Set the trace levels to their maximum levels. 8. Click Next twice. 9. Click OK. 10.You are now be able to see the collaboration object ready to have the ports bound. 11.Right-click on each port in turn and select Bind Port. See Figure 8-28.
12.A pop-up box appears to allow you to select the connector or collaboration you wish to bind to.
123
Note: You will only see the collaboration objects that are available for connection and the ports on the collaboration that can be used. See Figure 8-29.
Note: A reminder of some terminology here. RCIR stands for Register Catalogue Item Registry. This is a request that will be sent to UCCnet to register a new item. In this case, we will be sending to a port (the iSoft connector for instance) to enable our AS2 channel to send the request to UCCnet. The CIN is a Catalogue Item Notification. 13.We need to come back and revisit the ToCIN port after we have created the UCCnetXSD_CIN_Dispatcher collaboration object. 14.Go back to the UCCnet_ItemSyncObject and check that the To port is now bound to the ItemCommandRouter collaboration.
124
Item.Verb
ItemSync
Item, delist and withdraw
ItemCommandRouter
UCCnet_XSD_CIN_Dispatcher_forIRC
connector
connector
We now come to the third collaboration for the initial ItemBasic flow. See Figure 8-31 on page 126.
125
From
Use Category field and locate GLNs of subscribers Send a CIN_ADD for each GLN
File
To
CIN_DISPATCHER_GLN_PROPERTY
1. Create another new Collaboration object. See Figure 8-32 on page 127.
126
2. Select the UCCnetXSD_CIN_Dispatcher template. Note: This is different in Version 4.3.1 - please review the product doumentation. 3. Enter a Collaboration Object name of UCCnetXSD_CIN_DispatcherObject. 4. Click Next. See Figure 8-33 on page 128.
127
6. Click Next.
128
7. Set the trace levels to their maximum levels. 8. Click Next. See Figure 8-34.
Note: This is different in Version 4.3.1. Please review the product doumentation. 9. Set the collaboration properties as shown in Table 8-9:
Table 8-9 Collaboration properties Property CIN_DISPATCHER_GLN_FILE Value c:\UCCnet\gln_subsc.txt (this file is part of the additional materials and should be copied to this directory). If you are using v4.3.1 you will see the file referred to as dispatcher_gln_file.txt. More on this file later.
129
Property SUPPLIER_NAME
10.Click OK. 11.You are now be able to see the collaboration object ready to have the ports bound. 12.Right-click on each port in turn and select Bind Port. 13.A pop-up box will appear to allow you to select the connector or collaboration you wish to bind to. Note: You will only see the collaboration objects that are available for connection and the ports on the collaboration that can be used. See Figure 8-35.
14.Bind the ports as shown in Table 8-10. 15.Go back to the CommandRouter object and confirm that the ToCIN port is bound to this collaboration.
Table 8-10 Port bindings Port From DestinationAppRetrieve To Bind With UCCnetCommandRouterObject -> ToCIN port Port Connector iSoft Connector
130
2. Select the UCCnetXSD_CIN_Dispatcher template. Note: This is different in Version 4.3.1. Please review the product doumentation.
3. Enter a Collaboration Object name of UCCnetXSD_CIN_Dispatcher_ forRWLObject. 4. Click Next. 5. Set the binding types as shown in Table 8-11 on page 132:
131
Table 8-11 Port binding types Port To From DestinationAppRetrieve Binding Type Connector Collaboration Connector
6. Click Next. 7. Set the trace levels to their maximum levels. 8. Click Next. See Figure 8-37.
132
Table 8-12 Collaboration properties Property CIN_DISPATCHER_GLN_FILE Value c:\UCCnet\gln_subsc.txt (this file is part of the additional materials and should be copied to this directory) ITSOSUPPLY2 (this is our UCCnet user id)
SUPPLIER_NAME
10.Click OK. 11.You are now be able to see the collaboration object ready to have the ports bound. 12.Right-click on each port in turn and select Bind Port. 13.A pop-up box sappear to allow you to select the connector or collaboration you wish to bind to. Note: You only see the collaboration objects that are available for connection and the ports on the collaboration that can be used. See Figure 8-38.
133
Note: You notice that we are looking at the collaboration in the tree view now. Once the graphical view starts to become very cluttered, it is easier to bind the ports from the tree view. The process is the same as in the graphical view.
Table 8-13 Port bindings Port From Bind With UCCnet_ProcessWorklistObject (We will come back and bind this after we have created the object.) Port Connector iSoft Connector
DestinationAppRetrieve To
134
Request Worklist
connector
connector
connector
135
From
Subflow RCIR_ADD_RESPONSE Audit table Write to audit table Get complete ItemBasic
Application
DestinationAppRetrieve
Send to dispatcher
CIN_DISPATCHER
In the case of something like an RCIR_ADD_RESPONSE, the processing of the message will be carried out and further dispatching of messages will take place. In the case of a CIC_Response (as shown in Figure 8-41 on page 137), processing of the message is completed and a notification is sent to a user via an email (if required).
136
From
Audit table
Perform the following steps: 1. Create another new Collaboration object. See Figure 8-42 on page 138.
137
2. Select the UCCnet_ProcessWorklist template. 3. Enter a Collaboration Object name of UCCnet_processWorklistObject. 4. Click Next. See Figure 8-43 on page 139.
138
139
Note: This is different in Version 4.3.1. Please review the product doumentation. Normally these other ports would be bound to the email connector. We override this in the steps to follow to use a Port connector (because we are not using the email function for this exercise). We will simply feed back the response through a test. 6. Click Next. 7. Set the trace levels to their maximum levels. 8. Click Next. See Figure 8-44.
140
Table 8-15 Collaboration properties Property DB_USER JDBC_DRIVER DB_PASSWORD SEND_EMAIL_TO JDBC_URL SUPPLIER_NAME DTD_URL Value smbadmin COM.ibm.db2.jdbc.app.DB2Driver smbP4$$word an email address jdbc:db2:smb_db ITSOSUPPLY2 (our UCCnet user ID) DOCTYPE envelope SYSTEM http://www.uccnet.net/xmlschema/2. 2/Envelope.xsd
10.Click OK. 11.You are now be able to see the collaboration object ready to have the ports bound. 12.Right-click on each port in turn and select Bind Port. 13.A pop-up box will appear to allow you to select the connector or collaboration you wish to bind to.
141
Note: Now this really is a very busy collaboration. Use the tree view! See Figure 8-45.
14.Bind the ports as shown in Table 8-16: Note: You notice that we are looking at the collaboration in the tree view now. Once the graphical view starts to become very cluttered, it is easier to bind the ports from the tree view. The process is the same as in the graphical view.
Table 8-16 Port bindings Port From Bind With ISoftConnector
142
Bind With ISoftConnector iSoft Connector iSoft Connector UCCnetXSD_CIN_Dispatcher_forRWLOb ject -> From port Port Connector
15.Remember to go back and check the binding for the remaining port on the RWL Dispatcher.
Request Worklist
connector
connector
connector
1. Create another new Collaboration object. See Figure 8-47 on page 144.
143
2. Select the UCCnet_requestWorklist template. 3. Enter a Collaboration Object name of UCCnet_requestWorklistObject. 4. Click Next. See Figure 8-48 on page 145.
144
6. Click Next. 7. Set the trace levels to their maximum levels. 8. Click Next. See Figure 8-49 on page 146.
145
10.Click OK. 11.You will now be able to see the collaboration object ready to have the ports bound. 12.Right-click on each port in turn and select Bind Port. See Figure 8-50 on page 147.
146
This completes the configuration of the collaboration objects. We now move on to modifying some of the hard-coded maps values prior to deploying the new objects that we have created and verifying that all of our configuration is correct.
there is a hardcoded user ID. This value must be changed to reflect your organizations own UCCnet user ID. See Figure 8-51 on page 148. Note: This is different in Version 4.3.1. Please review the product documentation.
147
14.Edit the value in each of these maps in turn and enter the value of your UCCnet user ID. 15.Save and compile the changes. See Figure 8-52.
148
By giving the project this name, it should be fairly evident which ICL we have deployed objects from as we progress (since there may be many on a large project). See Figure 8-53.
2. Source this user project from the ItemSync. 3. Go to the server view and right-click on the ICS name. 4. Click Add New User project. 5. Select the new Deployed_ItemSyncLibrary project. See Figure 8-54 on page 150.
149
6. Right-click on the server and select Validate Projects. 7. Click Deployed_ItemSyncLibrary. See Figure 8-55.
8. Click Finish. Note: Be patient. This may take a while to process because all project dependencies will be checked.
150
9. You receive a pop-up when the process has completed. What you expect is a message indicating success, as shown in Figure 8-56.
10.Now right-click on the server again and click Deploy Projects. 11.Select the Deployed_ItemSyncLibrary project. 12.Using the drop-down list, select only the two maps that we modified and the newly created business objects. (These are the meta-objects and the config objects that we created.) Select the Compile option. See Figure 8-57.
13.Click Next. 14.Select our project as where would like to replace the duplicate objects. See Figure 8-58 on page 152.
151
15.Click Finish. This will begin the deployment session. 16.Once the deploy has completed (according to the ICS log), select Deploy Projects again. 17.Using the drop-down list, select the connectors and collaboration objects (all of them, because they are all new). See Figure 8-59 on page 153.
152
18.Click Finish.
O
Note: You will notice here that you do not receive a message about overwriting duplicate objects because the server has no prior knowledge of these objects. They are new. 19.Once you have received a message indicating a successful deploy, shutdown and restart the InterChange Server. We have now completed the basic configuration of the objects that are not application-specific. The last thing we need to do is to verify the configuration we have built using a series of Test Connectors and test data.
153
3. Insert a row onto the TRADING_PARTNER table as follows, where GLN_CODE is your UCCnet GLN. See Example 8-3.
Example 8-3 Populate trading partner table insert into trading_partner (GLN_CODE,TRADING_PARTNER_NAME,TRADING_PARTNER_CONTACT,TRADING_PARTNER_TYPE) values('7789333002006', 'ITSOSUPPLY2', '918912760079', 'SOURCE')
4. Verify your results by checking the contents of the database. 5. Change the shortcut for the iSoft connector to point to your InterChange server. (Remember that when the product was installed the default ICS name was used in all of the shortcuts that were created.) 6. Start the iSoft Connector.
154
7. Start a Test Connector. 8. Create a new profile for the Port Connector. See Figure 8-61.
9. Enter the details for the configuration file (the InterChange Server configuration file when using a Port Connector) and the server. See Figure 8-62.
155
11.Select the ItemBasic business object to send. See Figure 8-64 on page 157.
156
12.Load a business object with test data. See Figure 8-65 on page 158. Note: In the additional materials there is a file named ItemBasic.bo. This is a sample business object which may be used for unit test purposes.
157
13.Open the Test Connector dialog box. See Figure 8-66 on page 159.
158
14.Enter an instance name. 15.Select Request Mode Synchronous. 16.Select Request Send. 17.Select the UCCnet_ItemSyncObject collaboration. See Figure 8-67 on page 160.
159
18.Wait to see a response from the server, as shown in Figure 8-67. 19.Check the InterChange Server log for any errors. 20.Verify that the message has gone to the iSoft OUTBOX queue. See Figure 8-68 on page 161. Note: We used RFHUTIL as the tool to check the contents of the queue because it shows XML data in a friendly and readable format. This tool can be found in the Additional Materials.
160
21.Check the contents of the message on the queue. It should look similar to that shown in Figure 8-69 on page 162.
161
We have now completed the basic configuration for the collaborations. In the next chapter, we move on to configuring the objects to link in our back-end application to the solution.
162
Chapter 9.
163
5. Next, we create the event tables that are used by the JDBC Connector to detect events in the application table. Type the command:
db2 -tvf eventtables.ddl
Attention: The database design for our scenario uses the UPC.EAN code as the item number (and therefore key). We do this intentionally because the UPC.EAN code from the GBO will be used as the key value for the destination app retrieve downstream in the CIN processing.
164
6. Select After as the value for Time of trigger action. See the configured dialog box in Figure 9-1.
7. Click Triggered action, shown in Figure 9-2 on page 166. Set the correlation name to n. 8. Edit the triggered action field. The SQL statement is shown below in Example 9-1.
Example 9-1 Triggered action BEGIN ATOMIC INSERT INTO smbadmin.xworlds_events ( connector_id, object_key, object_name, object_verb, event_priority, event_status, event_time, event_comment) VALUES ('', n.PRODUCTID, 'SUPPLIER_ITEM_CATALOG','Create',0,0, CURRENT TIMESTAMP, 'Item Create'); END;
165
9. Click OK to complete this step. 10.To test the generation of events by the trigger, open a DB2 command window again and type the following SQL commands:
Example 9-2 Testing trigger db2 connect to supplier user smbadmin using smbP4$$word db2 insert into ITEM_CATALOG (productid,Unitof_wgt,description,descriptionshort,upceancode) values(12345678901234,'1','First item description','FID','12345678901234') db2 select * from xworlds_events
Note: The second command should be typed on a single line. The output of the select should have an event record. If the events table does not contain an event record, the trigger has not worked.
166
3. Locate the SET statement for the environment variable DRIVERLIB. This environment variable should have the value C:\<DB2 Root directory>\bin.
set DRIVERLIB=C:\SQLLIB\bin
4. Save the file and close the editor. 5. Now, start the JDBC ODA by selecting Start Programs IBM WebSphere BI Express... Adapters Object Discovery Agents JDBC Object Discovery Agent. This will start a console window. 6. Start the System Manager now. Right-click the folder Business Objects in the ICL ItemSyncLibrary and click Create New Business Object. 7. A New Business Object window will appear. Click Cancel and then select File New Using ODA. 8. A new wizard will start. Click Find Agents to populate the list of available agents. See Figure 9-3 on page 168.
167
9. Once the JDBCODA is found, select it and click Next. 10.In the next step, we need to provide some database access parameters. Set the following: a. UserName: smbadmin b. Password: smbP4$$word c. Database URL to jdbc: db2:supplier d. DatabaseDriver: COM.ibm.db2.jdbc.app.DB2Driver 11.To be able to use these settings in the future without retyping them, provide a name for this connection profile and click Save. 12.Click Next to continue. See Figure 9-4 on page 169.
168
13.The ODA will now connect to the database and retrieve the available tables. Expand the schema SMBADMIN and select the table ITEM_CATALOG. Click Next to continue. See Figure 9-5 on page 170.
169
14.In the next step, the wizard will ask to confirm your selection. Click Next again. See Figure 9-6 on page 171.
170
15.The fifth step provides some options to control the generation of the business object. Set the BO Prefix field to SUPPLIER_. 16.Verify that the verbs are selected and set the support for stored procedures to No. Click Next again. See Figure 9-7 on page 172.
171
17.In the last step, make sure that the ICL ItemSyncLibrary is selected. 18.Since we do not need the ODA after this, select the option to shut down the ODA. 19.Click Finish. See Figure 9-8 on page 173.
172
20.You are now again in the Business Object Designer. Locate the generated object and review the characteristics.You can close the Business Object Designer now.
173
2. The next step allows you to select the source business object, which is SUPPLIER_ITEM_CATALOG, as shown in Figure 9-10 on page 175. Click Next to continue. See Figure 9-10 on page 175.
174
3. The next step allows you to select the target business object, which is the generic business object of the ItemSync collaboration: ItemBasic. Click Next to continue. Figure 9-11 on page 176.
175
4. During the next step, you are asked to provide a name for this map. Good practice is to use a name that reflects the business objects that are involved and the direction of the map. 5. Also verify also the Mapping Direction. This is a map from an ASBO to a GBO. 6. Click Finish to complete the wizard. See Figure 9-12 on page 177.
176
7. The Map Designer will now open the map in the Diagram view (as shown in Figure 9-13 on page 178). Another way of looking at a map is the Table view. Note: Mapping statements are created by dragging the source element and dropping it on the target element. This creates the blue connector and sets the Rule to Custom. You need to change the Rule to Move. Target attributes that are filled in by assignment to a constant are created by selecting Set Value as a rule, without any drag-and-drop.
177
Using this method (or the table method if you are more comfortable with it), create the map statements in the Diagram view as specified in the Table view below in Figure 9-14 on page 179.
178
Note: Many of the values that we have hard coded here relate to relationship lookups that will be performed downstream. We have merely included a small subset of the ItemBasic values to enable mapping to occur and the minimum requirements for UCCnet to be met. 8. When the map statements are added, select File Save To Project. If you are asked to compile the map, please do so. If the Map Designer complains about the order of the map statements and offers to correct it, allow the Map Designer to reorder the map statements.
179
3. Provide some values for each field of the source object. (We have provided a sample business object in the Additional Materials section: SUPPLIER_ITEM_CATALOG.bo). 4. Click Save To to save this test business object into a file for future use. See Figure 9-15.
5. Start a test of the map by clicking the black triangle icon in the tools bar now. 6. You will be prompted to provide information about the server where you want to perform the map test (as shown in Figure 9-16 on page 181). 7. This implies that the ICS must be running for this step. Start the ICS if it is not running and wait until you see the ready message before clicking Connect in Figure 9-16 on page 181.
180
8. When the map test is completed, verify the result in the right pane (as shown in Figure 9-17 on page 182). 9. Click Save To to store this business object in a folder for future use.
181
10.Save the map to the project and compile it. Then, you can close the Map Designer tool.
182
4. The Connector Configurator will now show the standard properties of the connector. Change the values for AgentTraceLevel and ControllerTraceLevel. Change the name of the MessageFileName, as shown in Figure 9-19 on page 184. Also, change the value of LogAtInterchangeEnd to true.
183
5. Select the tab Connector-specific properties. Complete the fields ApplicationUserName and ApplicationPassword with the values smbadmin and smbP4$$word respectively. 6. Fill in the field DatabaseURL with the value jdbc:db2:SUPPLIER. 7. Select the DB2 as the RDBMSVendor value from the drop-down listbox. 8. Set the attribute JDBCDriverClass to the value COM.ibm.db2.jdbc .app.DB2Driver. See Figure 9-20 on page 185.
184
9. Switch to the tab Supported Business Objects and add ItemBasic and SUPPLIER_ITEM_CATALOG. Check Agent Support for the ASBO. 10.Save the connector to the project now before switching to the tab Associated Maps. See Figure 9-21.
185
11.Since we have developed only the map from the ASBO to the GBO, we can only add that map to the connectors configuration. See the dialog box in Figure 9-22.
12.Save the connector to the project and to the configuration file in the JBDC folder within the connectors directory. 13.Close the Connector Configurator.
186
2. Right-click the user project Deployed_ItemSyncLibrary and select Update project. Select the new objects to be added to this user project: The business object SUPPLIER_ITEM_CATALOG The map SUPPLIER_ITEM_CATALOG_to_ItemBasic The JDBCConnector See Figure 9-24 on page 188.
187
3. Switch to the Component View and stop the UCCnet_ItemSyncObject collaboration. 4. Right-click the server instance and select Deploy Project. 5. Select only those objects that are changed or that are new. Then, deploy them. Note: If you see errors or warnings in the InterChange Server log during this process, it may be worthwhile to deploy each of the objects individually to ensure that all dependencies are OK. Deploy the business object, followed by the map, followed by the connector, followed by the collaboration. 6. Restart the InterChange Server.
188
5. Connect to the ICS using this profile. See Figure 9-26 on page 190.
189
6. From the drop-down box, select the SUPPLIER_ITEM_CATALOG business object. 7. Load (or manually create) the SUPPLIER_ITEM_CATALOG business object that was used for the map test. 8. Give the business object a name (Test in our example below). See Figure 9-27 on page 191.
190
9. Select synchronous mode and send the business object. 10.When prompted for the collaboration, we select the UCCnet_ItemSyncObject collaboration from the drop-down list. See Figure 9-28.
11.The business object is sent to the ICS for processing and the ItemCommandRouterObject will eventually send the UCCnet envelope message to the OUTBOX queue for the iSoft connector as before. 12.Check the contents of the queue for a message that contains the data that we have sent in our business object. As before, use RFHUTIL to check that the message looks similar to Figure 9-29 on page 192.
191
Note: If you do not have a message on the queue, check the log and trace file for each of the connectors and also the InterChange Server. (When we turned on the LogAtInterchangeEnd property on for the connectors, it resulted in a great deal of useful trace information in the ICS log). 13.Start the Web system monitor application, if it is not already running. 14.Select the Collaboration Overview and check that the Total Flows counter on the ItemCommandRouterObject has been incremented.
192
Note: Another place to check now is the audit_log table in the smb_db. 15.Using your favorite DB2 command or administration utility, select all of the rows from the audit_log table. We have not discussed the audit logging in any detail thus far. We can see from the rows in the audit_log table that there are four log entries created for the trip from the inbound connector to the iSoft outbox. The status entries for these are: a. InitCollaboration b. ItemAdd c. ADD d. Success If you have any status of Exception, check the ICS and connector logs. 16.Still looking at DB2 tables, select all rows from the PROCESSED_GTIN table. This table shows the list of GTINs that have been added.
193
3. Open the file start_JDBC.bat in the directory C:\IBM\WebSphereItemSync \connectors\JDBC. 4. Edit the JDBCDRIVERPATH to be c:\SQLLIB\Java\DB2Java.zip. 5. Edit the java.library.path to include c:\SQLLIB\bin as the first library in the concatenation. 6. Save the file and close it. 7. Start the JDBC Connector. 8. The row in the event table will be processed. 9. Check the following to verify that it has been processed correctly: a. Select all rows from the xworlds_events table in the SUPPLIER database. This table should now be empty. b. Select all rows from the audit_log table in the SMB_DB database. There should be a set of audit records for this event. (You will notice that the ADD and Success status messages indicate a verb_name of update. This is because we used the same product_id in this test as we had used in an
194
earlier test and consequently the collaboration changed the Create verb to an Update. This is the correct and expected behavior). c. Check the contents of the message in the OUTBOX queue. d. Refresh the view of the Collaboration Statistics in the System Monitor. The counter for the ItemCommandRouterObject will have been incremented. Note: You will notice that now the counter for the UCCnetItemSyncObject has also been incremented because we are using the actual connector. If this test has not worked, check the logs for the connectors and the ICS before moving on to our final unit test for this section. We have seen that events in the table can be processed by the connector. Finally, we will trigger an event and allow the entire process through to the outbox to run unassisted. 1. Using a DB2 command line utility, insert a row into the ITEM_CATALOG table of the SUPPLIER database. (This equates to an actual application creating a new catalog item entry.) 2. Use a new value for the UPCEANCODE so we can track it, as shown in Example 9-3:
Example 9-3 Insert UPCEANCODE value db2 insert into ITEM_CATALOG (ProductId,Unitof_wgt,description,descriptionshort,upceancode) values(11111111111100,'1','Full Unit Test Item','TEST','11111111111100')
3. Check in the same sources as the last test to validate the processing of the new catalog item. Note: The values that we have used in this sample for the UPCEANCODE (which will be the UCCnet GTIN) are not necessarily valid values. You will need to use the GTIN calculator to obtain a correct GTIN.
195
196
10
Chapter 10.
197
198
**************************************************************************** Enter your Internal Address Type ( 1 or 2 ) >> 1 Enter your internal port number (ie 4080) >> 4080 Enter your internal address URL >> 127.0.0.1 **************************************************************************** The notification address is the IP address that will receive notifications. My notification address type is (1) IP address (2) A DNS resolveable URL (3) Email address **************************************************************************** Enter your Notification Address Type ( 1 or 2 or 3) >> 1 Enter your notification address URL >> 127.0.0.1 **************************************************************************** Identify the certificate that will be used for iSoft Testing. Enter the first part of the file name that contains your Public\Private keys. This name cannot contain any spaces and should describe the trading pair rela Example: YourName-iSoft ( You to ISOFT trading relationship ) **************************************************************************** Enter the certificate name for use with iSoft Testing >> ITSO-UCCNET **************************************************************************** Identify the certificate that will be used for Wal-Mart. Enter the first part of the file name that contains your Public\Private keys. This name cannot contain any spaces and should describe the trading pair rela Example: YourName-Walmart ( You to Walmart trading relationship ) **************************************************************************** Enter the certificate name for use with Walmart >> ITSO-UCCNET **************************************************************************** The following questions provide additional data contained in the certificate. **************************************************************************** Enter your two letter State Code >> NC Enter your City (Spaces not allowed) >> Raleigh Enter your Organization (Spaces not allowed) >> ITSO
3. We use 1 as the address type and the localhost IP address. 4. Use ITSO-UCCNET for our certificate names (we will generate these later).
10.1.2 p2pagent.cfg
Now that we have some basic values in our configuration files, it becomes much clearer what the purpose of each piece of configuration is used for. Before moving on and completing the configuration, take a minute to look over the current configuration files as they are.To complete the configuration tasks. 1. Open the p2pagent.cfg file 2. Edit the configuration file so that it looks as follows:
199
Example 10-2 ITSO to UCCnet config <xml> # configuration settings <command>set -eperror -ef</command> <command>set -lplog -lf</command> <command>set -npnotice -nf-</command> <command>set -opworkorder -oswo</command> <command>set -pppki</command> <command>set -rpreceipt</command> <command>set -tr300s</command> <command>set -m6</command> <command>set -bhmq://SUPPLIER</command> # # UCCNET <command>addpair ITSO UCCNET http://127.0.0.1:5080/ http://127.0.0.1:4080/ ITSO mq://SUPPLIER/OUTBOX</command> <command>addpair UCCNET ITSO http://127.0.0.1:4080/ * UCCNET mq://SUPPLIER/MQCONN.IN</command> # # UCCNET certificates and keys <command>importkey ITSO UCCNET E -fCpki\ITSO-UCCNET.cer -fKpki\ITSO-UCCNET.prv</command> <command>importkey ITSO UCCNET J -fCpki\UCCNET-ITSO.cer</command> <command>importkey UCCNET ITSO E -fCpki\ITSO-UCCNET.cer -fKpki\ITSO-UCCNET.prv</command> <command>importkey UCCNET ITSO J -fCpki\UCCNET-ITSO.cer</command> # # start services <command>start http://127.0.0.1:4080/</command> # </xml>
3. Delete the stanzas for iSoft Testing and iSoft certificates and keys. 4. For our test, we will send to a partner named UCCNET. (This is not the real UCCnet AS2 name, but it will make life easier when changing the configuration files for an actual test run to UCCnet.) Change the words Wal-Mart to UCCNET.
5. Change:
ITSO inbox\08925485US00
to
ITSO mq://SUPPLIER/OUTBOX
200
This will enable the agent to pick up messages from our queues to send to UCCnet. 6. Replace the Wal-Mart AS2 name (08925485US00) with UCCNET. 7. Replace the IP address (161.165.202.30)with the localhost IP address. 8. Replace the second instance of inbox (UCCNET inbox\UCCNET) with the location that we expect our inbound documents to be sent in the form:
UCCNET mq://SUPPLIER/MQCONN.IN
(This is the inbound event queue for our iSoft connector). 9. Change the certificate names as shown above. We will be generating these on both ends. Note: In the real world, when starting initial testing with the UCCnet Test Registry, a testing certificate (UCCnetTestReg.cer) will be used to verify communications with UCCnet.This is provided by the UCCnet Help Desk when you register. 10.We also need to add some additional commands to facilitate processing. In the configuration setting stanza at the top, add another command in the form:
<command>set -bhmq</command>
This sets the trace level so that we can trace errors and warnings. 11.Save and close this file. 12.Create a workorder file named SendToUCCnet.wo with the following text:
<xml> <command>send http ITSO UCCNET -de -dsMAILBOXID=OUTBOX -tC30 -tE20041231000000 -n1 -sC -r1 -e -oZ</command> </xml>
Where: http is the protocol. ITSO is our AS2 name. UCCNET is our receiver. -de is external data access type. -ds are the mailbox parameters. -tC specifies the number of seconds between retries. -tE specifies the expiry time of a message.
201
-n specifies the number of send attempts. -sC specifies to send a signed certificate. -r requests an unsigned MDN. -e requests Triple DES encryption of data. -oZ requests ZLIB compression of data. 13.Save and close this file.
Tip: If you receive an error when generating keys, such as Unknown Relationship check that the names for yourself and the receiver match those in the P2PAgent.cfg. You may also use the listpairs command to see what the agent has been started up with. 10.Now, export the keys by entering:
batch exportkeys2.wo
202
12.Shutdown the P2P Agent from the command line with the shutdown command. 13.Copy the two keys that were created (.cer and .prv) to the pki directory.
UCCNET
203
<command>addpair ITSO UCCNET http://127.0.0.1:5080/ http://127.0.0.1:4080/ ITSO inbox\ITSO</command> <command>importkey UCCNET ITSO E -fKpki\UCCNET-ITSO.prv</command> <command>importkey UCCNET ITSO J <command>importkey ITSO UCCNET E -fKpki\UCCNET-ITSO.prv</command> <command>importkey ITSO UCCNET J -fCpki\UCCNET-ITSO.cer -fCpki\ITSO-UCCNET.cer</command> -fCpki\UCCNET-ITSO.cer -fCpki\ITSO-UCCNET.cer</command>
5. Update the workorder file (addkeys2.wo) to change the AS2 name to the UCCnet AS2 name. 6. Make the same change to the exportkeys2.wo file. 7. Start the iSoft Agent (from a command prompt) as follows:
p2pagent_odbc_exp
8. Add the keys as follows at the command line of the iSoft Agent:
batch addkeys2.wo
9. Export the keys as follows at the command line of the iSoft Agent:
batch exportkeys2.wo
10.Shutdown the iSoft Agent as follows at the command line of the iSoft Agent:
shutdown
11.Copy the certificates created to the PKI directory. 12.Create a workorder file named SendToITSO.wo with the following command:
Example 10-4 Create workorder file SendToITSO.wo <xml> <command>send http UCCNET ITSO -de -fPoutbox\ITSO -fSxml -fE.sent -tC30 -tE20041231000000 -n1 -sC -r1 -e -oZ</command> </xml>
204
2003.11.19 09:20:11.094 2003.11.19 09:20:11.094 2003.11.19 09:20:11.104 2003.11.19 09:20:11.104 2003.11.19 09:20:11.114 2003.11.19 09:20:11.124 2003.11.19 09:20:11.134 2003.11.19 09:20:11.184 2003.11.19 09:20:11.194 2003.11.19 09:20:11.204 2003.11.19 09:20:11.214 2003.11.19 09:20:11.244 2003.11.19 09:20:11.315 2003.11.19 09:20:11.335 batch addkeys2.wo ok 2003.11.19 09:21:23.929 batch exportkeys2.wo ok 2003.11.19 09:21:55.114 shutdown
POPT POPT POPT POPT POPT POPT POPT PIKC PIKC PIKC PIKC PIKC PIKC HPIM
Notice path set to [notice] Notices will not be written to file Work-order path set to [workorder] Work-order file-spec set to [wo] PKI path set to [pki] Async. receipt path set to [receipt] First-receive interval set to [300000ms] Unable to import keys Unable to import keys Unable to import keys Unable to import keys Unable to import keys Unable to import keys HTTP inbound service started
The two organizations now need to exchange certificates. The certificate that needs to be exchanged is the public key certificate, not the private key certificate which should never be given to anyone. Make sure there is a copy of the both of the .cer files on the PKI directory of both of our iSoft installations.
7. Check that the iSoft Agent has picked up the data and processed it.
205
206
2004.03.01 30 21 30 2004.03.01 AC 29 71 2004.03.01 56 F5 8F 2004.03.01 2004.03.01 9F E7 CA 2004.03.01 DB DE 72 2004.03.01 C0 12 7B 2004.03.01 86 16 55 2004.03.01 FB DB 96 2004.03.01 B8 0E E7 2004.03.01 1C C9 CE 2004.03.01 72 FC 8A 2004.03.01 2004.03.01 2004.03.01 2004.03.01 2004.03.01 2004.03.01 2004.03.01 2004.03.01 2004.03.01 2004.03.01 E4 F1 7F 2004.03.01 18 70 B6 2004.03.01 B5 37 0C 2004.03.01 FE A0 A1 2004.03.01 64 1C 4C 2004.03.01 D8 C9 B6 2004.03.01 1E 69 48 2004.03.01 03 B2 EE 2004.03.01
FF FF FF FF FF FF FF FF FF FF FF FF 00 09 06 05 2B 0E 03 02 1A 05 00 04 14 37 AF 44 CB AA 22 C3 CE BB 51 DD 97 D2 52
17:34:30.054 43316 SIGN OK Encrypted digest: 17:34:30.064 43316 SIGN OK 24 C0 FC 16 84 2E A3 AC 55 C5 11 18 04 17:34:30.075 43316 SIGN OK 17:34:30.075 43316 SIGN OK 17:34:30.085 43316 SIGN OK 17:34:30.095 43316 SIGN OK 17:34:30.105 43316 SIGN OK 17:34:30.105 43316 SIGN OK 17:34:30.115 43316 SIGN OK 17:34:30.125 17:34:30.135 17:34:30.145 17:34:30.145 17:34:30.165 17:34:30.165 17:34:30.175 17:34:30.185 17:34:30.185 17:34:30.195 43316 43316 43316 43316 43316 43316 43316 43316 43316 43316 SIGN COMP GCIP GCIP ENCR ENCR ENCR ENCR ENCR ENCR OK OK OK OK OK OK OK OK OK OK 09 EB 0C 44 C1 50 4C 68 9B 91 96 47 76 6C 67 E8 72 54 14 92 62 24 66 CC D0 9D 64 F9 09 B3 7B B0 4C AE 57 73 A7 2C 60 9B 56 CD EF 8B B6 E4 A9 92 C8 5F 7E CB 57 83 0D 26 E7 A0 1B 7C 2C CC 7C 97 8F 80 29 6F E0 AC 6D 99 DB 47 9A C8 CC 98 58 4C CE 71 65 CE 25 93 D3 05 AC C3 21 Exiting Sign Data signed Entering GetCipherObject Exiting GetCipherObject Encrypting message cert->m_uCertLen=[552] key.bytes=[24] cert->m_key.n.bytes=[128] Decrypted encryption key: 00 02 E8 2A 9A 9E 7C AC 57 DB 08 1E B7 B9 35 C9 40 03 98 D8 03 4E C9 A0 F7 C5 FB 52 E0 69 90 E3 D8 F3 BA FB CE C5 E6 B0 99 16 86 92 4F CD 64 9E 20 86 2B B1 4C A1 97 C1 E0 0C E7 0A A5 93 08 09 11 68 7B 6B 56 37 B2 92 9A F7 A9 01 E0 A4 9E 29 05 B2 19 80 C2 00 CA CD 2F 54 69 EA 0C 66 E1 09 B9 A9 E4 9B 2D 70 1A C4
17:34:30.205 43316 ENCR OK 17:34:30.205 43316 ENCR OK 17:34:30.215 43316 ENCR OK 17:34:30.215 43316 ENCR OK 17:34:30.225 43316 ENCR OK 17:34:30.225 43316 ENCR OK 17:34:30.235 43316 ENCR OK
207
2004.03.01 17:34:30.255 43316 79 5A C1 2004.03.01 17:34:30.265 43316 F5 30 78 2004.03.01 17:34:30.265 43316 A6 56 A8 2004.03.01 17:34:30.275 43316 BF D0 0D 2004.03.01 17:34:30.275 43316 22 79 15 2004.03.01 17:34:30.285 43316 66 0B 08 2004.03.01 17:34:30.285 43316 FC 8D BF 2004.03.01 17:34:30.295 43316 A0 6F B9 2004.03.01 17:34:30.305 43316 2004.03.01 17:34:30.305 43316 2004.03.01 17:34:30.315 43316 2004.03.01 17:34:30.325 43316 2004.03.01 17:34:30.325 43316 2004.03.01 17:34:30.335 43316 2004.03.01 17:34:30.345 43316 N6wpca9Ey6oiw867Ud2X0lJW9Y8= 2004.03.01 17:34:30.345 43316 2004.03.01 17:34:30.355 43316 2004.03.01 17:34:30.365 43316 2004.03.01 17:34:30.365 43316 2004.03.01 17:34:30.375 43316 2004.03.01 17:34:30.395 43316 2004.03.01 17:34:30.395 43316 2004.03.01 17:34:30.405 43316 2004.03.01 17:34:30.405 43316 2004.03.01 17:34:30.415 43316 2004.03.01 17:34:30.415 43316 2004.03.01 17:34:30.425 43316
ENCR OK ENCR OK ENCR OK ENCR OK ENCR OK ENCR OK ENCR OK ENCR OK ENCR COMP PACO CDTH CDTH PACO COMP COMP HPOS HPOS HPOS HPOS HPOS HPOS HPOS HPOS HPOS HPOS HPOS OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK
2F BB 1D B3 94 87 83 EB D7 F5 BC E4 8D 7E 79 09 D2 9B 04 8B 0A 27 53 74 54 CC 56 59 48 0E 24 09 AF 1B 70 A3 D8 EA 94 D4 F4 A9 B0 73 35 04 0A 40 13 C1 D5 78 61 88 1B 55 48 56 1E 24 30 47 12 CE 2C A5 07 DD E2 6C A9 C8 92 5C 54 54 00 EA 30 1C BC 14 16 02 94 2F 58 B3 43 12 E0 64 31 2A 14 8A A9 1D 21 11 CE C8 47 FC Message encrypted Data encrypted Start PackOuter Entering ComposeDateHeader Exiting ComposeDateHeader End PackOuter The outbound digest is Exiting ComposePackage Sending 3446 bytes Temporary files created Socket created Connecting to server: 127.0.0.1:5080 Connection established HTTP server: 127.0.0.1:5080 Remote address obtained 3446 bytes read from file 3446 bytes written to server. t=3000 r=0 0 bytes read from file TimeLeft set to first-receive timeout
9. Check that the Agent on the other machine has received the data and responded. 10.Check the inbox folder of the UCCNET agent (under ITSO) for a text file that contains the payload of the AS2 transmission (that is, the message that would have been delivered to UCCnet).The file will have a name that is composed of the time and date stamp and some other characters. 11.The UCCNET agent will have sent an MDN back. Ensure that this MDN has been successfully written to the receipt directory of the ITSO agent. The MDN
208
will have a name of <responder>.<sender>.mdn.<timeanddatestamp>xxx.in and will look similar to Example 10-7.
Example 10-7 MDN Reporting-UA: iSoft Peer-to-Peer Agent Final-Recipient: rfc822; "UCCNET" Original-Message-Id: <2004030117342937E238B0@ITSO> Received-Content-MIC: N6wpca9Ey6oiw867Ud2X0lJW9Y8=, sha1 Disposition: automatic-action/MDN-sent-automatically; processed
We have now successfully configured our AS2 channels for testing the send of the RCIR. In the next chapter, we move on to handling the responses from UCCnet to enable an end-to-end test for our new item.
209
210
11
Chapter 11.
211
RCIR
GTIN/GLN/TM 35 attrs
Data validation 1 2
UCCnet GLOBALregistry
registration response
Figure 11-1 Item registration
212
1. Ensure that both P2P agents are running. 2. In our P2P configuration for the ITSO end, we have configured our INBOX to be a queue. (This is the inbound event queue for the iSoft connector (as shown in Example 10-2 on page 200.) Check that this queue exists. 3. Ensure that the iSoft connector and JTextRWL connector are running. 4. From Appendix C, Additional material on page 259, copy the file RCIR_ADD_response.ITSO_15.xml to the UCCnet ITSO outbox directory. Note: The test messages we are using have been configured to match the UPC.EAN codes that we have invented. Therefore, the _15 files match the 00094860443115 code from the UCCNET_Test.bo. If you are using other codes, remember to edit the response messages to match. 5. Check the connector logs to ensure that no errors have occurred. 6. Check the audit log table of the smb_db. You will now see additional messages similar to those shown below. There are a few things of interest now in these logs, as shown in Figure 11-2, parts 1 and 2: ,
Figure 11-2 Audit log part 1
Note the second row of the table shows a GLN code that is not ours. This is the GLN code sent from UCCnet from the register command response from the processWorklist collaboration. It should be our GLN code. If viewed in sequence number order, we now see that the processing for our new item has progressed as shown in Table 11-1:
Table 11-1 Collaboration processing Transaction UCCnet_ItemSync UCCnet_ItemSync Processing Initialize ItemAdd
213
7. Check the PROCESSED_GTIN table and ensure that there is an entry for the new item. Because all of the responses from UCCnet will be processed using this same basic flow (processWorklist), it is only the type of message that will determine the specifics of what is recorded, who is notified, and what downstream processing, if any, will take place.
214
We now need to re-bind the processWorklist collaboration to enable the JDBC connector to perform the destination application retrieve from the source application. The DestinationAppRetrieve port allows us to use a connector to retrieve the data from our source application. We also need to create a map to map the Item Basic GBO to the application SUPPLIER_ITEM_CATALOG. This mapping enables the retrieve.
215
2. Ensure that the mapping direction is set as GBO to ASBO. Map the fields as shown in Table 11-2.
Table 11-2 Field mappings Source UPCEANCode ObjItemBasic(Verb) UPCEANCode Target UPCEANCODE ObjSUPPLIER_ITEM_CATALOG(Verb) PRODUCTID
3. Ensure that any required fields in the business object are also filled (to avoid a mapping error). For our application we modified the SUPPLIER_ITEM_ CATALOG business object so that the only required fields are the PRODUCTID and the UPCEANCODE. We need to redeploy the modified business object as well). 4. Save and compile this new map. 5. Deploy the changed business object and the new map. 6. Restart the InterChange Server. Note: Remember that you cannot deploy an active object. Before you deploy any changed objects, make sure that you stop them and any objects that may be using them first (such as collaborations and connectors).
216
Perform the following steps: 1. Open the JDBC connector. 2. Click Associated maps. 3. Select Explicit binding and select the ItemBasic_to_SUPPLIER _ITEM_CATALOG map. 4. Save the connector. 5. Redeploy the connector. 6. Restart the InterChange Server.
217
3. Right-click on the DestinationAppRetrieve port and select Bind Port. 4. Select the JDBC Connector. 5. You will now see that the connector shows in the Tree View along with the associated maps. See Figure 11-7 on page 219.
218
As we can see from the figure above and from our original configuration, the CIN dispatcher port passes to the UCCnetXSD_CIN_Dispatcher_forRWLObject collaboration. This will pass the CIN on to UCCnet. However, if we look at this collaboration, we see that the To port is bound to the JTextRWL connector. This means that we will have to take an inbound file from this connector and at some point pass it to the AS2 channel. Given that we already have the AS2 channel setup and the iSoft connector feeding it, there seems no real reason why we should not pass the business object directly to the iSoft connector in this instance. So, in line with our idea of automating the process as far as possible, we will also change the To port of the UCCnetXSD_CIN_Dispatcher_forRWLObject to be bound to the iSoft connector. See Figure 11-8.
219
6. Stop the collaboration objects. 7. Redeploy the two changed collaboration objects. 8. Restart the InterChange Server.
220
outstanding Work In Progress (WIP) items. Finally, we also want to clear the audit logs so that we have a clear view of what we are looking at. 1. Shutdown the InterChange Server and all components. 2. In the additional materials, there is a script named CleanDB.bat. This goes through and deletes any entries from the various Work In Progress tables in the smb_db database. Run this script from a DB2 command window. Important: Be judicious in the use of a script such as this one. It should never be used in anything other than a development environment and only in a controlled fashion! 3. Clear the contents of the audit_log table so that we have a clean view to start with (using a DB2 command window and deleting all rows from the table). 4. Ensure that the following components are running: InterChange Server JDBC connector JTextRWL connector iSoft connector P2P agents for both ITSO and UCCNET 5. As mentioned earlier, we have a small file to automate the placing of files in the correct directories. We also have a set of files for this final test (found in Appendix C, Additional material on page 259). 6. Open a command window and navigate to these files. Automate.cmd DB insert ITEM.txt RCIR_ADD_response.ITSO_16.xml CIC_SentTo.ITSO_16.xml 7. Using a DB2 command window insert a record into the item catalog using the text contained in the DB insert ITEM.txt file, as shown in:
Figure 11-9 Insert record into item catalog insert into smbadmin.item_catalog (productid, unitof_wgt, description, descriptionshort, upceancode) values('00094860443116', '1', 'Really cool thing that we make to sell', 'COOLITEM1', '00094860443116')
8. Once you have seen the RCIR_ADD be transmitted across the AS2 channel to the UCCNET receiver and the MDN be received back again, enter
221
So far so good. 2. Now go to the audit_log. It is a good idea to have a look at the contents, sorted by the sequence number. In a DB2 command window enter the following:
SELECT * FROM AUDIT_LOG AS AUDIT_LOG ORDER BY AUDIT_LOG.LOG_SEQ_NO ASC
3. Looking at some of the more important columns, we note the following, as shown in Figure 11-10:
The product id (GTIN) is consistent across the log. The GLN code for the RCIR_RESPONSE is ours, as sent from UCCnet. The GLN code for the CATALOG_ITEM_NOTIFICATION is that of our retailing partner from the subscribers list (see Example 11-1 on page 214). The transaction type sequence, appears to be correct from initialization to item add to RCIR response to Catalog Item Notification. 4. Lastly, check the processed GTIN table to ensure that this table has been updated to include the 00094860443116 GTIN. Finally, we need to process the CIC.
222
1. Go back to the command window where the automate script is running. Hit enter. This will simulate the creation of the response message from UCCnet. 2. The P2Pagent at the UCCNET end will send the response. 3. The CIC will be received and processed, completing our flow. 4. Check the audit log for complete end-to-end processing flow for our GTIN.
We have successfully implemented and unit-tested the base functions of the Item Synchronization using WebSphere Business Integration Express.
223
224
Part 3
Part
Appendixes ppendixes
225
226
Appendix A.
227
A.1 Prerequisites
UCCnet supports secure message transmission via the AS2 protocol. They have several technical prerequisites for anyone who wishes to communicate with them. Before getting started, you should visit read the UCCnets EDIINT Welcome Package, which can be obtained from their Web sites eRoom at the following URL:
http://eroom.uc-council.org/eRoom
Production:
https://www.uccnet.net/portal/secured/login/login.jsp
228
different CA. In the test environment, you are permitted to use self-signed certificates (as we did).
229
Email the completed form to CustomerSupport@uccnet.net. UCCnet will respond to confirm that you are all set up and send the UCCnet public key digital certificate.
230
1. Login as your retailer user ID and click on User Maintenance from the Administration Menu. See Figure A-2.
This step displays the User Maintenance screen. See Figure A-3 on page 232.
231
2. Type in your user ID and click Retrieve. See Figure A-4 on page 233.
232
233
4. Select Publication Information and click Add. See Figure A-6 on page 235.
234
5. Select everything in the Actions window on the top left of the screen and click the Browse button across from the word Category. See Figure A-7 on page 236.
235
6. Scroll down to the bottom of the Category Browser screen that comes up and click Select All. See Figure A-8 on page 237.
236
7. When you are returned to the Subsription Filter Details screen, click Save. See Figure A-9 on page 238.
237
8. Click on the check-box and then click Save. See Figure A-10 on page 239. Note: You see a message confirming that your subscription has been added successfully.
238
239
2. Type in your user ID and click Retrieve. See Figure A-12 on page 241.
240
241
4. Select Authorization Information and click Add. 5. Select everything in the Actions window on the top left of the screen and click the Browse button across from the word Category. See Figure A-14 on page 243.
242
6. Scroll down to the bottom of the Category Browser screen that comes up and click Select All. See Figure A-15 on page 244.
243
7. When you are returned to the Subsription Filter Details screen, click Save. See Figure A-16 on page 245.
244
8. Click on the check-box and then click Save. See Figure A-17 on page 246. Note: You will see a message confirming that your subscription has been added successfully.
245
246
Appendix B.
247
248
creationDate="2004-02-10T13:11:08.000-00:00" documentStatus="ORIGINAL" isReload="false" xsi:type="uccnet:CatalogueItemNotificationType"> - <catalogueItem> <catalogueItemState state="REGISTERED" /> - <tradeItem> <tradeItemUnitDescriptor>1</tradeItemUnitDescriptor> - <tradeItemIdentification> <gtin>00094860443116</gtin> - <additionalTradeItemIdentification xsi:type="uccnet:AlternateTradeItemIdentificationType"> <ns0:eanuccType>UP</ns0:eanuccType> <ns0:eanuccCode>00094860443116</ns0:eanuccCode> </additionalTradeItemIdentification> </tradeItemIdentification> - <tradeItemInformation> - <informationProviderOfTradeItem> - <informationProvider> <gln>7789333002006</gln> </informationProvider> <nameOfInformationProvider>itsosup2</nameOfInformationProvider> </informationProviderOfTradeItem> - <targetMarketInformation> <targetMarketCountryCode>840</targetMarketCountryCode> - <targetMarketDescription language="en-US"> <text>US</text> </targetMarketDescription> </targetMarketInformation> - <classificationCategoryCode> <classificationCategoryCode>0</classificationCategoryCode> <classificationCategoryDefinition>IGNORE</classificationCategoryDefinition> <classificationCategoryName>IGNORE</classificationCategoryName> - <additionalClassification> <additionalClassificationAgencyName>UDEX</additionalClassificationAgencyName> <additionalClassificationCategoryCode>01.0020.0082</additionalClassificationCategoryCode> <additionalClassificationCategoryDescription /> </additionalClassification> </classificationCategoryCode> - <tradeItemDescriptionInformation> <brandName>Red Bikes</brandName> - <descriptionShort> - <description language="en-US"> <text>Short Description</text> </description> </descriptionShort> - <functionalName> - <description language="en-US"> <text>Fuctional Name</text> </description> </functionalName> - <tradeItemDescription>
249
- <longDescription language="en-US"> <longText>Item that we supply to you to sell</longText> </longDescription> </tradeItemDescription> </tradeItemDescriptionInformation> - <tradingPartnerNeutralTradeItemInformation> - <tradeItemUnitIndicator> <isTradeItemABaseUnit>true</isTradeItemABaseUnit> <isTradeItemAConsumerUnit>true</isTradeItemAConsumerUnit> <isTradeItemADespatchUnit>true</isTradeItemADespatchUnit> <isTradeItemAnInvoiceUnit>true</isTradeItemAnInvoiceUnit> <isTradeItemAnOrderableUnit>true</isTradeItemAnOrderableUnit> <isTradeItemAVariableUnit>false</isTradeItemAVariableUnit> </tradeItemUnitIndicator> - <packagingMarking> <isPackagingMarkedAsRecyclable>true</isPackagingMarkedAsRecyclable> <isPackagingMarkedReturnable>false</isPackagingMarkedReturnable> </packagingMarking> - <tradeItemDateInformation> <effectiveDate>2004-02-10</effectiveDate> <lastChangeDateTime>2004-02-10T13:11:08.000-00:00</lastChangeDateTime> <publicationDate>2004-02-10</publicationDate> <startAvailabilityDateTime>2004-02-10T13:11:06.000-00:00</startAvailabilityDateTime> </tradeItemDateInformation> - <tradeItemMeasurements> - <depth> <measurementValue unitOfMeasure="FT">2.2</measurementValue> </depth> - <grossWeight> <measurementValue unitOfMeasure="LB" /> </grossWeight> - <height> <measurementValue unitOfMeasure="FT">1.1</measurementValue> </height> - <width> <measurementValue unitOfMeasure="FT">1.0</measurementValue> </width> - <netWeight> <measurementValue unitOfMeasure="LB">30.3</measurementValue> </netWeight> </tradeItemMeasurements> </tradingPartnerNeutralTradeItemInformation> </tradeItemInformation> </tradeItem> <dataRecipient>7789555003003</dataRecipient> <sourceDataPool>7789333002006</sourceDataPool> </catalogueItem> - <catalogueItemNotificationIdentification> <uniqueCreatorIdentification>UID31076418668273</uniqueCreatorIdentification>
250
- <contentOwner> <gln>7789333002006</gln> </contentOwner> </catalogueItemNotificationIdentification> <ns0:notificationTopic topic="NEW_ITEM" /> </ns1:catalogueItemNotification> </notifyCommandOperand> </ns0:notifyCommand> </command> </transaction> </body> </ns0:envelope>
251
</messageHeader> - <body> - <response> - <acknowledge> - <acknowledgement> - <acknowledgementHeader type="PROCESSED" success="TRUE" duplicate="FALSE"> - <entityIdentification> <uniqueCreatorIdentification>ITSOSUPPLY2</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </entityIdentification> - <messageIdentifier> <value>IBMMSG002</value> </messageIdentifier> </acknowledgementHeader> - <subdocumentValid success="TRUE"> - <documentIdentifier> - <typedEntityIdentification type="TRANSACTION"> - <entityIdentification> <uniqueCreatorIdentification>ITSOSUPPLY2</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </entityIdentification> </typedEntityIdentification> </documentIdentifier> - <subdocumentValid success="TRUE" validationKey="f1af4003baac597259e2d2b420470de7ce76b9e6"> - <documentIdentifier> - <typedEntityIdentification type="REGISTER_COMMAND"> - <entityIdentification> <uniqueCreatorIdentification>ITSOSUPPLY2</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </entityIdentification> </typedEntityIdentification> </documentIdentifier> - <subdocumentValid success="TRUE"> - <documentIdentifier> - <catalogueItemReference> <gtin>00094860443116</gtin> <dataSource>7789333002006</dataSource> - <targetMarket> <targetMarketCountryCode>840</targetMarketCountryCode> </targetMarket> </catalogueItemReference> </documentIdentifier> </subdocumentValid>
252
253
</acknowledgementHeader> - <subdocumentValid success="TRUE"> - <documentIdentifier> - <typedEntityIdentification type="TRANSACTION"> - <entityIdentification> <uniqueCreatorIdentification>ITSOSUPPLY2</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </entityIdentification> </typedEntityIdentification> </documentIdentifier> - <subdocumentValid success="TRUE"> - <documentIdentifier> - <typedEntityIdentification type="QUERY_COMMAND"> - <entityIdentification> <uniqueCreatorIdentification>ITSOSUPPLY2</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </entityIdentification> </typedEntityIdentification> </documentIdentifier> - <resultList showDetails="TRUE"> - <notification topic="CATALOGUE_ITEM_CONFIRMATION" type="ROUTED_DOCUMENT"> - <entityIdentification> <uniqueCreatorIdentification>617895</uniqueCreatorIdentification> - <globalLocationNumber> <gln>0614141800001</gln> </globalLocationNumber> </entityIdentification> <sequenceId>617895</sequenceId> <notificationStatus value="UNREAD" /> <userId>itsoret1</userId> - <initiatingPartyIdentification> - <initiatingTradingPartner> - <globalLocationNumber> <gln>7789555003003</gln> </globalLocationNumber> </initiatingTradingPartner> - <initiatingParty> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </initiatingParty> </initiatingPartyIdentification> - <notificationDetail> - <transactionInformation> - <entityIdentification>
254
<uniqueCreatorIdentification>1060609309994</uniqueCreatorIdentification> - <globalLocationNumber> <gln>0614141800001</gln> </globalLocationNumber> </entityIdentification> - <transactionDateAndTime> <date>2003-08-11</date> - <time timeZone="EDT"> <value>09:41:50</value> </time> </transactionDateAndTime> <transactionType>XML</transactionType> <transactionStatusCode>SUCCEEDED</transactionStatusCode> </transactionInformation> - <eanucc:catalogueItemConfirmation xmlns:eanucc="http://www.ean-ucc.org/schemas/1.3/eanucc" xmlns:uccnet="http://www.uccnet.org/schemas/2.2/uccnet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDate="2003-08-08T12:00:00.000-00:00" documentStatus="ORIGINAL" xsi:type="uccnet:CatalogueItemConfirmationType"> - <catalogueItemConfirmationIdentification> <uniqueCreatorIdentification>IBMCIC0015</uniqueCreatorIdentification> - <contentOwner> <gln>7789333002006</gln> </contentOwner> </catalogueItemConfirmationIdentification> - <catalogueItemReference> <gtin>00094860443116</gtin> <dataSource>7789333002006</dataSource> - <targetMarket> <targetMarketCountryCode>840</targetMarketCountryCode> </targetMarket> </catalogueItemReference> - <catalogueItemConfirmationState state="SYNCHRONISED"> <recipientDataPool>7789333002006</recipientDataPool> <recipientGLN>7789333002006</recipientGLN> </catalogueItemConfirmationState> - <uccnet:catalogueItemNotificationReference> <uniqueCreatorIdentification>IBMCIN0010</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </uccnet:catalogueItemNotificationReference> </eanucc:catalogueItemConfirmation> </notificationDetail> </notification> - <notification topic="CATALOGUE_ITEM_CONFIRMATION" type="ROUTED_DOCUMENT"> - <entityIdentification> <uniqueCreatorIdentification>618235</uniqueCreatorIdentification> - <globalLocationNumber>
255
<gln>0614141800001</gln> </globalLocationNumber> </entityIdentification> <sequenceId>618235</sequenceId> <notificationStatus value="READ" /> <userId>itsoret1</userId> - <initiatingPartyIdentification> - <initiatingTradingPartner> - <globalLocationNumber> <gln>7789555003003</gln> </globalLocationNumber> </initiatingTradingPartner> - <initiatingParty> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </initiatingParty> </initiatingPartyIdentification> - <notificationDetail> - <transactionInformation> - <entityIdentification> <uniqueCreatorIdentification>1060622703638</uniqueCreatorIdentification> - <globalLocationNumber> <gln>0614141800001</gln> </globalLocationNumber> </entityIdentification> - <transactionDateAndTime> <date>2003-08-11</date> - <time timeZone="EDT"> <value>13:25:03</value> </time> </transactionDateAndTime> <transactionType>XML</transactionType> <transactionStatusCode>SUCCEEDED</transactionStatusCode> </transactionInformation> - <eanucc:catalogueItemConfirmation xmlns:eanucc="http://www.ean-ucc.org/schemas/1.3/eanucc" xmlns:uccnet="http://www.uccnet.org/schemas/2.2/uccnet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDate="2003-08-08T12:00:00.000-00:00" documentStatus="ORIGINAL" xsi:type="uccnet:CatalogueItemConfirmationType"> - <catalogueItemConfirmationIdentification> <uniqueCreatorIdentification>IBMCIC0016</uniqueCreatorIdentification> - <contentOwner> <gln>7789333002006</gln> </contentOwner> </catalogueItemConfirmationIdentification> - <catalogueItemReference> <gtin>00094860443116</gtin> <dataSource>7789333002006</dataSource>
256
- <targetMarket> <targetMarketCountryCode>840</targetMarketCountryCode> </targetMarket> </catalogueItemReference> - <catalogueItemConfirmationState state="SYNCHRONISED"> <recipientDataPool>7789333002006</recipientDataPool> <recipientGLN>7789333002006</recipientGLN> </catalogueItemConfirmationState> - <uccnet:catalogueItemNotificationReference> <uniqueCreatorIdentification>IBMCIN0010</uniqueCreatorIdentification> - <globalLocationNumber> <gln>7789333002006</gln> </globalLocationNumber> </uccnet:catalogueItemNotificationReference> </eanucc:catalogueItemConfirmation> </notificationDetail> </notification> </resultList> </subdocumentValid> </subdocumentValid> </acknowledgement> </acknowledge> </response> </body> </uccnet:envelope>
257
258
Appendix C.
Additional material
This redbook refers to additional material that can be downloaded from the Internet as described below.
Select the Additional materials and open the directory that corresponds with the redbook form number, SG246083.
259
Description Zipped sample messages, database utilities and sample business objects.
260
261
262
Related publications
The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see How to get IBM Redbooks on page 264. Note that some of the documents referenced here may be available in softcopy only. An EAI Solution using WebSphere Business Integration (V4.1), SG24-6849 A B2B Solution using WebSphere Business Integration V4.1 and WebSphere Business Connection V1.1), SG24-6916 B2B Solutions Using WebSphere Business Connection, SG24-6197 Implementing EDI Solutions, SG24-6906 Implementation of iSoft and Integration with an EAI Solution, REP-3625
Online resources
These Web sites and URLs are also relevant as further information sources: UCCnet
http://www.uc-council.org
GLN Introduction
http://uc-council.org/reflib/01801/index.html
UCCnet eroom
http://eroom.uc-council.org/eRoom
263
264
Index
A
Adapters 28 for email 28 for iSoft Peer-to-Peer Agent 28 for JDBC 28 for JMS 28 for JText 28 for Web services 28 for WebSphere MQ 28 for XML 28 Applicability Statement 1 See AS1 Applicability Statement 2 See AS2 application specific business object See ASBO AS1 data transfer 25 security options 25 what is 25 AS2 and EDI files 25 and UCCnet 26 channel product 29 data transfer 25 encryption 25 product implementation 32 security options 2425 what is 25 AS2 channel server See iSoft P2P Agent Express ASBO business object exchange with server 57 connector support 185 create using ODA 167 deploy 187 explicit map binding 217 mapping fields 177 mapping from GBO 215 mapping to GBO 216 testing the mapping 179 what is 56 audit and logging clear logs 221 components 67 configure 96 database table 96 in CatalogueItemConfirmation 47 in ItemAdd 44 log entries 193 modifying the InterChange Server configuration 97 set up 96 UCCnet_ItemSync 67 UCCnet_processWorklist 67 update 54 viewing entries 194, 213, 220 what is 67 what is it used for 67
B
binding ports binding type 114 JDBC connector 186 UCCnet_processWorklist 142 UCCnet_requestWorklist 147 UCCnetXSD_CIN_Dispatcher 128 UCCnetXSD_CIN_Dispatcher_forRWL 134
C
CIN_DISPATCHER_GLN_FILE 46, 129, 133, 214 collaboration object configure 111 create 111 deploy 186 instantiation 54 ItemCommandRouterObject 119 receiving triggering objects 55 stop 220 UCCnet_ItemSyncObject 44, 112 UCCnet_processWorklistObject 45, 134 UCCnet_requestWorklistObject 55, 143 UCCnetXSD_CIN_Dispatcher_forRWLObject 131 UCCnetXSD_CIN_DispatcherObject 46, 124 views in System Manager 217
265
what is 54 collaboration template and objects created 111 ItemCommandRouter 55 Notify_by_eMail 47 UCCnet_ItemSync 54 UCCnet_processWorklist 55 UCCnet_requestWorklist 54 UCCnetXSD_CIN_Dispatcher 55 what is 54 command REGISTER 16 start GUI 36 status 34 communication AS2 client 32 EDI over Internet 32 connector business object agent support 105 create 102 connector agent See also connectors Connector Configurator Express 28 connector controller See also connectors connectors application events 61 business objects 56 collaborations 54 communication 61 connector agent 57, 61 connector controller 57, 61 interaction with collaborations 56 request processing 61 what are 61 what are they 53
global standards 5 standards compliant data 5 UCCnet support 4 EAN/UCC-13 9 EAN/UCC-14 9 EAN/UCC-8 8 EDIINT 24 UCCnet certification 26 Email adapter 28 encryption P2PAgent 33 encryption algorithms 33 end-to-end flow CIC 20 CIN 19 RCIR 18 events collaboration 54 configuring connector for event processing 100 configuring database trigger 165 connector communications 61 create event tables 164 data entity transformation 57 event delivery context 179 in the supplier ERP system 44 inbound queue for iSoft 201 polling for 44 test event delivery 193 test event generation 166
F
features P2PAgent 32
G
GLN and the GLOBALregistry 7 as part of item identifier 10 functional entity 6 how to obtain 7 legal entity 6 physical location 6 what is 6 What makes a GLN? 6 GLN subscription file SeeCIN_DISPATCHER_GLN_FILE Global Location Number See GLN
D
data confidentiality P2PAgent 33 data integrity 33 digital signature algorithms 33 digital signatures P2PAgent 33
E
EAN.UCC and GTIN 7
266
Global Trade Item Number See GTIN GLOBALregistry 5 sending data to 11 GTIN as part of item identifier 10 examples 9 Item Reference 9 PROCESSED_GTIN table 66 what is 7
I
InterChange Server Express 28 iSoft connector 46 configure 108 create 107 create queues 109 event inbox 213 in ItemCommandRouter 55 in UCCnet_processWorklist 55 UCCnet_processWorklist 58 UCCnet_requestWorklist 58 UCCnet_XSD_CIN_Dispatcher 58 UCCnetGBO_envelope 58 UCCnetXSD_envelope 58 iSoft P2P Agent Connector See also iSoft connector iSoft Peer-to-Peer Agent adapter 28 item identifier 10 Item Registry 5 Item Synchronization collaboration 28 ItemCommandRouterObject create 119
event delivery 179 events tables 164 processWorklist 215 profile for Test connector 189 standard properties 184 starting 193194 startup batch file 194 template 182 unit test for RCIR 205 validation 193 JMS adapter 28 JText adapter 28 JText connector configure 104 configure meta object Data Handler 99 create 103 JTextRWL connector 55 configure event processing 100 UCCnet_requestWorklist 58 UCCnetGBO_envelope 58
L
load balancing 37
M
map application data 173 application item to ItemBasic 44 ASBO to GBO 173 associate with a connector 106, 109 between UCCnet GBO and UCCnet envelope 63 create mapping statements 177 create new 173 CwItemBasic_to_UCCnetXSD_envelope_notify Command_catalogueItem 147 CwItemBasic_to_UCCnetXSD_envelope_regist erCommand_itemAddChange 45, 147 data passing between connector and ICS 62 deploy 151 explicit binding 106, 109 for CIN dispatch 46 ItemBasic_to_SUPPLIER_ITEM_CATALOG 215 Java code 62 Map Designer 177 mapping direction 176 mapping services 62
J
JDBC retrieving data from back-end application 218 JDBC Adapter 28 install 79 JDBC connector add mapping support 216 and the back-end system 44 and the Test connector 189 bind ports 186 connector specific properties 185 create 182 deployment 187 end-to-end testing 220221
Index
267
relationships used for UCCnet 66 source business object 174 stop and start 90 SUPPLIER_ITEM_CATALOG_to_ItemBasic 187 target business object 175 UCCnetGBO_envelope business object 58 UCCnetXSD_envelope_to_UCCnetGBO_envel ope 45, 47, 58 update maps 147 what does it do 62 what is 62 with relationships 64 Map Designer 177
trade item attributes 5 trading partner GLN store for CIN 214 in relationship lookups 65 populate trading partner table 154 relationship 66 relationship table name 66 supplier from lookup 117 who can send to UCCnet 26 transport protocols for UCCnet 11
U
UCC-12 8 UCCnet GLOBALregistry 27 organization 5 what is 4 UCCnet messages 12 CI 13 CIC 13 CIN 13 CIP 13 command layer 15 document layer 16 RCIR 12 structure 14 transport layer 14 worklists 13 UCCnet Services 5 UCCnet_ItemSyncObject create 112 UCCnet_processWorklist collaboration properties 141 DestinationAppRetrieve 217 UCCnet_requestWorklist collaboration properties 146 create collaboration object 143 port bindings 147 Uniform Code Council 34
N
non-repudiation 33
P
P2PAgent encryption 33 features 32 Port connector 44, 47 agent support for businesses objects 110 configure 110 create 110 processed GTIN check entries 222 PROCESSED_GTIN table 66 relationship 66 update 222 PROCESSED_GTIN table what is 66 protocols for EDI 32
R
RCIR unit test using JDBC connector 205 unit test using Test connector 205
T
Target Market as part of item identifer 10 what is 10 test event generation 166 Toolset Express 28
W
Web services Adapter 28 WebSphere Business Integration Express and UCCnet 27 technology adapters 29 WebSphere MQ adapter 28
268
X
XML adapter 28
Index
269
270
Back cover
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.