BMC Atrium CMDB 2.1.00 Developer's Reference Guide
BMC Atrium CMDB 2.1.00 Developer's Reference Guide
00
August 2007
www.bmc.com
Telephone
Fax
Fax
If you have comments or suggestions about this documentation, contact Information Development by email at
[email protected].
Copyright 20052007 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, and logos may be registered or pending registration in the U.S. or in other countries. All other
trademarks or registered trademarks are the property of their respective owners.
ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is
registered in the U.S. Patent and Trademark Office.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
UNIX is a registered trademark of The Open Group.
BMC Software considers information included in this documentation to be proprietary and confidential. Your use of this
information is subject to the terms and conditions of the applicable End User License Agreement for the product and the
proprietary and restricted rights notices included in this documentation.
Customer Support
You can obtain technical support by using the Support page on the BMC Software website or by contacting Customer
Support 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 at
http://www.bmc.com/support_home. 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.
Product information
Product name
Product version (release number)
License number and password (trial or permanent)
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
Messages received (and the time and date that you received them)
Contents
Preface
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
The New icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
BMC Atrium CMDB documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Related documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
13
15
16
17
18
18
19
19
20
Chapter 2
21
Getting started
Contents
22
22
23
23
24
24
25
26
27
27
27
28
28
28
29
29
Chapter 3
31
41
79
81
Related files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Data model functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Instance functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Bulk entry transaction functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Environment functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
User interface component functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Import and Export functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Utility functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Free functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Reconciliation Engine functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Federation functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Audit functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Class structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Attribute structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Instance structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
General purpose structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Export and import structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Graph query structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
User interface components structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Reconciliation Engine structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Federation structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Audit structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Chapter 6
191
Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instance data operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data model operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reconciliation Engine operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Federation operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Audit operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User interface component operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utility operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instance structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graph query structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Class Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attribute structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utility structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User interface component structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reconciliation Engine structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Federation structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Audit structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents
192
192
204
215
219
222
224
225
227
227
232
236
242
250
251
253
256
258
Appendix A
261
265
Glossary
275
Index
283
Preface
The BMC Atrium CMDB Developers Reference Guide describes how to use the BMC
Atrium Configuration Management Database (CMDB) C, Java, and web services
APIs, and other BMC Atrium CMDB tools to program your BMC Atrium CMDB
application and integrate it with other applications.
This guide is divided into the following sections:
Audience
This guide is intended for application programmers. For more information about
configuring the application, see the Installation and Configuration Guide.
Preface 9
Document provides
Audience
Hierarchical diagram of all classes in the Common Administrators Print and PDF
Data Model (CDM) including unique attributes and
applicable relationships
Developers Reference
Guide
Information about creating API programs, using C Administrators Print and PDF
and web services API functions and data structures, and
and a list of error messages
programmers
Installation and
Configuration Guide
Programmers
IT leaders and
administrators
Format
HTML
(product DVD
only)
Mapping Your Data to Mappings of common IT objects to the appropriate Administrators Spreadsheet,
print and PDF
class in which to store them, whether part of the
BMC Atrium CMDB
Classes
Common Data Model or an extension. Also includes
information about further categorizing instances
using key attributes.
Master Index
Everyone
Online Help
Users and
administrators
Product Help
(available from
Help links
once installed)
Release Notes
Everyone
10
Related documentation
Title
Document provides
Audience
Format
Troubleshooting Guide
Users Guide
Users
Related documentation
The following table lists some documentation for related BMC products that might
be of interest to BMC Atrium CMDB users. This documentation is available from
the Support site at http://www.bmc.com/support_home.
Title
Document provides
Audience
Format
BMC Atrium
Integration Engine
7.1.00 Users Guide
BMC Configuration
Management
Configuration
Discovery Integration
for CMDB 7.1
Implementation Guide
BMC Foundation
Discovery and BMC
Topology Discovery
Installation and
Configuration Guide
BMC Foundation
Discovery and BMC
Topology Discovery
User Guide
Developers
Preface 11
Title
Document provides
Audience
Format
12
Information about installing and configuring DSL, Administrators Print and PDF
updating vendor data, and connecting DSL to BMC
Configuration Management and AR System
databases
Section
Section I
13
14
Chapter
15
Web
Client
Topology
Discovery
CI Relationship Viewer
BMC
Remedy
User
AXIS
Client
Web
Client
CMDB Java
API
Reconciliation
Engine
CMDB C
API
AR System
API
NOTE
The arrows indicate the directions in which each program or process can initiate
an API function. Data can flow in any direction.
As shown in Figure 1-1, a BMC Atrium CMDB components, such as the CI
Relationship Viewer and CMDB Console use the Java API to manipulate the CDM,
whereas the external data consumers and data providers can communicate either
using the web services API or Java API.
16
This guide describes the C and web services APIs. For more information about the
Java API, see the Javadoc API Help, which is located in the sdk/javadoc/cmdbapi/
subdirectory of your BMC Atrium CMDB installation directory. To access the
Javadoc API Help, open the index.html file.
C API
A BMC Atrium CMDB client can use the C API to create, modify, delete, and query
the class definitions, instance data, federation, reconciliation, and other functions.
The C API:
Contains data structures that store both simple and complex information. A
simple data structure serves as the primary building block for a complex data
structure.
Includes a set of Free functions that you can use to deallocate memory.
Provides server-access information with every call in the control parameter of
the function.
Features
You can use the C API functions to perform the following operations:
Components
The C API consists of a set of functions and data structures, most of which perform
a specific database or data source operation. For example, you can use a function
to retrieve information about a particular BMC Atrium CMDB class.
Most of these C API functions accept one or more BMC Atrium CMDB C data
structures as parameters that qualify the action to perform, such as type of class to
create, qualification for an instance to retrieve or delete, or class name to modify.
For more information about the C API functions and data structures, see Chapter
5, C API functions and data structures.
The sdk/samples/driver subdirectory in your BMC Atrium CMDB installation
directory contains the source code for the cmdbdriver program. This program
provides a command-line interface for calling C API functions. The cmdbdriver
program also includes print routines for every data structure in the API, making it
a useful debugging tool.
For more information about the print routines, see Debugging BMC Atrium
CMDB API programs using print.c routines on page 78.
17
Features
External web-based programs can communicate with BMC Atrium CMDB using
the web services operations. The BMC Atrium CMDB web services operations are
developed to assist the following communities:
Components
The BMC Atrium CMDB web services API consists of operations and data
structures. Although the web services operations correspond to the BMC Atrium
CMDB C API functions, they do not correspond one-to-one with the C API. The
web services API data structures correspond to the classes in the Java API.
For more information about the web services operations that are currently
available, see Chapter 6, Web services API operations and data structures.
Java API
The BMC Atrium CMDB Java API is a collection of Java classes and methods that
provide the C API functionality in a Java development environment. Use the Java
API if you write server-side web applications that you access through the Java
Server page (JSP) or Java servlets web tier layer.
The Java API provides an object model of BMC Atrium CMDB. You will find it
easier to use the Java API if you are already familiar with the C API.
For more information about the Java API, see the Javadoc API Help, which is
located in the sdk/javadoc/cmdbapi/ subdirectory of your CMDB installation
directory. To access the Javadoc API Help, open the index.html file.
18
Features
The following list describes the Java API features:
The Java virtual machine (JVM) automatically deallocates objects that are
created with the Java API.
Yes
Yes
19
Requirement
Yes
Yes
Yes
Yes
Yes
20
API term
search
getList
create
create
modify
set
view/display
get
Chapter
Getting started
This section provides the information you need to know before you start using the
BMC Atrium CMDB API suite.
The following topics are provided:
21
API compatibility
The following list explains the backward and forward compatibility of BMC
Atrium CMDB 2.1.00:
If you developed 2.0.x clients that use version 2.0.x DLLs and libraries, they can
continue to work with the 2.1 server.
If you use version 2.1.00 DLLs and libraries for your clients, you need to make
appropriate changes to your code and recompile it.
Table 2-1 provides a compatibility matrix for the AR System server and BMC
Atrium CMDB.
Table 2-1: BMC Atrium CMDB compatibility matrix
AR System
server
BMC Atrium
CMDB server
BMC Atrium
CMDB client
Supported
7.1.00
2.1.00
2.1.00
Yes
7.1.00
2.1.00
2.0.x
Yes
7.1.00
2.0.x
2.1.00
No
7.1.00
2.0.1 patch x
2.0.1 patch x
Yes
7.1.00
2.0.1 patch x
2.0.1 patch x
Yes
7.1.00
7.0.x or earlier
2.1.00
22
Any
No
Remarks
to com.bmc.cmdb.api.
API version
23
Header files
Table 2-3 displays the list of C API header files installed in the include directory:
Table 2-3: C API Header files
24
File Name
Contents
ar.h
AR System API data type and structure definitions, size limits, and
constant definitions.
cmdb.h
BMC Atrium CMDB C API data type and structure definitions, size
limits, and constant definitions.
arerrno.h
arextern.h
arfree.h
cmdbfree.h
arstruct.h
Library files
You must have arcatalog_eng.dll in your path at runtime and make sure the lib
directory contains the BMC Atrium CMDB C API library files listed in Table 2-4.
NOTE
The SDK contains files that are not listed here. Those files are required for Java API
or for working with the cmdbdriver program, but are not required to create a C API
program.
Table 2-4: C API library files
Platform
Files
Windows
arapi71.dll
arcatalog_eng.dll
arjni71.dll
arrpc71.dll
arutiljni71.dll
arutl71.dll
cmdbapi21.dll
cmdbjni21.dll
icudt32.dll
icudtbmc32.dll
icuinbmc32.dll
icuucbmc32.dll
mfc71.dll
msvcp71.dll
msvcr71.dll
rcmn71.dll
Solaris
libarjni71.so
libarutiljni71.so
libcmdbapi21.so
libcmdbjni21.so
libicudatabmc.so.32
libicui18nbmc.so.32
libicuucbmc.so.32
libjlicapi71.so
AIX
libarjni71.a
libarutiljni71.a
libcmdbjni21.a
libcmdbapi21.a
libicudatabmc32.a
libicui18nbmc32.a
libicuucbmc32.a
libjlicapi71.a
25
Platform
Files
HP-UX
libicudatabmc.sl.32
libicui18nbmc.sl.32
libicuucbmc.sl.32
libarjni71.sl
libarutiljni71.sl
libcmdbapi21.sl
libcmdbjni21.sl
libjlicapi71.sl
Linux
libicudatabmc.so.32
libicui18nbmc.so.32
libicuucbmc.so.32
libarjni71.so
libarutiljni71.so
libcmdbapi21.so
libcmdbjni21.so
libjlicapi71.so
For Solaris and Linux: To load dynamic libraries, you need to include the
-ldl link flag in the link command. For more information about linking and
compiling your code, see the driver sample makefile in the sdk\samples\driver
subdirectory of the BMC Atrium CMDB installation directory.
Compiler information
Before you write C API programs, make sure that the following software programs
are installed or configured on your system:
bytes
(default)
DLL, not DebugMultithreaded DLL. Where
/nodefaultlib:"MSVCRTD" to
IMPORTANT
If you develop C++ clients that run on HP machines using the BMC Atrium CMDB
C API, you need to compile your code with the __HPACC_THREAD_SAFE_RB_TREE flag
enabled. This is because the libraries that the tree header file uses, which includes
tree.cc, are not thread safe. For more information, see the following link:
http://h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/
1,1701,7866,00.html.
26
Link information
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
cmdbapi21.dll
arapi71.dll
Solaris, Linux
libcmdbapi21.so
libarapi71.so
HP-UX
libcmdbapi21.sl
libarapi71.sl
AIX
libcmdbapi21.a
libarapi71.a
NOTE
In version 2.1, the BMC Atrium CMDB Java API has changed as a result of
modifications in the AR System Java API. For a list of affected CMDB Java classes,
see the Javadoc API Help, which is located in the sdk/javadoc/cmdbapi/
subdirectory of your CMDB installation directory. To access the Javadoc API Help,
open the index.html file.
Requirements
To build and run a Java API program on either Windows or UNIX, you need the
following environment components:
All C API libraries and DLLs, as listed in the C API package contents on
page 24.
27
Library files
When you install BMC Atrium CMDB, a list of Java API library files are installed
with the application. For more information about these library files, see the section
Installation and deployment of the JavaAPI_Overview.html page of the Javadoc
API Help.
Header files
Table 2-6 lists the header files that are installed with the Java API.
Table 2-6: Header files for the CMDB programs
Header file name
Description
com.bmc.arsys.api.*;
com.bmc.cmdb.api.*;
java.util.*;
Build time
Build date
28
Identify function input parameters and load them with appropriate values.
Examine the content and structure of function output parameters.
Experiment with different parameter values.
29
30
Chapter
31
Creating a CI class
The following example creates two classes, PhoneSystem and Socket. Both classes
are created in the ACME namespace. All class definitions that extend the CDM use a
namespace other than BMC.CORE.
Example: Creating classes
//Create variables to hold the class name data
String acmeNamespace = "ACME";
String phoneSystemClassName = "phoneSystem";
String socketClassName = "Socket";
//Create the class name key for the Phone System class.
CMDBClassNameKey phoneSystemClassNameKey = new
CMDBClassNameKey(phoneSystemClassName, acmeNamespace);
String phoneSystemClassID = "ABCD-1234";
32
33
34
35
Creating a CI instance
After you create a class in the BMC Atrium CMDB, you can create an instance of
this class. When you create an instance, you must specify all the required attributes
for the class. The following code illustrates how to create an instance of the
phoneSystemClass.
Example: Creating a CI instance
//Create variables to hold the serial number and cost details for the
instance
String serialNum = "SN-1492-22919";
Value cost = new Value("12.95",Constants.AR_DATA_TYPE_CURRENCY);
CMDBAttributeValue serialNumAttrValue = new
CMDBAttributeValue(serialNumAttrName, serialNum);
CMDBAttributeValue costAttrValue = new
CMDBAttributeValue(costAttrName, cost);
//Create a HashMap to hold the attribute values
Map attributeHashMap = new HashMap();
attributeHashMap.put(serialNumAttrName, serialNumAttrValue);
attributeHashMap.put(costAttrName, costAttrValue);
// create an instance of a phoneSystemClass
CMDBInstance phoneInstance = new CMDBInstance(phoneSystemClassNameKey,
attributeHashMap);
//create a variable to hold the dataset ID
String acmeDatasetId = "ACME.DATASET";
try {
//Create the new instance within the BMC Atrium CMDB
phoneInstance.create(currentUser, datasetId);
}
catch (ARException ex) {
System.out.println(ex.toString());
}
//Get the instance ID of the new instance
String phoneSystemInstId = phoneInstance.getId();
In the example, the serialNum and cost variables are created to hold the serial
number and cost information for the instance. The serialNumAttrValue and
costAttrValue class variables are created of type CMDBAttributeValue.
After the attribute name and other attribute information is created as explained in
the previous section, the serialNumAttrName and serialNum variables are assigned
to the serialNumAttrValue variable, which is of type CMDBAttributeValue. The
costAttrValue class variable holds the costAttrName and cost details for the
instance.
Using a hash map, the serial number and cost details are added to the
phoneInstance instance, which is of type CMDBInstance. To create the new instance
in Java, the phoneSystemClassNameKey, which was shown in Creating a CI class
on page 32, and attributeHashMap variables are passed as parameters to the
instance.
36
Before creating the phoneInstance instance in the BMC Atrium CMDB, a dataset
variable is created to specify the dataset to which the instance belongs. In the
example, the acmeDatasetId variable is created that holds the dataset details.
Because an instance must reside in a dataset, you must specify a dataset ID for the
instance.
In the try loop, the phoneInstance instance is created in the BMC Atrium CMDB.
The currentUser and datasetId parameters are passed to the create method of the
instance.
After the instance is created in the BMC Atrium CMDB, the instance ID of the new
instance is retrieved using the getId method.
For more information about the parameters for the create method of the
CMDBInstance Java class, open index.html of the Java API Help, which is located in
the sdk/javadoc/cmdbapi/ subdirectory of your CMDB installation directory.
37
phoneSystemToSocketRelClass Java
which of type CMDBRelationship.
38
In the example, the phoneInstId and socketInstId variables are created to hold the
instance IDs of the newPhoneSystem and newSocket instances. The srcInstId and
destInstId variables are created to hold the IDs of the source and destination
classes, which are phoneInstId and socketInstId respectively.
The datasetId variable holds the dataset ID of the ACME dataset. These source,
destination, and dataset ID variables are written to the attrHashMap array. The Java
instance of the relationship class is then created using the constructor of the
CMDBInstance class.
In the try loop, the relationship instance is created in the BMC Atrium CMDB. The
getARServerUser method of the relInstance instance retrieves the user ID that is
currently used to log in to the AR System server. The user ID parameter is required
to create the instance in the BMC Atrium CMDB.
39
For more information about the parameters for the create method of the
CMDBInstance Java class, open index.html of the Java API Help, which is located in
the sdk/javadoc/cmdbapi/ subdirectory of your CMDB installation directory.
In the example, the attributes to retrieve in the query are specified in the
attributesToGet array of type String. The query in this example retrieves the
InstanceID, ReconciliationIdentity, and DatasetID attributes from all instances.
If no attributes are specified to return in the query, all attributes of the instances
will be returned by default.
The query variable specifies a qualification that will retrieve all instances where the
dataset ID is ACME.DATASET. In the try loop, the findObjects method of the
CMDBInstance Java class is used to retrieve instances. The retrieved instances are
placed in the instanceList array, which is of type CMDBInstance.
For more information about the parameters for the findObjects method of the
CMDBInstance Java class, open index.html of the Java API Help, which is located in
the sdk/javadoc/cmdbapi/ subdirectory of your CMDB installation directory.
40
Chapter
This section describes how to use the various BMC Atrium CMDB tools.
The following topics are provided:
Chapter 4
41
Windows
Navigate to C:\Program
Atrium CMDB\sdk\bin.
Double-click cmdbdriver.exe.
UNIX
Navigate to /usr/arsystem/<server_name>/cmdb/sdk/bin.
Type the command cmdbdriver.
42
You are prompted to specify several parameters one at a time. You must enter the
following parameters:
values.
For example, for importing class definitions, type impdf at the prompt. Use the help
command (h or ?) to display the cmdbdriver commands. When you are finished
using the cmdbdriver, type e or q to exit the program.
Chapter 4
43
Using a script
You can also use a script file that contains the cmdbdriver commands and execute
it at the cmdbdriver prompt. You can create this script file using any text editor,
such as Notepad or Wordpad.
Example 1: cmdbdriver script fileImport definitions command
impdf
2
1
BMC.CORE
BMC_ComputerSystem
1
BMC.CORE
BMC_SystemComponent
1
C:\ImportClasses
This example uses a script to retrieve the destination CI for the BMC_System
source class. BMC_Component is the relationship between these CIs and both
these classes exist within the BMC.CORE namespace. To accept a default value for
a parameter in the cmdbdriver script, insert a blank line. The blank line in this
example accepts the default value for the Number of characteristics parameter.
The default for this parameter is set to 0 (none).
You can use the rec and srec commands of the cmdbdriver program to record
cmdbdriver commands. The rec command starts recording the commands you use
at the prompt and srec stops recording these commands.
When you type the rec command, you are prompted for the name of the file in
which to store these commands. After you record the commands in a file, you can
execute it at the cmdbdriver program using the execute command.
44
Variable name
LD_LIBRARY_PATH
HPUX
SHLIB_PATH
AIX
LIBPATH
NOTE
The procedure explained in this section covers the steps for migrating only BMC
Atrium CMDB definitions and data. If you have other BMC Software applications
installed on your development server that access the BMC Atrium CMDB, such as
BMC Remedy Asset Management, you need to migrate that data separately.
Migrating your BMC Atrium CMDB from a development server to a production
server requires the following high-level steps:
Step 1 Export class data with cmdbdriver (see page 47).
Step 2 Export instance data with cmdbdriver (see page 48).
Step 3 Import class data with cmdbdriver (see page 49).
Step 4 Import instance data with cmdbdriver (see page 50).
Chapter 4
45
Step 5 Export reconciliation information with BMC Remedy User (see page 50).
Step 6 Import reconciliation information with BMC Remedy Import (see page 52).
For information about known issues regarding the procedure explained in this
section, see Known issues on page 52.
You can use cmdbdriver scripts to perform some of these steps.
Windows
Navigate to C:\Program
Atrium CMDB\sdk\bin.
Double-click cmdbdriver.exe.
UNIX
Navigate to /usr/arsystem/<server_name>/cmdb/sdk/bin.
Type the command cmdbdriver.
2 Type the command init to initialize the driver.
3 Type the command log to log into your development server.
You are prompted to specify several parameters one at a time. You must enter the
following parameters:
values.
For example, for importing class definitions, type impdf at the prompt. Use the help
command (h or ?) to display the cmdbdriver commands. When you are finished
using the cmdbdriver, type e or q to exit the program.
46
For more information about logging in to the cmdbdriver program, see Logging in
to the cmdbdriver program on page 46.
3 Type the xexpdf command.
4 At the Export all class? (F): prompt, type T to export all class definitions from
c:\ExportedClassDefinitions\CoreClassDefinitions.xml. If
Chapter 4
47
For more information about starting the cmdbdriver program, see Logging in to
the cmdbdriver program on page 46.
3 Type the xexpdt command to export instance data from the BMC Atrium CMDB.
4 At the Export instance data from all classes? (F): prompt, type T to export all
instance data.
If you press Enter to accept the default value of F, you need to specify the
namespace, class, and attribute details for which you want to export the class
definitions.
5 At the Dataset ID (): prompt, type the dataset ID from which you want to export
48
For more information about logging in to the cmdbdriver program, see Logging in
to the cmdbdriver program on page 46.
3 Type the impdf command to import class definitions into the BMC Atrium CMDB.
4 Specify the directory path where the import data is located, such as
c:\ExportedClassDefinitions.
accept the default of 0 and skip to step 8. To import definitions for a specific class,
type 1 for the Number of Import Items.
NOTE
When you enter a number other than 0, you cannot automatically import the
subclasses of a specified class. Each subclass must be specified as a separate import
item, either by increasing the number you specify here or by running the impdf
command multiple times.
6 To import a class from the source folder, accept the default value of 1.
To import attributes for the class, run the impdf command again and type 2 at this
prompt.
7 At the Class Name prompt, type the namespace and class name for the class, for
1 (Create)Create the specified class in the BMC Atrium CMDB. If this class
already exists, the program generates an error.
2 (Overwrite)Overwrite
Chapter 4
49
For more information about logging in to the cmdbdriver program, see Logging in
to the cmdbdriver program on page 46.
3 Type the impdt command to import instance data into the BMC Atrium CMDB.
4 Type any of the following import options to specify the action to take when an
1 (Error on dup)If
2 (Generate new ID on dup) If the instance already exists with the same
Instance ID, generate a new Instance ID and import the instance.
3 (Merge on dup) If the instance already exists with the same Instance ID,
merge the new instance and the existing instance.
5 Type the directory path where the import data is located, for example,
c:\ExportedInstanceData.
NOTE
When exporting definitions, make sure you save them in an AR Export (.arx)
format. If you use comma-separated values (.csv), or XML (.xml) formats, the
resulting files will not import correctly using the arimportcmd command. For more
information about AR Export files, see the BMC Remedy Action Request System
7.1.00: Form and Application Objects guide.
50
Any definitions used by those you select are also exported. For example, if you
select a job, the export will include that job plus all the activities in it, plus all the
rulesets in those activities, and so on.
You can export reconciliation definitions either using BMC Remedy User or a
browser. When exporting definitions from a browser, several file dialogs might
appear, depending on the definitions you export. Each dialog box requires you to
enter an export filename for a particular definition.
NOTE
Due to the browser limitation, BMC recommends that you use BMC Remedy User
for exporting reconciliation definitions.
EverythingAll definitions.
JobSelected jobs and the definitions used by them.
GroupSelected Identification groups, Qualification groups, Precedence
groups, and Workflow Execution groups and the definitions used by them.
DatasetAll datasets.
DatasetMergePrecedenceSetSelected Dataset Merge Precedence sets and the
definitions used by them.
4 If you selected either Job, Group, or DatasetMergePrecedenceSet, select the
definitions to be exported.
If your Export Type is Group, you have the option of also exporting the activities
that reference your selected definitions. To do this, click the Options tab and select
Include Associations.
5 Type the fully qualified File Name to which the definitions should be exported.
You can use any of the approved extensions for the file name. For more
information about the extensions for the export definitions file,
see Step 5Export reconciliation definitions on page 50.
If you include no path or a relative path, the file is placed in or under the BMC
Remedy User application folder.
6 Click Export.
TIP
If you encounter errors when exporting reconciliation definitions, see the BMC
Atrium CMDB 2.1.00 Troubleshooting Guide to correct them.
Chapter 4
51
NOTE
Before using the CLI on UNIX for the first time, you must add an entry to your
library path. The CLI also has several other options not described in the following
procedure, some of which might be necessary depending on your AR System
server environment. For more information about these topics, see the BMC Remedy
Action Request System 7.1.00: Integrating with Plug-ins and Third-Party Products
guide.
For <import_file>, specify the full path to the file containing the exported
definitions from the procedure To export reconciliation definitions on page 51.
Specifying a log file is optional, but recommended in case there are any errors with
the import.
The -e 179 option enables you to verify whether a definition you are importing
already exists. This check is performed based on the globally unique identifier
(GUID) values. Specifying the -D4 option updates an entry if a match is found. If
no match is found, a new entry is created. For more information about the various
options for the arimportcmd command, click the Help menu in BMC Remedy
Administrator and search for the command.
Known issues
These issues can occur when performing the migration procedures in this section.
When exporting or importing instances for a categorization class, data from its
superclass is also exported or imported. This is because a categorization class
stores its instance data on the same AR System form as its superclass.
When you attempt to export instance data from an abstract class, cmdbdriver
crashes. There is no reason to do this, since abstract classes cannot have any
instances.
When importing the weak member in a weak relationship, you will receive an
error if that instance already exists. You must delete the existing weak member
before you can import it.
52
At the top level is the directory where you copy the extension loader files, for
example, CMDBExtensionLoader. Under the CMDBExtensionLoader directory is the
common folder, and two cmdbExtLoader executables, one each for UNIX (no
extension) and Windows (.exe).
NOTE
You must name the directory that contains the extension subdirectories as
extensions. If you specify any other name for this directory, the extension loader
will not recognize it.
After you copy the extension loader files into the extension loader directory you
created, you create an extensions directory, as displayed in Figure 4-2. The
extensions directory can contain one or more extension subdirectories.
Each extension subdirectory can contain a package.xml file, an installation activity
file, and one or more class XML files. These class files are obtained when you use
the expdf command of the cmdbdriver program to export the class or attribute
definitions.
Chapter 4
53
where:
<install-order> is a three-digit number ranging from 000 to 999. The <installorder> instructs the extension loader to install the objects in the extensions
directory in ascending order. Therefore, you must specify a lower <installorder> for the object that you want to install first.
For example, if you have two extension subdirectories, 650-EXClass and 655EXClass, the 650-EXClass subdirectory will be installed first.
is an alphanumeric name for the extension. Make sure you do not use
spaces, quotation marks, or wildcard characters in the <name> element.
<name>
See The extension loader directory structure on page 53. This directory will
contain all the extension loader files.
2 Export the class definitions using the cmdbdriver expdf command.
For more information about exporting class definitions with the cmdbdriver
program, see Step 1Exporting class data with cmdbdriver on page 47.
The expdf command creates several XML files that contain the class definition
information for the specified class.
54
This package.xml example instructs the extension loader program to install the
ComSys Hardware Component class extension version 1.0 on the BMC Atrium CMDB
application version 2.1.00. The first line of code is an xml version tag that is
required for all XML files.
NOTE
When you specify a GUID for the BMC Atrium CMDB dependency in your
package.xml file, make sure you use the same GUID as shown in the example. This
is the GUID stored in the SHARE:Application_Properties AR System form for the
BMC Atrium CMDB.
Chapter 4
55
If you are creating a new extension, generate a GUID using the cg command of
the cmdbdriver program. For more information about using the cmdbdriver
program, see Logging in to the cmdbdriver program on page 46.
<name>The
<guid>The
GUID for the extension. For new extensions, specify the GUID
that you created in step 1. For existing extensions, specify the currently
existing GUID.
element, which indicates the exact version number required for the
application, or you can specify values for the <minversion> and <maxversion>
elements, which indicate the range of permissible version numbers for the
application.
3 Save the package.xml file under the extension subdirectory you created in
56
<name> is an alphanumeric name for the extension. Do not use spaces, quotation
marks, or wildcard characters in the <name> element.
XMLThe file extension for the RIK file must be of type XML.
Other typesThe file extension for all other activities (IMP, ARD, and OSD)
can be of any type such as txt.
An example of an activity file name is 500-CLASS-OSD.txt.
Every installation activity file you create must contain the oout and cout
commands. The oout command instructs the extension loader to log the script
actions. You must specify the OSDriver.out output filename with the oout
command, as illustrated in the example, to save the script actions.
After the script stops executing the activity file, the extension loader reads these
log comments to verify whether the script execution was successful. The cout
command closes the log entry file.
Chapter 4
57
When the extension loader executes the activity file shown in this example, the
class definitions for the Test class will be imported. You can specify multiple
cmdbdriver commands in your activity file, for example, your script file can contain
both export and import commands.
You must create the activity file in UNIX format for running it on the UNIX
platform.
IMPORTANT
If you create the activity file in Windows format, make sure you use the DostoUnix
command to convert the file from Windows format to UNIX before you run it.
2 Type oout and OSDriver.out output file name in the beginning of the file as shown
IMPORTANT
You must name the output file for the oout command as OSDriver.out. If you
specify any other file name, the extension loader program generates an error.
3 Specify the type of activity the extension loader must perform, such as ARD or OSD.
4 Specify the number of class definitions or instance data objects you want to export
or import.
5 Specify the class name and namespace for the OSD activity.
58
You can use the cmdbdriver program for the import and export function
parameters. For more information about the cmdbdriver program, see Working
with the cmdbdriver program on page 42.
7 Save the activity file under the extension subdirectory you created in step 1 with
an xml, txt, or any other type of extension, depending on the activity type.
For more information about the activity file extensions, see Step 3Create an
installation activity file on page 57.
The Extensions subdirectories will now contain a package.xml file, an installation
activity file, and the XML files, which were created when you exported your
classes using the cmdbdriver program.
extension loader:
On Windows
Double-click cmdbExtLoader.exe from the directory in which you copied the
extension loader program.
On UNIX
Using the command prompt, navigate to the directory in which you copied
the extension loader program.
NOTE
To install the extension loader on a UNIX machine, follow the prompts. For
information about the parameters you need to provide, see step 4 on page 60.
The Welcome screen of the extension loader installation wizard appears.
2 Click Next.
Chapter 4
59
AR Server NameType the AR System server on which you want to install the
extensions.
Port NumberIf you specified a port number when installing the AR System
server, type that number in this field. If the server uses a portmapper to
automatically select a port to use, leave this field blank.
RPC Port NumberIf you specified an RPC port number when installing the
AR System server, type that number in this field.
5 Click Next.
60
NOTE
%temp% is an environment variable that is already set when you install the operating
system. To access this folder, open Windows Explorer and type %temp% in the
Address list.
Chapter 4
61
7 Click Next.
To view the installation log files, open Windows Explorer and type %temp% in the
Address list. The log file is named as cmdbext_install.log.
Remedy User.
For more information about how to log on to the BMC Remedy User, see the Users
Guide.
2 Press CTRL+O on your keyboard to display the Object List window.
3 In the Search what keywords? field, type share.
62
A list of entries for various applications that are installed on the server is displayed
in the result section of the SHARE:Application_Properties form.
6 Click the entry that pertains to the application for which you installed the
extensions.
7 Verify the details of the extension such as Name and Version.
AR System applications
Launch the CI Relationship Viewer form from AR System applications. This
is a quick and easy way to integrate the CI Relationship Viewer with your
AR System application. In this method, you can launch the CI Relationship
Viewer form, which is installed within the CMDB, using AR System
workflow (see page 64).
TIP
To view version details for the CI Relationship Viewer, type java jar
civiewer.jar at the command line prompt. For information about version details,
see the Troubleshooting Guide.
Chapter 4
63
64
Parameter name
Description
Namespace
Class Name
CI ID
Dataset ID
Filter Name
NOTE
Launching the CI Relationship Viewer from AR Systems does not support the
Current option for the Target Location list.
Chapter 4
65
Properties tab.
3 On the Advanced tab, set the following Data Visualization field properties:
NOTE
The CI Viewer value in the Module type list does not appear if you have not
installed the BMC Atrium CMDB application on your system.
From the Definition Name list, select the data visualization definition you
created for the CI Viewer.
Select Default if you did not create any customized definitions. For more
information about creating definitions, see Creating a definition for the CI
Relationship Viewer on page 73.
4 On the Database tab, specify a name for the Data Visualization field in the Name
text box.
5 Create an active link that will be executed when the Data Visualization field is
initialized and specify the following details for the active link:
66
From the Name list, select the name of the Data Visualization field you
created.
In the Value field, set the required parameters for launching the CI
Relationship Viewer, for example:
(((((((( "namespace=" + $Namespace$) + ",classname=") + $Class
Name$) + ",datasetid=") + $Dataset ID$) + ",instanceid=") + $CI
ID$) + ",filtername=") + Components and Dependencies
In the example, the field names, such as $Namespace$ and $Class Name$ are based
on the field names of a form. You need to provide these field names as you have
specified in your form. You might also specify string values as shown in the
example.
IMPORTANT
The namespace, classname, datasetid, instanceid, and filtername parameters are
CI Relationship Viewer-defined keywords.
6 Click Add Action to save the settings for the action.
7 Click Save to save the active link.
Parameter name
Description
F49000110f0
Namespace
F400109900
Class Name
F431400000
CI ID
Chapter 4
67
Field ID
Parameter name
Description
F431400001
Dataset ID
F431400003
Filter Name
Make sure that you specify appropriate values for placeholders, such as <mid
tier>, <arserver>, <namespace>, <classname>, <ciid>, <datasetid>, and
<filtername>.
2 Press Enter.
68
Chapter 4
69
Where:
idUniquely
the text.
textThe text string for the menu that will be displayed in the CI Relationship
actionSpecifies the action that will be performed when the user selects the
menu item. The action attribute can contain JavaScript code or one of the
predefined event types, for example, CIRV_NOTIFY_AR.
If the action attribute for any menu item is set to CIRV_NOTIFY_AR, then the ID of
the menu item is passed to the container AR System form in the event type
parameter. For more information about the CI Relationship Viewer events, see
Appendix B, Using graph queries to find related CIs.
70
enabledUsed
You can create submenus up to any number of levels. The example that follows,
shows a submenu definition.
Example: Submenu definition
<submenu id="SUBMENU_ID1" textid=48071 text="sub menu1">
<menuitem id="MNU_ID1" textid=48173 text="item1" action="action1"/>
<menuitem id="MNU_ID2" textid=48174 text="item2" action="action2"/>
</submenu>
You can create separators between the menu items to apply a context for them. A
separator does not have the text and action attributes. The following example
shows a menu separator:
Example: Menu separator
<menuitem id="MNU_SEPARATOR"/>
The CI Relationship Viewer predefines a set of standard menu items for the
applications that use the viewer. Table 4-4 lists the menu or submenu items of the
CI Relationship Viewer along with their functions.
NOTE
The menu items listed in Table 4-4 are displayed in the context menu by default.
To hide any of submenus in the context menu pop-up, modify the config.xml file
or create a custom configuration file.
Table 4-4: Menu items and their functions
Action value
Function
MNU_VIEW
View
MNU_SET_AS_ROOT
SUBMENU_LAUNCH
MNU_SEPARATOR
Separator
MNU_GRP_SHOWCI
MNU_GRP_SHOWALL
MNU_GRP_HIDEALL
Hides all the items for the group Hide all Items
SUBMENU_GRPITEMS
Group Items
SUBMENU_LAYOUT
Layout
MNU_LAYOUT_TREE
Tree Layout
Tree
MNU_LAYOUT_RADIAL
Radial Layout
Radial
MNU_REFRESH
Refresh
A line
Chapter 4
71
is a special menu type that is used for adding menu items for
launching federated data in context. If a SUBMENU_LAUNCH menu item is included in
the configuration file, menu items for all applicable federated interfaces are
automatically displayed.
SUBMENU_LAUNCH
The default option for the Launch in Context submenu in the CI Relationship
Viewer is CI Viewer, which launches the CI Relationship Viewer in a browser. The
SUBMENU_LAUNCH submenu will appear disabled in the CI Relationship Viewer if
there are no CIs that are selected on the CI Relationship Viewer map.
NOTE
Do not add any menu items for the SUBMENU_LAUNCH menu option in the
configuration file. Based on the federation definitions, the menu items will be
dynamically added to SUBMENU_LAUNCH at run time.
The configuration, style, and context menu information must be placed within the
<config>, <style>, <contextmenu> element tags respectively. Table 4-5 explains the
various style attributes for the CI Relationship Viewer context menu.
Table 4-5: Context menu style attributes.
Style attribute name
Description
fontSize
nodeSize
fill
width
text
The color scheme for the different relationship types should be placed inside the
<link> tag. If the color for a specific relationship type is not defined, the default
values for the color and width tags will be used, as defined in the parent XML
element.
Example: config.xml file
<config>
<style fontSize="10" nodeSize="35.f">
<link fill="#000000" width="1">
<BMC_Component textid="48060" text="Component" fill="#6C8A28"/>
<BMC_Dependency textid="48061" text="Dependency" fill="#9E0000"/>
<BMC_ElementLocation textid="48062" text="Element Location"
fill="#0069A5"/>
<BMC_MemberOfCollection textid="48063" text="Member of
Collection" fill="#1B2837"/>
</link>
</style>
<contextmenu>
<menuitem id="MNU_VIEW" textid="48070" text="View" enabled="false"/>
<menuitem id="MNU_SET_AS_ROOT" textid="48071" text="Set as Root"
enabled="false"/>
<submenu id="SUBMENU_LAUNCH" textid="48072" text="Launch in Context"
72
enabled="false"/>
<menuitem id="MNU_SEPARATOR"/>
<menuitem id="MNU_GRP_SHOWCI" textid="48078" text="Select Items to
Show" enabled="false" action="CIRV_NOTIFY_CIRV"/>
<menuitem id="MNU_GRP_SHOWALL" textid="48079" text="Show all Items"
enabled="false" action="CIRV_NOTIFY_CIRV"/>
<menuitem id="MNU_GRP_HIDEALL" textid="48080" text="Hide all Items"
enabled="false" action="CIRV_NOTIFY_CIRV"/>
<submenu id="SUBMENU_GRPITEMS" textid="48081" text="Group Items"
enabled="false"/>
<menuitem id="MNU_SEPARATOR"/>
<submenu id="SUBMENU_LAYOUT" textid="48073" text="Layout">
<menuitem id="MNU_LAYOUT_TREE" textid="48074" text="Tree"/>
<menuitem id="MNU_LAYOUT_RADIAL" textid="48075" text="Radial"/>
</submenu>
<menuitem id="MNU_REFRESH" textid="48077" text="Refresh"/>
</contextmenu></config>
When you create a configuration file with the code explained in the config.xml
example, the context menu shown in Figure 4-8 on page 73 is displayed in the CI
Relationship Viewer.
Figure 4-8: CI Relationship Viewer context Menu
Chapter 4
73
mode.
2 Click Search on the form toolbar.
All existing Data Visualization Definition entries are listed in the results pane, as
displayed in Figure 4-9 on page 74.
Figure 4-9: Data Visualization Definition form
3 In the results pane, select the entry with a Definition Name of Default.
The field values are copied to a Data Visualization Definition window in New
mode. You can now modify the fields before saving the new definition.
74
NOTE
The Module Name for the definition must always be CI Viewer to integrate with
the CI Relationship Viewer.
IMPORTANT
After you modify a configuration XML file and attach it to the Data Visualization
Definition, you must restart the BMC Remedy Mid Tier to view the changes in the
CI Relationship Viewer context menu.
6 Click Save.
TypeThe type of alert. You can specify any value in this field. However, the
best practice is to provide the name of the integrating application that adds an
entry in the CMDB:StatusAlerts form for tracking purposes.
PriorityThe priority for the alert. You can choose from Low, Medium, or High.
Short DescriptionThe description of the alert. You specify the problem or
status description in this field.
Optionally, you can provide an additional description for the alert in the
Description field. Date/Time is an auto-generated field. The fields that appear on
the CMDB Console include Short Description, Priority, Type, and Date/Time.
Chapter 4
75
Third-party
data source
Data
object
AR System
database
BMC Atrium
Integration
Engine
CMDB
class
When you transfer data into the BMC Atrium CMDB, a database table and its
columns from the third-party data source are mapped to a BMC Atrium CMDB
class and its attributes respectively.
In general, this relationship is many-to-many because you can map different
columns from different data sources to different attributes in the same BMC
Atrium CMDB class.
For more information about EIE data transfer between a third-party data source
and the BMC Atrium CMDB, see the BMC Atrium Integration Engine 7.1.00
Administrators Guide.
76
If the name contains a database reserved word, the string _x is appended to the
name.
View names are limited to 30 characters. When a form name exceeds the 30
character limit, the corresponding view name is truncated to 27 or 28 characters.
A schema ID is appended to the view name to differentiate between any other
view that was truncated to the same string. Because schema IDs vary from one
system to another, these view names cannot be formulated in advance. For
example, the view of the BMC.CORE.CONFIG:BMC_ConfigBaseRelationship form
might be named BMC_CORE_CONFIG_BMC_ConfigB131 or
BMC_CORE_CONFIG_BMC_Config2131e
Abstract classes do not store any data. Therefore, abstract classes do not have
corresponding views.
For more information about SQL views and table naming conventions, see the
BMC Remedy Action Request System 7.1.00: Database Reference guide.
Chapter 4
77
NOTE
See the function definitions in print.c to determine the specific parameters and
their types for these routines.
The print.h file contains a complete list of these routines.
78
Section
II
API reference
This section provides reference information for the C and web services APIs. The
Java API documentation is available in the Javadoc HTML files.
This section is organized into the following chapters:
Section II
API reference
79
80
Chapter
Chapter 5
81
Related files
The cmdb.h and cmdbfree.h files contain the C API function definitions. For a
complete list of header files required for the BMC Atrium CMDB, see Chapter 2,
Header files.
Functions
The CMDB C API functions are categorized by the type of actions these functions
perform. The function categories include data model, instance, and general
purpose functions, such as session, authentication, and import or export definition
functions.
NOTE
In the C API function descriptions, the usage of the term specified for a given
parameter denotes that the parameter is listed under the Synopsis heading of the
API function.
82
Functions
CMDBCreateAttribute
Description
Privileges
Synopsis
Creates a new attribute with the specified name for the specified class.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBCreateAttribute(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
classNameID,
ARNameType
attributeName,
ARNameType
attributeId,
unsigned int
dataType,
ARInternalId
*arsubclassesId,
unsigned int
entryMode,
CMDBAttributeLimit
*attributeLimit,
ARValueStruct
*defaultValue,
ARPropList
*characList,
ARPropList
*customCharacList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameID
The name of the class for which you want to create an attribute. It is a two-part
structure that contains the namespace and the classname. The name of the class
must be unique.
attributeName
The name of the attribute to create. The name of the attribute must be unique
within the specified class and within its superclasses and subclasses.
attributeID
The ID of the attribute to create.
dataType
The datatype of the attribute to create.
1: Keyword (CMDB_ATTR_DATA_TYPE_KEYWORD)
2:
Integer (CMDB_ATTR_DATA_TYPE_INTEGER)
3:
Real (CMDB_ATTR_DATA_TYPE_REAL)
Chapter 5
83
4:
Character (CMDB_ATTR_DATA_TYPE_CHAR)
5:
Diary (CMDB_ATTR_DATA_TYPE_DIARY)
6:
Selection (CMDB_ATTR_DATA_TYPE_ENUM)
7:
Time (CMDB_ATTR_DATA_TYPE_TIME)
of day (CMDB_ATTR_DATA_TYPE_TIME_OF_DAY)
arsubclassesId
The AR System subclasses ID of the attribute to create. The IDs of all attributes
must be unique within the class. Specify 0 for this parameter if you want the
system to generate the ID.
entryMode
The entry mode for the attribute. Entry mode can be set to any one of the following:
required, optional, or display only.
1: Users must enter data when the
(CMDB_ATTR_ENTRYMODE_REQUIRED).
2: Users do not have to enter data when the entry mode is set to optional but they
can if they want to (CMDB_ATTR_ENTRYMODE_OPTIONAL).
4: Users cannot enter data when the entry mode is set to display only
(CMDB_ATTR_ENTRYMODE_DISPLAY_ONLY).
attributeLimit
The value limits for the attribute and other properties specific to the attributes
type. See the CMDBsubclassesLimitStruct definition in cmdb.h to find the contained
structure that applies to the type of attribute you are creating. The limits and
properties you assign must be of the same data type as the attribute. Specify NULL
for this parameter if you do not want to change the attribute limits and properties.
defaultValue
The value to apply if a user submits an entry with no attribute value. The default
value can be as many as 255 bytes in length and must be of the same datatype as
the attribute. Specify NULL if you do not want to specify a default value.
characList
A list of characteristics for the attribute. It includes the following characteristics:
View Permissions, Change Permissions, Hidden, Primary Key, Propagated
Owner, Create Mode, Audit Option, and Description.
84
Functions
Users can specify a list of groups or roles that have permissions to view this
attribute (CMDB_ATTR_CHARAC_VIEW_PERMS). When querying for attributes, you will
see all attributes including the hidden attributes. You can specify one or more
group IDs or role IDs for the permissions separated by a semicolon, for example,
20;-5.
1:
Users can specify a list of groups or roles that have permissions to view and
modify the characteristics of the attribute (CMDB_ATTR_CHARAC_CHANGE_PERMS).
2:
3: Users can set the flag to false so that this attribute is hidden
(CMDB_ATTR_CHARAC_HIDDEN). This setting marks the atribute as hidden for a group
or a role. When querying for classes, you can retrieve hidden attributes. You can
specify one or more group IDs or role IDs for the permissions separated by a
semicolon, for example, 20;3.
The class ID and the attribute ID of the lead class attribute from which the
attribute is propagated (CMDB_ATTR_CHARAC_PROPAGATED_OWNER). The format for
this value is <leadclassID>|<lead attribute>.
5:
6: CMDB_ATTR_CHARAC_CREATE_MODE
7:Users can set the audit option on
CMDB_ATTR_CHARAC_AUDIT_OPTION
9:Users can
customCharacList
A list of user-defined custom characteristics for the attribute. The attributes must
be in the range between 300000 (CMDB_ATTR_CUSTOM_CHARAC_MIN) and 399999
(CMDB_ATTR_CUSTOM_CHARAC_MAX). After the properties list structure you specify is
serialized, it is converted into the <list_size><prop_id><data_type><prop_value>
format, where:
<list_size>:
<prop_id>:
The ID for the property, which is within the 300000 - 399999 range.
<data_type>:
The data type for the property, which can be of any native data type.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
Chapter 5
85
CMDBCreateMultipleAttribute
Description
Privileges
Synopsis
Creates multiple new attributes with the specified names for the specified class.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBCreateMultipleAttribute(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameID,
ARNameList
*attributeNameList,
ARNameList
*attributeIdList,
ARUnsignedIntList
*dataTypeList,
ARInternalIdList
*arsubclassesIdList,
ARUnsignedIntList
*entryModeList,
CMDBAttributeLimitList
*attributeLimitList,
ARValueList
*defaultValueList,
ARPropListList
*characListList,
ARPropListList
*customCharacListList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameID
The name of the class for which the attributes need to be created. It is a
two-part structure that contains the namespace and the classname. The name of
the class must be unique.
attributeNameList
The list of attribute names. The names of all attributes must be unique within the
specified class and within its superclasses and subclasses.
attributeIdList
The list of attribute IDs for the attributes being created.
dataTypeList
The list of data types for the attributes being created.
arsubclassesIdList
The AR System subclasses IDs of the attributes being created.
86
Functions
entryModeList
The list of entry modes for the attributes being created. Options include display
only, required, and optional.
1: Users must enter data when the
(CMDB_ATTR_ENTRYMODE_REQUIRED).
Users do not have to enter data when the entry mode is set to optional but they
can if they want to (CMDB_ATTR_ENTRYMODE_OPTIONAL).
2:
attributeLimitList
The list of value limits for the attributes being created and other properties specific
to the attributes types. See the CMDBsubclassesLimitStruct definition in cmdb.h to
find the contained structure that applies to the type of attribute list you are
modifying. The limits and properties you assign must be of the same data type as
the attribute. Specify NULL for this parameter if you do not want to change the limits
and properties for the attribute list.
defaultValueList
The list of values to apply if a user submits an entry with no value for the attributes
being created. The default value can be as many as 255 bytes in length and must be
of the same datatype as the attribute. Specify NULL if you do not want to specify a
default value.
characListList
A list of characteristics for each attribute. Characteristics include View
Permissions, Change Permissions, Hidden, Primary Key, Propagated Owner,
Create Mode, Audit Option, and Description.
Users can specify a list of groups or roles that have permissions to view this
attribute (CMDB_ATTR_CHARAC_VIEW_PERMS).When querying for attributes, you will
see all attributes, including the hidden attributes. You can specify one or more
group IDs or role IDs for the permissions separated by a semicolon, for example,
20;-5.
1:
Users can specify a list of groups or roles that have permissions to view and
modify the characteristics of the attribute (CMDB_ATTR_CHARAC_CHANGE_PERMS).
2:
3: Users can set the flag to false so that this attribute is hidden
(CMDB_ATTR_CHARAC_HIDDEN). Marks a list of atributes as hidden
for a group or a
role. When querying for classes, you can choose to retrieve hidden attributes. You
can specify one or more group IDs or role IDs for the permissions separated by a
semicolon, for example, 20;3.
The class ID and the attribute ID of the lead class attribute from which the
attribute is propagated (CMDB_ATTR_CHARAC_PROPAGATED_OWNER). The format for
this value is <leadclassID>|<lead attribute>.
5:
6: CMDB_ATTR_CHARAC_CREATE_MODE
Chapter 5
87
customCharacListList
A list of user-defined custom characteristics list for each attribute. The value can be
set to any user-defined characteristic but must be in the range between 300000
(CMDB_CLASS_CUSTOM_CHARAC_MIN) and 399999 (CMDB_CLASS_CUSTOM_CHARAC_MAX).
Specify NULL for this parameter if you do not want to associate custom
characteristics with this attribute. After the properties list structure you specify is
serialized, it is converted into the <list_size><prop_id><data_type><prop_value>
format, where:
<list_size>:
<prop_id>:
The ID for the property, which is within the 300000 - 399999 range.
<data_type>:
The data type for the property, which can be of any native data type.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBDeleteAttribute
Description
Privileges
Synopsis
Deletes the attribute with the specified ID. Depending on the value you specify for
the deleteOption parameter, the attribute is deleted immediately and is not
returned to users who request information about attributes.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBDeleteAttribute(
ARControlStruct
Input
arguments
88
*control,
CMDBClassNameId
classNameID,
ARNameType
attributeName,
unsigned int
deleteOption,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
Functions
classNameID
The name of the class from which to delete the attribute.
attributeName
The name of the attribute to delete.
deleteOption
A value indicating the action to take if the specified attribute contains data.
0:
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetAttribute
Description
Privileges
Synopsis
*control,
CMDBClassNameId
*classNameId,
ARNameType
attributeName,
ARNameType
attributeId,
unsigned int
*dataType,
unsigned int
*attributeType,
CMDBClassNameId
*baseClassNameId,
ARInternalId
*arsubclassesId,
unsigned int
*entryMode,
CMDBAttributeLimit
*attributeLimit,
ARValueStruct
*defaultValue,
ARPropList
*characList,
ARPropList
*customCharacList,
ARStatusList
*status)
Chapter 5
89
Input
arguments
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class. It is a two-part structure that contains the namespace and
the classname. The name of the class must be unique.
attributeName
The name of the attribute to retrieve.
Return values
attributeId
The ID of the attribute.
dataType
The datatype of the attribute.
1:
Keyword (CMDB_ATTR_DATA_TYPE_KEYWORD)
2:
Integer (CMDB_ATTR_DATA_TYPE_INTEGER)
3:
Real (CMDB_ATTR_DATA_TYPE_REAL)
4:
Character (CMDB_ATTR_DATA_TYPE_CHAR)
5:
Diary (CMDB_ATTR_DATA_TYPE_DIARY)
6:
Selection (CMDB_ATTR_DATA_TYPE_ENUM)
7:
Time (CMDB_ATTR_DATA_TYPE_TIME)
of day (CMDB_ATTR_DATA_TYPE_TIME_OF_DAY)
attributeType
The type of attribute to retrieve.
1: CMDB_ATTR_TYPE_CORE_INTERNAL
2: CMDB_ATTR_TYPE_CORE
3: CMDB_ATTR_TYPE_REGULAR
baseClassNameId
The name of the class that owns this attribute.
arsubclassesId
The internal ID of the attribute to retrieve.
90
Functions
entryMode
The entry mode for the attribute list. Entry mode can be set to any one of the
following: display only, required, optional.
1: CMDB_ATTR_ENTRYMODE_REQUIRED
2: CMDB_ATTR_ENTRYMODE_OPTIONAL
4: CMDB_ATTR_ENTRYMODE_DISPLAY_ONLY
attributeLimit
The value limits for the attribute and other properties specific to the attributes
type. See the CMDBsubclassesLimitStruct definition in cmdb.h to find the contained
structure that applies to the type of attribute you are creating. The limits and
properties you assign must be of the same data type as the attribute. Specify NULL
for this parameter if you do not want to change the attribute limits and properties.
defaultValue
The value to apply if a user gets an entry with no attribute value. The default value
can be as many as 255 bytes in length and must be of the same datatype as the
attribute.
characList
A list of characteristics for each attribute. Characteristics include View
Permissions, Change Permissions, Hidden, Primary Key, Propagated Owner,
Create Mode, Audit Option, and Description.
1: List of groups or roles that have
(CMDB_ATTR_CHARAC_VIEW_PERMS).
2: List of groups or roles that have permissions to view and modify the
characteristics of the attribute (CMDB_ATTR_CHARAC_CHANGE_PERMS).
The flag value of the Hidden characteristic. If the flag is set to false, users cannot
see hidden attributes (CMDB_ATTR_CHARAC_HIDDEN).
3:
The class ID and the attribute ID of the lead class attribute from which the
attribute is propagated (CMDB_ATTR_CHARAC_PROPAGATED_OWNER). The format for
this value is <leadclassID>|<lead attribute>.
5:
6: CMDB_ATTR_CHARAC_CREATE_MODE
The audit option for the attribute. If the audit option is on, the audit history for
the attribute is stored. CMDB_ATTR_CHARAC_AUDIT_OPTION
7:
9:
Chapter 5
91
customCharacList
A list of user-defined custom characteristics for the attribute. The attributes must
be in the range between 300000 (CMDB_ATTR_CUSTOM_CHARAC_MIN) and 399999
(CMDB_ATTR_CUSTOM_CHARAC_MAX).
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetMultipleAttribute
Description
Privileges
Synopsis
Input
arguments
92
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARBoolean
getHiddenAttrs,
ARBoolean
getDerivedAttrs,
ARNameList
*nameList,
ARPropList
*attrCharacQueryList,
ARBooleanList
*existList,
ARNameList
*attributeNameList,
ARNameList
*attributeIdList,
ARUnsignedIntList
*dataTypeList,
ARUnsignedIntList
*attributeTypeList,
CMDBClassNameIdList
*baseClassNameIdList,
ARInternalIdList
*arsubclassesIdList,
ARUnsignedIntList
*entryModeList,
CMDBAttributeLimitList
*attributeLimitList,
ARValueList
*defaultValueList,
ARPropListList
*characList,
ARPropListList
*customCharacList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
Functions
classNameId
The name of the class to retrieve. It is a two-part structure that contains the
namespace and the classname.
getHiddenAttrs
A flag indicating whether to retrieve the hidden attributes. Specifying FALSE will
not retrieve the hidden attributes.
getDerivedAttrs
A flag indicating whether to retrieve attributes derived from a superclass.
Specifying FALSE will not retrieve the derived attributes.
nameList
A list of attributes to retrieve.
attrCharacQueryList
A list of attribute characteristic queries to retrieve.
Return values
existList
A list of flags and corresponding Boolean values indicating whether the attribute
list exists. The value TRUE indicates that the attribute list exists; FALSE indicates that
the attribute list does not exist.
attributeNameList
The list of attribute names retrieved.
attributeIdList
The list of attribute IDs retrieved.
dataTypeList
The list of data types for the attribute.
attributeTypeList
The list of the attributes type.
baseClassNameIdList
The name of the base class attribute to retrieve.
arsubclassesIdList
The AR System subclasses ID of the attribute.
entryModeList
The entry mode for the attribute list. Options include display only, required, and
optional.
1: Users must enter data when the entry
(CMDB_ATTR_ENTRYMODE_REQUIRED ).
2: Users do not have to enter data
(CMDB_ATTR_ENTRYMODE_OPTIONAL).
Chapter 5
93
attributeLimitList
The value limits for the list of attributes and other properties specific to the
attributes type. See CMDBAttributeLimit on page 162 to find the contained
structure that applies to the type of attribute you are modifying. The limits and
properties you assign must be of the same data type as the attribute. Specify NULL
for this parameter if you do not want to change the attribute limits and properties.
defaultValueList
The value to apply if a user submits an entry with no attribute list value. The
default value can be as many as 255 bytes in length and must be of the same
datatype as the attribute.
characList
A list of characteristics for each attribute. Characteristics include View
Permissions, Change Permissions, Hidden, Primary Key, Propagated Owner,
Create Mode, Audit Option, and Description.
1: List of groups or roles that have
(CMDB_ATTR_CHARAC_VIEW_PERMS).
2: List of groups or roles that have permissions to view and modify the
characteristics of the attribute (CMDB_ATTR_CHARAC_CHANGE_PERMS).
The flag value of the Hidden characteristic. If the flag is set to false, users cannot
see hidden attributes (CMDB_ATTR_CHARAC_HIDDEN).
3:
The class ID and the attribute ID of the lead class attribute from which the
attribute is propagated (CMDB_ATTR_CHARAC_PROPAGATED_OWNER). The format for
this value is <leadclassID>|<lead attribute>.
5:
6: CMDB_ATTR_CHARAC_CREATE_MODE
7: The audit option for the attribute. If the audit option is on, the audit history for
the attribute is stored. CMDB_ATTR_CHARAC_AUDIT_OPTION
9:
customCharacList
A list of user-defined custom characteristics for the attribute. The attributes must
be in the range between 300000 (CMDB_ATTR_CUSTOM_CHARAC_MIN) and 399999
(CMDB_ATTR_CUSTOM_CHARAC_MAX).
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
94
Functions
CMDBSetAttribute
Description
Privileges
Synopsis
Sets an attribute with the specified name for the specified class.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBSetAttribute(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
attributeName,
ARNameType
newAttributeName,
unsigned int
*entryMode,
CMDBAttributeLimit
*attributeLimit,
ARValueStruct
*defaultValue,
ARPropList
*characList,
ARPropList
*customCharacList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class for which the attribute needs to set. It is a two-part structure
that contains the namespace and the classname.
attributeName
The name of the attribute to set.
newAttributeName
The new name of the attribute, which must be unique within the specified class
and within its superclasses and subclasses.
entryMode
The entry mode for the attribute. Options include display only, required, and
optional.
1: Users must enter data when the
(CMDB_ATTR_ENTRYMODE_REQUIRED).
2: Users do not have to enter data when the entry mode is set to optional but they
can if they want to (CMDB_ATTR_ENTRYMODE_OPTIONAL).
4: Users cannot enter data when the entry
(CMDB_ATTR_ENTRYMODE_DISPLAY_ONLY).
Chapter 5
95
attributeLimit
The value limits for the attribute and other properties specific to the attributes
type. See the CMDBsubclassesLimitStruct definition in cmdb.h to find the contained
structure that applies to the type of attribute you are setting. The limits and
properties you assign must be of the same data type as the attribute. Specify NULL
for this parameter if you do not want to change the attribute limits and properties.
defaultValue
The value to apply if a user sets an entry with no attribute value. The default value
can be as many as 255 bytes in length and must be of the same data type as the
attribute.
characList
A list of characteristics for each attribute. Characteristics include View
Permissions, Change Permissions, Hidden, Primary Key, Propagated Owner,
Create Mode, Audit Option, and Description.
1: Users can view but not modify
(CMDB_ATTR_CHARAC_VIEW_PERMS).
the attribute
The class ID and the attribute ID of the lead class attribute from which the
attribute is propagated (CMDB_ATTR_CHARAC_PROPAGATED_OWNER). The format for
this value is <leadclassID>|<lead attribute>.
5:
6: CMDB_ATTR_CHARAC_CREATE_MODE
7:Users can set the audit option on
CMDB_ATTR_CHARAC_AUDIT_OPTION
9:Users can
customCharacList
A list of user-defined custom characteristics for the attribute. The attributes must
be in the range between 300000 (CMDB_ATTR_CUSTOM_CHARAC_MIN) and 399999
(CMDB_ATTR_CUSTOM_CHARAC_MAX).
In version 2.0 of the BMC Atrium CMDB, the custom characteristic list was
overwritten when you specified new values. With version 2.0.1, the new values are
appended to the existing list. To delete a custom characteristic, set its datatype to
NULL.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
96
Functions
CMDBSetMultipleAttribute
Description
Privileges
Synopsis
Sets multiple attributes with the specified names for the specified class.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBSetMultipleAttribute(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameList
*attributeNameList,
ARNameList
*newAttributeNameList,
ARUnsignedIntList
*entryModeList,
CMDBAttributeLimitList
*attributeLimitList,
ARValueList
*defaultValueList,
ARPropListList
*characListList,
ARPropListList
*customCharacListList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class for which the attributes need to be set. It is a two-part
structure that contains the namespace and the classname.
attributeNameList
The list of attribute names to set.
newAttributeNameList
The list of new names of the attributes. The names of all attributes must be unique
within the specified class and within its superclasses and subclasses.
entryModeList
The list of entry modes for the attributes being created. Entry mode can be set to
any one of the following modes: display only, required, optional.
1: Users must enter data when the entry
(CMDB_ATTR_ENTRYMODE_REQUIRED ).
2: Users do not have to enter data when the entry mode is set to optional but they
can if they want to (CMDB_ATTR_ENTRYMODE_OPTIONAL).
4: Users cannot enter data when the entry
(CMDB_ATTR_ENTRYMODE_DISPLAY_ONLY).
Chapter 5
97
attributeLimitList
The list of value limits for the attributes being created and other properties specific
to the attributes' types. See CMDBAttributeLimit on page 162 to find the
contained structure that applies to the type of attribute list you are modifying. The
limits and properties you assign must be of the same data type as the attribute.
Specify NULL for this parameter if you do not want to change the limits and
properties for the attribute list.
defaultValueList
The list of values to apply if a user submits an entry with no value for the attributes
being created. The default value can be as many as 255 bytes in length and must be
of the same data type as the attribute. Specify NULL if you do not want to specify a
default value.
characListList
A list of characteristics for each attribute. Characteristics include View
Permissions, Change Permissions, Hidden, Primary Key, Propagated Owner,
Create Mode, Audit Option, and Description.
Users can specify a list of groups or roles that have permissions to view this
attribute (CMDB_ATTR_CHARAC_VIEW_PERMS).
1:
Users can specify a list of groups or roles that have permissions to view and
modify the characteristics of the attribute (CMDB_ATTR_CHARAC_CHANGE_PERMS).
2:
The class ID and the attribute ID of the lead class attribute from which the
attribute is propagated (CMDB_ATTR_CHARAC_PROPAGATED_OWNER). The format for
this value is <leadclassID>|<lead attribute>.
5:
6: CMDB_ATTR_CHARAC_CREATE_MODE
7:User can set the audit option on
CMDB_ATTR_CHARAC_AUDIT_OPTION
9:Users can
customCharacListList
A list of user-defined custom characteristics list for the attribute. The value can be
set to any user-defined characteristic but must be in the range between 100000
(CMDB_CLASS_CUSTOM_CHARAC_MIN) and 199999 (CMDB_CLASS_CUSTOM_CHARAC_MAX).
Specify NULL for this parameter if you do not want to associate custom
characteristics with this attribute.
In version 2.0 of the BMC Atrium CMDB, the custom characteristic list was
overwritten when you specified new values. With version 2.0.1, the new values are
appended to the existing list. To delete a custom characteristic, set its datatype to
NULL.
98
Functions
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBCreateClass
Description
Privileges
Synopsis
Creates a class with the core attributes in the OBJSTR:Class. The data model is
stored in the OBJSTR:Class form and the attribute information is stored in the
OBJSTR:AttributeDefinition form.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBCreateClass(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameID,
ARNameType
classID,
CMDBClassTypeInfo
*classTypeInfo,
CMDBClassNameId
*superclassNameId,
CMDBIndexList
*indexList,
CMDBAuditInfoStruct
*auditInfo,
ARPropList
*characList,
ARPropList
*customCharacList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameID
The name of the class to create. It is a two-part structure that contains the
namespace and the classname. The name of the class must be unique.
classID
The unique identifier for the class. It can be provided by the user. If left blank, the
class ID will be automatically generated by the system.
classTypeInfo
The type of class to create. The information contained in this definition depends on
the type of class you specify.
1:
2:
Chapter 5
99
superclassNameID
The superclass of this class. Specify NULL for this parameter if there is no superclass.
indexList
A list of indexes defined for the class.
auditInfo
The audit information for the class.
characList
A list of characteristics for the class. Specify NULL for this parameter if you do not
want to associate characteristics with this class.
1: Used to specify if this is a singleton class. This characteristic is an integer value
where type CMDB_CLASS_CHARAC_SINGLETON_FALSE indicates that this is not a
singleton class. Type CMDB_CLASS_CHARAC_SINGLETON_TRUE indicates that this is a
singleton class (CMDB_CLASS_CHARAC_SINGLETON).
2: This property does not allow you to create instances for this abstract class
(CMDB_CLASS_CHARAC_ABSTRACT ). After the property has been set for the attribute,
you cannot create instances for it. All the attributes are propagated to the
subclasses.
3:
4:
5:
or a role. When querying for classes, you can choose to retrieve hidden classes. You
can specify one or more group IDs or role IDs for the permissions separated by a
semicolon, for example, 20;3.
7: Gives you the permissions to modify the class
(CMDB_CLASS_CHARAC_CLASS_VISIBLE_PERMS). Marks the class as visible for a group
or a role. When querying for classes, you will see all classes, including the hidden
classes. You can specify one or more group IDs or role IDs for the permissions
separated by a semicolon, for example, 20;-5.
8: CMDB_CLASS_CHARAC_CATEGORIZATION_SUBCLASS
9: CMDB_CLASS_CHARAC_FORM_NAME
customCharacList
A list of user-defined custom characteristics for the class. The ID for each list item
can be set to any user-defined characteristic but must be in the range between
100000 (CMDB_CLASS_CUSTOM_CHARAC_MIN) and 199999
(CMDB_CLASS_CUSTOM_CHARAC_MAX). Specify NULL for this parameter if you do not
want to associate custom characteristics with this class. After the properties list
structure you specify is serialized, it is converted into the
<list_size><prop_id><data_type><prop_value> format, where:
<list_size>:
100
Functions
<prop_id>:
Is the ID for the property, which is within the 100000 - 199999 range.
<data_type>: Is the data type for the property, which can be of any native data type.
<prop_value>: Is
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBDeleteClass
Description
Privileges
Synopsis
Deletes a specified class. Also deletes the associated attributes of the class.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBDeleteClass(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
unsigned int
deleteOption,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameID
The name of the class to delete.
deleteOption
A value indicating the action to take if the specified class contains attributes or
subclasses.
0:
Delete the class only if the class contains no instances and has no subclasses or
dependent relationships (CMDB_DELETE_CLASS_OPTION_NONE).
Delete the class only if the class has no subclasses or dependent relationships.
This applies only to regular classes (CMDB_DELETE_CLASS_OPTION_WITH_DATA).
1:
2: Delete the class, including all the subclasses and dependent relationship classes
that are associated with it. All the dependencies for the specified class are deleted
(CMDB_DELETE_CLASS_OPTION_ALL_DEPENDENCIES). This option overrides the
CMDB_CLASS_DATA_DELETE option.
101
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetClass
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameID
*classNameId,
ARNameType
*classId,
CMDBClassTypeInfo
*classTypeInfo,
CMDBClassNameId
*superclassNameId,
CMDBIndexList
*indexList,
CMDBAuditInfoStruct
auditInfo,
ARPropList
*characList,
ARPropList
*customCharacList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameID
The name of the class. It is a two-part structure that contains the namespace and
the classname.
Return values
classId
The ID used to identify the class.
classTypeInfo
Information about the type of class.
superclassNameId
The name of the superclass.
indexList
The list of indexes defined for the class.
102
Functions
auditInfo
The audit information for the class.
characList
A list of characteristics for this class. Specify NULL for this parameter if you do not
want to associate characteristics with this class.
1: Used to specify if this is a singleton class. This characteristic is an integer value
where type CMDB_CLASS_CHARAC_SINGLETON_FALSE indicates that this is not a
singleton class. Type CMDB_CLASS_CHARAC_SINGLETON_TRUE indicates that this is a
singleton class (CMDB_CLASS_CHARAC_SINGLETON).
2: This property does not allow you to create instances for this abstract class
(CMDB_CLASS_CHARAC_ABSTRACT ). After the property has been set for the attribute,
you cannot create instances for it. All the attributes are propagated to the
subclasses.
3:
4:
5:
customCharacList
A list of user-defined custom characteristics for the class. The value retrieved must
be in the range between 100000 (CMDB_CLASS_CUSTOM_CHARAC_MIN) and 199999
(CMDB_CLASS_CUSTOM_CHARAC_MAX). Specify NULL for this parameter if you do not
want to retrieve custom characteristics with this class.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
103
CMDBGetListClass
Description
Privileges
Synopsis
Retrieves information about relationship classes for a specified class. The classes
that are retrieved will have the class that is specified in the classNameIdRelation
parameter as part of the relationship.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetListClass(
Input
arguments
ARControlStruct
*control,
ARNameType
namespaceName,
CMDBClassNameId
*classNameIdRelation,
CMDBClassNameId
*superclassName,
ARPropList
*characQueryList,
ARBoolean
getHiddenClasses,
CMDBClassNameIdList
*classNameIdList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
namespaceName
The name of the namespace. Namespaces are a way of partitioning your data
model to create logical groups of classes. The Class Manager namespaces are
implemented using a prefix-based naming convention on classes.
classNameIdRelation
Retrieves the relationship classes that have a class specified in this parameter as
part of the relationship.
superclassName
Retrieves the classes that are derived from the superclass.
characQueryList
Retrieves all the classes that match the criteria.
getHiddenClasses
Retrieves the hidden classes.
104
Functions
Return values
classNameIdList
A list of class names that match the specified criteria.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBSetClass
Description
Privileges
Synopsis
Sets the class properties in the OBJSTR:Class form. After you create a class, you
cannot modify the following properties: classId, classType (regular, relationship),
and persistence provider.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBSetClass(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
CMDBClassNameId
*newclassNameId,
CMDBClassTypeInfo
*classTypeInfo,
CMDBIndexList
*indexList,
CMDBAuditInfoStruct
*auditInfo,
ARPropList
*characList,
ARPropList
*customCharacList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class. It is a two-part structure that contains the namespace and
the classname. The name of the class must be unique.
newclassNameId
The new name of the class.
classTypeInfo
Information about the type of class.
105
indexList
The list of indexes defined for the class. When this parameter is specified, all
previously existing indexes are replaced by its contents. If you want to add indexes
without losing existing indexes, include the existing indexes in this list.
auditInfo
The audit information for the class.
characList
A list of characteristics for this class. Specify NULL for this parameter if you do not
want to associate characteristics with this class.
Used to specify if this is a singleton class. This characteristic is an integer value,
where type CMDB_CLASS_CHARAC_SINGLETON_FALSE indicates that this is not a
singleton class. Type CMDB_CLASS_CHARAC_SINGLETON_TRUE indicates that this is a
singleton class (CMDB_CLASS_CHARAC_SINGLETON).
1:
2: This property does not allow you to create instances for this abstract class
(CMDB_CLASS_CHARAC_ABSTRACT ). After the property has been set for the class, you
cannot create instances for it. All the attributes are propagated to the subclasses.
3:
4:
5:
customCharacList
A list of user-defined custom characteristics for the class. The value can be set to
any user-defined characteristic but must be in the range between 100000
(CMDB_CLASS_CUSTOM_CHARAC_MIN) and 199999 (CMDB_CLASS_CUSTOM_CHARAC_MAX).
Specify NULL for this parameter if you do not want to associate custom
characteristics with this class.
In version 2.0 of the BMC Atrium CMDB, the custom characteristic list was
overwritten when you specified new values. With version 2.0.1, the new values are
appended to the existing list. To delete a custom characteristic, set its datatype to
NULL.
106
Functions
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
Instance functions
The C APIfunctions for instance include:
CMDBCreateInstance
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
CMDBAttributeValueList
*attributeValueList,
ARNameType
instanceId,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class from which the instance is derived. It is a two-part structure
that contains the namespace and the classname.
107
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
attributeValueList
A list of one or more subclasses/value pairs (specified in any order) that identifies
the data for the new attribute. You must specify values for all required subclasses
that do not have defined defaults. Values must be of the data type defined for the
subclasses or have a data type of 0. NULL values can be specified for optional
subclasses only. An error is generated if a subclasses does not exist or the user
specified by the control parameter does not have write permission for a subclasses.
Return values
instanceId
The unique identifier for the new attribute (system-generated).
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBDeleteInstance
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
ARNameType
instanceId,
unsigned int
deleteOption,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class that holds the instance to delete.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
108
Functions
instanceId
The unique identifier for the instance (system-generated).
deleteOption
Allows you to delete only the specified instance when the instance can be
retrieved (CMDB_DERIVED_DELOPTION_NONE).
0:
1: Allows you to delete the instance even when the instance cannot be retrieved
(CMDB_DERIVED_DELOPTION_FORCE). Errors will be ignored for instances that do not
exist.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetInstance
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
usigned int
getMask,
ARNameType
instanceId,
ARNameList
*attributeGetList,
CMDBAttributeValueList
*attributeValueList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class. It is a two-part structure that contains the namespace and
the classname.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
109
getMask
The identifier for specifying the dataset type.
0: Based on the datasetId being passed, instances are retrieved from either the
overlay or the original dataset.
1:
instanceId
The unique identifier for the instance to retrieve.
attributeGetList
The list of attributes to retrieve.
Return values
attributeValueList
The list of attribute ID and value pairs for the instance.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetListInstance
Description
Privileges
Synopsis
Retrieves a list of instances. You can limit the instance list to entries that match
particular conditions by specifying the qualifier parameter.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetListInstance(
110
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
usigned int
getMask,
CMDBQualifierStruct
*qualifier,
ARNameList
*attributeGetList,
CMDBSortList
*sortList,
unsigned int
firstRetrieve,
unsigned int
maxRetrieve,
ARNameList
*instanceIdList,
CMDBAttributeValueListList
*attributeValueListList,
unsigned int
*numMatches,
ARStatusList
*status)
Functions
Input
arguments
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class. It is a two-part structure that contains the namespace and
the classname.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
getMask
The identifier for specifying the dataset type.
Based on the datasetId being passed, instances are retrieved from either the
overlay or the original dataset.
0:
1:
qualifier
A query that determines the set of entries to retrieve. The qualification can include
one or more subclasses and any combination of conditional, relational, and
arithmetic operations.
attributeGetList
A list of attribute names to retrieve.
sortList
The sort order for the retrieved data.
firstRetrieve
The first entry to retrieve. CMDB_START_WITH_FIRST_ENTRY represents the first entry
to retrieve and is the default value if the value is not set.
maxRetrieve
The maximum number of entries to retrieve. Use this parameter to limit the
amount of data returned if the qualification does not narrow the list. Specify
CMDB_NO_MAX_LIST_RETRIEVE to assign no maximum.
Return values
instanceIdList
The list of instance IDs that match the criteria.
attributeValueListList
A list of the attribute value list.
111
numMatches
The total number of entries that match the qualification criteria. This value does
not represent the number of entries returned unless the number of matching
entries is less than or equal to the maxRetrieve value.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetMultipleInstances
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
unsigned int
getMask,
ARNameList
*instanceIds,
ARNameList
*attributeGetList,
ARBooleanList
*existList,
CMDBAttributeValueListList
*attributeValueListList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class to retrieve. It is a two-part structure that contains the
namespace and the classname.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
getMask
The identifier for specifying the dataset type.
0: Based on the datasetId being passed, a list of instances are retrieved from either
Functions
1:
Allows you to retreive a list of instances from the current dataset only.
instanceIds
A list of instance IDs to retrieve.
attributeGetList
A list of attributes to retrieve.
Return values
existList
A list of flags and corresponding Boolean values indicating whether the attribute
list exists. The value TRUE indicates that the attribute list exists; FALSE indicates that
the attribute list does not exist.
attributeValueListList
The list of attributeID and value pairs for instances to retrieve.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetInstanceBLOB
Description
Privileges
Synopsis
Retrieves the attachment, or binary large object (BLOB), stored for the attachment
subclasses. The BLOB can be returned in a file or in an in-memory buffer.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetInstanceBLOB(
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
unsigned int
getMask,
ARNameType
instanceId,
ARNameType
attributeName,
ARLocStruct
*loc,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
113
classNameId
The name of the class. It is a two-part structure that contains the namespace and
the classname.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
getMask
The identifier for specifying the dataset type.
0: Based on the datasetId being passed, instances are retrieved from either the
overlay or the original dataset.
1:
instanceId
The unique identifier for the instance.
attributeName
The name of the attribute that contains the attachment.
Return values
loc
The location where the BLOB is stored.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
114
Functions
CMDBGraphQuery
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*startClassNameId,
ARNameType
datasetId,
unsigned int
getMask,
ARNameType
startExtensionId,
ARNameType
startInstanceId,
int
numLevels,
int
direction,
ARBoolean
noMatchProceed,
ARBoolean
onMatchProceed,
CMDBGraphList
*queryGraph,
CMDBGetObjectList
*objects,
CMDBGetRelationList
*relations,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
startClassNameId
The name of the starting node class.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
getMask
The identifier for specifying the dataset type.
0: Based on the datasetId being passed, instances are retrieved from either the
overlay or the original dataset.
1:
115
startExtensionId
The extension ID of the starting CI node. This is required if the query graph
contains the same class of CI more than once and needs to distinguish one from
another.
startInstanceId
The ID of the starting node.
numLevels
The number of levels to traverse the specified queryGraph. The value A-1 specifies
the graph query to traverse to the end of the graph.
direction
The direction in which the graph is to traverse.
CMDB_RELATIONSHIP_DIRECTION_OUT (0):
Return the node that exists on the right side of the relationship.
CMDB_RELATIONSHIP_DIRECTION_IN (1):
Return the node that exists on the left side of the relationship.
CMDB_RELATIONSHIP_DIRECTION_BOTH (2):
Return the nodes that exist on both left and right side of the relationship.
noMatchProceed
T (1):
When the node returned for a given relationship instance does not match the
criteria specified, proceed to the next relationship. Notice that, in this case, no
relationship information will be returned because the returned components might
not be connected, due to skipping the non-matching nodes.
F (0):
When the node returned for a given relationship instance does not match the
criteria specified, do not proceed any further.
onMatchProceed
T (1):
When the node returned for a given relationship instance matches the criteria
specified, proceed to the next relationship.
F (0):
When the node returned for a given relationship instance matches the criteria
specified, do not proceed any further.
queryGraph
The details of the information indicating the path that needs to be queried to return
the desired CIs and relationships.
116
Functions
Return values
objects
List of one or more CI instances matching the specified criteria. The starting node
is not included.
relations
List of relationship instances matching the specified criteria that connects the CIs
returned.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBSetInstance
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
ARNameType
instanceId,
CMDBAttributeValueList
*attributeValueList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The name of the class. It is a two-part structure that contains the namespace and
the classname.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
instanceId
The unique identifier for the instance (system-generated).
117
attributeValueList
A list of one or more attribute value pairs (specified in any order) that identifies the
data for the new attribute. You must specify values for all required subclasses that
do not have defined defaults.
Values must be of the data type defined for the subclasses or have a data type of 0.
NULL values can be specified for optional subclasses only. An error is generated if a
subclasses does not exist or the user specified by the control parameter does not
have write permission for a subclasses.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBBeginBulkEntryTransaction
Description
Privileges
Synopsis
Indicates that subsequent API functions are part of the bulk transaction. Any API
calls that arrive after this function call are placed in a queue. Data model functions
are not part of the bulk transaction.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBBeginBulkEntryTransaction(
Input
argument
Return value
ARControlStruct
*control,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
118
Functions
CMDBEndBulkEntryTransaction
Description
Privileges
Synopsis
This function commits or rolls back the bulk transaction, depending on the action
type. For an action type of SEND, the API call will be executed as part of the
transaction. For an action type of CANCEL, the transaction will be canceled.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBEndBulkEntryTransaction(
ARControlStruct
Input
arguments
*control,
unsigned int
actionType,
ARBulkEntryReturnList
*bulkEntryReturnList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
actionType
The type of action. Action type can be SEND or CANCEL.
Return values
bulkEntryReturnList
Returns the status of the entry calls.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
119
Environment functions
The Class Manager includes the following environment functions:
CMDBInitialization
Description
Privileges
Synopsis
Initializes the C API session. This function must be called before any C API calls
are made.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBInitialization(
Input
arguments
Return values
ARControlStruct
*control,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
120
Functions
CMDBSystemInit
Description
Privileges
Synopsis
Return values
ARPropList
*propList,
ARStatusList
*status)
propList
A list of properties that need to be initialized.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBSynchMetaData
Description
Privileges
Synopsis
Creates AR System forms from the data model definitions that hold instance data,
and workflow, which enforces class hierarchy and data integrity.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBSynchMetaData(
Input
arguments
ARControlStruct
*control,
ARNameType
pendingId,
CMDBClassNameIdList
*classNameIdList,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
pendingId
The ID of the object to be synchronized with the system.
121
Return values
classNameIDList
The list of classes that are successfully synchronized with the system.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetServerPort
Description
Privileges
Synopsis
Input
arguments
Return values
ARControlStruct
*control,
int
*tcpPort,
int
*rpcPort,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
tcpPort
Retrieves the CMDB server TCP port information.
rpcPort
Retrieves the CMDB server RPC port information.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
122
Functions
CMDBSetServerPort
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
int
*tcpPort,
int
*rpcPort,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
tcpPort
The TCP port number that your program will use to communicate with the
AR System server. If you do not specify this parameter or provide 0 for the port
number, your program will use the port number supplied by the portmapper. This
parameter is overridden by the ARTCPPORT environment variable.
rpcPort
The RPC port number for the CMDB server. Specify 390697 to use the admin
server. The default RPC port number is set to 390696.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
123
CMDBTermination
Description
Privileges
Synopsis
Input
arguments
Return values
ARControlStruct
*control,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
124
Functions
CMDBGetCMDBUIComponents
Description
Privileges
Synopsis
Input
arguments
*control,
CMDBUIComponentInfo
*inputInfo,
ARNameType
instanceId,
CMDBUIComponentResultList
*outputInfo,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, locale, and server subclasses
are required.
inputInfo
The qualification for the user interface component. You can specify information
such as locale, classId, and tags to get the required UI component data. If there are
no qualifications specified, all existing UI components will be returned.
instanceId
The unique identifier used to get component information for a specific instance.
Return Values
outputInfo
The CMDBUIComponents result set for the specified qualifications.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
125
CMDBRunQualificationForCI
Description
Privileges
Synopsis
Input
arguments
*control,
CMDBQualifierStruct
*qualifier,
CMDBAttributeValueList
*attValueList,
ARBoolean*
passed,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, locale, and server subclasses are
required.
qualifier
A query that determines the set of CIs to retrieve. The qualification can include one
or more subclasses and any combination of conditional, relational, and arithmetic
operations.
attValueList
The list of attributes to validate.
Return Values
passed
A Boolean value that specifies whether the qualification passed.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
126
Functions
CMDBExpandParametersForCI
Description
Privileges
Synopsis
Input
arguments
*control,
char
*paramString,
CMDBAttributeValueList
*attValueList,
char
**expandedStr,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, locale, and server subclasses
are required.
paramString
The string that contains the unexpanded parameters.
attValueList
The list of attribute values that will be used to expand the parameters.
Return Values
expandedStr
The string that contains the expanded parameters.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
127
CMDBExport
Description
Privileges
Synopsis
Exports the specified class definitions from the specified server. This function is
deprecated in the 2.0 release of the BMC Atrium CMDB.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBExport(
Input
arguments
ARControlStruct
*control,
CMDBExportItemList
*exportItemList,
unsigned int
exportFormat,
char
*directoryPath,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
exportItemList
The list of items to export.
exportFormat
The format of the export. The default export format is set to
CMDB_EXPORT_FORMAT_XML.
directoryPath
The directory in which the exported file is to be stored.
128
Functions
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBExportDef
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBExportItemList
*exportItemList,
char
*exportBuf,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
exportItemList
A list of zero or more classes or attributes to export.
Return values
exportBuf
The exported buffer which contains the class definitions in XML format.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
129
CMDBExportData
Description
Privileges
Synopsis
Input
arguments
*control,
ARQualifierStruct
*qualifier,
ARNameList
*attributeGetList,
CMDBSortList
*sortList,
unsigned int
firstRetrieve,
unsigned int
maxRetrieve,
char
*exportBuf,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
qualifier
A query that determines the set of classes or attributes to retrieve. The qualification
can include one or more subclasses and any combination of conditional, relational,
and arithmetic operations.
attributeGetList
The list of attributes names to retrieve.
sortList
A list of zero or more fields that identifies the sort order for the exported data.
Specify a NULL value for this parameter to use no specific sort order.
firstRetrieve
The first instance to retrieve. A value of 0
(CMDB_START_WITH_FIRST_INSTANCE)represents the first entry and is the default
value if no value is set.
maxRetrieve
The maximum number of instances to retrieve. Use this parameter to limit the
instances returned in the query if the qualification does not sufficiently narrow the
list. Specify 0 (CMDB_NO_MAX_LIST_RETRIEVE) to assign no maximum instances.
130
Functions
Return values
exportBuf
The exported buffer, which contains the class data in an XML format.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBImport
Description
Privileges
Synopsis
Imports the specified class definitions to the specified server. Use this function to
copy structure definitions from one server to another. This function is deprecated
in the 2.0 release of the BMC Atrium CMDB.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBImport(
Input
arguments
ARControlStruct
*control,
CMDBImportItemList
*importItemList,
char
*directoryPath,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
importItemList
A list of zero or more items to import.
directoryPath
The directory where the contents of the exported file are available for importing.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
131
CMDBImportDef
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBXMLImportItemList
*importItemList,
unsigned int
importOption,
char
*importBuf,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
importItemList
A list of zero or more items to import. Specify NULL for this parameter to import all
definitions in the import buffer.
importOption
A value indicating whether to replace class definitions being imported if they
already exist. If an import item already exists, the function generates an error.
1:
CMDB_DEF_IMPORT_OPT_CREATE.
2:
CMDB_DEF_IMPORT_OPT_OVERWRITE.
importBuf
The import buffer that contains the class definitions to import in XML format.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
132
Functions
CMDBImportData
Description
Privileges
Synopsis
Input
arguments
*control,
unsigned int
importOption,
char
*importBuf,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
importOption
A value indicating the options available for handling duplicates found during the
importing of instance data. These options are mutually exclusive.
1:
Generate an error
(CMDB_DATA_IMPORT_OPT_ERROR_FOR_DUP).
2:
(CMDB_DATA_IMPORT_OPT_NEWID_FOR_DUP).
4: Create a new instance ID for all the imported instances, including those
instances that are not duplicates.
(CMDB_DATA_IMPORT_OPT_NEWID_FOR_ALL).
importBuf
The import buffer, which contains the class data to import in XML format.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
133
Utility functions
The utility functions enable you to use CMDB utilities such as export, import, and
generate globally unique identifiers (GUIDs). The Class Manager includes the
following utility functions:
CMDBCreateGuid
Description
Privileges
Synopsis
Return values
ARGuid
guid,
ARStatusList
*status)
guid
The unique identifier (system-generated).
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetVersions
Description
Privileges
Synopsis
Retrieves the version information for any BMC Atrium CMDB component that is
installed.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
int CMDBGetVersions(
134
ARControlStruct
*control,
ARNameList
*appIdList
ARBooleanList
*existList
CMDBVersionInfoList
*versionInfoList
ARStatusList
*status)
Functions
Input
arguments
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
appIdList
A list of application IDs for which the version information is required. Specify a
NULL value in this argument to get version information of all the existing
applications.
Return values
existList
A list of TRUE or FALSE values. Each value in this list denotes whether the
corresponding application IDs in the supplied appIdList exists.
versionInfoList
A list of BMC Atrium CMDB version structures.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
135
Free functions
The free functions release the memory allocated to a specified function. The Class
Manager includes the following free functions:
136
Functions
FreeCMDBVersionInfoList
Description
Privileges
Synopsis
Input
arguments
CMDBVersionInfoList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBVersionInfoList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBClassNameIdList
Description
Privileges
Synopsis
Input
arguments
CMDBClassNameIdList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBClassNameIdList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
137
FreeCMDBAttributeLimit
Description
Privileges
Synopsis
Input
arguments
CMDBAttributeLimit
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBAttributeLimit structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBAttributeLimitStruct
Description
Privileges
Synopsis
Input
arguments
CMDBAttributeLimit
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBAttributeLimitStruct structure to be released. The system
does not perform an operation if the structure contains zero items or if you specify
NULL for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
138
Functions
FreeCMDBAttributeLimitList
Description
Privileges
Synopsis
Input
arguments
CMDBAttributeLimitList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBAttributeLimitList structure to be released. The system does
not perform an operation if the structure contains zero items or if you specify NULL
for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBIndexList
Description
Privileges
Synopsis
Input
arguments
CMDBIndexList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBIndexList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
139
FreeCMDBExportItemStruct
Description
Privileges
Synopsis
Input
arguments
CMDBExportItemStruct
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBExportItemStruct structure to be released. The system does
not perform an operation if the structure contains zero items or if you specify NULL
for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBExportItemList
Description
Privileges
Synopsis
Input
arguments
CMDBExportItemList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBExportItemList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
140
Functions
FreeCMDBImportItemList
Description
Privileges
Synopsis
Input
arguments
CMDBImportItemList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBImportItemList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBAttributeGetStruct
Description
Privileges
Synopsis
Input
arguments
CMDBAttributeGetStruct
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBAttributeGetStruct structure that you want to free. The
system does not perform an operation if the structure is a list with zero items or if
you specify NULL for this parameter.
freeStruct
A flag indicating whether you need to free the top-level structure. If you allocated
memory for the top-level structure, specify 1 (TRUE) to free both the structure and
its contents. If you used a stack variable for the top-level structure, specify 0 (FALSE)
to free only the contents of the structure.
141
FreeCMDBGraphAdjacentStruct
Description
Privileges
Synopsis
Input
arguments
CMDBGraphAdjacentStruct
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBGraphAdjacentStruct structure to be released. The system
does not perform an operation if the structure contains zero items or if you specify
NULL for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBGraphAdjacentList
Description
Privileges
Synopsis
Input
arguments
CMDBGraphAdjacentList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBGraphAdjacentList structure to be released. The system does
not perform an operation if the structure contains zero items or if you specify NULL
for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
142
Functions
FreeCMDBGraphStruct
Description
Privileges
Synopsis
Input
arguments
CMDBGraphStruct
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBGraphStruct structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBGraphList
Description
Privileges
Synopsis
Input
arguments
CMDBGraphList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBGraphList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
143
FreeCMDBClassTypeInfo
Description
Privileges
Synopsis
Input
arguments
CMDBClassTypeInfo
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBClassTypeInfo structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBQualifierStruct
Description
Privileges
Synopsis
Input
arguments
CMDBQualifierStruct
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBQualifierStruct structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
144
Functions
FreeCMDBGetRelationList
Description
Privileges
Synopsis
Input
arguments
CMDBGetRelationList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBGetRelationList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBGetObjectList
Description
Privileges
Synopsis
Input
arguments
CMDBGetObjectList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBGetObjectList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
145
FreeCMDBAttributeValueList
Description
Privileges
Synopsis
Input
arguments
CMDBAttributeValueList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBAttributeValueList structure to be released. The system does
not perform an operation if the structure contains zero items or if you specify NULL
for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBAttributeValueListList
Description
Privileges
Synopsis
Input
arguments
CMDBAttributeValueListList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBAttributeValueListList structure to be released. The system
does not perform an operation if the structure contains zero items or if you specify
NULL for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
146
Functions
FreeCMDBSortList
Description
Privileges
Synopsis
Input
arguments
CMDBSortList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBSortList structure to be released. The system does not
perform an operation if the structure contains zero items or if you specify NULL for
this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
FreeCMDBREJobRunInfoList
Description
Privileges
Synopsis
Input
arguments
CMDBREJobRunInfoList
*value,
ARBoolean
freestruct)
value
A pointer to the CMDBREJobRunInfoList structure to be released. The system does
not perform an operation if the structure contains zero items or if you specify NULL
for this parameter.
freeStruct
A flag indicating if the top-level structure is to be released. The value TRUE indicates
to release the allocated memory for the top-level structure; FALSE indicates to free
only the contents of the structure.
147
CMDBStartJobRun
Description
Privileges
Synopsis
Starts an existing Reconciliation Engine job. Before starting a job, make sure the job
is defined and exists in an Active state. If no job for the specified job name exists,
or the job is not Active, the CMDBStartJobRun function returns an error. Only one
instance of the same job can be executed at a given time.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBStartJobRun(
Input
arguments
ARControlStruct
*control,
ARNameType
jobName,
CMDBClassQualList
*classQualList,
CMDBREDatasetList
*datasetList
ARNameType
jobRunId,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
jobName
The name of the reconciliation job.
classQualList
The list of class qualifications with which to substitute the Qualification group
defined for the job. In the qualification list, specify the class ID and the
qualification that applies to it, for example, BMC_ComputerSystem, {1,
('ReconciliationId' = NULL AND'CreateDate' > ($TIMESTAMP$ - 86400))}.
148
Functions
datasetList
The list of dataset pairs, where the first one represents the substitution dataset
(working dataset) and the second represents the dataset defined in the
Reconciliation Engine job (defined dataset), for example, 2,
{BMC.IMPORT.CONFIG, BMC.SAMPLE}.
Return values
jobRunId
A unique job identifier.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetJobRun
Description
Privileges
Synopsis
Gets information about the currently running reconciliation job and retrieves a job
log. For information about interpreting job run logs and job run information, see
the section Viewing job status, results, and history in the Installation and
Configuration Guide.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetJobRun(
Input
arguments
ARControlStruct
*control,
ARNameType
jobRunId,
ARREJobRunInfoStruct
*jobRunInfo,
char
**jobRunLog
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
jobRunId
A unique job identifier.
Return values
jobRunInfo
The job run information to retrieve.
jobRunLog
The job run log to retrieve.
149
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBGetListJobRun
Description
Privileges
Synopsis
Get a list of running Reconciliation Engine jobs. The job list will be retrieved based
on the qualification passed to the function.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetListJobRun(
Input
arguments
ARControlStruct
*control,
CMDBQualifierStruct
*jobQualifier,
ARREJobRunInfoList
*jobRunInfoList,
unsigned int
*numMatches,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
jobQualifier
A query that determines the set of entries to retrieve. The qualification can include
one or more subclasses and any combination of conditional, relational, and
arithmetic operations. The following qualifiers are currently supported:
Run Status*, Run Start Time, Run End Time, Job Instance ID*, Job Run ID,
Submitter.
Return values
and
jobRunInfoList
The list of running jobs that match the qualification criteria.
numMatches
The total number of jobs that match the qualification criteria.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
150
Functions
CMDBCancelJobRun
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
ARNameType
jobRunId,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
jobRunId
A unique job identifier.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
151
Federation functions
The federation functions manipulate federated data for an instance. The C API
functions for federation include:
CMDBGetRelatedFederatedInContext
Description
Privileges
Synopsis
Input
arguments
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
ARNameType
instanceId,
ARNameList
*attributeGetList,
ARNameList
*instanceIdList,
CMDBAttributeValueListList
*attrValueListList,
ARStatusList
*status
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The class name of the specified instance for which federated instances are to be
retrieved.
datasetId
The dataset ID of the instance to retrieve.
instanceId
The instance ID of the specific instance for which federated instances are to be
retrieved.
attributeGetList
The list of attribute names to retrieve.
152
Functions
Return values
instanceIdList
The list of instance GUIDs.
attrValueListList
The list of attribute value list.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
CMDBActivateFederatedInContext
Description
Privileges
Synopsis
*control,
CMDBClassNameId
*classNameId,
ARNameType
datasetId,
ARNameType
instanceId,
ARNameType
federatedInstanceId,
unsigned int
activateOption,
CMDBFederatedActivateInfo
*federatedInfo,
ARStatusList
*status
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The class name of the specified CI for which the federated instance is to be
expanded or launched.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified.
instanceId
The instance ID of the specified instance for which the federated instance is to be
expanded or launched.
Chapter 5 C API functions and data structures
153
federatedInstanceId
The instance ID of the federated instance that is to be expanded or launched.
activateOption
The mask number that indicates if the federated instance is to be launched and
expanded.
CMDB_FEDERATION_ACTIVATION_NONE 0:
Activate none.
CMDB_FEDERATION_ACTIVATION_EXPAND 1 << 0:
federatedInfo
The expanded federated instance information. This parameter is returned only if
you specify a value of 1in the activateOption parameter.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
154
Functions
Audit functions
The audit functions retrieve audit data for a class. The C API functions for audit
include:
CMDBGetCopyAuditData
Description
Privileges
Synopsis
Retrieves a copy of the specified CI instance if the attribute data for the instance is
modified. The audit option must be set for the attributes characteristic to get the
audit data.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetCopyAuditData(
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
instanceId,
ARTimestamp
auditTimestamp,
CMDBQualifierStruct
*qualifier,
ARNameList
*attributeGetList,
CMDBSortList
*sortList,
unsigned int
firstRetrieve,
unsigned int
maxRetrieve,
CMDBAuditValueListList
*auditValueListList,
unsigned int
*numMatches,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The class name (class name and namespace combination) of the specified CI
instance for which a copy of the audit data is to be retrieved.
instanceId
The instance ID of the specified CI instance for which a copy of the audit data is to
be retrieved.
155
auditTimestamp
The data and time information for the instance. The CI instances with the data and
time greater than or equal to the auditTimestamp will be retrieved. If
auditTimestamp is 0, then all the audit data is retrieved.
qualifier
A query that determines the set of CI instances to retrieve. The qualification can
include one or more attributes and any combination of conditional, relational, and
arithmetic (numeric data types only) operations.
attributeGetList
A list of attribute names for which the audit data is to be retrieved.
sortList
The sort order for the attributes.
firstRetrieve
The first instance to retrieve for the qualification. CMDB_START_WITH_FIRST_ENTRY
represents the first entry and is the default value if the value is not set.
maxRetrieve
The maximum number of entries to retrieve for the qualification. Use this
parameter to limit the amount of data returned if the query does not narrow the list.
Specify CMDB_NO_MAX_LIST_RETRIEVE to assign no maximum.
Return values
auditValueListList
The list of values for the specified attributes. If the audit option at the CI class-level
is disabled, an error is returned.
numMatches
The number of CI instance entries that matched the specified qualification.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
156
Functions
CMDBGetLogAuditData
Description
Privileges
Synopsis
Retrieves the audit log for the specified CI instance. For you to retrieve the audit
log, the AuditLog option must be set at the class-level.
CMDB Administrator
#include "ar.h"
#include "arextern.h"
#include "cmdb.h"
int CMDBGetLogAuditData(
ARControlStruct
*control,
CMDBClassNameId
*classNameId,
ARNameType
instanceId,
ARTextString
*auditLog,
ARStatusList
*status)
control
The control record for the operation. It contains information about the user
requesting the operation, where that operation is to be performed, and which
session is used to perform it. The user, sessionId, and server subclasses are
required.
classNameId
The class name (class name and namespace combination) of the specified CI
instance for which the audit log is to be retrieved.
instanceId
The instance ID of the specified CI instance for which the audit log is to be
retrieved.
Return values
auditLog
The audit log information for the specified instance.
status
A list of zero or more notes, warnings, or errors generated from a call of this
function.
157
Data structures
The C API data structures are categorized by function types, such as class functions
and attribute functions. The data structures categories include Class, Attributes,
General purpose, Graph Query, Export and Import, and Reconciliation Engine
structures.
Class structures
Class structures are data structures for CI and relationship definitions (data
model). The class data structures include:
CMDBClassTypeInfo
The CMDBClassTypeInfo structure is used to hold the class type information.
typedef struct CMDBClassTypeInfo
{
unsigned int
classType;
union
{
CMDBClassRelationship
relationshipInfo;
} u;
} CMDBClassTypeInfo;
relationshipInfo
158
Data structures
CMDBClassRelationship
The CMDBClassRelationship structure is used to hold the relationship information
of the CI classes.
typedef struct CMDBClassRelationship
{
CMDBClassNameID
relClassNames[2];
ARNameType
roleNames[2];
unsigned int
cardinality;
ARBoolean
isRole2WeakReference;
CMDBWeakPropagatedAttrsList
weakPropagatedAttrsList;
ARBoolean
cascadeDelete;
} CMDBClassRelationship;
roleNames[2]
The role names for the two classes that are a part of the
relationship.
cardinality
isRole2WeakReference
159
weakPropagatedAttrsList
cascadeDelete
to-many relationships.
CMDBIndexList
The CMDBIndexList structure is used to hold index information for the class.
typedef struct CMDBIndexList
{
unsigned int
numItems;
CMDBIndexStruct *indexList;
} CMDBIndexList;
indexList
CMDBIndexStruct
The CMDBIndexStruct structure is used to hold the attributes to index.
typedef struct CMDBIndexStruct
{
unsigned int
numAttributes;
ARNameType
attributeName[AR_MAX_INDEX_subclasses];
ARBoolean
unique;
ARBoolean
isPrimaryKey;
ARNameType
indexName;
} CMDBIndexStruct;
attributeName
unique
160
Data structures
isPrimaryKey
indexName
Attribute structures
Attribute structures are data structures for defining attributes. The attribute data
structures include:
CMDBAttributeGetStruct
The CMDBAttributeGetStruct structure is used to hold the attributes to retrieve.
typedef struct CMDBAttributeGetStruct
{
unsigned int
type;
union
{
ARNameList attributeNameList;
} u;
} CMDBAttributeGetStruct;
attributeNameList
161
CMDBAttributeLimitList
The CMDBAttributeLimitList structure is used to hold a list of data limit definitions
for attributes.
typedef struct CMDBAttributeLimitList
{
unsigned int
numItems;
CMDBAttributeLimit
*limitList;
} CMDBAttributeLimitList;
limitList
The list of attribute limit items that hold the limit definitions
for the attribute.
CMDBAttributeLimit
The CMDBAttributeLimit structure is used to hold the data limit definitions for an
attribute list of any data type.
typedef struct CMDBAttributeLimit
{
unsigned int dataType;
union
{
struct
{
int
rangeLow;
int
rangeHigh;
} integerLimits;
struct
{
int
maxLength;
char
*format;
unsigned int
menuStyle;
ARNameType
charMenu;
char
*pattern;
unsigned int
qbeMatchOperation;
} charLimits;
struct
{
double
rangeLow;
double
rangeHigh;
int
precision;
} realLimits;
struct
{
char
*rangeLow;
char
*rangeHigh;
int
precision;
} decimalLimits;
struct
{
int
minDate;
int
maxDate;
162
Data structures
} dateLimits;
struct
{
unsigned int listStyle;
union
{
ARNameList
regularList;
AREnumItemList
customList;
} u;
} enumLimits;
struct
{
char
*rangeLow;
char
*rangeHigh;
int
precision;
ARCurrencyDetailList
functionalCurrencies;
ARCurrencyDetailList
allowableCurrencies;
} currencyLimits;
struct
{
unsigned long
maxSize;
ARNameType
attachmentPoolName;
} attachLimits;
} u;
}CMDBAttributeLimit;
CMDB_ATTR_DATA_TYPE_NULL
CMDB_ATTR_DATA_TYPE_KEYWORD
CMDB_ATTR_DATA_TYPE_INTEGER
CMDB_ATTR_DATA_TYPE_REAL
CMDB_ATTR_DATA_TYPE_CHAR
CMDB_ATTR_DATA_TYPE_DIARY
CMDB_ATTR_DATA_TYPE_ENUM
163
CMDB_ATTR_DATA_TYPE_TIME
10
CMDB_ATTR_DATA_TYPE_DECIMAL
11
CMDB_ATTR_DATA_TYPE_ATTACH
An attachment attribute.
12
CMDB_ATTR_DATA_TYPE_CURRENCY
A currency attribute.
13
CMDB_ATTR_DATA_TYPE_DATE
14
CMDB_ATTR_DATA_TYPE_TIME_OF_DAY
37
CMDB_ATTR_DATA_TYPE_ATTACH_POOL
The low range of the custom characteristic for the integer data type.
rangeHigh
The high range of the custom characteristic for the integer data type.
format
Used for character list data, specified as L<n>, where n is the number
of items in the list. L4, for example, indicates a list of a maximum of 4
items, with each item separated by a semicolon (;). NULL indicates a
list is not used.
164
rangelow
The low range of the custom characteristic for the real data type.
rangeHigh
The high range of the custom characteristic for the real data type.
precision
Data structures
The low range of the custom characteristic for the decimal data type.
rangeHigh
The high range of the custom characteristic for the decimal data type.
precision
maxDate
A name list of possible selection values for the enum data type.
rangeHigh
precision
functionalCurrencies
allowableCurrencies
attachmentPoolName
165
CMDBAttributeNameId
The CMDBAttributeNameId structure is used to hold the namespace name and the
class name information for a class.
typedef struct CMDBAttributeNameId
{
ARNameType
namespaceName;
ARNameType
className;
ARNameType
attributeName;
} CMDBAttributeNameId;
className
attributeName
CMDBAttributeValueList
The CMDBAttributeValueList structure holds a list of values for an attribute.
typedef struct CMDBAttributeValueList
{
unsigned int
numItems;
CMDBAttributeValueStruct *attributeValueList;
} CMDBAttributeValueList;
attributeValueList
CMDBAttributeValueListList
The CMDBAttributeValueListList structure holds a list of values for an attributes
list.
typedef struct CMDBAttributeValueListList
{
unsigned int
numItems;
CMDBAttributeValueList *attributeValueListList;
} CMDBAttributeValueListList;
166
numItems
attributeValueListList
Data structures
CMDBAttributeValueStruct
The CMDBAttributeValueStruct structure is used to hold values for attributes.
typedef struct CMDBAttributeValueStruct
{
ARNameType
attributeName;
ARValueStruct
attributeValue;
} CMDBAttributeValueStruct;
attributeValue
CMDBWeakPropagatedAttrs
The CMDBWeakPropagatedAttrs structure is used to hold a list of source and target
attributes to use for attribute value propagation when isRole2WeakReference is
TRUE.
The specified source and target attributes must already exist on the role one and
role two classes. This list describes a mapping of which attribute values from the
role one class will be propagated to the role two class.
typedef struct CMDBWeakPropagatedAttrs
{
ARNameType
sourceAttributeName;
ARNameType
targetAttributeName;
} CMDBWeakPropagatedAttrs;
targetAttributeName
CMDBWeakPropagatedAttrsList
The CMDBWeakPropagatedAttrsList structure is used to hold a list of
CMDBWeakPropagatedAttrs structures.
typedef struct CMDBWeakPropagatedAttrsList
{
unsigned int
numItems;
CMDBWeakPropagatedAttrs
*attrsList;
} CMDBWeakPropagatedAttrsList;
attrsList
167
CMDBSortList
The CMDBSortList structure is used to hold a list of attributes to sort.
typedef struct CMDBSortList
{
unsigned int
numItems;
CMDBSortStruct
*sortList;
} CMDBSortList;
sortList
CMDBSortStruct
The CMDBSortStruct structure is used to hold the attribute to sort.
typedef struct CMDBSortStruct
{
ARNameType
attributeName;
unsigned int
sortOrder;
} CMDBSortStruct;
sortOrder
168
Data structures
Instance structures
Instance structures are data structures for instance data. The instance data
structures include:
CMDBClassNameId
The CMDBClassNameId structure is used to hold the namespace name and the class
name information for a class.
typedef struct CMDBClassNameId
{
ARNameType
namespaceName;
ARNameType
className;
} CMDBClassNameId;
className
CMDBClassNameIdList
The CMDBClassNameIdList structure is used to hold a list of CMDBClassNameId
structures.
typedef struct CMDBClassNameIdList
{
unsigned int
numItems;
CMDBClassNameId *classNameIdList;
} CMDBClassNameIdList;
classNameIdList
169
CMDBQualifierStruct
The CMDBQualifierStruct structure is used to hold the qualifier string based on the
qualifier type that is provided.
typedef struct CMDBQualifierStruct
{
unsigned int
qualifierType;
union
{
char
*qualifierString;
ARQualifierStruct
qualifierStruct;
} u;
} CMDBQualifierStruct;
170
qualifierString
qualifierStruct
Data structures
CMDBVersionInfo
The CMDBVersionInfo structure is used to hold version information for the BMC
Atrium CMDB components.
typedef struct CMDBVersionInfo
{
ARNameType
applicationId;
ARNameType
applicationName;
unsigned int
majorVer;
unsigned int
minorVer;
unsigned int
maintenanceVer;
unsigned int
patchNum;
} CMDBVersionInfo;
applicationName
majorVer
minorVer
maintenanceVer
patchNum
CMDBVersionInfoList
The CMDBVersionInfoList structure is used to hold a list of version information
elements for the CMDB component.
typedef struct CMDBVersionInfoList
{
unsigned int
numItems;
CMDBVersionInfo *versionInfoList;
} CMDBVersionInfoList;
versionInfoList
171
CMDBItemTypeClass
The CMDBItemTypeClass data structure is used to hold the class name information.
typedef struct CMDBItemTypeClass
{
CMDBClassNameId classNameId;
}CMDBItemTypeClass;
172
Data structures
CMDBItemTypeAttribute
The CMDBItemTypeAttribute data structure is used to hold a list of attribute
information.
typedef struct CMDBItemTypeAttribute
{
CMDBClassNameId classNameId;
ARNameList
attribNameList;
}CMDBItemTypeAttribute;
attributeNameList
CMDBExportItem
The CMDBExportItem data structure is used to hold the items to export for the
specified item type. This data structure is deprecated in the 2.0 release of the BMC
Atrium CMDB.
typedef CMDBExportItem
{
unsigned int itemType;
union
{
CMDBItemTypeClass
CMDBItemTypeAttribute
}
}CMDBExportItem;
classItem;
attributeItem;
(CMDB_ITEM_TYPE_ATTRIBUTE).
classItem
attributeItem
173
CMDBExportItemList
The CMDBExportItemList data structure is used to hold a list of
CMDBExportItemStruct structures. This data structure is deprecated in the 2.0
release of the BMC Atrium CMDB.
typedef struct CMDBExportItemList
{
unsigned int
numItems;
CMDBExportItemStruct
*exportItemList;
} CMDBExportItemList;
exportItemList
CMDBXMLExportItemList
The CMDBXMLExportItemList data structure is used to hold a list of items to export.
typedef struct CMDBXMLExportItemList
unsigned int
CMDBXMLExportItemStruct
}CMDBXMLExportItemList;
numItems;
*exportItemList;
exportItemList
CMDBExportItemStruct
The CMDBExportItemStruct data structure is used to hold a single item to export.
This data structure is deprecated in the 2.0 release of the BMC Atrium CMDB.
typedef struct CMDBExportItemStruct
{
unsigned int
itemType;
CMDBClassNameId
classNameId;
union {
char
*qualifier;
unsigned long
exportOption;
} u;} CMDBExportItemStruct;
classNameId
174
The namespace name and the class name of the class that
contains the items to export.
Data structures
qualifier
exportOption
CMDBImportItem
The CMDBImportItem data structure is used to hold the items to import for the
specified item type. This data structure is deprecated in the 2.0 release of the BMC
Atrium CMDB.
typedef CMDBImportItem
{
unsigned int itemType;
union
{
CMDBItemTypeClass
CMDBItemTypeAttribute
}
}CMDBImportItem;
classItem;
attributeItem;
(CMDB_ITEM_TYPE_ATTRIBUTE).
classItem
attributeItem
175
CMDBImportItemList
The CMDBImportItemList data structure is used to hold a list of items to import. This
data structure is deprecated in the 2.0 release of the BMC Atrium CMDB.
typedef struct CMDBImportItemList
{
unsigned int
numItems;
CMDBImportItemStruct
*importItemList;
} CMDBImportItemList;
importItemList
CMDBXMLImportItemList
The CMDBXMLImportItemList data structure is used to hold a list of XML items to
import.
typedef struct CMDBXMLImportItemList
unsigned int
numItems;
CMDBXMLImportItemStruct *importItemList;
}CMDBXMLImportItemList;
exportItemList
CMDBImportItemStruct
The CMDBImportItemStruct data structure is used to hold the items to import. This
data structure is deprecated in the 2.0 release of the BMC Atrium CMDB.
typedef struct CMDBImportItemStruct
{
unsigned int
itemType;
CMDBClassNameId
classNameId;
unsigned long
importOption;
} CMDBImportItemStruct;
classNameId
176
The namespace name and the class name of the class that
contains the items to import.
Data structures
importOption
NOTE
This item is applicable only if
CMDB_ITEM_TYPE_META_DATA is set.
177
CMDBGetObjectList
The CMDBGetObjectList data structure is used to hold a list of CI instances.
typedef struct CMDBGetObjectList
{
unsigned int
numItems;
CMDBGetObjectStruct
*objectList;
} CMDBGetObjectList;
objectList
CMDBGetObjectStruct
The CMDBGetObjectStruct data structure is used to hold a CI instance.
typedef struct CMDBGetObjectStruct
{
CMDBClassNameId
classNameId;
ARNameType
instanceId;
CMDBAttributeValueList attributeValueList;
} CMDBGetObjectStruct;
178
classNameId
instanceId
attributeValueList
Data structures
CMDBGetRelationList
The CMDBGetRelationList data structure is used to hold a list of relationships.
typedef struct CMDBGetRelationList
{
unsigned int
numItems;
CMDBGetRelationStruct
*relationList;
} CMDBGetRelationList;
relationList
CMDBGetRelationStruct
The CMDBGetRelationStruct data structure is used to hold a single relationship.
typedef struct CMDBGetRelationStruct
{
CMDBClassNameId
classNameId;
ARNameType
instanceId;
ARNameType
roleNames[2];
CMDBClassNameId
relatedClassNames[2];
ARNameType
relatedClassIds[2];
ARNameType
relatedInstanceIds[2];
CMDBAttributeValueList attributeValueList;
} CMDBGetRelationStruct;
instanceId
roleNames[2]
The role names for the two classes that make up the
relationship.
relatedClassNames[2]
relatedClassIds[2]
The class IDs of the two classes that make up the relationship.
relatedInstanceIds[2]
attributeValueList
CMDBGraphAdjacentList
The CMDBGraphAdjacentList data structure is used to hold a list of adjacent nodes
in CMDBGraphAdjacentStruct.
typedef struct CMDBGraphAdjacentList
{
unsigned int
numItems;
CMDBGraphAdjacentStruct *adjacents;
} CMDBGraphAdjacentList;
179
adjacents
CMDBGraphAdjacentStruct
The CMDBGraphAdjacentStruct data structure is used to hold an adjacent node.
typedef struct CMDBGraphAdjacentStruct
{
CMDBClassNameId
relClassNameId;
CMDBQualifierStruct
relQual;
CMDBAttributeGetStruct relGetAttribute;
CMDBClassNameId
objClassNameId;
ARNameType
extensionId;
CMDBQualifierStruct
objQual;
CMDBAttributeGetStruct objGetAttribute;
} CMDBGraphAdjacentStruct;
relQual
relGetAttribute
objClassNameId
extensionId
objQual
objGetAttribute
CMDBGraphList
The CMDBGraphList data structure is used to define the query graph list in the
CMDBGraphQuery function.
typedef struct CMDBGraphList
{
unsigned int
numItems;
CMDBGraphStruct
*graph;
} CMDBGraphList;
180
numItems
graph
Data structures
CMDBGraphStruct
The CMDBGraphStruct data structure is used to hold each graph node in the query
graph.
typedef struct CMDBGraphStruct
{
CMDBClassNameId
classNameId;
ARNameType
extensionId;
CMDBGraphAdjacentList
adjacentList;
} CMDBGraphStruct;
extensionId
adjacentList
CMDBUIComponentInfo
The CMDBUIComponentInfo data structure is used to hold the UI components to
retrieve.
typedef struct CMDBUIComponentInfo
{
ARNameType
classId;
ARLocaleType
locale;
unsigned int
componentType;
char
*tag1;
char
*tag2;
char
*tag3;
char
*tag4;
char
*tag5;
char
*encodedQual;
} CMDBUIComponentInfo;
locale
181
componentType
(CMDB_COMPONENT_TYPE_LINE).
tag1
tag2
tag3
tag4
tag5
encodedQual
CMDBUIComponentResult
The CMDBUIComponentResult data structure is used to hold the component query
result.
typedef struct CMDBUIComponentResult
{
ARNameType
instanceId;
CMDBUIComponentIno
componentInfo;
char
*dataString;
ARAttachStruct
*attachVal;
} CMDBUIComponentResult;
182
instanceId
componentInfo
dataString
attachVal
Data structures
CMDBUIComponentResultList
The CMDBUIComponentResultList data structure is used to hold the component
query result.
typedef struct CMDBUIComponentResultList
{
unsigned int
numItems;
CMDBUIComponentResult *componentResList;
} CMDBUIComponentResultList;
componentResultList
CMDBREJobRunInfoList
The CMDBREJobRunInfoList data structure is used to hold a list of Reconciliation
Engine jobs that are currently running.
typedef struct CMDBREJobRunInfoList
{
unsigned int
numItems;
CMDBREJobRunInfo
*jobRunList;
} CMDBREJobRunInfoList;
jobRunList
183
CMDBREJobRunInfo
The CMDBREJobRunInfo data structure is used to hold information about a currently
running Reconciliation Engine job.
typedef struct CMDBREJobRunInfo
{
ARNameType
jobRunId;
ARNameType
jobInstanceId;
ARNameType
jobName;
ARTimestamp
startTime;
ARTimestamp
endTime;
unsigned int
jobState;
} CMDBREJobRunInfo;
jobInstanceId
jobName
startTime
endTime
jobStatus
CMDBREClassQualStruct
The CMDBREClassQualStruct data structure is used to hold information about the
class qualification.
typedef struct CMDREBClassQualStruct
{
ARNameType
classId;
CMDBQualifierStruct
*qual;
}CMDBREClassQualStruct;
184
classId
qual
Data structures
CMDBREClassQualList
The CMDBREClassQualList data structure is used to hold a list of
CMDBREClassQualStruct structures.
typedef struct CMDBREClassQuaList
{
unsigned int
numItems;
CMDBREClassQualStruct
*classQualList;
}CMDBREClassQuaList;
classQualList
CMDBREDatasetPair
The CMDBREDatasetPair data structure is used to hold information about the
datasets to use in the reconciliation job.
typedef Struct CMDBREDatasetPair
{
ARNameType workingDataset;
ARNameType dataset;
}CMDBREDatasetPair;
dataset
CMDBREDatasetList
The CMDBREDatasetList data structure is used to hold a list of CMDBREDatasetPair
structures.
typedef Struct CMDBREDatasetList
{
Unsigned int
numItems;
CMDBREDatasetPair* datasetList;
}CMDBREDatasetList;
datasetList
185
Federation structures
Federation structures are data structures used in federation functions. The
federation structures include:
CMDBFederatedARInfo
The CMDBFederatedARInfo data structure is used to hold the AR System related
federated interface information to retrieve.
typedef struct CMDBFederatedARInfo
{
unsigned int
arAccessType;
ARNameType
server;
ARNameType
form;
ARNameType
view;
char
*qualifier;
char
*url;
} CMDBFederatedARInfo;
server
form
view
qualifier
url
CMDBFederatedActivateInfo
The CMDBFederatedActivateInfo data structure is used to hold the federated
instance data activation information to retrieve.
typedef struct CMDBFederatedActivateInfo
{
unsigned int actionType;
unsigned int accessType;
union
{
CMDBFederatedARInfo arInfo;
char
*accessString;
} u;
} CMDBFederatedActivateInfo;
186
Data structures
accessType
interface
(CMDB_FEDERATED_ACCESS_TYPE_MANUAL).
5Access a data store for the federated interface
(CMDB_FEDERATED_ACCESS_TYPE_DATA_STORE).
arInfo
accessString
187
Audit structures
Audit structures are data structures used in audit functions. The audit structures
include:
CMDBAuditValueList
The CMDBAuditValueList data structure is used to hold a list of audit values to
retrieve.
typedef struct CMDBAuditValueList
{
unsigned int
operation;
ARAccessNameType
changedBy;
ARTimestamp
auditTimestamp;
ARNameList
attrNameChangeList;
CMDBAuditValueList *attrAuditValueList;
} CMDBAuditValueList;
188
changedBy
auditTimestamp
attrNameChangeList
attrAuditValueList
Data structures
CMDBAuditValueListList
The CMDBAuditValueListList data structure is used to hold a list of audit values list
to retrieve.
typedef struct CMDBAuditValueListList
{
unsigned int
numItems;
CMDBAuditValueList *attrAuditValueList;
} CMDBAuditValueListList;
attrAuditValueList
CMDBAuditInfoStruct
The CMDBAuditInfoStruct data structure is used to hold the audit information to set
audit options for the class.
typedef struct CMDBAuditInfoStruct
{
unsigned int
type;
CMDBQualifierStruct
qual;
union {
ARNameType
logForm;
} u;
} CMDBAuditInfoStruct;
logForm
The name of the AR System form for the Log audit option.
189
190
Chapter
191
Operations
The web services operations are categorized by the type of functions these
operations perform. The operation categories include instance, data model,
reconciliation object, and session.
NOTE
In the web services API function descriptions, the usage of the term specified for a
given parameter denotes that the parameter is listed under the Synopsis heading
of the API function.
192
Operations
GetInstances
Description
Privileges
Synopsis
Input
arguments
Retrieves a list of instances. You can limit the retrieved instance result-set by
specifying a qualification.
CMDB Administrator
<wsdl:operation name="GetInstances" parameterOrder="inargs">
<wsdl:input message="tns:GetInstancesRequest"
name="GetInstancesRequest"/>
<wsdl:output message="tns:GetInstancesResponse"
name="GetInstancesResponse"/>
</wsdl:operation>
<wsdl:message name="GetInstancesRequest">
<wsdl:part element="tns:GetInstances" name="inargs"/>
</wsdl:message>
<wsdl:message name="GetInstancesResponse">
<wsdl:part element="tns:GetInstancesOutput" name="outargs"/>
</wsdl:message>
<element name="GetInstances">
<complexType>
<sequence>
<element name="loginInfo" type="impl:LoginInfo"/>
<element name="classNameId" type="impl:ClassNameId"/>
<element name="query" type="xsd:string"/>
<element name="attributes" type="impl:ArrayOf_String"/>
<element name="firstRetrieve" type="xsd:int"/>
<element name="maxRetrieve" type="xsd:int"/>
<element name="sortOrder" type="tns:SortOrderList"/>
<element name="aDatasetId" type="xsd:string"/>
<element name="aGetMask" type="tns:GetMask"/>
</sequence>
</complexType>
</element>
<element name="GetInstancesOutput">
<complexType>
<sequence>
<element name="instanceInfo" type="impl:InstanceInfoList"/>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class from which the instances are to be retrieved. It is a two-part structure that
contains the namespace and the class name.
query
A qualification that determines the set of instances to retrieve. The qualification
can include one or more attributes and any combination of conditional, relational,
and arithmetic operations.
Chapter 6 Web services API operations and data structures
193
attributes
A list of attribute names to retrieve.
firstRetrieve
The first instance to retrieve. CMDB_START_WITH_FIRST_ENTRY represents the first
entry and is the default value if the value is not set.
maxRetrieve
The maximum number of entries to retrieve. Use this parameter to limit the
amount of data returned if the query does not narrow the list. Specify
CMDB_NO_MAX_LIST_RETRIEVE to assign no maximum.
sortOrder
The sort order for the retrieved data.
aDatasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
aGetMask
The identifier for specifying the dataset type.
GET_MASK_NONE: Based on the datasetId being passed, instances are retrieved from
only.
Return values
instanceInfo
The list of instances that match the criteria, each with a list of attributes and values.
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
194
Operations
SetInstance
Description
Privileges
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class for which the instance is to be set. It is a two-part structure that contains
the namespace and the class name.
instanceId
The unique identifier for the instance.
aDatasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
195
attributes
A list of one or more name and value pairs (specified in any order) that identifies
the data for the new attribute. You must specify values for all required subclasses
that do not have defined defaults.
Values must be of the data type defined for the subclasses or have a data type of 0.
NULL values can be specified for optional attribute names only. An error is
generated if an attribute does not exist or the user specified in the loginInfo
parameter does not have the write permission for an attribute name.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
CreateInstance
Description
Privileges
Synopsis
Input
arguments
196
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
Operations
classNameId
The class for which the instance is to be created. It is a two-part structure that
contains the namespace and the class name.
aDatasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
attributes
A list of one or more name and value pairs (specified in any order) that identifies
the data for the new attribute. You must specify values for all required subclasses
that do not have defined defaults. Values must be of the data type defined for the
subclasses or have a data type of 0. NULL values can be specified for optional
attribute names only. An error is generated if an attribute does not exist or the user
specified in the loginInfo parameter does not have the write permission for an
attribute name.
Return values
instanceId
The unique identifier for the new attribute.
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
DeleteInstance
Description
Privileges
Synopsis
197
</element>
<element name="StatusOutput">
<complexType>
<sequence>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class from which the instance is to be deleted. It is a two-part structure that
contains the namespace and the class name.
instanceId
The unique identifier for the instance.
aDatasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
deleteOption
DERIVED_INSTANCE_FOUND:
instance is retrieved.
Allows you to delete the instance even when the instance
cannot be retrieved . Errors will be ignored for instances that do not exist.
UNCONDITIONALLY:
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
198
Operations
CreateRelationInstance
Description
Privileges
Synopsis
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class in which the relationship instance is to be created. It is a two-part
structure that contains the namespace and the class name.
199
role1Name
The role name of the parent instance.
instance1Id
The instance ID of the parent instance.
classId
The class ID of the parent instance.
role2Name
The role name of the child instance.
instance2Id
The instance ID of the child instance.
class2Id
The class name of the child instance.
aDatasetId
The ID of the dataset within which the CI classes exist.
attributes
The list of attributes values for the relationship class.
Return Values
instanceId
The instance ID of the relationship instance that is created.
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
200
Operations
GraphQuery
Description
Privileges
Synopsis
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
startClassNameId
The name of the starting node class in the CI graph.
201
startExtensionId
The extension ID of the starting node CI. This is required if the query graph
contains more than one instance of the same class and needs to distinguish one
from another. For example, if the starting node class is BMC:A and BMC:A appears
more than once in the query graph, you can designate one of them to have an
extension ID of 2 to distinguish it from the other one.
startInstanceId
The ID of the starting node in the CI graph.
numLevels
The number of levels to traverse the specified queryGraph. The value A-1 specifies
the graph query to traverse to the end of the graph.
direction
The direction in which the graph is to traverse.
IMPACT_NODE_RIGHT:
noMatchProceed
T (1):
When the node returned for a given relationship instance does not match the
criteria specified, proceed to the next relationship. Notice that, in this case, no
relationship information will be returned because the returned components might
not be connected, due to skipping the non-matching nodes.
F (0):
When the node returned for a given relationship instance does not match the
criteria specified, do not proceed any further.
onMatchProceed
T (1):
When the node returned for a given relationship instance matches the criteria
specified, proceed to the next relationship.
F (0):
When the node returned for a given relationship instance matches the criteria
specified, do not proceed any further.
graph
The details of the information indicating the path that needs to be queried to return
the desired CIs and relationships.
aGetMask
The identifier for specifying the dataset type.
202
Operations
GET_MASK_NONE: Based on the datasetId being passed, instances are retrieved from
only.
aDatasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
Return values
objects
List of one or more CI instances matching the specified criteria. The starting node
is not included.
relations
List of relationship instances matching the specified criteria that links the CIs
returned.
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
203
GetClass
Description
Privileges
Synopsis
204
Operations
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameID
The class which is to be retrieved. It is a two-part structure that contains the namespace
and the class name.
Return values
classInfo
Information about the class.
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
SetClass
Sets the properties for a specified class.
Privileges
Synopsis
Input
arguments
CMDB Administrator
<wsdl:operation name="SetClass" parameterOrder="inargs">
<wsdl:input message="tns:SetClassRequest" name="SetClassRequest"/>
<wsdl:output message="tns:SetClassResponse"
name="SetClassResponse"/>
</wsdl:operation>
<wsdl:message name="SetClassRequest">
<wsdl:part element="tns:SetClass" name="inargs"/>
</wsdl:message>
<wsdl:message name="SetClassResponse">
<wsdl:part element="tns:StatusOutput" name="outargs"/>
</wsdl:message>
<element name="SetClass">
<complexType>
<sequence>
<element name="loginInfo" type="impl:LoginInfo"/>
<element name="classNameId" type="impl:ClassNameId"/>
<element name="newClassNameId" type="impl:ClassNameId"/>
<element name="classInfo" type="impl:ClassInfoIn"/>
</sequence>
</complexType>
</element>
<element name="StatusOutput">
<complexType>
<sequence>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
205
classNameId
The class that is to be set. It is a two-part structure that contains the namespace and
the class name.
newclassNameId
The new name of the class.
classInfo
Information about the class.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call of this
operation.
CreateClass
Creates a class with core attributes.
Privileges
Synopsis
Input
arguments
206
CMDB Administrator
<wsdl:operation name="CreateClass" parameterOrder="inargs">
<wsdl:input message="tns:CreateClassRequest"
name="CreateClassRequest"/>
<wsdl:output message="tns:CreateClassResponse"
name="CreateClassResponse"/>
</wsdl:operation>
<wsdl:message name="CreateClassRequest">
<wsdl:part element="tns:CreateClass" name="inargs"/>
</wsdl:message>
<wsdl:message name="CreateClassResponse">
<wsdl:part element="tns:StatusOutput" name="outargs"/>
</wsdl:message>
<element name="CreateClass">
<complexType>
<sequence>
<element name="loginInfo" type="impl:LoginInfo"/>
<element name="classNameId" type="impl:ClassNameId"/>
<element name="superclassNameId" type="impl:ClassNameId"/>
<element name="classId" type="xsd:string"/>
<element name="classInfo" type="impl:ClassInfoIn"/>
</sequence>
</complexType>
</element>
<element name="StatusOutput">
<complexType>
<sequence>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
Operations
classNameId
The name of the class to create. It is a two-part structure that contains the
namespace and classname in the <namespace>:<classname> format. The name of the
class must be unique.
superClassNameId
The superclass of class being created. Specify NULL for this parameter if there is no
superclass.
classId
The unique identifier for the class. It can be provided by the user. If it is not
provided by the user, it will be automatically generated by the system.
classInfo
The information about the class, such as the type of class to create. The information
contained in this definition depends on the type of class you specify.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
ListClasses
Description
Privileges
Synopsis
Retrieves information about relationship classes for a specified class. The classes
that are retrieved will have the class that is specified in the relatedClass parameter
as part of the relationship.
CMDB Administrator
<wsdl:operation name="ListClasses">
<wsdlsoap:operation soapAction="ListClasses" style="document"/>
<wsdl:input name="ListClassesRequest">
<wsdlsoap:body parts="inargs" use="literal"/>
</wsdl:input>
<wsdl:output name="ListClassesResponse">
<wsdlsoap:body parts="outargs" use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:message name="ListClassesRequest">
<wsdl:part element="tns:ListClassesInput" name="inargs"/>
</wsdl:message>
<wsdl:message name="ListClassesResponse">
<wsdl:part element="tns:ListClassesOutput" name="outargs"/>
</wsdl:message>
<xsd:element name="ListClassesInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="loginInfo" type="tns:LoginInfo"/>
<xsd:element name="namespace" type="xsd:string"/>
<xsd:element name="relatedClass type="tns:ClassNameId"/>
<xsd:element name="superClass" type="tns:ClassNameId"/>
<xsd:element name="propInfo" type="tns:PropInfoList"/>
<xsd:element name="getHidden" type="xsd:boolean"/>
207
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ListClassesOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="classList" type="tns:ClassNameIdList"/>
<xsd:element name="status" type="tns:StatusList"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
namespace
The name of the namespace. Namespaces are a way of partitioning your data
model to create logical groups of classes. The Class Manager namespaces are
implemented using a prefix-based naming convention on classes.
relatedClass
Retrieves the relationship classes that have a class specified in this parameter as
part of the relationship.
superClass
The superclass of the class to retrieve. Retrieves the classes that are derived from
the superclass.
propInfo
The list property information of the class to retrieve.
getHidden
Retrieves the hidden classes.
Return values
classList
A list of class names that match the specified criteria.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
208
Operations
DeleteClass
Description
Privileges
Synopsis
Input
arguments
Deletes a specified class. Also deletes the associated attributes of the class.
CMDB Administrator
<wsdl:operation name="DeleteClass" parameterOrder="inargs">
<wsdl:input message="tns:DeleteClassRequest"
name="DeleteClassRequest"/>
<wsdl:output message="tns:DeleteClassResponse"
name="DeleteClassResponse"/>
</wsdl:operation>
<wsdl:message name="DeleteClassRequest">
<wsdl:part element="tns:DeleteClass" name="inargs"/>
</wsdl:message>
<wsdl:message name="DeleteClassResponse">
<wsdl:part element="tns:StatusOutput" name="outargs"/>
</wsdl:message>
<element name="DeleteClass">
<complexType>
<sequence>
<element name="loginInfo" type="impl:LoginInfo"/>
<element name="classNameId" type="impl:ClassNameId"/>
<element name="option" type="impl:ClassDeleteOption"/>
</sequence>
</complexType>
</element>
<element name="StatusOutput">
<complexType>
<sequence>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameID
The name of the class to delete.
option
A value indicating the action to take if the specified class contains instances, has
subclasses, or is a member of a relationship class.
OPTION_NONE: Delete the class only if the class contains no instances and has no
subclasses or dependent relationships.
OPTION_WITH_DATA: Delete the class only if the class has no subclasses or dependent
209
Return values
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
GetAttributes
Description
Privileges
Synopsis
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class for which the attributes are to be retrieved. It is a two-part structure that
contains the namespace and the classname.
attributeNames
The names of the attributes to retrieve.
Return values
attributeInfoList
The information about the list of attributes.
210
Operations
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
CreateAttribute
Description
Privileges
Synopsis
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The name of the class for which the attribute is to be created. It is a two-part
structure that contains the namespace and the classname.
attributeName
The name of the attribute to create. The name of all attributes must be unique
within the class.
211
attributeId
The ID of the attribute to create.
fieldId
The AR System field ID of the attribute to create. The IDs of all attributes must be
unique within the class. Specify 0 for this parameter if you want the system to
generate the ID.
attributeInfo
The value limits for the attribute and other properties specific to the attributes
type. See the CMDBsubclassesLimitStruct definition in cmdb.h to find the contained
structure that applies to the type of attribute you are creating. The limits and
properties you assign must be of the same data type as the attribute. Specify NULL
for this parameter if you do not want to change the attribute limits and properties.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call to this operation.
SetAttribute
Description
Privileges
Synopsis
212
Operations
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class for which the attribute is to be set. It is a two-part structure that contains
the namespace and the classname.
attributeName
The name of the attribute to set.
newAttributeName
The new name of the attribute.
attributeInfo
The value limits for the attribute and other properties specific to the attributes
type. See the CMDBsubclassesLimitStruct definition in cmdb.h to find the contained
structure that applies to the type of attribute you are setting. The limits and
properties you assign must be of the same data type as the attribute. Specify NULL
for this parameter if you do not want to change the attribute limits and properties.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
Delete Attribute
Description
Privileges
Synopsis
213
<element name="StatusOutput">
<complexType>
<sequence>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameID
The name of the class from which to delete the attribute.
attributeName
The name of the attribute to delete.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
214
Operations
ExecuteJobRun
Description
Privileges
Synopsis
Input
arguments
Starts a job.
CMDB Administrator
<wsdl:operation name="ExecuteJobRun" parameterOrder="inargs">
<wsdl:input message="tns:ExecuteJobRunRequest"
name="ExecuteJobRunRequest"/>
<wsdl:output message="tns:ExecuteJobRunResponse"
name="ExecuteJobRunResponse"/>
</wsdl:operation>
<wsdl:message name="ExecuteJobRunRequest">
<wsdl:part element="tns:ExecuteJobRun" name="inargs"/>
</wsdl:message>
<wsdl:message name="ExecuteJobRunResponse">
<wsdl:part element="tns:ExecuteJobRunOutput" name="outargs"/>
</wsdl:message>
<element name="ExecuteJobRun">
<complexType>
<sequence>
<element name="loginInfo" type="impl:LoginInfo"/>
<element name="jobName" type="xsd:string"/>
<xsd:element name="qualifierList"
type="tns:ClassQualifierList"/>
<xsd:element name="datasetList"
type="tns:DatasetPairList"/>
</sequence>
</complexType>
</element>
<element name="ExecuteJobRunOutput">
<complexType>
<sequence>
<element name="jobId" type="xsd:string"/>
<element name="status" type="impl:StatusList"/>
</sequence>
</complexType>
</element>
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
215
jobName
The name of the job to start.
qualifierList
The list of class qualifications.
datasetList
The list of Reconciliation Engine dataset pair.
Return values
jobId
The ID of the job.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
GetJobRun
Description
Privileges
Synopsis
216
Operations
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
jobId
The ID of the job.
Return values
jobRunInfo
The information about the currently running job.
jobLog
The log for the currently running job.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
GetListJobRun
Description
Privileges
Synopsis
217
Input
argument
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
qualifier
A query that determines the set of jobs to retrieve. The qualification can include
one or more subclasses and any combination of conditional, relational, and
arithmetic operations.
Return Values
jobRunInfo
The information about the currently running jobs.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
CancelJobRun
Description
Privileges
Synopsis
Input
arguments
218
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
Operations
jobId
The ID of the job.
Return values
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
Federation operations
The federation functions manipulate the federated data for an instance. The web
services functions for federation includes:
ActivateFederatedInContext
Description
Privileges
Synopsis
219
type="tns:FederatedActivateInfo"/>
<xsd:element name="status" type="tns:StatusList"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class name of the specified CI for which the federated instance is to be
expanded or launched.
aDatasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
instanceId
The instance ID of the specified instance for which the federated instance is to be
expanded or launched.
federatedInstanceId
The instance ID of the federated instance that is to be expanded or launched.
activateOption
The mask number that indicates if the federated instance is to be launched and
expanded.
ACTIVATION_NONE:
federatedActivateInfo
The expanded federated instance information. This parameter is returned only if
you specify a value of 1in the activateOption parameter.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
220
Operations
GetRelatedFederatedInContext
Description
Privileges
Synopsis
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class name of the specified instance for which federated instances are to be
retrieved.
instanceId
The Instance ID of the specific instance for which federated instances are to be
retrieved.
attributeNames
The list of attribute names to retrieve.
Chapter 6 Web services API operations and data structures
221
Return values
instanceIdList
The list of instance GUIDs.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
Audit operations
The audit functions manipulate the audit option for the classes and attributes. The
web services API for audit includes:
GetCopyAuditData
Description
Privileges
Synopsis
222
Retrieves a copy of the specified CI instance if the attribute data for the instance is
modified. The audit option must be set for the attributes characteristic to get the
audit data.
CMDB Administrator
<wsdl:operation name="GetCopyAuditData">
<wsdlsoap:operation soapAction="GetCopyAuditData"
style="document"/>
<wsdl:input name="GetCopyAuditDataRequest">
<wsdlsoap:body parts="inargs" use="literal"/>
</wsdl:input>
<wsdl:output name="GetCopyAuditDataResponse">
<wsdlsoap:body parts="outargs" use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:message name="GetCopyAuditDataRequest">
<wsdl:part element="tns:GetCopyAuditDataInput" name="inargs"/>
</wsdl:message>
<wsdl:message name="GetCopyAuditDataResponse">
<wsdl:part element="tns:GetCopyAuditDataOutput" name="outargs"/>
</wsdl:message>
<xsd:element name="GetCopyAuditDataInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="loginInfo" type="tns:LoginInfo"/>
<xsd:element name="classNameId" type="tns:ClassNameId"/>
<xsd:element name="instanceId" type="xsd:string"/>
<xsd:element name="datasetId" type="xsd:string"/>
<xsd:element name="query" type="xsd:string"/>
<xsd:element name="attributes"
type="tns:ArrayOf_String"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Operations
<xsd:element name="GetCopyAuditDataOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="auditValueListList"
type="tns:AuditValueListList"/>
<xsd:element name="status" type="tns:StatusList"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
classNameId
The class name (class name and namespace combination) of the specified CI
instance for which a copy of the audit data is to be retrieved.
instanceId
The instance ID of the specified CI instance for which a copy of the audit data is to
be retrieved.
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
query
A query that determines the set of CI instances to retrieve. The qualification can
include one or more attributes and any combination of conditional, relational, and
arithmetic (numeric data types only) operations.
attributes
A list of attribute names for which the audit data is to be retrieved.
Return values
auditValueListList
The list of values for the specified attributes. If the audit option at the CI class-level
is disabled then, an error is returned.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
223
GetUIComponents
Description
Privileges
Synopsis
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
componentInfo
The qualification for the user interface component. You can specify information
such as locale, classId, and tags to get the required UI component data. If there are
no qualifications specified, all existing UI components will be returned.
224
Operations
datasetId
The unique identifier for the dataset. The data in the return values are based on the
dataset ID specified in this parameter.
instanceId
The unique identifier used to get component information for a specific instance.
Return Values
uiComponentResultList
The CMDBUIComponents result set for the specified qualifications.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
Utility operations
The utility operations enable you to use CMDB utilities such as get version
information of the BMC Atrium CMDB application. The web services API includes
the following utility operations:
GetVersions
Description
Privileges
Synopsis
Retrieves the version information for any BMC Atrium CMDB component that is
installed.
CMDB Administrator
<wsdl:operation name="GetVersions" parameterOrder="inargs">
<wsdl:input message="tns:GetVersionsRequest"
name="GetVersionsRequest"/>
<wsdl:output message="tns:GetVersionsResponse"
name="GetVersionsResponse"/>
</wsdl:operation>
<wsdl:message name="GetVersionsRequest">
<wsdl:part element="tns:GetVersionsInput" name="inargs"/>
</wsdl:message>
<wsdl:message name="GetVersionsResponse">
<wsdl:part element="tns:GetVersionsOutput" name="outargs"/>
</wsdl:message>
<xsd:element name="GetVersionsInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="loginInfo" type="tns:LoginInfo"/>
<xsd:element name="appIdList"
type="tns:ArrayOf_String"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetVersionsOutput">
<xsd:complexType>
225
<xsd:sequence>
<xsd:element name="versionInfoList"
type="tns:VersionInfoList"/>
<xsd:element name="status" type="tns:StatusList"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Input
arguments
loginInfo
The login information for the operation, such as the user ID, password, and the
language to be used for the session. The userId is a required element.
appIdList
A list of application IDs for which the version information is required. Specify a
NULL value in this argument to get version information of all the existing
applications.
Return values
versionInfoList
A list of BMC Atrium CMDB version structures.
status
A list of zero or more notes, warnings, or errors generated from a call to this
operation.
226
Data structures
Data structures
The web services data structures are used as parameters for web services
operations. The data structure categories include Instance, Graph query, Class,
and Reconciliation Engine structures.
Instance structures
Instance structures are data structures for the instance data. Instance structures
include:
LoginInfo
The LoginInfo data structure is used to hold the login information for a user.
<complexType name="LoginInfo">
<sequence>
<element name="userId" type="xsd:string"/>
<element name="password" type="xsd:string"/>
<element name="lang" type="xsd:string"/>
</sequence>
</complexType>
password
lang
227
ClassNameIdList
The ClassNameIdList data structure is used to hold a list of ClassNameID structures.
<xsd:complexType name="ClassNameIdList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:ClassNameId"/>
</xsd:sequence>
</xsd:complexType>
ClassNameId
The ClassNameId data structure is used to hold a class.
<complexType name="ClassNameId">
<sequence>
<element name="namespaceName" type="xsd:string"/>
<element name="className" type="xsd:string"/>
</sequence>
</complexType>
className
ArrayOf_String
The ArrayOf_String data structure is used to hold a list of string values.
<complexType name="ArrayOf_String">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="xsd:string"/>
</sequence>
</complexType>
228
Data structures
SortOrderList
The SortOrderList data structure is used to hold a list of attributes on which to
sort.
<complexType name="SortOrderList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:SortOrder"/>
</sequence>
</complexType>
SortOrder
The SortOrder data structure is used to hold a list of attributes on which to sort
along with the sort type.
<xsd:complexType name="SortOrder">
<xsd:sequence>
<xsd:element name="attributeName" type="xsd:string"/>
<xsd:element name="sortOrder" type="tns:SortOrderType"/>
</xsd:sequence>
</xsd:complexType>
sortOder
of the list.
DESCENDINGThe attributes will be sorted in descending
order of the list.
InstanceInfoList
The InstanceInfoList data structure is used to hold a list of InstanceInfo
structures.
<complexType name="InstanceInfoList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:InstanceInfo"/>
</sequence>
</complexType>
229
InstanceInfo
The InstanceInfo data structure is used to hold instance values.
<xsd:complexType name="InstanceInfo">
<xsd:sequence>
<xsd:element name="instanceId" type="xsd:string"/>
<xsd:element name="instanceAttributes"
type="tns:AttributeValueList"/>
</xsd:sequence>
</xsd:complexType>
instanceAttributes
StatusList
The StatusList data structure is used to hold a list of status information for an
operation.
<complexType name="StatusList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:Status"/>
</sequence>
</complexType>
230
Data structures
Status
The Status data structure is used to hold the status information for an operation.
<xsd:complexType name="Status">
<xsd:sequence>
<xsd:element name="statusType" type="tns:StatusType"/>
<xsd:element name="messageNum" type="xsd:long"/>
<xsd:element name="messageText" type="xsd:string"/>
<xsd:element name="appendedText" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
informational messages.
WARNINGOperation successful, but some problems
encountered. Status contains one or more warning messages
and might also contain information messages.
ERROROperation failed. Status contains one or more error
messageNum
messageText
appendedText
231
GraphList
The GraphList data structure is used to hold a list of graph information.
<complexType name="GraphList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:Graph"/>
</sequence>
</complexType>
Graph
The Graph data structure is used to hold the query graph information.
<xsd:complexType name="Graph">
<xsd:sequence>
<xsd:element name="classNameId" type="tns:ClassNameId"/>
<xsd:element name="extensionId" type="xsd:string"/>
<xsd:element name="adjacencyList"
type="tns:GraphAdjacencyList"/>
</xsd:sequence>
</xsd:complexType>
232
classNameId
extensionId
adjacencyList
Data structures
GraphAdjacencyList
The GraphAdjacencyList data structure is used to hold a list of graph adjacency
items.
<xsd:complexType name="GraphAdjancencyList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:GraphAdjancency"/>
</xsd:sequence>
</xsd:complexType>
GraphAdjacency
The GraphAdjacency data structure is used to hold an adjacent node.
<xsd:complexType name="GraphAdjancency">
<xsd:sequence>
<xsd:element name="extensionId" type="xsd:string"/>
<xsd:element name="objectClassName" type="tns:ClassNameId"/>
<xsd:element name="objectAttributeNames"
type="tns:ArrayOf_String"/>
<xsd:element name="objectAttributeType"
type="tns:GraphAdjancencyAttributeType"/>
<xsd:element name="objectQuery" type="xsd:string"/>
<xsd:element name="relationClassName"
type="tns:ClassNameId"/>
<xsd:element name="relationAttributeNames"
type="tns:ArrayOf_String"/>
<xsd:element name="relationAttributeType"
type="tns:GraphAdjancencyAttributeType"/>
<xsd:element name="relationQuery" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
233
objectClassName
objectAttributeNames
objectAttributeType
objectQuery
relationClassNames
relationAttributeNames
relationAttributeType
relationQuery
ObjectQueryInfoList
The ObjectQueryInfoList data structure is used to hold a list of CI instances.
<complexType name="ObjectQueryInfoList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:ObjectQueryInfo"/>
</sequence>
</complexType>
ObjectQueryInfo
The ObjectQueryInfo data structure is used to hold a CI instance.
<xsd:complexType name="ObjectQueryInfo">
<xsd:complexContent>
<xsd:extension base="tns:InstanceInfo">
<xsd:sequence> <
xsd:element name="classNameId" type="tns:ClassNameId"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
234
Data structures
RelationQueryInfoList
The RelationQueryInfoList data structure is used to hold a list of relationships.
<complexType name="RelationQueryInfoList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:RelationQueryInfo"/>
</sequence>
</complexType>
RelationQueryInfo
The RelationQueryInfo data structure is used to hold relationship information.
<xsd:complexType name="RelationQueryInfo">
<xsd:complexContent>
<xsd:extension base="tns:ObjectQueryInfo">
<xsd:sequence>
<xsd:element name="instanceRole1type="xsd:string"/>
<xsd:element name="instanceRole2" type="xsd:string"/>
<xsd:element name="role1ClassName" type="tns:ClassNameId"/>
<xsd:element name="role2ClassName" type="tns:ClassNameId"/>
<xsd:element name="role1ClassId" type="xsd:string"/>
<xsd:element name="role2ClassId" type="xsd:string"/>
<xsd:element name="role1InstanceId" type="xsd:string"/>
<xsd:element name="role2InstanceId" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
instanceRole2
role1ClassName
role2ClassName
role1ClassId
role2ClassId
role1InstanceId
role2InstanceId
235
Class Structures
Class structures are data structures for class and relationship definitions. The class
data structures include:
ClassInfoIn
The ClassInfoIn data structure is used to set class information.
<complexType name="ClassInfoIn">
<sequence>
<element name="relationshipInfo" nillable="true"
type="impl:ClassRelationship"/>
<element name="indexList" type="impl:IndexList"/>
<element name="properties" type="impl:ClassProperties"/>
<element name="customCharacList" type="impl:PropertyList"/>
</sequence>
</complexType>
236
relationshipInfo
indexList
properties
The role names for the two classes that make up the
relationship.
customCharacList
Data structures
ClassInfoOut
The ClassInfoOut data structure is used to retrieve class information.
<complexType name="ClassInfoOut">
<complexContent>
<extension base="impl:ClassInfoIn">
<sequence>
<element name="superclassNameId"
type="impl:ClassNameId"/>
<element name="classId" type="xsd:string"/>
<element name="classType" type="impl:ClassType"/>
</sequence>
</extension>
</complexContent>
</complexType>
classId
classType
ClassRelationship
The ClassRelationship data structure is used to hold relationship information for
CI classes.
<xsd:complexType name="ClassRelationship">
<xsd:sequence>
<xsd:element name="relClassName1" type="tns:ClassNameId"/>
<xsd:element name="relClassName2" type="tns:ClassNameId"/>
<xsd:element name="roleName1" type="xsd:string"/>
<xsd:element name="roleName2" type="xsd:string"/>
<xsd:element name="cardinality" type="tns:Cardinality"/>
<xsd:element name="cascadeDelete" type="xsd:boolean"/>
<xsd:element name="isRole2WeakReference"type="xsd:boolean"/>
<xsd:element name="weakPropagatedAttrsList"
type="tns:WeakPropagatedAttrsList"/>
</xsd:sequence>
</xsd:complexType>
relClassNames2
roleNames1
roleNames2
237
cardinality
cascadeDelete
to-many relationships.
isRole2WeakReference
weakPropagatedAttrsList
238
Data structures
ClassProperties
The ClassProperties data structure is used to hold properties for a CI class.
<xsd:complexType name="ClassProperties">
<xsd:sequence>
<xsd:element name="isAbstract" type="tns:AbstractType"/>
<xsd:element name="hiddenPerms" type="xsd:string"/>
<xsd:element name="visiblePerms" type="xsd:string"/>
<xsd:element name="catogorizationSubclass"
type="xsd:boolean"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="isFinal" type="xsd:boolean"/>
<xsd:element name="isSingleton" type="xsd:boolean"/>
<xsd:element name="formName" type="xsd:string"/>
<xsd:element name="author" type="xsd:string"/>
<xsd:element name="auditInfo" type="tns:AuditInfo"/>
</xsd:sequence>
</xsd:complexType>
hiddenPerms
visiblePerms
categorizationSubclass
description
isFinal
isSingleton
formName
author
auditInfo
The structure that holds the audit information for the class.
239
IndexList
The IndexList structure is used to hold index information for the class.
<xsd:complexType name="IndexList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:IndexInfo"/>
</xsd:sequence>
</xsd:complexType>
IndexInfo
The IndexInfo structure is used to hold the attributes to index.
<xsd:complexType name="IndexInfo">
<xsd:sequence>
<xsd:element name="indexName" type="xsd:string"/>
<xsd:element name="unique" type="xsd:boolean"/>
<xsd:element name="isPrimaryKey" type="xsd:boolean"/>
<xsd:element name="attributeNames"
type="tns:ArrayOf_String"/>
</xsd:sequence>
</xsd:complexType>
unique
isPrimaryKey
attributeNames
240
Data structures
PropInfoList
The PropInfoList structure is used to hold a list of PropInfo structures.
<xsd:complexType name="PropInfoList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:PropInfo"/>
</xsd:sequence>
</xsd:complexType>
PropInfo
The PropInfo structure is used to hold common display properties for the class.
<xsd:complexType name="PropInfo">
<xsd:sequence>
<xsd:element name="tag" type="xsd:int"/>
<xsd:element name="value" type="tns:Value"/>
</xsd:sequence>
</xsd:complexType>
value
241
Attribute structures
Attribute structures are data structures for attribute definitions. The attribute data
structures include:
AttributeInfoList
The AttributeInfoList data structure is used to retrieve attribute information.
<complexType name="AttributeInfoList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:AttributeInfoOut"/>
</sequence>
</complexType>
242
Data structures
AttributeValueList
The AttributeValueList data structure is used to hold a list of attribute
information.
<complexType name="AttributeValueList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:AttributeValue"/>
</sequence>
</complexType>
AttributeValue
The AttributeValue data structure is used to hold a list of values for an attribute.
<xsd:complexType name="AttributeValue">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="value" nillable="true" type="tns:Value"/>
</xsd:sequence>
</xsd:complexType>
value
AttributeInfoIn
The AttributeInfoIn data structure is used to set attribute information.
<complexType name="AttributeInfoIn">
<sequence>
<element name="value" nillable="true" type="impl:Value"/>
<element name="entryMode" type="impl:AttributeEntryMode"/>
<element name="createMode" type="impl:AttributeCreateMode"/>
<element name="attrLimit" type="impl:AttributeLimit"/>
<element name="changePerms" type="xsd:string"/>
<element name="isHidden" type="xsd:boolean"/>
<element name="viewPerms" type="xsd:string"/>
<element name="customCharacList" type="impl:PropertyList"/>
</sequence>
</complexType>
243
entryMode
createMode
attrLimit
changePerms
isHidden
244
viewPerms
customCharacList
Data structures
AttributeLimit
The AttributeLimit structure is used to hold the data limit definitions for an
attribute list of any data type.
<xsd:complexType name="AttributeLimit">
<xsd:sequence>
<xsd:element name="attachmentLimit" nillable="true"
type="tns:AttachmentLimit"/>
<xsd:element name="charLimit" nillable="true"
type="tns:CharLimit"/>
<xsd:element name="currencyLimit" nillable="true"
type="tns:CurrencyLimit"/>
<xsd:element name="dateLimit" nillable="true"
type="tns:DateLimit"/>
<xsd:element name="decimalLimit" nillable="true"
type="tns:DecimalLimit"/>
<xsd:element name="enumLimit" nillable="true"
type="tns:EnumLimit"/>
<xsd:element name="intLimit" nillable="true"
type="tns:IntLimit"/>
<xsd:element name="realLimit" nillable="true"
type="tns:RealLimit"/>
<xsd:element name="timeLimit" nillable="true"
</xsd:sequence>
</xsd:complexType>
An AttachmentLimit structure indicating the data limit value for an attachment data type.
attachPoolLimit
charLimit
currencyLimit
dateLimit
diaryLimit
enumLimit
intLimit
realLimit
timeLimit
timeOfDayLimit
245
AttachmentLimit
The AttachmentLimit structure is used to hold data limit definitions for the
attachment data type.
<xsd:complexType name="AttachmentLimit">
<xsd:sequence>
<xsd:element name="attachmentPoolName" type="xsd:string"/>
<xsd:element name="maxSize" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
maxSize
maxSize
CharLimit
The CharLimit structure is used to hold data limit definitions for the character data
type.
<xsd:complexType name="CharLimit">
<xsd:sequence>
<xsd:element name="charMenu" type="xsd:string"/>
<xsd:element name="format" type="xsd:string"/>
<xsd:element name="FTSOption" type="xsd:int"/>
<xsd:element name="maxCharLength" type="xsd:int"/>
<xsd:element name="menuStyle" type="xsd:int"/>
<xsd:element name="pattern" type="xsd:string"/>
<xsd:element name="QBEOption" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
format
FTSOption
Specifies whether the attached field is indexed for full text search
(FTS).
0Not full text search indexed.
1Full text search indexed.
An integer value indicating the maximum size limit for the char
attribute.
maxCharLength
246
Data structures
menuStyle
QBEOption
CurrencyLimit
The CurrencyLimit structure is used to hold data limit definitions for the currency
data type.
<xsd:complexType name="CurrencyLimit">
<xsd:sequence>
<xsd:element name="allowableType"
type="tns:CurrencyDetailList"/>
<xsd:element name="functionalType"
type="tns:CurrencyDetailList"/>
<xsd:element name="highRange" type="xsd:decimal"/>
<xsd:element name="lowRange" type="xsd:decimal"/>
<xsd:element name="precision" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
functionalType
highRange
lowRange
precision
247
DateLimit
The DateLimit structure is used to hold data limit definitions for the date data type.
<xsd:complexType name="DateLimit">
<xsd:sequence>
<xsd:element name="minDate" type="xsd:int"/>
<xsd:element name="maxDate" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
maxDate
EnumLimit
The EnumLimit structure is used to hold data limit definitions for the enum data type.
<xsd:complexType name="EnumLimit">
<xsd:sequence>
<xsd:element name="listStyle" type="tns:EnumStyle"/>
<xsd:element name="regularEnumItems"
type="tns:ArrayOf_String"/>
<xsd:element name="customEnumItems"
type="tns:EnumItemList"/>
</xsd:sequence>
</xsd:complexType>
regularEnumItems
customEnumItems
IntLimit
The intLimit structure is used to hold data limit definitions for the integer data
type.
<xsd:complexType name="IntLimit">
<xsd:sequence>
<xsd:element name="highRange" type="xsd:int"/>
<xsd:element name="lowRange" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
248
highRange
The high range of the custom characteristic for the integer data type.
lowRange
The low range of the custom characteristic for the integer data type.
Data structures
RealLimit
The RealLimit structure is used to hold data limit definitions for the real data type.
<xsd:complexType name="RealLimit">
<xsd:sequence>
<xsd:element name="highRange" type="xsd:double"/>
<xsd:element name="lowRange" type="xsd:double"/>
<xsd:element name="precision" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
The high range of the custom characteristic for the real data type.
lowRange
The low range of the custom characteristic for the real data type.
precision
The number of digits allowed to the right of the decimal point for the
real data type.
AttributeLimitList
The AttributeLimitList structure is used to hold a list of data limit definitions for
an attribute list of any data type.
<xsd:complexType name="AttributeLimitList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:AttributeLimit"/>
</xsd:sequence>
</xsd:complexType
249
Utility structures
Utility structures are structures used in utility operations, such as for retrieving
version information of the BMC Atrium CMDB application. The utility data
structures include:
VersionInfoList
The VersionInfoList structure is used to hold a list of version information
elements for the BMC Atrium CMDB components.
<xsd:complexType name="VersionInfoList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:VersionInfo"/>
</xsd:sequence>
</xsd:complexType>
VersionInfo
The VersionInfo structure is used to hold version information for the BMC Atrium
CMDB components.
<xsd:complexType name="VersionInfo">
<xsd:sequence>
<xsd:element name="applicationId" type="xsd:string"/>
<xsd:element name="applicationName" type="xsd:string"/>
<xsd:element name="maintenanceVer" type="xsd:int"/>
<xsd:element name="majorVer" type="xsd:int"/>
<xsd:element name="minorVer" type="xsd:int"/>
<xsd:element name="patchNum" type="xsd:int"/>
<xsd:element name="isExist" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
250
applicationId
applicationName
maintenanceVer
majorVer
minorVer
Data structures
patchNum
isExist
UIComponentInfo
The UIComponentInfo data structure is used to hold the UI components to retrieve.
<xsd:complexType name="UIComponentInfo">
<xsd:sequence>
<xsd:element name="classId" type="xsd:string"/>
<xsd:element name="componentType" type="tns:ComponentType"/>
<xsd:element name="encodedQual" type="xsd:string"/>
<xsd:element name="locale" type="xsd:string"/>
<xsd:element name="tag1" type="xsd:string"/>
<xsd:element name="tag2" type="xsd:string"/>
<xsd:element name="tag3" type="xsd:string"/>
<xsd:element name="tag4" type="xsd:string"/>
<xsd:element name="tag5" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
componentType
retrieve.
COMPONENT_TYPE_LINEThe user interface graphical line
retrieve.
COMPONENT_TYPE_TOOLTIPThe tooltip type component to
retrieve.
encodedQual
251
locale
tag1
tag2
tag3
tag4
tag5
UIComponentResultList
The UIComponentResultList data structure is used to hold UI component
information.
<xsd:complexType name="UIComponentResultList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:UIComponentResult"/>
</xsd:sequence>
</xsd:complexType>
UIComponentResult
The UIComponentResult data structure is used to hold the component query result.
<xsd:complexType name="UIComponentResult">
<xsd:sequence>
<xsd:element name="attachVal" type="tns:Attachment"/>
<xsd:element name="componentInfo"
type="tns:UIComponentInfo"/>
<xsd:element name="dataString" type="xsd:string"/>
<xsd:element name="instanceId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
252
attachVal
componentInfo
dataString
instanceId
Data structures
JobRunInfo
The JobRunInfo data structure is used to retrieve job information.
<complexType name="JobRunInfo">
<sequence>
<element name="jobStartTime" type="xsd:dateTime"/>
<element name="jobEndTime" type="xsd:dateTime"/>
<element name="jobInstanceId" type="xsd:string"/>
<element name="jobName" type="xsd:string"/>
<element name="jobRunId" type="xsd:string"/>
</sequence>
</complexType>
jobEndTime
jobInstanceId
jobName
jobRunId
JobRunInfoList
The JobRunInfoList data structure is used to retrieve information of all running
jobs.
<complexType name="JobRunInfoList">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="items"
type="impl:JobRunInfo"/>
</sequence>
</complexType>
253
ClassQualifierList
The ClassQualifierList data structure is used to hold a list of ClassQualifier
structures.
<xsd:complexType name="ClassQualifierList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:ClassQualifier"/>
</xsd:sequence>
</xsd:complexType>
ClassQualifier
The ClassQualifier data structure is used to hold information about the class
qualification.
<xsd:complexType name="ClassQualifier">
<xsd:sequence>
<xsd:element name="qualifierString" type="xsd:string"/>
<xsd:element name="classId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
classId
DatasetPairList
The DatasetPairList data structure is used to hold a list of DatasetPair structures.
<xsd:complexType name="DatasetPairList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:DatasetPair"/>
</xsd:sequence>
</xsd:complexType>
254
Data structures
DatasetPair
The DatasetPair data structure is used to hold information about the datasets to
use in the reconciliation job.
<xsd:complexType name="DatasetPair">
<xsd:sequence>
<xsd:element name="dataset" type="xsd:string"/>
<xsd:element name="workingDataset" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
workingDataset
255
Federation structures
Federation structures are data structures used in federation operations. The
federation structures include:
FederatedActivateInfo
The FederatedActivateInfo data structure is used to hold the federated instance
data activation information to retrieve.
<xsd:complexType name="FederatedActivateInfo">
<xsd:sequence>
<xsd:element name="accessType"
type="tns:FederatedAccessType"/>
<xsd:element name="actionType"
type="tns:FederatedActionType"/>
<xsd:element name="accessString" type="xsd:string"/>
<xsd:element name="arInfo" type="tns:FederatedARInfo"/>
</xsd:sequence>
</xsd:complexType>
actionType
interface data.
256
accessString
arInfo
Data structures
FederatedARInfo
The FederatedARInfo data structure is used to hold the AR System related
federated interface information to retrieve.
<xsd:complexType name="FederatedARInfo">
<xsd:sequence>
<xsd:element name="accessType"
type="tns:FederatedAccessTypeAr"/>
<xsd:element name="form" type="xsd:string"/>
<xsd:element name="qualifier" type="xsd:string"/>
<xsd:element name="server" type="xsd:string"/>
<xsd:element name="url" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
form
qualifier
server
url
257
Audit structures
Audit structures are data structures used in audit operations. The audit structures
include:
AuditValueListList
The AuditValueListList data structure is used to hold a list of audit values to
retrieve.
<xsd:complexType name="AuditValueListList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
name="items" type="tns:AuditValueList"/>
</xsd:sequence>
</xsd:complexType>
AuditValueList
The AuditValueList data structure is used to hold a list of audit values to retrieve.
<xsd:complexType name="AuditValueList">
<xsd:sequence>
<xsd:element name="attributeList"
type="tns:AttributeValueList"/>
<xsd:element name="auditDate" type="xsd:dateTime"/>
<xsd:element name="changedBy" type="xsd:string"/>
<xsd:element name="operation" type="tns:AuditOpType"/>
</xsd:sequence>
</xsd:complexType>
auditDate
changedBy
operation
258
Data structures
AuditInfo
The AuditInfo data structure is used to hold the audit information to set audit
options for the class.
<xsd:complexType name="AuditInfo">
<xsd:sequence>
<xsd:element name="auditType" type="tns:AuditType"/>
<xsd:element name="qualifierString" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
log.
NoneNo auditing option set.
qualifierString
259
260
Appendix
This section explains the CI Relationship Viewer events that you can use to transfer
data to an AR System form. The CI Relationship Viewer provides the following
types of events for data transfer with AR System forms.
The following topics are provided:
Appendix A
261
The possible Event Types and the Event Data required for them are explained in
the following sections. For more information about the Run Process workflow
action, see BMC Remedy Action Request System 7.1.00 Workflow Objects.
CIRV_SET_FILTER
Changes the filter for displaying the relationship information. The CI Relationship
Viewer displays relationship information based on this filter.
Event Data: <filter name>
An example of Event Data for the CIRV_SET_FILTER event is All. When you specify
All in Eventa Data, the default filter will be used.
CIRV_SET_CUSTOM_FILTER
Sets the characteristics of the currently selected filter without saving it. This event
enables you to customize the display when an existing filter does not meet your
needs.
Event Type: CIRV_SET_CUSTOM_FILTER
Event Data: <Namespace>|<Classes>|<Relationships>|<Statuses>|
<Direction>|<NumLevels>
The following code shows an example Event Data for the CIRV_SET_CUSTOM_FILTER
event:
BMC.CORE|BMC_ComputerSystem BMC_DiskDrive|BMC_Dependency
BMC_Component|Active|0|5
262
CIRV_SHOW
Displays a new relationship map with the details specified in Event Data. This is
useful to change the graph that is displayed in the CI Relationship Viewer when it
is initialized.
Event Type: CIRV_SHOW
Event Data: <namespace>:<class name>#<dataset id>.<instance id>
The following code shows an example Event Data for the CIRV_SHOW event.
Example:BMC.CORE:BMC_Computer_System#sim_dataset.AS0050560C63F28d6HQQYFQG
AAKQAA
CIRV_SET_AS_ROOT
Sets the currently selected CI node as the root.
Event Type: CIRV_SET_AS_ROOT
Event Data: none
CIRV_SELECT_CI
Selects the given CI in the relationship diagram.
Event Type: CIRV_SELECT_CI
Event Data: <instance id>
CIRV_REFRESH
Refreshes the graphical representation with updated data from the BMC Atrium
CMDB. The root CI remains the same as before, but the selection, if any, will be
reset.
Event Type: CIRV_REFRESH
Event Data: none
CIRV_LAYOUT
Changes the layout of the graphical representation. If the layout style TreeLayout
is passed to the view, then the layout changes to Tree view. If RadialLayout is
passed, it changes to Radial view.
Event Type: CIRV_LAYOUT
Event Data: <layout style>
Appendix A
263
SELECTED_CI
When you select a CI in the CI Relationship Viewer, a CI event is sent to the
AR System to notify the container form.
Event Type: SELECTED_CI
Event data: <instance id>
CIRV_NOTIFY_AR
This is a special type of event used by context menu items. When you specify
CIRV_NOTIFY_AR as the value for the context menu items action key in the
configuration file, an event is sent to the container form, when that menu item is
selected in the CI Relationship Viewer.
Both Event Type and Event Data are set to menu item ID for this event. The
AR System form can use this data to perform any task.
Event Type: <menu item ID>
Event Data: <menu item ID>
264
Appendix
NOTE
Though this section does not discuss specific elements of the Java API and web
services API, the concepts and strategies discussed here are the same for it as they
are for the C API. To apply these concepts and strategies to a graph query with the
Java API, see the Java documentation installed in the sdk/javadoc/cmdbapi/
subdirectory of your BMC Atrium CMDB installation directory.
For more information about the web services graph query operation, see Chapter
6, Web services API operations and data structures.
Appendix B
265
Representing graphs
You can represent a graph, G = ( V, E ) , in two standard ways: as a collection of
adjacency lists or as an adjacency matrix. The adjacency-list representation is
usually preferred, because it provides a compact way to represent sparse graphs
those for which E is much less than V 2 . An adjacency-matrix representation
might be preferred, however, when the graph is dense: E is close to V 2 . The
representation used by the CMDBGraphQuery input query graph is an adjacency list.
The adjacency-list representation of a graph G = ( V, E ) consists of an array Adj of V
lists, one for each vertex in V . For each u V , the adjacency list Adj [ u ] contains
pointers to all the vertices v such that there is an edge ( u, v ) E . That is, Adj [ u ]
consists of all the vertices adjacent to u in G . The vertices in each adjacency list are
typically stored in an arbitrary order. Figure B-1 (b) is an adjacency-list
representation in an arbitrary order of the undirected1 graph in Figure B-1 (a).
Figure B-1: Undirected graph and its equivalent adjacency list
In an undirected graph G = ( V, E ) , the edge set E consists of unordered pairs of vertices, rather
than ordered pairs. That is, an edge is a set { u, v } , where u, v V and u v . In an undirected
graph, self-loops are forbidden, and so every edge consists of exactly two distinct vertices.
266
Appendix B
267
Example 1
You want to start on a CI instance of class A:A with instance ID 1 and walk
relationships of class A:rAA, which is defined as a relationship with A:A instances
on both ends. You want to walk outward to the last level, so the value of the
numLevels argument will be -1. Theres no qualification on the instances of A:rAA or
A:A. For return data, you are retrieving all of the attributes on the relationship
instances and the CI instances.
Graphically, the query you want to walk is illustrated in Figure B-4. Notice that for
the same query, the graph can be represented either as (a) or (b). In representation
(a), the class A:A appears twice. To distinguish one instance of A:A from the other,
an extensionId is needed. In this example, one of the instances is assigned the
arbitrary extensionId of two.
Figure B-4: Graph of Query Example 1
Figure B-5 on page 268 shows the data structures of the queryGraph argument for
Figure B-4 (a). Figure B-6 on page 269 shows the data structures of the queryGraph
argument for Figure B-4 (b).
Figure B-5: queryGraph data structures for Figure B-4 (a)
268
The path taken to walk this graph is shown by the bolded relationships in
Figure B-7 on page 270. The bolded nodes are those returned in the objects list.
Appendix B
269
270
Example 2
You want to start on a CI instance of class A:A with instance ID 1 and walk
relationships of class A:rAB, which is defined as a relationship with an A:A instance
on the left and an A:B instance on the right. From A:B you want to walk relationship
A:rBA which has class A:B on the left and class A:A on the right. You want to walk
outward to the last level, so the value of the numLevels argument will be -1. Theres
no qualification on the instances of any of the CI or relationship classes. For return
data, you are retrieving all of the attributes on the relationship instances and the
CI instances.
Graphically, the query you want to walk is illustrated in Figure B-7. As with
Example 1, the graph for this query can be represented either as (a) or (b). In
representation (a), the class A:A appears twice. To distinguish one instance of A:A
from the other, an extensionId is needed. In this example, one of the instances is
assigned the arbitrary extensionId of two.
Figure B-8: Graph of Query Example 2
Figure B-9 on page 272 shows the data structures of the queryGraph argument for
Figure B-8 (a). Figure B-10 on page 273 shows the data structures of the queryGraph
argument for Figure B-8 (b).
Appendix B
271
272
The path taken to walk this graph is shown by the bolded relationships in
Figure B-11 on page 274. The bolded nodes are those returned in the objects list.
Appendix B
273
Six CIs. Three are instances of A:A with instance IDs 8, 5, and 9. Three are
instances of A:B with instance IDs 1, 3, and 2.
Six relationships. Three are instances of A:rAB with instance IDs 1, 3, and 2. Three
are instances of A:rBA with instance IDs 1, 2, and 3.
274
Glossary
abstract class
audit
Glossary
275
categorization class
See destination.
CI
CI class
276
class permissions
Glossary
consumer
Glossary
277
destination
event
278
extension loader
Glossary
group
instance
Glossary
279
namespace
See source.
Precedence group
280
provisioning
Glossary
regular class
See filter.
Rename Dataset activity
A group of rules.
service level agreement
snapshot
See normalize.
weak reference
singleton class
Glossary
281
282
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Index
A
ActivateFederatedInContext operation 219
activating federated instances 153, 186, 256
adjacency items, storing for graphs 233
adjacency lists, representing graphs as 266
adjacency matrixes, representing graphs as 266
adjacent nodes, storing 179, 180
API compatibility 22
AR System
CI Relationship Viewer and 63
creating forms 121
storing related federation data 186, 257
transferring data
from CI Relationship Viewer 264
to CI Relationship Viewer 262
architecture, CMDB API 16
ArrayOf_String structure 228
attachLimits structure 165
attachment limits, defining 165
AttachmentLimit structure 246
AttributeInfoIn structure 243
AttributeInfoList structure 242
AttributeLimit structure 245
AttributeLimitList structure 249
attributes
C API data structures 161
creating 34, 83, 86, 211
data structures 161
deleting 88, 101, 209, 213
expanding CI parameters 127
exporting definitions with cmdbdriver 54
installing extensions with cmdbExtLoader 53
managing 82
retrieving 89, 92, 210
setting 95, 97, 212
storing
attachment limits 246
character limits 246
currency limits 247
data limits 245, 249
date limits 248
attributes (continued)
storing (continued)
definitions 161
enum limits 248
index information 160, 240
information 173
information to retrieve 242
information to set 243
integer limits 248
lists of values 243
real data limits 249
retrieval information 161
sort information 168, 229
sort information by type 229
sources for propagation 167
targets for propagation 167
values 166, 243
validating CI 126
web services API data structures 242
AttributeValue structure 243
AttributeValueList structure 243
audience for this guide 9
AuditInfo structure 259
audits
data structures 188, 258
functions 155
operations 222
retrieving CI instance logs 157
retrieving modified CI instances 155, 222
storing
class options 189, 259
value lists 188, 189, 258
AuditValueList structure 258
AuditValueListList structure 258
Index
283
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B
BLOBs, retrieving instance 113
BMC Atrium CMDB
accessing classes 77
cmdbdriver program 42
documentation 10, 11
exporting data 128
importing data 128
importing data with EIE 76
installing extensions 54
migrating data between servers 45
programming 32
programs
header files 28
structure 32
storing version information 171, 250
tools 4178
utilities 4178, 134, 225
BMC Software, contacting 2
bulk entries
beginning transactions 118
committing transactions 119
ending transactions 119
invoking API calls 118
rolling back transactions 119
transaction functions 118
C
C API data structures
about 158
attribute
about 161
attachLimits 165
charLimits 164
CMDBAttributeGetStruct 161
CMDBAttributeLimit 162
CMDBAttributeNameId 166
CMDBSortList 168
CMDBSortStruct 168
CMDBWeakPropagatedAttrs 167
CMDBWeakPropagatedAttrsList 167
currencyLimits 165
dateLimits 165
decimalLimits 165
enumLimits 165
integerLimits 164
realLimits 164
audit
about 188
CMDBAuditInfoStruct 189
284
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C API data structures (continued)
Reconciliation Engine (continued)
CMDBREDatasetList 185
CMDBREDatasetPair 185
CMDBREJobRunInfo 184
CMDBREJobRunInfoList 183
user interface component
about 181
CMDBUIComponentInfo 181
CMDBUIComponentResult 182
CMDBUIComponentResultList 183
C API functions
about 82
audit
about 155
CMDBGetCopyAuditData 155
CMDBGetLogAuditData 157
bulk entry transaction
about 118
CMDBBeginBulkEntryTransaction 118
CMDBEndBulkEntryTransaction 119
data model management
about 82
CMDBCreateAttribute 83
CMDBCreateClass 99
CMDBCreateMultipleAttribute 86
CMDBDeleteAttribute 88
CMDBDeleteClass 101
CMDBGetAttribute 89
CMDBGetClass 102
CMDBGetListClass 104
CMDBGetMultipleAttribute 92
CMDBSetAttribute 95
CMDBSetClass 105
CMDBSetMultipleAttribute 97
environment
about 120
CMDBGetServerPort 122
CMDBInitialization 120
CMDBSetServerPort 123
CMDBSynchMetaData 121
CMDBSystemInit 121
CMDBTermination 124
federation
about 152
CMDBActivateFederatedInContext 153
CMDBGetRelatedFederatedInContext 152
free
about 136
FreeCMDBAttributeGetStruct 141
FreeCMDBAttributeLimit 138
FreeCMDBAttributeLimitList 139
Index
285
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C API functions (continued)
utility (continued)
CMDBCreateGuid 134
CMDBGetVersions 134
C API sessions
initializing 120
terminating 124
C API, compiling on HP machines 26
C APIs
about 17
compilers 26
components 17
data structures 158
driver source code 24
function calls 17
function definitions 82
functions 82
header files 24
installing package 24
library files 25
library links 27
calls
C API function 17
debugging with data structure contents 78
invoking bulk entry API 118
canceling reconciliation jobs 151, 218
CancelJobRun operation 218
character limits, defining 164
CharLimit structure 246
charLimits structure 164
CI instances. See instances
CI Relationship Viewer
about 63
AR System and 63
configuring 69
creating context menus 70
creating definitions 73
creating events 75
embedding in AR System forms 66
events
CIRV_LAYOUT 263
CIRV_NOTIFY_AR 264
CIRV_REFRESH 263
CIRV_SELECT_CI 263
CIRV_SET_AS_ROOT 263
CIRV_SET_CUSTOM_FILTER 262
CIRV_SET_FILTER 262
CIRV_SHOW 263
SELECTED_CI 264
filters 69
launching 64, 67
opening 64, 67
286
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
classes (continued)
storing (continued)
CI properties 239
CI relationship information 237
class names 166
display properties 241
display property structures 241
index information 160, 240
information to retrieve 237
information to set 236
names 169, 172, 228
namespace names 166, 169, 228
qualification information 254
relationship definitions 158
relationship information 159
type information 158
web services API data structures 236
ClassInfoIn structure 236
ClassInfoOut structure 237
ClassNameId structure 228
ClassNameIdList structure 228
ClassProperties structure 239
ClassQualifier structure 254
ClassQualifierList structure 254
ClassRelationship structure 237
CMDB APIs
about 16
architecture 16
C APIs 17
Java APIs 18
migrating to 29
programming 19
programs, when to write 19
sample source code 29
terminology changes 20
web services APIs 18
CMDB Console API programming and 19
CMDB. See BMC Atrium CMDB
CMDBActivateFederatedInContext function 153
CMDBAttributeGetStruct structure 161
CMDBAttributeLimit structure 162
CMDBAttributeNameId structure 166
CMDBAttributeValueList structure 166
CMDBAttributeValueListList structure 166
CMDBAttributeValueStruct structure 167
CMDBAuditInfoStruct structure 189
CMDBAuditValueList structure 188
CMDBAuditValueListList structure 189
CMDBBeginBulkEntryTransaction function 118
CMDBCancelJobRun function 151
CMDBClassNameId structure 169
CMDBClassNameIdList structure 169
Index
287
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
CMDBGetObjectStruct structure 178
CMDBGetRelatedFederatedInContext function 152
CMDBGetRelationList structure 179
CMDBGetRelationStruct structure 179
CMDBGetServerPort function 122
CMDBGetVersions function 134
CMDBGraphAdjacentList structure 179
CMDBGraphAdjacentStruct structure 180
CMDBGraphList structure 180
CMDBGraphQuery function 115, 267
CMDBGraphStruct structure 181
CMDBImport function 131
CMDBImportData function 133
CMDBImportDef function 132
CMDBImportItem structure 175
CMDBImportItemList structure 176
CMDBImportItemStruct structure 176
CMDBIndexList structure 160
CMDBIndexStruct structure 160
CMDBInitialization function 120
CMDBItemTypeAttribute structure 173
CMDBItemTypeClass structure 172
CMDBQualifierStruct structure 170
CMDBREClassQualList structure 185
CMDBREClassQualStruct structure 184
CMDBREDatasetList structure 185
CMDBREDatasetPair structure 185
CMDBREJobRunInfo structure 184
CMDBREJobRunInfoList structure 183
CMDBRunQualificationForCI function 126
CMDBSetAttribute function 95
CMDBSetClass function 105
CMDBSetInstance function 117
CMDBSetMultipleAttribute function 97
CMDBSetServerPort function 123
CMDBSortList structure 168
CMDBSortStruct structure 168
CMDBStartJobRun functions 148
CMDBSynchMetaData function 121
CMDBSystemInit function 121
CMDBTermination function 124
CMDBUIComponentInfo structure 181
CMDBUIComponentResult structure 182
CMDBUIComponentResultList structure 183
CMDBVersionInfo structure 171
CMDBVersionInfoList structure 171
CMDBWeakPropagatedAttrs structure 167
CMDBWeakPropagatedAttrsList structure 167
CMDBXMLExportItemList structure 174
CMDBXMLImportItemList structure 176
commands, cmdbdriver program 42
committing bulk entry transactions 119
288
compilers, C APIs 26
components
C API 17
web services API 18
configuration items
See also instances
classes 32
creating instances 36
querying instances 40
viewing relationships 63
context menus, creating 70
CreateAttribute operation 211
CreateClass operation 206
CreateInstance operation 196
CreateRelationInstance operation 199
creating
AR System forms 121
attributes 83, 86, 211
CI classes 32
CI Relationship Viewer
context menus 70
definitions 73
events 75
classes 99, 206
classes with cmdbdriver program 42
forms 121
globally unique IDs 134
installation activity file 57
instances
CI 36, 107
in class forms 196
relationship 107
with cmdbdriver program 42
instances relationship 199
package.xml file 55
relationship classes 37
currency limits, defining 165
CurrencyLimit structure 247
currencyLimits structure 165
customer support 3
D
data
importing with EIE 76
limits, defining 165
transferring
from CI Relationship Viewer 264
to CI Relationship Viewer 262
data models
management functions, C API 82
managing 82
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
data models (continued)
operations, web services API 204
data structures
C API
about 158
attribute 161
audit 188
class 158
export 172
federation 186
general purpose 171
graph query 178
import 172
instance 169
Reconciliation Engine 183
user interface component 181
printing contents 78
web services API
about 227
attribute 242
audit 258
class 236
federation 256
graph 232
instance 227
job 253
user interface component 251
utility 250
DatasetPair structure 255
DatasetPairList structure 254
DateLimit structure 248
dateLimits structure 165
debugging
calls with data structure contents 78
debugging APIs 78
decimal limits, defining 165
decimalLimits structure 165
defining
attachment limits 165
character limits 164
currency limits 165
date limits 165
decimal limits 165
enum limits 165
integer limits 164
query graph lists 180
real limits 164
definitions
creating CI Relationship Viewer 73
exporting
attribute with cmdbdriver 54
class 128, 129
definitions (continued)
exporting (continued)
class with cmdbdriver 47, 54
subclass with cmdbdriver 47
importing
class 131, 132
class with cmdbdriver 49
storing
attribute 161
CI 158
relationship 158
Delete Attribute operation 213
DeleteClass operation 209
DeleteInstance operation 197
deleting
attributes 213
attributes with specified ID 88
classes 209
instances 108, 197
specified class 101
display properties, storing for classes 241
documentation for BMC Atrium CMDB 10, 11
E
EIE, importing data with 76
Enterprise Integration Engine. See EIE
enum limits, defining 165
EnumLimit structure 248
enumLimits structure 165
environment functions 120
events
creating CI Relationship Viewer 75
transferring from
AR System to CI Relationship Viewer 262
CI Relationship Viewer to AR System 264
ExecuteJobRun operation 215
expanding federated instances 153, 219
exporting
attribute definitions with cmdbdriver 54
C API data structures 172
C API functions 128
class
data with cmdbdriver 47
data, qualified 130
definitions 128, 129
definitions with cmdbdriver 47, 54
CMDB data 128
instance data with cmdbdriver 48
storing data for 172
subclass definitions with cmdbdriver 47
Index
289
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
F
features
Java API 19
Web services API 18
federated instances, activating 153
FederatedActivateInfo structure 256
FederatedARInfo structure 257
federation
data structures 186, 256
expanding instances 153, 219
functions 152
launching instances 153, 219
operations 219
retrieving instances 152, 221
storing AR system data 186, 257
storing instance activation data 186, 256
filters, CI Relationship Viewer 69
forms, creating 121
free functions 136
FreeCMDBAttributeGetStruct function 141
FreeCMDBAttributeLimit function 138
FreeCMDBAttributeLimitList function 139
FreeCMDBAttributeLimitStruct function 138
FreeCMDBAttributeValueList function 146
FreeCMDBAttributeValueListList function 146
FreeCMDBClassNameIdList function 137
FreeCMDBClassTypeInfo function 144
FreeCMDBExportItemList function 140
FreeCMDBExportItemStruct function 140
FreeCMDBGetObjectList function 145
FreeCMDBGetRelationList function 145
FreeCMDBGraphAdjacentList function 142
FreeCMDBGraphAdjacentStruct function 142
FreeCMDBGraphList function 143
FreeCMDBGraphStruct function 143
FreeCMDBImportItemList function 141
FreeCMDBIndexList function 139
FreeCMDBQualifierStruct function 144
FreeCMDBREJobRunInfoList function 147
FreeCMDBSortList function 147
FreeCMDBVersionInfoList function 137
functions
C API
audit 155
bulk entry transaction 118
calls 17
data model management 82
environment 120
federation 152
free 136
import and export 128
290
functions (continued)
C API (continued)
instance management 107
Reconciliation Engine 148
user interface component 125
utility 134
web services API 192
G
general purpose data structures 171
GetAttributes operation 210
GetClass operation 204
GetCopyAuditData operation 222
GetInstances operation 193
GetJobRun operation 216
GetListJobRun operation 217
GetRelatedFederatedInContext operation 221
GetUIComponents operation 224
GetVersions operation 225
Graph structure 232
GraphAdjacency structure 233
GraphAdjacencyList structure 233
GraphList structure 232
GraphQuery operation 201
graphs
adjacency lists, collections of 266
adjacency matrixes 266
query data structures
C API 178
web services API 232
representing 266
storing adjacency items 233
H
header files
C API 24
CMDB program 28
HP machines C API, compiling 26
I
icon, New 9
IDs, creating globally unique 134
import and export functions 128
importing
C API data structures 172
C API functions 128
class
data 133
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
importing (continued)
class (continued)
data with cmdbdriver 49
definitions 131, 132
definitions with cmdbdriver 49
CMDB data 128
data with EIE 76
instance data with cmdbdriver 50
storing data for 172
IndexInfo structure 240
IndexList structure 240
initializing
networks 121
servers 121
installation activity file, creating 57
installing
attribute extensions with cmdbExtLoader 53
C API package 24
class extensions with cmdbExtLoader 53
CMDB extensions 54
InstanceInfo structure 230
InstanceInfoList structure 229
instances
See also configuration items and relationships
C API management functions 107
C API structures 169
creating
CI 107
configuration item 36
in class forms 196
relationship 107
with cmdbdriver program 42
data operations 192
data structures 227
deleting 108, 197
expanding CI parameters 127
expanding federated 153, 219
exporting data with cmdbdriver 48
importing data with cmdbdriver 50
launching federated 153
management functions 107
managing 107
querying 40, 201
retrieving
audit logs 157
BLOBs 113
CI audit data 155, 222
federated 152
list of 110, 193
multiple 112
single 109
retrieving federated 221
instances (continued)
searching for related 115
setting CI 117
setting in class forms 195
setting relationship 117
storing
CI 178
data 169
list of values 229
relationship 179
values 230
structures 169
viewing relationships 63
web services API data structures 227
web services API operations 192
integer limits, defining 164
integerLimits attribute structure 164
IntLimit structure 248
J
Java API changes 23
Java APIs
about 18
environment components 27
features 19
program requirements 27
JobRunInfo structure 253
JobRunInfoList structure 253
jobs. See reconciliation jobs
K
known issues, migrating CMDB data 52
L
launching
CI Relationship Viewer 64, 67
federated instances 153, 219
library
files, C API 25
links, C API 27
limits, defining
attachment 165
character 164
currency 165
date 165
decimal 165
enum 165
integer 164
Index
291
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
limits, defining (continued)
real 164
linking libraries, C API 27
ListClasses operation 207
login information, storing 227
LoginInfo structure 227
M
managing
attributes 82
classes 82
data models 82
instances 107
reconciliation jobs 148
matrixes, representing graphs as 266
memory, releasing 136
menus, creating context 70
migrating
CMDB data between servers 45
known issues 52
to BMC Atrium CMDB 2.0 API 29
N
names
storing class 166, 169, 228
storing namespace 166, 169, 228
networks, initializing 121
New icon 9
new in this release 22
API compatibility 22
Java API changes 23
O
ObjectQueryInfo structure 234
ObjectQueryInfoList structure 234
opening, CI Relationship Viewer 64, 67
operations, web services API
about 192
audit 222
data model 204
federation 219
reconciliation job 215
storing status 230, 231
user interface component 224
utility 225
292
P
package.xml file, creating 55
parameters, expanding CI 127
ports
retrieving 122
setting 123
print.c file 78
printing
data structure contents 78
print.c file 78
product support 3
programs
cmdbdriver program 42
cmdbExtLoader 53
propagating attribute values 167
PropInfo structure 241
PropInfoList structure 241
Q
qualifications, storing strings 170
querying
C API graph query data structures 178
instances 40
instances related to CIs 201
storing
CIs for 234
graph list definitions for 180
graph nodes for 181
graphs for 232
list of CIs for 234
list of relationships for 235
relationships for 235
R
real data limits, defining 164
RealLimit structure 249
realLimits attribute structure 164
Reconciliation Engine
C API data structures 183
C API functions 148
managing jobs 148
reconciliation jobs
canceling 151, 218
data structures 253
operations 215
retrieving
data for running 149
list of running 150, 217
logs for running 149
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
reconciliation jobs (continued)
retrieving (continued)
single running 216
starting 148, 215
storing
all running 253
datasets 185, 254, 255
qualifications 184, 185
running 183, 184
single 253
RelationQueryInfo structure 235
RelationQueryInfoList structure 235
relationship instances, creating 199
relationships
See also instances
classes 37
querying instances 40
viewing 63
releasing memory 136
retrieving
attributes 89, 92, 210
audit data 155, 222
audit logs 157
classes 102, 104, 204
federated instances 152, 221
instance BLOBs 113
instances 109, 110, 112, 193
ports 122
reconciliation jobs 149, 150, 216, 217
relationship classes 207
server ports 122
UI component lists 125, 224
version of CMDB components 134, 225
S
samples
C API driver programs 24
CMDB API source code 29
searching for instances 115
SELECTED_CI event 264
server ports
retrieving 122
setting 123
servers
initializing 121
retrieving ports 122
setting ports 123
sessions
initializing C API 120
terminating C API 124
SetAttribute operation 212
Index
293
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
storing (continued)
classes (continued)
data 158
display properties 241
display property structures 241
index information 160, 240
information to retrieve 237
information to set 236
names 166, 169, 172, 228
namespace names 166, 169, 228
qualification information 254
type information 158
export data 172
federated instance activation data 186, 256
graph adjacency items 233
graph nodes 181
import data 172
instance data 169
instance values 229, 230
items to export 173, 174
items to import 175, 176
login information 227
operation statuses 230, 231
qualification strings 170
query graph list definitions 180
query graphs 232
reconciliation job datasets 185, 254, 255
reconciliation job qualifications 184, 185
reconciliation jobs 253
relationships
definitions 158
information 159
instances 179
to query 235
running reconciliation jobs 183, 184
source attributes 167
strings 228
target attributes 167
UI component information 252
UI component query results 182, 183, 252
UI components to retrieve 181, 251
versions of CMDB components 171, 250
XML items to export 174
XML items to import 176
strings, storing 228
subclasses, exporting definitions 47
support, customer 3
294
T
technical support 3
terminating C API sessions 124
terminology
changes 20
CMDB and API 20
tools, CMDB 4178
U
UI components. See user interface components
UIComponentInfo structure 251
UIComponentResult structure 252
UIComponentResultList structure 252
user interface components
data structures 181
functions 125
operations 224
retrieving list of 125, 224
storing
information 252
query results 182, 183, 252
to retrieve 181, 251
web services API data structures 251
user login information, storing 227
utilities
CMDB 4178, 134, 225
functions 134
operations 225
web services API data structures 250
V
validating attributes, CI 126
VersionInfo structure 250
VersionInfoList structure 250
versions, retrieving CMDB component 134, 225
viewing
configuration item relationships 63
instance relationships 63
views, SQL 77
W
web services API data structures
attribute
about 242
AttachmentLimit 246
AttributeInfoIn 243
AttributeInfoList 242
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
web services API data structures (continued)
attribute (continued)
AttributeLimit 245
AttributeLimitList 249
AttributeValue 243
AttributeValueList 243
CharLimit 246
CurrencyLimit 247
DateLimit 248
EnumLimit 248
IntLimit 248
RealLimit 249
audit
about 258
AuditInfo 259
AuditValueList 258
AuditValueListList 258
class
about 236
ClassInfoIn 236
ClassInfoOut 237
ClassProperties 239
ClassRelationship 237
IndexInfo 240
IndexList 240
PropInfo 241
PropInfoList 241
federation
about 256
FederatedActivateInfo 256
FederatedARInfo 257
graph
about 232
Graph 232
GraphAdjacency 233
GraphAdjacencyList 233
GraphList 232
ObjectQueryInfo 234
ObjectQueryInfoList 234
RelationQueryInfo 235
RelationQueryInfoList 235
instance
about 227
ArrayOf_String 228
ClassNameId 228
ClassNameIdList 228
InstanceInfo 230
InstanceInfoList 229
LoginInfo 227
SortOrder 229
SortOrderList 229
Status 231
Index
295
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
web services API operations (continued)
reconciliation job (continued)
GetListJobRun 217
user interface component
about 224
GetUIComponents 224
utility
about 225
GetVersions 225
web services APIs
about 18
components 18
data structures 227
features 18
functions 192
operations 192
296
*70088*
*70088*
*70088*
*70088*
*70088*