Web Services Provider Guide

Informatica PowerCenter®
(Version 8.1.1)

Informatica PowerCenter Web Services Provider Guide Version 8.1.1 April 2007 Copyright (c) 1998–2006 Informatica Corporation. All rights reserved. Printed in the USA. This software and documentation contain proprietary information of Informatica Corporation and are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright law. Reverse engineering of the software is prohibited. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise) without prior consent of Informatica Corporation. Use, duplication, or disclosure of the Software by the U.S. Government is subject to the restrictions set forth in the applicable software license agreement and as provided in DFARS 227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. The information in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Informatica Corporation does not warrant that this documentation is error free. Informatica, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerMart, SuperGlue, Metadata Manager, Informatica Data Quality and Informatica Data Explorer are trademarks or registered trademarks of Informatica Corporation in the United States and in jurisdictions throughout the world. All other company and product names may be trade names or trademarks of their respective owners. Portions of this software and/or documentation are subject to copyright held by third parties, including without limitation: Copyright DataDirect Technologies, 1999-2002. All rights reserved. Copyright © Sun Microsystems. All Rights Reserved. Copyright © RSA Security Inc. All Rights Reserved. Copyright © Ordinal Technology Corp. All Rights Reserved. Informatica PowerCenter products contain ACE (TM) software copyrighted by Douglas C. Schmidt and his research group at Washington University and University of California, Irvine, Copyright (c) 1993-2002, all rights reserved. Portions of this software contain copyrighted material from The JBoss Group, LLC. Your right to use such materials is set forth in the GNU Lesser General Public License Agreement, which may be found at http://www.opensource.org/licenses/lgpl-license.php. The JBoss materials are provided free of charge by Informatica, “as-is”, without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. Portions of this software contain copyrighted material from Meta Integration Technology, Inc. Meta Integration® is a registered trademark of Meta Integration Technology, Inc. This product includes software developed by the Apache Software Foundation (http://www.apache.org/). The Apache Software is Copyright (c) 1999-2005 The Apache Software Foundation. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit and redistribution of this software is subject to terms available at http://www.openssl.org. Copyright 1998-2003 The OpenSSL Project. All Rights Reserved. The zlib library included with this software is Copyright (c) 1995-2003 Jean-loup Gailly and Mark Adler. The Curl license provided with this Software is Copyright 1996-2004, Daniel Stenberg, <Daniel@haxx.se>. All Rights Reserved. The PCRE library included with this software is Copyright (c) 1997-2001 University of Cambridge Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel. The source for this library may be found at ftp://ftp.csx.cam.ac.uk/pub/software/programming/ pcre. InstallAnywhere is Copyright 2005 Zero G Software, Inc. All Rights Reserved. Portions of the Software are Copyright (c) 1998-2005 The OpenLDAP Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted only as authorized by the OpenLDAP Public License, available at http://www.openldap.org/software/release/license.html. This Software is protected by U.S. Patent Numbers 6,208,990; 6,044,374; 6,014,670; 6,032,158; 5,794,246; 6,339,775 and other U.S. Patents Pending. DISCLAIMER: Informatica Corporation provides this documentation “as is” without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of non-infringement, merchantability, or use for a particular purpose. The information provided in this documentation may include technical inaccuracies or typographical errors. Informatica could make improvements and/or changes in the products described in this documentation at any time without notice.

