Exclude entities reachable through two paths
Base data copy can produce incorrect results in the following situation:
- If an entity is not excluded, and
- That entity is reachable by foreign key or array through two paths, one of which is through an excluded entity and the other is not.
In personal auto, VehicleDriver entity provides an example as shown in the following illustration of an incorrect configuration.
- The VehicleDriver entity can be reach
through
PolicyDriverandPersonalVehicle. However, onlyPersonalVehicleis excluded from base data copy. - Initially,
PersonalVehicleandVehicleDriverin Version #1 and Version #2 have the same values.The following illustration shows changes that happen when the agent edits policy Version #2.
- The agent edits Version #2 and makes the following
changes:
- Removes the Ford and the
VehicleDriverconnecting Susan to the Ford. - Adds a Chevy and a
VehicleDriverconnecting Susan to the Chevy.
The following illustration shows the problems that base data copy encounters.
- Removes the Ford and the
- When the agent saves the edits, PolicyCenter does the base data copy.
Removing the Ford and adding the Chevy is not a problem because
PersonalVehicle is side-by-side data and does not affect other
versions. However, VehicleDriver is a base data entity and must be the
same in all versions. In Version #1, the Vehicle field points to the
Ford. In Version #2, it points to the Chevy. Version #1 would contain bad data if base
data copies Vehicle=Chevy to Version #1.
The VehicleDriver entity is reachable through two paths. Therefore, Guidewire recommends making the VehicleDriver entity side-by-side data by excluding it from base data copy, as shown in the following illustration.
- Base data copy excludes both the
PersonalVehicleandVehicleDriverentities. - It does not matter that the
PersonalVehicleandVehicleDriverdiffer between the versions because base data copy excludes them.
