Archiving in Guidewire PolicyCenter

PolicyCenter supports archiving policy terms as serialized streams of data, with one serialized stream per PolicyPeriod entity in the term. Each serialized stream is an XML document. You can choose how to store the XML documents in an external system, as any of the following, for example:
  • Flat file
  • Document storage system
  • Database as a binary large object
  • Amazon S3 (Simple Storage Service) bucket

From the user perspective, PolicyCenter archives or retrieves a policy term. A policy term is the logical unit of archiving.

PolicyCenter does not store a policy term as a single XML document. Instead, PolicyCenter serializes and stores one XML document for every PolicyPeriod graph in the policy term. A PolicyPeriod graph means one PolicyPeriod object and its subobjects. The PolicyPeriod graph is the physical unit of archiving. PolicyCenter archives each PolicyPeriod graph in the term sequentially in an internally-defined order. PolicyCenter stops archiving that term if there are any errors with any PolicyPeriod.

After archiving, PolicyCenter deletes most PolicyPeriod subobjects. However, PolicyCenter retains the PolicyPeriod entity instance and its associated entity instances of type EffectiveDatedFields and Document. Additionally, in certain circumstances certain other objects are retained:

  • PolicyCenter deletes Note objects associated with the job of the archived policy period if and only if it has no associated activity.
  • PolicyCenter deletes UWIssueHistory objects if and only if it is an auto-approved issue
  • PolicyCenter deletes FormTextData objects only with the last remaining PolicyPeriod to archive in that term. In other words, it is always deleted, but in the last database transaction along with the last remaining archived PolicyPeriod in the term.

PolicyCenter documentation refers to a PolicyPeriod object as the root info object for that archived data. The name root info object refers to the RootInfo delegate, which the PolicyPeriod entity type implements. Some archiving APIs use the RootInfo object as a method argument or return type. For PolicyCenter, when you see RootInfo, this refers to a PolicyPeriod instance.

After archiving, PolicyCenter makes the PolicyPeriod data effectively immutable while that period is archived. However, within one policy term, at any given instant, it is possible that one or more periods are archived but not all. From the user interface standpoint, PolicyCenter considers a given policy term archived if one or more of the periods in the term is archived, even if not all are archived.