Overview of the archive domain graph
The archive domain graph defines the cluster of related entity instances that PolicyCenter treats as a single aggregate for purposes of archiving data. The archive domain graph begins with a root entity type and ends at a boundary of related entity types.
|
Root |
The root of the archive domain graph
is a specific entity type. Starting with the root
entity type, the graph follows ownership
relationships in the data model to other entity
types until the boundary of the graph is reached.
In
PolicyCenter, the root entity type in the archive
domain graph is
|
|
Boundary |
The boundary of the archive domain
graph defines which entity types terminate the
traversal of owner relationships from the root and
thus prescribe the extent of entities within the
graph. In PolicyCenter, the boundary
includes the major entities that relate to the
PolicyPeriod entity type,
including effective dated entity types such as
|
In PolicyCenter, for an entity to be in the archive domain graph:
- The entity must implement the
Extractabledelegate. - The entity must have a foreign key relationship with an entity in the archive domain graph.
In PolicyCenter, most entity types in the archive domain graph implement the
Extractable delegate by inheritance through the
EffDatedBase entity.
All entities in the archive domain graph must set the entity
effDatedBranchType attribute to
PolicyPeriod. For example:
<entity xmlns="http://guidewire.com/datamodel" ...
effDatedBranchType="PolicyPeriod"
entity="BAStateCov"
type="effdated">
PolicyPeriod, and it implements the
RootInfo delegate. RootInfo
delegate, for example, Job and
Policy, among others. These entities are not in
the archive domain graph, however, because they do not set attribute
effDatedBranchType to
PolicyPeriod. Instead, PolicyCenter uses these entities during
purging of unnecessary data such as policy quotes not taken.
The archive domain graph is a directed acyclic graph
The archive domain graph is an example of a directed acyclic graph:
- It is a graph that comprises nodes and the relationships between the nodes.
- It is a directed graph because you can traverse a relationship in one direction only. For example, if node A and node B have a relationship, you can traverse from A to B or from B to A but not in both directions.
- It is a directed acyclic graph because the graph does not permit the traversal of cycles in the graph. For example, if you can traverse from node A to node B and from node B to node C, you then cannot traverse from C to A.
The PolicyCenter data model itself also is a directed acyclic graph based on foreign key relationships between entity types.
The archive domain graph and entity instance graphs
The archive domain graph is a subset of the of data model graph and begins with the root entity PolicyPeriod. There are two ways to think of the archive domain graph:
- The entity graph defines the archive root entity and the specific PolicyCenter entity types that the archive root owns.
- The instance graph is a single specific instance of the archive domain graph. It includes the archive root entity and the set of entity instances that link to the archive root.
It is important to fully understand the distinction between the two types of archive domain graphs.
Graph type |
Description |
|---|---|
Entity type |
An entity archive domain graph defines the set of entity types that the archive root entity owns. PolicyCenter builds this graph a single time at server startup and thereafter uses the graph to create individual instances of the archive domain graph. The PolicyCenter data model contains exactly one entity type archive domain graph. |
Instance type |
An instance archive domain graph is the graph of all individual entity instances that belong to the archive root. PolicyCenter builds this graph by following the foreign key links from the archive root, using the entity type graph to determine which keys to follow. The PolicyCenter database contains as many instances of the archive instance graph as there are instances of the archive root entity. It is possible to archive each separate instance of the archive domain graph. |
The archive domain graph and reference data
Within the PolicyCenter data model there are entity types outside the archive domain graph to which an entity type inside the graph refers through a foreign key link. Guidewire refers to these types of entities as reference entities or reference data. Although linked to an entity type inside the graph, PolicyCenter does not actually archive reference data during the archive process.
Guidewire requires that all such reference entities be retireable, and not just editable or versionable. Otherwise, if PolicyCenter actually deleted a reference entity (rather than just marking the entity as retired), attempting to retrieve the entity would cause a foreign key violation. The following example illustrates this concept.
Suppose that there exists an archive domain graph entity A that has a foreign key link to some reference data entity B. Suppose also that PolicyCenter archives an instance of entity A (and its link to an entity instance of B) at some point in time. A PolicyCenter user then deletes that particular instance of B, which remove it from the PolicyCenter database. At some later time, PolicyCenter attempts to retrieve the archived instance of entity A. However, as entity B no longer exists in the database, PolicyCenter generates a foreign key violation because the link from A points to nothing.
Reference data entities must not implement either of the following delegates:
ExtractableOverlap
If you do not mark reference entities correctly, PolicyCenter generates a fatal validation error at server startup.
