Você está na página 1de 138

Metadata Exchange SDK Guide

Informatica PowerCenter®
(Version 8.1.1)
Informatica PowerCenter Metadata Exchange SDK Guide
Version 8.1.1
September 2006

Copyright (c) 1998–2006 Informatica Corporation.


All rights reserved. Printed in the USA.

This software and documentation contain proprietary information of Informatica Corporation, they are provided under a license agreement containing
restrictions on use and disclosure and is 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 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-2004 The Apache Software Foundation. All rights reserved.

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: Using Metadata Exchange SDK . . . . . . . . . . . . . . . . . . . . . 1


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Capabilities of Metadata Exchange SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Major Enhancements in Metadata Exchange SDK 8.1 . . . . . . . . . . . . . . . . . . 4
New Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Major Enhancements in Metadata Exchange SDK 7.x . . . . . . . . . . . . . . . . . . 5
Upgrading Advanced External Procedure Transformations . . . . . . . . . . . . 5
Working with Folder Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
New Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Modified Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Installing Metadata Exchange SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Using the Sample Applications in Metadata Exchange SDK . . . . . . . . . . . . . 11
Sample Interactive Graphical Metadata Browser/Editor in Visual Basic . . 11
Sample Textual Browser in Visual C++ . . . . . . . . . . . . . . . . . . . . . . . . . 13
Sample Target and Source Metadata Writer in Visual C++ . . . . . . . . . . . 14
Using the Sample Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Restrictions and Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Chapter 2: Metadata Exchange SDK Interfaces . . . . . . . . . . . . . . . . . 19


Metadata Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

iii
IMXConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXConstraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXConstraintElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXCube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXDimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXFact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXFileConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
IMXFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXFolderVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXHierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXHierarchyLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXLevelField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXMapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
IMXMetaExt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXMetaExtDomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXMetaExtVal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXRepository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXScheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXSessionTask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXSessionTaskLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
IMXSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXSourceField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXTargetField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXTargetIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXTargetIndexField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IMXTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
IMXTransformationLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
IMXTransformField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
IMXWorkflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
IMXWorkflowLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
IMXWorklet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Collection Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
IMXConnections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
IMXConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

iv Table of Contents
IMXConstraintElements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
IMXCubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
IMXDimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
IMXFacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
IMXFolders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXFolderVersions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXHierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXHierarchyLevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXLevelFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXLevels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXMappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXMetaExtDomains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXMetaExts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IMXMetaExtVals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXObjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXRepositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXSessionTaskLogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXSessionTasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXSourceFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXSources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXStrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXTargetFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IMXTargetIndexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXTargetIndexFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXTargets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXTransformationLogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXTransformFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXTransforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXWorkflowLogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXWorkflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
IMXWorklets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Environment Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
IMXEnvironment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
XML Import and Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
XML Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
XML Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Table of Contents v
Appendix A: Metamodel for Metadata Exchange SDK . . . . . . . . . . . . 33
Metamodel for Metadata Exchange SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Metadata Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Session and Workflow Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Appendix B: Programming Reference Guide . . . . . . . . . . . . . . . . . . . 37


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IMXConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IMXConstraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
IMXConstraintElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
IMXCube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
IMXDimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
IMXEnvironment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
IMXFact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
IMXFileConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
IMXFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
IMXFolderVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
IMXGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
IMXHierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
IMXHierarchyLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
IMXLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
IMXLevelField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
IMXMapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
IMXMetaExt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
IMXMetaExtDomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
IMXMetaExtVal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
IMXObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
IMXRepository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
IMXScheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
IMXSessionTask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
IMXSessionTaskLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
IMXSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
IMXSourceField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
IMXString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
IMXTarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
IMXTargetField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
IMXTargetIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

vi Table of Contents
IMXTargetIndexField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
IMXTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
IMXTransformationLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
IMXTransformField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
IMXWorkflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
IMXWorkflowLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
IMXWorklet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Appendix C: Error Messages and Codes . . . . . . . . . . . . . . . . . . . . . . 91


Error Messages and Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Appendix D: Transformation Properties . . . . . . . . . . . . . . . . . . . . . 117


Transformation Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Table of Contents vii


viii Table of Contents
List of Figures
Figure 1-1. The Metadata Exchange SDK-Based VB Metadata Browser . . . . . . . . . . . . . . . . . 13
Figure A-1. UML Model of the Metadata Exchange SDK Interface . . . . . . . . . . . . . . . . . . . . . 34
Figure A-2. UML Model of the Session and Workflow Interfaces . . . . . . . . . . . . . . . . . . . . . . 35

List of Figures ix
x List of Figures
List of Tables
Table 2-1. Metadata Exchange SDK Objects Supported for Export . . . . . . . . . . . . . . . . . . . . . 30
Table B-1. Methods in IMXConnection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Table B-2. Methods in IMXConstraint Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table B-3. Methods in IMXConstraintElement Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table B-4. Methods in IMXCube Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Table B-5. Methods in IMXDimension Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table B-6. Methods in IMXEnvironment Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table B-7. Methods in IMXFact Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table B-8. Methods in IMXFileConnection Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Table B-9. Methods in IMXFolder Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Table B-10. Methods in IMXFolderVersion Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Table B-11. Methods in IMXGroup Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Table B-12. Methods in IMXHierarchy Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Table B-13. Methods in IMXHierarchyLevel Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Table B-14. Methods in IMXLevel Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Table B-15. Methods in IMXLevelField Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Table B-16. Methods in IMXMapping Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Table B-17. Methods in IMXMetaExt Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Table B-18. Methods in IMXMetaExtDomain Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Table B-19. Methods in IMXMetaExtVal Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Table B-20. Methods in IMXObject Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Table B-21. Methods in IMXRepository Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Table B-22. Methods in IMXScheduler Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Table B-23. Methods in IMXSessionTask Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Table B-24. Methods in IMXSessionTaskLog Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Table B-25. Methods in IMXSource Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Table B-26. Methods in IMXSourceField Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Table B-27. Methods in IMXString Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Table B-28. Methods in IMXTarget Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Table B-29. Methods in IMXTargetField Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Table B-30. Methods in IMXTargetIndex Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Table B-31. Methods in IMXTargetIndexField Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Table B-32. Methods in IMXTransform Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Table B-33. Methods in IMXTransformationLog Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Table B-34. Methods in IMXTransformField Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Table B-35. Methods in IMXWorkflow Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Table B-36. Methods in IMXWorkflowLog Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Table B-37. Methods in IMXWorklet Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Table D-1. Transformation Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

List of Tables xi
xii List of Tables
Preface

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

xiii
About This Book
The Metadata Exchange SDK Guide contains information about COM-based APIs to
PowerCenter 8.1.1 repositories.
This document assumes you are familiar with COM programming as well as high-level
metadata concepts in the PowerCenter repository.
The material in this book is also available online.

Document Conventions
This guide uses the following formatting conventions:

If you see… It means…

italicized text The word or set of words are especially emphasized.

boldfaced text Emphasized subjects.

italicized monospaced text This is the variable name for a value you enter as part of an
operating system command. This is generic text that should be
replaced with user-supplied values.

Note: The following paragraph provides additional facts.

Tip: The following paragraph provides suggested uses.

Warning: The following paragraph notes situations where you can overwrite
or corrupt data, unless you follow the specified procedure.

monospaced text This is a code example.

bold monospaced text This is an operating system command you enter from a prompt to
run a task.

xiv Preface
Other Informatica Resources
In addition to the product manuals, 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.informatica.com. The site contains product information, user group information,
newsletters, access to the Informatica customer support case management system (ATLAS),
the Informatica Knowledge Base, Informatica Documentation Center, and access to the
Informatica user community.

Visiting the Informatica Web Site


You can access the Informatica corporate web site at http://www.informatica.com. The site
contains information about Informatica, 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, and implementation
services.

Visiting the Informatica Developer Network


You can access the Informatica Developer Network at http://devnet.informatica.com. The
Informatica Developer Network is a web-based forum for third-party software developers.
The site contains information about how to create, market, and support customer-oriented
add-on solutions based on interoperability interfaces for Informatica products.

Visiting the Informatica Knowledge Base


As an Informatica customer, you can access the Informatica Knowledge Base at
http://my.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.

Obtaining Technical Support


There are many ways to access Informatica Technical Support. You can contact a Technical
Support Center by using the telephone numbers listed the following table, you can send
email, or you can use the WebSupport Service.

Preface xv
Use the following email addresses to contact Informatica Technical Support:
♦ support@informatica.com for technical inquiries
♦ support_admin@informatica.com for general customer service requests
WebSupport requires a user name and password. You can request a user name and password at
http://my.informatica.com.

North America / South America Europe / Middle East / Africa Asia / Australia

Informatica Corporation Informatica Software Ltd. Informatica Business Solutions


Headquarters 6 Waltham Park Pvt. Ltd.
100 Cardinal Way Waltham Road, White Waltham Diamond District
Redwood City, California Maidenhead, Berkshire Tower B, 3rd Floor
94063 SL6 3TN 150 Airport Road
United States United Kingdom Bangalore 560 008
India

Toll Free Toll Free Toll Free


877 463 2435 00 800 4632 4357 Australia: 00 11 800 4632 4357
Singapore: 001 800 4632 4357

Standard Rate Standard Rate Standard Rate


United States: 650 385 5800 Belgium: +32 15 281 702 India: +91 80 4112 5738
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
Chapter 1

Using Metadata Exchange


SDK
This chapter includes the following topics:
♦ Overview, 2
♦ Capabilities of Metadata Exchange SDK, 3
♦ Major Enhancements in Metadata Exchange SDK 8.1, 4
♦ Major Enhancements in Metadata Exchange SDK 7.x, 5
♦ Installing Metadata Exchange SDK, 10
♦ Using the Sample Applications in Metadata Exchange SDK, 11
♦ Restrictions and Limitations, 16

1
Overview
Metadata Exchange SDK provides a set of COM-based APIs for exchanging metadata with
the PowerCenter repository. The following list outlines the main features of the object-based
Metadata Exchange SDK APIs:
♦ Extensive metadata content, especially multi-dimensional for OLAP
♦ Ability to write metadata into the repository
♦ Complete encapsulation of the underlying repository organization by means of an API
♦ Smooth integration with third-party tools
♦ Component Object Model (COM) API for object-based interoperability through various
programming languages
♦ Enabling development of thin-client, especially web-based, applications for metadata
management
♦ Compatibility with industry standards, such as XML and UML
The Metadata Exchange SDK 8.1 COM-based interfaces support PowerCenter 8.1
repositories.
This document assumes that you are familiar with COM programming and high-level
metadata concepts in the PowerCenter repository.

2 Chapter 1: Using Metadata Exchange SDK


Capabilities of Metadata Exchange SDK
Metadata Exchange SDK provides a COM-based programming interface to the PowerCenter
repository. This SDK consists of a set of interfaces that comply with Microsoft’s COM
protocol. COM is a binary object model that serves as the standard for creating interoperable
software in the Microsoft Windows environment. COM is also ported to major UNIX
platforms.
Application programs written in various programming languages, such as C, C++, Visual
Basic, and Java can utilize the Metadata Exchange SDK COM interfaces for browsing,
querying, and writing metadata in a PowerCenter 8.1 repository.
Metadata Exchange SDK provides the metadata browsing capabilities for the following
fundamental repository objects:
♦ Repository
♦ Folder
♦ Mapping
♦ Source
♦ Target
♦ Target join relationship
♦ Transformation
♦ Session
♦ Workflow
♦ Worklet
♦ Cube
♦ Dimension
♦ Hierarchy
♦ Level
♦ Fields of sources, targets, transformations
Metadata Exchange SDK can query target attributes and primary key-foreign key (PK-FK)
join relationships of source and target tables. Finally, it is possible to use this SDK to write
and update metadata for new source and target tables into a repository.
When you use Metadata Exchange SDK to browse metadata in a versioned repository, the
Repository Service returns information for the latest version of an object, the version saved in
the repository. However, if you have the object checked out, the Repository Service returns
information for the checked out version.

Capabilities of Metadata Exchange SDK 3


Major Enhancements in Metadata Exchange SDK 8.1
This section briefly discusses the major enhancements made in the Metadata Exchange SDK
8.1 repository API.

New Methods
This section lists the new methods for existing interfaces.

IMXRepository Interface
♦ get_repositDomainName
♦ put_repositDomainName

4 Chapter 1: Using Metadata Exchange SDK


Major Enhancements in Metadata Exchange SDK 7.x
This section briefly discusses the major enhancements made in the Metadata Exchange SDK
7.x repository API.

Upgrading Advanced External Procedure Transformations


Effective in PowerCenter 7.0, the Custom transformation replaces the Advanced External
Procedure transformation. When you upgrade the repository, the upgrade process converts all
Advanced External Procedure transformations to Custom transformations.
When you upgrade, you can use any DLL or shared library created with previous versions of
PowerCenter and PowerMart if you do not need to recompile it. For more information about
recompiling external procedures, see “Transformations and Caches” in the Post-Upgrade
Reference.
When you use the Metadata Exchange SDK to browse Advanced External Procedure
transformations in the repository, the Repository Service returns information for the Custom
transformation that was created by upgrading an Advanced External Procedure
transformation.
You can use the Metadata Exchange SDK to create an Advanced External Procedure
transformation to the repository. However, when you use the Save method in the IMXFolder
or IMXFolderVersion interface to save the transformation, the Repository Service upgrades it
to a Custom transformation.
You can modify the transformation after you save it until you fetch it from the repository
again. When you fetch a Custom transformation upgraded from an Advanced External
Procedure transformation, you cannot modify it.
You cannot use the Metadata Exchange SDK to create or modify Custom transformations in
a PowerCenter 7.0 repository. If you need to create or modify Custom transformations, use a
different method, such as exporting and importing them from the Designer.

Working with Folder Versions


Effective with version 7.0, PowerCenter no longer uses folder versions. The upgrade process
converts existing folder versions to individual folders. The highest-numbered folder version
upgrades to a folder with the same name as the existing folder. Lower-numbered folder
versions upgrade to folders with the name of the existing folder appended with the version
number. The new folder names for lower numbered versions use the following format:
<folder_name>_<version_number>

For example, you have the folder Customers. Customers contains folder versions 3.0.0, 2.5.0,
and 1.0.0. The upgrade process upgrades the contents of Customers to three separate folders:
Customers, Customers_020500, and Customers_010000. Customers contains all objects
from folder version 3.0.0 in the existing folder. For more information about how the upgrade
process upgrades folder versions, see “Repository and Repository Service” in the Post-Upgrade
Reference.

Major Enhancements in Metadata Exchange SDK 7.x 5


Because of this change, you now use the IMXFolder interface to access repository objects and
to create sources, targets, and transformations. All methods previously included in
IMXFolderVersion are now included under IMXFolder.
However, you can still use the IMXFolderVersion interface to access and create repository
objects. When you use IMXFolderVersion to access objects with a repository you upgraded to
version 7.0, the Repository Service returns objects listed under the folder that was upgraded
from the specified folder version.
Note: You can use programs that use IMXFolderVersion. However, verify the program code
can accept a folder name instead of a folder version number. For example, if the program
expects a result in the form of 1.0.0, it might fail when it receives a folder name instead of a
number.

New Methods
This section lists the new methods for existing interfaces.

IMXFolder Interface
The following list contains new methods for the IMXFolder interface:
♦ get_Sources
♦ get_Targets
♦ get_Transforms
♦ get_Mappings
♦ get_Mapplets
♦ get_Cubes
♦ get_Dimensions
♦ get_Hierarchies
♦ get_SourcePrimaryKeyConstraints
♦ get_SourceForeignKeyConstraints
♦ get_TargetPrimaryKeyConstraints
♦ get_TargetForeignKeyConstraints
♦ CreateSource
♦ CreateTarget
♦ CreateTransformation
♦ DeleteSource
♦ DeleteTarget
♦ DeleteTransformation
♦ Import
♦ GetObjects

6 Chapter 1: Using Metadata Exchange SDK


IMXSource Interface
The following list contains new methods for the IMXSource interface:
♦ SaveWithoutCheckin
♦ SaveWithCheckinComment

IMXTarget Interface
The following list contains new methods for the IMXTarget interface:
♦ SaveWithoutCheckin
♦ SaveWithCheckinComment

IMXTransform Interface
The following list contains new methods for the IMXTransform interface:
♦ SaveWithoutCheckin
♦ SaveWithCheckinComment

IMXSessionTaskLog Interface
The following list contains a new method for the IMXSessionTaskLog interface:
♦ get_ServerName

IMXWorkflowLog Interface
The following list contains a new method for the IMXWorkflowLog interface:
♦ get_ServerGridName

Modified Interfaces
This section lists modifications to and new behavior for existing interfaces.

IMXFolderVersion Interface
When you use a method in the IMXFolderVersion interface, the method affects the upgraded
folder instead of a folder version. For example, when you use the get_Name method, the
method returns the name of the upgraded folder. It no longer returns the name of a folder
version. Similarly, when you use the CreateSource method, the method creates a source in the
upgraded folder.

IMXFolder
When you use the Save method with a repository enabled for versioning, the method saves all
modified objects in the folder and checks them in with a new version number.

Major Enhancements in Metadata Exchange SDK 7.x 7


When you use the Save method with a repository not enabled for versioning, the method
saves the metadata in this folder into the repository.

IMXRepository
All Query<object_name> methods in this interface ignore the string you pass for the folder
version argument. Also, these methods require additional arguments. For more information
about the method syntax, see “IMXRepository” on page 64.

IMXSessionTask
The get_MappingVersion method now returns an empty string for the folder version name.

IMXSource
When you use any of the methods in the IMXSource interface to modify a source in a
repository enabled for versioning, the method checks out the source, modifies it and increases
the version number by one. However, if you are the user who has the object checked out, the
method keeps the object checked out and does not increase the version number. If a different
user has the source checked out, the method returns an error message with the name of the
user who checked out the source.
When you use any of the methods in the IMXSource interface to modify a source in a
repository not enabled for versioning, the method just modifies the source.
When you use the Save method with a repository enabled for versioning, the method saves the
source metadata with a default check in comment and checks it in with the version number
determined by the method that increased the object version number.

IMXTarget
When you use any of the methods in the IMXTarget interface to modify a target in a
repository enabled for versioning, the method checks out the target, modifies it, and increases
the version number by one. If someone has the target checked out, the method returns an
error message with the name of the user who checked out the target.
When you use any of the methods in the IMXTarget interface to modify a target in a
repository not enabled for versioning, the method just modifies the target.
When you use the Save method with a repository enabled for versioning, the method saves the
target metadata with a default check in comment and checks it in with the version number
determined by the method that increased the object version number.

IMXTransform
When you use any of the methods in the IMXTransform interface to modify a transformation
in a repository enabled for versioning, the method checks out the transformation, modifies it,
and increases the version number by one. If someone has the transformation checked out, the
method returns an error message with the name of the user who checked out the
transformation.

8 Chapter 1: Using Metadata Exchange SDK


When you use any of the methods in the IMXTransform interface to modify a transformation
in a repository not enabled for versioning, the method just modifies the transformation.
When you use the Save method with a repository enabled for versioning, the method saves the
transformation metadata with a default check in comment and checks it in with the version
number determined by the method that increased the object version number.

Major Enhancements in Metadata Exchange SDK 7.x 9


Installing Metadata Exchange SDK
Metadata Exchange SDK is a COM in-process server that works with any PowerCenter 8.1
repository. You can install the Metadata Exchange SDK COM server and its components
with the installation program. The installation program registers the Metadata Exchange SDK
COM server and its components. Also included are documentation, sample code, and a
sample repository.
The following are the system requirements for installing and using Metadata Exchange SDK:
♦ IBM PC or compatible
♦ Windows 2000/2003/XP
♦ At least 64 MB of memory
♦ At least 64 MB of disk space
♦ Visual Studio .NET 2003 or later for compiling the sample applications
♦ A DBMS, such as Microsoft SQL Server or Oracle, to store the repository metadata

