mdm 960 servicesintegrationframework[sif]guide en

150
Informatica MDM Multidomain Edition (Version 9.6.0) Services Integration Framework (SIF) Guide

Upload: jmsreddy

Post on 18-Aug-2015

286 views

Category:

Documents


3 download

DESCRIPTION

MDM 960 ServicesIntegrationFramework

TRANSCRIPT

Informatica MDM Multidomain Edition(Version 9.6.0)Services Integration Framework (SIF)GuideInformatica MDM Multidomain Edition Services Integration Framework (SIF) GuideVersion 9.6.0June 2013Copyright (c) 1998-2013 Informatica Corporation. All rights reserved.This software and documentation contain proprietary information of Informatica Corporation and are provided under a license agreement containing restrictions on use anddisclosure 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 anymeans (electronic, photocopying, recording or otherwise) without prior consent of Informatica Corporation. This Software may be protected by U.S. and/or international Patents andother Patents Pending.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 DFARS227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013(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 product or documentation is subject to change without notice. If you find any problems in this product or documentation, please report them to us inwriting.Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart,Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange Informatica On Demand,Informatica Identity Resolution, Informatica Application Information Lifecycle Management, Informatica Complex Event Processing, Ultra Messaging and Informatica Master DataManagement are trademarks or registered trademarks of Informatica Corporation in the United States and in jurisdictions throughout the world. All other company and productnames 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. All rights reserved.Copyright Sun Microsystems. All rights reserved. Copyright RSA Security Inc. All Rights Reserved. Copyright Ordinal Technology Corp. All rights reserved.Copyright Aandacht c.v. All rights reserved. Copyright Genivia, Inc. All rights reserved. Copyright Isomorphic Software. All rights reserved. Copyright Meta Integration Technology, Inc. Allrights reserved. Copyright Intalio. All rights reserved. Copyright Oracle. All rights reserved. Copyright Adobe Systems Incorporated. All rights reserved. Copyright DataArt,Inc. All rights reserved. Copyright ComponentSource. All rights reserved. Copyright Microsoft Corporation. All rights reserved. Copyright Rogue Wave Software, Inc. All rightsreserved. Copyright Teradata Corporation. All rights reserved. Copyright Yahoo! Inc. All rights reserved. Copyright Glyph & Cog, LLC. All rights reserved. Copyright Thinkmap, Inc. All rights reserved. Copyright Clearpace Software Limited. All rights reserved. Copyright Information Builders, Inc. All rights reserved. Copyright OSS Nokalva,Inc. All rights reserved. Copyright Edifecs, Inc. All rights reserved. Copyright Cleo Communications, Inc. All rights reserved. Copyright International Organization forStandardization 1986. All rights reserved. Copyright ej-technologies GmbH. All rights reserved. Copyright Jaspersoft Corporation. All rights reserved. Copyright isInternational Business Machines Corporation. All rights reserved. Copyright yWorks GmbH. All rights reserved. Copyright Lucent Technologies. All rights reserved. Copyright(c) University of Toronto. All rights reserved. Copyright Daniel Veillard. All rights reserved. Copyright Unicode, Inc. Copyright IBM Corp. All rights reserved. Copyright MicroQuill Software Publishing, Inc. All rights reserved. Copyright PassMark Software Pty Ltd. All rights reserved. Copyright LogiXML, Inc. All rights reserved. Copyright 2003-2010 Lorenzi Davide, All rights reserved. Copyright Red Hat, Inc. All rights reserved. Copyright The Board of Trustees of the Leland Stanford Junior University. All rightsreserved. Copyright EMC Corporation. All rights reserved. Copyright Flexera Software. All rights reserved. Copyright Jinfonet Software. All rights reserved. Copyright AppleInc. All rights reserved. Copyright Telerik Inc. All rights reserved. Copyright BEA Systems. All rights reserved.This product includes software developed by the Apache Software Foundation (http://www.apache.org/), and/or other software which is licensed under various versions of theApache License (the "License"). You may obtain a copy of these Licenses at http://www.apache.org/licenses/. Unless required by applicable law or agreed to in writing, softwaredistributed under these Licenses is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licenses forthe specific language governing permissions and limitations under the Licenses.This product includes software which was developed by Mozilla (http://www.mozilla.org/), software copyright The JBoss Group, LLC, all rights reserved; software copyright 1999-2006 by Bruno Lowagie and Paulo Soares and other software which is licensed under various versions of the GNU Lesser General Public License Agreement, which may befound at http:// www.gnu.org/licenses/lgpl.html. The materials are provided free of charge by Informatica, "as-is", without warranty of any kind, either express or implied, includingbut not limited to the implied warranties of merchantability and fitness for a particular purpose.The product includes ACE(TM) and TAO(TM) software copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, andVanderbilt University, Copyright () 1993-2006, all rights reserved.This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (copyright The OpenSSL Project. All Rights Reserved) and redistribution of thissoftware is subject to terms available at http://www.openssl.org and http://www.openssl.org/source/license.html.This product includes Curl software which is Copyright 1996-2007, Daniel Stenberg, . All Rights Reserved. Permissions and limitations regarding this softwareare subject to terms available at http://curl.haxx.se/docs/copyright.html. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is herebygranted, provided that the above copyright notice and this permission notice appear in all copies.The product includes software copyright 2001-2005 () MetaStuff, Ltd. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available athttp://www.dom4j.org/ license.html.The product includes software copyright 2004-2007, The Dojo Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms availableat http://dojotoolkit.org/license.This product includes ICU software which is copyright International Business Machines Corporation and others. All rights reserved. Permissions and limitations regarding thissoftware are subject to terms available at http://source.icu-project.org/repos/icu/icu/trunk/license.html.This product includes software copyright 1996-2006 Per Bothner. All rights reserved. Your right to use such materials is set forth in the license which may be found at http://www.gnu.org/software/ kawa/Software-License.html.This product includes OSSP UUID software which is Copyright 2002 Ralf S. Engelschall, Copyright 2002 The OSSP Project Copyright 2002 Cable & Wireless Deutschland.Permissions and limitations regarding this software are subject to terms available at http://www.opensource.org/licenses/mit-license.php.This product includes software developed by Boost (http://www.boost.org/) or under the Boost software license. Permissions and limitations regarding this software are subject toterms available at http:/ /www.boost.org/LICENSE_1_0.txt.This product includes software copyright 1997-2007 University of Cambridge. Permissions and limitations regarding this software are subject to terms available at http://www.pcre.org/license.txt.This product includes software copyright 2007 The Eclipse Foundation. All Rights Reserved. Permissions and limitations regarding this software are subject to terms available athttp:// www.eclipse.org/org/documents/epl-v10.php.This product includes software licensed under the terms at http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/overlib/?License, http://www.stlport.org/doc/license.html, http:// asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http://httpunit.sourceforge.net/doc/ license.html,http://jung.sourceforge.net/license.txt , http://www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/license.html, http://www.libssh2.org, http://slf4j.org/license.html, http://www.sente.ch/software/OpenSourceLicense.html, http://fusesource.com/downloads/license-agreements/fuse-message-broker-v-5-3- license-agreement;http://antlr.org/license.html; http://aopalliance.sourceforge.net/; http://www.bouncycastle.org/licence.html; http://www.jgraph.com/jgraphdownload.html; http://www.jcraft.com/jsch/LICENSE.txt; http://jotm.objectweb.org/bsd_license.html; . http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231; http://www.slf4j.org/license.html; http://nanoxml.sourceforge.net/orig/copyright.html; http://www.json.org/license.html; http://forge.ow2.org/projects/javaservice/, http://www.postgresql.org/about/licence.html, http://www.sqlite.org/copyright.html, http://www.tcl.tk/software/tcltk/license.html, http://www.jaxen.org/faq.html, http://www.jdom.org/docs/faq.html, http://www.slf4j.org/license.html;http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License; http://www.keplerproject.org/md5/license.html; http://www.toedter.com/en/jcalendar/license.html; http://www.edankert.com/bounce/index.html; http://www.net-snmp.org/about/license.html; http://www.openmdx.org/#FAQ; http://www.php.net/license/3_01.txt; http://srp.stanford.edu/license.txt; http://www.schneier.com/blowfish.html; http://www.jmock.org/license.html; http://xsom.java.net; and http://benalman.com/about/license/; https://github.com/CreateJS/EaselJS/blob/master/src/easeljs/display/Bitmap.js; http://www.h2database.com/html/license.html#summary; and http://jsoncpp.sourceforge.net/LICENSE.This product includes software licensed under the Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), the Common Development and Distribution License(http://www.opensource.org/licenses/cddl1.php) the Common Public License (http://www.opensource.org/licenses/cpl1.0.php), the Sun Binary Code License AgreementSupplemental License Terms, the BSD License (http:// www.opensource.org/licenses/bsd-license.php) the MIT License (http://www.opensource.org/licenses/mit-license.php) andthe Artistic License (http://www.opensource.org/licenses/artistic-license-1.0).This product includes software copyright 2003-2006 Joe WaInes, 2006-2007 XStream Committers. All rights reserved. Permissions and limitations regarding this software aresubject to terms available at http://xstream.codehaus.org/license.html. This product includes software developed by the Indiana University Extreme! Lab. For further informationplease visit http://www.extreme.indiana.edu/.This Software is protected by U.S. Patent Numbers 5,794,246; 6,014,670; 6,016,501; 6,029,178; 6,032,158; 6,035,307; 6,044,374; 6,092,086; 6,208,990; 6,339,775; 6,640,226;6,789,096; 6,820,077; 6,823,373; 6,850,947; 6,895,471; 7,117,215; 7,162,643; 7,243,110, 7,254,590; 7,281,001; 7,421,458; 7,496,588; 7,523,121; 7,584,422; 7676516; 7,720,842; 7,721,270; and 7,774,791, international Patents and other 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 impliedwarranties of noninfringement, merchantability, or use for a particular purpose. Informatica Corporation does not warrant that this software or documentation is error free. Theinformation provided in this software or documentation may include technical inaccuracies or typographical errors. The information in this software and documentation is subject tochange at any time without notice.NOTICESThis Informatica product (the "Software") includes certain drivers (the "DataDirect Drivers") from DataDirect Technologies, an operating company of Progress Software Corporation("DataDirect") which are subject to the following terms and conditions:1. THE DATADIRECT DRIVERS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITEDTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.2. IN NO EVENT WILL DATADIRECT OR ITS THIRD PARTY SUPPLIERS BE LIABLE TO THE END-USER CUSTOMER FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, CONSEQUENTIAL OR OTHER DAMAGES ARISING OUT OF THE USE OF THE ODBC DRIVERS, WHETHER OR NOT INFORMED OF THEPOSSIBILITIES OF DAMAGES IN ADVANCE. THESE LIMITATIONS APPLY TO ALL CAUSES OF ACTION, INCLUDING, WITHOUT LIMITATION, BREACH OFCONTRACT, BREACH OF WARRANTY, NEGLIGENCE, STRICT LIABILITY, MISREPRESENTATION AND OTHER TORTS.Part Number: MDM-SIF-96000-0001Table of ContentsPreface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viInformatica Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viInformatica My Support Portal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viInformatica Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viInformatica Web Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viInformatica How-To Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viInformatica Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viiInformatica Support YouTube Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viiInformatica Marketplace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viiInformatica Velocity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiInformatica Global Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viiChapter 1: Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Overview of Services Integration Framework (SIF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1About Informatica MDM Hub and External Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1How External Applications Interact with Informatica MDM Hub. . . . . . . . . . . . . . . . . . . . . . . . . . 2About Real-time Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2About Services Integration Framework (SIF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Benefits of Using SIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3About SiperianClient Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5About SIF Access Protocols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Using Web Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Using XML Over HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7About Informatica MDM Hub Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8How SIF Requests Are Processed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Types of SIF Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Using SIF SDK to Interface with SIF Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Chapter 2: Setting Up the SIF SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Overview of Setting Up the SIF SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Before You Begin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Deploying the SIF SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14About SIF API Javadoc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Building Web Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Chapter 3: Using the SIF SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Overview of Using the SIF SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16About SIF SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Table of ContentsiInformatica MDM Hub SIF Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17SIF Development Kit (SIF-SDK). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17About SiperianObjectUID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17About TaskData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19About TaskRecord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20SIF Client Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Exact Matches on Fuzzy Base Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20SIF API Debug Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20The cmxserver.properties Search Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Using SIF API Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21SiperianRequest Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21Constructing Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22Processing Responses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22About Records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23About RecordKey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23Using ORS-specific APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23Generating ORS-specific APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24ORS-specific API Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25Populating SIF API Field Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25Cleanse[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27CleansePut[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28Get[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28Put[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30SearchMatchColumn[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31SearchMatchRecord[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32SearchQuery[Resource_Name]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33Making Asynchronous SIF Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34About JMS Event Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34JMS Message Queues for Asynchronous SIF Invocations. . . . . . . . . . . . . . . . . . . . . . . . . . . .37Run-time Processing of Asynchronous SIF Service Invocations. . . . . . . . . . . . . . . . . . . . . . . .38Using the Security Access Manager (SAM) with SIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Using Informatica MDM Hub Metadata Management API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39SIF Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39SIF Metadata Management Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40Composite Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41Enterprise JavaBeans Transaction Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41ExecuteBatch API Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Chapter 4: Using the Security Access Manager with SIF API. . . . . . . . . . . . . . . . . . . . . . . 42Overview of Using the Security Access Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42About SAM and SIF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42Setting Permissions for Specific Roles and Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43iiTable of ContentsObject Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Batch Group API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Data Steward API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44Data Retrieval API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Data API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46Data Update / Insert API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Hierarchy Manager API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Merge Workflow API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Metadata API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47Metadata Management API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47Repository Manager API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48State Management API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48User Management API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48Task API Required Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Miscellaneous API Required Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Chapter 5: SIF API Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Functional SIF API Listing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50Reference SIF API Listing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54AcceptUnmatchedRecordsAsUnique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55AddRelationship. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55ApplyChangeList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55AssignUnmergedRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Authenticate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58CanUnmergeRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58CleanTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Cleanse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59CleansePut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60ClearAssignedUnmergedRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64CreateChangeList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64CreateTask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Delete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65DeleteRelationship. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67DescribeSiperianObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68ExecuteBatchAutoMatchAndMerge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69ExecuteBatchAutomerge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69ExecuteBatchBVTSnapshot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70ExecuteBatchExternalMatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71ExecuteBatchGenerateMatchTokens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71ExecuteBatchGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72ExecuteBatchKeyMatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72ExecuteBatchLoad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Table of ContentsiiiExecuteBatchMatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74ExecuteBatchMatchAnalyze. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75ExecuteBatchPromote. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75ExecuteBatchRecalculateBo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76ExecuteBatchRecalculateBvt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77ExecuteBatchResetMatchTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77ExecuteBatchRevalidate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78ExecuteBatchStage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79ExecuteBatchSynchronize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79ExecuteBatchValidateFKRelationships. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80FlagForAutomerge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81GenerateConstraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Get. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83GetAssignableUsersForTasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85GetAssignedRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85GetBatchGroupStatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86GetBvt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86GetEffectivePeriods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87GetEntityGraph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88GetLookupValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90GetLookupValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91GetMatchedRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91GetMergeHistory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91GetOneHop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92GetOrsList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92GetOrsMetadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93GetSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93GetSiperianObjectCompatibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95GetSystemTrustSettings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95GetTaskLineage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96GetTasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98GetTrustGraphData. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100GetTrustScore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100GetUnmergedRecordCount. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101GetXrefForEffectiveDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Link. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102ListSiperianObjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104MultiMerge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105PreviewBVT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105PromotePendingXrefs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108ReassignRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113ivTable of ContentsRegisterCustomIndex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114RegisterCustomTableObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115RegisterUsers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115RemoveMatchedRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116ResetBatchGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117Restore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117SearchHmQuery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118SearchLookupValues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119SearchMatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119SearchQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123SearchRequestBase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125SearchResponseBase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126SetPassword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126SetRecordState. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Tokenize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Unlink. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Unmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129UnregisterUsers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131UpdateRelationship. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131UpdateTask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132ValidateChangeList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133ValidateMetadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134ValidateTasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136Table of ContentsvPrefaceWelcome to the Informatica MDM Hub Services Integration Framework Guide. This guide explains how to use theServices Integration Framework (SIF) to integrate Informatica MDM Hub functionality with your applications and howto create applications using the data provided by Informatica MDM Hub. SIF allows you to integrate Informatica MDMHub smoothly with your organizations applications.Informatica ResourcesInformatica My Support PortalAs an Informatica customer, you can access the Informatica My Support Portal at http://mysupport.informatica.com.The site contains product information, user group information, newsletters, access to the Informatica customersupport case management system (ATLAS), the Informatica How-To Library, the Informatica Knowledge Base,Informatica Product Documentation, and access to the Informatica user community.Informatica DocumentationThe Informatica Documentation team takes every effort to create accurate, usable documentation. If you havequestions, comments, or ideas about this documentation, contact the Informatica Documentation team through emailat [email protected]. We will use your feedback to improve our documentation. Let us know if wecan contact you regarding your comments.The Documentation team updates documentation as needed. To get the latest documentation for your product,navigate to Product Documentation from http://mysupport.informatica.com.Informatica Web SiteYou can access the Informatica corporate web site at http://www.informatica.com. The site contains information aboutInformatica, its background, upcoming events, and sales offices. You will also find product and partner information.The services area of the site includes important information about technical support, training and education, andimplementation services.Informatica How-To LibraryAs an Informatica customer, you can access the Informatica How-To Library at http://mysupport.informatica.com. TheHow-To Library is a collection of resources to help you learn more about Informatica products and features. It includesarticles and interactive demonstrations that provide solutions to common problems, compare features and behaviors,and guide you through performing specific real-world tasks.viInformatica Knowledge BaseAs an Informatica customer, you can access the Informatica Knowledge Base at http://mysupport.informatica.com.Use the Knowledge Base to search for documented solutions to known technical issues about Informatica products.You can also find answers to frequently asked questions, technical white papers, and technical tips. If you havequestions, comments, or ideas about the Knowledge Base, contact the Informatica Knowledge Base team throughemail at [email protected] Support YouTube ChannelYou can access the Informatica Support YouTube channel athttp://www.youtube.com/user/INFASupport. TheInformatica Support YouTube channel includes videos about solutions that guide you through performing specifictasks. If you have questions, comments, or ideas about the Informatica Support YouTube channel, contact theSupport YouTube team through email at [email protected] or send a tweet to @INFASupport.Informatica MarketplaceThe Informatica Marketplace is a forum where developers and partners can share solutions that augment, extend, orenhance data integration implementations. By leveraging any of the hundreds of solutions available on theMarketplace, you can improve your productivity and speed up time to implementation on your projects. You canaccess Informatica Marketplace at http://www.informaticamarketplace.com.Informatica VelocityYou can access Informatica Velocity at http://mysupport.informatica.com. Developed from the real-world experienceof hundreds of data management projects, Informatica Velocity represents the collective knowledge of ourconsultants who have worked with organizations from around the world to plan, develop, deploy, and maintainsuccessful data management solutions. If you have questions, comments, or ideas about Informatica Velocity,contact Informatica Professional Services at [email protected] Global Customer SupportYou can contact a Customer Support Center by telephone or through the Online Support. Online Support requires auser name and password. You can request a user name and password at http://mysupport.informatica.com.PrefaceviiUse the following telephone numbers to contact Informatica Global Customer Support:North America / South America Europe / Middle East / Africa Asia / AustraliaToll FreeBrazil 0800 891 0202Mexico 001 888 209 8853North America +1 877 463 2435Toll FreeFrance 0805 804632Germany 0800 5891281Italy 800 915 985Netherlands 0800 2300001Portugal 800 208 360Spain 900 813 166Switzerland 0800 463 200United Kingdom 0800 023 4632Standard RateBelgium +31 30 6022 797France +33 1 4138 9226Germany +49 1805 702702Netherlands +31 30 6022 797United Kingdom +44 1628 511445Toll FreeAustralia 1 800 120 365Asia Pacific 00 080 00016360China 400 810 0900viiiPrefaceC H A P T E R 1IntroductionThis chapter includes the following topics: Overview of Services Integration Framework (SIF), 1 About Informatica MDM Hub and External Applications, 1 About Services Integration Framework (SIF), 3 About SIF Access Protocols, 6 About Informatica MDM Hub Requests, 8Overview of Services Integration Framework (SIF)This chapter introduces the Services Integration Framework (SIF) and describes the environment for applicationprograms that use SIF to interact with Informatica MDM Hub.About Informatica MDM Hub and External ApplicationsInformatica MDM Hub is the best platform available today for deploying MDM solutions across the enterprise.Informatica MDM Hub offers an integrated, model-driven, and flexible enterprise MDM platform that can be used tocreate and manage all kinds of master data.Informatica MDM Hub is a server that resides at the center of an enterprise software network. It maintains the bestversion of the truth for a set of entities (for example, customer records) that may be common to several applications onthe network. So, for example, Informatica MDM Hub helps keep track of whether Jane Ann Smithe on the sales leadsystem represents the same customer as John Anders Smith on the SAP system and, if so, how that customer spellstheir name.Informatica MDM Hub uses batch processes and manual intervention when necessary to match new informationagainst its version of the information. It also interacts with Informatica applications (for example, the tools in the DataSteward Workbench), other enterprise software packages, or ad hoc applications on an entity-by-entity basis. All ofthese applications use a client/server model. Informatica MDM Hub accepts requests and sends responses.Informatica MDM Hub maintains entity-related information in sets of Operational Record Store (ORS) databasetables, which it manages in its internal database management system. Though an enterprise can have more than oneORS, typically it has only one, for example, an ORS for its customer data. The enterprise provides a schema thatdefines the database tables in the ORS.1How External Applications Interact with Informatica MDM HubRequest/response interactions with Informatica MDM Hub typically read or update the database tables in the ORSdatabase. Informatica MDM Hub provides a generic set of API requests that are independent of the enterprisesschema. These requests require the client to specify the database records for Informatica MDM Hub to access.Informatica also provides tools that allow you to construct new ORS-specific request that act on logical entitiesdefined in the schema. For example, a generic request might place given data into a specified database record. AnORS-specific request might identify the same data as a name and an email address and place those fields into acustomer record, as defined in the schema.The ORS-specific requests do not exist within Informatica MDM Hub. Instead, they are methods that use the schemato validate the arguments, and then translate the ORS-specific calls into the requests and responses of generic Huboperations. They allow client programs to operate at a logical level that provides greater type safety than the genericoperations.RELATED TOPICS: Using ORS-specific APIs on page 23About Real-time ProcessingFor real-time processing, applications that are external to Informatica MDM Hub invoke Informatica MDM Huboperations using the Services Integration Framework (SIF) interface. SIF provides APIs for various Informatica MDMHub services, such as reading, cleansing, matching, inserting, and updating records.In Informatica MDM Hub implementations, real-time processing is used as appropriate. For example, real-timeprocessing can be used to update data in the Hub Store whenever a record is added, updated, or deleted in a source2 Chapter 1: Introductionsystem. Real-time processing can also be used to handle incremental data loads (data loads that occur after the initialdata load) into the Hub Store.The following figure shows the overall real-time process flow for processing data in Informatica MDM Hub.About Services Integration Framework (SIF)The Services Integration Framework (SIF) is a services framework (SOA* enabled) that can be configured forInformatica MDM Hub that interfaces with client programs. Logically, it serves as a middle tier in the client/servermodel. It enables you to implement the request/response interactions using SIF access protocols.Note:Only admin users can access private resources through SIF requests.SIF Framework encapsulates an API-based access in the form of a toolkit to build Web Services-based access to yourInformatica MDM Hub data. SIF contains: APIs for fine-grained access to data and objects in the Hub SIF SDK, a toolkit for building coarse-grained business services Set of tools designed to generate and deploy web servicesRELATED TOPICS: About SIF Access Protocols on page 6Benefits of Using SIFUsing SIF for real-time Hub processing provides the following benefits: Rapid configuration, deployment, and management of applications integrating Informatica MDM Hub and externalsystems. Addressing integration requirements both at logical (business events and services) as well as granular (dataevents and services) levels. Process relevant events for synchronization and propagationAbout Services Integration Framework (SIF) 3 Build services for custom data management GUI (for example, Data Manager, Merger Manager) Build services for custom applications that utilize Hub data Build services for consumption in Portals Build unified view services for composite applications that need 360 view of the customer Build virtual view services that can be integrated with applications such as Siebel (Virtual business component) Reuse business interfaces as new sources are addedThe SIF APIs can interact with each other directly. For example Data Services can interact with Data Events, ProcessServices with Data Services, Data Services with Business Services, Data Events with Process Services, and so on.Here are some examples for these events services:Data events can be generated in the external applications or Informatica MDM Hub. These events are handled byEvent driven architecture (EDA) capabilities of the Informatica MDM Hub, which includes Event Capture, EventProcessing, Event Filtering and Event Generation.The services provided in the Informatica MDM Hub can be used by the EDA components as well as externalapplications for Query and Data Synchronization operations. Additionally existing infrastructure such as an EnterpriseService Bus (ESB) as well as Enterprise Application Integration (EAI) technologies such as Tibco, webMethods (and4 Chapter 1: Introductionso on), and Message Oriented Middleware can be used in conjunction with Informaticas Services IntegrationFramework.About SiperianClient LibraryThe SiperianClient library and the associated Javadocs are installed with the Informatica MDM Hub Resource Kit inthe resourcekit\sifsdk folder. The SIF SDK can be used for creating custom web services to be deployed along withInformatica MDM Hub server. These custom web services would typically be built using the SiperianClient library. Foran example, see the sample code for building web services using the SIF SDK in the resourcekit/samples folders.Using SiperianClient LibraryThe process method of SiperianClient provides the basic request/response interaction between the client programand Informatica MDM Hub. It accepts any subclass of com.siperian.sif.message.SiperianRequest as an argument.When it processes the request successfully, it returns a com.siperian.sif.message.SiperianResponse, which youmust cast to the correct response subclass. Otherwise it throws SiperianServerException.The SiperianClient library is provided to create easy and efficient Java applications. There are two parts to the API: The MRM, HM, and AM, packages provides request and response objects for each of the available operations. The com.siperian.sif.client package manages the details of communication with the Informatica MDM HubServer. SiperianClient can be configured for the desired protocol to communicate with the Informatica MDM HubServer: EJB, SOAP, or XML over HTTP.Types of SIF API ApplicationsThe SIF API may be used to develop various types of applications, such as: Web services that provide a higher level, application/domain specific API. Business Process Modeling (BPM) and workflow integration using the Java API or SOAP directly. A Java Swing UI to query, view, and edit data in the Informatica MDM Hub. Server components in a J2EE application server to get and update data in the Informatica MDM Hub. An EJB canseamlessly integrate with the transactions of the Informatica MDM Hub. A JSP or Servlet application to present a portal view including Informatica MDM Hub data. Command-line application to run batch jobs and batch groups, to be run manually, scheduled for periodicexecution, or included as part of another script or application.SIF Services Development Kit (SDK)The Informatica MDM Hub Resource Kit installer also installs the SIF Services Development Kit (SDK). You copy theSIF SDK to any client system on which you wish to develop and run programs to interact with Informatica MDM Hubusing SIF. If you can run a Java virtual machine (JVM) on the client system, you can use the Java classes included inthe SIF SDK. This guide refers to these Java classes by the name of the first class you must instantiate,SiperianClient.You can configure the SDK to use any SIF protocol. If you cannot run a JVM, then you must explicitly use web services(for example, on a pure.NET system) or JMS (for example, on a mainframe system), or XML over HTTP.About Services Integration Framework (SIF) 5About SIF Access ProtocolsThe SIF API enables you to implement the request/response interactions using any of the following accessprotocols: Java development environment; tightly-coupled Java remote procedure calls based on Enterprise JavaBeans(EJBs). Loosely coupled web services using SOAP protocol: request XML, response XML; WSDL defines the request andresponse XML. The actual development environment varies: it can be Eclipse, MS Visual Studio (.NET andothers), or other web service client tools. XML over HTTP (web services minus the SOAP envelope); this is very similar to SOAP/ web services exceptyoure not using the SOAP protocol to wrap the XML request message in a SOAP envelope, nor are you needingto retrieve the response XML from a SOAP message. One advantage of using web services is the concept thatsession authentication is implicit. Asynchronous Java Message Service (JMS)-based messages; using XML over HTTP (subscribe/publish).Each of the above SIF protocols sit on top of the native Informatica MDM Hub protocol, which accepts requests in theform of XML documents or EJBs and returns responses the same way.SIF also provides a SiperianClient proxy that can be used in a Java development environment to manage theunderlying communication protocol to the Informatica MDM Hub APIs. This eliminates the complexity from such adevelopment effort and allows the users to focus on application development by configuring the chosencommunication protocol usage.When you cannot or do not want to use the SiperianClient Java classes, you can interact directly with SIF using otheraccess protocols. This guide does not include information about using the EJB or JMS protocols directly. You can usethese protocols only through SiperianClient if you supply an appropriately configured AsynchronousOptions objectwith a request. Or, you can place the request directly onto the message queue named siperian.sif.jms.queue.RELATED TOPICS: Using Web Services on page 7 Using XML Over HTTP on page 7 Making Asynchronous SIF Requests on page 346 Chapter 1: IntroductionUsing Web ServicesInstalling Informatica MDM Hub on an application server makes the capabilities of SiperianClient available as a webservice on that application server. You can interrogate the web service to obtain Web Services Description Language(WSDL) descriptions of the web services operations and arguments. These operations and arguments parallel themethods and arguments of the SiperianClient Java classes that the web service makes available, so you can use theSiperianClient Javadocs for reference information that also applies to the web service.In general, you use the following generic procedure using a web service interface to implement the SIF API request/response interactions:1. Prepare the request2. Submit the request3. Process the results4. Perform error handlingUnderstanding WSDLIf you use a web service interface to Informatica MDM Hub, you use the same classes and methods described in theJavadocs, but through proxies that wrap the interactions in SOAP messages. Use a tool to interpret the WSDL, thenlook for the corresponding classes in the Javadocs for detailed reference information.The actual development environment varies: you could use Eclipse, MS Visual Studio (.NET and others), or other webservice client tools. This client environment (.NET for example) has tools for reading WSDL and producing proxies thatyou can call from the programming language you are using (for example, C#). The Eclipse integrated developmentenvironment has a web services browser that reads the WSDL and presents the information in a user-friendly way.Simply point the browser at the following URL (where host and port specify the location of the application serversupporting Informatica MDM Hub):http://host:port/cmx/request/wsdlThe proxies communicate with the web service using the SOAP protocol. They receive requests from your applicationprogram. They translate the requests into SOAP messages and send them to the web service. The web servicedecodes the SOAP messages it receives and translates them to Java calls to the SiperianClient running on theapplication server. The web service receives responses from SiperianClient, encodes them into SOAP messages,and sends them back to the proxies, which return the responses to your application program.Informatica MDM Hub uses AXIS (version 1.3) to serve up the web services. Axis is java library/tool that is used toconfigure the SIF API as web services, and then make these web services accessible using a URL. For example, if youuse soapUI to enter a URL and view a list of web services, the tool presents the list of web services that was configuredin AXIS. Axis gets deployed along with siperian-mrm.ear. For more information, see http://ws.apache.org/axis/.You can also create and deploy a web service to process ORS-specific requests.RELATED TOPICS: Setting Up the SIF SDK on page 13Using XML Over HTTPUse the Hypertext Transfer Protocol (HTTP) to send requests to Informatica MDM Hub as XML documents andreceive responses the same way. The associated requests and responses are for the Informatica MDM Hub classesthat appear inChapter 5, SIF API Reference on page 50About SIF Access Protocols 7In general, you use the following generic procedure using XML over HTTP to implement the SIF API request/responseinteractions:1. Prepare the request2. Submit the request3. Process the results4. Perform error handlingYou can access the schemas that describe the requests and responses at the following locations on the applicationserver that hosts Informatica MDM Hub:http://host:port/cmx/request/xsd/siperian-core.xsdhttp://host:port/cmx/request/xsd/siperian-types.xsdhttp://host:port/cmx/request/xsd/siperian-metadata.xsdIn these addresses, host:port represents the host name of the computer running the application server and the port onwhich it accepts Informatica MDM Hub requests. The three schema files provide a logical partition of the schema thatgoverns requests and responses. The siperian-core file contains most of the elements. The siperian-types filecontains most of the type definitions., while siperian-metadata describes the objects used in the SIFListSiperianObjects and DescribeSiperianObjects classes.After using the schema to construct an XML request message, use the HTTP POST method to send the request to thefollowing address (where host:port is as described above):http://host:port/cmx/requestThe body of the HTTP response is the Informatica MDM Hub response, encoded in XML according to the aboveschema.About Informatica MDM Hub RequestsInformatica MDM Hub SIF provides a set of request/response API classes. Each Informatica MDM Hub request has abasic name. A naming convention enables you to predict the names associated with the various SIF protocols from thebasic name. For example, the request and response EJBs corresponding to the SIF Put class are called PutRequestand PutResponse. These names correspond in a predictable way to the Java classes used by SiperianClient. Theyalso correspond in a predictable way to the web services described by the Web Services Description Language(WSDL) included in the SDK.SIF provides access to these requests in the ways described in About Services Integration Framework (SIF) on page3.How SIF Requests Are ProcessedEach SIF class is represented by a request-response pair of objects. Request object represents the action to beperformed and a response object contains the result of that action. Request and response objects can have a Java or8 Chapter 1: IntroductionXML representations. Java representation requires no additional processing. XML requests will be converted to Javainternally.You can invoke SIF classes using Java/XML representations using any of the following protocols: SOAP, HTTP, andEJB. Multiple API calls can participate in a single transaction when using the EJB protocol.SIF API offers a generic infrastructure to support various components of the Informatica MDM Hub (core MRM, AMand HM).Types of SIF RequestsInformatica MDM Hub SIF provides API classes for the following services. For a complete list of the SIF requestsassociated with each functional service, and for more information regarding a specific SIF request, seeChapter 5,SIF API Reference on page 50.Data Steward ServicesData Steward requests enable developers to build a new breed of applications that rely on the reference data from theInformatica MDM Hub. Can also be used to build data management services managing both data and metadata,including BVT, a single record or sets of records, as well as to perform searches based on match columns. For moreinformation, refer to the following SIF requests: GetLookupValue on page 90 GetLookupValues on page 91 GetMatchedRecords on page 91 GetMergeHistory on page 91 GetSystemTrustSettings on page 95 GetTrustGraphData on page 100 GetTrustScore on page 100 SearchLookupValues on page 119 SetRecordState on page 126Data Retrieval ServicesData Retrieval requests enable developers to search for records. For more information, refer to the following SIFrequests: GetBvt on page 86 Get on page 83About Informatica MDM Hub Requests 9 GetSearchResults on page 93 SearchMatch on page 119 SearchQuery on page 123Data & Data Update / Insert ServicesData API requests enable developers to execute Informatica MDM Hub Cleanse, Link, MultiMerge, and Unlink baseobject requests. For more information, refer to the following SIF requests: Cleanse on page 59 Link on page 102 MultiMerge on page 105 Unlink on page 129Data Update/Insert API requests enable developers to execute data updates and inserts on base object records. Formore information, refer to the following SIF requests: CleansePut on page 60 Merge on page 104 Put on page 108 Tokenize on page 128 Unmerge on page 129Merge Workflow ServicesMerge Workflow API requests enable developers to execute post-match batch processes, such as search forunmatched or unmerged records. For more information, refer to the following SIF requests: AcceptUnmatchedRecordsAsUnique on page 55 AssignUnmergedRecords on page 56 CanUnmergeRecords on page 58 ClearAssignedUnmergedRecords on page 64 GetAssignedRecords on page 85 GetUnmergedRecordCount on page 101 ReassignRecords on page 113Batch Group ServicesBatch Group API requests enable developers to execute batch groups directly without using the Informatica MDM Hubconsole or stored procedures. For more information, refer to the following SIF requests: ExecuteBatchGroup on page 72 GetBatchGroupStatus on page 86 ResetBatchGroup on page 11710 Chapter 1: IntroductionMetadata ServicesInformatica SIF API provides additional services for managing Informatica MDM Hub metadata. For more information,refer to the following SIF requests: ApplyChangeList on page 55 CreateChangeList on page 64 DeleteRelationship on page 67 GetOrsList on page 92 GetOrsMetadata on page 93 ListSiperianObjects on page 103 ValidateChangeList on page 133 ValidateMetadata on page 134ORS-specific ServicesPackages configured in the ORS databases pave the way for accessing a specific view of Hub data. Use of packages is restricted to Informatica internal processes and the Hub Console tool. SIF exposes access to Hub data through the configured packages by auto-generating objects (data objects) andservices (data services) to access Hub data for the outside world. Collectively refers to the auto-generated data objects and associated services. Push-button generation from SIF Manager tool.For more information regarding the ORS-specific APIs, see Using ORS-specific APIs on page 23.State Management ServicesInformatica MDM Hub supports workflow tools by storing pre-defined system states for base object and XREFrecords. By enabling state management on your data, Informatica MDM Hub offers the following additionalflexibility: Allows integration with workflow integration processes and tools Supports a change approval process Tracks intermediate stages of the process (pending records)State management is the process for managing the system state of base object and XREF records to affect theprocessing logic throughout the MRM data flow. Informatica MDM Hub supports the following system states: ACTIVE,PENDING, and DELETED.You can assign a system state to base object and XREF records at various stages of the data flow using the Hub toolsthat work with records. In addition, you can use the various Hub tools for managing your schema to enable statemanagement for a base object, or to set user permissions for controlling who can change the state of a record.State Management API requests enable developers to restore state-enabled records with state set to DELETED, aswell as promote pending XREF records. In order for a record to be deleted, it must be in either the ACTIVE state forsoft delete (a base object or an XREF record is marked as deleted in a user attribute or in the HUB_STATE_IND) or thePENDING state for hard delete (a base object or XREF record is physically removed from the database). For moreinformation, see the chapter on state management in theInformatica MDM Hub Configuration Guide .RELATED TOPICS: Delete on page 65 PromotePendingXrefs on page 107About Informatica MDM Hub Requests 11 Restore on page 117User Management ServicesUser Management API requests enable developers to manage user security. For more information, see the securitychapter inInformatica MDM Hub Configuration Guide .RELATED TOPICS: Authenticate on page 58Other ServicesIn addition, the Informatica SIF API provides additional services for registering and unregistering users, managing theaudit trail, and other miscellaneous services. For more information, refer to the following SIF requests: Audit on page 57 GetSiperianObjectCompatibility on page 95 RegisterUsers on page 115 UnregisterUsers on page 131Using SIF SDK to Interface with SIF ClassesThe class com.siperian.sif.client.SiperianClient contains two essentially equivalent static methods for creatingan instance of SiperianClient that is customized by a properties file or by an equivalent java.util.Properties object.The properties determine the protocols that the instance uses to communicate with Informatica MDM Hub.The process method of SiperianClient provides the basic request/response interaction between the client programand Informatica MDM Hub. It accepts any subclass of com.siperian.sif.message.SiperianRequest as an argument.When it processes the request successfully, it returns a com.siperian.sif.message.SiperianResponse, which youmust cast to the correct response subclass. Otherwise it throws SiperianServerException.Each Informatica MDM Hub interaction uses a pair of subclasses of SiperianRequest and SiperianResponse. Forexample, an interaction to carry out a SIF Put request uses the classes PutRequest and PutResponse.12 Chapter 1: IntroductionC H A P T E R 2Setting Up the SIF SDKThis chapter includes the following topics: Overview of Setting Up the SIF SDK, 13 Before You Begin, 13 Deploying the SIF SDK, 14 About SIF API Javadoc, 14 Building Web Services, 15Overview of Setting Up the SIF SDKThis chapter explains how to set up the environment and tools necessary to use the SIF SDK. It lists the prerequisitesfor using SIF, deploying the SIF SDK, and building web services.Before You BeginBefore using the Informatica Services Integration Framework, you must have the following software installed: Informatica MDM Hub Ant 1.6.1 (preferred) AXIS 1.3 (optional) Eclipse Web Tools Platform IDE or 3.2 with WTP Plug-in Application server (WebLogic, WebSphere, JBoss)Note: Ensure the Application server host computer data format is dd-mmm-yyyy. This is the date format SIFprovides.Refer to the Informatica MDM Hub Release Notes for information about the specific versions of JDK, Ant, andsupported application servers.13Deploying the SIF SDKThe environment variable SIP_HOME denotes the directory into which you install Informatica MDM Hub. In thatdirectory is a file named siperian-sifsdk.zip. Unzip this file to a location on your development machine.The resulting directory structure contains libraries, build files, Javadocs, and everything else you need to build webservices as EAR files for deployment on an application server.About SIF API JavadocThe Informatica MDM Hub SIF API includes Javadoc that describe the functionality and use of the individualSiperianClient java classes and objects. Javadoc is the Sun Microsystems standard for generating HTMLdocumentation from Java source code.You can find the SIF API javadoc in the zip file Informatica_MDM_9.6.0_MSSQL_GA_JAVADOCS.zip that ships withthe installation files.One youve deployed the SIF SDK, you can view the Javadocs for SiperianClient and its associated classes andobjects. Open index.html to see a right-hand frame and two left-hand frames, as shown in the following illustration.The left frames provide links to the pages for all packages and all classes. The lower left frame displays the linksassociated with the package you select in the upper left frame.You can select All Classes in the upper left frame tosee a combined list of classes from all packages in the lower left frame.14 Chapter 2: Setting Up the SIF SDKThe right frame changes to show the pages you select. Begin by exploring the classes of thecom.siperian.sif.message package. Most of the classes used in application programs are in this package and itssubpackages.Building Web ServicesUsing the SIF Manager tool produces web services corresponding to the ORS-specific Java classes. You can use thebuild.xml file included in the SIF SDK to build additional custom web services.RELATED TOPICS: Using ORS-specific APIs on page 23Building Web Services 15C H A P T E R 3Using the SIF SDKThis chapter includes the following topics: Overview of Using the SIF SDK, 16 About SIF SDK, 16 Using SIF API Requests, 21 Using ORS-specific APIs, 23 Making Asynchronous SIF Requests, 34 Using the Security Access Manager (SAM) with SIF, 38 Using Informatica MDM Hub Metadata Management API, 39 Transactions, 40Overview of Using the SIF SDKThis chapter provides an overview for the Services Integration Framework API, how to use the SIF requests, SecurityAccess Manager (SAM), ORS-specific APIs, the Metadata Management APIs, and information for working withtransactions.About SIF SDKThe SIF Development Kit (SIF-SDK) is a toolkit for development of web services and Java applications that interactwith the Informatica MDM Hub. SIF-SDK is packaged with sample code that can be run in the Eclipse IDE. SIF-SDK isdelivered as part of the Resource Kit containing directory structures, libraries and build files in the resourcekit\sifsdk directory of the Hub server installation.The SIF SDK includes: utilities to build and deploy SIF applications set of Java API classes for creating services16Informatica MDM Hub SIF ManagerIn addition, Informatica MDM Hub also includes the SIF Manager, an Informatica MDM Hub Console tool thatgenerates (and deploys): data objects (Client Jar file) web services for ORS-specific APIs (WSDL and EAR file) ORS-specific JMS Event Messages for the current ORS. The XML schema for these messages can bedownloaded or accessed using a URL. For more information about JMS Event Messages, see theInformaticaMDM Hub Configuration Guide . ORS-specific APIs.RELATED TOPICS: Making Asynchronous SIF Requests on page 34 Using ORS-specific APIs on page 23SIF Development Kit (SIF-SDK)Using the SIF Development Kit (SIF-SDK) for your web services development provides the following advantages: automatic generation and deployment of data objects and data services for web services-based interaction generation of a Client Jar file that includes data objects that can be used in external applications creation and management of complex integration scenarios by combining data objects from different InformaticaMDM Hub schemas (ORS databases)You can use the SIF SDK to create data objects, components and client services, business services, and GUI controlsfor creation and deployment of web-based, rich-client applications.About SiperianObjectUIDThe SiperianObjectUID parameter contains a string identifier for an object in Informatica MDM Hub.SiperianObjectUID is a required parameter in most API requests.About SIF SDK 17Ensure you use the correct syntax when using the SiperianObjectUID parameter. The correct syntax is:.|Syntax ExamplesThe object type in the SiperianObjectUID depends on the API request. For example, the Cleanse request requires theSiperianObjectUID of a cleanse function. The correct syntax for specifying the Concatenate cleanse function is:CLEANSE_FUNCTION.String Functions|ConcatenateA Put request, on the other hand, requires a base object or package object type. The correct syntax for specifying theADDRESS_UPDATE package is:PACKAGE.ADDRESS_UPDATEObject TypesThe following table lists the SiperianObjectUID object types.SiperianObjectUID Object TypesAUDIT_TABLE INDEX RELATIONSHIPBASE_OBJECT INTERNAL_TABLE REMOTE_PACKAGEBATCH_GROUP LANDING_TABLE REPOSITORY_SETTINGSCASCADE_UNMERGE MAPPING ROLECLEANSE_FUNCTION MATCH_COLUMN SAM_CUSTOM_RESOURCECLEANSE_LIBRARY MATCH_KEY SAM_RESOURCECOLUMN MATCH_PATH_COMPONENT SAM_RESOURCE_GROUPDATA_SECURITY_FILTER MATCH_PATH_COMPONENT_FILTERSAM_RESOURCE_METADATADISTINCT_SYSTEM MATCH_POPULATION SEQUENCEHISTORY MATCH_RULE STAGING_TABLEHM_BLOB MATCH_RULE_SET SUBJECT_AREAHM_CONFIGURATION MERGE_HISTORY SYSTEMHM_ENTITY_OBJECT MESSAGE_QUEUE_RULE SYSTEM_COLUMN_TRUSTHM_ENTITY_TYPE METADATA_MANAGER TASK_ASSIGNMENT_CONFHM_HIERARCHY METSYSTEM TASK_TYPEHM_PACKAGE OTHER_TABLE UNIQUE_KEY_INDEXHM_PACKAGE_COLUMN PACKAGE USERHM_PROFILE PRIMARY_KEY_INDEX VALIDATION_RULEHM_RELATIONSHIP_OBJECT PRIMARY_KEY_MATCH_RULE WORKFLOW_ENGINE18 Chapter 3: Using the SIF SDKSiperianObjectUID Object TypesHM_RELATIONSHIP_TYPE QUERY XREFHM_SANDBOX QUERY_GROUP XREF_HISTORYIMMUTABLE_SYSTEM RAWAbout TaskDataThe TaskData object contains information about a task.The following table describes the TaskData fields:Field DescriptionTaskRecord A link to a data record associated with a task. See About TaskRecord on page 20.Comment An optional task comment.TaskType The task type.SubjectAreaUID The UID of the task subject area.Title The task title.TaskID The ROWID of the task. Cannot be set by user.DueDate The date when the task is due.Priority The priority of the task.1: High priority.0: Normal priority. The default is 0.-1: Low priority.StatusEnum The workflow status. The default is TaskStatusEnum.OPEN.OwnerUID The user or role ID to whom the task is assigned.InteractionID The Interaction ID.WorkflowProcessID The ID of the workflow process that contains the task. Cannot be set by user.CreateDate The date when the task was created. Cannot be set by user.Creator The name of the user who created the task. Cannot be set by user.LastUpdateDate The date when the task was updated. Cannot be set by user.LastUpdatedBy The name of the user who updated the task. Cannot be set by user.PreviousOwner The name of the user or role to whom the task was previously assigned. The value is Null if the task isnew or has not been assigned. Cannot be set by user.About SIF SDK 19About TaskRecordThe TaskRecord object contains information about a record.The following table describes the TaskRecord fields:Field DescriptionSiperianObjectUID An identifier for an object in Informatica MDM Hub. See About SiperianObjectUID on page 17.RecordKey An identifier for a record in Informatica MDM Hub. See About RecordKey on page 23.MatchRuleUID An identifier for a match rule in Informatica MDM Hub. Only merge tasks require a MatchRuleUID.SIF Client InterfaceThe siperian-api.jar file contains the Java classes required for using the SIF APIs: The com.siperian.sif.client package manages communications with the Hub server. You can configure theAPIs to use the EJB, SOAP, or HTTP protocol to communicate with the Hub Server. The com.siperian.sif.message package provides data objects and abstract classes for the SIF APIs. All requestsare sub-classes of SiperianRequest.The siperian-api.jar file can be found in the following locations:On Windows:\hub\sifsdk\lib\hub\server\libOn UNIX:/hub/sifsdk/lib/hub/server/libExact Matches on Fuzzy Base ObjectsTo perform exact matches on fuzzy base objects, you must add the following parameter to cleanse\resources\cmxcleanse.properties:cmx.server.match.exact_match_fuzzy_bo_api=1By default, this parameter is not listed by the Hub install. After adding the parameter and setting it to 1, you can doexact matching on a fuzzy BO in the API.Note: You must restart the application server for changes to this parameter to take effect.SIF API Debug LogThe SIF API Debug log is cmxserver.log. You can access this file here:/logs/The cmxserver.properties Search ParametersThe cmxserver.properties file contains many user-configurable settings. The cmxserver.properties file can befound in /hub/server/resources/.20 Chapter 3: Using the SIF SDKThe following parameters can be added to the cmxserver.properties file to change the behavior of the SIF SearchAPIs:Parameter Description Defaultsif.search.result.refresh.interval.seconds Specifies the interval for running the cleanupprocess for cached searches. The cleanup processalso cleans the temporary tables that are createdby the unmerge process.1 secondsif.search.result.query.timeToLive.seconds Specifies the number of seconds that an unusedquery remains cached. After this time has expired,any cached query can be removed.900 secondssif.search.result.drop.batch.record.count Specifies the number of cached searches toprocess at one time. The number of searches thatare specified by this parameter are fetched until allexpired searches are processed.The status table deletes are committed after eachbatch is processed.200 searchessif.search.result.drop.batch.interval.milliseconds Specifies the number of milliseconds to sleep aftereach batch of search results is processed. Thisparameter can be used to insert a delay betweenthe processing of each batch.0 millisecondscmx.server.match.max_time_searcher Specifies the maximum duration allowed for asearch to execute. If the search does not completein this amount of time, the search is aborted.99999999secondsUsing SIF API RequestsEach SIF service has a pair of messages: request and response. The typical usage is to instantiate and populate arequest (subclass of SiperianRequest), then call the SiperianClient.process() method, and cast the response(subclass of SiperianResponse), to the corresponding response class.Note: If a date value is passed to the APIs as a string, you must ensure that the date format is yyyy/MM/ddHH:mm:ss.SiperianRequest ClassThe SIF API classes (Java) that implement individual Informatica MDM Hub operations all extend the classSiperianRequest. This class provides access to the following information: Username and password of the user associated with the request. Every request must have an associated user. This information determines whether or not the request can haveaccess to the records and resources it needs. ORS to which the request is directed. If the request does not specify an ORS, it goes to the users default ORS. Interaction identifier for grouping requests into interactions. An AsynchronousOptions object containing information necessary for asynchronous requests and responses.Using SIF API Requests 21If the AsynchronousOptions object is null, SIF processes the request synchronously. If the object is not null, SIFprocesses the request synchronously or asynchronously according to the value of an option in the requestobject.When you process a request asynchronously, SIF immediately returns a dummy response with message statusthat tells you that it is processing the request asynchronously. The actual response goes to a JMS queue or topicthat you specify. If you do not specify a queue or topic, SIF discards the actual response.You can include a correlation ID to enable you to identify the response to this request from among multipleresponses. Transaction attribute typeThe transaction attribute type specifies whether and how a request can participate in transactions. You can get butnot set this information. Different request types have different transaction attribute types. The possible transactionattribute types are:Transaction Attribute Type DescriptionSUPPORTS Works within transactionsREQUIRED Requires a transactionREQUIRES_NEW Requires a new transactionNOT_SUPPORTED Does not work with transactions Name of the requestYou can interrogate a request object to see which specific request type it is an instance of.After setting up the request, pass it to the process method for execution. The process method either throws anexception or returns a response object of the appropriate type.Constructing RequestsEvery SIF class has an associated Request object. This object contains the description of what action is to be taken bySIF.For example, the following sample SIF call is a search query request. This request will execute the packagePARTY_ADDRESS_READ_PKG. It will return no more than five (5) rows and use the filter criteriaPARTY_FULL_NAME LIKE and an inserted parameter.SearchQueryRequest request = new SearchQueryRequest(); request.setRecordsToReturn(5); //Required request.setSiperianObjectUID("PACKAGE.PARTY_ADDRESS_READ_PKG");//Required request.setFilterCriteria("PARTY_FULL_NAME LIKE ?");Processing ResponsesEvery SIF request returns an associated Response object. This object contains the results for the request.For example, the following sample SIF call is a response from a GetOrsMetadataRequest request:GetOrsMetadataResponse getOrsMetadataResponse = (GetOrsMetadataResponse)sifClient.process(getOrsMetadataRequest );System.out.println("ORS Metadata (first line only): " +getOrsMetadataResponse.getRepositoryXml().substring(0, 80));;22 Chapter 3: Using the SIF SDKAbout RecordsA Record is a collection of Fields, essentially a list of name/value pairs. Each name in the Record must be unique. AField represents a named value in a Record and is strongly typed. Values can be: a String, BigInteger, BigDecimal orDate.Both Requests and Responses can contain Records.Usage ExampleCleanseRequest cleanseRequest = new CleanseRequest();cleanseRequest.setCleanseFunctionName( cleanseFunctionName);

Record record = new Record();for(int i=2; i adminfalse localhost-orcl-DS_UI1PACKAGE.PKG_PARTY 100

true

false

false

false

false

false

false false false

For Get[ResourceName] Response:

The GET was executed successfully - retrieved 1 records 173

173 ROWID_OBJECT

ELIEZER MENDEZ DISPLAY_NAME

Person PARTY_TYPE

Using ORS-specific APIs 29PACKAGE.PKG_PARTY

Put[Resource_Name]Put adds a new row or updates an existing row of a base object table. The package must be put-enabled. Use thefollowing syntax for the ORS-specific version of Put:Put[ResourceName]WhereResourceNamedefines the search results.To learn more about creating put-enabled packages, see theInformatica MDM Hub Configuration Guide .Important:Use the AddRelationship and UpdateRelationship requests to add or update relationship records. Usingthe Put request or an ORS-specific put request to update relationships can lead to improperly formed relationshiprecords.Usage ExampleFor Put[ResourceName] Request: p_b_create_user

passwordfalse

wewks01-wewks01-CMX_SIF

CRM

CUSTOMER_CLASSR

FULL_NAMEPUTMW1

FIRST_NAMEPUT

MIDDLE_NAMEM

LAST_NAMEW1

NAME_GENERATION

SUB_CATEGORY_ROWID

ROWID_BO_CLASS3

PACKAGE.CUSTOMER_UPDATE30 Chapter 3: Using the SIF SDK

true

For Put[ResourceName] Response:

The PUT was processed successfully

CRM5342323387000

Insert

SearchMatchColumn[Resource_Name]User specifies values of a match column. Use the following syntax for calling the ORS-specific version ofSearchMatchRecord:SearchMatchColumn[ResourceName]WhereResourceNamedefines the search results.In addition: User specifies the match column value. Standard match rule options apply. Results are returned as records of the package.Usage ExampleFor SearchMatchColumn[ResourceName] Request:

admin adminfalse cid:1224793701596 localhost-orcl-DS_UI1 1 true NONE ? John Doe ? ? ?

Using ORS-specific APIs 31For SearchMatchColumn[ResourceName] Response:

John Doe

SearchMatchRecord[Resource_Name]User specifies values of a related record (shares the same parent base object). SearchMatchRecord extracts thematch column values from the record. Use the following syntax for calling the ORS-specific version ofSearchMatchRecord:SearchMatchRecord[ResourceName]WhereResourceNamedefines the search results.In addition: User specifies the values of search package. Standard match rule options apply. Results are returned as records of the package.Usage ExampleFor SearchMatchRecord[ResourceName] Request:

admin adminfalse localhost-orcl-DS_UI1 ? 1 true NONE ?

John

Doe? 32 Chapter 3: Using the SIF SDK

For SearchMatchRecord[ResourceName] Response:

JohnDoe

SearchQuery[Resource_Name]SearchQuery searches for records in a package based on an SQL condition clause. The condition clause canreference any columns in the package and can use operators supported by the target database. A system parameterdetermines the maximum number of records that can be returned.Note:You can perform a case-insensitive search if the case.insensitive.search property is set to true inthecmxserver.properties.xml file. For example, to perform a case-insensitive search, you can specify a searchcriterion using the SearchQuery API, such as lower(name)=lower('Jim').Use the following syntax for calling the ORS-specific version of SearchQuery:SearchQuery[Resource_Name]Where theResource_Namedefines the search criteria and search results.In addition: User specifies fields of the package Implicit AND criteria used across Fields Implicit OR criteria used across Records Results are returned as records of the packageUsage ExampleFor SearchQuery[ResourceName] Request:

admin adminfalse localhost-orcl-DS_UI1 10 true

ELIEZER MENDEZ

Using ORS-specific APIs 33For SearchQuery[ResourceName] Response:

The SEARCH QUERY REQUEST was processed successfully 173ELIEZER MENDEZPerson 1

Making Asynchronous SIF RequestsThere are two ways to make asynchronous requests Set the AsynchronousOptions on a request. When the request is submitted is placed on a queue for processing. Ifthe jmsReplyTo field is set, the response is posted to the specified queue. If the jmsCorrelationId is set, this ID isset on the response. Place the request directly on the JMS queue (queue/siperian.sif.jms.queue). If the replyTo header is set, theresponse is posted to the specified queue. If the jmsCorrelationId is set, this ID is set on the response. Requestsmust be formatted as XML as specified in the XML schema.The response that is placed on the outgoing JMS queue (if configured) will carry the correlation ID as set on therequest message.Note:The Services Integration Framework (SIF) uses a message-driven bean (MDB) on the JMS queue (namedsiperian.sif.jms.queue) to process incoming asynchronous SIF requests. This message queue and the connectionfactory (named siperian.mrm.jms.xaconnectionfactory) must be configured for the specific application server youare using for your Informatica MDM Hub implementation. Correctly configured message queues are essential to afully-functioning Informatica MDM Hub installation. The Informatica installer automatically sets up message queuesand connection factory configuration. If you need to manually configure your message queues or connection factoriesfor testing or troubleshooting purposes, see the Informatica MDM Hub Installation Guide.About JMS Event MessagesInformatica MDM Hub Console includes a JMS Event Schema Manager tool that you can use to generate and deployORS-specific JMS event messages for the current ORS. The XML schema for these messages can be downloaded oraccessed using a URL. For more information about JMS event messages, see the Configuring the Publish Processand Generating ORS-specific APIs and Message Schemas chapters in theInformatica MDM Hub ConfigurationGuide .JMS ORS-specific event messages: use SIF-style XML (utilized Castor) provide an associated message schema (this is available using a file or URL) enable scheduled auto-generation are backwards-compatible; the message queue can be configured to generate new or legacy format34 Chapter 3: Using the SIF SDKThe JMS Event Schema Manager uses an XML schema that defines the message structure the Hub uses to generateJMS messages. This XML schema is included as part of the Informatica MDM Hub Resource Kit. (The ORS-specificschema is available using a URL or downloadable as a file).Note:JMS Event Schema generation requires at least one secure package.Important:If there are two databases that have the same schema (for example, CMX_ORS), the logical name (whichis the same as the schema name) will be duplicated for JMS Events when the configuration is initially saved.Consequently, the database display name is unique and should be used as the initial logical name instead of theschema name to be consistent with the SIF APIs. You must change the logical name before generating theschema.Each ORS has an XSD file specific to the ORS that uses the elements from the common XSD file (siperian-mrm-events.xsd). The ORS-specific XSD is named as -siperian-mrm-event.xsd. The XSD defines two objectsfor each package in the schema:Object Name Description[packageName]Event Complex type containing elements of type EventMetadata and [packageName].[packageName]Record Complex type representing a package and its fields. Also includes an element oftype SipMetadata. This complex type resembles the package record structuresdefined in the Informatica MDM Hub Services Integration Framework (SIF).Note:If legacy XML event message objects are to be used, ORS-specific message object generation is notrequired.Elements in an XML MessageThe following table describes the elements in an XML message.Field DescriptionRoot Node Root node in the XML message.Event Metadata Root node for event metadata. Unique ID for siperianEvent messages. Type of event. One of the following values:InsertUpdateUpdate XREFAccept as UniqueMergeUnmergeMerge Update UID of the base object affected by this action.Making Asynchronous SIF Requests 35Field Descript