---
title: SAIF.Business.Tasks.Claim business rules
summary: Enumerated business rules with per-rule trigger, enforcement, and outcomes.
status: draft
owner: SAIF
last_reviewed: 2026-07-30
library: SAIF.Business.Tasks.Claim
reference_type: package
---

# SAIF.Business.Tasks.Claim business rules

This page captures business rules enforced by this library.

## BR-001: Claim number must be valid

| Field | Value |
| --- | --- |
| **Statement** | Claim tasks require a valid claim number before they can be saved. |
| **Trigger** | When `clsClaimTask` validates `ClaimNum`. |
| **Enforcement** | Rule data `ClaimTask1` runs at level one and raises a validation message when the claim number is invalid. |
| **Outcome** | Invalid claim numbers block the save. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-002: Task dates cannot be more than two years in the future

| Field | Value |
| --- | --- |
| **Statement** | Claim-task dates must not be more than two years after the current date. |
| **Trigger** | When `clsClaimTask` validates a save. |
| **Enforcement** | Rule data `ClaimTask2` checks the task date during validation. |
| **Outcome** | Out-of-range task dates raise an error. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-003: Mail ID must be valid

| Field | Value |
| --- | --- |
| **Statement** | A claim task with a mail ID must pass mail-ID validation. |
| **Trigger** | When `clsClaimTask` validates the task user context. |
| **Enforcement** | Rule data `ClaimTask3` applies the validation check. |
| **Outcome** | Invalid mail IDs block the save. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-004: Task text is required

| Field | Value |
| --- | --- |
| **Statement** | Claim tasks require non-empty descriptive text. |
| **Trigger** | When a claim task is saved. |
| **Enforcement** | Rule data `ClaimTask4` validates the text property. |
| **Outcome** | Blank task text raises an error. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-005: Task text is limited to 4000 characters

| Field | Value |
| --- | --- |
| **Statement** | Claim-task text cannot exceed 4000 characters. |
| **Trigger** | When a claim task is saved. |
| **Enforcement** | Rule data `ClaimTask5` checks text length. |
| **Outcome** | Oversized task text raises an error. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-006: External RTW assignments must belong to the claim

| Field | Value |
| --- | --- |
| **Statement** | External RTW tasks can be assigned only when the RTW resource is assigned to the claim. |
| **Trigger** | When `clsClaimTask` saves a task that requires RTW validation. |
| **Enforcement** | Rule data `ClaimTask6` performs the conditional claim-assignment check. |
| **Outcome** | Unassigned RTW references raise a validation error. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-007: Coverage B task claim numbers must be valid

| Field | Value |
| --- | --- |
| **Statement** | Coverage B task saves require a valid claim number. |
| **Trigger** | When `clsCoverageBTask` validates a save. |
| **Enforcement** | Rule data `COVERAGEBTASK1` validates the claim number. |
| **Outcome** | Invalid claim numbers block Coverage B task saves. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsCoverageBTask.vb` |

---

## BR-008: Coverage B task text is required

| Field | Value |
| --- | --- |
| **Statement** | Coverage B tasks require descriptive text. |
| **Trigger** | When a coverage-B task is saved. |
| **Enforcement** | `CommonBusinessRules.TextRequired` is applied by the task object. |
| **Outcome** | Missing task text raises a validation error. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsCoverageBTask.vb` |

---

## BR-009: Batch task generation requires a valid claim ID

| Field | Value |
| --- | --- |
| **Statement** | The task generator requires a valid claim ID before generating tasks. |
| **Trigger** | When `clsClaimTaskGenerator` validates generation input. |
| **Enforcement** | Rule data `clsClaimTaskGenerator01` validates `ClaimID` at level three. |
| **Outcome** | Invalid claim IDs prevent batch generation. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTaskGenerator.vb` |

---

## BR-010: Additional claim fields come from the Oracle package contract

| Field | Value |
| --- | --- |
| **Statement** | Additional claim-identification, policy, and security-flag fields are populated through output parameters returned by `PK82284_CLAIM_TASK.SELECT_ADDITIONAL_FIELDS`. |
| **Trigger** | When `clsClaimTask.Criteria` loads extra claim fields for the task object. |
| **Enforcement** | The `extrasql` stored-procedure call passes one input claim ID and receives `ClaimNum`, `SAIFClaimNum`, `WorkerName`, `PolicyName`, `WorkStatus`, `conflictFlag`, `exposureCode`, `healthIssue`, and `hostileWrkr` through the Oracle package contract. |
| **Outcome** | Claim-task reads return hydrated claim metadata and security-indicator values without duplicating the derivation logic in the BOF class. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb` |

---

## BR-011: Restricted claim attributes mask the worker name on task lists

| Field | Value |
| --- | --- |
| **Statement** | A claim task's worker name is replaced with "Confidential" when the requesting user lacks access to a restricted claim attribute (exposure, health issue, hostile worker, or worker conflict) carried by that task. |
| **Trigger** | When `clsMyTaskCollection.AfterRetrieve` loads the tasks returned for a "my tasks" query. |
| **Enforcement** | `AfterRetrieve` resolves the caller's `ExposureAccess`, `ConflictAccess`, `HealthIssueAccess`, and `SecuredAccess` flags via `ClaimServices.HasExposureAccess`, `HasConflictAccess`, `HasCollateralAccess`, and `HasSecureAccess`, then overwrites `Task.WorkerName` with `"Confidential"` for any task where `IsExposure`, `isHealthIssue`, `isHostileWrkr`, or `IsWorkerConflict` is true and the matching access flag is false. |
| **Outcome** | Restricted claim attributes are hidden from the worker name shown in the caller's task list without altering the underlying claim data. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsMyTaskCollection.vb` |

---

## BR-012: Coverage B task due dates are bounded to one year

| Field | Value |
| --- | --- |
| **Statement** | A Coverage B task's due date must fall between today and one year from today. |
| **Trigger** | When `clsCoverageBTask.OverrideRules` processes the inherited `TASK2` due-date rule result on a dirty, non-deleted task. |
| **Enforcement** | `OverrideRules` replaces the base rule's result and message with "Error: Due date must be between today and one year from today." whenever `TaskDate` is before today or after one year from today, overriding the wider two-year window enforced by the base `clsTask` due-date rule. |
| **Outcome** | Coverage B tasks with an out-of-range due date are blocked from saving. |
| **Source** | `Business\SAIF.Business.Tasks.Claim\clsCoverageBTask.vb` |

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Tasks.Claim\clsClaimTask.vb`
- `Business\SAIF.Business.Tasks.Claim\clsClaimTaskGenerator.vb`
- `Business\SAIF.Business.Tasks.Claim\clsCoverageBTask.vb`
- `Business\SAIF.Business.Tasks.Claim\clsMyTaskCollection.vb`
