Define Advanced Properties for a Relationship
Use the Advanced page in the Relationship Properties window to define advanced properties for a relationship.
Define the following relationship properties:
- Advanced Options: Options for deleting child objects when parent objects are deleted, making records in the relationship read-only, reloading the relationship when constraints change.
- Load Options: Options for loading relationship data (load all data, load only keys, or load based on size).
- Groups: Options for defining group member type when child records are added (only applicable if the child object is a Group Object).
- Attributes: Additional pieces of information (or meta-data) that can be associated with the relationship. Some attributes are automatically set, but others must be provided manually.
Many of the settings on this page can impact performance. For guidance, see Relationships and Performance.
To define advanced properties for a relationship:
- Open the Relationship Editor. See Open the Relationship Editor.
- Select the Advanced page, and then define the following options:
- Delete children with parent (Owns Relationships only): Select this option to delete child objects when the parent object is deleted.
- Read-only: Select this option to make records in the relationship read-only. Users can view records for the relationship, but cannot add or remove records.
- Load immediately: Select this option to load the child object when the parent is loaded. If this option is cleared, the child object may not be loaded until it is needed.
This check box can affect system performance. Only change this setting if absolutely necessary.
- Automatically create record (Owns Relationships only): Select this option to automatically create a child object when the parent is created.
- Children must be in final state before owner can go into final state: Select this option to ensure that child objects are in a final state before the parent object can be set to its final state. For this setting to be effective, both the objects in the relationship must have lifecycles defined with a status designated as the final state.
If one or both objects in the relationship has no associated lifecycle, this option is not visible.
- Reload Relationship when constraint Fields change: Select this option to reload the relationship data when a field that defines one of its constraints changes values.
Normally, relationships are loaded and updated based on specialized controls (tabs, related item selectors). However, if you have relationship constraints based on fields whose values can change for other reasons, the data in the relationship will not be up to date if the values in those fields change. For example, the SLA related to an Incident might change based on the selected Incident category and priority, which are relationship constraints. When the Priority or Category fields change, the relationship should be reloaded to show the relevant SLA.
- Don't load when constraints are blank: Select this option to not load the relationship if the fields that define its constraints do not contain any values.
- Exclude Relationship from Grid customization (Link Relationships only): Select this option to prevent users from personalizing the Tab Grid for linked records that appear in the parent object's form arrangement.
- Define load options for the relationship:
- Load everything (default): Select this option to load the entire table of related data into memory.
- Load keys only: Select this option to load only the keys for the relationship, along with pages of records as needed. Keys are the primary key for a record row and are usually the RecID column. If loading from a grid, the number of fields is limited to those on the grid.
- Load based on size: Select this option to have the system decide how to load data. If the estimated dataset exceeds 3 MB, only keys are loaded. If the estimated dataset does not exceed 3 MB, the entire dataset is loaded. The dataset estimate is based on the definition type, such as the number of fields and their type, as well as the amount of text stored in the fields.
- Default Sort Field When Loading Keys: If loading keys or loading based on size, select a field from the related Business Object to determine the order in which the keys are loaded.
- Ascending: Select this option to sort the data in ascending order (example: 0-10, A-Z) based on the selected field.
- Define advanced Group options for the relationship:
The Groups section is only available if the child object is part of a group.
- Select the down arrow to expand the Groups section.
- Define options for determining the type of group member that is created when a child object is added to the relationship:
- Type is set manually (when added): Select this option to allow users to select the group member that is used as the child in the relationship. No member is used until a user selects it.
- Type automatically changes based on:
- Field: Select to use the value from a field in the parent object to determine which group member to use. Then, select a field in the drop-down list. For example, in an Incident Links Customer Relationship, Incident might have a Customer Type field that can hold the values External or Internal.
- Expression: Select this option to use an expression that returns the group member type. Then, select the ellipsis to open the Expression Manager, where you can select an existing expression or create a new one; or select the Custom Expression button to create a custom expression.
- Define additional options for determining when a group member is added to the relationship:
- Only auto-create when Group Member type can be determined: Select to automatically create a group member only after the group member type is determined. If the group member type is based on a field or an expression, the system will not necessarily know which group member to create until the field has been populated or the expression has been evaluated. If you check this option, the system will wait until there is a value in the field or until the expression is evaluated before it creates a group member.
- Set Group Member ID in parent: Select this option to populate the group member type field in the parent object with the Group Member's RecID when the group member is created.
This option is only available if you selected to determine the group member type based on a field in the parent object.
- Transfer fields when Group type changes: Select this option to transfer fields from one group member to another when the group member type changes.
- Define attributes for the relationship. Database attributes are used to indicate special attributes used for a Business Object’s database table. Most of these are set by the system.
- General Attributes: Select the down arrow to expand the General Attributes section. Then, select an empty row and provide the attribute name and associated value (if applicable).
- Database Attributes: Select the down arrow to expand the Database Attributes section. Then, select an empty row and provide the attribute name and associated value (if applicable).
Only advanced users should define attributes. For more information about attributes, please contact Cherwell Support.
- View additional advanced information for the relationship:
- Relationship ID: Select to open a window that displays the internal ID that is used for the relationship. This ID can be used instead of the relationship's name in many places in the system.
- Find Dependencies: Select to scan the relationship for a list of other definitions in the system that use this relationship. When the scan is finished, the Definition Dependencies window opens, listing the dependent definitions.
- Select OK.
- Publish the Blueprint to commit the changes, or save the Blueprint to continue making other changes.