Each evidence type may map to a number of target rule classes, according to the configurations for the Active Evidence Row Rule Object Converter held on the system. However, for the sake of clarity, the rest of this section describes the behavior of the Active Evidence Row Rule Object Converter in the situation where an evidence type is mapped to a single rule class only.
When an Active Evidence Row Rule Object is requested during a CER calculation, the Active Evidence Row Rule Object Converter is invoked to populate that rule object. The Active Evidence Row Rule Object Converter will retrieve the active row for the evidence's correction set and use it populate the attribute values on the rule object.
The values of the evidence fields are used to map to identically-named rule attributes on the rule object. Any evidence field without a corresponding rule attribute is ignored. Evidence fields are defined by:
The evidence fields available are those defined by the dynamic evidence metadata for the evidence type (see the Cúram Dynamic Evidence Configuration Guide); and
The evidence fields available are those defined on the evidence-specific database table modeled for the static evidence type (see the Cúram Evidence Generator guide).
When a row of active evidence is converted to a rule object, then any rule attributes which are annotated with relatedEvidence will be automatically populated with rule objects for related evidence versions:
the attribute will be populated with the rule objects for the version(s) for the parent evidence item(s) of the evidence version; or
the attribute will be populated with the rule objects for the version(s) for the child evidence item(s) of the evidence version.
The type of the related evidence is identified from the type of the attribute, which can either be a rule class (extending ActiveEvidenceRow) or a list of such rule classes. The behavior of the Active Evidence Row Rule Object Converter differs according to whether a list is used:
Number of related versions found | Value populated when attribute type is a rule class | Value populated when attribute type is a List<rule class> |
---|---|---|
0 | null | Empty list |
1 | The rule object for the related instance found | A list with a single item (the rule object for the related instance found) |
many | (An exception is thrown at propagation time) | A list with the rule objects for all the related instances found |
Even if a real-world child object can only have one real-world parent, if that parent has data that changes over time, then each child version may relate to many parent versions.
For a rule attribute that holds related parent or child rule objects, you should model that rule attribute as a list of rule classes, unless you can guarantee that there will only ever be one active version of the related parent/child evidence (which would generally only be the case if the related evidence type does not store data which can undergo a change of circumstances).
Each rule class targeted by the Active Evidence Row Rule Object Converter must ultimately extend the PropagatorRuleSet.ActiveEvidenceRow rule class, and so will inherit the following rule attributes:
Populated from the correctionSetID value on the EvidenceDescriptor row, and used to uniquely identify the rule object (amongst other rule objects of the same rule class);
Populated from the caseID value on the EvidenceDescriptor row. If the evidence relates to an integrated case, the case ID will be that of an integrated case; if the evidence relates to a product delivery case, the case ID will be that of the particular product delivery that holds the evidence;
Contains a default rule to derive a description for the evidence rule object; sub-classes are free to override this description if required;
Populated from the effectiveFrom value on the EvidenceDescriptor row; will be null for evidence effective from the start of the case;
Populated from the evidenceDescriptorID value on the EvidenceDescriptor row; uniquely identifies the active EvidenceDescriptor row which contains the source of the data on the rule object. Note that this value will change when an evidence correction is activated, because at that point a different evidence row becomes the only active row in the correction set; and
Populated from the successionID value on the EvidenceDescriptor row.
In general, the Active Evidence Row Rule Object Converter ignores in-edit pending changes to evidence.
However, during manual determinations using in-edit evidence, the Active Evidence Row Rule Object Converter supports a special processing mode to allow in-edit pending changes to be taken into account. See Temporary Access to In-Edit Evidence Changes for more details.