Revisioning properties reference

This topic includes revisioning properties reference information.

Revisioning properties on a policy

The policy entity Policy is an important entity within PolicyCenter. A policy conceptually serves as a container of contractual periods. From a data model perspective, a policy serves as a container for all versions of its PolicyPeriod entities, which is a container for its revisioned subobjects.

The following table lists important revisioning properties on a Policy entity instance:

Property

Type

Description

Periods

PolicyPeriod[]

An array of all PolicyPeriod entities associated with this policy including:

  • All contractual policy periods (including renewals, both bound and unbound)
  • All bound enforced branches
  • All bound historical (superseded) branches
  • All draft branches

You typically do not access this property directly. This property contains much data that must be filtered in typical use. Instead, use the BoundPeriods property.

BoundPeriods

PolicyPeriod[]

An array of all bound PolicyPeriod entities associated with this policy including:

  • All contractual policy periods
  • All bound branches, even superseded ones

You typically do not access this property directly because it contains too much data that must be filtered in typical use. Instead, query to find only the branch you need, such as only the most recent bound branch.

Revisioning properties on a policy period

A policy revision at one point in model time is represented by the PolicyPeriod entity instance. It is the root of a graph of revisioned entities, collectively the PolicyPeriod and its subobjects are referred to as a branch.

The following table lists important revisioning-related properties:

Property

Type

Meaning

PeriodStart

Date

Date the branch becomes effective. All entities within the branch's graph must have effective and expiration dates on or after this date.

PeriodEnd

Date

Date the period expires. All entities within the branch's graph must have effective and expiration dates on or before this date.

SliceDate

Date

The slice date is the current view, or slice, of the branch (and its entities) in effective time. If the slice date is null then the branch is being viewed/edited in window mode. Any edits made with the slice date set are made in that effective time, splitting the entity instance if necessary. For more information, see Slice mode and window mode overview. This is a read-only property. To get this PolicyPeriod at a different slice date, use the getAsOf method, described further in Slice mode APIs.

Note: PolicyCenter never persists the slice date value itself in the database. The slice date property exists as a special property on the in-memory entity instance that Gosu can access.

Slice

Boolean

If true, this PolicyPeriod is in slice mode (see SliceDate). Effectively, this is a shortcut to check if SliceDate is non-null. This is a read-only property. To get this PolicyPeriod at a different slice date, use the getAsOf method, described further in Slice mode APIs.

Promoted

Boolean

If true, this PolicyPeriod was bound, although it is not necessarily the most recent promoted branch for that contractual period. The enforced PolicyPeriod is the one with the highest model number among ones with the same PeriodID. You cannot edit a promoted branch. You must create a new un-promoted branch from a promoted branch and edit it. Until it is promoted, the PolicyPeriod represents an in-progress workspace for a job. This is a read-only property.

ModelDate

Date

On promotion, the model date is set to the current real world date and time. This is a read-only property.

ModelNumber

Integer

On promotion, a branch is assigned a new model number, one greater than the previously most recently promoted branch on its period. This is a read-only property. In contrast, term number, starts with 1 and increments by 1 only for renewals or rewrites.

TermNumber

Integer

The number indicates the term of the policy period, starts with 1 and then increments by 1 for every renewal or rewrite. The built-in PolicyCenter integration with BillingCenter uses the term number instead of the model number to identify a policy.

MostRecentModel

Boolean

Indicates that this PolicyPeriod is the most recently bound branch for this contractual period. When a branch binds, if another branch exists in that contractual period:

  • PolicyCenter sets this to false on the previous branch.
  • PolicyCenter sets this to true on the newest branch in the same database transaction.

Technically, this flag is redundant with checking for the highest model number (ModelNumber) for all PolicyPeriod entities in this contractual period (the same PeriodID). However, use this property to simplify queries that work only with the latest bound branch in any given period. This is a read-only property.

PeriodID

Integer

All branches in the same period share the same PeriodID. This is a read-only property.

BasedOn

Integer

