The Tivoli Process Automation Engine (Tpae), also known as Base Services, is a collection of core Java classes and is used as a base to build Java applications. The Integration Framework, a Tpae feature, contains standard integration objects (Object Structures and interfaces) and outbound/inbound objects. The Simple Tpae IF Connector connects Tivoli® Directory Integrator to the Tpae Integration Framework to exchange information.
The Simple Tpae IF Connector reads from and writes to the Integration Framework. It supports Maximo® Business Object (MBO) and is processed through an integration object. This connector uses the MBO layer for validating imported or exported objects. The Simple Tpae IF Connector can be used in various AssemblyLine modes such as Iterator, AddOnly, Update, Lookup, and Delete.
The benefit of using the Tpae architecture is that the core function used in many Java applications does not need to be coded by the applications. Each application depends on base classes to provide core function rather than coding it into each application. The Tpae layer is a middleware and is not directly used as an application by the user. Key functions include:
A few Tpae applications are:
An application, which is built on Tpae, uses the base system security tools for user, role, and group management. Key features of Tpae are:
The Integration Framework (IF) is a set of applications that facilitates integration between the system and framework applications. IF is a part of base Tivoli Process Automation Engine and is available in all major products that use Tpae. For example, MAM, and SRM.
The IF is a part of Tpae. It is an XML-based integration framework and supports both XML and delimited files. IF allows synchronization and integration of data between an external system and applications that use the Tpae common architecture and run under an application server. Using IF, you can exchange data synchronously and asynchronously, using various communication protocols.
IF provides a set of outbound (channels) and inbound (services) integration interfaces. It supports multiple communication methods, such as:
You can use the following IF services to integrate Tpae product and the external systems:
IF allows data to flow in and out of applications (MAM or CCMDB), and data to flow in and out of external systems. The Simple Tpae IF Connector uses the IF feature to integrate data.
The Maximo Business Object (MBO) defines a set of fields and business rules and updates one or more Maximo database tables. If multiple object structures use the same MBO, each structure definition repeats these details.
The IF uses MBOs to extract data from and load data into underlying tables. The MBO enforces one or more business rules on the data being received. If the rules cannot be applied successfully to the data, the MBO fails to perform the required operation. For example, changing the status of a Purchase Order or inserting a new workflow process. The MBO layer is used when integrating data with Tpae.
The MIF Object Structure (MOS) is made up of one or more subrecords, which make up the content of an integration message sent to or received from an external system. Each subrecord contains fields from the MBO. The MBO and the corresponding subrecord have the same name. A MOS can include any number of subrecords. The Object Structures can be hierarchical, representing a parent-child relationship between pairs of subrecords in the Object Structure. The topmost MBO is called a primary object or root MBO.
An Object Structure is the common data layer that IF uses for outbound and inbound application data processing. You can use the message content of a single Object Structure to support both inbound and outbound message processing. Standard Service and REST APIs (see Figure 1) do not go through the Object Structure layer.
The Simple Tpae IF Connector uses XML over HTTP to integrate data with IF. It provides the following two types of integration:
The Object Structure Services provide capabilities to perform the following operations over a specified Object Structure:
The Simple Tpae IF Connector supports the operations that are indicated in preceding list. Object Structure Services can be used to create, read, update, or delete operations and are the default behavior of the connector. These services are managed by the Object Structure application. Maximo comes with several predefined Object Structures, for example, MXASSET:
MBO | Parent Object | Location Path | Relationship |
---|---|---|---|
ASSET | ASSET | ||
ASSETMETER | ASSET | ASSET/ASSETMETER | INT_ASSETMETER |
ASSETUSERCUST | ASSET | ASSET/ASSETUSERCUST | ASSETUSERCUST |
ASSETSPEC | ASSET | ASSET/ASSETSPEC | ASSETSPECCLASS |
When reading assets, the connector receives a structure, similar to the following XML file, where the relationships are represented as nested elements:
<ASSET>
<ASSETNUM>7112</ASSETNUM>
-
<ASSETMETER>
<METERNAME>RUNHOURS</METERNAME>
-
</ASSETMETER>
<ASSETMETER>
<METERNAME>KILOMETERS</METERNAME>
-
</ASSETMETER>
-
</ASSET>
The Enterprise Service associates an operation and an Object Structure. The Enterprise Service defines the operations that are performed on the specified Object Structure. These operations are requested from Maximo as XML messages over HTTP. The Enterprise Service provides the following functions:
Using Enterprise Services for integration requires configuration of queues and external system information. These services are managed by the Enterprise Services application.
External systems are managed by the External Systems application. An external system identifies a specific external application involved in outbound or inbound data synchronization with Maximo. It defines all the Enterprise services available to the external application. The following figure illustrates the basic concept:
The Simple Tpae IF Connector works only with flat entries. An Object Structure is composed of several MBOs arranged in hierarchy. Therefore, the connector can work with only one MBO at a time. In the Configuration Editor, you need to specify the MBO name in the MBO field. If this parameter is not defined, the connector works with the root MBO of the Object Structure. The selected MBO has to be a part of the specified Object Structure.
For example, the predefined Object Structure MXASSET is composed of MBOs such as ASSET, ASSETMETER, ASSETUSERCUST, and ASSETSPEC.
Use the MBO parameter with the following syntax:
<Top-Level MBO>[@<Child MBO Level 1>[@<Child MBO Level 2>[@<Child MBO Level N>]]]
Example:
Value of MBO parameter | Selected MBO |
---|---|
ASSET | ASSET |
ASSET@ASSETMETER | ASSETMETER |
ASSET@ASSETSPEC | ASSETSPEC |
The selected MBO is used in all connector modes.
Use the TpaeIFConnector.getMboList() method to retrieve a list of available MBOs in the specified Object Structure. For more information about this method, see the Javadocs.
The Simple Tpae IF Connector operates in various modes such as Iterator, AddOnly, Update, Lookup, and Delete.
In the Iterator mode, the connector sends a Query XML request to the IF server and receives a Query XML response. For example, Maximo returns the following XML as a result of a query operation on the predefined MXASSET Object Structure:
<ASSET>
<ASSETNUM>7111</ASSETNUM>
<BUDGETCOST>1000.0</BUDGETCOST>
<ASSETSPEC>
<ASSETATTRID>RAMSIZE</ASSETATTRID>
<MEASUREUNITID>MBYTE</MEASUREUNITID>
<NUMVALUE>512.0</NUMVALUE>
-
</ASSETSPEC>
<ASSETSPEC>
<ALNVALUE />
<ASSETATTRID>DISKSIZE</ASSETATTRID>
<MEASUREUNITID>GBYTE</MEASUREUNITID>
<NUMVALUE>100.0</NUMVALUE>
-
</ASSETSPEC>
<ASSETSPEC>
<ASSETATTRID>PROSPEED</ASSETATTRID>
<MEASUREUNITID>GHZ</MEASUREUNITID>
<NUMVALUE>1.5</NUMVALUE>
-
</ASSETSPEC>
-
</ASSET>
<ASSET>
<ASSETNUM>7115</ASSETNUM>
<BUDGETCOST>1500.0</BUDGETCOST>
<ASSETSPEC>
<ASSETATTRID>RAMSIZE</ASSETATTRID>
<MEASUREUNITID>MBYTE</MEASUREUNITID>
<NUMVALUE>2048.0</NUMVALUE>
-
</ASSETSPEC>
<ASSETSPEC>
<ALNVALUE />
<ASSETATTRID>DISKSIZE</ASSETATTRID>
<MEASUREUNITID>GBYTE</MEASUREUNITID>
<NUMVALUE>250.0</NUMVALUE>
-
</ASSETSPEC>
<ASSETSPEC>
<ASSETATTRID>PROSPEED</ASSETATTRID>
<MEASUREUNITID>GHZ</MEASUREUNITID>
<NUMVALUE>3.2</NUMVALUE>
-
</ASSETSPEC>
-
</ASSET>
The query returns two assets, each with three asset specifications. The resulting Entry object depends on the value defined for the MBO parameter.
If the MBO parameter is ASSET, the result is two Entry objects with the following attribute names and values:
Entry | ASSETNUM | BUDGETCOST |
---|---|---|
1 | 7111 | 1000.0 |
2 | 7115 | 1500.0 |
If the MBO parameter is ASSET@ASSETSPEC, the result is six Entry objects with the following attribute names and values:
Entry | ASSETNUM | BUDGETCOST | ASSETSPEC@ASSETATTRID | ASSETSPEC@MEASUREUNITID | ASSETSPEC@NUMVALUE |
---|---|---|---|---|---|
1 | 7111 | 1000.0 | RAMSIZE | MBYTE | 512.0 |
2 | 7111 | 1000.0 | DISKSIZE | GBYTE | 100.0 |
3 | 7111 | 1000.0 | PROSPEED | GHZ | 1.5 |
4 | 7115 | 1500.0 | RAMSIZE | MBYTE | 2048.0 |
5 | 7115 | 1500.0 | DISKSIZE | GBYTE | 350.0 |
6 | 7115 | 1500.0 | PROSPEED | GHZ | 3.2 |
The Connector uses the Query criteria parameter only in Iterator mode to filter the results set of the iteration.
operator = oper, where oper can be one of the following values:
Oper | Description |
---|---|
= | equal |
!= | not equal |
< | less than |
<= | less than or equal |
> | greater than |
>= | greater than or equal |
SW | starts with |
EW | ends with |
Use the less than and the greater than attributes with numeric and date fields only.
Example:
To find all assets in a type other than IT, format the query as follows:
<ASSET>
<ASSETTYPE operator="!=">IT</ASSETTYPE>
</ASSET>
Examples:
The following query searches for assets, where VENDOR is equal to ATI and STATUS is equal to OPERATING.
<ASSET>
<VENDOR operator="=">ATI</VENDOR>
<STATUS operator="=">OPERATING</STATUS>
</ASSET>
The following query searches for assets, where VENDOR contains ATI and STATUS contains OPER.
<ASSET>
<VENDOR>ATI</VENDOR>
<STATUS>OPERATING</STATUS>
</ASSET>
The following queries search for assets that do not have a specified tag. The first query uses the operator attribute and the second query uses exact value for comparison.
<ASSET>
<ASSETTAG operator="NULL"></ASSETTAG>
</ASSET>
<ASSET>
<ASSETTAG>NULL</ASSETTAG>
</ASSET>
The following query searches for assets with asset number starting with the text 711.
<ASSET>
<ASSETNUM operator="SW">711</ASSETNUM>
</ASSET>
The following query searches for assets with a status NOT READY or OPERATING, by using a set, the equivalent of an SQL IN clause.
<ASSET>
<STATUS>NOT READY, OPERATING</STATUS>
</ASSET>
Example:
The following query searches for assets, where BUDGETCOST is greater than $1000.
<ASSET>
<BUDGETCOST operator=">">1000</BUDGETCOST>
</ASSET>
The following query searches for assets, where BUDGETCOST is greater than $1000 and less than $20000.
<ASSET>
<BUDGETCOST operator=">">1000</BUDGETCOST>
<BUDGETCOST operator="<">20000</BUDGETCOST>
</ASSET>
When adding Entries using Simple Tpae IF Connector, specify the attributes marked as Required. The Tpae also accepts empty strings. If any of the attributes are missing, the connector throws an exception and the add operation fails.
If the MBO parameter targets the root MBO of the Object Structure, connector uses the CREATE Enterprise Service parameter.
If the MBO parameter targets a child MBO at any level of the Object Structure, connector uses the UPDATE Enterprise Service parameter. Provide the key attributes of MBOs, up to the root MBO of the Object Structure, with a reference to the existing records, except the MBO target by the MBO parameter to be created.
For example, the predefined Object Structure MXASSET exposes the ASSET and the ASSETMETER MBOs. Therefore, to create a meter for an asset, specify a work entry with the following minimum attributes:
Attribute Name | Value |
---|---|
ASSETNUM | 1001 |
SITEID | BEDFORD |
ASSETMETER@METERNAME | RUNHOURS |
and SITEID identify an existing asset and ASSETMETER@METERNAME is the name of the new meter.
When modifying entries with the Simple Tpae IF Connector, specify only the attributes marked as Required. If any of the attributes are missing, the connector throws an exception and the modification fails.
When deleting Entries using Simple Tpae IF Connector, specify only the attributes marked as Required. If any of the attributes are missing, the connector throws an exception and the deletion fails.
If the MBO parameter targets the root MBO or child MBO of the Object Structure, the connector uses the SYNC Enterprise Service parameter. Provide the key attributes of all MBOs, up to the root MBO of the Object Structure, with a reference to the existing records.
For example, the predefined MXASSET Object Structure exposes ASSET and ASSETMETER MBOs. Therefore, to delete an asset meter, provide a work entry with the following attributes:
Attribute Name | Value |
---|---|
ASSETNUM | 11430 |
SITEID | BEDFORD |
ASSETMETER@METERNAME | RUNHOURS |
and SITEID identify an existing asset and ASSETMETER@METERNAME identifies the meter to be deleted.
To find a specific record in Maximo, provide the Link Criteria with attributes that uniquely identify the record.
The following attributes uniquely identify an asset in Maximo.
Attribute Name | Value |
---|---|
ASSETNUM | 1001 |
SITEID | BEDFORD |
The following attributes uniquely identify an asset meter in Maximo.
Attribute Name | Value |
---|---|
ASSETNUM | 1001 |
SITEID | BEDFORD |
ASSETMETER@METERNAME | RUNHOURS |
The Simple Tpae IF Connector supports only Link Criteria of type AND, and the following match operators:
The schema of the returned entries depends on the selected Object Structure and MBO. Each MBO has a set of unique attributes that needs to be specified when creating, updating, or deleting it. These attributes are marked as Required in the Configuration Editor.
The Simple Tpae IF Connector handles all exceptions that occur through the normal server hooks. If a failure cannot be handled, the corresponding AssemblyLine Error hook is started. The following exceptions are unique to this connector:
If an Assembly line with a Simple Tpae IF Connector fails, you can retrieve additional information about the error as follows:
task.logmsg("ERROR", "An exception occurred.");
mxConn.connector. extractMaximoException(error);
task.dumpEntry(error);
19:31:44 CTGDIS003I *** Start dumping Entry
19:31:44 Operation: generic
19:31:44 Entry attributes:
19:31:44 exception (replace): 'com.ibm.di.connector.maximo.exception.
MxConnHttpException: response: 404 - Not Found'
19:31:44 targetUrl (replace): 'http://9.156.6.14/meaweb/schema
/service/MXPersonService.xsd'
19:31:44 class (replace): 'com.ibm.di.connector.maximo.
exception.MxConnHttpException'
19:31:44 operation (replace): 'update'
19:31:44 status (replace): 'fail'
19:31:44 connectorname (replace): 'AddPerson'
19:31:44 body (replace): 'Error 404: BMXAA1513E -
Cannot obtain resource /meaweb/schema/service/MXPersonService.xsd.'
19:31:44 responseCode (replace): '404.0'
19:31:44 responseMessage (replace): 'Not Found'
19:31:44 message (replace): 'The HTTP server did not returned "HTTP OK".'
19:31:44 CTGDIS004I *** Finished dumping Entry
When using the Connector for the first time, perform the following steps:
To search, open the Filter and type the name of the Object Structure, or a partial name, in the Filter field of the Object Structure column. Then press ENTER.
A message box opens, asking if you want to generate a schema for each operation.
The Simple Tpae IF Connector parameters are:
<MBO>
<FIELD1 operator="oper"> </FIELD1>
<FIELD2> </FIELD2>
...
</MBO>
where:
The default value is 100.
The possible choices are:
Go to the TDI_install_dir/examples/SimpleTpaeIFConnector directory of your IBM® Tivoli Directory Integrator installation.