---
title: clsTask
summary: API reference for clsTask.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Tasks
reference_type: package
---

# clsTask

Abstract BOF business object that defines the reusable task contract used by concrete SAIF task implementations.

## Purpose
- Own the shared task state, BOF lifecycle integration, Oracle persistence hooks, and task rule registration.
- Define the abstract members that concrete task types must implement.

## Context
- Namespace: `SAIF.Business.Tasks`
- Assembly/package: `SAIF.BOF.Business.Tasks`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ActionCode | `MustOverride ReadOnly Property As String` | Return the action code that identifies the completion action for the concrete task type. |
| CategoryCode | `Property As String` | Get or set the task category code. |
| ClaimID | `Property As Decimal` | Get or set the optional claim identifier. |
| CreateDate | `ReadOnly Property As Date` | Return the task creation timestamp. |
| CreateUser | `ReadOnly Property As String` | Return the user who created the task. |
| DisplayField1 | `MustOverride ReadOnly Property As String` | Return the first concrete display field exposed by the task type. |
| DisplayField2 | `MustOverride ReadOnly Property As String` | Return the second concrete display field exposed by the task type. |
| DisplayField3 | `MustOverride ReadOnly Property As String` | Return the third concrete display field exposed by the task type. |
| ImageSeqNum | `Property As Decimal` | Get or set the optional image sequence number. |
| MailID | `Property As String` | Get or set the assignee mail ID. |
| IsMailIDModified | `ReadOnly Property As Boolean` | Indicate whether `MailID` changed from its original value. |
| IsTaskDateModified | `ReadOnly Property As Boolean` | Indicate whether the underlying task-date smart value changed from its original value. |
| PolicyNumber | `Property As Decimal` | Get or set the optional policy number. |
| PriorityCode | `Property As String` | Get or set the task priority code. |
| RequiresNotePadEntry | `MustOverride ReadOnly Property As Boolean` | Indicate whether the concrete task requires a notepad entry when completed. |
| SourceCode | `MustOverride ReadOnly Property As String` | Return the source-system code for the concrete task type. |
| SourceSystem | `MustOverride ReadOnly Property As TaskSourceSystem` | Return the source-system enum value for the concrete task type. |
| TaskDate | `Property As Date` | Get or set the due or review date, applying `TaskDateModifier` behavior during assignment. |
| TaskDateModified | `ReadOnly Property As Boolean` | Indicate whether assigning `TaskDate` forced an automatic workday adjustment. |
| TaskSecurity | `Property As String` | Get or set the task security tag. |
| TaskSeqNum | `ReadOnly Property As Decimal` | Return the task sequence identifier. |
| Text | `Property As String` | Get or set the task body text. |
| UpdateDate | `ReadOnly Property As Date` | Return the last update timestamp. |
| UpdateUser | `ReadOnly Property As String` | Return the last update user. |
| MyCriteria | `ReadOnly Property As CriteriaBase` | Expose the criteria object used to drive BOF retrieve/insert/update/delete calls. |
| SetClaimIDNull() | `Sub` | Mark the optional claim identifier as empty. |
| SetImageSeqNumNull() | `Sub` | Mark the optional image sequence number as empty. |
| SetPolicyNumberNull() | `Sub` | Mark the optional policy number as empty. |
| IsClaimIDNull() | `Function As Boolean` | Report whether the claim identifier is empty. |
| IsImageSeqNumNull() | `Function As Boolean` | Report whether the image sequence number is empty. |
| IsPolicyNumberNull() | `Function As Boolean` | Report whether the policy number is empty. |
| IsUpdateDateNull() | `Function As Boolean` | Report whether the update date is empty. |
| IsUpdateUserNull() | `Function As Boolean` | Report whether the update user is empty. |
| Equals(objA, objB) | `Shared Function(ByVal objA As Object, ByVal objB As Object) As Boolean` | Compare two objects as `clsTask` instances. |
| Equals(inObject As Object) | `Overrides Function(ByVal inObject As Object) As Boolean` | Compare this task to another object by task identity. |
| Equals(inObject As clsTask) | `Function(ByVal inObject As clsTask) As Boolean` | Compare this task to another `clsTask` by `TaskSeqNum`. |
| GetHashCode() | `Overrides Function As Integer` | Return a hash code based on `TaskSeqNum`. |
| ToString() | `Overrides Function As String` | Return the formatted task date and task text. |
| CopyTo(inMailID) | `MustOverride Function(ByVal inMailID As String) As iTask` | Create a concrete task copy for another assignee. |
| MarkCompleted() | `MustOverride Sub` | Apply the completion behavior defined by the concrete task type. |
| Append(inText) | `Overridable Sub(ByVal inText As String)` | Append text to the current task body. |
| Pend(inTimeSpan) | `Overridable Sub(ByVal inTimeSpan As TimeSpan)` | Shift the task date by the supplied time span. |

## Behavioral notes
- Routes single-task retrieve/insert/update/delete work to `pk82036_task` lifecycle calls.
- Registers and enforces [BR-001](../../business-rules.md#br-001-valid-source-and-category-combination), [BR-002](../../business-rules.md#br-002-task-date-must-be-current-or-future), [BR-003](../../business-rules.md#br-003-due-date-adjusted-to-a-workday-warning), [BR-004](../../business-rules.md#br-004-task-category-code-is-required), [BR-005](../../business-rules.md#br-005-source-system-code-is-required), [BR-006](../../business-rules.md#br-006-priority-code-is-required), and [BR-007](../../business-rules.md#br-007-mail-id-is-required).
- Performs BOF row-count checks after insert, update, and delete operations through [BR-008](../../business-rules.md#br-008-task-insert-must-affect-one-row), [BR-009](../../business-rules.md#br-009-task-update-requires-a-current-row-version), and [BR-010](../../business-rules.md#br-010-task-delete-requires-a-current-row-version).

## Constraints and usage notes
- Concrete subclasses must implement the abstract members before the type is usable.
- `TaskDateModifierType` controls whether assigned task dates stay unchanged or move to a neighboring workday.

## Sources
- `Business\SAIF.Business.Tasks\clsTask.vb`