The branch ID of the branch this revision was based on. For a standard policy change or renewal, this value is straighforward. However, if a job was preempted by an earlier bound job and it is handled, PolicyCenter creates a new branch. Next, PolicyCenter sets the BasedOn property on the new branch as appropriate. The new value reflects the revised branch ordering after applying changes. For related information, see Preempted jobs. This is a read-only property.

Id

Integer

This is the Id property present in all Guidewire entities. It is notable because PolicyPeriod subobjects reference this PolicyPeriod by their BranchValue property, which is a cross-reference to this PolicyPeriod property. This is a read-only property.

Note: From Gosu, the foreign key property appears as the BranchValue property, although the database column name is BranchID. If you use the query builder APIs, specify this property as BranchValue. For more information, see the BranchValue row in the table in Revisioning properties on PolicyPeriod subobjects

Locked

Boolean

Indicates that a PolicyPeriod cannot be modified, either because the branch is bound, withdrawn, or discarded. This is enforced at the application level for the PolicyPeriod and all its subobjects. This is a read-only property.

Revisioning properties on PolicyPeriod subobjects

Each PolicyPeriod entity instance represents the root of a graph of revisioned entities at a specific model time. Each subobject contains various properties linking the object to:

  • its containing PolicyPeriod entity instance
  • multiple versions of this object across branches
  • multiple versions of this object in the same branch across effective time.

Each PolicyPeriod subobject belongs to one and only one PolicyPeriod and every subobject must have a non-null FixedID and BranchValue property.

The following table lists important properties related to revisioning on PolicyPeriod subobjects:

Property

Type

Meaning

EffectiveDate

Date

Date the entity instance becomes effective. If null, it is implicitly the PeriodStart of its branch.

ExpirationDate

Date

Date the entity instance expires (is no longer effective). If null, it is implicitly the PeriodEnd of its branch.

FixedID

Integer

Identifies a single object across contractual policy periods, both:

  • Within the same PolicyPeriod but with different effective dates
  • Across multiple PolicyPeriod entities in one contractual policy period

This value must be non-null.

BranchValue

Integer

Note: At the database layer, BranchValue is the BranchID column.

Foreign key to the PolicyPeriod entity instance that contains this entity instance. Within the same branch, all entities must share the same BranchValue value. This value must be non-null. This is a read-only property. This property is a cross-reference to the PolicyPeriod property called ID.

From Gosu, the foreign key property appears as the BranchValue property, although the database column name for that property is actually BranchID.

If you use the query builder APIs, specify this property as BranchValue:

var transactionQuery = Query.make(transactionType)

transactionQuery.subselect("BranchValue", CompareIn, periodQuery, "ID")

In contrast, when writing upgrade triggers and version checks, you typically want the actual column name:

update.set(wcLineColumn, policyLineQuery, "FixedID");

policyLineQuery.compare("ParticipatingPlanID", Relop.Equals, update.getColumnRef("FixedID"));

policyLineQuery.compare("BranchID", Relop.Equals, update.getColumnRef("BranchID"));

policyLineQuery.withDistinct(true);

Note:

Do not confuse BranchValue with the separate properties BranchName and BranchNumber. The properties BranchName and BranchNumber track alternate versions of the policy within the same job for the multi-version quoting in submission, policy change, and renewal jobs. Each version in a multi-version quoting job is a different draft branch, differentiated by the BranchName and BranchNumber properties in the user interface. BranchName and BranchNumber are not critical for managing branches.

VersionList

SOURCETYPEVersionList

For example, for a PersonalVehicle entity instance, its VersionList property is of type PersonalVehicleVersionList.

Contains a version list, which allows you to access properties with array data across effective time in window mode. For more details, see Slice mode and window mode overview.

BasedOn

Integer

The internal ID of the entity instance of this type that this entity instance was based on. For a standard policy change or renewal, this value is straightforward. However, if a job was preempted by an earlier bound job, PolicyCenter creates a new branch based on the most recent bound branch to handle the preemption. PolicyCenter discards the original branch with the original BasedOn value. This reflects the revised branch ordering after applying changes. For related information, see Preempted jobs and Details of merging and applying changes. This is a read-only property.