---
title: clsPolicyPeriodGroupAssociation
summary: API reference for clsPolicyPeriodGroupAssociation.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Group
reference_type: package
---

# clsPolicyPeriodGroupAssociation

Represents the effective-dated link between a policy period and its group membership details.

## Purpose
- Represents the effective-dated link between a policy period and its group membership details.

## Context
- Namespace: `SAIF.Business.Policy.Group`
- Assembly/package: `SAIF.Business.Policy.Group`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| CreateDate | `Public ReadOnly Property CreateDate() As Date` | Audit timestamp recorded when the row is created. |
| CreateUser | `Public ReadOnly Property CreateUser() As String` | Audit user recorded when the row is created. |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | Audit timestamp recorded when the row is updated. |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | Audit user recorded when the row is updated. |
| PolicyNumber | `Public Property PolicyNumber() As Decimal` | Policy number portion of the composite membership key. |
| PolicyPeriodEffectiveDate | `Public Property PolicyPeriodEffectiveDate() As Date` | Policy-period effective date portion of the composite membership key. |
| GroupAssociationCode | `Public Property GroupAssociationCode() As String` | Owning group association code used to locate related rows. |
| GroupAssociation | `Public Property GroupAssociation() As clsGroupAssociation` | Lazy-loaded group object for the stored group code.* |
| GroupMembershipEffectiveDate | `Public Property GroupMembershipEffectiveDate() As Date` | Date the policy period joins the group. |
| GroupMembershipExpirationDate | `Public Property GroupMembershipExpirationDate() As Date` | Optional date the policy period leaves the group.* |
| GroupTerminationDate | `Public Property GroupTerminationDate() As Date` | Optional date the membership is terminated.* |
| ChapterCode | `Public Property ChapterCode() As String` | Optional chapter within the group membership.* |
| GroupMembershipTypeCode | `Public Property GroupMembershipTypeCode() As String` | Optional code describing the membership type.* |
| IsValid | `Public Overrides ReadOnly Property IsValid() As Boolean` | Reports whether the policy-period group-membership row currently satisfies BOF validation rules.* |
| IsDirty | `Public Overrides ReadOnly Property IsDirty() As Boolean` | Reports whether the policy-period group-membership row has unsaved edits pending in BOF state tracking.* |
| SetGroupMembershipExpirationDateNull | `Public Sub SetGroupMembershipExpirationDateNull()` | Clears the corresponding optional field so the persistence layer can write a database null.* |
| SetGroupTerminationDateNull | `Public Sub SetGroupTerminationDateNull()` | Clears the corresponding optional field so the persistence layer can write a database null.* |
| SetChapterCodeNull | `Public Sub SetChapterCodeNull()` | Clears the corresponding optional field so the persistence layer can write a database null.* |
| SetGroupMembershipTypeCodeNull | `Public Sub SetGroupMembershipTypeCodeNull()` | Clears the corresponding optional field so the persistence layer can write a database null.* |
| IsGroupMembershipExpirationDateNull | `Public Function IsGroupMembershipExpirationDateNull() As Boolean` | Reports whether the membership expiration date is currently unset or database-null.* |
| IsGroupTerminationDateNull | `Public Function IsGroupTerminationDateNull() As Boolean` | Reports whether the membership termination date is currently unset or database-null.* |
| IsChapterCodeNull | `Public Function IsChapterCodeNull() As Boolean` | Reports whether the chapter code is currently unset or database-null.* |
| IsGroupMembershipTypeCodeNull | `Public Function IsGroupMembershipTypeCodeNull() As Boolean` | Reports whether the membership-type code is currently unset or database-null.* |
| Equals | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Compares another value with this policy-period group-membership row for business-object equality.* |
| Equals | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Compares another value with this policy-period group-membership row for business-object equality.* |
| Equals | `Public Overloads Function Equals(ByVal inObject As clsPolicyPeriodGroupAssociation) As Boolean` | Compares another value with this policy-period group-membership row for business-object equality.* |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Returns a hash code aligned with the policy-period group-membership row's business identity for collection lookups.* |
| ToString | `Public Overrides Function ToString() As String` | Returns a textual representation of the policy-period group-membership row for diagnostics or display.* |
| NewPolicyPeriodGroupAssociation | `Public Shared Function NewPolicyPeriodGroupAssociation(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As clsPolicyPeriodGroupAssociation` | Creates a new policy-period membership row seeded with the composite policy key ([BR-022](../../../../../business-rules.md#br-022-policy-period-group-membership-uses-a-composite-key)). |
| GetPolicyPeriodGroupAssociation | `Public Shared Function GetPolicyPeriodGroupAssociation(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As clsPolicyPeriodGroupAssociation` | Loads the group-membership row for the supplied policy number and policy-period effective date ([BR-022](../../../../../business-rules.md#br-022-policy-period-group-membership-uses-a-composite-key)). |
| PolicyNumber | `Public Property PolicyNumber() As Decimal` | Policy number portion of the composite membership key. |
| PolicyPeriodEffectiveDate | `Public Property PolicyPeriodEffectiveDate() As Date` | Policy-period effective date portion of the composite membership key. |
| New | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo)` | Creates a new BOF-backed policy-period group-membership row instance, optionally seeded with its key values for create or retrieve flows.* |
| New | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date)` | Creates a new BOF-backed policy-period group-membership row instance, optionally seeded with its key values for create or retrieve flows.* |

## Inherited public members

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `Property Rules As clsRulesManager` | Inherited rules manager that executes registered BOF validation handlers.† | `SAIF.Framework.Core — clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Starts the inherited BOF edit session for the object graph.† | `SAIF.Framework.Core — clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Rolls back the inherited BOF edit session for the object graph.† | `SAIF.Framework.Core — clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the inherited BOF edit session for the object graph.† | `SAIF.Framework.Core — clsBusinessBase` |
| SetPreviousLink | `Sub SetPreviousLink(item As ILinkItem)` | Maintains inherited linked-list navigation between BOF objects.† | `SAIF.Framework.Core — clsBusinessBase` |
| SetNextLink | `Sub SetNextLink(item As ILinkItem)` | Maintains inherited linked-list navigation between BOF objects.† | `SAIF.Framework.Core — clsBusinessBase` |
| InsertLinkAfter | `Sub InsertLinkAfter(item As ILinkItem)` | Inserts an inherited link after the current BOF object.† | `SAIF.Framework.Core — clsBusinessBase` |
| InsertLinkBefore | `Sub InsertLinkBefore(item As ILinkItem)` | Inserts an inherited link before the current BOF object.† | `SAIF.Framework.Core — clsBusinessBase` |
| RemoveLinks | `Sub RemoveLinks()` | Clears inherited object links in the BOF graph.† | `SAIF.Framework.Core — clsBusinessBase` |
| Error | `ReadOnly Property Error As String` | Surfaces inherited aggregate broken-rule text through `IDataErrorInfo`.† | `SAIF.Framework.Core — clsBusinessBase` |
| Item | `ReadOnly Property Item(columnName As String) As String` | Surfaces inherited per-member broken-rule text through `IDataErrorInfo`.† | `SAIF.Framework.Core — clsBusinessBase` |
| DumpState | `Public Sub DumpState()` | Emits inherited diagnostic state for the BOF object.† | `SAIF.Framework.Core — clsBusinessBase` |
| AllowCache | `Public Property AllowCache() As Boolean` | Controls whether the inherited BOF object may be cached.† | `SAIF.Framework.Core — clsBusinessBase` |

## Behavioral notes
- The object key is the policy number plus policy-period effective date ([BR-022](../../../../../business-rules.md#br-022-policy-period-group-membership-uses-a-composite-key)).

## Constraints and usage notes
- Most create, retrieve, and save flows rely on BOF criteria and data-portal behavior inherited from the framework base layer.†

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.
> Statements marked with `†` were retrieved from dependency library documentation via the Legends CLI RAG service.

## Sources
- `Business\\SAIF.Business.Policy.Group\\clsPolicyPeriodGroupAssociation.vb`
