Selecting a deciding class
Sometimes you must map more than one class in a source to a single class in the target. For example, suppose that the target has a single Computer class but the source has multiple classes for Computer, such as Client, BIOS, and RAM. When creating expressions, if you use multiple classes in the source to migrate data into a single class in the target, Integration Composer adds each class in the source to the list of values for the Deciding Class drop-down list in the Target pane.
You can select a deciding class from the drop-down list. This selection lets you control the number of instances Integration Composer creates in a target when more than one class in a source is mapped to a target class. Integration Composer creates target instances based on the number of instances of the deciding class that exist in the source.
For example, suppose that information is mapped from the Client, BIOS, and RAM classes in the source to the Computer class in the target. Client is selected as the deciding class. When you execute the mapping, for every instance of Client that exists in the source, Integration Composer creates an instance of Computer in the target.
You can map multiple properties in a source to a single class in the target, without designating a deciding class. In this case, Integration Composer creates one instance in the target using the first instance in the source that meets the criteria. You must select a deciding class if you want multiple instances in the target.
In the following cases, you are not dealing with multiple instances. Consequently, it is not necessary to select a deciding class:
- You mapped only one source class to a target class, or
- You used a literal value in the Expression field and did not map any source classes to the target class. In this case, Integration Composer creates only one instance in the target for each parent class.
You can map to a literal, without selecting a deciding class. In this case, Integration Composer creates an instance in the target whether there is an instance in the source. If you map to a literal and you do not want an instance in the target when there is no instance in the source, select a deciding class. Then Integration Composer does not create an instance in the target if no instance exists in the source.
If a class is the root class and therefore has no parent, then Integration Composer creates only one instance.