In Cherwell, Business Objects can be linked together, using a link table to store the many-many relationships between 'parent' and 'child' objects. Precision Bridge can extract the information from the link table and this information can then be used for the creation of the same object relationships on the target platform.
The #OBJECT_RELATIONSHIPS Form
An additional source form is available for Cherwell source servers and is selectable as the source for a form mapping. Unlike other forms, which represent business objects, this form represents relationships between business objects.
This form is somewhat different from a standard business object form. The following restrictions apply:
- It is only available as a source form
- Key mappings are not supported
- Source filtering is restricted, and MUST be entered in a specific format (see below)
- Source count is not supported
- Use as a lookup source is not supported
Available Fields
The following fields are retrieved for each relationship, and used in constructing the target record. They can be used as any other source field in assignment expressions, reference mappings, lookups, value match mappings etc.
- ID (id) This is a concatenation of the object and related object id's
- The Parent Table (object_table_name)
- The Parent record ID (object_id)
- The Child Object ID (related_object_id)
- The Relationship Type Name (relationship_type_name)
Mandatory Source Filtering
Unlike other business objects, there is a requirement to provide certain information in the source filter as to what relationships you want to retrieve. This is due to the very specific requirements of the Cherwell API that Precision Bridge uses to obtain link information.
Two things need to be provided in the source filtering:
1. A Source Query with the format:
@@QRY('<parent table name>:<relationship type name>')
The <parent table name> value must be the name of the parent table (business object) for which you want to retrieve relationships. The <relationship type name> must be the name of a relationship where the parent table is the parent. Note that either value can be provided by a project variable rather than a hard-coded string value.
2. An Inclusion Filter that provides the Parent RecId values. This inclusion filter must use a previous migration set. The selected form mapping must have the same source as the parent table. The selected field must be the RecId.
Failure to configure the source filtering in exactly this way will result in a validation error when you apply the change.
The source filtering will therefore extract relationships where:
- The relationship's parent object is in the table/business object given by <parent table name> in the source filter query string.
- The relationship is named <relationship type name>
- The parent object was migrated in an earlier form mapping (referenced in the inclusion filter.
This means that only ONE named relationship type can be retrieved per form mapping. However, you can define multiple form mappings to retrieve other relationships in the same project.
Related Articles
Creating Object Relationships in Ivanti
Cherwell to Ivanti Link Migration Example
Comments
0 comments
Please sign in to leave a comment.