To install Metadata Exchange SDK:

1. Run the setup.exe file on the installation CD.


2. Choose the location where you want to install Metadata Exchange SDK.
The setup program registers the MX COM interfaces in the local registry and alters the
system PATH environment variable to point to the directory where the MX DLLs have
been installed.
3. When prompted, choose whether you want to restart your computer so that changes to
the PATH environment applies to all applications.
After you install Metadata Exchange SDK, you can see the following subfolders in the
installation directory:
♦ Bin
♦ SampleRepositories
♦ Vb
♦ Vc
The bin subfolder contains all of the binary files, such as the DLLs. The SampleRepositories
subfolder contains the sample backup PowerCenter repository. The Vb and Vc subfolders
contain the sample Visual Basic and Visual C++ programs, respectively.

10 Chapter 1: Using Metadata Exchange SDK


Using the Sample Applications in Metadata Exchange
SDK
The Visual C++ and Visual Basic sample programs provided with this SDK can be used for
textual and graphical browsing of any PowerCenter 8.1 repository, including the sample
repository included on the Metadata Exchange SDK installation CD. The following sections
describe how to compile these sample applications. Vendors are encouraged to reuse as much
of the sample code as desired.

Sample Interactive Graphical Metadata Browser/Editor in Visual


Basic
The sample Visual Basic browser appears as a window displaying a hierarchical object
navigator on the left and an object property browser on the right, similar to the Repository
Manager. You can use the metadata browser to query specific target metadata, such as primary
and foreign keys through a dialog box accessed from the PK-FK query button. You can also
use the search button to search for various objects in the repository.
In addition to the browsing features of the Repository Manager, the sample Visual Basic
application can display the tree-based hierarchical relationships between the levels in a
hierarchy of a dimension.
The Visual Basic application lets you set folder permissions, query different types of
constraints, create an index on a target table, or export data from the repository to XML
compliant format. You can view the data in any application capable of interpreting XML data,
such as Microsoft Internet Explorer or XML Notepad. You can either export the entire
repository or a selected node (and all its children).
The Visual Basic application also provides some data checking to prevent writing incorrect
metadata into the repository. You can use the refresh button to browse the latest metadata in
memory.
You can use the Visual Basic application to add the following objects to the repository:
♦ Folder
♦ Source
♦ Source Field
♦ Source Field Constraint
♦ Target
♦ Target Field
♦ Target Field Constraint
♦ Target Index

Using the Sample Applications in Metadata Exchange SDK 11


♦ Transformation (External Procedure and Advanced External Procedure transformations
only)
♦ Transformation Field (External Procedure and Advanced External Procedure
transformations only)
Note: When you add an Advanced External Procedure transformation and save it to the
repository, the Repository Service upgrades it to a Custom transformation.
You can also use the Visual Basic application to delete the following objects from the
repository:
♦ Source
♦ Source Field
♦ Source Field Constraint
♦ Target
♦ Target Field
♦ Target Field Constraint
♦ Target Index
♦ Transformation (External Procedure and Custom transformations only)
♦ Transformation Field (External Procedure and Custom transformations only)

To run the sample Visual Basic application using Metadata Exchange SDK:

1. Open the RepBrowser Visual Basic project in the Vb subdirectory of your Metadata
Exchange SDK installation directory.
2. Run this project directly from the Run menu.
-or-
Create an executable within the File menu and then run the executable outside of the
Visual Basic project.
3. A dialog box prompts you for the information required to connect to the repository.
Enter your repository name, repository username, repository user password, host name,
and port number.
4. Click the Connect button to access the repository.
A window appears, similar to the one in the PowerCenter Repository Manager, displaying a
hierarchical object navigator on the left and an object property browser on the right. You can
select and browse the properties of various repository objects from the navigator tree such as
source, target, cube, dimension, and level. You can also import and export XML files in this
window.
One of the objectives for creating Metadata Exchange SDK was to provide an object-based
platform for developing thin-client applications for manipulating the metadata in a
PowerCenter repository.

12 Chapter 1: Using Metadata Exchange SDK


Figure 1-1 shows the Repository Browser window:

Figure 1-1. The Metadata Exchange SDK-Based VB Metadata Browser

Sample Textual Browser in Visual C++


The sample Visual C++ application allows you to textually browse the metadata content of a
repository.

To run the sample Visual C++ textual browser:

1. Open the MXBrowse Visual C++ project from the Vc subdirectory of the Metadata
Exchange SDK installation directory.
2. Build MXBrowse.exe.
After the project successfully compiles and links, the MXBrowse.exe executable file is in
the bin subdirectory of the Metadata Exchange SDK installation directory. This program
requires the following command line arguments:
♦ Repository name
♦ Repository username
♦ Repository user password
You must also provide the following argument:
♦ Domain name
-or-
♦ Host name of the machine running the Service Manager
♦ Gateway port number

Using the Sample Applications in Metadata Exchange SDK 13


3. Run MXBrowse.exe from a DOS window.
-or-
Run MXBrowse.exe within the Visual C++ environment.
4. In the Visual C++ environment, the command line arguments can be specified in the
Debug tab in Project-Settings.
The textual results of the MXBrowse.exe program appears in a DOS window. These results
correspond to a hierarchical traversal of the repository objects, starting with the repository
object down to the fields of the source objects, target objects, and transformations.
MXBrowse.exe also prints the PK-FK join metadata for any related source and target
definitions, as well as session and batch information.
Note: Important debugging information is displayed in the MSVC Output window. If you
encounter a problem running the MXBrowse program, review the contents of this window.

Sample Target and Source Metadata Writer in Visual C++


The sample Visual C++ application allows you to write target and source definition metadata
into a repository.

To run the sample Visual C++ target and source metadata writer:

1. Open the MXPush Visual C++ project in the Vc subdirectory of the Metadata Exchange
SDK installation directory.
2. Build MXPush.exe.
After the project successfully compiles and links, you can find the MXPush.exe
executable file in the bin subdirectory of the Metadata Exchange SDK installation
directory. This program requires the following command line arguments:
♦ Repository name
♦ Repository username
♦ Repository user password
You must also provide the following argument:
♦ Domain name
-or-
♦ Host name of the machine running the Service Manager
♦ Gateway port number
3. Run MXPush.exe from a DOS window.
or
Run MXPush.exe within the Visual C++ environment.
In the Visual C++ environment, you can specify the command line arguments in the
Debug tab in Project-Settings.

14 Chapter 1: Using Metadata Exchange SDK


4. When prompted in the DOS window, enter the folder where you want to place the target
metadata. You must have write privileges for that folder.
5. When prompted, enter the metadata for target definitions and their fields. This program
provides some data checking. You can verify the final results of MXPush by using the
MXBrowse or the Visual Basic browser described above.
Note: Important debugging information is displayed in the MSVC Output window. If
you encounter any problems running the MXBrowse program, inspect the contents of
this window.

Using the Sample Repository


A backup repository file, MX2_SAMPLE_REPOSITORY.rep, is located in the
SampleRepositories directory of the Metadata Exchange SDK installation directory. The
repository user name is Administrator and the password is Administrator.
Use your database management system to create a database for the backup repository. Retain
the user ID and user password of this database to set up the Repository Service using the
PowerCenter Administration Console.
You can use pmrep to restore the repository backup file.
Note: You can also use the PowerCenter Administration Console to restore a repository
backup file. For more information about restoring backup files using the Administration
Console, see “Managing the Repository” in the PowerCenter Administrator Guide.

Restoring the Sample Repository Using pmrep


The pmrep Restore command restores a repository backup file to a database. The target
database must be empty. To run pmrep commands, switch to the Informatica Services
installation directory and enter pmrep followed by the command name and its required
options and arguments.
Before you use the Restore command, you must use the Connect command to connect to the
repository.
For more information about using the pmrep Connect and Restore commands, see the
PowerCenter Command Line Reference.

Using the Sample Applications in Metadata Exchange SDK 15


Restrictions and Limitations
The following are the restrictions and known limitations of Metadata Exchange SDK. See the
release notes for complete information about known limitations.
♦ Metadata Exchange SDK 8.1 can be used only with Visual C++ 7.1 and does not support
Visual C++ 6.0 or older compilers.
♦ Metadata Exchange SDK 8.1 works with PowerCenter 8.1 repositories only. Applications
written using the Metadata Exchange SDK 8.0, Metadata Exchange SDK 7.x, Metadata
Exchange SDK 6.x, MX SDK 5.x, or MX2 1.x interfaces can continue to work with
Metadata Exchange SDK 8.1, but only against PowerCenter 8.1 repositories. You must
also verify that you are not using any obsolete interfaces or methods. To use Metadata
Exchange SDK against PowerCenter 8.0 repositories, use Metadata Exchange SDK 8.0. To
use Metadata Exchange SDK against PowerCenter 7.x repositories, use Metadata Exchange
SDK 7.x. To use Metadata Exchange SDK against PowerCenter 6.x repositories, use
Metadata Exchange SDK 6.x. To use Metadata Exchange SDK against PowerCenter 5.x
repositories, use MX SDK 5.x. To use Metadata Exchange SDK against PowerCenter 4.7
or PowerMart 1.7 repositories, use MX2 1.7.
♦ If you are upgrading to Metadata Exchange SDK 8.1 from Metadata Exchange SDK 8.0/
7.x/6.x, MX SDK 5.x, or MX2 1.x, you must rebuild existing Visual Basic applications
that use Metadata Exchange SDK 8.0/7.x/6.x, MX SDK 5.x, or MX2 1.x. To do this, open
the Visual Basic project in the Visual Basic IDE and create the executable file again after
you have installed Metadata Exchange SDK 7.1.
♦ Metadata Exchange SDK 8.0, Metadata Exchange SDK 7.x, Metadata Exchange SDK 6.x,
MX SDK 5.x, and MX2 1.x are the versions that precede Metadata Exchange SDK 8.1. If
you install Metadata Exchange SDK 8.1 on a system where Metadata Exchange SDK 8.0/
7.x/6.x, MX SDK 5.x, or MX2 1.x is already installed, you can only use Metadata
Exchange SDK 8.1. To activate Metadata Exchange SDK 8.0/7.x/6.x, MX SDK 5.x, or
MX2 1.x, you can either reinstall Metadata Exchange SDK 8.0/7.x/6.x, MX SDK 5.x, or
MX2 1.x, or do the following:
Unregister pmmxsrvr.dll from the MX SDK/MX2 bin directory by entering the following
command at the command prompt:
regsvr32 /u pmmxsrvr.dll

Register pmmxsrvr.dll from the Metadata Exchange SDK 6.x/MX SDK 5.x/MX2 1.x bin
directory by entering the following command at the command prompt:
regsvr32 pmmxsrvr.dll

♦ In some cases, if you install Metadata Exchange SDK 8.1 on a system on which Metadata
Exchange SDK 7.0/7.x/6.x, MX SDK 5.x, or MX2 1.x is already installed, Metadata
Exchange SDK 8.1 will not run. To run Metadata Exchange SDK 8.1, uninstall Metadata
Exchange SDK 8.0/7.x/6.x, MX SDK 5.x, or MX2 1.x. Or, make sure that the system path
variable has the Metadata Exchange SDK 8.1 bin directory specified before the Metadata
Exchange SDK 8.0/7.x/6.x, MX SDK 5.x, or MX2 1.x bin directory.

16 Chapter 1: Using Metadata Exchange SDK


♦ When using the Add/Remove Programs applet in the Control Panel to remove Metadata
Exchange SDK from your system, the Install Shield program deletes the system PATH
environment variable.
♦ A save method of IMXFolder, IMX Source, IMXTransform, or IMXTarget must be called
explicitly to save object metadata into the repository database.
♦ Metadata Exchange SDK does not allow shortcuts (references to objects in other folders).
This SDK does not retrieve the metadata for a referenced object; instead it returns the
actual referring object.
♦ You cannot import plug-in sources and targets such as TIBCO.

Restrictions and Limitations 17


18 Chapter 1: Using Metadata Exchange SDK
Chapter 2

Metadata Exchange SDK


Interfaces
This chapter includes the following topics:
♦ Metadata Interfaces, 20
♦ Collection Interfaces, 25
♦ Environment Interfaces, 29
♦ XML Import and Export, 30

19
Metadata Interfaces
The metadata interfaces are the main interfaces provided for accessing content and
relationships of various repository objects, such as folders, mappings, and sources. Each
interface has specific methods for accessing its properties and other objects related to it.

IMXConnection
This metadata interface provides methods to get the metadata associated with a specific
connection.

IMXConstraint
This metadata interface provides methods to get the table-level PK-FK relationships between
two tables, as well as the collection of field-level constraints between those tables.

IMXConstraintElement
This metadata interface provides methods to get the field-level PK-FK relationships for
specific columns in two related tables.

IMXCube
This metadata interface provides methods to get the metadata associated with a multi-
dimensional cube. A cube consists of one or more fact tables and one or more dimension
hierarchies.

IMXDimension
This metadata interface provides methods to get the metadata for a multi-dimensional
dimension, such as time. A dimension can contain one or more levels as well as one or more
tree-based level hierarchies.

IMXFact
This metadata interface provides methods to get the metadata for a fact table used in a multi-
dimensional cube. A fact table may have one or more quantifiable measures, such as total
sales, and one or more hierarchy levels, such as week.

IMXFileConnection
This metadata interface provides methods to get the metadata associated with a specific file
connection.

20 Chapter 2: Metadata Exchange SDK Interfaces


IMXFolder
This metadata interface provides methods for accessing folder metadata, such as name,
shareability status, owner, group, owner permissions, and group permissions. In addition to
getting the name of a folder, this interface can access the collection interfaces for mappings,
sources, targets, transformations, cubes, dimensions, and hierarchies contained within the
folder. This interface also has methods to create sources, targets, and transformations in the
folder as well as a method to save the contents of the folder into the repository. You can also
use this interface to browse Workflow Manager objects such as sessions and workflows.

IMXFolderVersion
Effective in PowerCenter 7.0, you no longer create folder versions. However, you can still use
the IMXFolderVersion interface to access and create repository objects. When you use
IMXFolderVersion to access objects with a repository you upgraded to version 7.1 or later, the
Repository Service returns objects listed under the folder that was upgraded from the
specified folder version.
Do not use this interface when you create a new program using Metadata Exchange SDK.

IMXHierarchy
This metadata interface provides methods to get the metadata for a dimension hierarchy, such
as year-week-day. The levels in a hierarchy can have a linear or a general tree-based
hierarchical order.

IMXHierarchyLevel
This metadata interface provides methods to get the metadata for a level, such as week, in a
dimension hierarchy, such as year-week-day.

IMXLevel
This metadata interface provides methods to get the metadata for a level, such as week, of a
dimension, such as time.

IMXLevelField
This metadata interface provides methods to get the metadata associated with a particular
field, such as name, of a dimension level, such as week.

IMXMapping
This metadata interface provides methods to get the name of a mapping as well as access the
collection interfaces for the sources, targets, and transformations within that mapping.

Metadata Interfaces 21
IMXMetaExt
This metadata interface provides methods to get the name, description, default value,
datatype, maximum length, and permission for a metadata extension definition.

IMXMetaExtDomain
This metadata interface provides methods to get the name, vendor, description, and usage of a
metadata extension domain.

IMXMetaExtVal
This metadata interface provides methods to get and update the metadata extension value, as
well as get the metadata extension name, datatype, maximum length, description, permission,
reusability, and object type.

IMXObject
This metadata interface provides methods to indicate how to import a specific object through
XML.

IMXRepository
This is the main metadata interface for browsing a repository. Through this interface you can
get the repository name, repository user name, repository user password, database username,
database user password, and the ODBC connection string. This interface is also used to
connect to and disconnect from the database that holds the repository metadata as well as
provide the means for accessing the collection of folders within it. This interface also provides
a set of query functions for getting source and target objects and PK-FK constraints.

IMXScheduler
This metadata interface provides methods to get the metadata associated with a scheduler.

IMXSessionTask
This metadata interface provides methods to get the metadata associated with a session and its
child objects such as Email tasks, metadata extension values, and source and target
connections.

IMXSessionTaskLog
This metadata interface provides methods to get the metadata associated with a session log.

22 Chapter 2: Metadata Exchange SDK Interfaces


IMXSource
This metadata interface provides methods to get and set the name, business name, database
type, and the user-defined comment associated with a source. Through this interface you can
also access the collection interface for the fields of that source. This interface also provides
methods to create a source field at the end of table fields, to insert a source field into the table
fields by the given position, or to save the source metadata into the repository.

IMXSourceField
This metadata interface provides methods to get and set the properties associated with a field
of a source. These properties are name, business name, user-defined comment, datatype,
native datatype, key type, data precision, data scale, nullability status, and transformation
expression used to populate this field. You can also specify the constraint information for this
field.

IMXString
This metadata interface provides methods to access string data.

IMXTarget
This metadata interface provides methods to get and set the name, business name, database
type, and the user-defined comment associated with a target. You can also access the
collection interface for the fields of that target through this interface. This interface also
provides a method to create a target field as well as a method to save the target metadata into
the repository.

IMXTargetField
This metadata interface provides methods to get and set the properties associated with a field
of a target. These properties are name, business name, user-defined comment, datatype,
native datatype, key type, data precision, data scale, nullability status, and transformation
expression used to populate this field. You can also specify the constraint information for this
field.

IMXTargetIndex
This metadata interface provides methods to access an index of a target table and creating a
new index for the target table. You can access the collection interface for the fields in the
index through this interface.

IMXTargetIndexField
This metadata interface provides a method to access the name of the target table index field.

Metadata Interfaces 23
IMXTransform
This metadata interface provides methods to get the name associated with a transformation.
You can also access the collection interface for the fields of that transformation through this
interface. This interface also includes methods to get the attribute values for the
transformation.
This interface can add Advanced External Procedure and External Procedure transformations
into the repository. However, when you add Advanced External Procedure transformations
into the repository, the Repository Service upgrades the transformation to a Custom
transformation when you save the object.

IMXTransformationLog
This metadata interface provides methods to get the metadata associated with a
transformation log.

IMXTransformField
This metadata interface provides methods to get the properties associated with a
transformation field. These properties are name, comment, field type, port type, default
value, data precision, data scale, and index.

IMXWorkflow
This metadata interface provides methods to get the metadata associated with a workflow and
the following types of child objects: worklets, metadata extension values, sessions, and
schedulers.

IMXWorkflowLog
This metadata interface provides methods to get the metadata associated with a workflow log.

IMXWorklet
This metadata interface provides methods to get the metadata associated with a worklet.

24 Chapter 2: Metadata Exchange SDK Interfaces


Collection Interfaces
The collection interfaces handle aggregation relationships between various repository objects.
For example, a mapping has sources, targets, and transformations. The get_Count and
get_NewEnum methods of each collection interface can be used to get the number of items in
the collection and a new enumerator for iterating through the items.
Furthermore, the Item method is a function that takes an integer or a string as input for the
index or name of an item and returns the pointer to the corresponding item in the collection.
The Find method is a function that takes an object name and returns the object in the
collection.

IMXConnections
This collection interface provides methods to access the connection interfaces that are
referenced from another interface, such as the IMXRepository interface.
If you use the IMXConnections Find method, you must pass the
ConnectionName.ConnectionTypeName.

IMXConstraints
This collection interface provides methods to access the table-level PK-FK constraint
interfaces referenced from another interface, such as the IMXFolder metadata interface.

IMXConstraintElements
This collection interface provides methods to access the field-level PK-FK constraint
interfaces referenced from another interface, such as the IMXConstraint metadata interface.

IMXCubes
This collection interface provides methods to access the cube interfaces that are referenced
from another interface, such as the IMXFolder metadata interface.

IMXDimensions
This collection interface provides methods to access the dimension interfaces that are
referenced from another interface, such as the IMXFolder metadata interface.

IMXFacts
This collection interface provides methods to access the fact interfaces that are referenced
from another interface, such as the IMXFolder metadata interface.

Collection Interfaces 25
IMXFolders
This collection interface provides methods to access the folder interfaces referenced from
another interface, such as the IMXRepository metadata interface.

IMXFolderVersions
Effective in PowerCenter 7.0, you no longer create folder versions. However, you can still use
the IMXFolderVersions collection interface when you use the IMXFolderVersion metadata
interface in programs created with previous versions of Metadata Exchange SDK.
Do not use this interface when you create a new program using Metadata Exchange SDK.

IMXHierarchies
This collection interface provides methods to access the hierarchy interfaces that are
referenced from another interface, such as the IMXDimension metadata interface.

IMXHierarchyLevels
This collection interface provides methods to access the hierarchy level interfaces that are
referenced from another interface, such as the IMXHierarchyLevel metadata interface.

IMXLevelFields
This collection interface provides methods to access the level field interfaces that are
referenced from another interface, such as the IMXLevelField metadata interface.

IMXLevels
This collection interface provides methods to access the level interfaces that are referenced
from another interface, such as the IMXDimension metadata interface.

IMXMappings
This collection interface provides methods to access the mapping interfaces referenced from
another interface, such as the IMXFolder metadata interface.

IMXMetaExtDomains
This collection interface provides methods to access the metadata extension domain interfaces
referenced from another interface, such as the IMXRepository interface.

IMXMetaExts
This collection interface provides methods to access the metadata extension interfaces
referenced from another interface, such as the IMXMetaExtDomain interface.

26 Chapter 2: Metadata Exchange SDK Interfaces


IMXMetaExtVals
This collection interface provides methods to access the metadata extension value interfaces
referenced from another interface, such as the IMXSource interface.
If you use the IMXMetaExtVals Find method, you must pass the
DomainName.MetadataExtensionName.

IMXObjects
This collection interface provides methods for the user to indicate how to import the objects
in the collection through XML. The objects in the collection represent objects of a certain
type (Folder/Source/Target) in an input XML file.

IMXRepositories
This collection interface provides methods to access the repository interfaces referenced from
another interface.

IMXSessionTaskLogs
This collection interface provides methods to access the session log interfaces referenced from
another interface.

IMXSessionTasks
This collection interface provides methods to access the session interfaces referenced from
another interface.

IMXSourceFields
This collection interface provides methods to access the source field interfaces referenced
from another interface, such as the IMXSource metadata interface.

IMXSources
This collection interface provides methods to access the source interfaces referenced from
another interface, such as the IMXMapping metadata interface.

IMXStrings
This collection interface provides methods to access string data.

IMXTargetFields
This collection interface provides methods to access the target field interfaces referenced from
another interface, such as the IMXTarget metadata interface.

Collection Interfaces 27
IMXTargetIndexes
This collection interface provides methods to access the target index interfaces from the
IMXTarget metadata interface.

IMXTargetIndexFields
This collection interface provides methods to access the target index fields from the
IMXTargetIndex metadata interface.

IMXTargets
This collection interface provides methods to access the target interfaces referenced from
another interface, such as the IMXMapping metadata interface.

IMXTransformationLogs
This collection interface provides methods to access the transformation log interfaces
referenced from another interface, such as the IMXTransform metadata interface.

IMXTransformFields
This collection interface provides methods to access the transformation field interfaces
referenced from another interface, such as the IMXTransform metadata interface.

IMXTransforms
This collection interface provides methods to access the transformation interfaces referenced
from another interface, such as the IMXMapping metadata interface.

IMXWorkflowLogs
This collection interface provides methods to access the workflow log interfaces referenced
from another interface.

IMXWorkflows
This collection interface provides methods to access the workflow interfaces referenced from
another interface.

IMXWorklets
This collection interface provides methods to access the worklet interfaces referenced from
another interface.

28 Chapter 2: Metadata Exchange SDK Interfaces


Environment Interfaces
The environment interface provides methods for setting and getting the various system
configurations for debugging and tracing runtime information.

IMXEnvironment
This interface provides methods to direct output to a file, standard output, or debug streams
as well as setting the level of tracing to Off, Terse, Medium, Verbose, or Debugtrace.

Environment Interfaces 29
XML Import and Export
The XML-based import/export facility provides a way to exchange metadata using XML. You
can export objects from the repository in an XML format. Likewise, you can import objects
into the repository in an XML format. XML is associated with powrmart.dtd, which is
included in the bin directory.

XML Export
Table 2-1 shows the Metadata Exchange SDK objects supported for export through XML.
The second column shows what is exported to the XML file for each object.

Table 2-1. Metadata Exchange SDK Objects Supported for Export

Metadata Exchange
Exported Attributes
SDK Object

IMXSource Source attributes, source fields, and constraints.

IMXTarget Target attributes, source fields, indexes, and constraints.

IMXTransform Transformation attributes and fields.

IMXMapping Mapping attributes, sources, targets, and transformations.

IMXSessionTask Session attributes and fields, excluding associated mappings.

IMXWorkflow Workflow attributes and child objects, including nested worklets.

IMXWorklet Worklet attributes and child objects, including nested worklets.

Each of the Metadata Exchange SDK interfaces uses the HRESULT Export(BSTR xmlFile)
method for XML export. The HRESULT Export(BSTR xmlFile) method exports the
attributes of the object in XML format. The file used for the export is xmlFile. The exported
XML conforms to the DTD named powrmart.dtd.

XML Import
You can import the following objects through XML:
♦ Source
♦ Target
Two interfaces in Metadata Exchange SDK are able to support XML-based imports. These
interfaces are the IMXObject interface and the IMXObjects collection interface.
You must import the parent table definitions first if the parent table definition has foreign key
relationships with the child table definition. If you do not import the parent table definition
first, the foreign key constraints may be removed.

30 Chapter 2: Metadata Exchange SDK Interfaces


To import objects through XML:

1. Create a valid XML file that conforms to the provided powrmart.dtd. The XML file must
contain the objects you want to import into the repository.
2. Call the GetObjects() method from the IMXFolder interface to get a list of valid objects
in the XML file of a specific object type. This list is in the form of an IMXObjects
collection interface.
The purpose of the GetObjects() method is to validate the contents of the XML file and
to look for any existing objects with the same name in the repository.
To call GetObjects(), use GetObjects(BSTR fileName, int ObjectType, IMXObjects**
pObjects).

FileName is the name of the XML file used for import. ObjectType is one of the
following:
♦ 1 = Source
♦ 2 = Target
To import sources/targets, you need to call the GetObjects() method from the
IMXFolder interface with ObjectType = 1 or 2. This method reads in the objects into the
folder that the interface represents.
3. Iterate through the IMXObjects collection from the previous step, and set the attributes
of the IMXObject interface. The attributes of the IMXObject interface determine how to
handle duplicates during the import.
put_IsReplace(BOOL *pval): Sets to TRUE if an existing object is to be replaced.
SetImport(BOOL newVal): Determines if object is to be imported or not.
getIsDuplicate(): Determines if object already exists.
put_NewName(BSTR newName): Provides a new name for the object, if the object already
exists.
4. Call the Import() method of IMXFolder interface by using Import(BOOL
bCheckDependency, LPDISPATCH *pVal) .

If the bCheckDependency option is set to True, all of the object dependencies are
checked.
5. Verify the status of the imported objects by calling the get_ErrorCode() method of
IMXObject interface: get_ErrorCode(int errCode).

XML Import and Export 31


32 Chapter 2: Metadata Exchange SDK Interfaces
Appendix A

Metamodel for Metadata


Exchange SDK
This appendix includes the following topic:
♦ Metamodel for Metadata Exchange SDK, 34

33
Metamodel for Metadata Exchange SDK
This appendix provides graphical models of the Metadata Exchange SDK metadata and
collection interfaces and their relationships. The graphical models are presented in standard
Unified Modeling Language (UML) notation.

Metadata Interfaces
Figure A-1 shows a UML model of the Metadata Exchange SDK interface:

Figure A-1. UML Model of the Metadata Exchange SDK Interface

The names of metadata interfaces appear in regular font.


The names of collection interfaces appear in italics. The collection interfaces retrieve
metadata interfaces referenced in other interfaces, as represented by the UML aggregation
relationships (lines with diamonds pointing to aggregators).

34 Appendix A: Metamodel for Metadata Exchange SDK


Session and Workflow Interfaces
Figure A-2 shows the UML model of the session and workflow interfaces provided in
Metadata Exchange SDK:

Figure A-2. UML Model of the Session and Workflow Interfaces

Metamodel for Metadata Exchange SDK 35


36 Appendix A: Metamodel for Metadata Exchange SDK
Appendix B

Programming Reference
Guide
This appendix presents Metadata Exchange SDK interfaces in alphabetical order.

37
Overview
Each interface in this appendix has a description followed by brief descriptions of all the
public methods offered by that interface. The datatypes used for the variables of these
methods are in uppercase. They are compatible with the standard COM datatypes.
Note: You can see a complete list of available methods by browsing the type information of the
PmMxSrvr.dll using the Visual Basic or MSVC object browser.

38 Appendix B: Programming Reference Guide


IMXConnection
This interface is for database connection information.

Table B-1. Methods in IMXConnection Interface

Public Method Description

HRESULT get_Name (BSTR* name) Returns the connection object name.

HRESULT get_UserName (BSTR* UserName) Returns the user name for this connection.

HRESULT get_ConnectString (BSTR* Returns the connect string for this connection.
ConnectString

HRESULT get_ConnectionTypeName (BSTR* pVal) Returns the general connection type for this connection, such as
relational, queue, FTP, application, or external loader.

HRESULT get_ConnectionSubTypeName (BSTR* Returns the specific connection type for this connection, such as
pVal) Oracle, Sybase, or SQL Serve.

HRESULT get_CodePageName (BSTR* pVal) Returns the code page for the connection. For information about
the code page values, see “Code Pages” in the PowerCenter
Command Line Reference.

HRESULT get_PropertyCount () Returns the number of attributes associated with the connection.

HRESULT get_PropertyByIndex ([in] LONG index, Returns the attribute/value pair at a given position in the
[out] BSTR* pPropName, [out] BSTR* pPropValue) attribute/value pair collection. The given index starts from 0.

HRESULT get_PropertyByName ([in] BSTR* Returns the value of an attribute given the attribute name.
pPropName, [out] BSTR* pPropValue)

HRESULT get_isDataConnection (BOOL* pVal) Returns true if connection is used as a data source or target.

IMXConnection 39
IMXConstraint
This interface is for the constraint that relates two tables.

Table B-2. Methods in IMXConstraint Interface

Public Method Description

HRESULT get_ConstraintElements (LPDISPATCH* Gets the collection of constraint elements in this constraint.
lpd)

HRESULT get_id (LONG* id) Gets the ID of this constraint.

HRESULT get_Name (BSTR* bstr) Gets the name of the constraint.

HRESULT get_RefTableName (BSTR* bstr) Gets the name of the primary key table associated with this
constraint.
Applies to foreign key constraints.

HRESULT get_TableName (BSTR* bstr) Gets the name of the key associated with this constraint.

HRESULT get_dbdName (BSTR* bstr) Gets the DBD name associated with this constraint.

HRESULT get_Type (MXCONSTRAINT_TYPE* Gets the type of the constraint from the following enumerated
constyp) list:
0 = MXCONSTRAINT_NONE
1 = MXCONSTRAINT_CANDIDATE_KEY
2 = MXCONSTRAINT_PRIMARY_KEY
4 = MXCONSTRAINT_FOREIGN_KEY
8 = MXCONSTRAINT_REFBY_FOREIGN_KEY

40 Appendix B: Programming Reference Guide


IMXConstraintElement
This interface is for the constraint element that relates two columns.

Table B-3. Methods in IMXConstraintElement Interface

Public Method Description

HRESULT get_ColumnName (BSTR* bstr) Gets the name of the column associated with this constraint element.

HRESULT get_index (LONG* index) Gets the index associated with this constraint element.

HRESULT get_RefColumnName (BSTR* bstr) Gets the name of the reference column associated with this constraint
element.

IMXConstraintElement 41
IMXCube
This interface is for the multi-dimensional cube metadata in the repository.

Table B-4. Methods in IMXCube Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this cube.

HRESULT get_Comment (BSTR* bstr) Gets the comment associated with a cube.

HRESULT get_DatabaseType (BSTR* bstr) Gets the type of database (such as Microsoft SQL Server or
Oracle) used for instantiating the cube.

HRESULT get_Facts (LPDISPATCH* lpd) Gets the collection of fact objects associated with this cube.

HRESULT get_Hierarchies (LPDISPATCH* lpd) Gets the collection of hierarchy objects associated with this
cube.

42 Appendix B: Programming Reference Guide


IMXDimension
This interface is for the dimension in a multi-dimensional cube.

Table B-5. Methods in IMXDimension Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this dimension.

HRESULT get_Comment (BSTR* bstr) Gets the comment associated with this dimension.

HRESULT get_DatabaseType (BSTR* bstr) Gets the type of database specified for datatypes in this dimension.

HRESULT get_Hierarchies (LPDISPATCH* lpd) Gets the collection of hierarchies specified for this dimension.

HRESULT get_Levels (LPDISPATCH* lpd) Gets the collection of levels associated with this dimension.

IMXDimension 43
IMXEnvironment
This interface is for read-only environment settings of Metadata Exchange.

Table B-6. Methods in IMXEnvironment Interface

Public Method Description

HRESULT get_Version (BSTR* bstr) Returns the Metadata Exchange SDK version.

HRESULT setTraceToFile (BSTR bstr) Directs the tracing information to the specified file.

HRESULT setTraceToStdout () Directs the tracing information to standard output.

HRESULT setTraceToDbgOut () Directs the tracing information to debug output.

HRESULT get_TraceLevel () Gets the current setting for the level of tracing. The values of this setting can
be Off, Terse, Medium, Verbose, or Debugtrace.

HRESULT setTraceDebug () Sets the current tracing level to Debugtrace.

HRESULT setTraceMedium () Sets the current tracing level to Medium.

HRESULT setTraceTerse () Sets the current tracing level to Terse.

HRESULT setTraceOff () Sets the current tracing level to Off.

HRESULT setTraceVerbose () Sets the current tracing level to Verbose.

HRESULT serialize (BSTR bstr) Directs the tracing information into the specified buffer.

HRESULT tracingToDbgout () Returns whether the status of tracing is set to debug.

HRESULT tracingToFile () Returns whether the status of tracing is set to file.

HRESULT tracingToStdout () Returns whether the status of tracing is set to the standard output.

44 Appendix B: Programming Reference Guide


IMXFact
This interface is for the fact in a multi-dimensional cube.

Table B-7. Methods in IMXFact Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of the target table that holds the information for
this fact.

HRESULT get_BusinessName (BSTR* bstr) Gets the business name of the target table that holds the
information for this fact.

HRESULT get_Comment (BSTR* bstr) Gets the comment associated with the target table that holds the
information for this fact.

HRESULT get_Measures (LPDISPATCH* lpd) Gets a collection of target fields that correspond to the
measures in this fact.

HRESULT get_DimensionCount (LONG* dimcnt) Gets the number of dimensions associated with this fact.

HRESULT get_Dimension (LONG indx, BSTR* Gets the name of a dimension for a given index number ranging
dimname) from 1 to the dimension count.

HRESULT get_DimensionHierarchy (LONG indx, Gets the name of a hierarchy for a given index number ranging
BSTR* hiername) from 1 to the dimension count.

HRESULT get_DimensionLevel (LONG indx, BSTR* Gets the name of the level for a given index number ranging
lvlname) from 1 to the dimension count.

HRESULT get_DimensionCardinality (LONG indx, Gets the cardinality for a specified index number ranging from 1
LONG* cardnlty) to the dimension count.

IMXFact 45
IMXFileConnection
This interface provides methods to get the metadata associated with a specific file connection.

Table B-8. Methods in IMXFileConnection Interface

Public Method Description

HRESULT get_FileName (BSTR* fileName) Gets the file name associated with this connection.

HRESULT get_DirName (BSTR* dirName) Gets the directory name for this file connection.

HRESULT get_CodePageName (BSTR* codePage) Gets the code page for this file connection.

46 Appendix B: Programming Reference Guide


IMXFolder
This interface is for the folder metadata in the repository.

Table B-9. Methods in IMXFolder Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this folder.

HRESULT get_FolderVersions (LPDISPATCH* pval) Gets the interface for the folder version object.

HRESULT get_IsShared (LONG* shrd) Gets the state of the folder as shared or unshared.

HRESULT get_Owner (BSTR* bstr) Gets the owner of the folder.

HRESULT get_Group (BSTR* bstr) Gets the group of the folder.

HRESULT get_OwnerPerm (BSTR* bstr) Gets the owner permissions for this folder.

HRESULT get_GroupPerm (BSTR* bstr) Gets the group permissions for this folder.

HRESULT get_PublicPerm (BSTR* bstr) Gets the public permissions for this folder.

HRESULT SetPermission (LONG type, LONG perm) Sets permission for owner/group/public. You can specify the
following parameter values for parameter “type”:
1 = OWNER
2 = GROUP
3 = WORLD
You can specify the following parameter values for the
parameter “perm”:
1 = READPERM
2 = WRITEPERM
3 = EXECPERM

HRESULT RevokePermission (LONG type, LONG Revokes permission for owner/group/public. You specify the
perm) same parameter values as the SetPermission() method.

HRESULT Save() When you save objects in a repository enabled for versioning,
this method saves all modified objects in the folder and checks
them in with the new version number determined by the method
that modified the object and increased its version number. This
method checks in modified objects with the following default
check in comments:
Checked in by MX2
When you save objects in a repository not enabled for
versioning, this method saves the metadata in this folder into the
repository.

HRESULT get_SessionTasks (LPDISPATCH *pVal) Returns a collection IMXSessionTasks container of reusable


session tasks defined in this folder.

HRESULT get_Workflows (LPDISPATCH *pVal) Returns a collection IMXWorkflows container of workflows


defined in this folder.

HRESULT get_Worklets (LPDISPATCH *pVal) Returns a collection IMXWorklets container of worklets defined
in this folder.

HRESULT get_Name (BSTR* bstr) Gets the name of this folder.

IMXFolder 47
Table B-9. Methods in IMXFolder Interface

Public Method Description

HRESULT get_Sources (LPDISPATCH* lpd) Gets the interface to the sources in this folder.

HRESULT get_Targets (LPDISPATCH* lpd) Gets the interface to the targets in this folder.

HRESULT CreateTarget (BSTR name, BSTR Creates a target object in this folder, given the target name,
DatabaseType, BSTR bsname, BSTR comm, database type, business name, and comment. It returns a
IMXTarget pTarg) pointer to the target interface object created.
When you create a target in a repository enabled for versioning,
this method creates the target as version one and checks it out.

HRESULT CreateSource (BSTR name, BSTR Creates a source object in this folder, given the sources name,
dbdname, BSTR Database Type, BSTR bsname, database type, business name, and comment. It returns a
BSTR comm, IMXSource** pSource) pointer to the source interface object. The Save() method must
be invoked to save the changes to the repository.
When you create a source in a repository enabled for versioning,
this method creates the source as version one and checks it out.

HRESULT DeleteSource (IMXSource* pIMXSource) Deletes a source definition from the repository. Note that the
user must call Release() on the interface before calling the
method. This method also deletes the interface from memory.
The Save() method must be invoked to save the changes to the
repository.

When you delete an object from a repository enabled for


versioning, this method checks out the object and marks it
deleted. When you save the object afterward, the Save() method
checks in the object and deletes it from the repository. The
Save() method does not purge the object.
When you delete an object from a repository not enabled for
versioning, this method marks the object deleted. When you
save the object afterward, the Save() method deletes it from the
repository. You cannot recover objects deleted from a repository
if you do not enable versioning.

HRESULT DeleteTarget (IMXTarget* pIMXTarget) Deletes a target table from the repository. Note that the user
must call Release() on the interface before calling the method.
The method also deletes the interface from memory. The Save()
method must be invoked to save the changes to the repository.

When you delete an object from a repository enabled for


versioning, this method checks out the object and marks it
deleted. When you save the object afterward, the Save() method
checks in the object and deletes it from the repository. The
Save() method does not purge the object.
When you delete an object from a repository not enabled for
versioning, this method marks the object deleted. When you
save the object afterward, the Save() method deletes it from the
repository. You cannot recover objects deleted from a repository
if you do not enable versioning.

HRESULT get_Mappings (LPDISPATCH* lpd) Gets the interface to the mappings in this folder.

HRESULT get_Mapplets (LPDISPATCH* lpd) Gets the interface to the mapplets in this folder.

HRESULT get_Transforms (LPDISPATCH* lpd) Gets the interface to the transformations in this folder.

48 Appendix B: Programming Reference Guide


Table B-9. Methods in IMXFolder Interface

Public Method Description

HRESULT get_TargetForeignKeyConstraints () Returns a collection of foreign key constraints in this folder for
targets.

HRESULT get_TargetPrimaryKeyConstraints () Returns a collection of primary key constraints in this folder for
targets.

HRESULT get_SourceForeignKeyConstraints () Returns a collection of foreign key constraints in this folder for
sources.

HRESULT get_SourcePrimaryKeyConstraints () Returns a collection of primary key constraints in this folder for
sources.

HRESULT get_Cubes (LPDISPATCH* lpd) Gets the interface to the multi-dimensional cubes in this folder.

HRESULT get_Dimensions (LPDISPATCH* lpd) Gets the interface to the multi-dimensional dimensions in this
folder.

HRESULT get_Hierarchies (LPDISPATCH* lpd) Gets the interface to the multi-dimensional dimension
hierarchies in this folder.

HRESULT CreateTransformation (BSTR name, Creates a transformation object in this folder. The Save()
BSTR transformType, IMXTransform** pTransform) method must be invoked to save the changes to the repository.
Note that only External Procedure and Advanced External
Procedure transformations can be created using this method.
However, when you create an Advanced External Procedure
transformation and save it, the Repository Service upgrades it to
a Custom transformation. Transformation name is not case
sensitive.
When you create a transformation in a repository enabled for
versioning, this method creates the transformation as version
one and checks it out.

HRESULT DeleteTransformation (IMXTransform* Deletes a transformation from the repository. Note that the user
pTransform) must do a Release() on the interface before calling the method.
The method deletes the interface from memory. The Save()
method must be invoked to save the changes to the repository.
This invalidates mappings/mapplets using the transformation.
Note that only External Procedure and Custom transformations
can be deleted using this method.
When you delete an object from a repository enabled for
versioning, this method checks out the object and marks it
deleted. When you save the object afterward, the Save() method
checks in the object and deletes it from the repository. The
Save() method does not purge the object.
When you delete an object from a repository not enabled for
versioning, this method marks the object deleted. When you
save the object afterward, the Save() method deletes it from the
repository. You cannot recover objects deleted from a repository
if you do not enable versioning.

IMXFolder 49
Table B-9. Methods in IMXFolder Interface

Public Method Description

HRESULT GetObjects (BSTR xmlFile, int Parses the XML file xmlfile and searches for all objects of type
ObjectType, IMXObjects** pObjects) “ObjectType” in the XML file. It returns an IMXObject collection
of such objects. The valid object types supported are:
1 = Source
2 = Target
For more information about using this method, see “XML Import
and Export” on page 30.

HRESULT Import (BOOL bCheckDependency, Parses the XML file xmlFile and imports objects of type
LPDISPATCH *pVal) “ObjectType” from pVal. If the bCheckDependency option is set
to True, all of the object dependencies are checked. The
IMXObject interface in the IMXObjects collection determines
how to import each object. The valid object types supported are:
1 = Source
2 = Target
For more information about using this method, see “XML Import
and Export” on page 30.

50 Appendix B: Programming Reference Guide


IMXFolderVersion
Effective in PowerCenter 7.0, you no longer create folder versions. Instead, when you work
with a repository enabled for versioning, you can create multiple object versions. Use the
IMXFolder interface to perform actions such as creating and deleting sources and targets in a
folder.
However, you can still use the IMXFolderVersion interface to access and create repository
objects. When you use IMXFolderVersion to access objects with a repository you upgraded to
version 7.1 or later, the Repository Server or Repository Service returns objects listed under
the folder that was upgraded from the specified folder version. For more information about
upgrading a repository, see the Installation and Configuration Guide.
Table B-10 describes the method behavior when you use the IMXFolderVersion interface with
a version 7.1 or later repository:

Table B-10. Methods in IMXFolderVersion Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this folder.

HRESULT get_Sources (LPDISPATCH* lpd) Gets the interface to the sources in this folder.

HRESULT get_Targets (LPDISPATCH* lpd) Gets the interface to the targets in this folder.

HRESULT CreateTarget (BSTR name, BSTR Creates a target object in this folder, given the target name,
DatabaseType, BSTR bsname, BSTR comm, database type, business name, and comment. It returns a
IMXTarget pTarg) pointer to the target interface object created.

HRESULT CreateSource (BSTR name, BSTR Creates a source object in this folder, given the sources name,
dbdname, BSTR Database Type, BSTR bsname, database type, business name, and comment. It returns a
BSTR comm, IMXSource** pSource) pointer to the source interface object. The Save() method must
be invoked to save the changes to the repository.

HRESULT DeleteSource (IMXSource* pIMXSource) Deletes a source definition from the repository. Note that the
user must call Release() on the interface before calling the
method. This method also deletes the interface from memory.
The Save() method must be invoked to save the changes to the
repository.

HRESULT DeleteTarget (IMXTarget* pIMXTarget) Deletes a target definition from the repository. Note that the user
must call Release() on the interface before calling the method.
The method also deletes the interface from memory. The Save()
method must be invoked to save the changes to the repository.

HRESULT get_Mappings (LPDISPATCH* lpd) Gets the interface to the mappings in this folder.

HRESULT get_Mapplets (LPDISPATCH* lpd) Gets the interface to the mapplets in this folder.

HRESULT get_Transforms (LPDISPATCH* lpd) Gets the interface to the transforms in this folder.

IMXFolderVersion 51
Table B-10. Methods in IMXFolderVersion Interface

Public Method Description

HRESULT Save () When you save folder objects in a repository enabled for
versioning, this method saves all modified objects in the folder
and checks them in with the new version number determined by
the method that modified the object and increased its version
number. This method checks in modified objects with the
following default check in comments:
Checked in by MX2
When you save folder objects in a repository not enabled for
versioning, this method saves the metadata in this folder into the
repository.

HRESULT get_TargetForeignKeyConstraints () Returns a collection of foreign key constraints in this folder for
targets.

HRESULT get_TargetPrimaryKeyConstraints () Returns a collection of primary key constraints in this folder for
targets.

HRESULT get_SourceForeignKeyConstraints () Returns a collection of foreign key constraints in this folder for
sources.

HRESULT get_SourcePrimaryKeyConstraints () Returns a collection of primary key constraints in this folder for
sources.

HRESULT get_Cubes (LPDISPATCH* lpd) Gets the interface to the multi-dimensional cubes in this folder.

HRESULT get_Dimensions (LPDISPATCH* lpd) Gets the interface to the multi-dimensional dimensions in this
folder.

HRESULT get_Hierarchies (LPDISPATCH* lpd) Gets the interface to the multi-dimensional dimension
hierarchies in this folder.

HRESULT CreateTransformation (BSTR name, Creates a transformation object in this folder. The Save()
BSTR transformType, IMXTransform** pTransform) method must be invoked to save the changes to the repository.
Note that only External Procedure and Advanced External
Procedure transformations can be created using this method.
However, when you create an AEP transformation and save it,
the Repository Service upgrades it to a Custom transformation.
Transformation name is not case sensitive.

HRESULT DeleteTransformation (IMXTransform* Deletes a transformation from the repository. Note that the user
pTransform) must do a Release() on the interface before calling the method.
The method deletes the interface from memory. The Save()
method must be invoked to save the changes to the repository.
This invalidates mappings/mapplets using the transformation.
Note that only External Procedure and Custom transformations
can be deleted using this method.

52 Appendix B: Programming Reference Guide


Table B-10. Methods in IMXFolderVersion Interface

Public Method Description

HRESULT GetObjects (BSTR xmlFile, int Parses the XML file xmlfile and searches for all objects of type
ObjectType, IMXObjects** pObjects) “ObjectType” in the XML file. It returns an IMXObject collection
of such objects. The valid object types supported are:
1 = Source
2 = Target
For more information about using this method, see “XML Import
and Export” on page 30.

HRESULT Import (BOOL bCheckDependency, Parses the XML file xmlFile and imports objects of type
LPDISPATCH *pVal) “ObjectType” from pVal. If the bCheckDependency option is set
to True, all of the object dependencies are checked. The
IMXObject interface in the IMXObjects collection determines
how to import each object. The valid object types supported are:
1 = Source
2 = Target
For more information about using this method, see “XML Import
and Export” on page 30.

IMXFolderVersion 53
IMXGroup
This interface is for the group metadata in the repository.

Table B-11. Methods in IMXGroup Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this group.

HRESULT get_Id (LONG* id) Gets the repository ID of the group.

54 Appendix B: Programming Reference Guide


IMXHierarchy
This interface is for the hierarchy defined for a dimension.

Table B-12. Methods in IMXHierarchy Interface

Public Method Description

HRESULT get_Comment (BSTR* bstr) Gets the comment associated with this hierarchy.

HRESULT get_Dimension (MXDimension* dim) Gets the dimension for this hierarchy.

HRESULT get_Name (BSTR* bstr) Gets the name of this hierarchy.

HRESULT get_RootHierarchyLevel Gets the root level for this hierarchy.


(MXHierarchyLevel* rootlvl)

HRESULT get_HierarchyLevels (LPDISPATCH* lpd) Gets the collection of hierarchy levels that implement this
hierarchy.

HRESULT get_HierarchyType (LONG* Gets the hierarchy type for this dimension. The hierarchy type
hierarchyType) can be either of the following:
2 = Normalized
3 = Denormalized

IMXHierarchy 55
IMXHierarchyLevel
This interface is for the level of a dimension hierarchy.

Table B-13. Methods in IMXHierarchyLevel Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this hierarchy level.

HRESULT get_Comment (BSTR* bstr) Gets the comment for this hierarchy level.

HRESULT get_Cardinality (LONG* crdnlty) Gets the cardinality associated with a hierarchy level.

HRESULT get_ChildrenHierarchyLevels Gets the collection of hierarchy levels that are children of this level.
(LPDISPATCH* lpd)

HRESULT get_LevelFields (LPDISPATCH* lpd) Gets the collection of level fields associated with this level.

HRESULT get_ParentHierarchyLevel Gets the parent level of this hierarchy (if null, this is the root level).
(MXHierarchyLevel* lpd)

HRESULT get_Target (BSTR* bstr) Gets the name of the target table that holds the data for this
hierarchy level.

56 Appendix B: Programming Reference Guide


IMXLevel
This interface is for the level of a dimension.

Table B-14. Methods in IMXLevel Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this level.

HRESULT get_Comment (BSTR* bstr) Gets the comment associated with this level.

HRESULT get_LevelFields (LPDISPATCH* lpd) Gets the collection of fields associated with this level.

IMXLevel 57
IMXLevelField
This interface is for the field of a level.

Table B-15. Methods in IMXLevelField Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the field name of a level.

HRESULT get_BusinessName (BSTR* bstr) Gets the business name of the level field.

HRESULT get_Comment (BSTR* bstr) Gets the comments associated with this level field.

HRESULT get_NativeDatatype (BSTR* bstr) Gets the datatype of this level field.

HRESULT get_Precision (BSTR* bstr) Gets the precisions for the data in this level field.

HRESULT get_Scale (BSTR* bstr) Gets the scale for the data in this level field.

HRESULT get_Nullable (LONG* nulbl) Gets the nullable setting for this level field.

58 Appendix B: Programming Reference Guide


IMXMapping
This interface is for the mapping metadata in the repository.

Table B-16. Methods in IMXMapping Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this mapping.

HRESULT get_Sources (LPDISPATCH* lpd) Gets the collection of sources (IMXSources) in this mapping.

HRESULT get_Targets (LPDISPATCH* lpd) Gets the collection of targets (IMXTargets) in this mapping.

HRESULT get_Transforms (LPDISPATCH* lpd) Gets the collection of transformations (IMXTransform) in this
mapping.

HRESULT Export (BSTR fileName) Exports attributes of this mapping in XML format. The file used
for the export is indicated by fileName. This includes a list of
associated sources, targets, and transformations.

HRESULT get_Comment (BSTR *pVal) Returns the mapping comment.

HRESULT get_Valid (BOOL *pVal) Returns a boolean that indicates whether the mapping is
valid (1) or invalid (0). Returns -1 for shortcuts to mappings.

HRESULT get_MetaExtVals (LPDISPATCH * Returns the collection of metadata extension values


metaDataExtVals) (IMXMetaExtVal) defined for this object.

IMXMapping 59
IMXMetaExt
This interface represents the information of a metadata extension definition.

Table B-17. Methods in IMXMetaExt Interface

Public Method Description

HRESULT get_Name (BSTR* name) Returns the name of the metadata extension definition represented
by this interface.

HRESULT get_Description (BSTR* description) Returns the description of this metadata extension definition.

HRESULT get_DefaultValue (BSTR* value) Returns the default value of this metadata extension definition.

HRESULT get_DataType (BSTR * dataType) Returns the datatype of this metadata extension definition. For user-
defined metadata extensions, returns numeric, string, or boolean.
For vendor-defined metadata extensions, returns numeric, string,
boolean, or XML.

HRESULT get_maxLength (LONG * maxLength) Returns the maximum length of this metadata extension definition. If
the datatype is numeric or boolean, returns 0.

HRESULT get_Permission (LONG * permission) Returns the permission for this metadata extension definition as a
bit vector. The bits are set as follows:
- 0th bit (bitmask = 1): Shared read. This metadata extension
definition can be seen from the client tools such as the Repository
Manager or the Designer.
- 1st bit (bitmask = 2): Shared write. This metadata extension
definition can be changed from the client tools.
- 2nd bit (bitmask = 4): Client visible. This metadata extension
definition is visible in other domains.
- 3rd bit (bitmask = 8): Client editable. This metadata extension
definition can be changed by other domains.
- 4th bit (bitmask = 16): Private.

HRESULT get_DBType (BSTR* dbType) Returns the database type of this metadata extension definition. If
this metadata extension definition is not defined for source or target,
returns an empty string. This string can be used in the
QueryMetadataExtDef function in IMXRepository.

HRESULT get_DBSubType (BSTR* dbSubType) Returns the database subtype of this metadata extension definition.
If this metadata extension definition is not defined for source or
target, returns an empty string.

HRESULT get_Domain (IMXMetaExtDomain ** Returns a back pointer to the domain in which this metadata
domain) extension definition is defined.

HRESULT get_ObjectType (BSTR* objectType) Returns the object type of the objects to which this metadata
extension definition applies. This string can be used in the
QueryMetadataExtDef function in IMXRepository.

60 Appendix B: Programming Reference Guide


IMXMetaExtDomain
This interface represents the information of a metadata extension domain.

Table B-18. Methods in IMXMetaExtDomain Interface

Public Method Description

HRESULT get_Name (BSTR* name) Returns the name of the metadata extension domain
represented by this interface.

HRESULT get_VendorName (BSTR* vendor) Returns the name of the vendor of this domain.

HRESULT get_Description (BSTR* description) Returns the description of this domain.

HRESULT get_Usage (LONG* domainUsage) Returns the metadata extension domain usage information of
this domain as a bit vector. The bits are set as follows:
- 0th bit (bitmask = 1): Client visible. The domain name can be
seen from the PowerCenter Client tools such as the Repository
Manager or the Designer.
- 1st bit (bitmask = 2): Client editable. The metadata can be
edited from the PowerCenter Client tools. However, there is no
way to edit non-user-defined metadata extension domains in
the PowerCenter Client, so this value is always set to false.
- 2nd bit (bitmask = 4): Allows access without key. All metadata
extension definitions in this domain are public. You do not need
the domain key to access all of the metadata definitions.

HRESULT get_isUDMDomain (BOOL* Returns true if this domain is a user-defined metadata extension
isUDMDomain) domain.

HRESULT get_MetaExts (/*in */ BSTR key, /*out */ Returns a collection of metadata extension definitions
LPDISPATCH * metaExtList) (IMXMetaExt) in this domain if the given key is valid for this
domain. If the key is not valid, only the public metadata
extensions are returned.

IMXMetaExtDomain 61
IMXMetaExtVal
This interface represents the information in the metadata extension value.

Table B-19. Methods in IMXMetaExtVal Interface

Public Method Description

HRESULT get_Value (BSTR* value) Returns the value of this metadata extension value.

HRESULT put_Value (/*in*/ BSTR value) Sets the value of this metadata extension value. If the metadata
extension value is reusable, or if the value does not match the
datatype, returns an error.

HRESULT get_MetaExtName (BSTR* name) Returns the name of this metadata extension value.

HRESULT get_DataType (LONG* dataType) Returns the datatype of this metadata extension value.

HRESULT get_MaxLength (LONG * maxLength) Returns the maximum length of this metadata extension value. If
the datatype is numeric or boolean, returns 0.

HRESULT get_Description (BSTR * description) Returns the description of this metadata extension value.

HRESULT get_Permission (LONG * permission) Returns the permission information for this metadata extension
value as a bit vector. The bits are set as follows:
- 0th bit (bitmask = 1): Shared read. This metadata extension
value can be seen from the client tools such as the Repository
Manager or the Designer.
- 1st bit (bitmask = 2): Shared write. This metadata extension
value can be changed from the PowerCenter Client tools.
- 2nd bit (bitmask = 4): Client visible. This metadata extension
value is visible in other domains.
- 3rd bit (bitmask = 8): Client editable. This metadata extension
value can be changed by other domains.
- 4th bit (bitmask = 16): Private.

HRESULT get_isReusable (BOOL* isReusable) Returns whether this metadata extension value is derived from a
metadata extension definition.

HRESULT get_ObjectType (BSTR* objectType) Returns the object type of the object to which this metadata
extension value belongs. This string can be used in the
QueryMetadataExtDef function in IMXRepository.

HRESULT get_Domain (IMXMetaExtDomain ** Returns the domain in which this metadata extension value is
domain) defined.

HRESULT get_DBType (BSTR* dbType) Returns the database type of this metadata extension value. If
this metadata extension value is not defined for the source or
target, returns an empty string. This string can be used in the
QueryMetadataExtDef function in IMXRepository.

62 Appendix B: Programming Reference Guide


IMXObject
This interface is used to import repository objects using XML. You can import folders,
sources, and targets through XML. For more information about how to use this interface, see
“XML Import and Export” on page 30.

Table B-20. Methods in IMXObject Interface

Public Method Description

HRESULT get_Type (short* pVal) Gets the ObjectType for this object:
1 = Source
2 = Target

HRESULT get_Name (BSTR *pVal) Gets the name of the object.

HRESULT get_IsDuplicate (BOOL *pVal) Indicates whether the object name already exists in the repository.

HRESULT put_IsReplace (BOOL *pVal) Sets the flag indicating that the object is for replacement during import,
if an exact object with the same name already exists in the repository.

HRESULT put_NewName (BSTR newName) Sets the new name of the object if the object is for replacement during
import.

HRESULT get_ErrorCode (long *pVal) Gets the return code after the object is imported.

HRESULT get_BusinessName (BSTR* pVal) Gets the business name of the object.

HRESULT put_BusinessName (BSTR Changes the business name of the object.


newBusinessName)

HRESULT SetImport (BOOL newVal) Sets the object to be imported. (The object might conflict with an
existing object in the repository.)

HRESULT IsImport (BOOL *pVal) Returns boolean indicating whether the object is to be imported or not.

IMXObject 63
IMXRepository
This is the main interface for browsing a repository. To connect to the repository, you must
enter the repository name, repository user name, repository password, and the connect string.
Use the following connect string syntax:
hostname@portnumber

This interface is a main top-level interface to the repository.

Table B-21. Methods in IMXRepository Interface

Public Method Description

HRESULT get_repositName (BSTR* bstr) Gets the name of this repository.

HRESULT connect () Connects to the repository database.

HRESULT put_DBConnectstring() Sets the given string to the connect string of this repository. The
connect string syntax is:
hostname@portnumber

HRESULT disconnect () Disconnects from the repository database.

HRESULT put_repUserName (BSTR bstr) Sets the given string to the name of the user of this repository.

HRESULT put_repPassword (BSTR bstr) Sets the given string to the password of the user of this
repository.

HRESULT get_Folders (LPDISPATCH* pval) Returns the folders in the repository.

LPDISPATCH* QueryTarget (BSTR fldrname, BSTR Returns the target object corresponding to the table name in the
fldrver, BSTR tblname LPDISPATCH* ppTargetDisp) specified folder.
Note: The Metadata Exchange SDK ignores the string you pass
for the folder version argument.

LPDISPATCH* QuerySource (BSTR fldrname, Returns the source object corresponding to the table name in
BSTR fldrver, BSTR dbdname, BSTR tblname the specified folder.
LPDISPATCH* ppTargetDisp) Note: The Metadata Exchange SDK ignores the string you pass
for the folder version argument.

LPDISPATCH* QueryTargetPrimaryKeyConstraints Returns a collection of the primary key constraints for a given
(BSTR fldrname, BSTR fldrver, BSTR tblname table name in a specified folder.
LPDISPATCH* ppTargetDisp) Note: The Metadata Exchange SDK ignores the string you pass
for the folder version argument.

LPDISPATCH* QueryTargetForeignKeyConstraints Returns a collection of the foreign key constraints for a given
(BSTR fldrname, BSTR fldrver, BSTR tblname table name in a specified folder.
LPDISPATCH* ppTargetDisp) Note: The Metadata Exchange SDK ignores the string you pass
for the folder version argument.

LPDISPATCH* Returns a collection of the reference by foreign key constraints


QueryTargetRefForeignKeyConstraints (BSTR for a given table name in a specified folder.
fldrname, BSTR fldrver, BSTR tblname Note: The Metadata Exchange SDK ignores the string you pass
LPDISPATCH* ppTargetDisp) for the folder version argument.

64 Appendix B: Programming Reference Guide


Table B-21. Methods in IMXRepository Interface

Public Method Description

LPDISPATCH* Returns a collection of all of the constraints for a given table


QueryTargetConstraintDependencies (BSTR name in a specified folder.
fldrname, BSTR fldrver, BSTR tblname Note: The Metadata Exchange SDK ignores the string you pass
LPDISPATCH* ppTargetDisp) for the folder version argument.

HRESULT CreateFolder (BSTR folderName, BSTR Creates a folder object in this repository with the attributes. It
folderDesc, BOOL bIsShared, BSTR groupName, returns a pointer to the folder interface object created.
IMXFolder** pFolder)

HRESULT get_Groups (LPDISPATCH* pval) Returns an IMXGroup collection (IMXGroups) for the logged-in
user.

HRESULT get_Privileges (LONG type, BOOL* priv) Gets repository privileges for the current user. You can specify
the following parameter values for type:
1 = Browse Repository
2 = Use Designer
3 = Admin Repository
4 = Super User
6 = Admin Integration Service

HRESULT setMXLogFile (BSTR fileName) Sets the log file for error messages generated from import and
export functions.

HRESULT put_hostName (BSTR hostName) Sets the host name of the gateway node. When connect () is
called, this interface tries to connect to the Service Manager on
this host.

HRESULT put_portNum (LONG portNum) Sets the port number to be used to connect to the gateway
node. When connect () is called, this interface tries to connect to
the node on this port number. The upper 16 bits of the input
value must be zero. The port number must be between 0 and
65535.

HRESULT get_hostName (BSTR *pVal) Returns the host name of the gateway machine. If this function
is called before put_hostname (), it returns an empty string.

HRESULT get_portNum (LONG *pVal) Returns the port number to be used to connect to the gateway
node. If this function is called before put_portNum, it returns 0.

HRESULT get_Domains (LPDISPATCH * domains) Returns the collection of domains (IMXMetaExtDomain) defined
in this repository.

HRESULT get_DomainByName (/*in*/ BSTR name, Returns the domain with the given name defined in this
/*out*/ IMXMetaExtDomain ** domain) repository.

HRESULT QueryMetadataExtDef (/*in*/ BSTR Returns the metadata extension definition (IMXMetaExt) in the
domainName, /*in*/ BSTR objectTypeName, /*in*/ specified domain, with the specified object type and domain. For
BSTR MetaExtName, /*in*/ BSTR dbTypeName, / non-source or target object types, the dbTypeName is ignored. If
*out*/ IMXMetaExt ** metaExtDef) there is no metadata extension definition matching the
description, returns an error code.

HRESULT get_Connections (LPDISPATCH* pVal) Returns the collection of available connections (IMXConnection)
defined in this repository.

HRESULT get_repositDomainName (BSTR*pVal) Returns the domain name of the Repository Service.

HRESULT put_repositDomainName (BSTR newVal) Sets the domain name of the Repository Service.

IMXRepository 65
IMXScheduler
This interface provides access to the scheduling properties of the workflow.

Table B-22. Methods in IMXScheduler Interface

Public Method Description

HRESULT get_Name (BSTR* pVal) Returns the name of the scheduler object associated with the
workflow.

HRESULT get_StartTime (BSTR * pVal) Returns the workflow start time.

HRESULT get_EndTime (BSTR * pVal) Returns the workflow end time. If the workflow is scheduled to
run continuously, returns an empty string.

HRESULT get_Type (LONG* pVal) Returns the scheduler type. Scheduler type can be any of the
following:
1 = On demand
2 = Continuous
3 = On service initialization

66 Appendix B: Programming Reference Guide


IMXSessionTask
This interface is for session information.

Table B-23. Methods in IMXSessionTask Interface

Public Method Description

HRESULT get_Name (BSTR* pVal) Returns the name of this session.

HRESULT get_Valid (BOOL* pVal) Returns a boolean that indicates whether this session is valid.

HRESULT get_Reusable (BOOL* pVal) Returns a boolean that indicates whether this session is
reusable.

HRESULT get_MappingName (BSTR* pVal) Returns the name of the mapping associated with this session.

HRESULT get_MappingVersion (BSTR* pVal) Returns an empty string.

HRESULT get_Email ([in] LONG emailType, [out] Returns the email user name and email text for the given email
BSTR* emailUser, [out] BSTR* emailText) type. Email type can be one of the following values:
0 = successful
1 = unsuccessful

HRESULT get_MetaExtVals ([out, retval] Returns the collection of metadata extension values
LPDISPATCH * pMetaDataExtVals) (IMXMetaExtVal) defined for this session.

HRESULT get_SourceConnections ([out, retval] Returns the collection of IMXConnections for the list of source
LPDISPATCH* pVal) connections this session task uses.

HRESULT get_TargetConnections ([out, retval] Returns the collection of IMXConnections for the list of target
LPDISPATCH* pVal) connections this session task uses.

HRESULT get_SourceFileConnections Gets the source file connections (IMXFileConnection) used by


(LDISPATCH* conn) this session task.

HRESULT get TargetFileConnections (LDISPATCH* Gets the target file connections (IMXFileConnection) used by
conn) this session task.

HRESULT Export (BSTR* pVal) Exports the attributes of this session in XML format. The file
used for the export is fileName.

HRESULT get_PropertyCount (LONG* pVal) Returns the number of attributes associated with this session.

HRESULT get_PropertyByIndex ([in] LONG index, Returns the attribute/value pair at a given position in the
[out] BSTR* pPropName, [out] BSTR* pPropValue) attribute/value pair collection. The given index starts from 0.

HRESULT get_PropertyByName ([in] BSTR* Returns the value of an attribute given the attribute name.
pPropName, [out] BSTR* pPropValue)

HRESULT get_SessionLogs (LPDISPATCH *pVal) Returns the collection of IMXSessionLogs for this session.

HRESULT get_LastSessionLog (LPDISPATCH* Returns an IMXSessionLog interface for the last run of the
pVal) session log for this session task.

IMXSessionTask 67
IMXSessionTaskLog
This interface provides access to the session log.

Table B-24. Methods in IMXSessionTaskLog Interface

Public Method Description

HRESULT get_InstanceName (BSTR* pVal) Returns the session instance name.

HRESULT get_MappingName (BSTR* pVal) Returns the mapping name used in the session.

HRESULT get_StartTime (BSTR* pVal) Returns the start time for this session run.

HRESULT get_EndTime (BSTR* pVal) Returns the end time for this session run.

HRESULT get_LogFile (BSTR* pVal) Returns the log file name for the session.

HRESULT get_SourceSuccessRows (SHORT* pVal) Returns number of success rows for all sources in the session.

HRESULT get_SourceFailedRows (SHORT* pVal) Returns the number of failed rows for all sources in the session.

HRESULT get_TargetSuccessRows (SHORT* pVal) Returns number of success rows for all targets in the session.

HRESULT get_TargetFailedRows (SHORT* pVal) Returns the number of failed rows for all targets in the session.

HRESULT get_FirstErrorCode (SHORT* pVal) Returns the error code for the first error encountered.

HRESULT get_FirstErrorString (BSTR* pVal) Returns the first error message.

HRESULT get_TransformationLogNodes (LONG* Returns a collection of transformation logs.


pVal)

HRESULT get_ServerName (BSTR *pVal) Returns the name of the Integration Service that ran the
session.

68 Appendix B: Programming Reference Guide


IMXSource
When you use any of the methods in Table B-25 to modify a source in a repository enabled
for versioning, the method checks out the source, modifies it, and increases the version
number by one. However, if you are the user who has the object checked out, the method
keeps the object checked out and does not increase the version number. If someone has the
source checked out, the method returns an error message with the name of the user who
checked out the source.
When you use any of the methods in Table B-25 to modify a source in a repository not
enabled for versioning, the method just modifies the source.
Table B-25 describes the methods for interfacing with sources:

Table B-25. Methods in IMXSource Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this source.

HRESULT get_BusinessName (BSTR* bstr) Gets the business name of this source.

HRESULT get_Comment (BSTR* bstr) Gets the comment for this source.

HRESULT get_Owner (BSTR * owner) Gets the owner of this source.

HRESULT get_DBDName (BSTR* bstr) Gets the DBD name for this source.

HRESULT get_SourceFields (LPDISPATCH* lpd) Gets the interface to the SourceFields for this source.

HRESULT get_DatabaseType (BSTR* bstr) Gets the database for this source.

HRESULT get_IsShortcut (BOOL* bIsShortcut) Returns TRUE if this source is a shortcut.

HRESULT put_Name (BSTR bstr) Sets the name of this source. This method can be called for
existing source definitions.

HRESULT put_BusinessName (BSTR bstr) Sets the business name of this source. This method can be
called for existing source definitions.

HRESULT put_Comment (BSTR bstr) Sets the comment for this source. This method can be called for
existing source definitions.

HRESULT put_Owner (BSTR owner) Sets the owner of this source. This method can be called for
existing source definitions.

HRESULT put_DatabaseType (BSTR bstr) Sets the database type for this source.

HRESULT CreateSourceField (BSTR name, BSTR Creates a new source field for this source given its name,
bsname, BSTR natdbtype, BSTR prec, BSTR scl, business name, native datatype, data precision, scale, nullable
LONG nullable, BSTR keytype, BSTR comm, flag, key type, and comment. Returns the pointer to the source
IMXSourceField** ppsourcefld) field.

HRESULT DeleteSourceField (BSTR fieldName) Deletes a field by name. This method deletes the corresponding
IMXSourceField from the collection and the repository.
FieldName is not case sensitive.

IMXSource 69
Table B-25. Methods in IMXSource Interface

Public Method Description

HRESULT Save () When you use the Save method to save an object in a repository
enabled for versioning, this method saves the object and checks
it in with the new version number determined by the method that
increased its version number. This method checks in the object
with the following default check in comments:
Checked in by MX2
When you use the Save method to save objects in a repository
not enabled for versioning, this method saves the metadata into
the repository.

HRESULT SaveWithoutCheckin () Saves the metadata for this source in the repository database
without checking in the object. The object status is checked out.
To check in the object, you must call either the Save() or
SaveWithCheckinComment() method.

HRESULT SaveWithCheckinComment ( BSTR When you use the Save method to save an object in a repository
checkinComment) enabled for versioning, this method saves the object and checks
it in with the new version number determined by the method that
increased its version number. This method checks in the object
with the check in comments entered in the method.
When you use the Save method to save objects in a repository
not enabled for versioning, this method ignores the check in
comment entered and saves the metadata into the repository.

HRESULT InsertSourceField (BSTR Name, BSTR Creates the source field at the specified position. If the given
BusinessName, BSTR NativeDatatype, BSTR position is greater than the current total number of fields within
Precision, BSTR Scale, BOOL Nullable, BSTR the table, this method creates a new field at the end of source
KeyType, BSTR Comment, LONG Position, definition. The valid position starts from 1. Field name is not
IMXSourceField** ppSourceField) case sensitive.

HRESULT put_DBDName (BSTR bstr) Sets the DBD name for this source.

HRESULT Export (BSTR fileName) Exports attributes of this source in XML format. The file used for
the export is fileName. This method includes the source field
information and constraints.

HRESULT get_refName (BOOL *isLDR, BSTR Returns the name of the object that is referenced by the
*fldName, BSTR *verName, BSTR *refName) shortcut.

HRESULT get_SourceSubType (long *pVal) Returns the sub type of an Application source. For non-
Application sources, this method returns 0.

HRESULT get_instName (BSTR* pVal) Returns the name of the instance if the source is derived from
the IMXMapping interface.

HRESULT get_Dependent_ShortCuts Returns information about the shortcut objects that depend on
(LPDISPATCH *pVal) this source. The IMXString object returns the folder name and
object name for each shortcut object that depends on this
source.

HRESULT get_Dependent_Targets (LPDISPATCH Returns information about the target objects that depend on this
*pVal) source. The IMXString object returns the folder name and object
name for each target object that depends on this source.

70 Appendix B: Programming Reference Guide


Table B-25. Methods in IMXSource Interface

Public Method Description

HRESULT get_Dependent_Mappings Returns information about the mapping objects that use this
(LPDISPATCH *pVal) source. The IMXString object returns the folder name and object
name for each mapping object that uses this source.

HRESULT get_Dependent_Mapplets (LPDISPATCH Returns information about the mapplet objects that use this
*pVal) source. The IMXString object returns the folder name and object
name for each mapplet object that uses this source.

HRESULT get_MetaExtVals (LPDISPATCH * Returns the collection of metadata extension values


metaDataExtVals) (IMXMetaExtVal) defined for this source.

IMXSource 71
IMXSourceField
This is the interface for the field of a source.

Table B-26. Methods in IMXSourceField Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of the source field.

HRESULT get_BusinessName (BSTR* bstr) Gets the business name of the source field.

HRESULT get_Comment (BSTR* bstr) Gets the comments associated with the source field.

HRESULT get_DataType (BSTR* bstr) Gets the datatype of the source field.

HRESULT get_KeyType (BSTR* bstr) Gets the type of key for this source field.

HRESULT get_Precision (BSTR* bstr) Gets the data precision for this source field.

HRESULT get_Scale (BSTR* bstr) Gets the scale for the data in this source field.

HRESULT get_Nullable (LONG* nulbl) Gets the nullable setting for this source field.

HRESULT get_Sequence (LONG* sequence) Gets the sequence of the source field in the source definition.

HRESULT put_Name (BSTR bstr) Sets the name of the source field. Source field name is not case
sensitive.

HRESULT put_BusinessName (BSTR bstr) Sets the business name of the source field.

HRESULT put_Comment (BSTR bstr) Sets the comments associated with the source field.

HRESULT put_DataType (BSTR bstr) Sets the datatype of the source field.

HRESULT put_KeyType (BSTR bstr) Sets the type of key for this source field.

HRESULT put_Precision (BSTR bstr) Sets the data precisions for this source field.

HRESULT put_Scale (BSTR bstr) Sets the scale for the data in this source field. Do not choose
put_Scale if you use Visual Basic applications. Use SetScale to set
the scale if you use Visual Basic.

HRESULT SetScale (BSTR bstr) Sets the scale for the data in this source field. SetScale performs
the same task as put_Scale. Choose this method if you use Visual
Basic applications.

HRESULT put_Nullable (BOOL nulbl) Sets the nullable setting for this source field.

HRESULT setConstraint (BSTR PKTable, BSTR Sets the primary key table/field that this field refers to in the PK-FK
PKField, BSTR ConstraintName, LONG index) constraint. The key type for this field is set to Foreign Key. If the
constraint contains more than one field, then the index parameter
specifies the order of the fields in the constraint. For constraints
containing only one field, set the index parameter to 1. The PK
table must be in the same DBD as the current table.

HRESULT setConstraintEx (BSTR PKDBD, Similar to setConstraint() method. Use this method when the PK
BSTR PKTable, BSTR PKField, BSTR table belongs to a different DBD but is under the same folder.
constraintName, LONG index)

72 Appendix B: Programming Reference Guide


Table B-26. Methods in IMXSourceField Interface

Public Method Description

HRESULT removeConstraint () Removes any constraint information for this field.

HRESULT put_Sequence (LONG sequence) Sets the new sequence of the source/target field in the source/
target definition. Note that the given sequence must be in the
range from 1 to the total number of existing fields within the table.

IMXSourceField 73
IMXString
This is the interface for accessing string data.

Table B-27. Methods in IMXString Interface

Public Method Description

HRESULT get_Name (BSTR *pVal) Gets the name of the IMXString object.

HRESULT put_Name (BSTR newVal) Sets the name of the IMXString object.

74 Appendix B: Programming Reference Guide


IMXTarget
When you use any of the methods in Table B-28 to modify a target in a repository enabled for
versioning, the method checks out the target, modifies it, and increases the version number by
one. If someone has the target checked out, the method returns an error message with the
name of the user who checked out the target.
When you use any of the methods in Table B-28 to modify a target in a repository not enabled
for versioning, the method just modifies the target.
Table B-28 describes the methods for interfacing with targets:

Table B-28. Methods in IMXTarget Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this target.

HRESULT put_Name (BSTR bstr) Sets the given string to the name for this target. This method
can only be called on existing target definitions.

HRESULT get_BusinessName (BSTR* bstr) Gets the business name of this target.

HRESULT put_BusinessName (BSTR bstr) Sets the given string to the business name for this target.

HRESULT get_Comment (BSTR* bstr) Gets the comment for this target.

HRESULT put_Comment (BSTR bstr) Sets the given string to the comment for this target.

HRESULT get_DatabaseType (BSTR* bstr) Gets the property database type for this target.

HRESULT get_TargetFields (LPDISPATCH* lpd) Gets the interface to the TargetFields for this target.

HRESULT get_IsShortcut (BOOL* bIsShortcut) Returns true if this target is a shortcut.

HRESULT CreateTargetField (BSTR name, BSTR Creates a new target field for this target, given its name,
bsname, BSTR natdbtype, BSTR prec, BSTR scl, business name, native datatype, data precision, scale, nullable
BOOL nullable, BSTR keytype, BSTR comm, flag, key type, and comment. Returns the pointer to the target
IMXTargetField** pptargfld) field.

HRESULT DeleteTargetField (BSTR fieldName) Deletes a field by name. Note that the user must call a Release()
on the corresponding IMXTargetField interface before calling
this method. This method deletes the corresponding
IMXTargetField from the collection and the repository.
FieldName is not case sensitive.

HRESULT Save () When you use the Save method to save an object in a repository
enabled for versioning, this method saves the object and checks
it in with the new version number determined by the method that
increased its version number. This method checks in the object
with the following default check in comments:
Checked in by MX2
When you use the Save method to save objects in a repository
not enabled for versioning, this method saves the metadata into
the repository.

IMXTarget 75
Table B-28. Methods in IMXTarget Interface

Public Method Description

HRESULT SaveWithoutCheckin () Saves the metadata for this source in the repository database
without checking in the object. The object status is checked out.
To check in the object, you must call either the Save() or
SaveWithCheckinComment() method.

HRESULT SaveWithCheckinComment ( BSTR When you use the Save method to save an object in a repository
checkinComment) enabled for versioning, this method saves the object and checks
it in with the new version number determined by the method that
increased its version number. This method checks in the object
with the check in comments entered in the method.
When you use the Save method to save objects in a repository
not enabled for versioning, this method ignores the check in
comment entered and saves the metadata into the repository.

HRESULT CreateIndex (BSTR IndexName, BOOL Creates an index for the target definition. This method can be
bUnique, IMXTargetIndexFields* pTargetIndex) invoked only for an existing target in the repository.

HRESULT DeleteIndex (BSTR indexName) Deletes a target definition index. This method can be invoked
only for an existing target in the repository.

HRESULT get_Indexes (LPDISPATCH* lpd) Gets the interface to the IMXTargetIndexes for this target.

HRESULT Export (BSTR fileName) Exports attributes of this target in XML format. The file used for
the export is indicated by fileName. This includes the target field
information, index, and constraints.

HRESULT get_TargetType (long* pVal) Returns the type of the target. Target type can be the following:
0 = Invalid target definition
1 = Dimension target definition
2 = Fact target definition

HRESULT get_refName (BOOL *isLDR, BSTR Returns the name of the object that is referenced by the
*fldName, BSTR *verName, BSTR *refName) shortcut.

HRESULT get_instName (BSTR* pVal) Returns the name of the instance if the target is derived from the
IMXMapping interface.

HRESULT get_Dependent_ShortCuts Returns information about the shortcut objects that depend on
(LPDISPATCH *pVal) this target. The IMXString object returns the folder name and
object name for each shortcut object that depends on this target.

HRESULT get_TargetType (long* pVal) Returns the type of the target. Target type can be the following:
0 = Invalid target table
1 = Dimension target table
2 = Fact target table

HRESULT get_refName (BOOL *isLDR, BSTR Returns the name of the object that is referenced by the
*fldName, BSTR *verName, BSTR *refName) shortcut.

HRESULT get_instName (BSTR* pVal) Returns the name of the instance if the target is derived from the
IMXMapping interface.

HRESULT get_Dependent_Sources (LPDISPATCH Returns information about the source objects that depend on
*pVal) this target. The IMXString object returns the folder name and
object name for each target object that depends on this target.

76 Appendix B: Programming Reference Guide


Table B-28. Methods in IMXTarget Interface

Public Method Description

HRESULT get_Dependent_Mappings Returns information about the mapping objects that use this
(LPDISPATCH *pVal) target. The IMXString object returns the folder name and object
name for each mapping object that uses this target.

HRESULT get_Dependent_Mapplets (LPDISPATCH Returns information about the mapplet objects that use this
*pVal) target. The IMXString object returns the folder name and object
name for each mapplet object that uses this target.

HRESULT get_MetaExtVals (LPDISPATCH * Returns the collection of metadata extension values


metaDataExtVals) (IMXMetaExtVal) defined for this target.

HRESULT InsertTargetField (BSTR Name, BSTR Creates the target field at the specified position. If the given
BusinessName, BSTR NativeDatatype, BSTR position is greater than the current total number of fields within
Precision, BSTR Scale, BOOL Nullable, BSTR the table, the new field is created at the end of target definition.
KeyType, BSTR Comment, LONG Position, The valid position starts from 1. Field name is not case
IMXTargetField** ppTargetField) sensitive.

IMXTarget 77
IMXTargetField
This interface is for the field of a target object in the repository.

Table B-29. Methods in IMXTargetField Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of the target field.

HRESULT put_Name (BSTR bstr) Sets the given string to the name for this target field. This
method can only be called for existing target tables.

HRESULT get_BusinessName (BSTR* bstr) Gets the business name of the target field.

HRESULT put_BusinessName (BSTR bstr) Sets the given string to the business name for this target field.

HRESULT get_Comment (BSTR* bstr) Gets the comment associated with the target field.

HRESULT put_Comment (BSTR bstr) Sets the given string to the comment for this target field.

HRESULT get_KeyType (BSTR* bstr) Gets the type of key for this target field.

HRESULT put_KeyType (BSTR bstr) Sets the given string to the datatype for this target field.

HRESULT get_Precision (BSTR* bstr) Gets the data precisions for this target field.

HRESULT put_Precision (BSTR bstr) Sets the given string to the data precision for this target field.

HRESULT get_Scale (BSTR* bstr) Gets the scale for the data in this target field.

HRESULT put_Scale (BSTR bstr) Sets the scale for the data in this target field. Do not choose
put_Scale if you use Visual Basic applications. Use SetScale to
set the scale if you use Visual Basic.

HRESULT SetScale (BSTR bstr) Sets the scale for the data in this target field. SetScale performs
the same task as put_Scale. Choose this method if you use
Visual Basic applications.

HRESULT get_Nullable (BOOL* nlbl) Gets the nullable setting for this target field.

HRESULT put_Nullable (BOOL nlbl) Sets the given string to the nullable setting for this target field.

HRESULT get_Sequence (LONG* sequence) Gets the sequence of the target field in the target definition.

HRESULT get_TransformExpression (BSTR* bstr) Gets the transformation expression used to create the data in
this target field. If you do not call this method from a target
instance in a mapping, returns an empty string.

HRESULT get_Datatype (BSTR* bstr) Gets the native database type for the data in this target field.

HRESULT put_ Datatype (BSTR bstr) Sets the given string to the native database type for the data in
this target field.

HRESULT setConstraint (BSTR PKTable, BSTR Sets the primary key table/field that this field refers to in the PK-
PKField, BSTR ConstraintName, LONG index) FK constraint. The key type for this field is set to FOREIGN KEY.
If the constraint contains more than one field, then the index
parameter specifies the order of the fields in the constraint. For
constraints containing only one field, set the index parameter
to 1.

78 Appendix B: Programming Reference Guide


Table B-29. Methods in IMXTargetField Interface

Public Method Description

HRESULT RemoveConstraint () Removes any constraint information for this field.

HRESULT put_Sequence (LONG sequence) Sets the new sequence of the source/target field in the source/
target definition. Note that the given sequence must be in the
range from 1 to the total number of existing fields within the
definition.

IMXTargetField 79
IMXTargetIndex
This interface is for target table index information.

Table B-30. Methods in IMXTargetIndex Interface

Public Method Description

HRESULT get_Name (BSTR* IndexName) Gets the name of the target table index.

HRESULT get_Comments (BSTR * description) Gets the description of this index.

HRESULT get_Unique (BOOL* bUnique) Gets the Unique attribute of the index.

HRESULT get_IndexFields() (LPDISPATCH* lpd) Gets the IMXTargetIndexFields collection interface for this target.

HRESULT put_Name (BSTR IndexName) Sets the name of the target table index.

HRESULT put_Comments (BSTR description) Sets the description of this index.

HRESULT put_Unique (BOOL bUnique) Sets the Unique attribute of the index.

HRESULT addIndexField (BSTR FieldName) Adds a target field to the index definition. The order you add the
fields defines the order of the fields in the index.

80 Appendix B: Programming Reference Guide


IMXTargetIndexField
This interface is for target table index field information.

Table B-31. Methods in IMXTargetIndexField Interface

Public Method Description

HRESULT get_Name (BSTR* IndexName) Gets the name of the target table index field.

IMXTargetIndexField 81
IMXTransform
When you use any of the methods in Table B-32 to modify a transformation in a repository
enabled for versioning, the method checks out the transformation, modifies it, and increases
the version number by one. If someone has the transformation checked out, the method
returns an error message with the name of the user who checked out the transformation.
When you use any of the methods in Table B-32 to modify a transformation in a repository
not enabled for versioning, the method just modifies the transformation.
Table B-32 describes the methods for interfacing with transformations:

Table B-32. Methods in IMXTransform Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of this transformation.

HRESULT get_TransformFields (LPDISPATCH* lpd) Gets the interface to the collection of transformation fields for
this transformation.

HRESULT get_TransformationType (LONG* type) This returns the transformation type, which can be one of the
following:
3 = Source Qualifier
4 = Update Strategy
5 = Expression
6 = Stored Procedure
7 = Sequence Generator
8 = External Procedure
9 = Aggregator
10 = Filter
11 = Lookup
12 = Joiner
14 = Normalizer
15 = Router
26 = Rank
50 = Advanced External Procedure
80 = Sorter
92 = Transaction Control
97 = Custom

HRESULT get_TransformationTypeName (BSTR* Returns the Transformation Name given the type.
pTypeName)

HRESULT get_isReusable (BOOL* bIsReusable) Returns a Boolean indicating if the transformation is reusable.

HRESULT get_AttributeCount (LONG* count) Gets the number of attributes associated with the
transformation.

HRESULT get_Attribute (LONG index, BSTR* Gets the attribute/value pair at a given position in the attribute/
attr_name, BSTR* attr_value) value pair collection. The given index starts from 1.

HRESULT get_AttributeByName (BSTR attr_name, Gets the value of an attribute given the attribute name. The
BSTR* attr_value) attribute names for the different transformations are in
“Transformation Properties” on page 117.

82 Appendix B: Programming Reference Guide


Table B-32. Methods in IMXTransform Interface

Public Method Description

HRESULT put_Name (BSTR bstr) Sets the name of this transformation. You can have
transformations with the same names but different
transformation types. The name is not case sensitive. Use this
method for External Procedure and Advanced External
Procedure transformations only.

HRESULT put_AttributeByName (BSTR attr_name, Sets the value of an attribute given the existing attribute name.
BSTR attr_value) Attribute name is not case sensitive. Use this method for
External Procedure and Advanced External Procedure
transformations only. For External Procedure transformations,
when the attribute name is type, the attribute value can be the
following:
1 = COM
2 = Informatica
For AEP, when the attribute name is type, the attribute value is
2 = Informatica.

HRESULT createTransformField (BSTR name, Creates an IMXTransformField interface with the specified
BSTR comment, BSTR fieldType, BSTR portType, parameters. Returns a pointer to the IMXTransformField
BSTR precision, BSTR scale, BSTR defaultVal, interface. This method creates a field at the end of the table in
IMXTransformField** pptransformfld) the repository. You can only create External Procedure and
Advanced External Procedure transformation fields using this
method. Field name is not case sensitive.

HRESULT DeleteTransformField (BSTR fieldName) Deletes a transformation field by name. Field name is not case
sensitive. You can only use this method for External Procedure
and Advanced External Procedure transformations.

HRESULT Save () When you use the Save method to save an object in a repository
enabled for versioning, this method saves the object and checks
it in with the new version number determined by the method that
increased its version number. This method checks in the object
with the following default check in comments:
Checked in by MX2
When you use the Save method to save objects in a repository
not enabled for versioning, this method saves the metadata into
the repository.

You can only use this method for External Procedure and
Advanced External Procedure transformations. When you use
this Save method, you can still edit the Advanced External
Procedure transformation. When you use the Save method in
the IMXFolder or IMXFolderVersion interface, the Repository
Service upgrades the transformation to a Custom
transformation. You cannot edit Custom transformations using
Metadata Exchange SDK.

HRESULT SaveWithoutCheckin () Saves the metadata for this source in the repository database
without checking in the object. The object status is checked out.
To check in the object, you must call either the Save() or
SaveWithCheckinComment() method.

IMXTransform 83
Table B-32. Methods in IMXTransform Interface

Public Method Description

HRESULT SaveWithCheckinComment ( BSTR When you use the Save method to save an object in a repository
checkinComment) enabled for versioning, this method saves the object and checks
it in with the new version number determined by the method that
increased its version number. This method checks in the object
with the check in comments entered in the method.
When you use the Save method to save objects in a repository
not enabled for versioning, this method ignores the check in
comment entered and saves the metadata into the repository.

HRESULT Export (BSTR fileName) Exports attributes of this transformation in XML format. The file
used for the export is fileName. This includes all the
transformation field information.

HRESULT get_MetaExtVals (LPDISPATCH * Returns the collection of metadata extension values


metaDataExtVals) (IMXMetaExtVal) defined for this transformation.

84 Appendix B: Programming Reference Guide


IMXTransformationLog
This interface provides access to the transformation log.

Table B-33. Methods in IMXTransformationLog Interface

Public Method Description

HRESULT get_PartitionName (BSTR* pVal) Returns the partition name if the session contains multiple
partitions.

HRESULT get_TransformationName (BSTR* pVal) Returns the session transformation name.

HRESULT get_TransformationType (LONG* pVal) Returns the session transformation type.

HRESULT get_InstanceName (BSTR* pVal) Returns the transformation instance name.

HRESULT get_MappletInstanceName (BSTR* pVal) Returns the mapplet instance name.

HRESULT get_GroupName (BSTR* pVal) Returns the group name if the transformation is grouped.

HRESULT get_LastErrorMessage (BSTR* pVal) Returns the message text for the last generated error code in
this transformation log.

HRESULT get_StartTime (BSTR* pVal) Returns the start time for this transformation run.

HRESULT get_EndTime (BSTR* pVal) Returns the end time for this transformation run.

HRESULT get_ElapsedTime (BSTR* pVal) Returns the elapsed time for this transformation run.

IMXTransformationLog 85
IMXTransformField
This interface is for the field of a transformation object.

Table B-34. Methods in IMXTransformField Interface

Public Method Description

HRESULT get_Name (BSTR* bstr) Gets the name of the transformation field.

HRESULT get_Comment (BSTR* bstr) Gets the comments associated with the transformation field.

HRESULT get_FieldType (BSTR* bstr) Gets the datatype of the transformation field.

HRESULT get_PortType (BSTR* bstr) Gets the type of port for this transformation field.

HRESULT get_Precision (BSTR* bstr) Gets the data precisions for this transformation field.

HRESULT put_Scale (BSTR bstr) Sets the scale for the data in this transformation field. Do not
choose put_Scale if you use Visual Basic applications. Use
SetScale to set the scale if you use Visual Basic.

HRESULT SetScale (BSTR bstr) Sets the scale for the data in this transformation field. SetScale
performs the same task as put_Scale. Choose this method if you
use Visual Basic applications.

HRESULT get_DefaultValue (BSTR* bstr) Gets the default value for this transformation field.

HRESULT get_index (LONG* index) Gets the index of this transformation field.

HRESULT put_Name (BSTR bstr) Sets the name of the transformation field. Name is not case
sensitive. Use this method for External Procedure and Advanced
External Procedure transformations only.

HRESULT put_Comment (BSTR bstr) Sets the comments associated with the transformation field. Use
this method for External Procedure and Advanced External
Procedure transformations only.

HRESULT put_FieldType (BSTR bstr) Sets the datatype of the transformation field. Use this method for
EP and AEP transformations only. The following datatypes are
valid:
- Binary
- Date/time
- Decimal
- Double
- Integer
- Nstring
- Ntext
- Real
- Small integer
- String
- Text

86 Appendix B: Programming Reference Guide


Table B-34. Methods in IMXTransformField Interface

Public Method Description

HRESULT put_PortType (BSTR bstr) Sets the type of port for this transformation field. Use this
method for External Procedure and Advanced External
Procedure transformations only. The following values are the
valid port values:
1 = Input
2 = Output
3 = Both
6 = Return (for External Procedure only)

HRESULT put_Precision (BSTR bstr) Sets the data precision for this transformation field. Use this
method for External Procedure and Advanced External
Procedure transformations only.

HRESULT put_Scale (BSTR bstr) Sets the scale for the data in this transformation field. Use this
method for External Procedure and Advanced External
Procedure transformations only.

HRESULT put_DefaultValue (BSTR bstr) Sets the default value for this transformation field. Use this
method for External Procedure and Advanced External
Procedure transformations only.

IMXTransformField 87
IMXWorkflow
This interface provides methods to get the metadata associated with a workflow and the
following types of child objects: worklets, metadata extension values, sessions, and schedulers.

Table B-35. Methods in IMXWorkflow Interface

Public Method Description

HRESULT get_Name (BSTR* pVal) Returns the name of this workflow.

HRESULT get_IsValid (BOOL* pVal) Returns a boolean that indicates whether this workflow is valid.

HRESULT get_ServerName (BSTR* pVal) Returns the name of the Integration Service associated with the
workflow.

HRESULT get_SessionTasks (LPDISPATCH* pVal) Returns the collection of Session tasks within this workflow.

HRESULT get_Worklets (LPDISPATCH* pVal) Returns the collection of worklets within this workflow.

HRESULT get_MetaExtVals (LPDISPATCH * Returns the collection of metadata extension values


pMetaDataExtVals) (IMXMetaExtVal) defined for this workflow.

HRESULT get_Scheduler (LPDISPATCH* Returns the scheduler associated with this workflow.
pScheduler)

HRESULT Export (BSTR* pVal) Exports the attributes of this workflow in XML format. The file
used for the export is fileName.

HRESULT get_PropertyCount () Returns the number of attributes associated with this workflow.

HRESULT get_PropertyByIndex ([in] LONG index, Returns the attribute/value pair at a given position in the
[out] BSTR* pPropName, [out] BSTR* pPropValue) attribute/value pair collection. The given index starts from 0.

HRESULT get_PropertyByName ([in] BSTR* Returns the value of an attribute given the attribute name.
pPropName, [out] BSTR* pPropValue)

HRESULT get_WorkflowLogs (LPDISPATCH *pVal) Returns the collection of IMXWorkflowLogs for the workflow.

HRESULT get_LastWorkflowLog (LPDISPATCH* Returns the IMXWorkflowLog object for the last run of the
pVal) workflow.

88 Appendix B: Programming Reference Guide


IMXWorkflowLog
This interface provides access to the workflow log.

Table B-36. Methods in IMXWorkflowLog Interface

Public Method Description

HRESULT get_ServerName (BSTR* pVal) Returns the name of the Integration Service that ran the workflow.

HRESULT get_ServerGridName (BSTR *pVal) Returns the name of the grid that contains the Integration Service
that ran this workflow run.

HRESULT get_WorkflowName (BSTR* pVal) Returns the workflow name associated with this log.

HRESULT get_ErrorCodeMessage (BSTR* pVal) Returns the message text for the last generated error code in this
workflow log.

HRESULT get_StartTime (BSTR* pVal) Returns the start time for this workflow run.

HRESULT get_EndTime (BSTR* pVal) Returns the end time for this workflow run.

HRESULT get_ElapsedTime (BSTR* pVal) Returns the elapsed time for this workflow run.

IMXWorkflowLog 89
IMXWorklet
This interface provides access to the workflow or worklet and its child information.

Table B-37. Methods in IMXWorklet Interface

Public Method Description

HRESULT get_Name (BSTR* pVal) Returns the name of this worklet.

HRESULT get_Valid (BOOL* pVal) Returns a boolean that indicates whether this worklet is valid.

HRESULT get_Reusable (BOOL* pVal) Returns a boolean that indicates whether this worklet is reusable.

HRESULT get_SessionTasks (LPDISPATCH* pVal) Returns the collection of Session tasks within this worklet.

HRESULT get_Worklets (LPDISPATCH* pVal) Returns the collection of worklets within this worklet.

HRESULT get_MetaExtVals (LPDISPATCH * Returns the collection of metadata extension values


pMetaDataExtVals) (IMXMetaExtVal) defined for this worklet.

HRESULT Export (BSTR* pVal) Exports the attributes of this worklet in XML format. The file used
for the export is fileName.

90 Appendix B: Programming Reference Guide


Appendix C

Error Messages and


Codes
This appendix includes the following topic:
♦ Error Messages and Codes, 92

91
Error Messages and Codes
This appendix contains client window error messages that you may encounter in Metadata
Exchange SDK. Each listing gives the messages and the hexadecimal and decimal value of the
error code. A suggested cause and action follow each error message.

0xCFFF0003 (-805371901) No repository name.


Cause: Repository name is not specified for connect method IMXRepository.
Action: Provide a repository name before connecting to the repository.

0xCFFF0004 (-805371900) No repository user name.


Cause: Repository user name is not specified for connect method of IMXRepository.
Action: Set the repository user name before connecting to the repository.

0xCFFF0005 (-805371899) No repository user password.


Cause: Repository user password is not specified for connect method of
IMXRepository.
Action: Set the repository user password before connecting to the repository.

0xCFFF0006 (-805371898) No database user name.


Cause: Database user name is not specified for connect method of IMXRepository.
Action: Set the repository database username before connecting to the repository.

0xCFFF0007 (-805371897) No database user password.


Cause: Database user password is not specified for connect method of
IMXRepository.
Action: Set the repository database user password before connecting to the repository.

0xCFFF0008 (-805371896) No database connect string.


Cause: Database connect string is not specified for connect method of
IMXRepository.
Action: Set the repository database connect string before connecting to the repository.

0xCFFF0009 (-805371895) Failed to connect to repository.


Cause: Repository connect failed due to incorrect or unspecified parameter.
Action: Specify valid repository connect parameters and try again.

0xCFFF000A (-805371894) Failed to disconnect from repository.


Cause: Repository disconnect failed. Possible system error.
Action: Contact Informatica Technical Support.

92 Appendix C: Error Messages and Codes


0xCFFF000B (-805371893) Failed to get warehouse browser node.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF000C (-805371892) <instance>::CreateInstance failed.


Cause: Metadata Exchange SDK COM interfaces may not be registered properly.
Action: Register the Metadata Exchange SDK COM interfaces.

0xCFFF000D (-805371891) <coclass>::QueryInterface failed to return the interface.


Cause: Metadata Exchange SDK COM interfaces may not be registered properly.
Action: Register the Metadata Exchange SDK COM interfaces.

0xCFFF000E (-805371890) Failed to add <object> object.


Cause: Failed to add object to a collection. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF000F (-805371889) Failed to get repository browser.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0010 (-805371888) Item to be added must have a name.


Cause: Item being added to a collection does not have the name attribute set.
Action: Contact Informatica Technical Support.

0xCFFF0014 (-805371884) Cannot get name.


Cause: Cannot get the name property of an interface. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0015 (-805371883) Cannot get comment.


Cause: Cannot get the comment property of an interface. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0016 (-805371882) Cannot get owner.


Cause: Cannot get the owner property of IMXFolder. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0017 (-805371881) Cannot get group.


Cause: Cannot get the group property of IMXFolder. System or internal error.
Action: Contact Informatica Technical Support.

Error Messages and Codes 93


0xCFFF0018 (-805371880) Cannot get owner permissions.
Cause: Cannot get owner permission property of IMXFolder. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0019 (-805371879) Cannot get group permissions.


Cause: Cannot get group permission property of IMXFolder. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF001A (-805371878) Internal repository event/error.


Cause: Internal repository error has occurred. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF001B (-805371877) Cannot get datatype.


Cause: Cannot get the datatype property of an interface. System or internal error.
This can occur for IMXSourceField and IMXTransformField interfaces.
Action: Contact Informatica Technical Support.

0xCFFF001C (-805371876) Cannot get key type.


Cause: Cannot get the key type property of an interface. System or internal error.
This can occur for IMXSourceField and IMXTransformField interfaces.
Action: Contact Informatica Technical Support.

0xCFFF001D (-805371875) Cannot get scale.


Cause: Cannot get the scale property of an interface. System or internal error. This
can occur for IMXSourceField, IMXTransformField, IMXTargetField, and
IMXLevelField interfaces.
Action: Contact Informatica Technical Support.

0xCFFF001E (-805371874) Cannot get precision.


Cause: Cannot get the precision property of an interface. System or internal error.
This can occur for IMXSourceField, IMXTransformField, IMXTargetField,
and IMXLevelField interfaces.
Action: Contact Informatica Technical Support.

0xCFFF001F (-805371873) Failed to get repository browser.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0020 (-805371872) Cannot get parent node.


Cause: System or internal error.

94 Appendix C: Error Messages and Codes


Action: Contact Informatica Technical Support.

0xCFFF0022 (-805371870) Cannot fetch target details.


Cause: Cannot get the details of a target definition from the repository. The target
may be deleted from the repository. The error can occur when using the
IMXTarget interface.
Action: Reconnect to the repository through Metadata Exchange SDK and try again.

0xCFFF0023 (-805371869) Cannot get port type.


Cause: Cannot get the port type property of the IMXTransformField interface.
System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0024 (-805371868) Connect method has not been called.


Cause: You are not connected to the repository.
Action: Make a call to the Connect method of the IMXRepository before making
other calls.

0xCFFF0025 (-805371867) Cannot open trace file.


Cause: The Metadata Exchange SDK trace file could not be opened.
Action: Make sure there is available disk space and open the trace file again.

0xCFFF0026 (-805371866) Invalid or unsupported database.


Cause: The database type for a source/target is not supported. System or internal
error.
Action: Contact Informatica Technical Support.

0xCFFF0027 (-805371865) This function was called out of sequence.


Cause: The interface for which this error is issued was not initialized properly. This
error message is issued when you call a get method of the interface before
initializing the interface.
Action: Make sure the interface is initialized before calling the interface methods.

0xCFFF0028 (-805371864) Invalid datatype.


Cause: The datatype specified for a target/source field is invalid.
Action: Specify a valid datatype and try again.

0xCFFF0029 (-805371863) Could not convert native datatype to ODBC datatype.


Cause: The datatype specified for a target/source field could not be converted to a
valid ODBC datatype.
Action: Specify a valid datatype and try again.

Error Messages and Codes 95


0xCFFF002A (-805371862) This datatype has no scale.
Cause: The scale for this datatype cannot be specified.
Action: Do not specify scale for this datatype.

0xCFFF002B (-805371861) Cannot edit scale for this datatype.


Cause: The scale for this datatype cannot be edited.
Action: Do not edit the scale for this datatype.

0xCFFF002C (-805371860) The maximum allowed value for scale is…


Cause: The specified scale for this datatype has exceeded the maximum value allowed
for scale.
Action: Specify a scale that is within the valid range.

0xCFFF002D (-805371859) Cannot edit precision for this datatype.


Cause: The precision for this datatype cannot be edited.
Action: Do not edit the precision for this datatype.

0xCFFF002E (-805371858) The maximum allowed value for precision is…


Cause: The specified precision exceeds the maximum value allowed for the datatype.
Action: Specify a valid precision value.

0xCFFF002F (-805371857) The length of the <property name> property cannot


exceed <maximum value> characters.
Cause: The specified name length exceeds the maximum value allowed for name
length.
Action: Specify a name with a valid length.

0xCFFF002L (-805371902) No memory.


Cause: Disk does not have enough memory. Internal error.
Action: Contact Informatica Technical Support.

0xCFFF0030 (-805371856) The name cannot be empty.


Cause: The name attribute is not specified for an object.
Action: Specify a valid name for the object.

0xCFFF0031 (-805371855) Could not get list of supported databases.


Cause: The name attribute is not specified for an object.
Action: Specify a valid name for the object.

96 Appendix C: Error Messages and Codes


0xCFFF0033 (-805371853) Duplicate entry…
Cause: You tried to insert a duplicate entry into a collection.
Action: Duplicate entries are not allowed in a collection.

0xCFFF0037 (-805371849) Cannot allocate target id.


Cause: Could not assign target ID. System or internal error.
Action: Reconnect to repository and try again.

0xCFFF0038 (-805371848) Failed to insert target.


Cause: Target definition save failed. System or internal error.
Action: Reconnect to repository and try again.

0xCFFF0039 (-805371847) The scale is larger than the precision.


Cause: Specified scale is larger than the precision.
Action: Specify a valid scale and precision.

0xCFFF003A (-805371846) The scale cannot be negative.


Cause: The specified scale is invalid.
Action: Specify a valid scale.

0xCFFF003B (-805371845) The precision cannot be negative.


Cause: The specified precision is invalid.
Action: Specify a valid precision.

0xCFFF003C (-805371844) The tablename cannot be empty.


Cause: The table name is not specified.
Action: Specify a valid table name.

0xCFFF003D (-805371843) The first character in the name cannot be a number.


Cause: Invalid name specified.
Action: Specify a valid name.

0xCFFF003E (-805371842) Spaces are not allowed in a table or field name.


Cause: Invalid name specified.
Action: Specify a valid name.

0xCFFF003F (-805371841) Illegal character found in the name.


Cause: Invalid name specified.
Action: Specify a valid name.

Error Messages and Codes 97


0xCFFF0040 (-805371840) This name is a reserved word.
Cause: Invalid name specified.
Action: Specify a valid name.

0xCFFF0041 (-805371839) A table with this name already exists.


Cause: A table with the specified name already exists.
Action: Specify a unique table name.

0xCFFF0042 (-805371838) Invalid name.


Cause: Invalid name specified.
Action: Specify a valid name.

0xCFFF0043 (-805371837) Cannot create container.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0047 (-805371833) Invalid key type.


Cause: Invalid key type specified for table.
Action: Specify a valid key type.

0xCFFF0048 (-805371832) Failed to get database object.


Cause: Cannot get database object. System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0049 (-805371831) Cannot allocate target field id.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF004A (-805371830) Cannot get native datatype.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF004B (-805371829) The precision parameter is invalid or NULL.


Cause: The field precision specified is invalid.
Action: Specify a valid precision value.

0xCFFF004C (-805371828) The scale parameter is invalid or NULL.


Cause: The field scale specified is invalid.
Action: Specify a valid scale value.

98 Appendix C: Error Messages and Codes


0xCFFF004D (-805371827) Cannot get primary keys.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF004E (-805371826) Cannot get folder.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF004F (-805371825) Cannot get folder version.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0050 (-805371824) Cannot get target.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0051 (-805371823) Cannot get foreign keys.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0052 (-805371822) At least one target name required.


Cause: Target definition name parameter is not specified.
Action: Specify the target definition name parameter.

0xCFFF0053 (-805371821) Unable to retrieve groups.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0054 (-805371820) Invalid Windows administrator rights.


Cause: Current user does not have Windows administrator rights.
Action: Grant the logged-in user Windows administrator rights.

0xCFFF0055 (-805371819) Invalid group ID.


Cause: Invalid Group Details given.
Action: Change the group details and retry.

0xCFFF0056 (-805371818) A field with this name already exists.


Cause: You tried to insert a duplicate field entry into a table.
Action: Duplicate field names are not allowed.

Error Messages and Codes 99


0xCFFF0057 (-805371817) Error iterating source fields.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0058 (-805371816) Primary key can't be NULL.


Cause: You tried to set the Nullable attribute of primary key field.
Action: Primary Key Field cannot be set to NULL.

0xCFFF0059 (-805371815) Folder name exists.


Cause: You tried to insert a duplicate folder.
Action: Duplicate folder names are not allowed.

0xCFFF005A (-805371814) Business name already used by some other field


in the same table.
Cause: You tried to insert a same business name for one or more fields in a table.
Action: Business names are unique within a single table.

0xCFFF005B (-805371813) Cannot allocate source field id.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF005C (-805371812) Duplicate source name.


Cause: You tried to insert a duplicate source.
Action: Duplicate source is not allowed.

0xCFFF005D (-805371811) Field name not found.


Cause: Specifying a field name that does not exist in the repository.
Action: Check the field name.

0xCFFF005E (-805371810) Unable to update the folder.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF005F (-805371809) Given index name invalid.


Cause: Index Name given in DeleteIndex does not exist in the repository.
Action: Change the index name and retry.

0xCFFF0060 (-805371808) Failed to PKFK constraint <name>…


Cause: System or internal error.

100 Appendix C: Error Messages and Codes


Action: Contact Informatica Technical Support.

0xCFFF0062 (-805371806) Invalid primary key table name, or primary key table
is under different folder or a different DBD.
Cause: The given primary key table does not exist in the repository, or the primary
key table being referred is in different folder or a different DBD that cannot be
found. The latter is a limitation.
Action: Change the primary key table name or give a primary key table name under
the same folder.

0xCFFF0063 (-805371805) Given key is not a primary key.


Cause: Specifying a non-primary key as a constraint.
Action: Constraint must be a primary key.

0xCFFF0065 (-805371803) Creating an index without fields is invalid.


Cause: You tried to create an index without specifying the fields.
Action: Index can be created with a minimum of one field.

0xCFFF0066 (-805371802) Field name specified for index is invalid.


Cause: One or more of the field names associated in a call to CreateIndex does not
exist in the repository.
Action: Check whether the field names exist in the associated table.

0xCFFF0067 (-805371801) Error iterating target fields.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0069 (-805371799) Failed to update target.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF006A (-805371798) Cannot fetch source details.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF006C (-805371796) Current user does not have permission to perform this
operation.
Cause: Current user does not have permission to perform the repository operation.
Action: Change user or associate required rights for the logged in user.

Error Messages and Codes 101


0xCFFF006D (-805371795) Failed to lock the object.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF006E (-805371794) Object modified by different user.


Cause: Object has been modified since last fetch of information from the repository.
Action: Perform a get on the collection to fetch the object again.

0xCFFF006F (-805371793) Unable to get a lock on the object.


Cause: Logged in user does not have associated permissions to push information into
the repository.
Action: Change user or associate rights for the logged in user.

0xCFFF0070 (-805371792) User does not have permissions to lock.


Cause: Logged in user does not have associated permissions to push information into
the repository.
Action: Change user or associate rights for the logged in user.

0xCFFF0071 (-805371791) Object deleted.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0073 (-805371789) Error accessing target collection.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0074 (-805371788) Error accessing source collection.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0075 (-805371787) Failed to insert source.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0076 (-805371786) Invalid primary table associated with the foreign key.
Cause: You tried to save a field that is set to a foreign key, but there is no primary key
table associated with it.
Action: Call setConstraint to associate a primary key table in all fields that are set as
foreign keys.

102 Appendix C: Error Messages and Codes


0xCFFF0077 (-805371785) Database type cannot be updated.
Cause: You tried to update the database type.
Action: You cannot update the database type.

0xCFFF0078 (-805371784) Error getting session information.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF0079 (-805371783) Error getting batch information.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF007A (-805371782) Error getting session log information.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF007B (-805371781) Error getting target session log information.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF007C (-805371780) Current version of Metadata Exchange SDK does not


support Application datatypes.
Cause: You tried to update the Application Database Objects.
Action: Currently there is no provision for Application database datatypes updates in
Metadata Exchange SDK.

0xCFFF007D (-805371779) Error getting data.


Cause: Failed to fetch data from repository.
Action: Contact Informatica Technical Support.

0xCFFF007E (-805371778) Error iterating transformation fields.


Cause: Missing transformation field in a collection.
Action: Make sure transformation field name exists.

0xCFFF007F (-805371777) Cannot fetch transformation details


Cause: Internal error.
Action: Contact Informatica Technical Support.

0xCFFF0080 (-805371776) Invalid or unsupported datatype.


Cause: The datatype specified is invalid or unsupported.

Error Messages and Codes 103


Action: Specify a valid datatype and try again.

0xCFFF0081 (-805371775) Invalid or unsupported port type.


Cause: The port type specified is invalid or unsupported.
Action: Specify a valid port type and try again.

0xCFFF0082 (-805371774) Error parsing the default value.


Cause: The default value specified for a transformation field is invalid.
Action: Enter a valid default value.

0xCFFF0083 (-805371773) Invalid or unsupported data.


Cause: Input data is invalid or unsupported.
Action: Specify valid data.

0xCFFF0084 (-805371772) Error iterating transformation.


Cause: Internal error.
Action: Contact Informatica Technical Support.

0xCFFF0085 (-805371771) Error inserting transformation.


Cause: Failed to insert transformation in repository. This error occurs during Save()
operations.
Action: Contact Informatica Technical Support.

0xCFFF0086 (-805371770) Error update transformation.


Cause: Failed to update transformation in repository. This error occurs during Save()
operations.
Action: Contact Informatica Technical Support.

0xCFFF0087 (-805371769) Invalid or unsupported transformation type.


Cause: The transformation type specified is invalid.
Action: Specify a valid transformation type.

0xCFFF0088 (-805371768) Error allocating transformation ID.


Cause: Could not assign transformation ID. System or internal error.
Action: Reconnect to the repository.

0xCFFF0089 (-805371767) Error initializing XML parser.


Cause: Incorrect filename for XML export. Internal error.
Action: Make sure filename for XML export is correct. Reconnect to the repository.

104 Appendix C: Error Messages and Codes


0xCFFF008A (-805371766) Error adding XML node for output.
Cause: Internal error.
Action: Reinstall Metadata Exchange SDK and check that the ICU data file is current.

0xCFFF008B (-805371765) Error parsing the input XML file.


Cause: XML file has parsing errors.
Action: Check the syntax of the XML file.

0xCFFF008C (-805371764) Error getting type.


Cause: Failed getting type information from the repository. Internal error.
Action: Make sure session object exists for XML export.

0xCFFF008D (-805371763) Error getting version.


Cause: Incorrect mapping version.
Action: Make sure the object exists for XML export.

0xCFFF008E (-805371762) Error getting count information.


Cause: Internal error.
Action: Make sure the object exists for XML export.

0xCFFF008F (-805371761) Error getting rows information.


Cause: Internal error.
Action: Make sure the object exists for XML export.

0xCFFF0090 (-805371760) Error getting code.


Cause: Internal error.
Action: Make sure the object exists for XML export.

0xCFFF0091 (-805371759) Error getting time information.


Cause: Internal error.
Action: Make sure the object exists for XML export.

0xCFFF0092 (-805371758) Error getting throughput.


Cause: Internal error.
Action: Make sure the object exists for XML export.

0xCFFF0093 (-805371757) Error getting connect string.


Cause: Failed to fetch database connection from the repository.
Action: Make sure database connection object exists for XML export.

Error Messages and Codes 105


0xCFFF0094 (-805371756) Error getting domain.
Cause: Failed to fetch domain for database connection from the repository.
Action: Make sure database connection object exists for XML export.

0xCFFF0095 (-805371755) Error getting code page description.


Cause: Failed to fetch code page description of database connection from repository.
Action: Make sure database connection object exists for XML export.

0xCFFF0096 (-805371754) Unsupported pushing operation under mapping/mapplet.


Cause: You tried to update or create an object under a mapping/mapplet.
Action: Do not update or create an object under a mapping/mapplet. Metadata
Exchange SDK does not allow updating an object or creating an object.

0xCFFF0097 (-805371753) Error initializing resource DLL.


Cause: Missing appropriate language DLL file.
Action: Make sure you have the correct language DLL file.

0xCFFF0098 (-805371752) Error initializing UNICODE string library.


Cause: Internal error.
Action: Check that you have the correct Global C library and pmlocale.bin file.

0xCFFF0099 (-805371751) Error setting the global locale.


Cause: Internal error.
Action: Check that you have the correct Global C library and pmlocale.bin file.

0xCFFF009A (-805371750) Error reading PMLocale binary file.


Cause: Internal error.
Action: Check that you have the correct Global C library and pmlocale.bin file.

0xCFFF009B (-805371749) Error reading PMLocale binary file.


Cause: Internal error.
Action: Check that you have the correct Global C library and pmlocale.bin file.

0xCFFF009C (-805371748) Language catalog is not initialized.


Cause: Internal error.
Action: Check that you have the correct Global C library and pmlocale.bin file.

0xCFFF009D (-805371747) General error during connection.


Cause: Failed to connect to the database.

106 Appendix C: Error Messages and Codes


Action: Contact Informatica Technical Support.

0xCFFF009E (-805371746) Internal error. No connection callback.


Cause: Internal error.
Action: Contact Informatica Technical Support.

0xCFFF009F (-805371745) Error getting connection information for remote repository.


Cause: Failed to log in the repository.
Action: Check that the user connection information is correct.

0xCFFF00A0 (-805371744) Internal error. Connection callback returned an error.


Cause: System or internal error.
Action: Check that the user connection information is correct.

0xCFFF00A1 (-805371743) Internal error. Connection callback cancelled.


Cause: System or internal error.
Action: Check that the user connection information is correct.

0xCFFF00A2 (-805371742) Database connection failed.


Cause: Failed to connect to database.
Action: Make sure you specify the correct database.

0xCFFF00A3 (-805371741) Unable to find the repository.


Cause: Incorrect repository name or the repository does not exist.
Action: Check that the repository name is correct and that the repository exists.

0xCFFF00A4 (-805371740) The repository at this location does not have the same name.
Cause: Incorrect repository name.
Action: Check that the repository name is correct.

0xCFFF00A5 (-805371739) The repository at this location has different version.


Cause: The repository at this location has a different version than the version you
specified.
Action: Check that the repository versions are consistent.

0xCFFF00A6 (-805371738) Failed to fetch repository information.


Cause: Internal error.
Action: Contact Informatica Technical Support.

Error Messages and Codes 107


0xCFFF00A7 (-805371737) Repository creation failed.
Cause: Failed to connect to a newly created repository.
Action: Check that the new repository has correct connection parameters.

0xCFFF00A8 (-805371736) Error initializing repository object.


Cause: Internal error.
Action: Make sure repository connection parameters are correct.

0xCFFF00A9 (-805371735) The user not found in the repository.


Cause: User name specified is not found in the repository.
Action: Check that the user name is in the repository.

0xCFFF00AA (-805371734) The password is incorrect for connecting repository.


Cause: The password specified is incorrect.
Action: Enter the correct password.

0xCFFF00AB (-805371733) The product license does not allow connection to this
repository.
Cause: The product license specified is incorrect.
Action: Enter the correct product license.

0xCFFF00AD (-805371731) Unable to update connection information in the repository.


Repository login failed due to a database error.
Cause: Failed to connect to the database.
Action: Check that the database connection is correct.

0xCFFF00AE (-805371730) Unable to set database connection property.


Cause: Failed to connect to the database.
Action: Check that the database connection is correct.

0xCFFF00AF (-805371729) Incompatible locales specified.


Cause: Repository locale and Metadata Exchange SDK locale are incompatible.
Action: Choose a locale that is compatible with the repository locale.

0xCFFF00B0 (-805371728) Unable to retrieve locale information.


Cause: Internal error.
Action: Make sure you have the correct pmlocale.bin file for your locale.

0xCFFF00B1 (-805371727) Function is not supported for shortcut object.


Cause: You tried to update a shortcut object.

108 Appendix C: Error Messages and Codes


Action: You cannot update shortcut objects.

0xCFFF00B2 (-805371726) Transformation field default value datatype does not


match field datatype.
Cause: The datatype for the transformation field default value is not the same as the
field datatype.
Action: Make sure that the datatype for the transformation field default value is the
same as the field datatype.

0xCFFF00B3 (-805371725) Invalid DBD name or this DBD is under different folder.
Cause: You tried to set constraint for source or target and the primary key table DBD
name is incorrect, or the DBD name is under a different folder.
Action: Make sure the DBD name is under the same folder and that the DBD name is
correct.

0xCFFF00B5 (-805371723) The newly imported table cannot be created due to empty table
name.
Cause: You did not specify the imported table name.
Action: Call the IMXObject method put_NewName to specify the imported table
name.

0xCFFF00B6 (-805371722) Cannot get Others permissions.


Cause: Cannot get Others permission property of IMXFolder.
Action: Contact Informatica technical support.

0xCFFF00B7 (-805371721) Error in fetching mapping object.


Cause: System or internal error.
Action: Contact Informatica technical support.

0xCFFF00B8(-805371720) Error in fetching mapplet object.


Cause: System or internal error.
Action: Contact Informatica technical support.

0xCFFF00B9(-805371719) Cannot get subType.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00BA(-805371718) The imported object conflicts with an existing object


in the repository.
Cause: You tried to import an object that conflicts with an existing object in the
repository.

Error Messages and Codes 109


Action: Use the replace option to replace the existing object, or type a new name to
import the object as a new object.

0xCFFF00BB(-805371717) Cannot get imported XML file status.


Cause: Cannot get the XML file specified.
Action: Check the path and filename.

0xCFFF00BC(-805371716) The imported XML file has a parse error.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00BD(-805371715) Error creating imported objects and validating created objects.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00BE(-805371714) Error calling the import function, either not calling the
GetObjects() function first or passing the wrong pVal.
Cause: You did not call the GetObjects() function in IMXFolderVersion before you
called the import function, or the IMXObject collection obtained from
GetObjects() is invalid.
Action: Call the GetObjects() function first, or check the validity of the IMXObject
collection obtained from GetObejcts() function.

0xCFFF00BF(-805371713) Error importing objects into the repository.


Cause: Error inserting/updating the imported object into the repository.
Action: Check the log file for detailed error messages.

0xCFFF00C0(-805371712) Error adding objects into the import manager.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00C1(-805371711) Cannot get the session to be exported.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00C2(-805371710) Cannot get the instance name, not a mapping or a mapplet.


Cause: The interface for which this error is issued was not initialized properly. This
error message is issued when you call a get method of the interface before
initializing the interface.
Action: Initialize the interface before calling the interface methods.

110 Appendix C: Error Messages and Codes


0xCFFF00C3(-805371709) Cannot get the database name.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00C4(-805371708) Cannot get the database type.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00C5(-805371707) Cannot import objects other than source or target.


Cause: The object type specified is not supported. Only source (type =1) and target
(type = 2) types are supported.
Action: Check the object type specified in the GetObjects ()function.

0xCFFF00C6(-805371706) Import for shortcut objects is not supported for the current
Metadata Exchange SDK version.
Cause: Importing source and target shortcuts is not supported under the current
Metadata Exchange SDK version.
Action: After the GetObjects function, use the SetImport (FALSE) function so the
shortcut object obtained from the XML file is not imported.

0xCFFF00C7(-805371705) Cannot fetch source object.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00C8(-805371704) Cannot fetch target object.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00C9(-805371703) Cannot fetch transformation object.


Cause: System or internal error.
Action: Check the log file for detailed error messages.

0xCFFF00CA(-805371702) Cannot create import manager.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00CB(-805371701) There were errors in exporting the objects. Please see


the export log file for more details.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

Error Messages and Codes 111


0xCFFF00CC(-805371700) Cannot open the file using the given filename. Check the
filename or path.
Cause: Cannot open the output file given the filename.
Action: Check the validity of the filename.

0xCFFF00CD(-805371699) The repository is not currently connected.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00CE(-805371698) Cannot get powrmart.dtd file status.


Cause: Cannot get the powrmart.dtd file specified.
Action: Check the path and filename.

0xCFFF00CF(-805371697) Cannot get the source information for the subtype from the
repository.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00DO (-805371696) Cannot connect to the global repository.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00D1 (-805371695) The global repository that this shortcut refers to does not exist.
Cause: The global repository might have been deleted or changed.
Action: Update the shortcut object with a reference to the correct global repository.

0xCFFF00D2(-805371694) An object with the same object name and database name is
found in the repository with a different database type or
subtype.
Cause: An object in XML conflicts with an existing object in repository with the same
object name and database name, but with a different database type or subtype.
Action: Change the database type or subtype if a replace is desired. Or change the
object name and database name to insert an new object.

0xCFFF00D3(-805371693) One or more objects in the XML files were not imported.
Look at the log file to see error messages in detail.
Cause: Some errors were detected during importing the XML file.
Action: Check the import/export log file for the error message.

112 Appendix C: Error Messages and Codes


0xCFFF00D4(-805371692) Failed to get host name.
Cause: You called IMXRepository->Connect()before
IMXRepository->put_hostname().
Action: Call IMXRepository->put_hostname() before IMXRepository->Connect().

0xCFFF00D5(-805371691) Failed to get the list of connections from the repository.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00D6(-805371690) Failed to get the list of metadata extension domains from


the repository.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00D7(-805371689) The domain key parameter is null.


Cause: You called IMXRepository->get_Domain() with a null string as key.
Action: Call get_Domain() with the correct domain key or an empty string.

0xCFFF00D8(-805371688) Invalid metadata extension value.


Cause: You called IMXMetaExtVal->put_Value() with an invalid value.
Action: Call put_Value() with a valid value.

0xCFFF00D9(-805371687) The domain name is invalid or NULL.


Cause: You passed an incorrect name as the parameter to
IMXRepository->get_domainByName(). The parameter is either null or not a
valid domain name.
Action: Pass a correct parameter.

0xCFFF00DA(- 805371686) The metadata extension name is invalid or NULL.


Cause: You passed an invalid metadata extension name into
IMXRepository->QueryMetadataExtDef().
Action: Pass a correct name.

0xCFFF00DB(-805371685) Cannot initialize target's default metadata extension values.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00DC(-805371684) Cannot initialize transformation's default metadata extension


values.
Cause: System or internal error.

Error Messages and Codes 113


Action: Contact Informatica Technical Support.

0xCFFF00DD(- 805371683) Cannot initialize source's default metadata extension values.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00DE(-805371682) Cannot get the list of all valid database types from the
repository.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00DF(-805371681) Cannot find the specified object type name.


Cause: You passed an invalid object type name into
IMXRepository->QueryMetadataExtDef().
Action: Pass in the correct object type name. Consult the functional specification for
more details.

0xCFFF00E0(-805371680) Cannot find the specified database type name.


Cause: You passed an invalid object type name into
IMXRepository->QueryMetadataExtDef().
Action: Pass in the correct database type name. Consult the functional specification for
more details.

0xCFFF00E1(-805371679) Unsupported operation on a source shortcut.


Cause: You performed an unsupported operation on IMXSource which represents a
shortcut.
Action: Consult the functional specification for more details.

0xCFFF00E2(-805371678) The hostname cannot be null.


Cause: You called put_hostName() with a null parameter.
Action: Call put_hostName() with a proper hostname.

0xCFFF00E3(-805371677) Cannot modify metadata extension value on this object.


Cause: You called IMXMetaExtVal->put_Value() on an object which cannot be
modified from the MX SDK.
Action: Consult the functional specification for more details.

0xCFFF00E4(-805371676) Interface unsupported. Please refer to the documentation for


alternate implementation.
Cause: The method or interface you are using is not supported in the current release
of the product.

114 Appendix C: Error Messages and Codes


Action: Consult the functional specification to find an alternate method or interface.

0xCFFF00E5(-805371675) Error fetching workflow object from the repository.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00E6(-805371674) Error fetching worklet object from the repository.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00E7(-805371673) Error exporting object.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00E8(-805371672) Error fetching session task from the repository.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00E9(-805371671) No scheduler associated with the workflow.


Cause: There is no scheduler associated with the workflow.
Action: Associate a scheduler object with the workflow.

0xCFFF00EA(-805371670) Cannot get mapping name.


Cause: The mapping associated with the session cannot be retrieved.
Action: You may have deleted the mapping associated with this session. Reassociate a
mapping with the session.

0xCFFF00EB(-805371669) Cannot get data from workflow log.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00EC(-805371668) Cannot fetch the workflow logs.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00ED(-805371667) Cannot fetch the session task logs.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

Error Messages and Codes 115


0xCFFF00EE(-805371666) Cannot get data from the session task log.
Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00EF(-805371665) Cannot get data from the transformation log.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00F0(-805371664) Cannot fetch the transformation logs.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00F1(-805371663) Cannot get the code page name.


Cause: System or internal error.
Action: Contact Informatica Technical Support.

0xCFFF00F2(-805371662) Unsupported operation on a target shortcut.


Cause: You attempted to modify a target shortcut.
Action: Do not modify the target shortcut object. Modify the original object instead.

0xCFFF00F3(-805371661) Unsupported operation on a transformation shortcut.


Cause: You attempted to modify a transformation shortcut.
Action: Do not modify the transformation shortcut object. Modify the original object
instead.

0xCFFF00F4(-805371660) The port number is out of range.


Cause: You called IMXRepository::put_portNum with a number that cannot be
represented by a 16-bit unsigned integer.
Action: Call the method using the correct port number.

0xCFFF00F6 (-805371658) The user has no privilege to browse the repository.


Cause: A user tried to connect to the repository without the Browse Repository
privilege.
Action: Grant the user Browse Repository privilege.

116 Appendix C: Error Messages and Codes


Appendix D

Transformation Properties

This appendix contains different transformations and attributes that are supported by the
transformation object properties.

117
Transformation Properties
Table D-1 lists the transformation properties supported by the transformation object
properties:

Table D-1. Transformation Properties

Transformation Properties

Aggregator - Cache Directory


- Tracing Level
- Sorted Input
- Aggregator Data Cache Size
- Aggregator Index Cache Size
- Transformation Scope

Application Multi-Group Source Qualifier - Tracing Level

Application Source Qualifier - Exec SQL


- Filter
- Join Override
- Join Override
- Extract Override
- Number of Sorted Ports
- Tracing Level
- Select Distinct
- Extract Current Rows
- Extract Date
- Effective Date Join Order
- Static filter
- Force Nested Loop
- Program Flow
- Extract Override
- Join Override
- Source Filter
- Number of Sorted Ports
- Select Distinct
- IDOC Filter
- Form Name

Custom - Module Identifier


- Function Identifier
- Runtime Location
- Tracing Level
- Is Partitionable
- Inputs Must Block
- Is Active
- Update Strategy transformation
- Transformation Scope
- Generate Transaction

Expression - Tracing Level

118 Appendix D: Transformation Properties


Table D-1. Transformation Properties

Transformation Properties

External Procedure - Type (COM or Informatica)


- Module/Programmatic Identifier
- Procedure Name
- Runtime Location
- Tracing Level
- Is Partitionable

Filter - Filter Condition


- Tracing Level

Joiner - Case Sensitive String Comparison


- Cache Directory
- Join Condition
- Join Type
- Null ordering in master
- Null ordering in detail
- Tracing Level
- Joiner Data Cache Size
- Joiner Index Cache Size
- Transformation Scope
- Sorted Input

Lookup - Lookup SQL Override


- Lookup table name
- Lookup caching enabled
- Lookup policy on multiple match
- Lookup condition
- Location information
- Source Type
- Recache if Stale
- Tracing Level
- Lookup cache directory name
- Lookup cache initialize
- Lookup cache persistent
- Lookup Data Cache Size
- Lookup Index Cache Size
- Dynamic Lookup Cache
- Cache File Name Prefix
- Recache from Database
- Insert Else Update
- Update Else Insert

MQ Source Qualifier - Filter


- Tracing Level
- Normalizer transformation:
- Reset
- Restart
- Tracing Level

Transformation Properties 119


Table D-1. Transformation Properties

Transformation Properties

Rank - Cache Directory


- Top/Bottom
- Number of Ranks
- Case sensitive String Comparison
- Tracing Level
- Rank Data Cache Size
- Rank Index Cache Size
- Transformation Scope

Router - Tracing Level

Sequence Generator - Start Value


- Increment By
- End Value
- Current Value
- Cycle
- Number of Cached Values
- Reset
- Tracing Level

Sorter - Sorter Cache Size


- Case Sensitivity
- Work Directory
- Distinct
- Tracing Level
- Null Treated Low

Source Qualifier - SQL query


- User Defined Join
- Source Filter
- Number of Sorted Ports
- Tracing Level
- Select Distinct
- Pre SQL
- Post SQL

Stored Procedure - Stored Procedure Name


- Connection Information
- Call Text
- Stored Procedure Type
- Execution Order
- Tracing Level

Transaction Control - Transaction Control Condition


- Tracing Level

Update Strategy - Update Strategy Expression


- Forward Rejected Rows
- Tracing Level

XML Source Qualifier - Tracing Level


- Reset
- Restart

120 Appendix D: Transformation Properties


Index

C error messages 92
installing 10
collection interfaces interfaces 20
Metadata Exchange SDK 25 metadata interfaces 20
restrictions 16
transformation properties 118
E upgrading from previous versions 16
environment interfaces metadata interfaces
Metadata Exchange SDK 29 description 20, 34
error messages metamodel
Metadata Exchange SDK 92 description 34

I R
installation repository
Metadata Exchange SDK 10 compatibility with PowerCenter/PowerMart version 2
interfaces sample repository 15
collection 25 restrictions
environment 29 Metadata Exchange SDK 16
metadata 20, 34
session and workflow 35
S
sample applications
M target and source metadata writer 14
Metadata Exchange SDK Visual Basic browser 11
capabilities 3 Visual C++ text browser 13
collection interfaces 25 sample repository
environment interfaces 29 description 15

121
session and workflow interfaces
description 35

T
transformation properties
list 118

V
Visual Basic
sample browser 11
version compatibility with Metadata Exchange SDK
16
Visual C++
sample target and source metadata writer 14
sample textual browser 13
version compatibility with Metadata Exchange SDK
16

X
XML (Metadata Exchange SDK)
import and export 30

122 Index

Você também pode gostar