Table of Contents
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiv Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiv Other Informatica Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Visiting Informatica Customer Portal . . . . . . . . . . . . . . . . . . . . . . . . . . xv Visiting the Informatica Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Visiting the Informatica Developer Network . . . . . . . . . . . . . . . . . . . . . xv Visiting the Informatica Knowledge Base . . . . . . . . . . . . . . . . . . . . . . . xv Obtaining Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Chapter 1: Web Services Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Simple Object Access Protocol (SOAP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Web Services Description Language (WSDL) . . . . . . . . . . . . . . . . . . . . . . . . 5

Chapter 2: Understanding the Web Services Provider . . . . . . . . . . . . 7
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Web Services Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Batch Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Realtime Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Web Services Provider Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Chapter 3: Understanding the Web Services Hub . . . . . . . . . . . . . . . 13
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Using the Web Services Hub Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Batch Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Realtime Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Web Services Hub and Integration Service . . . . . . . . . . . . . . . . . . . . . . . . . 19 Integration Service on a Single Node . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Integration Service on a Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
iii

. . . . . . . . . . . . . . . . . . . . . . . . . .Integration Service in Safe Mode . . . . . . . . . . . . . . . . . . . . 33 resumeWorkflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 startSessionLogFetch . . . . . . . . . . . . . . . . . . 31 getSessionPerformanceData . . . . . . . . . . 32 pingDIServer . 33 scheduleWorkflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 getWorkflowLog . . 25 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 SOAP Fault Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Web Services Hub Logs . 21 Viewing the Logs . . . . . . . . . . . . . . . . . 28 getAllWorkflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 monitorDIServer . . . . . . . . . . . . . . . . . . . . 23 Chapter 4: Batch Web Service Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Configuring the Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Data Integration Web Service Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 getAllRepositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 iv Table of Contents . . . . . . . . . . . . . . . 30 getDIServerProperties . . . . . . . . . . . . . . . . 27 getAllTaskInstances . . . . . . . . . . . . . . . . . 29 deinitializeDIServerConnection . . . . . . . . . . . . . . . . 33 startTask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 getTaskDetails . . . . . 26 Metadata Web Service Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 initializeDIServerConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 getAllDIServers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 getAllFolders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Web Services Hub Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 getWorkflowDetails . . . . . . . . 30 getSessionLog . . . . . . . . . . . 31 getSessionStatistics . 22 SOAP Fault Header . . . . . . . . . 28 Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 getNextLogSegment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 recoverWorkflow . . . . . . 22 SOAP Fault Body . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Generating Client Proxy Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Client Applications for Realtime Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Initialization in Axis . . . . . . . . . . . . . . . . . . 37 Initialization . . . . . . . . . . . . . . . . . . . . . 43 Writing a Client Application in C# for Batch Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 stopWorkflow . . . . . . . . . . . . . . . . 34 waitTillTaskComplete . . . . . . . 44 Initialization in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Client Applications for Batch Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Clean Up in Axis . . 49 v . 45 Making Operation Calls in . . . . . 43 Error Handling in Axis . . . . . . . . . . . . . . . . 48 Operation Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 startWorkflowFromTask .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Web Service Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Initialization . . . . 40 Generating Client Proxy Classes in Axis . . . . . . . . . . . . 40 Session Maintenance in Axis . . . . . 44 Session Maintenance in . . . . . . . . . . . . 48 Generating Client Proxy Classes . . . . . . . . . . . . . . . . 38 Operation Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 waitTillWorkflowComplete . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 unscheduleWorkflow . . . . . . . . . . . . . . . . . . . . . .NET . . . . . . . . 39 Writing a Client Application in Java for Batch Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Generating Client Proxy Classes in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 startWorkflowLogFetch . . . . . . . 39 Error Handling . . . . . . . 34 stopTask . . . . . 42 Making Operation Calls in Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .startWorkflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Error Handling in . . . . . . . . . . . . . . . . . 34 Chapter 5: Writing Client Applications .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Proxy Objects . . . . . . . . . . . . . . . . 38 Resource Cleanup . . . . . . . . . . . . . . . . . . 37 Session Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . 53 Parameter Array Definition . . . . . . . . . . 51 Step 2. 82 Configuring the Web Services Provider Reader . . . . . . . . . 66 Viewing and Editing Definitions in the Designer . . . . . . 60 Steps for Importing Web Service Sources and Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialize the Web Service Objects . . . . . . . . . . . . . . . . . . . . . . . . . 49 Writing a Client Application in Java for Realtime Web Services . . . . . . . . . . . . . . . 69 Editing Web Service Targets in a Mapping . . 52 Using Parameter Arrays . . . . 73 Staged Mappings . . . . . . . . . . . . 75 Requests with Attachments . . . . . . . . . . . . . . 53 Rules and Guidelines for Using Parameter Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Overview . . . . . 61 Viewing and Editing Web Service Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Chapter 6: Working with Mappings . . . . . . . . . . . . . . . 51 Step 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Request-Response Mappings . . . Create the Request Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Importing Web Service Source and Target Definitions . . . . 79 Creating a Web Service Workflow . . . . . . 79 Configuring the Web Service Workflow . . . . . . . . . . . 59 Importing Web Service Target Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Recovering Messages . . . . . . . . 75 Flat File or XML Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Creating and Configuring a Web Service Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Send the Request and Handle the Response . . . . . . . . . . 80 Creating and Configuring a Service Session . . . . . . . . . . . . . . . . . . . . . . 75 Chapter 7: Working With Web Service Workflows . . . . . . . . . . . . . . . . . . . . . . 87 vi Table of Contents . . . . . . 50 Step 1. . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Importing Web Service Source Definitions . . . . . . . . . . . 70 Working with Web Service Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 View Definitions in the XML Editor . . . . . . . . . . . . . 82 Configuring the Web Services Provider Writer . . . . . . . . . . . . . . . . .Error Handling . . . . . . . . . . . . . 73 Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generate Client Proxy Classes in Axis . . 77 Overview . . . . . . . . . 85 SOAP Message Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Step 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create the Lookup Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Running Sessions and Web Service Workflows . . . . . . . . . . Import the Mappings and Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Metadata Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Single Row Lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Step 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Run the Realtime Web Service Sample Programs . . . . . . . . . 109 Multiple Row Lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Step 4. . . . . . . . . . . . . . . . 114 Index . . . . . . . . . . . . . . . 102 Multithreading . . . . . . . . . . . . . . 99 Data Integration . . . 99 Browsing . . . . . . . . . . . . . . . . 101 Multiple Integration Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Configuring Commit Type . . . . . . . . . . . . . . . 104 Using the Realtime Web Services Sample Programs . . . . . . . 96 Using the Batch Web Services Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Appendix A: Web Service Sample Client Applications . . . . . . . . . . . . 90 Troubleshooting . . . . . . . . . . . . . . 111 Overview . . . . . . 103 Web Services Hub Test . . . . . . 88 Configuring Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Running the Batch Web Services Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . Modify the Database Connection Settings . . . . . . . . . . 100 Logs . . . . 90 Working with XML and Flat File Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Examples for Realtime Web Services . . . . . . . . . . . . . . . . Compile the Realtime Web Service Sample Programs . . . . . . . . . . . . . . . . . . . . . 115 Table of Contents vii . . . . . . . . . . . . . . . . . . . . . . 95 Overview . . . . . . . . . .1. . . . . . 109 Appendix B: Web Service Operations in 8. . . . . . . . . . . . . . . . . . . . . . 97 Compiling the Batch Web Services Sample Programs . . . . . . . 90 Understanding Service Timeout and Flush Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Step 2. . . . . . . . . . .1 . . . . . . . 113 Data Integration Web Services . . . . 106 Step 1. . . . . . . . . . . . . . . . . . . . . 108 Step 5. . . 98 Examples for Batch Web Services . . . . . .

viii Table of Contents .

.. . 6-7. .. ... 7-2. .. ... . .. . .. .. . ... . . . . . ..... . . ... .. 6-1.. . . .... 6-3.List of Figures Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure 1-1. .. .. . . . ... ... .. . ... ..... ... .. .. ...... .. . . ... Attributes Tab for a Web Service Definition . . . . ... ... . .. .... . . 2-1.... .. . . . .. ... ... . . . . Columns Tab for a Web Service Definition . ... .... . . ... ..... . . .. . . Web Service Target Definitions ..... .... .. .... . . . . ....... . ..... . . . . ... ... ... ..... .. ...... . ..... . . . . . . . . . .... 6-5. . . .... . . .. . . . . . . . .. . Creating a Web Service Workflow .. . .. . .. ... . . . . .. 6-6.... .. . ..... . ...... ...... . .. . . .. .. . .. . ... .. ... . .... . . . ... . ... .. ... . .. .. . .... . . ..... .. Request-Response Mapping . 3-3.. ..... . .. .... 3-2. 6-2. 3-4. ... . .. Batch Web Services Page . . . .. .. . . Web Service Configuration . . . .. ..... . . . . ... . . . . . .. . ... 7-4.. .. ... . ..... . . ... .... . . 3 10 15 16 17 18 59 61 67 68 69 70 73 79 80 83 85 List of Figures ix .. . ....... . . . .... . . .. . Realtime Web Services Page . . . ..... Metadata Extensions Tab for a Web Service Definition XML Editor Views of Web Service Definition .......... .. Web Service Source Definition ...... . 6-4. 7-3. . . . .. ... 7-1.. Web Services Provider Writer Properties .. . .. Web Services Provider Reader Properties . .. . ... .. ... . Realtime Service Description Page . 3-1. . . . ... .. . .. . . ... Web Services Hub Console . ... .... . Web Services Provider Architecture .. .. .. . . . . .. . .. .... . . . . Building Blocks of a Web Service ... . ... . . . .. . . . . .. . ...... . . . . .

x List of Figures .

. .. . . . . . . Advanced Options for Importing Web Service Definitions Required Sources and Targets in a Service . . . . . .. . . . . . . .. . . . . . . .. 6-3. .. . . . . . . . . . . . . 7-3. . . . .. . . . . . . . . . . . . . .. 17 18 60 60 63 72 76 80 83 86 List of Tables xi . . . . . . . .. . . . . . .. . 6-5. . Web Services Provider Writer Properties . . . . . . . .. . . . . . . . .. .. .. . . . . . . . . . .. . . . . . ... . .. . ..List of Tables Table Table Table Table Table Table Table Table Table Table 3-1. . ... 6-4. . . . .. . . . . . . . . . . . .. . . . 3-2. .. .. . . . . . . . . . . . . . . . . . . .. . .. ... . . . . .. . . . . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . .. . . . . . .. Web Service Properties . Columns in Realtime Web Services Page . . . . . Realtime Service Description Page . .. . . . . . . .. .. . . . . 7-1.. .. . . . . . . . . . Web Services Definition Groups .. . . . Web Services Provider Reader Properties . . 6-1. . .... . . . .. 6-2. . . . . . . . . . . . . Message Header Ports . . . .. . . . . . . . . . Attachment Group Ports . . . . . . . . . . . .. . . . . . 7-2.. . . . . .. . . . .. . .. . . . . . .. .

xii List of Tables .

and support high-speed loads. usable. transforming. PowerCenter can simplify and accelerate the process of building a comprehensive data warehouse from disparate data sources. including extracting. loading. data migration. The PowerCenter repository coordinates and drives a variety of core functions. the Informatica software product that delivers an open. and information hubs. scalable data integration solution addressing the complete life cycle for all data integration projects including data warehouses. The Integration Service can extract large volumes of data from multiple platforms. PowerCenter combines the latest technology enhancements for reliably managing data repositories and delivering information resources in a timely. and managing data. xiii . and efficient manner. handle complex transformations on the data.Preface Welcome to PowerCenter. data synchronization.

This is an operating system command you enter from a prompt to run a task. The following paragraph notes situations where you can overwrite or corrupt data. Document Conventions This guide uses the following formatting conventions: If you see… It means… The word or set of words are especially emphasized. The following paragraph provides suggested uses. Emphasized subjects. This is generic text that should be replaced with user-supplied values. unless you follow the specified procedure. The material in this book is also available online. This guide also provides information about how to turn PowerCenter workflows into web services and examples for how to create client applications that use the web services available on the Web Services Hub. The following paragraph provides additional facts.About This Book The Web Services Provider Guide provides information about the Web Services Provider and the PowerCenter web services hosted by the Web Services Hub. italicized text boldfaced text italicized monospaced text Note: Tip: Warning: monospaced text bold monospaced text xiv Preface . This is the variable name for a value you enter as part of an operating system command. This guide assumes that you have a working knowledge of web service concepts and PowerCenter mappings and workflows. This is a code example.

The site contains information about Informatica. The site contains product information.informatica. Visiting the Informatica Developer Network You can access the Informatica Developer Network at http://devnet.com.informatica. The Informatica Developer Network is a web-based forum for third-party software developers. newsletters.informatica.informatica. You can contact a Technical Support Center by using the telephone numbers listed in the following table. and access to the Informatica user community. you can access the Informatica Knowledge Base at http://my. Preface xv .Other Informatica Resources In addition to the product manuals. Informatica Documentation Center. and sales offices. user group information. Visiting the Informatica Knowledge Base As an Informatica customer. Obtaining Technical Support There are many ways to access Informatica Technical Support. and technical tips. You can also find answers to frequently asked questions. the Informatica Knowledge Base. and support customer-oriented add-on solutions based on interoperability interfaces for Informatica products.com. or you can use the WebSupport Service.com. and implementation services. market. Informatica provides these other resources: ♦ ♦ ♦ ♦ ♦ Informatica Customer Portal Informatica web site Informatica Developer Network Informatica Knowledge Base Informatica Technical Support Visiting Informatica Customer Portal As an Informatica customer. you can access the Informatica Customer Portal site at http://my. upcoming events. Visiting the Informatica Web Site You can access the Informatica corporate web site at http://www. The site contains information about how to create. You will also find product and partner information. you can send email. its background. access to the Informatica customer support case management system (ATLAS).com. technical white papers. The services area of the site includes important information about technical support. Use the Knowledge Base to search for documented solutions to known technical issues about Informatica products. training and education.

Use the following email addresses to contact Informatica Technical Support: ♦ ♦ support@informatica. White Waltham Maidenhead. 3rd Floor 150 Airport Road Bangalore 560 008 India Toll Free Australia: 1 800 151 830 Singapore: 001 800 4632 4357 Standard Rate India: +91 80 4112 5738 Toll Free 877 463 2435 Toll Free 00 800 4632 4357 Standard Rate United States: 650 385 5800 Standard Rate Belgium: +32 15 281 702 France: +33 1 41 38 92 26 Germany: +49 1805 702 702 Netherlands: +31 306 022 797 United Kingdom: +44 1628 511 445 xvi Preface . North America / South America Informatica Corporation Headquarters 100 Cardinal Way Redwood City.com. Berkshire SL6 3TN United Kingdom Asia / Australia Informatica Business Solutions Pvt. You can request a user name and password at http://my. Ltd.com for technical inquiries support_admin@informatica. California 94063 United States Europe / Middle East / Africa Informatica Software Ltd. Diamond District Tower B. 6 Waltham Park Waltham Road.informatica.com for general customer service requests WebSupport requires a user name and password.

4 Web Services Description Language (WSDL).Chapter 1 Web Services Concepts This chapter includes the following topics: ♦ ♦ ♦ Overview. 2 Simple Object Access Protocol (SOAP). 5 1 .

Discovery. Using a web service tool kit such as Axis. such as XML. The WSDL describes the web service interfaces and the operations available for the service. You can embed these applications easily in existing components and products.Overview Web services are business functions that operate over the Web. Web services are based on open standards. To build a web service client for the PowerCenter Web Services Provider. and the location of the service by examining the WSDL. the data the web service requires. Use the information in the WSDL to build a client application to use the services. Note: The PowerCenter Web Services Provider does not use the UDDI registry. Some web service providers publish services in Universal Description. which offer greater interoperability than traditional proprietary applications. Web Service Definition Language (WSDL). You can write applications that can communicate with Integration Services using any language and platform. generate the client proxies. see “Writing Client Applications” on page 35. The PowerCenter Web Services Provider lets you integrate the PowerCenter metadata and data integration functionalities and expose them as web services. The components that enable web services include: ♦ ♦ ♦ Simple Object Access Protocol (SOAP). You can determine what functions a web service offers. WSDL is an XML document that describes web service operations. SOAP. you select the web service you want to interface with and retrieve the WSDL file for the selected web service. Registering a web service in the UDDI is optional. It is the specification that defines the XML format for web service messages. SOAP is the communications protocol for web services. For more information about writing client applications. 2 Chapter 1: Web Services Concepts . and Integration (UDDI). Registry. The client proxies contain all of the function calls required to interact with a web service. and credit checks. Directory of published web services. They describe a collection of operations that are network accessible through standardized XML messaging. Examples of web services include business services. airline schedules. and WSDL. such as stock quotes.

Figure 1-1 shows the building blocks of a web service: Figure 1-1. Building Blocks of a Web Service Overview 3 .

and whether it is optional or mandatory. SOAP and the WSDL dictate the communication between web services and their clients. SOAP header. including the content of the message. A SOAP toolkit translates function calls from another language to a SOAP message. The SOAP header helps to process the data in the body of the SOAP message. the Apache Axis toolkit translates Java function calls to SOAP. Use SOAP to implement web services on different platforms both inside and outside an organization. SOAP Encoding is used to tell the SOAP runtime environment how to translate from data structures. The header is an element of the SOAP envelope that lets you add features to a SOAP message in a decentralized manner. 4 Chapter 1: Web Services Concepts . such as Java.Simple Object Access Protocol (SOAP) SOAP is the communications protocol for web services. The body is the container for mandatory information that provides a mechanism for exchanging information with the intended recipient. A SOAP message contains the following sections: ♦ SOAP envelope. who or what should handle it. ♦ ♦ Authentication and transaction management are typical examples of extensions that can be implemented as header entries. a function that works with one toolkit may not work with another. Therefore. It defines the format for web services messages. For example. into SOAP XML. Information related to authentication or transactions is usually contained in the header because this information identifies the entity that sent the SOAP message body and the context in which it will be processed. Use a SOAP toolkit to create and parse SOAP messages. The envelope defines the framework of the message. Each SOAP implementation supports different function calls and parameters. SOAP body.

so that the receiver of a message knows how to process it. and a binding to a protocol or transport. The WSDL file contains a description of the data. You can view and download the WSDL files for the web services hosted by the PowerCenter Web Services Provider on the Web Services Hub Console.Web Services Description Language (WSDL) The WSDL is an XML document that describes the protocols and formats used by a web service. see “Using the Web Services Hub Console” on page 15. The WSDL elements also contain a description of the operations to be performed on that data. to be passed to the web service so that both the sender and the receiver of the service request understand the data being exchanged. so that the sender knows how to send it. For more information about the Web Services Hub Console. Web Services Description Language (WSDL) 5 . typically using one or more XML schemas.

6 Chapter 1: Web Services Concepts .

10 7 . 8 Web Services Provider Architecture.Chapter 2 Understanding the Web Services Provider This chapter includes the following topics: ♦ ♦ Overview.

Use the Data Integration web services to connect to the Integration Service and run and monitor PowerCenter workflows. is a collection of services that interact to provide data integration functionality. start and stop tasks in a workflow. Metadata web services provide operations that retrieve metadata from PowerCenter repositories. The Web Services Hub and the web services hosted by the Web Services Hub comprise the Web Services Provider. see “Understanding the Web Services Hub” on page 13. Repository Service. see “Data Integration Web Service Operations” on page 29. Web Services Hub The Web Services Hub is the web service gateway for PowerCenter. The Web Services Hub is a web service gateway that makes PowerCenter data integration functionality available to external client applications through web services. with its service-oriented architecture. Services that enable you to access the PowerCenter data integration functionality from a web service client and run workflows. The Integration Service or the Repository Service process the requests and sends a response to the web service client through the Web Services Hub. The services include a Service Manager that supports domain administration and application services that provide PowerCenter data integration functionality. The Data Integration web services provides operations that allow you to get details on the Integration Service. and monitor and get statistics on sessions. It receives requests from web service clients and passes them to the Integration Service or the Repository Service. It processes SOAP requests from clients that want to run or monitor PowerCenter workflows or access PowerCenter functionality. A domain is the basic administration unit for the PowerCenter services. The application services include the Integration Service. Realtime web services. Batch Web Services Batch web services are web services that allow access to the Integration Service and retrieve metadata from the repository. Batch web services fall into two categories: ♦ Data Integration web services.Overview PowerCenter. Metadata web services. For more information about the Web Services Hub. and the Web Services Hub. SAP BW Service. and workflow tasks to help you run and ♦ 8 Chapter 2: Understanding the Web Services Provider . schedule and run workflows. Use the Metadata web services to get information about repository objects such as folders. The Web Services Hub hosts the following web services: ♦ ♦ Batch web services. Services that enable you to run and monitor workflows and access metadata information. workflows. For more information about the Data Integration web services.

You can also create a service mapping with both a web service source and target definition to receive a message request from a web service client. see “Working with Mappings” on page 57. you do not need to import a WSDL definition. A web service workflow is a workflow enabled for web services. transform it. and add sessions to the workflow. You then import an operation from the WSDL as a source or target. Overview 9 . The source and target definitions represent service operations: the source defines the user request and the target defines the response. Configure service information. If you want to expose an existing mapping as a service or create a service that takes input parameters such as a flat file or XML file. see “Working With Web Service Workflows” on page 77. The Integration Service can perform parallel processing of both request-response and one-way services. and write it to any target that PowerCenter supports. You create Realtime web services when you expose mappings and workflows as web services. For more information about creating service mappings. you need to create WSDL that describes the service. you can create a web service workflow. see “Batch Web Service Operations” on page 25. the Web Services Hub publishes the service. For more information about creating web service workflows. You can create a service mapping to receive a message from a web service client. transform the data. no Realtime web services are available. For more information about Batch web services operations. After you create a mapping.monitor workflows in a repository. and send the response back to the web service client. When you save the workflow. For more information about the Metadata web services. see “Metadata Web Service Operations” on page 27. Realtime Web Services When you start the Web Services Hub. If you want to create a service that takes a SOAP message as input or produces a SOAP response.

These web services communicate with the Integration Service and the Repository Service. start or stop the server. Figure 2-1 shows the Web Services Provider architecture: Figure 2-1. the Web Services Hub authenticates the web service client based on the repository user name and password. The following process describes the architecture of the Web Services Provider: 1. 10 Chapter 2: Understanding the Web Services Provider . or get log information. The Web Services Hub sends a SOAP response to the web service client. 2. The Integration Service processes the request. If the service request is for a realtime service. 4. the Integration Service sends the processed data to the Web Services Hub which uses the message ID to correlate the request with the response. the Web Services Hub sends the request to the Integration Service or Repository Service to process.Web Services Provider Architecture The Web Services Provider consists of a Web Services Hub and the web services hosted by the Web Services Hub. Web Services Provider Architecture Web Service Client Security Gateway Web Services Hub Realtime Web Services Batch Web Services Integration Service Web Service Workflow Web Service Client Workflow Tomcat Servlet Container Realtime Web Services Batch Web Services Repository Service Communication Repository Service Repository The Web Services Hub processes service requests in similar ways for Realtime web services and Batch web services. 3. For Batch web services or protected Realtime web services. If the request is for a realtime service. A web service client sends a SOAP message to the Web Services Hub to run a service. the Web Services Hub generates a message ID and sends the SOAP request to the Integration Service. The request may be to run or monitor a workflow. If the service request is for a batch service. The Web Services Hub generates a message ID for the request.

affected. if you request statistics for a session running on the Integration Service. the Web Services Hub response includes session information such as the folder and workflow name. and rejected rows. and the number of applied.If the service request is for a batch service. session and task run status. The Integration Service and Web Services Hub communicate with the Repository Service throughout the process. Web Services Provider Architecture 11 . For example. the Web Services Hub sends a response based on the request.

12 Chapter 2: Understanding the Web Services Provider .

19 Web Services Hub Security. 20 Web Services Hub Logs.Chapter 3 Understanding the Web Services Hub This chapter includes the following topics: ♦ ♦ ♦ ♦ ♦ ♦ Overview. 22 13 . 14 Using the Web Services Hub Console. 21 SOAP Fault Handling. 15 Web Services Hub and Integration Service.

After installation. It receives requests from web service clients and passes them to the Integration Service. Use the Web Services Hub console to view web service information and download the WSDL files necessary for running services and workflows. For more information about the Batch web services. see “Creating and Configuring the Web Services Hub” in the PowerCenter Administrator Guide. The Integration Service processes the requests and sends a response to the web service client through the Web Services Hub. use the Administration Console to create a Web Services Hub and enable it as you would other application services in the domain. When you install PowerCenter.Overview The Web Services Hub is a gateway that makes PowerCenter functionality accessible to external clients as web services. All services are stateless services. 14 Chapter 3: Understanding the Web Services Hub . The Web Services Hub authenticates the web service client based on the repository user name and password included in every service request. For more information about creating and enabling a Web Services Hub. For more information about the Realtime web services. Web service clients log in to the Web Services Hub through HTTP or HTTPS. see “Batch Web Services” on page 8. see “Realtime Web Services” on page 9. the PowerCenter installer installs the Web Services Hub. The Web Services Hub hosts Batch web services and Realtime web services. The Web Services Hub is an application service in the PowerCenter domain. The Web Services Hub connects to the Repository Service and the Integration Service through TCP/IP.

Web Services Hub Console Batch Web Services To view the WSDL files for the Batch web services. Figure 3-1 shows the main page for the Web Services Hub console: Figure 3-1. Use the following URL to connect to the Web Services Hub console: http://<WebServicesHubHostName:PortNumber>/wsh The default port is 7333. save the WSDL file to your local machine. Note: You can also use the context name PowerCenter.Using the Web Services Hub Console Use the Web Services Hub console to view service information and download the WSDL required to run the web services. The Batch web services page displays the list of available operations and their descriptions. click the Batch Web Services link. You can click the icons for the Metadata WSDL and DataIntegration WSDL to view the WSDL files. To download. The Web Services Hub redirects the URL http://<HostName>:<PortNumber>/PowerCenter to the default URL http://<HostName>:<PortNumber>/wsh . Using the Web Services Hub Console 15 . You can connect to the Web Services Hub from any browser.

Batch Web Services Page Use the Metadata WSDL to write client applications that call Metadata web service operations. For more information about the Metadata web service operations. Realtime Web Services After you create mappings and web service workflows. you can view the list of available web services and the WSDL files for the services. You can click the WSDL icon for the service to view the WSDL file. For more information about the Data Integration web service operations. To download. save the WSDL file to your local machine. On the Realtime Web Services page. see “Metadata Web Service Operations” on page 27. see “Data Integration Web Service Operations” on page 29. Use the DataIntegration WSDL to write client applications that call Data Integration web service operations. 16 Chapter 3: Understanding the Web Services Hub . you can view the web service information published by the Web Services Hub.Figure 3-2 shows the main page for the Batch web services page: Figure 3-2.

Columns in Realtime Web Services Page Column Service Name Domain Name Repository Name Folder Name Workflow Name WSDL Description Service name defined in the web service workflow. such as the Runnable and Protected properties. To view additional service information. WSDL published by the Web Services Hub for the service. Workflow associated with the web service.Figure 3-3 shows the main page for the Realtime Web Services page: Figure 3-3. Folder containing the service. Using the Web Services Hub Console 17 . you can click on a service name. Domain containing the Repository Service. Realtime Web Services Page Table 3-1 describes the columns displayed on the Realtime Web Services page: Table 3-1. Name of the Repository Service.

Realtime Service Description Page Property Service Name Repository Name Folder Name Workflow Name Is Runnable Description Service name defined in the web service workflow. For more information about runnable services. WSDL published by the Web Services Hub to run the service. If the web service is protected. Folder containing the service. Indicates whether the service is protected or public. Realtime Service Description Page Table 3-2 describes the properties on the Realtime Service Description page: Table 3-2. Indicates whether the service is one-way or request-response. 18 Chapter 3: Understanding the Web Services Hub . Repository containing the service. see “Creating and Configuring a Web Service Workflow” on page 79. Workflow associated with the web service. the client application must call the Login operation and pass the user name and password through the HTTP header. If the web service is public. Indicates the runnable value. see “Creating and Configuring a Web Service Workflow” on page 79.Figure 3-4 shows the Realtime Service Description page: Figure 3-4. For more information about protected services. the client application does not need authentication. Is Protected Is One Way Service WSDL Before you can build a client application to run a web service. you need to know the service name and the protected status of the service.

Create the grid and associate an Integration Service with the grid in the Administration Console. It also supports an Integration Service running in safe mode. To run a web service workflow on a grid from a client application. the Integration Service distributes the session threads to the nodes in a grid. For Batch web services. Although you can run web service workflows with an Integration Service running in safe mode. See also “Integration Service Architecture” in the Administrator Guide. Note: The Web Services Hub is not a highly available service.Web Services Hub and Integration Service The Web Services Hub supports an Integration Service running on a single node or on a grid. For Realtime web services. Then assign the Integration Service to run the web service workflow. the client application can log in with a user account that has permission to administer the Integration Service running in safe mode. see “Running Workflows and Sessions on a Grid” in the Workflow Administration Guide. the client application logs in with the user account for the repository associated with the Web Services Hub. You can also enable the Session on Grid property of the session task. you can run a web service workflow on a grid. see “Creating and Configuring the Integration Service” in the PowerCenter Administrator Guide. When Session on Grid is enabled. Integration Service on a Grid When a PowerCenter domain contains multiple nodes. run the web service workflow on the Integration Service associated with a grid. For information about running the Integration Service in safe mode. Integration Service on a Single Node You can run a web service workflow with an Integration Service configured to run on a single node. Only repository users with permission to administer the Integration Service can run and obtain information about sessions and workflows assigned to an Integration Service running in safe mode. the Web Services Hub does not take advantage of high availability features such as failover and automatic recovery. Integration Service in Safe Mode The Integration Service can run in normal or safe operating mode. Web Services Hub and Integration Service 19 . For information about running workflows and sessions on a grid.

The Web Services Hub authenticates a request based on the user name and password. but it can invoke the service if the web service workflow is running. For example. For more information about user access to the web service workflow. For Batch web services and protected Realtime web services. ♦ ♦ For more information about user access to services. the web service client application must call the Login operation before it calls other operations. 20 Chapter 3: Understanding the Web Services Hub . the Web Services Hub does not authenticate web service requests. Note: If a realtime web service is public. The Web Services Hub authenticates requests from web service clients based on the user name and password. The Web Services Hub also supports the HTTPS protocol for encryption of web service client requests. A web service client with repository access must have execute permission on a folder to run a service. The Web Services Hub encrypts the repository login information in the configuration file used to connect to the repository. For protected realtime services. see “Creating and Configuring a Web Service Workflow” on page 79.Web Services Hub Security The Web Services Hub has the following levels of security: ♦ Encryption. A web service client must embed the repository user name. a web service client cannot start the service. a web service client with execute permission on a folder can run a service in that folder based on service configuration. if the service is not runnable. and password in every SOAP request sent to the Web Services Hub. see “Managing Users and User Accounts” in the PowerCenter Administrator Guide. Authorization. Authentication.

To view log events. For more information about using the Log Viewer. you can configure the size and location of the Web Services Hub logs and the level of errors that would be included in the logs. In the PowerCenter Administration Console. and the associated workflow. task execution. The logs include the IP address of the client. When you view log events in the Log Viewer. you must have permission for the Web Services Hub in the Administration Console. For more information about fault handling. see “SOAP Fault Handling” on page 22. the Log Manager displays the generated log event files in the log directory set by the domain administrator. You can filter log events to get a list of only the log events for the Web Services Hub. Viewing the Logs You can view Web Services Hub log events on the Administration Console Log Viewer. Configuring the Logs The Log Manager in the PowerCenter domain handles all logging functions for all services in the domain. For more information about the Log Manager and configuring the Web Services Hub logs. the service the client invokes. You can view and configure the logs for the Web Services Hub on the PowerCenter Administration Console. Note: The Web Services Hub also writes messages in the fault element of a SOAP response when it cannot process the request. You can troubleshoot problems by examining error messages in this log. such as service initialization. see “Managing Logs” in the PowerCenter Administrator Guide. see “Managing Logs” in the PowerCenter Administrator Guide.Web Services Hub Logs The Web Services Hub creates a log for status and error messages related to tasks. Web Services Hub Logs 21 . including the Web Services Hub. and connection status.

The message target is based on the task the Web Services Hub was performing when it encountered the error: ♦ If the Web Services Hub cannot process the header element of a SOAP request message. The SOAP response to the request contains the header fault element in the SOAP header and a SOAP fault element without the detail element. For example. the Integration Service writes messages to fault targets. see “WSH Messages” in the PowerCenter Troubleshooting Guide. The message code is the ErrorCode element in the detail element of a SOAP fault. the SOAP fault element in the SOAP response message contains a detail element with error information. it sends a response to the web service client that contains error information indicating the cause of the error. SOAP Fault Header The Web Services Hub reports header related errors in the header fault element of a SOAP response header. If the web service workflow is configured to send error data to the target. The schema of this element is listed below: <ns1:HeaderFault xmlns:ns1=”http://www. the message code WSH_95002 has the following associated message text: Invalid request parameter. it does not process the body element. ♦ ♦ ♦ Messages contain a message code that includes a prefix and code number and the message text.informatica. The Integration Service receives requests from the Web Services Hub to run web service workflows. and the message text is the faultstring element of the SOAP fault. For a listing of error codes related to the Web Services Hub.com/wsh”> <ErrorCode> error code </ErrorCode <ErrorMessage> error message </ErrorMessage> </ns1:HeaderFault> 22 Chapter 3: Understanding the Web Services Hub . it returns error information related to the header entries of the SOAP request message in a child element of the SOAP response header element. Workflow name cannot be null.SOAP Fault Handling If the Web Services Hub cannot process a request. If the Web Services Hub encounters any error with the header element of a SOAP request. If the Web Services Hub cannot process the contents of the body element.

The detail element contains error information that includes an error code. and the extended details provide detailed error information when the faultstring is a Web Services Hub or repository error. The faultstring provides a description of the error. the message may have the wrong structure. or Repository Service.informatica. Detail. The faultcode determines if the error originates at the web service client or the Integration Service. ♦ ♦ The Web Services Hub uses the following SOAP fault schema: <SOAP-ENV: Fault> <faultcode> Client/Server </faultcode> <faultstring>Brief Description of Error</faultstring> <detail> <ns:WSHFaultDetails xmlns:ns="www. Faultstring.com/wsh"> <ErrorCode> Error Code </ ErrorCode > <ExtendedDetails> Actual Error </ ExtendedDetails > </ns:WSHFaultDetails> </detail> </SOAP-ENV: Fault> SOAP Fault Handling 23 . If the error originates at the web service client.SOAP Fault Body The SOAP fault body contains the following sub-elements: ♦ Faultcode. Web Services Hub. The faultstring value indicates that the error originated from the Integration Service.

24 Chapter 3: Understanding the Web Services Hub .

27 Data Integration Web Service Operations. 29 25 . 26 Metadata Web Service Operations.Chapter 4 Batch Web Service Operations This chapter includes the following topics: ♦ ♦ ♦ Overview.

You can get session statistics and performance data. 26 Chapter 4: Batch Web Service Operations . ♦ This chapter explains the operations provided by the Batch web services. The operations for the Metadata web services are defined in the DataIntegration WSDL file available on the Batch Web Services page of the Web Services Hub console. Data Integration web services. The operations for the Metadata web services are defined in the Metadata WSDL file available on the Batch Web Services page of the Web Services Hub console. or stop existing workflows and tasks using Batch web service operations. For more information about the request and response XML documents for these operations. start.Overview You can schedule. refer to the WSDL files. The Batch web services consist of two groups of services defined in separate WSDLs: ♦ Metadata web services. Note: Log segments obtained by Batch web services operation calls are either in Integration Service code page or in UTF-8. You can retrieve workflow and session logs.

You can call the getAllRepositories operation without calling the Login operation. For more information about associating a repository with the Web Services Hub. getAllDIServers You can associate one or more Integration Services with a repository to run workflows and sessions. getAllRepositories Use the getAllRepositories operation to view all repositories associated with the Web Services Hub. you must associate the repository with the Web Services Hub. Before a Web Services Hub client application can use a repository. Note: Since the getAllRepositories operation is not associated with a specific repository. it is important to enter descriptive service names for each associated service to help users differentiate among Integration Services.Metadata Web Service Operations Use the operations provided in the Metadata web services to retrieve metadata from the PowerCenter repositories associated with the Web Services Hub. see “Creating and Configuring a Web Services Hub” in the PowerCenter Administrator Guide. You can use the operations to log in to a repository and get the list of the following repository objects: ♦ ♦ ♦ ♦ ♦ All folders in a repository associated with the Web Services Hub All workflows in a folder All worklets and session tasks in a workflow All Integration Services registered for a repository All repositories associated with Web Services Hub The following section lists all operations available for the Metadata web services. getAllFolders Use the getAllFolders operation to retrieve all folders in a repository. For more information about the Login operation. you do not need to log in to a repository to use the operation. In a multiple Integration Service environment. see “Login” on page 28. This operation returns the names of all Integration Services associated with a given repository. Use the Administration Console to associate a repository with a Web Services Hub. Each Integration Service associated with a repository must have a service name and a combination of host name and port number that is unique among the services associated with the repository. Metadata Web Service Operations 27 .

you do not need to log in to a repository to use the operation. Login The Login operation authenticates the user name and password for a specified repository. and shell commands.getAllTaskInstances Use the getAllTaskInstances operation to get information about all worklets and session task instances in a workflow for a specified depth. 28 Chapter 4: Batch Web Service Operations . user name. Workflow information includes the name of the workflow. Call this operation at the end of a client application run to release resources in the Web Services Hub. getAllWorkflows Use the getAllWorkflows operation to get information about all workflows in a folder. After calling the Login operation. see “getAllRepositories” on page 27. If the domain for the repository is different from the domain for the Web Services Hub. and whether the workflow is valid. For more information about the getAllRepositories operation. The Login operation requires a repository name. Note: Since the getAllRepositories operation is not associated with a specific repository. the name of the folder in which the workflow resides. you must provide the domain name for the repository. and password and returns an encrypted session ID. email notifications. The client application must call this operation before calling any other operations. Logout The Logout operation disconnects you from the repository and Integration Service connections. such as sessions. A workflow is a set of instructions that tells the Integration Service how to execute tasks. the Web Services Hub assumes that the domain for the repository is the same as the domain for the Web Services Hub. Otherwise. You can call the getAllRepositories operation without calling the Login operation. the web service client application can call any Batch web service operations.

You can use the following operations to verify that the Integration Service is running and connect to or get information about the Integration Service: − − − − pingDIServer getDIServerProperties initializeDIServerConnection deinitializeDIServerConnection ♦ Schedule and run workflows. You can use the following operations to control the tasks in a workflows: − − − − − recoverWorkflow resumeWorkflow (deprecated) startTask stopTask waitTillTaskComplete ♦ Monitor and get statistics on sesstions. You can use the following operations to get details on a session or workflow run: − − − − − − − − − getNextLogSegment getSessionLog getSessionPerformanceData getSessionStatistics getTaskDetails getWorkflowDetails getWorkflowLog monitorDIServer startSessionLogFetch Data Integration Web Service Operations 29 .Data Integration Web Service Operations You can perform the following tasks with Data Integration web services operations: ♦ Connect to and get details regarding the Integration Service. You can use the following operations to control how workflows run: − − − − − − startWorkflow stopWorkflow scheduleWorkflow startWorkflowFromTask unscheduleWorkflow waitTillWorkflowComplete ♦ Start and stop tasks in a workflow.

The Integration Service properties include the following information: ♦ ♦ ♦ ♦ ♦ ♦ ♦ Integration Service name Integration Service version Product name Integration Service startup time Name of the repository associated with the Integration Service Data movement mode (ASCII or Unicode) Whether the Integration Service can debug mappings getNextLogSegment The getNextLogSegment operation returns a portion of a session or workflow log. Call the getNextLogSegment operation with the log handle generated by the startSessionLogFetch or startWorkflowLogFetch operation until the end of log is reached. For more information about the pmcmd command line program.− startWorkflowLogFetch This section lists all operations available for the Data Integration web services. see “startWorkflowLogFetch” on page 34.wsdl. see “getSessionLog” on page 31. Use this operation in conjunction with initializeDIServerConnection to manage the connection from the client application to the Integration Service. For more information about the startSessionLogFetch operation. see the PowerCenter Command Line Reference. Use this operation with the startSessionLogFetch or startWorkflowLogFetch operation. Note: This operation is equivalent to the disconnect pmcmd command. getDIServerProperties Use this operation to get the properties of the Integration Service. see “getWorkflowLog” on page 32. deinitializeDIServerConnection This operation disconnects the client application from the Integration Service. To get session log information in one operation. The Logout operation also releases connections to the Integration Service acquired by the client application and performs cleanup operations. see “startSessionLogFetch” on page 33. 30 Chapter 4: Batch Web Service Operations . These operations are defined in the di. For more information about the startWorkflowLogFetch operation. You can use this operation if you want to get the information in a session or workflow log in increments. To get workflow log information in one operation.

see “getNextLogSegment” on page 30. this operation provides the statistics of the most recently run session. Note: Call this operation only for Session tasks. It includes workflow run type. the Integration Service writes information to the session log. Session statistics includes the folder and workflow name. The task detail information includes folder and workflow name. If the workflow is not running. and the number of applied. the operation returns the details of the current task in the running workflow. the number of successful and failed rows for source and target. If the parent workflow is running and the task has already run. Workflow details include the name of the folder. start time. Data Integration Web Service Operations 31 . workflow log file. creation of SQL commands for reader and writer threads. The getSessionLog operation returns the information in the session log. If the parent workflow is not running. and the user that runs the workflow. The amount of detail in the session log depends on the tracing level that you set. and rejected rows. the operation returns the details of the running workflow. getTaskDetails Use this operation to retrieve the details of a task from the Integration Service. the operation returns the details of the last run of this workflow. start and end time. and run error codes and messages. getSessionPerformanceData Use this operation to retrieve the performance data of a session running on the Integration Service. session validation. affected. You can use this operation if you want to get all the information in the session log in one operation. error information. such as initialization of processes. getSessionStatistics Use this operation to get the statistics of a session running on the Integration Service. and load summary. log file code page. session and task run status. If the workflow is running. run status. getWorkflowDetails Use this operation to get the details of a given workflow. workflow. To get session log information in increments. The performance details provide counters that help you understand the session and mapping efficiency. errors encountered. Note: Call this operation only for Session tasks. When the session is not running. and run error codes and messages.getSessionLog When a service session runs. the operation returns the task details of the last workflow run. run status. task name and type.

details of the tasks and links within the workflows. Returns status details for active workflows. you must pass the Integration Service name when you call Data Integration web service operations. workflow task run information. If the domain for the Integration Service is different from the domain for the repository. SCHEDULED. see “getNextLogSegment” on page 30. Returns information for all scheduled and active workflows.getWorkflowLog When the web service workflow runs. initializeDIServerConnection You can use this operation to initialize a connection to an Integration Service. and workflow run summary. see the PowerCenter Command Line Reference. the Web Services Hub uses the same domain for the repository and Integration Service. you do not need to pass the Integration Service name when you call other Data Integration web service operations. The return values are ALIVE or FAIL. You can use this operation if you want to get all the information in the workflow log in one operation. such as initialization of processes. If you call this operation at the start of the client application run. details of active and scheduled workflows. For more information about the pmcmd command line program. you must provide the domain name for the Integration Service. and suspending workflows. The getWorkflowLog operation returns the information in the workflow log. Note: This operation is equivalent to the pmcmd connect command. This operation requires the Integration Service name. ALL. To get workflow log information in increments. 32 Chapter 4: Batch Web Service Operations . Otherwise. Returns status details for scheduled workflows. errors encountered. If you do not call this operation. You can call this operation in the following modes: ♦ ♦ ♦ RUNNING. suspended. Active workflows include running. monitorDIServer Use this operation to retrieve the status of the Integration Service. The amount of detail in the workflow log depends on the tracing level. the Integration Service writes information to the workflow log. pingDIServer Use this operation to determine whether a Integration Service is running.

and Session tasks.B. For more information about the getNextLogSegment operation. When you start a workflow from a task. You can schedule any workflow that does not run on demand. B. resumeWorkflow Deprecated operation. startWorkflow Use this operation to start a workflow. startSessionLogFetch The startSessionLogFetch generates a log handle for use with the getNextLogSegment operation.C. The task instance path for task C is A. The task instance path uniquely identifies a task instance inside a workflow. Task C is a task within worklet B. A task within a worklet is identified by its worklet and task names separated by periods: <WorkletName>. After you call the startSessionLogFetch operation. startWorkflowFromTask Use this operation to stop a workflow from a task. You must specify the task instance path for the task to be started. The Integration Service recovers the workflow from all suspended and failed worklets and all suspended and failed Command. Email. a workflow contains worklet A which contains another worklet. see “getNextLogSegment” on page 30. scheduleWorkflow Use this operation to schedule a workflow.<TaskName>. startTask Use this operation to start a specific task within a workflow.recoverWorkflow Recovers suspended workflows. Use the recoverWorkflow operation. call the getNextLogSegment operation with the log handle generated by startSessionLogFetch until the end of log is reached. A task within a workflow is identified by its task name alone. For example. Data Integration Web Service Operations 33 . the Integration Service runs the workflow from the selected task to the end of the workflow.

startWorkflowLogFetch The startWorkflowLogFetch generates a log handle for use with the getNextLogSegment operation. you abort workflows only if the Integration Service fails to stop the workflow. stopTask Use this operation to stop a task running on an Integration Service. see “getNextLogSegment” on page 30. or worklet at any time. see “startWorkflowFromTask” on page 33. If the workflow contains a worklet. You can stop or abort a task. For more information about the getNextLogSegment operation. Normally. call the getNextLogSegment operation with the log handle generated by startWorkflowLogFetch until the end of log is reached. you can run workflows concurrently. When you stop a task in the workflow. waitTillWorkflowComplete Use this operation to wait for a workflow running on an Integration Service to complete. workflow. stopWorkflow Use this operation to stop a running workflow. Normally. You must specify the task instance path for the task to be aborted. You can also abort a running task by setting the isAbort parameter to true. 34 Chapter 4: Batch Web Service Operations . unscheduleWorkflow Use this operation to unschedule a workflow. you can abort a running workflow by setting the isAbort parameter to true. waitTillTaskComplete Use this operation to wait for a task running on an Integration Service to complete. the Integration Service tries to stop all the tasks that are currently running in the workflow. You can prevent the client from starting the next workflow until the running workflow completes. Otherwise. the Integration Service also tries to stop all the tasks that are currently running in the worklet. For more information about the task instance path. When you stop a workflow. After you call the startWorkflowLogFetch operation. you abort tasks only if the Integration Service fails to stop the task. the Integration Service stops processing the task and all other tasks in its path. In addition to stopping a workflow.

40 Writing a Client Application in C# for Batch Web Services. 44 Client Applications for Realtime Web Services. 48 Writing a Client Application in Java for Realtime Web Services. 53 35 . 36 Client Applications for Batch Web Services.Chapter 5 Writing Client Applications This chapter includes the following topics: ♦ ♦ ♦ ♦ ♦ ♦ ♦ Overview. 50 Using Parameter Arrays. 37 Writing a Client Application in Java for Batch Web Services.

NET frameworks. 36 Chapter 5: Writing Client Applications . You can create a client application to run PowerCenter Batch or Realtime web services.NET and Apache Axis web services toolkits to write client applications for the PowerCenter web services. Web services toolkits make it easy to create client applications by generating client-side proxy classes from the web service WSDL files. you need the web service WSDL files and a web service toolkit. The application development follows the same basic steps. To create a client application for the PowerCenter web services. You can use the Microsoft . The general discussion on the steps to create a client application is followed by examples of how to create client applications in the Java and .Overview This chapter provides an overview of how you can write client applications to use the web services offered by the PowerCenter Web Services Provider.

Initialization The client application performs an initialization step before it makes calls to Metadata and Data Integration web services operations. verify that the WSDL files contain the correct endpoint URL. see “Batch Web Services” on page 15.Client Applications for Batch Web Services Developing a client application to access the Batch web services available in the PowerCenter Web Services Provider involves the following elements: ♦ ♦ ♦ ♦ ♦ ♦ ♦ Client proxy classes Initialization Session maintenance Operation calls Resource cleanup Error handling Proxy objects For more information about writing a client application in Java using the Axis Web Services Toolkit to access the PowerCenter Batch web services. Each toolkit generates the client proxy classes in a specific way. 3. see “Writing a Client Application in C# for Batch Web Services” on page 44.NET Web Services Toolkit to access the PowerCenter Batch web services. Select the web services toolkit for the platform and language in which you want to develop. For more information about writing a client application in C# using the . Generate the client-side proxy classes from the WSDL files using the web service toolkit. To generate client proxies. the endpoint URL is set to the Web Services Hub host name and port number. Refer to the web services toolkit documentation for details on generating proxy classes. By default. Generating Client Proxy Classes To use the Batch Web Services operations available in the Web Services Hub. when you download the WSDL files from the Web Services Hub console. you need to generate client proxy classes for the web service WSDL files using a web services toolkit. 2. see “Writing a Client Application in Java for Batch Web Services” on page 40. For more information about downloading the Batch Web Services WSDL files from the Web Services Hub console. Client Applications for Batch Web Services 37 . Download the WSDLs for the Metadata web services and Data Integration web services from the Web Services Hub console. complete the following steps: 1. Before you generate the proxy classes.

To set up and perform session maintenance. complete the following steps: 1. user name. 2. see “Data Integration Web Service Operations” on page 29. In the example. Call the Login operation using the MWSProxy object.To perform initialization. For more information about using the Metadata web service operations. Session Maintenance The Web Services Hub requires session maintenance to cache resources. complete the following steps: 1. Set the SOAP header in the MWSProxy object after the Login operation call. Instantiate the proxy class for the Metadata API. 2. All subsequent requests made to the Batch web services operations using the MWSProxy object use these repository and user names. see “Metadata Web Service Operations” on page 27. The Login operation requires a repository name. and password and returns a session ID. The SOAP header in the SOAP message carries the session information facilitating session maintenance.com/wsh from the response of the Login operation call. This SOAP header contains the session ID sent by the Web Services Hub. the name of the Data Integration API proxy object is DIWSProxy. Instantiate the proxy class for the Data Integration API. Use the DIWSProxy object to call Data Integration web service operations.informatica. This operation call associates the MWSProxy object with the repository name and user name pair. 3. the name of the Metadata API proxy object is MWSProxy. This section uses the name MWSProxy to refer to the Metadata API proxy object. Set the SOAP header in the DIWSProxy object with the same session ID so that the same session ID will be sent for all subsequent requests made using the DIWSProxy object. This will send the session ID in the SOAP header for all subsequent requests using the MWSProxy object. 3. Use the MWSProxy object to call Metadata web service operations. For more information about using the Data Integration web service operations. In the example. Extract the header with the root element name Context and namespace http://www. This section uses the name DIWSProxy to refer to the Data Integration API proxy object. Operation Calls You are now ready to call Metadata web service and Data Integration web service operations using the MWSProxy and DIWSProxy objects. 38 Chapter 5: Writing Client Applications .

A web services toolkit provides an exception handling scheme to get the faultcode and faultstring field of a fault element. However. call the Logout operation using the MWSProxy object. For more information about error handling schemes used in the Axis Web Services Toolkit.Resource Cleanup The Web Services Hub implements session expiry for performance and resource clean up. the client application should implement the appropriate error handling scheme to retrieve the SOAP fault. the Web Services Hub performs resource cleanup after the session expiration period. While calling any of the Batch web services operations. Error Handling SOAP fault elements in the SOAP response contain the errors that occur during calls to web services. To release resources. This scheme varies according to the toolkit. Proxy Objects The Login operation call creates a session for the repository and user name you provide. see “Error Handling in . For more information about error handling schemes used in the . This session (and Metadata proxy object) is valid as long as the session ID is valid. see “Error Handling in Axis” on page 43. you might need an XML parser to parse the detail element field to obtain the error code and extended details. Client Applications for Batch Web Services 39 . If you log in to a repository but do not call the Logout operation. The Logout operation releases the Web Services Hub resources acquired by client applications and performs cleanup operations. the session ID becomes invalid along with the corresponding Metadata and Data Integration proxy objects. The session ID (which corresponds to the Metadata proxy object) that you get from the Login operation call identifies this session.NET” on page 46. After you call the Logout operation.NET Web Services Toolkit.

For example.Writing a Client Application in Java for Batch Web Services This section highlights the steps to write a client application in Java using the Axis Web Services Toolkit.wsdl.wsdl.informatica.wsdl. You can view the sample programs for the PowerCenter web services in the following directory: <PowerCenterInstallationDir>/server/samples/BatchWebServices/samples/axis Generating Client Proxy Classes in Axis You can generate client proxy classes in Java using the Axis Web Services Toolkit. Use the following command to generate the client proxy classes: java org. The commands generate two proxy classes: − − MetadataInterface.informatica.apache. Contains the interface for the Metadata web services. Verify that the WSDLs have the correct host name and port number for the Web Services Hub in the endpoint URL. Note: The sample code snippets in the following sections are taken from the Batch Web Services sample programs shipped with the Web Services Hub.WSDL2Java --NStoPkg http://www. Download the Metadata web services and Data Integration web services WSDL files from the Web Services Hub console.wsdl.java.com/wsh=ProxyClasses -W Metadata. for WSDL files named Metadata.WSDL2Java --NStoPkg http://www.informatica.wsdl.com/wsh=ProxyClasses -W DataIntegration.wsdl and DataIntegration. If the endpoint URL is not correct. To generate client proxy classes in Java. java org.apache. run the following commands: java org.apache. update the address element. DataIntegrationInterface. 40 Chapter 5: Writing Client Applications .java.com/wsh=ProxyClasses -W <WSDLFile> The -W option turns off support for wrapped document literal services. which is available in the definitions\service\port hierarchy in the WSDL file.axis. 2.WSDL2Java --NStoPkg http://www.axis.axis. Contains the interface for the Data Integration web services. These commands generate the client proxy classes in the folder /ProxyClasses in the ProxyClasses package.wsdl. Initialization in Axis The client application must perform an initialization step before it makes calls to Metadata web services and Data Integration web services. complete the following steps: 1.

DIWS_URL is a variable containing the endpoint URL for the Data Integration web services. repository. Get a MetadataInterface object (MWSProxy) from the MetadataService object created in step 1. Otherwise. get the MWSProxy object as follows: MWSProxy=mdService. 4.getMetadata(new java. and PASSWORD is a string containing the password for the user to log in to the repository. Use the MWSProxy object to call Metadata web service operations.setRepositoryName(REPO_NAME).To perform initialization.wsdl has the correct URL. loginReq. USER_NAME is a string containing a user name valid for the repository. get the DIWSProxy object as follows: DIWSProxy=diService.getDataIntegration(). wrapped in an object LoginRequest and returns a session ID.URL(MWS_URL)). user name. Get a DataIntegrationInterface object (DIWSProxy) from the DataIntegrationService object created in step 1.login(loginReq).net.URL(DIWS_URL)). complete the following steps: 1. Call the Login operation with the MWSProxy object to create a session ID for the client application user account. MWS_URL is a variable containing the endpoint URL for the Metadata web services. Use the DIWSProxy object to call Data Integration web service operations. Otherwise.getDataIntegration(new java. If the Metadata service endpoint URL in the Metadata.setRepositoryDomainName(REPO_DOMAIN_NAME). REPO_NAME is a string containing the name of a repository in the domain.net. Writing a Client Application in Java for Batch Web Services 41 .setPassword(PASSWORD).wsdl has the correct URL. Create MetadataService and DataIntegrationService objects by instantiating the service locator classes: MetadataService mdService = new MetadataServiceLocator(). get the DIWSProxy object as follows: DIWSProxy=diService. loginReq. DataIntegrationService diService = new DataIntegrationServiceLocator(). loginReq. String sessionID = MWSProxy. get the MWSProxy object as follows: MWSProxy=mdService. REPO_DOMAIN_NAME is a string containing a PowerCenter domain name. 2.setUserName(USER_NAME). If the service endpoint URL in the DataIntegration. LoginRequest loginReq = new LoginRequest(). 3. and password. loginReq. The Login operation takes a domain.getMetadata().

5.

Associate the MWSProxy and DIWSProxy objects with the repository and user name in the session ID. All subsequent requests made to the Batch web services using the MWSProxy or DIWSProxy object use the repository and user name in the session ID.
((org.apache.axis.client.Stub)MWSProxy).setHeader(createSessionHeader(sessionID)); ((org.apache.axis.client.Stub)DIWSProxy).setHeader(createSessionHeader(sessionID));

Session Maintenance in Axis
The Web Services Hub requires session maintenance to cache resources. The SOAP header in the SOAP message carries the session information facilitating session maintenance. To perform session maintenance, complete the following steps: 1. Extract the SOAP header (MWSHeader) with the root element name “Context” and the namespace http://www.informatica.com/wsh from the response of the Login operation call using the MWSProxy object. This SOAP header contains the session ID sent by the Web Services Hub. Send this session ID in a SOAP header for all subsequent requests using the MWSProxy object. You set the SOAP header once in the MWSProxy object after the Login operation call, as follows:
SOAPHeaderElement MWSHeader =((org.apache.axis.client.Stub)MWSProxy).getResponseHeader( “http://www.informatica.com/wsh”,“Context”); ((org.apache.axis.client.Stub)MWSProxy).setHeader(MWSHeader);

2.

Set the SOAP header in the DIWSProxy object with the same SOAP header:
((org.apache.axis.client.Stub)DIWSProxy).setHeader(MWSHeader);

Making Operation Calls in Axis
You are now ready to call Metadata web service and Data Integration web service operations using the MWSProxy and DIWSProxy objects. For example, you can call the getAllDIServers operation to get a list of Integration Services:
DIServerInfoArray servers = MWSProxy.getAllDIServers(null); if (servers.getDIServerInfo() != null) { for(int i=0; i < servers.getDIServerInfo().length ; i++) { System.out.println("("+(i+1)+") "+servers.getDIServerInfo(i).getName()); } }

You can call the pingDIServer operation to check the state of an Integration Service:
DIServiceInfo diInfo = new DIServiceInfo(); diInfo.setDomainName(DI_DOMAIN_NAME); diInfo.setServiceName(SERVICE_NAME);

PingDIServerRequest pingReq = new PingDIServerRequest(); pingReq.setDIServiceInfo(diInfo); pingReq.setTimeOut(100);

42

Chapter 5: Writing Client Applications

EPingState eps = DIWSProxy.pingDIServer(pingReq);

DI_DOMAIN_NAME is a variable containing the name of the domain that contains the Integration Service. SERVICE_NAME is a variable containing the Integration Service name.

Clean Up in Axis
Clean up operations release the Web Services Hub resources acquired by client applications. To clean up and release resources, call the Logout operation using the MWSProxy object:
MWSProxy.logout(new VoidRequest());

Error Handling in Axis
You can implement client application error handling in Axis by placing the code in a try block and catching the FaultDetails object. The FaultDetails class is generated as part of the client proxies. You can use the following code in a try block to catch the FaultDetails object:
try { // Code for steps explained above. } catch(FaultDetails fault) { // Display fault code System.out.println(“fault code : “ + fault.getFaultCode()); // Display fault string System.out.println(“fault string : “ + fault.getFaultString()); // Display error code System.out.println(“error code is : “ + fault.getErrorCode()); // Display extended details System.out.println(“extended detail is : “ + fault.getExtendedDetails()); }

Writing a Client Application in Java for Batch Web Services

43

Writing a Client Application in C# for Batch Web Services
This section highlights the steps to write a client application in C# using the .NET Web Services Toolkit.
Note: The sample code snippets in the following sections are taken from the Batch Web

Services sample programs. You can view the sample programs in the following directory:
<PowerCenterInstallationDir>\server\samples\BatchWebServices\samples\dotnet\csharp

Generating Client Proxy Classes in .NET
You can create client proxy classes for the Web Services Hub in C# using the Microsoft .NET Web Services Toolkit. To generate client proxies in C#, complete the following steps: 1. Download the Metadata web services and Data Integration web services WSDL files from the Web Services Hub console. Verify that the WSDLs have the correct host name and port number for the Web Services Hub in the endpoint URL. If the endpoint URL is not correct, update the address element, which is available in the definitions\service\port hierarchy in the WSDL file. Use the following command to generate the client proxy classes:
wsdl <WSDLFile>

2.

For example, for WSDL files named Metadata.wsdl and DataIntegration.wsdl, run the following commands:
wsdl Metadata.wsdl wsdl DataIntegration.wsdl

The commands generate two proxy classes:
− −

MetadataService.cs. Contains the interface for the Metadata web services. DataIntegrationService.cs. Contains the interface for the Data Integration web services.

Initialization in .NET
The client application must perform an initialization step before it makes calls to Metadata web services and Data Integration web services. To perform initialization, complete the following steps: 1. Instantiate a MetadataServiceSoapBinding class object (MWSProxy):
MWSProxy= new MetadataServiceSoapBinding();

If the Metadata service endpoint URL in the Metadata.wsdl does not have the correct URL, you can set the URL with the following code:
MWSProxy.Url = MWS_URL;

44

Chapter 5: Writing Client Applications

you can set the URL with the following code: DIWSProxy. repository. loginReq.RepositoryName = REPO_NAME. If the Data Integration service endpoint URL in the DataIntegration. REPO_NAME is a string containing the name of a repository in the domain. loginReq. loginReq.Context. loginReq. user name. You do not need to take additional steps. Session Maintenance in . 4.SessionId = sessID. MWSProxy.Login(loginReq). REPO_DOMAIN_NAME is a string containing a PowerCenter domain name.RepositoryDomainName = REPO_DOMAIN_NAME. DIWS_URL is a string containing the Data Integration web service endpoint URL. Use the DIWSProxy object to call the Data Integration web service operations. and password. 2. The Login operation takes a domain.Url = DIWS_URL. Writing a Client Application in C# for Batch Web Services 45 . DIWSProxy. and PASSWORD is a string containing the password for the user to log in to the repository. String sessID = MWSProxy.SessionId = sessID. The SOAP header in the SOAP message carries the session information facilitating session maintenance. Use the MWSProxy object to call Metadata web service operations.MWS_URL is a variable containing the endpoint URL for the Metadata web services. Call the Login operation using the MWSProxy object to create a session ID for the client application user account. USER_NAME is a string containing a user name valid for the repository. The . All subsequent requests made to the Batch web services using the MWSProxy or DIWSProxy object use the repository and user name in the session ID.Password = PASSWORD.UserName = USER_NAME. 3. Instantiate a DataIntegrationServiceSoapBinding class object (DIWSProxy): DIWSProxy= new DataIntegrationServiceSoapBinding ().NET client proxy classes handle session maintenance for you. wrapped in an object LoginRequest and returns a session ID.Context. Making Operation Calls in .wsdl does not have the correct URL. Associate the MWSProxy and DIWSProxy object with the repository and user name in the session ID. LoginRequest loginReq = new LoginRequest().NET The Web Services Hub requires session maintenance to cache resources.NET You are now ready to call Metadata web service and Data Integration web service operations using the MWSProxy and DIWSProxy objects.

The SOAP Exception class is part of the .WriteLine(“fault code is : “ + fault.pingDIServer(pingReq). XmlElement WSHFaultDetails = detail[“WSHFaultDetails”.DIServiceInfo = diInfo1.NET by placing the code in a try block and catching the SOAP Exception object.Length . you can call the getAllDIServers operation to get a list of Integration Services: DIServerInfo[] servers = MWSProxy. i < servers. if (servers != null) { for(int i=0. diInfo1. pingReq.GetAllDIServers(null).Message).Name). “http:// www.informatica. i++) { Console. // Display fault string Console. DIServiceInfo diInfo1 = new DIServiceInfo(). diInfo1.WriteLine(“fault string is : “ + fault.TimeOut = (PING_TIME_OUT).NET You can implement client application error handling in .For example.com/PowerCenter”]. You can use the following code in a try block to catch the SOAP Exception object: try { //Code for steps explained above.Detail.NET framework SDK. pingReq. Error Handling in . DI_DOMAIN_NAME is a variable containing the name of the domain that contains the Integration Service. } catch(SoapException fault) { // Display fault code Console.ServiceName = DI_SERVICE_NAME1.DomainName = DI_DOMAIN_NAME.Code).WriteLine("("+(i+1)+") "+servers[i]. 46 Chapter 5: Writing Client Applications . // Parsing detail element XmlNode detail = fault. DI_SERVICE_NAME is a variable containing the Integration Service name. } } You can call the pingDIServer operation to check the state of an Integration Service: PingDIServerRequest pingReq = new PingDIServerRequest(). EPingState pingResult = DIWSProxy1.

// Display extended details Console.WriteLine (“extended detail is : “ + ExtendedDetails.XmlElement ErrorCode= WSHFaultDetails [“ErrorCode”]. // Display error code Console. XmlElement ExtendedDetails= WSHFaultDetails [“ExtendedDetails”]. } Writing a Client Application in C# for Batch Web Services 47 .InnerText).InnerText).WriteLine (“error code is : “ + ErrorCode.

Generate the client-side proxy classes from the WSDL file using the web service toolkit. you need to generate client proxy classes from the WSDL files of the web service you want to access. Enable the Web Service option to turn a workflow into a web service workflow. Enable the Runnable option to allow a client application to run the web service workflow. 48 Chapter 5: Writing Client Applications . 3. Runnable. create the mappings and workflows in PowerCenter. complete the following steps: 1. Select the web services toolkit for the platform and language in which you want to develop. Generating Client Proxy Classes To use Realtime web services you create in PowerCenter. Web Service Workflows You build realtime web service client applications to run web services workflows. Enable the following options in the workflow to allow a client application to run the workflow: ♦ ♦ ♦ Web Service. Refer to the web services toolkit documentation for details on generating proxy classes. Initialization The client application must instantiate the web service object in the client proxy classes and get the port for the web service before the application can make calls to the web service operations. Before you create the client application.Client Applications for Realtime Web Services Client applications for Realtime web services involve the following elements: ♦ ♦ ♦ ♦ ♦ Web service workflows Client proxy classes Initialization Operation calls Error handling For more information about writing Java client applications to access Realtime web services in PowerCenter. Download the WSDL for the realtime web service from the Web Services Hub console. Enable the Visible option so that the Web Services Hub publishes the WSDL for the web service in the Web Services Hub console. To generate client proxies. Visible. 2. see “Writing a Client Application in Java for Realtime Web Services” on page 50. Each toolkit generates the client proxy classes in a specific way.

Error Handling Error handling in a Realtime web services client application is the same as in a Batch Web Services client application. Client Applications for Realtime Web Services 49 . the client application must handle the response as needed. The client application should implement the appropriate error handling scheme to retrieve the SOAP fault. the client application must create a request object and pass it to the port operation. When the web service sends back a response.Operation Calls To invoke a web service operation. SOAP fault elements in the SOAP response contain the errors that occur during calls to web services.

org/axis/java/user-guide. Initialize the web service objects. you can develop a client application to run the web service workflow. Create a workflow to run the mapping and enable the Web Services option in the workflow properties.apache. Pass the request object to the port operation and handle the response. 3. 3. Select the Runnable option so that client applications outside of PowerCenter can run the workflow. you must first create the web service workflow and generate the WSDL for the web service. Locate and download the WSDL for the web service workflow. Perform the next steps within the Java application.Writing a Client Application in Java for Realtime Web Services This section provides instructions for using the Axis Web Services Toolkit to create a Java client application program that calls a PowerCenter realtime web service. 50 Chapter 5: Writing Client Applications . see “Working With Web Service Workflows” on page 77. transform the data. For more information about configuring the web service workflow. PowerCenter generates a WSDL for the web service. see “Configuring the Web Service Workflow” on page 80. For more information about creating and configuring a web service workflow. 2. You then create the client application based on the web service WSDL. 2. you can view the WSDL on the console of the Web Services Hub associated with the web service. Create a mapping for the web service workflow. You can create a mapping to receive a message from a web service client. 4. When you create the web service workflow.html Before you create the client application that calls a PowerCenter web service workflow. To create a PowerCenter web service and generate the WSDL. and send the response back to the web service client or write it to any target that PowerCenter supports. complete the following steps: 1. To create a client application that calls Realtime web services. Create a workflow and enable it as a web service. After you create the web service. For more information about using the Axis Web Services Toolkit see the documentation on the Apache web site: http://ws. After you create the proxy classes. create the Java application to call the web service. Create the request object. If you configure the web service to be visible. complete the following steps: 1. For more information about creating a PowerCenter mapping to use in a web service. Generate the client proxy classes for the web service. see “Working with Mappings” on page 57.

WSDL2Java generates package names based on the namespaces in the WSDL. In the sample client application.axis. You can view the example in the following directory: <PowerCenterInstallationDir>/server/samples/RealtimeWebServices/samples /axis/CustomerLookup_MULTIPLEROW Step 1. Verify that the WSDL has the correct host name and port number for the web service in the endpoint URL.y.com. request.apache.setCustomerID_in(CustomerID). Writing a Client Application in Java for Realtime Web Services 51 . Step 3.getCustomerLookup_MULTIPLEROWPort()).apache. you can run the WSDL2Java tool to generate the Java proxy class files. Use the following command to generate the client proxy classes: java org.y. the corresponding package will be com. the following code instantiates the service locator: CustomerLookup_MULTIPLEROW service = new CustomerLookup_MULTIPLEROWLocator(). In the sample program. To create the web service object. you must create the web service object in the client proxy classes and get the port for the web service.wsdl The -W option turns off support for wrapped document literal services. In the sample program. By default.Note: The sample code snippets in the following sections are taken from the Realtime web services sample program for multiple row lookup. Create the Request Object You must create a request object and any required parameter to be passed to the web service.wsdl. If the endpoint URL is not correct. the following code gets the port for the web service: CustomerLookup_MULTIPLEROWPort port = service.com or urn:x. WSDL2Java generates a class for each data type defined in the WSDL.axis. update the address element. run the following command: java org.wsdl.wsdl. Initialize the Web Service Objects Before you call any web service operation.WSDL2Java -W <WSDLFile> For example. Specifically. Generate Client Proxy Classes in Axis You can use the Axis Web Services Toolkit to generate Java client proxy classes for the web service WSDL. for a WSDL file named SampleWS. use the proxy class created for the port type. instantiate the service locator classes. Typically. which is available in the \definitions\service\port hierarchy in the WSDL file. Step 2. To get the port for the web service. the following code creates a lookup request object: CustomerLookupRequest request = new CustomerLookupRequest().y.WSDL2Java -W SampleWS. if the namespace is of the form http://x.x.

getCustomerAge_out()).getItem(). Send the Request and Handle the Response After you create the request object. pass it to the port operation.println("***** Customer Age: " + response[i].println("***** Customer ID: " + response[i].getCustomerName_out()).out.getCustomerGender_out()).getCustomerID_out()). the following code passes the request object to the port and displays the response: _CustomerMultipleRowLookupOperationResponse responseOperation = port. System. You can handle the response based on your requirements.println("***** Customer Address: " + response[i]. if (responseOperation == null) { System.out.println("Customer(s) with the ID as " + CustomerID + " does not exist!!!").. } else { CustomerLookupResponse[] response = responseOperation. i < response.println("***** Customer Name: " + response[i].println("***** Customer(s) that matches with the Customer ID is/are .out. if (i < response.println("***** Customer Gender: " + response[i]. In the sample client application. System.customerLookup_MULTIPLEROWOperation(requestOperation). System.Step 4.getCustomerAddress_out()). for (int i = 0.out.out..out. i++) { System.out. System. System. System.println (). } } 52 Chapter 5: Writing Client Applications .println(). The web service sends back a response.out.out.length .length.1) System.").

you can define the values for parameters associated with a workflow or session in a parameter file or a parameter array. To use a parameter array. For a web service client application. it uses the parameters in an array the same way it uses parameters in a parameter file. name. Parameter Array Definition The parameter definition in a SOAP request consists of the scope. you have the following parameters in a parameter file: [s_m_A] $a=1 $b=2 $c=3 Using Parameter Arrays 53 . such as a database connection or a source or target file. provide the parameter values in the elements of the parameter array in the client application. specify the parameter file name in the client application. and value of the parameter. The WSDL contains the following definition for the parameter array elements: <complexType name="Parameter"> <sequence> <element name="Scope" type="xsd:string" /> <element name="Name" type="xsd:string" /> <element name="Value" type="xsd:string" /> </sequence> </complexType> <complexType name="ParameterArray"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="Parameters" nillable="true" type="impl:Parameter" /> </sequence> </complexType> For example. a request to start a workflow or task can specify the parameters associated with the workflow or task with the name of a parameter file or the list of parameters and values in parameter array. a parameter represents a value you can change between sessions. The parameter file must be accessible to the Integration Service. You can create parameters associated with a workflow or session to provide flexibility each time you run a workflow or session. To use the parameters in a parameter file. When the Integration Service runs the workflow or task. For example.Using Parameter Arrays In PowerCenter.

You can specify any number of parameters in a parameter array. 54 Chapter 5: Writing Client Applications . Parameter param1 = new Parameter(). The following sample code from a web service client application in Axis shows how to create the parameter array in a WorkflowRequest: Parameter[] parameters = new Parameter[4].[WSH_Folder.s_m_B</Scope> <Name>$d</Name> <Value>4</Value> </Parameter> … </StartWorkflow> The WorkflowRequest and TaskRequest types contain ParameterArray elements.s_m_B] $d=4 The SOAP request for a web service call to the StartWorkflow operation with the same parameters in a parameter array would include the following elements: <StartWorkflow> … <Parameters> <Parameter> <Scope>s_m_A</Scope> <Name>$a</Name> <Value>1</Value> </Parameter> <Parameter> <Scope>s_m_A</Scope> <Name>$b</Name> <Value>2</Value> </Parameter> <Parameter> <Scope>s_m_A</Scope> <Name>$c</Name> <Value>3</Value> </Parameter> <Parameter> <Scope>WSH_Folder.

Param2. Parameter param3 = new Parameter().Param1. WorkflowRequest wfReq = new WorkflowRequest(). Parameter param2 = new Parameter().setName(“$d”).setScope(“WSH_Folder. Param3.setName($a”). Param2. wfReq.setScope(“s_m_A”).setValue(“1”). Parameters[3] = param4. Param3.setScope(“s_m_A”). Parameters[1] = param2. Param1. Param1.setParameters(parameters). Parameter param4 = new Parameter(). Param4. Parameters[0] = param1. Parameters[2] = param3.setValue(“3”).s_m_B”). Param3.setValue(“2”).setName(“$b”).setScope(“s_m_A”). Param4.setName(“$c”).setValue(“4”). You can use parameter arrays in the following operations: ♦ ♦ ♦ ♦ ♦ StartWorkflow StartWorkflowFromTask RecoverWorkflow ResumeWorkflow (deprecated) StartTask Using Parameter Arrays 55 . Param4. Param2.

If you specify both a parameter file and parameter array in the SOAP request.Rules and Guidelines for Using Parameter Arrays Use the following rules and guidelines when you use a parameter array in a web service request: ♦ Use a parameter file OR a parameter array. ♦ The parameter array in a SOAP request overrides any parameter file defined in the properties of a task or workflow. the Integration Service uses the parameter array in the web service request when it runs the workflow. If you specify a parameter array in a web service request to start a workflow and the workflow has an associated parameter file defined in the workflow properties. the Web Services Hub returns the following fault: ERROR: Error: Both parameter list and parameter file are specified. Do not specify a parameter file name and a parameter array in the a SOAP request when you make a web service operation call. 56 Chapter 5: Writing Client Applications .

75 57 . 72 Attachments. 58 Importing Web Service Source and Target Definitions. 66 Working with Web Service Mappings. 59 Viewing and Editing Web Service Definitions.Chapter 6 Working with Mappings This chapter includes the following topics: ♦ ♦ ♦ ♦ ♦ Overview.

You can also create a mapping using flat file or XML sources and targets and use it in a web service workflow. You can edit the definition in the Designer workspace. Based on the source and target definitions. and precision for String and Binary datatypes. transform the data. ♦ ♦ 58 Chapter 6: Working with Mappings . and send the response back to the web service client or write it to any target PowerCenter supports. You can view the groups and relationships in the XML Editor.Overview Before you can define a web service workflow in the Workflow Manager. When you import a source. use the Designer to complete the following tasks: ♦ Import definitions. Most properties of a web service definition are read-only. PowerCenter can receive and send attachments as part of the SOAP request. View and edit definitions. Create mappings. You can create a mapping to receive a message from a web service client. This allows you receive message data through a SOAP call by attachment instead of reading it from a file. the Designer imports output and fault messages. Import operations from a WSDL file to create web service source and target definitions. metadata extensions. the Designer imports the input message. You can edit properties such as description. The Designer creates multiple groups in a definition based on the XML hierarchy of the file. When you import a target.

Header group has foreign key pointing to root group. Each definition has multiple groups. Body group has foreign key pointing to root group.Importing Web Service Source and Target Definitions Web service source and target definitions represent metadata for SOAP request and response messages. Importing Web Service Source Definitions When you use the Source Analyzer to import an operation from a WSDL file. This represents the metadata for a web service SOAP response. the Import Wizard imports the input message associated with the operation. When you import a WSDL file in the Target Designer. Note: You can import definitions from a WSDL file with document/literal encoding. Importing Web Service Source and Target Definitions 59 . the Designer imports output message of an operation. the Designer imports the input message of an operation. You create web service source and target definitions by importing a WSDL file. Figure 6-1 shows a source definition imported from a WSDL file: Figure 6-1. This represents the metadata for a web service SOAP request. Web Service Source Definition Root group contains message ID. You can import definitions that contain MIME attachments. If the Designer detects an attachment. The Designer creates a source or target definition based on the operation you choose in the WSDL file you import: ♦ ♦ ♦ When you import a WSDL file in the Source Analyzer. The WSDL file contains information about a web service operation. Detail group has foreign key pointing to body group. it creates an attachment group in definition.

Attachment group contains a foreign key pointing to the root group. Because a function within an operation can result in different faults. Importing Web Service Target Definitions When you use the Target Designer to import an operation from a WSDL file. This detail group has an n:1 relationship with the body group. Detail group contains a foreign key pointing to the body group. the Designer creates ports in the message header that are not part of the XML hierarchy. A fault message represents an error processing the request. Web Services Hub generates the message ID when it receives a request. see Table 6-2. Each message contains a group for the message root and the message body. When you run a web service workflow. the Import Wizard may create multiple fault definitions. Message Header Ports Port Name PK_Message MessageID ClientID ClientIP Description Generated primary key for the root group. The body group has a 1:1 relationship with the root group. Table 6-2 describes the message header ports in a web service definition: Table 6-2. Body group contains a foreign key pointing to the root group. The message root group for a web service target definition contains a message ID port. It uses this ID to correlate the incoming request with the outgoing response. see “Steps for Importing Web Service Sources and Targets” on page 61. For information about importing web service source definitions. 60 Chapter 6: Working with Mappings . TCP/IP address of the web service client. Web Services Definition Groups Group Name Message Header_name Body_name X_ name Att_name Description Root group contains the message ID and client information. Header group contains a foreign key to the root group. The attachment group has an n:1 relationship with the root group. The header group has 1:1 relationship with the root group.Table 6-1 describes the groups in a web service definition: Table 6-1. the Web Services Hub uses this information to identify the web service client and generate a message ID. For information about the message header ports. When you import a web service source definition. the Import Wizard imports the output message and any fault message associated with the operation. User ID of the web service client.

Figure 6-2 shows a sample output message and fault message:
Figure 6-2. Web Service Target Definitions
Output Message Fault Message

Note: When the Designer imports a web service target definition, it names the definition based

on the operation and the target type, such as output or target. If you rename the definition, you can verify the target type on the Metadata Extensions tab. For information about importing web service target definitions, see “Steps for Importing Web Service Sources and Targets” on page 61.

Steps for Importing Web Service Sources and Targets
When you import a WSDL file, you can import it from a local file or you can import it from a URL. You can import definitions from a WSDL file with document/literal encoding. The Import Wizard imports the input message of operation as a source definition. It imports the output message and fault message of an operation as target definitions. If a service does not have an associated operation, you cannot import the definition. You can choose from the following options to create XML views:

Create entity relationships. Use this option to create views for multiple-occurring or referenced elements and complex types. You create relationships between views instead of creating one large hierarchy. For more information about entity relationships, see the PowerCenter XML Guide. Create hierarchical relationships. This is the default option for importing WSDLs. Use this option to create a root and expand the XML components under the root. If you choose to create a hierarchical relationship, then you create a normalized view. In a normalized view, every element or attribute appears once. One-to-many relationships become separate XML views with keys to relate the views. For more information about hierarchical relationships, see the PowerCenter XML Guide.

Importing Web Service Source and Target Definitions

61

To import a web service definition: 1.

From the Source Analyzer, click Sources > Import from WSDL (Provider). - or From the Target Designer, click Targets > Import from WSDL (Provider).

Select a URL.

Configure default precision. Choose to import from a local file or a URL. 2.

Choose to display import errors.

Click Advanced Options to configure the default precision for String datatype fields.

62

Chapter 6: Working with Mappings

Table 6-3 describes the options you can configure when you choose Advanced Options.
Table 6-3. Advanced Options for Importing Web Service Definitions
Option Override all infinite lengths Generate names for XML columns Description You can specify a default length for fields with undefined lengths, such as strings. You can choose to name XML columns with a sequence of numbers or with the element or attribute name from the schema. If you use names, choose from the following options: - When the XMLColumn refers to an attribute, prefix it with the element name. PowerCenter uses the following format for the name of the XML column:
NameOfElement_NameOfAttribute

- Prefix the XML view name for every XML column. PowerCenter uses the following format for the name of the XML column:
NameOfView_NameOfElement

- Prefix the XML view name for every foreign-key column. PowerCenter uses the following format for the name of a generated foreign key column:
FK_NameOfView_NameOfParentView_NameOfPKColumn

Maximum length for a column name is 80 characters. PowerCenter truncates column names longer than 80 characters. If a column name is not unique, PowerCenter adds a numeric suffix to keep the name unique. 3.

Select whether to import from a local file or a URL. If you choose to import from a URL, select a URL from the Address list and click Open. If you choose to import from a local file, select a file and click Open.

Importing Web Service Source and Target Definitions

63

Choose an operation from the Import from WSDL dialog box.4. The Web Services Definition Creation Options dialog box appears. Click Next. 5. 64 Chapter 6: Working with Mappings .

Click Finish. Choose to generate XML views as entity relationships or as hierarchy relationships. 7. Hierarchy relationships with normalized XML views is the default option. The web service definition appears in the workspace.6. Importing Web Service Source and Target Definitions 65 .

and you can change the name of the definition. Note: The Mapping Designer invalidates mappings that use source and target web service definitions with a total column length greater than 500 MB. On the Columns tab. You cannot change the table type. you can edit the precision for String datatypes. 66 Chapter 6: Working with Mappings . you can view the Web Services Domain metadata extensions. see “Steps for Importing Web Service Sources and Targets” on page 61. such as port name. and scale. precision. On the Attributes tab. You can also edit some properties in the Designer workspace. Metadata Extensions. For more information about modifying the precision when you import a definition. You can also add metadata extensions in the User Defined Metadata Domain. Columns Tab The Columns tab displays column information. Attributes. When you set the precision. datatype. You can also add business names and column descriptions. you can provide the owner name and description. Columns. you can view attribute values for each column in a source or target definition. the Designer uses the new value the next time you import a definition. You can also modify the precision of individual columns after you import a definition. On the Table tab. Viewing and Editing Definitions in the Designer Web service source definitions and target definitions contain the following tabs: ♦ ♦ ♦ ♦ Table. and you can add business names and column descriptions. you can view the definition in the Designer workspace or the XML Editor. You can set the precision for String datatypes when you import the source or target.Viewing and Editing Web Service Definitions After you import a web service source or target. You can edit precision for String and Binary datatypes. On the Metadata Extensions tab.

Columns Tab for a Web Service Definition Viewing and Editing Web Service Definitions 67 .Figure 6-3 shows the Columns tab for a web service source definition: Figure 6-3.

Figure 6-4 shows the Attributes tab for a web service target definition: Figure 6-4.Attributes Tab The Attributes tab is a read-only tab that displays the XPath and XMLDataType values for each field in a source or target definition. the Attributes tab displays the MIME type in the data field. If the definition has an Attachment group. Attributes Tab for a Web Service Definition MIME Type of Attachment 68 Chapter 6: Working with Mappings .

To view a web service definition in the XML Editor: Right-click a definition and choose WSDL Workspace. see the PowerCenter XML Guide. output. You can perform functions such as validation and searching. or fault. or Fault. which can be input. You can also view the vendor-defined extensions in the Web Services Provider Domain. you can view the groups and relationships in the XML Editor. Output. Figure 6-5 shows the Metadata Extensions tab for a web service source definition: Figure 6-5. View Definitions in the XML Editor After you import a web service source or target definition.Metadata Extensions Tab You can create metadata extensions on the Metadata Extensions tab. For more information about the XML Editor. The XML Editor is read-only for web service source and target definitions. These metadata extensions identify the message type. Metadata Extensions Tab for a Web Service Definition Displays message type: Input. Viewing and Editing Web Service Definitions 69 .

Load scope in a web service target definition is similar to the transformation scope in a transformation. you can configure the load scope on the Properties tab.Figure 6-6 shows the XML Editor view of the source definition shown in Figure 6-1 on page 59: Figure 6-6. the Integration Service generates a response when it receives all data in the transaction. You can configure the following load scope values: ♦ All input. XML Editor Views of Web Service Definition Editing Web Service Targets in a Mapping When you work with web service targets in a mapping. All groups in the target must receive data from the same transaction generator. The Integration Service ignores commits when the load scope is all input. ♦ 70 Chapter 6: Working with Mappings . Different groups in the target can receive data from different transaction generators. When you set the load scope to all input. Transaction. the Integration Service generates a response after it receives all incoming data. When you set the load scope to transaction.

Viewing and Editing Web Service Definitions 71 . see “Understanding Commit Points” in the Workflow Administration Guide. For more information about transformation scope.You must set the load scope to transaction if you enable real-time flush and set the realtime flush latency to a value greater than zero.

Contains no web service target definition. When you create a one-way mapping. A request-response service receives an incoming request from the web service client. and sends the response back to the web service client. 72 Chapter 6: Working with Mappings . For more information. Multiple mappings. Must have one instance of one web service source definition. often triggered by a real-time event through a web service request. you must propagate the message ID from the source to the target. transforms the data. You can create a workflow that contains a session for each mapping. but do not need to send back a response. A request-response service uses both a web service source and a web service target.Working with Web Service Mappings You can create web service mappings to process web service requests. When you create mappings for a request-response service. transform the data. Create multiple mappings if you need to stage data before sending a response back to the web service client. The mapping you create depends on the type of service that you want to run: ♦ Request-response service. Table 6-4 describes the web service source and target definitions you use based on the mapping type: Table 6-4. You can create one mapping or multiple mappings to process a request-response service. The Integration Service loads data to a target. Note: You can also create mappings with flat file or XML source or targets and run them in web service workflows. If you receive updates and notifications from a web service client. The web service source and target definitions you include in the mapping depend on the type of mapping you create. Can have multiple target fault definitions. and send the response back in a single session. Create one mapping that contains both the web service source and web service target definitions. A web service mapping can contain source or target definitions imported from a Web Services Description Language (WSDL) file containing a web service operation. you do not need to propagate the message ID to the target. A one-way mapping uses a web service client for the source. Required Sources and Targets in a Service Service Type Request-Response One-way Web Service Source Must have one instance of one web service source definition. you can create a one-way mapping. It can also contain flat file or XML source or target definitions. see “Running Sessions and Web Service Workflows” on page 90. Web Service Target Can have multiple instances of one target output definition. − One mapping. You receive an incoming request. − ♦ One-way service.

This mapping has a flat file target and an MQSeries target. you want to store all order information in a log and pass confirmation and order totals back to the customer. you receive message data that you need to process. You write all message data to both targets. For more information about the SQL transformation. an organization has an online order service. you can create multiple mappings to process the data. When you create a requestresponse mapping. You can use an SQL transformation to update a database or to retrieve multiple database rows midstream in a request-response mapping. You must make an asynchronous call to an external system through IBM MQSeries. you might get unexpected results. When a customer places an order. Figure 6-7 shows a sample request-response mapping: Figure 6-7. use source and target definitions imported from the same WSDL file. Create a request mapping with a web service source definition. but you need to stage the data first. If you do not import source and target definitions from the same WSDL file. You create the following mappings: 1. use source and target definitions imported from the same WSDL file. Request-Response Mapping Note: When you create request-response mappings. An external application receives messages from the MQSeries target. see “SQL Transformation” in the PowerCenterTransformation Guide. processes them. Working with Web Service Mappings 73 . When database errors occur in processing. When you create a request-response mapping. For example. you must propagate the message ID to the target. For example. and sends messages to another MQSeries queue. the SQL transformation receives the errors from the database and outputs the error text to the target. The SQL transformation can return multiple database rows to the target.Request-Response Mappings A request-response mapping uses a web service source and target. Staged Mappings If you want to run a request-response session. 2.

This mapping uses the flat file target as a source. You can join the MQSeries source with the flat file source to propagate the message ID to the web service target. It also uses the MQSeries queue with the processed data as a source. Create a response mapping with a web service target definition. 74 Chapter 6: Working with Mappings .3.

or PDF. You can attach document types such as XML. change the reader from Flat File Reader to Web Services Provider Reader for Flat Files. JPEG. This eliminates disk input and output and lets you receive the message as a SOAP request rather than wait to receive a file.Attachments The Web Services Provider supports attachments in web service client messages. GIF. you periodically use FTP to access a flat file containing messages from a web service application. you can receive and send attachments as part of the SOAP request. Attachments 75 . When you configure the session. The document type you can attach is based on the MIME content of the WSDL file. you can set up a SOAP call to receive messages through a service. You change the reader on the Mappings tab of the Edit Tasks dialog box: Change the reader to Web Services Provider Reader for Flat File. Requests with Attachments Based on the source and target definitions. Instead of using FTP. For example. Flat File or XML Mappings You can read from or write to web service clients using flat file or XML mappings.

Use the following rules and guidelines when you work with attachments: ♦ ♦ ♦ ♦ A request or response can contain zero or more attachments. If a definition in the mapping contains an attachment group. you must propagate the index to the target if you pass the attached request to the response. you can extract an XML document from an Oracle database and pass it to a web service client as an attachment to a response message. but you do not want to send or receive attachments. connect none of the ports in the group. ♦ ♦ 76 Chapter 6: Working with Mappings . you do not need to propagate the index to the target. Type of attachment. you must connect all ports in the attachment group. If you receive more than one attachment in a request.For example. Table 6-5 describes the attachment group ports in a web service definition: Table 6-5. You can view the MIME type for the attachment on the Attributes tab. Contains the attachment. To send or receive attachments. you might set up a client application to allow web service clients to send PDF attachments in a request. If you want to pass attachments through requests or responses. If you do not pass the attached request to the response. you must create a client application using a toolkit that supports MIME attachments. use a Sequence Generator transformation to generate a unique index for each attachment you send in a response. Unique identifier for each attachment in the message. Attachment Group Ports Port Name FK_Att_Name Att_Data_Name Att_Index_Name Att_Type_Name Description Generated foreign key pointing to PK_Message in the root group. and each message contains the same number of attachments. Or. If you receive messages from other sources.

79 Creating and Configuring a Service Session. 90 Troubleshooting. 92 77 . 78 Creating and Configuring a Web Service Workflow. 82 Running Sessions and Web Service Workflows.Chapter 7 Working With Web Service Workflows This chapter includes the following topics: ♦ ♦ ♦ ♦ ♦ Overview.

For more information about creating sessions. You configure the service within the workflow properties. you change the reader or writer type. 78 Chapter 7: Working With Web Service Workflows . use a mapping that contains web service. To create a web service workflow. see “Creating and Configuring a Web Services Hub” in the PowerCenter Administrator Guide. For more information about running sessions. For more information. If you use a flat file or XML source or target. or XML sources or targets. flat file. you must enable it for web services. see “Creating and Configuring a Web Service Workflow” on page 79. you must create and configure a Web Services Hub on the Administration Console and associate it with a repository. When you create a session to add to the workflow. Note: Before you can run a web service workflow.Overview You configure web service workflows in the Workflow Manager. For more information about creating web service workflows. see “Running Sessions and Web Service Workflows” on page 90. see “Creating and Configuring a Service Session” on page 82.

The workflow can write to multiple fault message targets. Creating and Configuring a Web Service Workflow 79 . Ensure that you specify an Integration Service when you create a web service workflow. You can configure service information and add service sessions to the workflow. Creating a Web Service Workflow When you enable the Web Services option for a workflow. you create a web service workflow.Creating and Configuring a Web Service Workflow To create a web service workflow. You can configure the web service to allow web service clients to run the workflow. configure a workflow to process a web service mapping and enable the Web Services option in the workflow properties. Creating a Web Service Workflow Browse list of Integration Services. Figure 7-1 shows how to enable the workflow for web services: Figure 7-1. Use the Browse button to the right of the Server field to select from a list of available Integration Services. Complete the following tasks when you create and configure a web service workflow: ♦ ♦ Create a web service workflow. Configure service. A service session is based on a service mapping. Each web service workflow must contain one web service input message source and at most one type of web service output message target. Create a web service workflow. Configure the web service.

Maximum number of seconds between the time the Web Services Hub receives a SOAP request and generates a SOAP response. Figure 7-2 shows the Config Service dialog box: Figure 7-2. For more information about authentication. The Web Services Hub authenticates the user based on the PowerCenter repository user name and password. For more information about timeout and flush latency. the web service client must log in to the repository through the Web Services Hub before it can start the service. Web Service Properties Option Service Name Description Name of the web service. You can choose to protect the service or make it public. Default is 60 seconds. If you do not protect the service. The Web Services Hub publishes this name when you check in the workflow and the service is visible. The default name is a concatenation of the repository name. and workflow name. Limits the service to repository users. When you protect the service. you configure a web service name. Set this to a value greater than the real-time flush latency in the reader properties. If the Web Services Hub is unable to generate a response. pmcmd. any web service client can start the service without authentication. Web Service Configuration Table 7-1 describes the properties you can configure for a web service: Table 7-1. timeout. or LMAPI. Set to 0 to disable the timeout period. and accessibility options. see “Web Services Hub Security” on page 20. the request fails. folder name. This name must be unique.Configuring the Web Service Workflow When you configure a web service workflow. Timeout Protected 80 Chapter 7: Working With Web Service Workflows . Any PowerCenter user who can run a workflow can run a protected web service workflow using the Workflow Manager. The user must have execute permissions on the folder containing the workflow. see “Understanding Service Timeout and Flush Latency” on page 90.

the Web Services Hub publishes the service and WSDL in a list of services available to web service clients. Runnable Creating and Configuring a Web Service Workflow 81 . If enabled. If you want a web service client to start the workflow. LMAPI. Allows a web service client to start the service. If disabled. you can start the workflow through the Workflow Manager.Table 7-1. If disabled. but cannot start the workflow. web service clients can still run a service by submitting a request with the service name and WSDL. Web Service Properties Option Visible Description Makes the web service visible in the Web Services Hub to web service clients. schedule the workflow to run on demand. If the service is not visible. a web service client can start the workflow or invoke the service while the workflow is running. or pmcmd. a web service client can invoke the service while the workflow is running. When you make the service visible. the Web Services Hub does not publish the service WSDL. However.

see “Configuring the Web Services Provider Writer” on page 85. When you create a service session. Recovery. 82 Chapter 7: Working With Web Service Workflows . see “Configuring Partitions” on page 88. such as idle time and message count. Partitioning. click the Mapping tab and select a source. When you enable recovery. edit a service session. In the session properties. ♦ ♦ ♦ ♦ Configuring the Web Services Provider Reader The properties you configure for a Web Services Provider reader depend on the source type in the mapping. see “Configuring the Web Services Provider Reader” on page 82. you configure caching information that the Integration Service uses to cache target data. For more information about commit behavior. see “Configuring Commit Type” on page 88. For more information about partitioning. When you configure the reader for a service session. see “Recovering Messages” on page 87. For more information about message recovery. the Integration Service stores messages in the cache directory. Configure the following properties when you configure a service session: ♦ Web Services Provider reader. Configure real-time sessions for a source-based commit. For more information about configuring the writer. you configure terminating conditions. To configure the Web Services Provider reader. you create a service session. use a service mapping or any flat file or XML mapping. You can also configure the output format for the target data. When you configure the writer for a service session. For more information about configuring the reader. You can configure partitioning properties based on the source and target type in the mapping. Commit type. Web Services Provider writer.Creating and Configuring a Service Session When you create a session in a web service workflow.

The number of messages the Integration Service reads before it ends the session. Message Count* Creating and Configuring a Service Session 83 . Default is 1.Web Service . Web Services Provider Reader Properties Table 7-2 describes the properties you configure for the different Web Services Provider readers: Table 7-2.Figure 7-3 shows the properties you configure for the Web Services Provider reader: Figure 7-3.Web Services Provider Reader Flat File . always configure the message count to 1. A value of -1 indicates an infinite number of messages. see “Running Sessions and Web Service Workflows” on page 90.Web Services Provider Reader XML File Description Amount of time in seconds the Integration Service waits to receive messages before it stops reading from the source and ends the session.Web Services Provider Reader Flat File .Web Services Provider Reader XML File . Web Services Provider Reader Properties Property Idle Time* Source Type . If the session uses flat file or XML sources.Web Service . For more information. Default is -1 and indicates an infinite period of time.

whichever comes first. see “Recovering Messages” on page 87.Web Services Provider Reader XML File Web Services Provider Reader XML File Treat Empty Content as Null *The session stops when it meets any of these conditions. Setting flush latency to milliseconds affects performance. empty content is not null. it consumes more system resources. Web Services Provider Reader Properties Property Reader Time Limit* Source Type . For example. Use the following rules and guidelines when you configure flush latency: 84 Chapter 7: Working With Web Service Workflows . Interpret the value set for Real-time Flush Latency as milliseconds rather than seconds. The Integration Service does not buffer messages longer than the flush latency period. For more information. When enabled. Set this property to a value less than the service timeout in the service properties. enable the Treat Realtime Flush as Milliseconds option in the Web Services Provider reader properties.Web Service . You can configure the Web Services Provider reader to commit messages to the target in milliseconds rather than seconds.Web Services Provider Reader XML File Web Service Description Amount of time in seconds that the Integration Service reads source messages from the Web Services Hub. Configuring Real-time Flush Latency Use flush latency to send response messages to the Web Services Hub after a specified number of seconds. If you enable recovery. The Web Services Hub might not send responses to the web service client if you configure flush latency greater than the service timeout. the Integration Service stops reading from the Web Services Hub after 10 seconds. Default is 0 (disabled). Send response messages to the Web Services Hub after a specified number of seconds. Default is disabled. Real-time Flush Latency Treat Real-time Flush as Milliseconds Web Service Recovery Cache Folder . Default is 0 and indicates an infinite period of time. the Integration Service stores messages in this location before processing them. if you specify 10 for a time limit. the Integration Service measures the flush latency period in seconds.Web Services Provider Reader Flat File . The Integration Service flushes messages to the Web Services Hub when it reaches the flush latency period or when the reader buffer is full. Default is $PMCacheDir/. see “Running Sessions and Web Service Workflows” on page 90. When the Integration Service sends messages to the Web Services Hub more frequently.Web Services Provider Reader Flat File .Table 7-2. if Treat Real-time Flush as Milliseconds is enabled. By default. send response messages to the Web Services Hub after a specified number of milliseconds. For information about message caching. When disabled. Or.Web Service . the Integration Service measures the flush latency in milliseconds. To commit messages in milliseconds. Treats empty strings as null values.

Configure the flush latency greater than the service timeout. The Integration Service ignores flush latency when you run a session in debug mode.♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ The session fails if a pipeline contains a Transaction Control transformation. click the Mapping tab and select a target. edit a service session. configure the Target Load Type to be Normal. Figure 7-4 shows the properties you configure for the Web Services Provider writer: Figure 7-4. Configuring the Web Services Provider Writer When you configure session properties for a Web Services Provider writer. Web Services Provider Writer Properties Creating and Configuring a Service Session 85 . If the mapping contains a relational target. The session fails if the load scope is set to all input. The session fails if a pipeline contains any transformation with the transformation scope set to all input. you configure cache size and cache directory. The session fails if a pipeline contains any transformation with Generate Transactions enabled. In the session properties. To configure the Web Services Provider writer. The session fails if a pipeline contains any transformation that has row transformation scope and receives input from multiple transaction control points.

Do not output a tag. . Default is No Tag. Select from the following options: . . The session fails when the error count exceeds the error threshold. Select from the following options: .Local Time.000 bytes. The Integration Service rejects rows with the same primary key that it processes after this row. Output just the tag. The Integration Service ignores orphan rows. Null Content Representation Web Services Provider Writer XML File Empty String Content Representation Web Services Provider Writer XML File Duplicate Group Row Handling Web Services Provider Writer XML File Orphan Row Handling Web Services Provider Writer XML File Cache Size .Ignore.000.No Tag.Web Services Provider Writer XML File . . Select from the following options: . . Select from the following datetime formats: .Last Row.Web Service . Greenwich Mean Time.First Row. Default is 10. The session fails when the error count exceeds the error threshold. The Integration Service passes the first duplicate row to the target. Select from the following options: .Table 7-3 describes the properties you configure for a Web Services Provider writer: Table 7-3. .Tag with Empty Content.Web Services Provider Writer XML File Cache Directory Directory for the target cache files. The Integration Service passes the first row to the target. Determines how the Integration Service handles duplicate group rows during a session. Determines how the Integration Service handles orphan rows during a session. The difference in hours between the Integration Service time zone and Greenwich Mean Time. Default is the $PMCacheDir server variable.Error.Error. . Rows that follow with duplicate primary keys increment the error count. Do not output a tag.Web Service . Determines how null content is represented in the target.UTC. Total size in bytes for the memory cache used by writer.No Tag. Output just the tag. Default is Error. The time according to the Integration Service server time zone. Default is Tag with Empty Content. 86 Chapter 7: Working With Web Service Workflows .Local Time with Time Zone. Determines how an empty string is represented in the target. The Integration Service passes the last duplicate row to the target. . Web Services Provider Writer Properties Property XML DateTime Format Target Type Web Services Provider Writer XML File Description Datetime format for the data passed to the service target.Tag with Empty Content.

you can recover read messages from a failed session. The total cache requirement is the sum of the data cache and index cache requirements for each target group. Recovering Messages When you enable recovery. The Integration Service stores all read messages in a cache before processing the messages for the target. When the session completes. use the target as a web service output message. the Integration Service does not cache the target messages. you still configure XML writer properties. but not as a fault message. It does not continue to receive messages from the Web Services Hub. The Integration Service reads and processes the messages from the cache. When you change the reader or writer type. Configuring the Cache The Integration Service caches row data while it generates a message. When you change the writer type for a flat file or an XML target.Use the following rules and guidelines when you change the writer type to a Web Services Provider writer: ♦ ♦ ♦ When you change the writer type for a flat file target. the Integration Service pages to disk. see the PowerCenter XML Guide. requests and responses pass as MIME attachments to the SOAP message. the Integration Service releases cache memory and deletes the cache files. For more information about XML writer properties. It includes a primary key and a foreign key index cache for each group and one data cache for all groups. The cache size is the sum of all the groups in the target instance. If the session fails. The Integration Service removes messages from the message cache files after the flush latency period expires. If the memory requirements exceed the cache size. SOAP Message Attachments The Web Services Hub sends attachments to the web service client when you change the reader or writer type in the session properties to Web Services Provider reader or writer. When you change the writer type for an XML target. It empties the cache files at the end of the session. you can recover the messages that the Integration Service could not process. Creating and Configuring a Service Session 87 . The Web Services Provider supports the following attachments: ♦ ♦ Flat file attachments XML attachments To send or receive attachments you must create a client application using a toolkit that supports MIME attachments.

It does not send messages based on the commit interval. the Integration Service creates a connection to the Web Services Hub based on the number of sources. the Integration Service creates six connections to the Web Services Hub. Configuring Target-Based Commit If you configure a target-based commit. if you configure three partitions in a session that contains one source and one target. see the PowerCenter Workflow Administration Guide.000 messages from the source and after each five second flush latency interval. Configuring Partitions When you set up multiple partitions in a session that contains web service source and target definitions. For example. Note: The Integration Service ignores target-based commits for XML targets. For example. The Integration Service uses a target connection to send a response to the Web Services Hub. The Integration Service sends messages to the Web Services Hub after receiving 1. Configuring Commit Type When you configure a real-time session. It sends messages to the Web Services Hub based on the flush latency interval. Configuring Source-Based Commit If you configure a source-based commit. If the session uses an XML target. and you configure the on commit property to ignore. the Web Services Hub uses a source connection to pass a request to the Integration Service. the Integration Service uses a source-based commit. see the PowerCenter Workflow Administration Guide. If you configure a flush latency interval. the Integration Service runs the session using sourcebased commit. For more information about recovery. the Integration Service sends messages to the Web Services Hub when it reads 1. the Integration Service sends messages to the Web Services Hub based on the commit interval and the flush latency interval. When you run a multi-partitioned session. The Integration Service sends messages to the Web Services Hub based on the commit type that you choose. For more information about commit types and intervals. It does not issue a commit when it reaches the flush latency interval. and partitions in the session. three for each source and target. you use five seconds as the flush latency interval and you set the source-based commit interval to 1. the interval begins when the Integration Service receives the first message from the Web Services Hub.Note: The Integration Service ignores the reader time limit. Note: The Integration Service ignores source-based commits for XML sources. idle time.000 messages. 88 Chapter 7: Working With Web Service Workflows .000 messages. targets. The Web Services Hub and the Integration Service use the source and target connections in a round-robin fashion. and message count when it reads messages from the cache.

you can configure pass-through partitioning for web service sources and targets. see the PowerCenter Workflow Administration Guide.When you configure partitions for a service mapping. For information about configuring partitioning for XML sources or targets or flat file sources or targets. Creating and Configuring a Service Session 89 .

Include one session in a workflow when you change the reader or writer type to Web Services Provider. the Web Services Hub must generate the response message in the timeout period configured in the service properties. The Web Services Hub generates a SOAP message response and passes it back to the web service client. a client application sends a request to the Web Services Hub as an attachment to the SOAP message. Working with XML and Flat File Sessions You can also create a web service session based on a mapping that contains XML or flat file sources and targets. 90 Chapter 7: Working With Web Service Workflows .Running Sessions and Web Service Workflows When the Web Services Hub receives a SOAP message request to run a web service based on a mapping containing web service sources or targets. you must create a client application using a toolkit that supports MIME attachments. If the web service workflow is configured with an XML or flat file writer. The Integration Service generates an internal message ID for each request and automatically correlates the incoming request with the outgoing response. When the Web Services Hub reaches the timeout period. To run a web service workflow with an XML or flat file reader. For information about running services with flat file or XML mappings. If the request is request-reply. which processes the attachment. To configure a web service session. Understanding Service Timeout and Flush Latency When you run a service session. see “Working with Web Service Mappings” on page 72. When you change the reader or writer type in the session properties. the Integration Service starts a session instance for each request. it generates a message ID and passes the request to the Integration Service. it passes the response to the Web Services Hub. it sends a fault message to the web service client and drops the connection. change the reader or writer in the session properties to receive or send messages to the web service client. The Web Services Hub passes the SOAP message with the attachment to the Integration Service. The Web Services Hub attaches the response to a SOAP message and sends it back to the web service client. Use the following rules and guidelines when you configure a request-response session with flat file or XML source or targets: ♦ ♦ ♦ Configure the message count to 1 in the reader properties. After the Integration Service runs the web service request. the Integration Service generates a response and passes the response to the Web Services Hub.

If the Web Services Hub reaches the timeout period before the reader buffer fills. the Web Services Hub drops the response and writes the following message to the Web Services Hub log: WSH_95571 Unable to find invocation for message id <message ID>. you want the session to end after the Integration Service processes 10 messages. and you disable flush latency to flush all the messages at the end of the session. You set the message count to 10. if you disable flush latency.If the Integration Service sends a response message to the Web Services Hub after the timeout period. Running Sessions and Web Service Workflows 91 . you set flush latency to 90 and the service timeout to 60. To help ensure that the Web Services Hub does not reach the timeout period. The following situations describe some session configurations that can result in dropped response messages: ♦ You configure flush latency to be greater than the service timeout period. ♦ You disable flush latency and configure terminating conditions to infinite values. Discarding the response. The Integration Service sends response messages when the buffer fills. For example. the Web Services Hub drops the connection to the web service client and cannot send response messages received from the Integration Service. the Integration Service sends a response message to the Web Services Hub when the session reaches one of the terminating conditions or when the reader buffer fills. For example. The Web Services Hub reaches the timeout period and drops the connection to the web service client before the Integration Service flushes any response message to the Web Services Hub. ♦ You disable flush latency and use message count as the terminating condition. If you set the terminating conditions to infinite values. For example. If the Integration Service does not process all 10 messages in the service timeout period. it drops the connection to the web service client and cannot send response messages received from the Integration Service. the session runs continuously and never ends. set the flush latency value to less than the service timeout.

but became invalid when I started the Web Services Hub. user name. When you save the workflow. I updated the source WSDL file and reimported my source and target definitions. it validates each web service workflow according to its own validation rules in addition to those of the Workflow Manager. If you want to debug a service session.Troubleshooting I am trying to run the Debugger against a service session. 92 Chapter 7: Working With Web Service Workflows . Changes to a mapping are not dynamically reflected in the Web Services Hub. see “Web Services Hub Security” on page 20. and I get the following message in the session log: WSP_34030 Must have workflow context to run this session. The Web Services Hub validates web service workflows according to the following rules: ♦ ♦ ♦ ♦ ♦ There can be only one web service source definition in the mapping. There can be no more than one web service target definition in the mapping. you must run the Debugger against the web service workflow. you need to edit and save the workflow. A repository must be associated with the Web Services Hub. See the Validate tab in the Workflow Manager for Web Services Hub error messages. but the service WSDL is not updated. After you start the Web Services Hub. the Web Services Hub generates WSDL to run the service. but the session fails. The workflow is valid. the Web Services Hub treats the service as a one-way service. you must ensure that the repository user name and password is correctly set in the HTTP header. and password. and correct the problem indicated by the error message. A server must be associated with the workflow. My web service workflow was valid in the Workflow Manager. You cannot run the Debugger against a service mapping or a reusable session without the workflow. To generate WSDL to reflect the mapping changes. When you invoke a protected web service workflow. For more information. If there are no web service target definitions in the mapping. I am not able to start a protected web service workflow even though I am sending the proper repository name.

See “Creating a Web Service Workflow” on page 79. You must assign an Integration Service when you create a web service workflow.I received the following error while trying to fetch a workflow on a Web Services Hub: ERROR Thu Mar 23 08:45:51 2006 http-52962-Processor4 [WSH_501] Service Workflow [wf_amazon_actor_search] in Repository [zeus_RS1_sun920] and Folder [WSTest] is invalid. This workflow cannot be accessed using WSH. ERROR Thu Mar 23 08:45:50 2006 http-52962-Processor4 [WSH_735] DI Service is not specified for workflow [wf_amazon_actor_search]. Troubleshooting 93 .

94 Chapter 7: Working With Web Service Workflows .

109 95 . 96 Using the Batch Web Services Sample Programs.Appendix A Web Service Sample Client Applications This appendix includes the following topics: ♦ ♦ ♦ ♦ ♦ Overview. 99 Using the Realtime Web Services Sample Programs. 106 Examples for Realtime Web Services. 97 Examples for Batch Web Services.

configure. 96 Appendix A: Web Service Sample Client Applications . The web services sample programs are installed in the following directory: /<PowerCenterInstallDir>/server/samples/ Before running the web services sample programs. The C# sample programs use proxy classes generated for the . The sample programs work with the PowerCenter Batch web services and Realtime web services. configuring. Use the PowerCenter Administration Console to create. The Java sample programs use proxy classes generated by the Axis Web Services Toolkit. or enabling a Web Services Hub.NET platform with the wsdl. create and enable a Web Services Hub on the PowerCenter domain.exe tool. The examples include programs in Java and C#. For more information about creating. see the PowerCenter Administrator Guide. and enable a Web Services Hub.Overview Informatica ships sample client application programs that demonstrate how to use PowerCenter web services.

This directory also contains the batch and script files to compile and run the sample programs. The name of the directory indicates the Batch web services operations demonstrated in the sample program. The PowerCenter domain must contain a Web Services Hub associated with a Repository Service. For example. The source file for each Batch web services sample program can be found in a separate directory. This directory also contains the batch files to compile the proxy classes. The name of the directory indicates the Batch web services operations demonstrated in the sample program. Contains the C# sample programs. Each sample program directory also contains the batch files to compile the sample programs. the sample program in the /multiservers directory demonstrates logging in to more than one Integration Service associated with a Repository Service. Contains a sample keystore for running client applications in secure mode (HTTPS). Using the Batch Web Services Sample Programs 97 . Contains the proxy classes for the Java sample programs.Using the Batch Web Services Sample Programs Before you use the Batch web services sample programs. Contains the proxy classes for the C# sample programs. PowerCenter must be installed and running. /samples/axis/proxyclasses /samples/dotnet/csharp/<SampleProgramDirectory> /samples/dotnet/csharp/proxyclasses Compiling the Batch Web Services Sample Programs The steps to compile the Batch web services sample programs are determined by the programming language. For example. The Batch web services sample programs are installed in the following directory: /<PowerCenterInstallDir>/server/samples/BatchWebServices The /BatchWebServices directory contains the following files and directories: Directory /lib /ssl /samples/axis/<SampleProgramDirectory> Description Contains the library files needed to run the sample programs. the sample program in the /multiservers directory demonstrates logging in to more than one Integration Service associated with a Repository Service. Contains the Java sample programs. The source file for each Batch web services sample program can be found in a separate directory.

For more information about the sample programs and parameters.bat (Windows) or CompileSample1. see “Examples for Batch Web Services” on page 99. complete the following steps: 1. go to the sample program directory and run the compile batch or script file.sh (UNIX). Running the Batch Web Services Sample Programs The Web Services Hub must be running when you run a client application.java program in the /axis/multithreaded directory. Running the Sample Java Programs To run the sample Java programs. Compiling the Sample C# Programs To compile the sample C# programs. For example. Running the Sample C# Programs To run the sample C# programs. 98 Appendix A: Web Service Sample Client Applications . The compile process creates a dynamic link library named WebServicesHub. Run the batch or script file that matches the name of the sample program you want to compile. go to the sample program directory and run the executable file for the sample program you want to run. 2. to run the Sample1.dll in the /dotnet/csharp/bin directory. Go to the /dotnet/csharp/proxyclasses directory and run the compile. go to the directory and run RunSample1.bat.java program in the /axis/multithreaded directory.class file for the sample program in the same directory. The compile process creates a .Compiling the Sample Java Programs To compile the sample Java programs. The compile process creates an executable file with the name of the compiled program file and a . Go to the sample program directory and run the compile batch file that matches the name of the sample program you want to compile. to compile Sample1. Run the sample programs with the required parameters. For example.exe extension. go to the sample program directory and run the batch or script file that matches the name of the sample program you want to run. The steps to run the Batch web services sample programs are determined by the programming language. go to the directory and run CompileSample1.sh (UNIX).bat (Windows) or RunSample1.

exe The following table describes the parameters you use to run the Sample1 application: Parameter Security mode Description Indicates the security mode in which to run the application. and tasks in the repository and the Integration Services registered with the repository.sh File to run C# sample: Sample1.bat or RunSample1.Examples for Batch Web Services The sample programs for Java and C# are in located in the following directories: Java: /WebServices/BatchWebServices/samples/axis/<SampleProgramDirectory> C#: /WebServices/BatchWebServices/samples/dotnet/csharp/<SampleProgramDirectory> The same set of sample programs are shipped for Java and C#. workflows. Name of the Repository Service. Host name Port number Repository domain name Repository name User Name Password Examples for Batch Web Services 99 . The examples do not support secure mode (HTTPS). Sample1. Password for the user name to log in to the repository. This section describes the Java and C# sample programs.java and Sample1. Port number on which the Web Services Hub is running.cs This sample program logs in to a repository and then uses Metadata web services operations to get information about folders. Browsing The sample programs in the /browsing directory demonstrate the use of web services operations that get information from the repository. Name of the domain that contains the Repository Service. User name to log in to the repository.bat or CompileSample1. Pass the argument -ns to run the application in unsecure mode (HTTP). Name or IP address of the machine on which the Web Services Hub is running. Each platform has the same directories and each directory contains sample programs that demonstrate a different usage for web services. Directory: /browsing File to compile Java and C# samples: CompileSample1.sh File to run Java sample: RunSample1.

Name of the Repository Service.java and Sample1.cs This sample program logs in to a repository and connects to the associated Integration Service. Directory: /browsing File to compile Java and C# samples: CompileSample2. It uses Metadata and Data Integration web services operations to access a folder in the repository and start and stop the first workflow found in the folder. Port number on which the Web Services Hub is running.bat or RunSample1. Pass the argument -ns to run the application in unsecure mode (HTTP).cs This sample program logs in to a repository and connects to the associated Integration Service.bat or RunSample2.exe The following table describes the parameters you use to run the Sample2 application: Parameter Security mode Description Indicates the security mode in which to run the application.sh File to run Java sample: RunSample1. Name or IP address of the machine on which the Web Services Hub is running. Name of the domain that contains the Repository Service. User name to log in to the repository.Sample2.exe 100 Appendix A: Web Service Sample Client Applications .sh File to run Java sample: RunSample2. Name of the Integration Service.sh File to run C# sample: Sample2. Directory: /dataintegration File to compile Java and C# samples: CompileSample1.bat or CompileSample1.java and Sample2. Host name Port number Repository domain name Repository name User Name Password Integration Service domain name Integration Service name Data Integration The sample program in the /dataintegration directory demonstrates the use of the workflow and task operations available in the Data Integration web services. It uses Data Integration web services operations to start and stop a workflow running on the Integration Service. Sample1. The examples do not support secure mode (HTTPS). Password for the user name to log in to the repository Name of the domain that contains the Integration Service.bat or CompileSample2.sh File to run C# sample: Sample1.

The following table describes the parameters you use to run the Sample1 application: Parameter Security mode Description Indicates the security mode in which to run the application. It uses Data Integration web services operations to fetch workflow and session logs. User name to log in to the repository. Name of a folder in the repository. The examples do not support secure mode (HTTPS). Name of the Repository Service. Name of the Integration Service. Name of the domain that contains the Repository Service.txt. Name of the domain that contains the Integration Service.bat or CompileSample1.txt. Name or IP address of the machine on which the Web Services Hub is running. Host name Port number Repository domain name Repository name User Name Password Integration Service domain name Integration Service name Folder Name Workflow name Task name Logs The sample program in the /logfetching directory demonstrates the use of Data Integration web services operations to access the workflow and session logs. Sample1.bat or RunSample1. Name of the task to start. It stores the workflow logs in a text file named WorkflowLog.exe Examples for Batch Web Services 101 .cs This sample program logs in to a repository and connects to the associated Integration Service.sh File to run C# sample: Sample1.java and Sample1. It stores the session logs in a text file named SessionLog.sh File to run Java sample: RunSample1. Directory: /logfetching File to compile Java and C# samples: CompileSample1. Name of the workflow that contains the session. Password for the user name to log in to the repository. Port number on which the Web Services Hub is running. Pass the argument -ns to run the application in unsecure mode (HTTP).

Pass the argument -ns to run the application in unsecure mode (HTTP). Name of the Integration Service.sh File to run Java sample: RunSample1.cs This sample program logs in to a repository and connects to two of the Integration Services associated with the repository. Port number on which the Web Services Hub is running.bat or RunSample1. User name to log in to the repository.exe 102 Appendix A: Web Service Sample Client Applications . Directory: /multiservers File to compile Java and C# samples: CompileSample1.bat or CompileSample1. Name of the Repository Service. Sample1. Note: As the example shows. Password for the user name to log in to the repository.sh File to run C# sample: Sample1. Host name Port number Repository domain name Repository name User Name Password Integration Service domain name Integration Service name Folder Name Workflow name Task name Multiple Integration Services The sample program in the /multiservers directory demonstrates logging in to more than one Integration Service associated with a Repository Service. Name of the workflow that contains the task. Name of a task in the workflow. The examples do not support secure mode (HTTPS). You can use the same technique to simultaneously access any number of Integration Services associated with a Repository Service. Name of the domain that contains the Integration Service. Name of the domain that contains the Repository Service. It uses Data Integration web services operations to get the properties of both Integration Services.The following table describes the parameters you use to run the Sample1 application: Parameter Security mode Description Indicates the security mode in which to run the application. Name of the folder in the repository that contains the workflow. Create one proxy object for each Integration Service that you want to log in to.java and Sample1. Name or IP address of the machine on which the Web Services Hub is running. you must create two proxy objects for the Data Integration web services to log in to two Integration Services.

Name or IP address of the machine on which the Web Services Hub is running. Directory: /multithreaded File to compile Java and C# samples: CompileSample1. Sample1. it starts a workflow on the Integration Service and waits until it completes. the application can continue to perform other operations on other threads. Name of the Repository Service. it gets the properties of the Integration Service. Password for the user name to log in to the repository. For example.The following table describes the parameters you use to run the Sample1 application: Parameter Security mode Description Indicates the security mode in which to run the application.sh File to run Java sample: RunSample1.exe Examples for Batch Web Services 103 .bat or CompileSample1.sh File to run C# sample: Sample1. Port number on which the Web Services Hub is running.java and Sample1. On the other thread.bat or RunSample1. You can use the same technique to enable a client application to continue running and calling other operations as it waits for an operation to complete. Name of the domain that contains the Integration Service. Name of the an Integration Service associated with the repository. Name of a second Integration Service associated with the repository. Name of the domain that contains the Repository Service. if a client application calls the WaitTillWorkflowComplete operation on thread. Host name Port number Repository domain name Repository name User Name Password Integration Service domain name Integration Service name 1 Integration Service name 2 Multithreading The sample program in the /multithreaded directory demonstrates the use of proxy objects in multiple threads to perform operations in parallel. On one thread. It starts two threads and passes the Data Integration web service proxy object to both threads. The examples do not support secure mode (HTTPS).cs This sample program logs in to a repository and connects to the associated Integration Service. Pass the argument -ns to run the application in unsecure mode (HTTP). you can use a Metadata web services proxy object in multiple threads. Similarly. User name to log in to the repository.

It uses Metadata and Data Integration web services operations to get the information about the Repository Service and Integration Service.exe 104 Appendix A: Web Service Sample Client Applications . Name of a workflow in the repository. Name of the Repository Service. Name of the domain that contains the Integration Service. Host name Port number Repository domain name Repository name User Name Password Integration Service domain name Integration Service name Folder Name Workflow name Web Services Hub Test The sample program in the /testsamples directory demonstrates how to verify that a valid Web Services Hub is running in a PowerCenter domain. Port number on which the Web Services Hub is running. Password for the user name to log in to the repository.bat or CompileSample1.cs This sample program logs in to a repository and connects to the associated Integration Service. The examples do not support secure mode (HTTPS). Sample1.sh File to run C# sample: Sample1.The following table describes the parameters you use to run the Sample1 application: Parameter Security mode Description Indicates the security mode in which to run the application.java and Sample1. Pass the argument -ns to run the application in unsecure mode (HTTP). User name to log in to the repository. Name or IP address of the machine on which the Web Services Hub is running. Name of the folder in the repository that contains the workflow. Directory: /testsamples File to compile Java and C# samples: CompileSample1.sh File to run Java sample: RunSample1. Name of the Integration Service.bat or RunSample1. Name of the domain that contains the Repository Service.

Host name Port number Repository domain name Repository name User Name Password Integration Service domain name Integration Service name Examples for Batch Web Services 105 . The examples do not support secure mode (HTTPS). Name of the Integration Service. Pass the argument -ns to run the application in unsecure mode (HTTP). Name of the domain that contains the Repository Service. Name of the domain that contains the Integration Service. Name of the Repository Service. Port number on which the Web Services Hub is running.The following table describes the parameters you use to run the Sample1 application: Parameter Security mode Description Indicates the security mode in which to run the application. Password for the user name to log in to the repository. User name to log in to the repository. Name or IP address of the machine on which the Web Services Hub is running.

106 Appendix A: Web Service Sample Client Applications . Import the mappings and web service workflows into the repository associated with the Web Services Hub. Run the SQL scripts to create tables in an Oracle database. The /RealTimeWebServices directory contains the following files and directories: Directory /ImportXML Description Contains the web service workflows called by the Realtime web services sample programs. The PowerCenter domain must contain a Web Services Hub associated with a Repository Service. Contains the library files needed to run the sample programs. The Realtime web services sample programs are installed in the following directory: /<PowerCenterInstallDir>/server/samples/RealTimeWebServices The Realtime web services examples include the files to create the lookup tables and web service workflows to be used by the sample programs. 5. 4. Create the database tables that the sample programs will use as lookup tables. Each directory contains the batch and script files to compile and run the sample program and subfolders for the proxy classes used by the sample program. Contains the SQL scripts for creating the lookup tables used by the web service workflows called by the sample programs. import the XML files into a repository and set up the database connections for the SQL and Lookup transformations in the web service workflows. you must complete the following steps: 1. Contains the Java sample programs. Compile the Realtime web services sample programs. To use the sample programs. /lib /LookupSQL /samples/axis/<SampleProgramDirectory> To use the Realtime web services examples. Set up the database connection settings in the sample workflows. 2. PowerCenter must be installed and running.Using the Realtime Web Services Sample Programs Before you use the Realtime web services sample programs. The source file for each Realtime web services sample program can be found in a separate directory. 3. Run the Realtime web services sample programs.

Step 1. Create the Lookup Tables
Use the SQL script files shipped with the Batch web services sample programs to create the lookup tables on an Oracle database. The SQL scripts include the following files:
Script File Name CustomerLookup_SINGLEROW.sql CustomerLookup_MULTIPLEROW.sql Description Creates a customer table named SINGLEROWLOOKUP for use with the sample program for single row lookup. Creates a customer table named MULTIPLEROWLOOKUP for use with the sample program for multiple row lookup.

Note the database connection settings. After you import the sample workflows into a repository, you need to modify the database connection settings of the transformations in the workflows to match your database settings.

Step 2. Import the Mappings and Workflows
The Realtime web services sample programs run the sample web service workflows. To use the sample programs, import the sample mappings and workflows into the repository associated with the Web Services Hub. The XML files include the following files:
Script File Name wf_CustomerLookup_SINGLEROW.XML wf_CustomerLookup_MULTIPLEROW.XML Description Contains a web service workflow with a Lookup transformation for use with the sample program for single row lookup. Contains a web service workflow with an SQL transformation for use with the sample program for multiple row lookup.

For more information about importing metadata objects into a repository, see the PowerCenter Repository Guide.

Step 3. Modify the Database Connection Settings
The SQL and Lookup transformations in the imported workflows must be able to connect to the sample database tables created in “Step 1. Create the Lookup Tables” on page 107. The import process does not import the connection object for the transformations in the sample workflows. You must create a connection object and use it in the session. To update the connection settings for the transformations, complete the following steps: 1. 2. In the PowerCenter Workflow Manager, create a connection object to connect to the sample tables. In the PowerCenter Workflow Manager edit the s_m_CustomerLookup_SINGLEROW session and update the relational connection information in the lkp_Customer transformation.
Using the Realtime Web Services Sample Programs 107

Set the relational connection to the name of the new connection object. Save the session with the new settings. 3. In the PowerCenter Workflow Manager, edit the s_m_CustomerLookup_MULTIPLEROW session and update the connection information in the sql_Customer transformation. Set the relational connection to the name of your connection object. Save the session with the new settings.

Step 4. Compile the Realtime Web Service Sample Programs
To compile the sample Java programs, go to the sample program directory and run the compile batch or script file. Run the batch or script file that matches the name of the sample program you want to compile. For example, to compile Sample.java program in the /axis/CustomerLookup_SINGLEROW directory, go to the directory and run CompileSample.bat (Windows) or CompileSample.sh (UNIX). The compile process creates a .class file for the sample program in the same directory.

Step 5. Run the Realtime Web Service Sample Programs
The Web Services Hub must be running when you run a sample program. To run the sample Java programs, go to the sample program directory and run the batch or script file for the sample program you want to run. For example, to run the Sample.java program in the /axis/CustomerLookup_MULTIPLEROW directory, go to the directory and run RunSample.bat (Windows) or RunSample.sh (UNIX). Run the sample program with the required parameters. For more information on the sample programs and parameters, see “Examples for Realtime Web Services” on page 109.

108

Appendix A: Web Service Sample Client Applications

Examples for Realtime Web Services
This section describes the sample programs for Realtime web services. Each directory contains a sample program that demonstrates a different way to use Realtime web services.

Multiple Row Lookup
The sample program in the /CustomerLookup_MULTIPLEROW directory demonstrates how a client application can run a web service workflow to perform a lookup and handle a response with multiple rows of data.

Sample.java
This sample program calls a PowerCenter web service workflow that looks up a customer ID in a database and prints out the customer information. The workflow uses an SQL transformation to retrieve multiple rows from the database. Directory: /CustomerLookup_MULTIPLEROW File to compile Java sample: CompileSample.bat or CompileSample.sh File to run Java sample: RunSample.bat or RunSample.sh The following table describes the parameters you use to run the Sample application:
Parameter Customer ID EndPoint URL Description ID for the customer to look up. Pass the customer ID as an integer. URL where the web service can be found. Pass the endpoint URL as a string. The endpoint URL for a realtime web service can be found in the soap:address location element of the service element in the web service WSDL. The default endpoint URL for the sample web service is http://<WSHHostName>:<WSHPort>/wsh/services/ts/CustomerLookup_MULTIPLEROW. If the Web Services Hub is running on HTTPS, the endpoint URL starts with HTTPS.

Single Row Lookup
The sample program in the /CustomerLookup_SINGLEROW directory demonstrates how a client application can run a web service workflow to perform a lookup and handle a response with single row of data.

Sample.java
This sample program calls a PowerCenter web service workflow that looks up a customer ID in a database and prints out the customer information. The mapping uses a Lookup transformation to retrieve one row from the database. Directory: /CustomerLookup_SINGLEROW File to compile Java samples: CompileSample.bat or CompileSample.sh File to run Java sample: RunSample.bat or RunSample.sh
Examples for Realtime Web Services 109

110 Appendix A: Web Service Sample Client Applications . URL where the web service can be found. the endpoint URL starts with HTTPS. The default endpoint URL for the sample web service is http://<WSHHostName>:<WSHPort>/wsh/services/ts/CustomerLookup_SINGLEROW. If the Web Services Hub is running on HTTPS. Pass the customer ID as an integer.The following table describes the parameters you use to run the Sample application: Parameter Customer ID EndPoint URL Description ID for the customer to look up. Pass the endpoint URL as a string. The endpoint URL for a realtime web service can be found in the soap:address location element of the service element in the Web service WSDL.

Appendix B Web Service Operations in 8. 113 Data Integration Web Services.1. 114 111 .1 This appendix includes the following topics: ♦ ♦ ♦ Overview. 112 Metadata Web Services.

1 can optionally take the same parameters as operations in version 8.1. In addition.1.4 with no changes in version 8.4. operations in version 8. 112 Appendix B: Web Service Operations in 8. the Web Services Hub supports the web service operations available in version 7.1.1.1.1 take the same required parameters as operations in version 7.1. Most of these operations are also available in version 8. add the repository authentication operations (Login and Logout) to the client application.1.1.Overview Effective in version 8.1.1.1. You can run client applications written for version 7.1.4. Operations in version 8.1. To run client applications written for version 8.1 .

1.4 Yes Yes Yes Yes Yes Yes Yes Available in 8.1 Yes Yes Yes Yes Yes No No Metadata Web Services 113 .Metadata Web Services The Metadata web services provide the following operations: Operation getAllDIServers getAllFolders getAllRepositories getAllTaskInstances getAllWorkflows Login Logout Available in 7.

1 .1.1 No Yes No Yes Yes Yes Yes Yes Yes No Yes Yes No Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes The following operations are not available: ♦ ♦ resumeTask stopDIServer 114 Appendix B: Web Service Operations in 8.1.Data Integration Web Services The Data Integration web services provide the following operations: Operation deinitializeDIServerConnection getDIServerProperties getNextLogSegment getSessionLog getSessionPerformanceData getSessionStatistics getTaskDetails getWorkflowDetails getWorkflowLog initializeDIServerConnection monitorDIServer pingDIServer recoverWorkflow resumeWorkflow (Deprecated) scheduleWorkflow startSessionLogFetch startTask startWorkflow startWorkflowFromTask startWorkflowLogFetch stopTask stopWorkflow unscheduleWorkflow waitTillTaskComplete waitTillWorkflowComplete Available in 7.4 Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Available in 8.

NET 46 error handling in Axis 43 generating proxy classes 37.Index A attachments flat file mappings 75 mapping 75 SOAP messages 87 XML mappings 75 authentication Web Services Hub security 20 authorization Web Services Hub security 20 B Batch web services compiling sample programs 97 Data Integration web service operations 29 description 8. 49 operation calls in . 26 downloading WSDL 15 Metadata web service operations 27 running sample programs 98 viewing published services 15 C caching configuring for web services 87 clean up Axis client application 43 web service client application 39 client applications clean up in Axis 43 creating request objects for Realtime web services 51 developing 37 error handling 39.NET 45 session maintenance in Axis 42 115 .NET 44 initialization in Axis 40 initializing objects for Realtime web services 51 operation calls 38. 48 generating proxy classes for Realtime web services 51 generating proxy classes in . 48 initialization in . 15.NET 45 operation calls in Axis 42 proxy objects 39 Realtime web services 50 resource clean up 39 sending request objects for Realtime web services 52 session maintenance 38 session maintenance in . 49 error handling in .NET 44 generating proxy classes in Axis 40 initialization 37.

1.1 114 G generating names XML columns 63 getAllDIServers Metadata web service operation 27 getAllFolders Metadata web service operation 27 getAllTaskInstances Metadata web service operation 28 getAllWorkflows Metadata web service operation 28 getDIServerProperties Data Integration web service operation 30 116 Index .1 114 operations not available in version 8. 49 F fault body SOAP 23 fault detail SOAP 23 fault handling SOAP 22 fault header SOAP 22 faultcode SOAP 23 faultstring SOAP 23 flat file sessions guidelines 90 flat files mappings 75 flush latency description 90 D Data Integration web service operations deinitializeDIServerConnection 30 getDIServerProperties 30 getNextLogSegment 30 getSessionLog 31 getSessionPerformanceData 31 getSessionStatistics 31 getTaskDetails 31 getWorkflowDetails 31 getWorkflowLog 32 monitorDIServer 32 pingDIServer 32 recoverWorkflow 33 resumeWorkflow 33 scheduleWorkflow 33 startSessionLogFetch 33 startTask 33 startWorkflow 33 startWorkflowFromTask 33 startWorkflowLogFetch 34 stopTask 34 stopWorkflow 34 unscheduleWorkflow 34 waitTillTaskComplete 34 waitTillWorkflowComplete 34 Data Integration web services description 29 operations available in version 8.1.NET client application 46 Axis client application 43 client application 39.writing in .NET using C# 44 writing in Java using Axis 40 client proxy classes See proxy classes commit type configuring 88 configuring cache for web services 87 commit type 88 reader properties 82 writer properties 85 console Web Services Hub 15 Create entity relationships XML view option 61 Create hierarchical relationships XML view option 61 deinitializeDIServerConnection Data Integration web service operation 30 deprecated operations resumeWorkflow 33 E encryption Web Services Hub security 20 error handling .

NET client application 45 Axis client application 42 web service client applications 38.NET client application 44 Axis client application 40 client application 37. 27 operations available in version 8.1 113 monitorDIServer Data Integration web service operation 32 I importing web service source definitions 59 web service target definitions 60 importing source definitions steps 61 importing target definitions steps 61 infinite precision overriding 63 initialization . 48 initializing Realtime web services client applications 51 installation web services sample programs 96 O one-way mappings description 72 operation calls .1.getNextLogSegment Data Integration web service operation getSessionLog Data Integration web service operation getSessionPerformanceData Data Integration web service operation getSessionStatistics Data Integration web service operation getTaskDetails Data Integration web service operation getWorkflowDetails Data Integration web service operation getWorkflowLog Data Integration web service operation 30 31 31 31 31 31 32 M mappings attachment 75 flat file 75 one-way 72 request-response 72 staged 73 XML 75 message IDs propagating 73 messages recovering 87 metadata extensions web service definitions 69 Metadata web service operations getAllDIServers 27 getAllFolders 27 getAllTaskInstances 28 getAllWorkflows 28 Login 28 Logout 28 Metadata web services description 8. 49 operations Data Integration web services 29 Metadata web services 27 L load scope configuring 70 log files configuring 21 viewing 21 Login Metadata web service operation 28 Logout Metadata web service operation 28 logs Web Services Hub 21 P parameter arrays defining in web service application 53 guidelines for web service clients 56 in web service application 53 parameters using a parameter array 53 partitioning web service sessions 88 Index 117 .

50 running sample programs 108 using the Designer 58 viewing published services 16 recoverWorkflow Data Integration web service operation 33 recovery messages 87 Recovery Cache Folder real-time session property 84 118 Index .pingDIServer Data Integration web service operation 32 pipeline partitioning web service sessions 88 precision overriding infinite length 63 protected service workflow property 80 proxy classes generating 37.NET client application 45 Axis client application 42 client application 38 session properties Reader Time Limit 84 Real-time Flush Latency 84 sessions guidelines for XML and flat file sessions 90 R reader properties configuring 82 Reader Time Limit description 84 Real-time Flush Latency configuring 84 description 84 real-time session property 84 real-time sessions configuring source-based commit 88 configuring target-based commit 88 Real-time Flush Latency property 84 Recovery Cache Folder property 84 Realtime web services compiling sample programs 108 creating web service 50 description 9. 16 request objects creating in Realtime web services client applications 51 sending from Realtime web services client applications 52 request-response mapping using a SQL transformation 73 request-response mappings description 72 resumeWorkflow Data Integration web service operation 33 deprecated operation 33 runnable service workflow property 81 S sample programs batch web services examples 99 compiling Batch web services examples 97 compiling Realtime web services examples 108 realtime web services examples 109 running Batch web services examples 98 running Realtime web services examples 108 web services 96 scheduleWorkflow Data Integration web service operation 33 security authentication 20 authorization 20 encryption 20 service configuring 79 service timeout description 90 service workflow configuring 79 creating 79 service workflows troubleshooting 92 session ID Metadata proxy objects 39 session maintenance . 16 developing client application 50 downloading WSDL 16. 48 generating for Realtime web services 51 generating in .NET 44 generating in Axis 40 proxy objects client application 39 session ID 39 published services viewing 15.

Simple Object Access Protocol See SOAP SOAP body 4 description 4 envelope 4 fault body 23 fault detail 23 fault handling 22 fault header 22 fault schema 23 faultcode 23 faultstring 23 guidelines for parameter arrays 56 header 4 message attachments 87 web service component 2 source definitions web services 59 source-based commit configuring 88 SQL transformation request-response mapping 73 staged mapping description 73 startSessionLogFetch Data Integration web service operation startTask Data Integration web service operation startWorkflow Data Integration web service operation startWorkflowFromTask Data Integration web service operation startWorkflowLogFetch Data Integration web service operation stopTask Data Integration web service operation stopWorkflow Data Integration web service operation troubleshooting service workflows 92 U UDDI web service component 2 Universal Description. Discovery.1.1 114 web service sessions pipeline partitioning 88 web service targets configuring load scope 70 web services Batch 8 batch client applications in Axis 40 batch client applications in C# 44 batch web services sample programs 99 building blocks 3 compiling Batch web services examples 97 compiling Realtime web services examples 108 configuring service workflows 80 Data Integration 8 Index 119 33 33 33 33 34 34 34 T target definitions web services 60 target-based commit configuring 88 TaskRequest using a parameter array 54 timeout description 90 service workflow property 80 .1. and Integration See UDDI unscheduleWorkflow Data Integration web service operation 34 V visible service workflow property 81 W waitTillTaskComplete Data Integration web service operation 34 waitTillWorkflowComplete Data Integration web service operation 34 web service components SOAP 2 UDDI 2 WSDL 2 Web Service Definition Language See WSDL web service definitions editing 66 viewing 66 viewing in the XML Editor 69 web service operations available in version 8.1 112 not available in version 8.

50 web service component 2 X XML columns generating names 63 XML Editor viewing web service definitions 69 XML sessions guidelines 90 XML views options 61 120 Index . 14 logs 21 Realtime web services 16 Web Services Provider See also Web Services Hub architecture 10 configuring reader 82 configuring writer 85 WorkflowRequest using a parameter array 54 writer properties configuring 85 WSDL Batch web services 15 description 5 Realtime web services 16.importing source definitions 61 importing target definitions 61 Metadata 8 overview 2 overview of sample programs 96 Realtime 9 realtime client applications 50 realtime web services sample programs 109 running Batch web services examples 98 running Realtime web services examples 108 source definitions 59 target definitions 60 troubleshooting 92 Web Services Hub Batch web services 15 console 15 description 8.

Sign up to vote on this title
UsefulNot useful