of 88
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
1/236
www.bmc.com
BMC Atrium Core 7.6.03
Developer’s Reference Guide
August 2010
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
2/236
If you have comments or suggestions about this documentation, contact Information Design and Development by email at
Contacting BMC Software
You can access the BMC Software website at http://www.bmc.com. From this website, you can obtain informationabout the company, its products, corporate offices, special events, and career opportunities.
United States and Canada
Address BMC SOFTWARE INC2101 CITYWEST BLVDHOUSTON TX 77042-2827USA
Telephone 713 918 8800 or800 841 2031
Fax 713 918 8000
Outside United States and Canada
Telephone (01) 713 918 8800 Fax (01) 713 918 8000
© Copyright 2006–2007, 2009-2010 BMC Software, Inc.
BMC, BMC Software, and the BMC Software logo are the exclusive properties of BMC Software, Inc., are registered with the U.S. Patent
and Trademark Office, and may be registered or pending registration in other countries. All other BMC trademarks, service marks, andlogos may be registered or pending registration in the U.S. or in other countries. All other trademarks or registered trademarks are theproperty of their respective owners.
AIX and IBM are registered trademarks of International Business Machines Corporation in the United States, other countries, or both.
IT Infrastructure Library® is a registered trademark of the Office of Government Commerce and is used here by BMC Software, Inc.,
under license from and with the permission of OGC.
ITIL® is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in theU.S. Patent and Trademark Office, and is used here by BMC Software, Inc., under license from and with the permission of OGC.
J2SE, Java, Javadoc, JSP, Solaris, and Sun are trademarks of Sun Microsystems, Inc., in the U.S. and other countries.
Linux is the registered trademark of Linus Torvalds.
UNIX is the registered trademark of The Open Group in the US and other countries.
The information included in this documentation is the proprietary and confidential information of BMC Software, Inc., its affiliates, orlicensors. Your use of this information is subject to the terms and conditions of the applicable End User License agreement for the product
and to the proprietary and restricted rights notices included in the product documentation.
Restricted rights legendU.S. Government Restricted Rights to Computer Software. UNPUBLISHED -- RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OFTHE UNITED STATES. Use, duplication, or disclosure of any data and computer software by the U.S. Government is subject to
restrictions, as applicable, set forth in FAR Section 52.227-14, DFARS 252.227-7013, DFARS 252.227-7014, DFARS 252.227-7015, andDFARS 252.227-7025, as amended from time to time. Contractor/Manufacturer is BMC Software, Inc., 2101 CityWest Blvd., Houston, TX
77042-2827, USA. Any contract notices should be sent to this address.
mailto:[email protected]://www.bmc.com/mailto:[email protected]://www.bmc.com/
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
3/236
Customer Support
You can obtain technical support by using the Support page on the BMC Software website or by contacting CustomerSupport by telephone or email. To expedite your inquiry, please see “Before Contacting BMC Software.”
Support website
You can obtain technical support from BMC Software 24 hours a day, 7 days a week athttp://www.bmc.com/support. From this website, you can:
Read overviews about support services and programs that BMC Software offers. Find the most current information about BMC Software products. Search a database for problems similar to yours and possible solutions. Order or download product documentation. Report a problem or ask a question. Subscribe to receive email notices when new product versions are released. Find worldwide BMC Software support center locations and contact information, including email addresses, fax
numbers, and telephone numbers.
Support by telephone or email
In the United States and Canada, if you need technical support and do not have access to the Web, call 800 537 1813 orsend an email message to [email protected]. (In the Subject line, enterSupID:yourSupportContractID , such as SupID:12345.) Outside the United States and Canada, contact yourlocal support center for assistance.
Before contacting BMC Software
Have the following information available so that Customer Support can begin working on your issue immediately:
Product information
— Product name— Product version (release number)— License number and password (trial or permanent)
Operating system and environment information
— Machine type— Operating system type, version, and service pack— System hardware configuration— Serial numbers— Related software (database, application, and communication) including type, version, and service pack or
maintenance level
Sequence of events leading to the problem
Commands and options that you used
Messages received (and the time and date that you received them)
— Product error messages— Messages from the operating system, such asfile system full— Messages from related software
http://www.bmc.com/supportmailto:[email protected]:[email protected]://www.bmc.com/support
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
4/236
License key and password information
If you have a question about your license key or password, contact Customer Support through one of the followingmethods:
E-mail [email protected]. (In the Subject line, enter SupID:yourSupportContractID , suchas SupID:12345.)
In the United States and Canada, call 800 537 1813. Outside the United States and Canada, contact your local supportcenter for assistance.
Submit a new issue at http://www.bmc.com/support.
mailto:[email protected]://www.bmc.com/supporthttp://www.bmc.com/supportmailto:[email protected]
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
5/236
Contents 5
Contents
BMC Atrium Core documentation 13
Chapter 1 Introduction to the BMC Atrium Core APIs 17
BMC Atrium CMDB API architecture overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18BMC Atrium CMDB C API features and components . . . . . . . . . . . . . . . . . . . . . . 19
BMC Atrium CMDB Java API package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20BMC Atrium Core web services API overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20API version requirements for BMC Atrium CMDB client-server connections. . . . . . 21Comparison between BMC Atrium CMDB API programming and using the BMC
Atrium Core Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22When to use the BMC Atrium CMDB API and the BMC Atrium Core Console. 22BMC Atrium Core Console and BMC Atrium CMDB API terminology . . . . . . . 23
Chapter 2 Getting started 25
BMC Atrium CMDB API compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26BMC Atrium CMDB C API requirements and package contents. . . . . . . . . . . . . . . . . 29
BMC Atrium CMDB C API requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29BMC Atrium CMDB C API header files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29BMC Atrium CMDB C API library files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Compiler preparation for the BMC Atrium CMDB C API . . . . . . . . . . . . . . . . . . . 34Libraries for linking to BMC Atrium CMDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
BMC Atrium CMDB Java API requirements and package contents . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API library files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API header files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
BMC Atrium Core Web Services API components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
BMC Atrium Core Web Services Infrastructure overview . . . . . . . . . . . . . . . . . . . 36BMC Atrium Core Web Services Registry overview . . . . . . . . . . . . . . . . . . . . . . . . 36
The cmdbdriver program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37cmdbdriver command line options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Commands that record your cmdbdriver commands . . . . . . . . . . . . . . . . . . . . . . . 39Running cmdbdriver from the command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39cmdbdriver and scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Sample BMC Atrium Core API code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43BMC Atrium CMDB API print.c routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43BMC Atrium CMDB API and SQL views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
6/236
6 Developer’s Reference Guide
Chapter 3 Finding related CIs 45
Overview of the CMDBQueryByPath function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Structure of the CMDBQueryByPath function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Example: Finding all computers in the payroll division using the
CMDBQueryByPath function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Overview of the graph walk query functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
The stating node and query loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Example: Finding all CIs related to an instance of computer system using the
graph walk query functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Overview of the CMDBGraphQuery function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Graph representation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Examples of the CMDBGraphQuery function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Example: Walking a specific type of relationship for a CI instance using the
CMDBGraphQuery function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Example: Walking multiple types of relationships for a CI instance using the
CMDBGraphQuery function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Chapter 4 C API functions 65
Types of BMC Atrium CMDB C API functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67CMDBActivateFederatedInContext function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
CMDBBeginBulkEntryTransaction function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Input argument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72CMDBCancelJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
CMDBCreateAttribute function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
CMDBCreateClass function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
CMDBCreateGuid function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
CMDBCreateInstance function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
7/236
Contents 7
CMDBCreateMultipleAttributes function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
CMDBCreateMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
CMDBDeleteAttribute function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
CMDBDeleteClass function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
CMDBDeleteInstance function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
CMDBDeleteMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
CMDBEndBulkEntryTransaction function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90CMDBExpandParametersForCI function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Return Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
CMDBExportData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CMDBExportDef function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93CMDBGetAttribute function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
CMDBGetClass function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
8/236
8 Developer’s Reference Guide
CMDBGetCopyAuditData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
CMDBGetInstance function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
CMDBGetInstanceBLOB function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
CMDBGetListClass function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
CMDBGetListInstance function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
CMDBGetMultipleAttributes function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
CMDBGetMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
CMDBGetCMDBUIComponents function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
CMDBGetJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
CMDBGetListJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113CMDBGetRelatedFederatedInContext function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
CMDBGetServerPort function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Input argument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
9/236
Contents 9
CMDBGetVersions function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
CMDBGraphQuery function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
CMDBGraphWalkBegin function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
CMDBGraphWalkEnd function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Input argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
CMDBGraphWalkNext function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CMDBImportData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
CMDBImportDef function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122CMDBInitialization function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Input argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
CMDBQueryByPath function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
CMDBRunQualificationForCI function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125CMDBSetAttribute function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
CMDBSetClass function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
10/236
10 Developer’s Reference Guide
CMDBSetInstance function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
CMDBSetMultipleAttributes function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
CMDBSetMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
CMDBSetServerPort function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
CMDBStartJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
CMDBSynchMetaData function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
CMDBSystemInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
CMDBTermination function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Input argument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Chapter 5 C API data structures 141
Types of BMC Atrium CMDB C API structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144CMDBAttributeGetStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146CMDBAttributeLimit structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147CMDBAttributeLimitList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151CMDBAttributeNameId structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151CMDBAttributeValueList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152CMDBAttributeValueListList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152CMDBAttributeValueStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152CMDBAuditInfoStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153CMDBAuditValueList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154CMDBAuditValueListList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155CMDBClassNameId structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155CMDBClassNameIdList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155CMDBClassRelationship structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156CMDBClassTypeInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157CMDBExportItem structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
11/236
Contents 11
CMDBExportItemList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159CMDBExportItemStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159CMDBFederatedActivateInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161CMDBFederatedARInfo structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162CMDBGetObjectList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
CMDBGetObjectStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163CMDBGetRelationList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163CMDBGetRelationStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164CMDBGraphAdjacentList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164CMDBGraphAdjacentStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165CMDBGraphList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165CMDBGraphStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166CMDBGraphWalkObjectList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166CMDBGraphWalkObjectStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167CMDBGraphWalkQueryStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167CMDBGraphWalkRelation structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
CMDBGraphWalkRelationList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170CMDBGraphWalkResultStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171CMDBGraphWalkSelectorAndFilterList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . 172CMDBGraphWalkSelectorAndFilterStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . 173CMDBGraphWalkStateStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174CMDBImportItem structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175CMDBImportItemList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175CMDBImportItemStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176CMDBIndexList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177CMDBIndexStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178CMDBInstanceList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
CMDBInstanceStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179CMDBItemTypeAttribute structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179CMDBItemTypeClass structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179CMDBNestedQueryStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180CMDBQualifierStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181CMDBQueryArithOpStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181CMDBQueryAttributeName structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182CMDBQueryCardinality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183CMDBQueryObject structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184CMDBQueryObjectList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186CMDBQueryObjectRelationship structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
CMDBQueryObjectSelectorList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187CMDBQueryObjectSelectorStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188CMDBQueryQualifierAndOrStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188CMDBQueryQualifierSetOpStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189CMDBQueryQualifierSimpleOpStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190CMDBQueryQualifierStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192CMDBQueryQualifierValueSetStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193CMDBQueryQualifierValueStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194CMDBQueryResultGraph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195CMDBQuerySortStruct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197CMDBQuerySortList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
CMDBQueryStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
12/236
12 Developer’s Reference Guide
CMDBGraphQueryResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200CMDBStdEdgeResult. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200CMDBEdgeListList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201CMDBNodeList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201CMDBNodeListList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
CMDBRelationshipResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202CMDBRelationshipResultList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203CMDBREClassQualList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203CMDBREClassQualStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204CMDBREDatasetList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204CMDBREDatasetPair structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205CMDBREJobRunInfo structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205CMDBREJobRunInfoList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206CMDBSortList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206CMDBSortStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207CMDBUIComponentInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
CMDBUIComponentResult structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211CMDBUIComponentResultList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212CMDBVersionInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212CMDBVersionInfoList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213CMDBWeakPropagatedAttrs structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213CMDBWeakPropagatedAttrsList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214CMDBXMLExportItemList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214CMDBXMLImportItemList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Appendix A cmdbdriver commands 217
cmdbdriver commands for C API functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Class commands for cmdbdriver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Attribute commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Instance commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219RE job run commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Federation commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Import and export commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Query By Path commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Graph Walk Query command for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Miscellaneous cmdbdriver commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Commands for controlling cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Initialization and termination commands for cmdbdriver . . . . . . . . . . . . . . . . . . 223Recording and logging commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . 223Thread and timer commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Session configuration commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . 224
Index 225
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
13/236
BMC Atrium Core documentation 13
BMC Atrium Core documentation
This section describes the complete set of BMC Atrium Core documentation,including manuals, help systems, videos, and so on.
Unless otherwise noted, documentation is available on the BMC Atrium Coredocumentation media (DVD or Electronic Product Download bundle) and on theBMC Customer Support site, free of charge, at http://www.bmc.com/support .
To find this documentation on the BMC Customer Support site, choose ProductDocumentation > Supported Product A-Z List > BMC Atrium CMDB EnterpriseManager > 7.6.03.
Title Description Audience
BMC Atrium CMDB 7.6.03 Administrator's Guide
Information about setting permissions, configuringfederation, modifying the data model, configuringan impact model, and other administrative tasks inBMC Atrium CMDB.
Configuration managers,application administrators,and asset analysts.
BMC Atrium CMDB 7.6.03
Common Data ModelDiagram
Hierarchical diagram of all classes in the Common
Data Model (CDM) including unique attributes andapplicable relationships.
Configuration managers,
application administrators,and asset analysts.
BMC Atrium CMDB7.6.03 Data Model Help
Description and details of superclasses, subclasses,attributes, and relationship classes for each class.Contains only information about the CDM at first,
but you can update it to include information aboutdata model extensions that you install.
Note: This Help is provided in HTML and is availableon the BMC Atrium Core media. It is not availableon the BMC Customer Support site.
Configuration managers,application administrators,and asset analysts.
BMC Atrium CMDB 7.6.03
Data Modeling Guide
Best practices for using the classes that BMC
provides for BMC Atrium CMDB (both the CDMand extensions) to model complex business entities,focusing on the use of multiple related CIs to modelan entity rather than on general information about aclass or attribute.
Configuration managers,
application administrators,and asset analysts.
BMC Atrium CMDB 7.6.03Normalization andReconciliation Guide
Information about normalizing data in BMC AtriumCMDB and reconciling CIs from different dataproviders into a single production dataset.
Configuration managers,application administrators,and asset analysts.
http://www.bmc.com/supporthttp://www.bmc.com/support
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
14/236
14 Developer’s Reference Guide
BMC Atrium Core 7.6.03
BMC Atrium CMDB7.6.03 Online Help
Help for using and configuring BMC Atrium CMDB,including BMC Atrium Product Catalog,Reconciliation Engine, Normalization Engine, andso on.
Note: This Help is provided in HTML and is availablethrough the Help links in the BMC Atrium CMDBuser interface. It is not available on the BMCCustomer Support site.
Configuration managers,application administrators,asset analysts, and usersthat work with CIs and need
to understand therelationships that existwithin BMC Atrium CMDB.
BMC Atrium CMDB 7.6.03User's Guide
Information about using BMC Atrium CMDB,including searching for and comparing CIs andrelationships, relating CIs, viewing history, runningimpact simulations, and viewing federated data.
Users that work with CIsand need to understand therelationships that existwithin BMC Atrium CMDB.
BMC Atrium Core 7.6.03Compatibility Matrix
Information about the BMC Atrium Coreconfigurations that are expected to work properly
based on design, testing, or general understanding
of the interaction between products.
Note: Download the BMC Atrium Core 7.6.03Compatibility Matrix from the BMC CustomerSupport site at http://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=n .
Configuration managers,application administrators,and asset analysts.
BMC Atrium Core 7.6.03Concepts and PlanningGuide
Information about CMDB concepts and high-levelsteps for planning and implementing BMC AtriumCore.
Anyone who wants to learnabout and understand BMCAtrium Core products,CMDBs in general, and thefunctionality of BMCAtrium CMDB in particular.
IT leaders, configurationmanagers, applicationadministrators, and assetanalysts are some who will
benefit from thisinformation.
BMC Atrium Core 7.6.03Developer’s Reference Guide
Information about creating API programs using CAPI functions and data structures.
Application administratorsand programmers.
BMC Atrium Core 7.6.03Installation Guide
Information about installing, upgrading, anduninstalling BMC Atrium Core features.
Application administrators.
BMC Atrium CMDB
7.6.03 Javadoc Help
Information about Sun™ Java™ classes, methods,
and variables that integrate with BMC AtriumCMDB.
Note: This Help is provided in HTML and is availableon the BMC Atrium Core media. It is not availableon the BMC Customer Support site.
Application programmers.
BMC Atrium Core 7.6.03 Master Index
Combined index of all guides. Everyone.
Title Description Audience
http://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=n
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
15/236
BMC Atrium Core documentation 15
BMC Atrium Core 7.6.03Product Catalog and DMLGuide
Information about configuring the Product Catalogand DML, adding products, and creating aliases forproducts, manufacturers, and categorizations.
System administrators, ITmanagers, networkmanagers, and otherqualified personnel who are
familiar with theircomputing and networkingenvironment.
BMC Atrium Core 7.6.03Release Notes
Information about new features, known issues, andother late-breaking topics.
Everyone.
BMC Atrium Core 7.6.03:Taking Your Data IntoProduction End to End
End-to-end high-level steps for bringing data intoBMC Atrium CMDB from a third-party source andmaking it available in your production dataset.
Note: This Flash video is available on the BMCAtrium Core media. It is not available on the BMCCustomer Support site.
Configuration managers,application administrators,and asset analysts.
BMC Atrium Core 7.6.03Troubleshooting Guide
Information about resolving issues with BMCAtrium Core components, including API, filter, andconsole error messages and their solutions.
Application administrators,programmers, and BMCSupport personnel.
BMC Atrium Core 7.6.03Web Services Help
Information about using BMC Atrium Core WebServices, including how to publish and findinterfaces in the Web Services Registry, set versions,disambiguate web services, configure securitypolicies and encryption, and use BMC Atrium CoreWeb Services data structures and operations.
Note: This Help is provided in HTML and is availableon the BMC Atrium Core media. It is not availableon the BMC Customer Support site.
Application administratorsand programmers.
BMC Atrium IntegrationEngine 7.6.03 ADKDeveloper's Guide
Information about how to build adapters that cantransfer information between an external data storeand either BMC Remedy AR System forms or BMCAtrium CMDB.
Developers who have a basic understanding of BMCAtrium Integration Engineand want to build adaptersthat can exchange data
between two data sources.
BMC Atrium IntegrationEngine 7.6.03 Online Help
Help for using and configuring BMC AtriumIntegration Engine.
Note: This Help is provided in HTML and is available
through the Help links in the BMC AtriumIntegration Engine user interface. It is notavailable on the BMC Customer Support site.
Users who are responsiblefor setting up data transferintegrations betweenexternal data stores and
either BMC Atrium CMDBor BMC RemedyAR System.
Title Description Audience
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
16/236
16 Developer’s Reference Guide
BMC Atrium Core 7.6.03
BMC Atrium IntegrationEngine 7.6.03 User's Guide
Information about creating data exchanges and datamappings, defining rules and queries, activatingevent-driven data exchanges, defining connectionsettings, and other BMC Atrium Integration Engine
concepts.
Users who are responsiblefor setting up data transferintegrations betweenexternal data stores and
either BMC Atrium CMDBor BMC RemedyAR System.
Mapping Your Data toBMC Atrium CMDB 7.6.03Classes
Spreadsheet that maps common IT objects to theappropriate class, whether part of the CDM or anextension. This spreadsheet also includesinformation about further categorizing instancesusing key attributes, and best practices for creatingnormalized relationships.
Configuration managers,application administrators,and asset analysts.
Title Description Audience
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
17/236
Chapter 1 Introduction to the BMC Atrium Core APIs 17
Chapter
1 Introduction to the BMCAtrium Core APIsThis section provides an overview of the BMC Atrium CMDB applicationprogramming interface (API) suite.
The following topics are provided:
BMC Atrium CMDB API architecture overview (page 18)
API version requirements for BMC Atrium CMDB client-server connections(page 21)
Comparison between BMC Atrium CMDB API programming and using theBMC Atrium Core Console (page 22)
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
18/236
18 Developer’s Reference Guide
BMC Atrium Core 7.6.03
BMC Atrium CMDB API architecture overview
The BMC Atrium CMDB product provides an API suite that allows you to workwith class definitions, instance data, federation, reconciliation, audit, and other
functions. The BMC Atrium CMDB API suite is composed of the C, Java, and webservices APIs.
The C, Java, and web services APIs provide similar data structures and functionsto encapsulate information and functionality. Additionally, the web services APIprovides a set of platform-independent operations that communicate with yourapplications to retrieve and send data.
As shown in Figure 1-1, BMC Atrium Core components, such as Atrium Explorerand BMC Atrium Core Console, use the Java API to control the flow of data,whereas the external data consumers and data providers can communicate usingeither the web services API or Java API.
Figure 1-1: BMC Atrium CMDB API architecture
This guide describes the C API. For more information about the BMC AtriumCMDB Java API, see BMC Atrium CMDB 7.6.03 Javadoc Help. For moreinformation about web services APIs, see BMC Atrium Core 7.6.03 Web ServicesHelp.
Reconciliation Engine
Normalization Engine
Atrium Console Atrium Explorer
AR System API
CMDB C API
CMDB Java API
CMDB Web Services API
Database
BMC Atrium CMDB
Action Request System
Web Client
Remedy User
AR System Applications
Remedy User
Web Client
Web Service Clients
.Net Client
AXIS Client
BMC Remedy Mid Tier (CMDB API)
BMC BMC
BMC ServiceImpact Manager
BMC AtriumDiscovery
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
19/236
Chapter 1 Introduction to the BMC Atrium Core APIs 19
BMC Atrium CMDB API architecture overview
BMC Atrium CMDB C API features and components
A BMC Atrium CMDB client can use the C API to create, modify, delete, and queryclass definitions, instance data, federation, reconciliation, and other functions. TheC API:
Contains data structures that store both simple and complex information. Asimple data structure serves as the primary building block for a complex datastructure.
Includes a set of free functions that you can use to deallocate memory.
Includes a set of copy functions that you can use to make copies of BMC AtriumCMDB C API structures
Provides server-access information with every call in the control parameter ofthe function.
BMC Atrium CMDB C API featuresYou can use the C API functions to perform the following operations:
Create, modify, and delete classes and instances.
Retrieve CI and relationship information.
Import and export definitions and data.
Start and stop Reconciliation Engine jobs.
BMC Atrium Core C API supports the following 32-bit and 64-bit platforms:
Microsoft Windows
Linux®
Sun™ Solaris™
IBM® AIX®
Hewlett Packard HP-UX
Hewlett Packard HP-Itanium
BMC Atrium CMDB C API components
The C API consists of a set of functions and data structures, most of which performa specific operation against BMC Atrium CMDB or a federated data store. Forexample, you can use a function to retrieve information about a particular BMCAtrium CMDB class.
Most of the C API functions accept BMC Atrium CMDB C data structures asparameters that qualify the action to perform, such as the type of class to create, thequalification for an instance to retrieve or delete, or the class name to modify.
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
20/236
20 Developer’s Reference Guide
BMC Atrium Core 7.6.03
The sdk/samples/driver subdirectory in your BMC Atrium CMDB installationdirectory contains the source code for the cmdbdriver program. This programprovides a command-line interface for calling C API functions. The cmdbdriver program also includes print routines for every data structure in the API, making ita useful debugging tool.
BMC Atrium CMDB Java API package
The BMC Atrium CMDB Java API is a collection of Java classes and methods thatprovide the C API functionality in a Java development environment. For example,use the Java API if you write server-side web applications that you access throughthe Java Server page (JSP™) or Java servlets web tier layer.
The Java API provides an object model of BMC Atrium CMDB. Because the JavaAPIs provide classes and methods that are similar to the C API functions and datastructures, you will find it easier to use the Java API if you are already familiar withthe C API.
This guide describes the C API. For more information about the Java API, see BMCAtrium CMDB 7.6.03 Javadoc Help, which is located in the cmdb/sdk/javadoc/cmdbapi/ subdirectory of your BMC Atrium Core installation directory. To accessBMC Atrium CMDB 7.6.03 Javadoc Help, open the index.html file.
For detailed information about the Java API changes in this release, see theJavaAPI_Overview.html file of BMC Atrium CMDB 7.6.03 Javadoc Help.
For more information about the web services API, see the BMC Atrium Core 7.6.03Web Services Help.
BMC Atrium Core web services API overviewBMC Atrium Core Web Services, which conforms to Simple Object Access Protocol(SOAP) and Web Services Description Language (WSDL) standards, provides astandard interface for interacting with BMC Atrium Core. You can use the webservices API to integrate BMC Atrium CMDB data with other applications, forexample, BMC Atrium Discovery and Dependency Mapping, BMC RemedyChange Management, or any other third-party application.
BMC Atrium Core Web Services APIs consist of operations and data structures.For more information about the available operations, see BMC Atrium Core 7.6.03Web Services Help.
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
21/236
Chapter 1 Introduction to the BMC Atrium Core APIs 21
API version requirements for BMC Atrium CMDB client-server connections
BMC Atrium Core Web Services includes the following components:
The BMC Atrium Web Services Infrastructure component has been divided intothe components shown in Table 1-1.
By default, Username and Password authentication is the only enabled WebServices security policy. Other security policies are available but are notenabled.
The TIBCO Runtime UDDI Server is a registry through which web services arepublished and clients find and invoke the services. It is implemented as acollection of web services and is deployed as a WAR file (uddi.war) on the webapplication server.
API version requirements for BMC AtriumCMDB client-server connections
You can prevent earlier versions of BMC Atrium CMDB clients from connecting toa later version of the server. To specify the minimum API version with which theserver can communicate, configure the Minimum-CMDB-API-Version parameter inthe ar.cfg (Microsoft Windows) or ar.conf (UNIX®) file. The default value forthis setting is 3.
For example, if you set Minimum-CMDB-API-Version to 4, clients earlier thanversion 2.1.00 cannot communicate with the server. For more information aboutthe ar.cfg or ar.conf configuration file, see the BMC Remedy Action RequestSystem 7.6.03 Configuration Guide. Table 1-2 provides the BMC Atrium CMDBreleases and their corresponding API versions.
Table 1-1: BMC Atrium Web Services Infrastructure components
Component Includes
Web ServicesInfrastructure
The modified Apache Axis2 stack
For more information about the modifications, see BMC AtriumCore 7.6.03 Web Services Help.
Atrium Core WebServices
BMC Atrium Core web services
Table 1-2: BMC Atrium Core releases and corresponding API versions
BMC Atrium CMDB release API version
BMC Atrium CMDB 7.6.03 7
BMC Atrium CMDB 7.6.00 6
BMC Atrium CMDB 7.5.00 5
BMC Atrium CMDB 2.1.00 4
BMC Atrium CMDB 2.0.x 3
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
22/236
22 Developer’s Reference Guide
BMC Atrium Core 7.6.03
Comparison between BMC Atrium CMDB APIprogramming and using the BMC Atrium Core
ConsoleThe BMC Atrium CMDB API allows you to interact with BMC Atrium CMDBprogrammatically and to integrate BMC Atrium CMDB functionality into yourapplications. API programming gives you the flexibility to customize yourapplications, but it is also more complex to design, implement, and maintain. Ifyou do not need this flexibility or would like to interact with the BMC AtriumCMDB user interface, consider using the BMC Atrium Core Console.
The BMC Atrium Core Console provides an easy-to-use graphical user interfacefor performing BMC Atrium CMDB tasks, such as creating classes, CIs, and
relationships, and viewing instance history. For more information aboutperforming BMC Atrium Core Console tasks, see:
BMC Atrium CMDB 7.6.03 Administrator's Guide— For administrator tasks suchas, using creating or modifying classes and attributes, and creating federateddata.
BMC Atrium CMDB 7.6.03 Normalization and Reconciliation Guide—For setting upnormalization and reconciliation tasks.
BMC Atrium CMDB 7.6.03 User's Guide—For user tasks such as, viewing CIhistory, viewing CI and relationship classes, and comparing instances.
When to use the BMC Atrium CMDB API and the BMC Atrium CoreConsole
Table 1-3 outlines the scenarios in which you should use APIs or the BMC AtriumCore Console.
Table 1-3: API programming and BMC Atrium Core Console scenarios (Sheet 1 of 2)
Scenario API programming or BMC Atrium Core Console
To modify the CDM manually. BMC Atrium Core Console
To access multiple BMC Atrium CMDBcomponents at the same time orintegrate with programs or data outsidethe BMC Atrium Core Console.
API programming
To create, delete, or search for BMCAtrium CMDB classes manually.
BMC Atrium Core Console
To perform complex operations thatinvolve multiple objects.
API programming
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
23/236
Chapter 1 Introduction to the BMC Atrium Core APIs 23
Comparison between BMC Atrium CMDB API programming and using the BMC Atrium Core Console
BMC Atrium Core Console and BMC Atrium CMDB API terminology
The BMC Atrium Core Console and the APIs use different terms for specific tasks,as shown in Table 1-4.
To create, delete, or search BMC AtriumCMDB relationships manually.
BMC Atrium Core Console
To create a two-way interface (orgateway) between BMC Atrium CMDBand another application.
API programming
Table 1-3: API programming and BMC Atrium Core Console scenarios (Sheet 2 of 2)
Scenario API programming or BMC Atrium Core Console
Table 1-4: BMC Atrium Core Console and API terminology
BMC Atrium Core Console term API term
search/find getList/find/query
create create
modify set/update
view/display get
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
24/236
24 Developer’s Reference Guide
BMC Atrium Core 7.6.03
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
25/236
Chapter 2 Getting started 25
Chapter
2 Getting startedThis section provides the information that you need to get started with developingyour BMC Atrium CMDB APIs.
The following topics are provided:
BMC Atrium CMDB API compatibility (page 26)
BMC Atrium CMDB C API requirements and package contents (page 29)
BMC Atrium CMDB Java API requirements and package contents (page 35)
BMC Atrium Core Web Services API components (page 36)
The cmdbdriver program (page 37)
Sample BMC Atrium Core API code (page 43)
BMC Atrium CMDB API print.c routines (page 43)
BMC Atrium CMDB API and SQL views (page 44)
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
26/236
26 Developer’s Reference Guide
BMC Atrium Core 7.6.03
BMC Atrium CMDB API compatibility
This section provides the backward and forward API compatibility information forBMC Atrium CMDB 7.6.03.
Table 2-1 provides a compatibility matrix for versions of BMC Atrium CMDB andBMC Remedy AR System servers. The supported combinations are listed with theassumption that the platform version (including operating system and either 32- bit or 64-bit architecture) of the BMC Atrium CMDB server must be the same as theBMC Remedy AR System server. For example, the 32-bit Linux version of BMCAtrium CMDB cannot be installed with the 64-bit Linux version of BMC RemedyAR System. Use this table if you are using or planning to use the BMC RemedyAR System API.
Table 2-1: Compatibility between BMC Atrium CMDB and BMC Remedy AR System servers(Sheet 1 of 2)
BMC Remedy AR System server BMC Atrium CMDB server Supported?7.6.03 7.6.03 Yes
7.6.03 7.6.00 Yes
(Not supported on 64-bitWindows platform)
7.6.03 7.5.00 Yes
(Not supported on 64-bitWindows platform)
7.6.03 2.1.00 Yes
(32-bit Windows only.
Not supported on 64-bitUNIX platforms.)
7.6.03 2.0.1 Yes
(32-bit Windows only.Not supported on 64-bitUNIX platforms.)
7.5.00 7.6.03 No
7.5.00 7.6.00 Yes
7.5.00 7.5.00 Yes
7.5.00 2.1.00 Yes
(32-bit Windows only.Not supported on 64-bitUNIX platforms.)
7.5.00 2.0.1 Yes
(32-bit Windows only.Not supported on 64-bitUNIX platforms.)
7.1.00 7.6.03 No
7.1.00 7.6.00 No
7.1.00 7.5.00 No
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
27/236
Chapter 2 Getting started 27
BMC Atrium CMDB API compatibility
A BMC Atrium CMDB client is any application that uses the BMC Atrium CMDBAPI. If you plan to develop a BMC Atrium CMDB client, reference Table 2-2, whichprovides a compatibility matrix for versions of BMC Atrium CMDB servers and
clients. The platform version (including operating system and either 32-bit or 64- bit architecture) of the BMC Atrium CMDB client is independent of the BMCAtrium CMDB server. For example, the 32-bit Windows version of the client cancommunicate with the 64-bit Linux version of the server. The supportedcombinations listed apply to all platforms.
7.1.00 2.1.00 Yes
7.1.00 2.0.1 Yes
7.0.1 7.6.03 No
7.0.1 7.6.00 No
7.0.1 7.5.00 No
7.0.1 2.1.00 No
7.0.1 2.0.1 Yes
Table 2-1: Compatibility between BMC Atrium CMDB and BMC Remedy AR System servers(Sheet 2 of 2)
BMC Remedy AR System server BMC Atrium CMDB server Supported?
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
28/236
28 Developer’s Reference Guide
BMC Atrium Core 7.6.03
Table 2-2: Compatibility between BMC Atrium CMDB clients and servers (Sheet 1 of 2)
BMC Atrium CMDB Client BMC Atrium CMDB Server Supported?
7.6.03 7.6.03 Yes
7.6.03 7.6.00 Yes (Backwards compatibility
provided by CMDB client)7.6.03 7.5.00 Yes (Backwards compatibility
provided by CMDB client)
7.6.03 2.1.00 Yes (Backwards compatibilityprovided by CMDB client)
7.6.03 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)
7.6.00 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)
7.6.00 7.6.00 Yes
7.6.00 7.5.00 Yes (Backwards compatibilityprovided by CMDB client)
7.6.00 2.1.00 Yes (Backwards compatibilityprovided by CMDB client)
7.6.00 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)
7.5.00 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)
7.5.00 7.6.00 Yes (Backwards compatibilityprovided by CMDB server)
7.5.00 7.5.00 Yes
7.5.00 2.1.00 Yes (Backwards compatibilityprovided by CMDB client)
7.5.00 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)
2.1.00 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)
2.1.00 7.6.00 Yes (Backwards compatibilityprovided by CMDB server)
2.1.00 7.5.00 Yes (Backwards compatibilityprovided by CMDB server)
2.1.00 2.1.00 Yes
2.1.00 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)
2.0.1 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)
2.0.1 7.6.00 Yes (Backwards compatibilityprovided by CMDB server)
2.0.1 7.5.00 Yes (Backwards compatibilityprovided by CMDB server)
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
29/236
Chapter 2 Getting started 29
BMC Atrium CMDB C API requirements and package contents
BMC Atrium CMDB C API requirements andpackage contents
The C API package includes header files, library files, and source code for thecmdbdriver sample program. When installing the BMC Atrium Core solution, youalso install the C API.
BMC Atrium CMDB C API requirementsTo build and run a C API program on Linux, you must install the GNU StandardC++ Library version 3 Release 5 or libstdc++5 package.
BMC Atrium CMDB C API header files
Table 2-3 lists the C API header files installed in the include directory of yourBMC Atrium Core installation.
2.0.1 2.1.00 No
2.0.1 2.0.1 Yes
Table 2-2: Compatibility between BMC Atrium CMDB clients and servers (Sheet 2 of 2)
BMC Atrium CMDB Client BMC Atrium CMDB Server Supported?
Table 2-3: C API header files
File name Contents
ar.h BMC Remedy AR System API data type and structure definitions,size limits, and constant definitions.
cmdb.h BMC Atrium Core C API data type and structure definitions, sizelimits, and constant definitions.
arerrno.h Error code definitions.
arextern.h External declarations for the API functions, specified with andwithout prototypes for use with standard C, ANSI C, or C++compilers.
arfree.h External declarations for the FreeAR functions. These functions
recursively free all allocated memory associated with a particulardata structure.
cmdbfree.h External declarations for the FreeCMDB functions. These functionsrecursively free all allocated memory associated with a particulardata structure.
arstruct.h Core and reserved subclasses ID definitions, database separatorcharacters, and labels for exporting structure definitions.
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
30/236
30 Developer’s Reference Guide
BMC Atrium Core 7.6.03
BMC Atrium CMDB C API library files
To display error messages properly, you must have arcatalog_eng.dll in yourpath at runtime, and make sure the lib directory contains the BMC Atrium CoreC API library files listed in Table 2-4.
To load dynamic libraries on Solaris and Linux, include the -ldl link flag in thelink command. For more information about linking and compiling your code, seethe driver sample makefile in the sdk\samples\driver subdirectory of the BMCAtrium Core installation.
NOTE
The SDK contains files that are not listed in Table 2-4. Those files are required forthe Java API or for working with the cmdbdriver program, but are not required tocreate a C API program.
Table 2-4: C API library files (Sheet 1 of 4)
Platform Files
Microsoft Windows 32-bit
arapi7603_build001.dll
arcatalog_eng.dll
arjni7603_build001.dll
arrpc7603_build001.dll
arutiljni7603_build001.dll
arutl7603_build001.dll
cmdbapi7603.dll
icudt32.dll icuinbmc32.dll
icuucbmc32.dll
mfc71.dll
msvcp71.dll
msvcr71.dll
64-bit
arapi7603_build001_win64.dll
arcatalog_eng.dll
arjni7603_build001_win64.dll
arrpc7603_build001_win64.dll
arutiljni7603_build001.dll arutl7603_build001_win64.dll
arxmlutil7603_build001_win64.dll
cmdbapi7603_win64.dll
icudt32.dll
icuinbmc32_win64.dll
icuucbmc32_win64.dll
mfc71.dll
msvcp71.dll
msvcr71.dll
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
31/236
Chapter 2 Getting started 31
BMC Atrium CMDB C API requirements and package contents
Solaris 32-bit
libarjni7603_build001.so
libarutiljni7603_build001.so
libcmdbapi7603.so
libcmdbjni7603.so
libjlicapi7603_build001.so
libicudatabmc.so.32
libicui18nbmc.so.32
libicuucbmc.so.32
64-bit
libarjni7603_build001.so
libarutiljni7603_build001.so
libcmdbapi7603_solsp64.so
libcmdbjni7603.so
libjlicapi7603_build001.so
libicudatabmc_solsp64.so.32
libicui18nbmc_solsp64.so.32
libicuucbmc_solsp64.so.32
AIX 32-bit
libarjni7603_build001.a
libarutiljni7603_build001.a
libcmdbjni7603.a
libcmdbapi7603.a
libicudatabmc32.a libicui18nbmc32.a
libicuucbmc32.a
libjlicapi7603_build001.a
64-bit
libarjni7603_build001.a
libarutiljni7603_build001.a
libcmdbjni7603_build001.a
libcmdbapi7603_build001_aixp64.a
libicudatabmc_aixp6432.a
libicui18nbmc_aixp6432.a
libicuucbmc_aixp6432.a
libjlicapi7603_build001.a
Table 2-4: C API library files (Sheet 2 of 4)
Platform Files
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
32/236
32 Developer’s Reference Guide
BMC Atrium Core 7.6.03
HP-UX 32-bit
libicudatabmc.sl.32
libicui18nbmc.sl.32
libicuucbmc.sl.32
libarjni7603_build001.sl
libarutiljni7603_build001.sl
libcmdbapi7603.sl
libcmdbjni7603.sl
libjlicapi7603_build001.sl
64-bit
libicudatabmc_hppa64.sl.32
libicui18nbmc_hppa64.sl.32
libicuucbmc_hppa64.sl.32
libarjni7603_build001.sl
libarutiljni7603_build001.sl
libcmdbjni7603.sl
libjlicapi7603_build001.sl
Linux 32-bit
libicudatabmc.so.32
libicui18nbmc.so.32
libicuucbmc.so.32
libarjni7603_build001.so
libarutiljni7603_build001.so
libcmdbapi7603.so libcmdbjni7603.so
libjlicapi7603_build001.so
64-bit
libicudatabmc_lx64.so.32
libicui18nbmc_lx64.so.32
libicuucbmc_lx64.so.32
libarjni7603_build001.so
libarutiljni7603_build001.so
libcmdbapi7603_lx64.so
libcmdbjni7603.so
libjlicapi7603_build001.so
Table 2-4: C API library files (Sheet 3 of 4)
Platform Files
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
33/236
Chapter 2 Getting started 33
BMC Atrium CMDB C API requirements and package contents
HP-Itanium 32-bit (for client-side programs)
libicudatabmc_hpia32.sl.32
libicui18nbmc_hpia32.sl.32
libicuucbmc_hpia32.sl.32
libarjni7603_build001_hpia32.so
libarutiljni7603_build001_hpia32.so
libcmdbapi7603_hpia32.sl
libcmdbjni7603_hpia32.so
libjlicapi7603_build001_hpia32.sl
64-bit (for server-side programs)
libicudatabmc_hpia64.sl.32
libicui18nbmc_hpia64.sl.32
libicuucbmc_hpia64.sl.32
libarjni7603_build001_hpia32.so
libarutiljni7603_build001_hpia32.so
libcmdbapi7603_hpia64.sl
libcmdbjni7603_hpia32.so
libjlicapi7603_build001_hpia32.sl
Table 2-4: C API library files (Sheet 4 of 4)
Platform Files
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
34/236
34 Developer’s Reference Guide
BMC Atrium Core 7.6.03
Compiler preparation for the BMC Atrium CMDB C API
Before you write C API programs, make sure that the following software programsare installed or configured on your system:
For Microsoft Windows 32-bit you need Microsoft Visual C++ version 7.0 or
later. For Microsoft Windows 64-bit, you need Microsoft Visual C++ 9.0. tocompile your C API programs.
Structure member alignment: 8 bytes (default)
Set code generation to Multithreaded DLL, not DebugMultithreaded DLL.Where other included libraries cause conflicts, add /nodefaultlib:"MSVCRTD" to the project options to avoid using the Debug C runtime library. If yourprogram references this library at runtime, memory management errors willoccur when memory pointers are referenced by both the Debug and Release Cruntime libraries.
ANSI standard C or C++ compiler (for UNIX)NOTE
If you develop C++ clients that run on HP computers using the BMC AtriumCMDB C API, compile your code with the __HPACC_THREAD_SAFE_RB_TREE flagenabled. This operation is necessary because the libraries that the tree header fileuses, which includes tree.cc, are not thread safe.
Libraries for linking to BMC Atrium CMDB
Table 2-5 lists the libraries that your programs must use for linking to BMC Atrium
CMDB.
Table 2-5: Link files
Platform Links
Windows cmdbapi7603.dll
Solaris, Linux libcmdbapi7603.so
HP-UX libcmdbapi7603.sl
HP-Itanium libcmdbapi7603_hpia32.sllibcmdbapi7603_hpia64.sl
AIX libcmdbapi7603.a
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
35/236
Chapter 2 Getting started 35
BMC Atrium CMDB Java API requirements and package contents
BMC Atrium CMDB Java API requirements andpackage contents
The Java API package includes several header files and library files. When youinstall the BMC Atrium Core solution, the Java API is also installed.
For detailed information about the Java API, see BMC Atrium CMDB 7.6.03 Javadoc Help, which is located in the cmdb/sdk/javadoc/cmdbapi/ subdirectoryof your BMC Atrium Core installation directory
BMC Atrium CMDB Java API requirements
To build and run a Java API program on either Windows or UNIX, you need thefollowing environment components:
J2SE™ Software Development Kit (SDK), version 1.5.0_11 or later.
Windows DLL files or UNIX library files listed in Table 2-4 on page 30.
GNU Standard C++ Library version 3 Release 5 or libstdc++5 package. Thisrequirement also applies to other BMC applications that use the BMC AtriumCMDB SDK.
BMC Atrium CMDB Java API library files
When you install BMC Atrium Core, a list of BMC Atrium CMDB Java API libraryfiles is installed with the application. For more information about these library
files, see “Installation and deployment” of the JavaAPI_Overview.html file ofBMC Atrium CMDB 7.6.03 Javadoc Help.
BMC Atrium CMDB Java API header files
Table 2-6 lists the header files that are installed with the BMC Atrium CMDB JavaAPI.
Table 2-6: Header files for BMC Atrium CMDB programs
Header file name Description
com.bmc.arsys.api.*; BMC Remedy AR System API functionscom.bmc.cmdb.api.*; CMDB API functions
java.util.*; Java utilities library
8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide
36/236
36 Developer’s Reference Guide
BMC Atrium Core 7.6.03
BMC Atrium CMDB Java API configuration file
The cmdbabi.properties file contains configuration settings for properties, suchas API timeout, minimum RPC Version, and Java Proxy connections. You canmodify these configuration settings to increase the server response time when you
execute your BMC Atrium CMDB Java program. For more information about howto configure these settings, see the BMC Atrium Core 7.6.03 Troubleshooting Guide.
BMC Atrium Core Web Services APIcom