The application-specific information for attributes differs depending on whether the attribute is a simple attribute or an attribute that represents a child or an array of child business objects. The application-specific information for an attribute that represents a child also differs depending on whether the parent/child relationship is stored in the child or in the parent. For information on application-specific information for attributes that represent a child or array of child business objects, see Specifying an attribute's foreign key.
For simple attributes, application-specific information format consists of eleven name-value parameters, each of which includes the parameter name and its value. Each parameter set is separated from the next by a colon (:) delimiter.
The format of attribute application-specific information is shown below. Square brackets ([ ]) surround an optional parameter. A vertical bar (|) separates the members of a set of options. Reserve the colon as a delimiter.
CN=col_name:[FK=[fk_object_name.]fk_attribute_name]: [UID=[AUTO|uid_name| schema_name.uid_name[=UseIfMissing]|CW.uidcolumnname [=UseIfMissing]]]: [CA=set_attr_name| ..set_attr_name]:[OB=[ASC|DESC]]:[UNVL=value]: [ESC=true|false]:[FIXEDCHAR=true|false]: [BYTEARRAY=true|false]:[USE_LIKE=true|false: [WILDCARD_POSITION=non-negative number|NONE|BEGIN|END|BOTH]]: [CLOB=true]
The only required parameter for a simple attribute that you want the connector to process is the column name. For example, to specify only the column name, use the following format:
CN=customer_id
Table 8 describes each name-value parameter.
Table 8. Name-value parameters in attribute application-specific information
Parameter | Description |
---|---|
CN=col_name | The name of the database column for this attribute. |
FK=[fk_object_name.]fk_attribute_name | The value of this property depends on whether the parent/child relationship is stored in the parent business object or the child If an attribute is not a foreign key, do not include this parameter in the application-specific information. For more information, see "Specifying an attribute's foreign key". |
UID=AUTO
UID=uid_name| schema_name.uid_name [=UseIfMissing] UID=CW.uidcolumnname[=UseIfMissing] | The connector uses this parameter to generate the unique ID for the
business object. If an attribute does not require generation of a
unique ID, do not include this parameter in the application-specific
information. See the PreserveUIDSeq property description for details on preserving the unique ID
during business object processing. For more information, see "Generating a business object's unique identifier".
|
CA=set_attr_name| ..set_attr_name | If set_attr_name is set to the name of another attribute within the current individual business object, the connector uses the value of the specified attribute to set the value of this attribute before it adds the business object to the database during a Create operation. The value of set_attr_name cannot reference an attribute in a child business object, but it can reference an attribute in the parent business object if there if set_attr_nameis preceded by the two periods. If you do not include this parameter in the application-specific information, the connector uses the value of the current attribute without copying the attribute's value (CA) from another attribute. |
OB=[ASC|DESC] | If a value is specified for this parameter and the attribute is in a child business object, the connector uses the value of the attribute in the ORDER BY clause of retrieval queries. The connector can retrieve child business objects in ascending order or descending order. Use ASC to specify retrieval in ascending order. Use DESC to specify retrieval in descending order. If you do not include this parameter in the application-specific information, the connector does not use this attribute when specifying retrieval order. |
UNVL=value | Specifies the value the connector uses to represent a null when it retrieves a business object with null-valued attributes. If you do not include this parameter in the application-specific information, the connector inserts a CxIgnore for the attribute's value. |
ESC=[true|false] | Determines whether the connector replaces all instances of each character
identified in the ReplaceAllStr property with the substitution strings also specified
in the ReplaceStrList property. If this parameter does not contain a
value, the connector uses the value of the ReplaceStrList property to make this determination.
|
FIXEDCHAR=true|false | Specifies whether the attribute is of fixed length when the columns in the table are of type CHAR, not VARCHAR. For example, if a particular attribute is linked to a column that is of type CHAR, the connector expects FIXEDCHAR in length; for the application specific information of that attribute specify FIXEDCHAR=true. Ensure that the MaxLength property of the attribute is of the CHAR length, which is specified in the database. By default, FIXEDCHAR=false. |
BYTEARRAY=true|false | If BYTEARRAY=true, the connector will read and write binary data to the database and will send that data as a string to InterChange Server Express. BYTEARRAY=false is the default. For more information, see "Working with binary data". |
USE_LIKE=true|false | Specifies whether the connector compares strings using the = operator or the LIKE operator. If USE_LIKE is set to true, wildcard queries can be performed by setting WILDCARD_POSITION. If USE_LIKE is set to false, the =operator will be used. |
WILDCARD_POSITION=non-negative
number|NONE|BEGIN|END|BOTH | If USE_LIKE is true, the WILDCARD_POSITION is used to specify the position that is the wildcard. This value can be any non-negative number, NONE, BEGIN, END, or BOTH. For example, using BEGIN will place the wildcard character in the first position of the string (%string). Using END will place the wildcard character in the last position of the string (string%). Using BOTH will place wildcard characters in both the first and last position in the string (%string%). |
CLOB=true | Only applicable for String Attribute Type. Specifies that the database column that corresponds to this attribute is a CLOBdatatype. |
The value of this property depends on whether the parent/child relationship is stored in the parent business object or the child:
If the value of fk_object_name does not match the type of the child business object, and the value of fk_attribute_name does not match the name of the attribute in the parent or child (as applicable), the connector cannot process this attribute as a foreign key. The case of the business object's name and the attribute's name is significant.
For example, assume that the Customer business object contains the Addr[1] attribute, which represents the Address child business object, and the AID attribute, which stores the primary key of the child business object as a foreign key. In this case, the application-specific information of the parent's foreign key attribute must contain the type of the child business object (Address) as well as the name of its primary key attribute (ID). In this example, the application-specific information of the AID attribute would include FK=Address.ID.
Multiple parent business objects can contain the same child business object, regardless of whether the child is stored with single cardinality or multiple cardinality, and regardless of whether the parent/child relationship is stored on the parent or on the child. However, all parent business objects that store the parent/child relationship must use identically named attributes to contain the child's primary key. Moreover, all child business objects that store the parent/child relationship must use identically named attributes to contain the parent's primary key. Figure 7 illustrates these relationships.
Figure 7. Example of relationships among business objects
Figure 7 illustrates the following relationships:
The application-specific information for the ORGS attribute might be:
KEEP_RELATIONSHIP=true
For more information on the KEEP_RELATIONSHIP parameter, see Application-specific information for attributes that represent children.
The application-specific information for the parentID attribute of each child in the array of Organizations contains the name of the column in the database that corresponds to the current attribute, and specifies the current attribute's foreign key by containing the name of the parent's primary key attribute; for example:
CN=ORG_ID:FK=ID
The application-specific information for the Addr attribute is:
CONTAINMENT=OWNERSHIP
The application-specific information for the AID attribute contains the name of the column in the database that corresponds to the current attribute, and specifies the current attribute's foreign key by containing the type of the child business object and the name of its primary key attribute; for example:
CN=FK_AD:FK=Address.ID
The application-specific information for the child's primary-key attribute is
CN=pk
The application-specific information for the SPID attribute is:
CONTAINMENT=NO_OWNERSHIP
For more information on the CONTAINMENT parameter, see Application-specific information for attributes that represent children.
The application-specific information for the Address SPID attribute contains the name of the column in the database that corresponds to the current attribute, and specifies the current attribute's foreign key by containing the type of the child business object and the name of its primary key attribute; for example:
CN=FK_SP:FK=StateProvince.ID
The application-specific information for the child's primary key attribute is:
CN=SP_ID
The application-specific information for the child's parentID attribute contains the name of the column in the database that corresponds to the current attribute, and specifies the current attribute's foreign key by containing the name of its parent's primary key attribute; for example:
CN=SD_ID:FK=ID
The connector uses the UID parameter to generate the unique ID for the business object. The connector generates unique IDs by using sequences (as Oracle does), or counters (which are structured as tables), and then issues the INSERT statement.
Microsoft SQL Server does not require that the ID be passed in an INSERT statement. Instead, it generates the ID at the time of creation. After successful creation of the business object, the connector can retrieve and use this value.
The connector uses a sequence or counter to generate the ID value and then issues the INSERT statement:
For information on configuring the table's name, see UniqueIDTableName. The scripts for installing this table are:
\connectors\JDBC\dependencies\uid_table_oracle.sql \connectors\JDBC\dependencies\uid_table_mssqlserver.sql
See the PreserveUIDSeq property for information on preserving the unique ID sequence during processing.
Attributes that represent a single-cardinality child business object can specify whether the child is owned by the parent or shared among multiple parents.
Attributes that represent a single-cardinality child or an array of child business objects can specify the connector's behavior when updating the parent and a subset of the children.
The format of the application-specific information for attributes that represent a single-cardinality child business object is:
CONTAINMENT= [OWNERSHIP|NO_OWNERSHIP]
Set CONTAINMENT to OWNERSHIP to represent a single-cardinality relationship where the parent owns the child business object. Set CONTAINMENT to NO_OWNERSHIP to represent a single-cardinality relationship where the parent shares the child business object. Do not include the CONTAINMENT parameter when you represent a single-cardinality relationship that stores the relationship in the child rather than in the parent.
For more information, see Single-cardinality relationships and data without ownership and Single-cardinality relationships that store the relationship in the child.
For Update operations on an array of business objects that store the parent/child relationship in the child, there is a special value for the attribute that represents the child: you can set KEEP_RELATIONSHIP to true to prevent the connector from deleting existing child data that is not represented in the source business object.
For example, assume an existing contract is associated with an existing site, such as New York. Assume further that the connector receives a request to update a Contract business object that contains a single child business object that associates San Francisco as the site. If KEEP_RELATIONSHIP evaluates to true for the attribute that represents the site data, the connector updates the contract to add its association with San Francisco and does not delete its association with New York.
However, if KEEP_RELATIONSHIP evaluates to false, the connector deletes all existing child data that is not contained in the source business object. In such a case, the contract is associated only with San Francisco.
The format for this application-specific information is:
KEEP_RELATIONSHIP=[true|false]
Case is ignored in checking for this application-specific information.
If BYTEARRAY=true, the connector will read and write binary data to the database. Since there is no support for binary data in the current version of the WebSphere business integration system, the binary data is converted to a String and then sent to the integration broker. The format of this string is a hexadecimal number with 2 characters per byte. For example, if the binary data in the database is 3 bytes with the (decimal) values (1, 65, 255), the string will be "0141ff".