Archive entities and the Extractable delegate
All entities in the archive domain graph must
implement the Extractable
delegate. Entities outside the archive domain graph must not implement
the Extractable delegate.
The Extractable delegate
creates the ArchivePartition
column that PolicyCenter uses
during the archive process.
In Guidewire PolicyCenter, most entity types in
the archive domain graph implement the Extractable
delegate by inheritance through the EffDatedBase
entity.
See also
Specifying the Extractable delegate on entities
The following extension metadata definition
of the Document entity
shows that it implements the Extractable
delegate, which makes Document
part of the archive domain graph.
<internalExtension xmlns="http://guidewire.com/datamodel" entityName="Activity">
...
<implementsEntity name="Extractable"/>
...
</entity>
See also
Specifying the Extractable attribute on edge foreign
keys
In Guidewire PolicyCenter, an edge foreign key defines a reference link to another entity in the similar manner as a foreign key does. However, you use an edge foreign key in place of a standard foreign key to break a cycle of foreign keys in the data model.
If you add an edge foreign key to an entity that is part of the archive domain graph, set
the extractable attribute on the edge foreign key to
true. The value true causes PolicyCenter to add the Extractable delegate
to the associative table generated for the edge foreign key. In addition, the entity
type that the edge foreign key relates to must implement the
Extractable delegate.
extractable attribute is not set to
true for an edge foreign key on an entity that is part of the
archive domain graph, the server does not start. The following entity metadata definition illustrates this concept.
<entity xmlns="http://guidewire.com/datamodel"
desc="Policy Period allows a point in time reconstruction of all key policy attributes."
effDatedContainerField="Policy"
entity="PolicyPeriod"
exportable="true"
loadable="false"
lockable="true"
table="policyperiod"
type="effdatedbranch">
...
<edgeForeignKey desc="The workflow that is active from the perspective of the UI."
edgeTableName="PRActiveWorkflow"
exportable="false"
fkentity="PolicyPeriodWorkflow"
name="ActiveWorkflow"
extractable="true"
nullok="true"/>
...
</entity>
