To use the connector for PSR (Product Service Requests), LSR (Local Service Request), or DLR (Design Layout Report) modules, you need to create two types of objects:
The connector uses the Java.Reflection class to dynamically call MetaSolv APIs to exchange data with the application. To do this, the connector requires meta-objects. Meta-objects contain the information needed to build dynamic calls to the MetaSolv API. The meta-objects must be loaded into the repository, along with the application-specific business objects for MetaSolv.
You must create a meta-object for each top-level application-specific business object and verb that you intend to use. You do not need to create individual meta-objects for child business objects. The meta-object is a flat, non-hierarchical object.
For example, the PSRCustomerAccount business object requires the following meta-objects, one for each of the PSRCustomerAccount verbs:
The meta-objects all have a similar set of attributes and properties. You can use one meta-object as a model for creating all others, with changes to just a few values.
The following example shows the MO_MetaSolv_Customer_Create meta-object, with italics distinguishing the values that you can change if you use this text as a model for another meta-object:
[BusinessObjectDefinition] Name = MO_MetaSolv_Customer_Create Version = 1.0.0 [Attribute] Name = methodToCall Type = String Cardinality = 1 MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false AppSpecificInfo = importNewCustomerAccount IsRequiredServerBound = false [End] [Attribute] Name = javaClass Type = String Cardinality = 1 MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = PSRCustomerAccount Type = MetaSolv_Connector_Object ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = 7:MetaSolv.CORBA.WDIPSR.data.PSRCustomerAccount IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String Cardinality = 1 MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Delete [End] [Verb] Name = Update [End] [End]
The following table describes the attribute properties that have different
values for different meta-objects, and how the connector interprets
them:
Property | Meaning |
---|---|
Name (For top-level Business Object Definition) | Name of this meta-data business object |
AppSpecificInfo (For the methodtoCall attribute) | The name of the MetaSolv API to be called by the connector, such
as:
ImportNewCustomerAccount |
Name (For attribute that has Type=MetaSolv_Connector_Object; creates the business object for a Create or Update) | The name of the business object being referenced by this meta-object,
such as:
PSRCustomerAccount |
Name (for the primary key in a Retrieve) | A string that is the primary key value for retrieving the business
object. For example, for PSRCustomerAccount, the value is:
custAcctID |
AppspecificInfo (For attribute that has Type=MetaSolv_Connector_Object) | The Java class for the business object being referenced, such as:
7:MetaSolv.CORBA.WDIPSR.data_v2. PSRCustomerAccount |
This section describes the basic procedure for creating a WebSphere Business Integration Adapter business object that is application-specific for the PSR (Product Service Request) feature of the MetaSolv application.
All MetaSolv PSR business tasks require that a MetaSolv Customer Account data entity exist. Consequently, a WebSphere Business Integration Adapter application-specific business object that corresponds to the Customer Account data entity must be created before any other business objects can be used for PSR tasks.
Creating the business object requires obtaining the PSRTypes_v2.idl file from the MetaSolv web site. After installing the .idl, consult The MetaSolv Object Discovery Agent (ODA)for detailed information on creating business objects with the MetaSolv ODA.
The connector extracts data from a business object in an all-String data format. In that process, the following data transformations take place:
The following table shows special considerations for using
application-specific data types:
Data type | Comments |
---|---|
String | The String is copied. Single quotation marks are replaced with a space, because the API cannot handle single quotation marks. |
Long | If the string representing the attribute value is not of the correct number format, an error message is logged and processing of the business object stops. |
Float | If the string representing the attribute value is not of the correct number format, an error message is logged and processing of the business object stops. |
Character | The first character of the value of the business object attribute is used. |
Enumeration | The connector uses the values defined in the IDL files and converts them into a valid CORBA enumeration, and also converts a business object sent through CORBA back into a string representation. |
The connector requires that the text strings in the AppSpecificInfo field be structured in the following format:
The syntax for this format is:
data_type:class_package (if required)
The following table shows the numerals that indicate specific data types
for the MetaSolv API, and indicates whether additional data needs to be
appended:
Numeral | Data type | Additional data (if required) |
---|---|---|
0 | Integer/Long | none |
1 | Float/Double | none |
2 | Character | none |
3 | String | none |
4 | Enumerated Type | class package |
5 | Date Structure | class package |
6 | Object/Seq | class package |
7 | Union | class package |
8 | Other |
|
For example, to represent a long data type, in the AppSpecificInfo field of the business object, you enter:
0:
Similarly, the character and string data types are represented in the AppSpecificInfo field by the following:
2: 3:
If the data type is an enumerated type, a date structure, or a MetaSolv object or union, the full class package must appear in the AppSpecificInfo field. The class package tells the connector how to locate the associated Java file that it will be working with. For example, for a date structure, enter 5:MetaSolv.CORBA.WDIPSR.data.DateStruct in the AppSpecificInfo field, because that is the full class package to the DateStruct class that enables MetaSolv to handle date structures.
Not all attributes or sub-objects within the MetaSolv API are supported for
both exporting from and importing into the MetaSolv API. In order to
allow the use of the same business object in both directions, it is necessary
to avoid the setting of non-supported fields. This is achieved by an
additional parameter in the application-specific information, as described in
the following table:
Character | Meaning |
---|---|
N | Not supported in the API |
I | Supported only during import |
E | Supported only during export |
A | Supported during import and export (Default) |
This attribute is specified at the third place in the AppSpecificInfo field (for example, 0::I indicates an integer value that is supported only during inbound operations).
If this meta attribute is not specified, the connector assumes that the attribute is supported during import and export.
WebSphere Business Integration Adapter business objects are hierarchical: parent business objects can contain child business objects, which can in turn contain child business objects, and so on.
For the connector, the containment relationship between a parent and a child business object can have cardinality 1 or cardinality n. In addition, the connector supports a parent/child object relationship of type Union: