Skip to content

SAIF.Business.Tasks.Claim business rules

This page captures business rules enforced by this library.

BR-CT-01 Claim task must reference a resolvable claim

Field Value
Statement A claim task must reference a resolvable claim (ClaimID <> 0).
Trigger ClaimNum assignment (CheckRules("ClaimNum")) and rule validation before save
Enforcement clsClaimTask.ValidClaimNum
Outcome Fails at RuleCheckLevel.LevelOne with "Error: Claim Number is invalid."
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-02 Task due date cannot be more than two years in the future

Field Value
Statement A task due date may not be more than two years in the future (the sentinel Date.MaxValue is exempt).
Trigger Rule check on TaskDate; skipped when the task is deleted or not dirty
Enforcement clsClaimTask.FutureDateWarning
Outcome Fails at LevelOne with "Error: Task date is over 2 years in the future."
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-03 Assignee must hold task-update AD access

Field Value
Statement The assignee mailid must hold AD resource CTTaskUpdate, or else external resource RTWExternalUpdate.
Trigger MailID assignment (CheckRules("TaskUser")) while mailidNeedsValidation is set and the task is dirty and not deleted
Enforcement clsClaimTask.ValidMailId, via ObjectServices.HasResourceAccess / HasResourceAccessExternal
Outcome Fails at LevelTwo with "Error: MailID [x] does not have access to RTWExternalUpdate"; if only external access is held, BR-CT-06 is registered and validation continues
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-03a Assignee validation exemptions

Field Value
Statement Validation of the assignee is skipped for informational messages (PriorityCode = MailID), for the current user (MailID = DataPortalInfo.UserID), and for TEST-prefixed accounts matching the mailid after the TEST prefix.
Trigger Same as BR-CT-03
Enforcement clsClaimTask.ValidMailId
Outcome Rule passes without a resource lookup
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-04 Task text is required

Field Value
Statement Task text is required, except for informational messages (PriorityCode = MailID).
Trigger Rule check on Text
Enforcement clsClaimTask.ValidText
Outcome Fails at LevelOne with "Error: Text required."
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-05 Task text length limit

Field Value
Statement Task text may not exceed 4,000 characters.
Trigger Rule check on Text
Enforcement clsClaimTask.ValidTextLength
Outcome Fails at LevelOne with "Error: Text limited to 4000 characters."
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-06 External RTW user must be assigned to the claim

Field Value
Statement An external return-to-work user may only be assigned a task on a claim they are assigned to.
Trigger Registered dynamically by BR-CT-03 when the assignee holds only RTWExternalUpdate
Enforcement clsClaimTask.RTWAssignedClaim → clsClaimSecurity.RTWAssignedToClaim(dpi, ClaimID, MailID)
Outcome Rule failure blocks assignment when the external user is not assigned to the claim*
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-07 Completing a notepad-required task marks it completed before soft delete

Field Value
Statement Completing a task that requires a notepad entry flags it as completed before the soft delete, so a notepad entry can be generated.
Trigger MarkCompleted() when NotepadFlag = "Y"
Enforcement clsClaimTask.MarkCompleted
Outcome Completed = True, DeleteFlag = "Y", task marked dirty
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-08 Task text is sanitized on assignment

Field Value
Statement Task text is sanitized on assignment; only non-empty text that differs from the current value is accepted.
Trigger Text property setter
Enforcement clsClaimTask.Text setter via clsCharacterAnalyzer.GetCleanString
Outcome Cleaned text stored, task marked dirty, CheckRules("Text") run; otherwise assignment ignored
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-09 Priority-task flag maps to URGMED priority code

Field Value
Statement A task flagged as a priority task carries priority code URG; clearing the flag sets MED.
Trigger PriorityTask property setter
Enforcement clsClaimTask.PriorityTask setter
Outcome Priority code changed and task marked dirty; other codes are overwritten*
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-CT-10 Claim tasks default to the Manage Claims category

Field Value
Statement Claim tasks are always created under the Manage Claims category (CLMM) unless the caller requests Fast Track (FSTRK).
Trigger clsClaimTask.NewTask factory / generator task creation
Enforcement clsClaimTask.NewTask and clsClaimTaskGenerator.NewTask
Outcome CategoryCode set to CLMM or FSTRK
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb, SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-CT-11 Claim tasks always report Claims source system

Field Value
Statement Claim tasks always report source system Claims / source code CLAIM and never require an action code.
Trigger Every retrieval and save
Enforcement clsClaimTask.SourceSystem, SourceCode, ActionCode
Outcome Retrieval criteria are constrained to CLAIM rows; action code is NONE
Source SAIF.Business.Tasks.Claim/clsClaimTask.vb

BR-MY-01 Confidential worker name redaction

Field Value
Statement The worker name on a task is hidden from users lacking the matching access right when the claim is flagged exposure, health issue, hostile worker, or worker conflict.
Trigger Every "my tasks" retrieval, per row
Enforcement clsMyTaskCollection.AfterRetrieve via ClaimServices.HasExposureAccess / HasCollateralAccess / HasSecureAccess / HasConflictAccess
Outcome WorkerName replaced with the literal "Confidential"
SQL SQL-001
Source SAIF.Business.Tasks.Claim/clsMyTaskCollection.vb

BR-MY-02 Urgent claims grouped ahead in my tasks sort

Field Value
Statement Tasks are listed with all tasks of a claim that has an urgent task grouped ahead of the remainder, then by due date and claim number.
Trigger Row add and post-retrieval sort
Enforcement clsMyTaskCollection.setSortOrder / SortByDefault
Outcome sortBy key assigned, multi-key sort applied
Source SAIF.Business.Tasks.Claim/clsMyTaskCollection.vb

BR-MY-03 Unsupported task source system cannot be loaded

Field Value
Statement A task whose source code has no supported concrete type cannot be loaded.
Trigger AfterRetrieve when NewTask() returns Nothing
Enforcement clsMyTaskCollection.AfterRetrieve
Outcome ApplicationException " Tasks are not yet supported!"
Source SAIF.Business.Tasks.Claim/clsMyTaskCollection.vb

BR-CB-01 Coverage B task must reference a valid Coverage B claim

Field Value
Statement A Coverage B task must reference a valid claim whose coverage code is B; deleted tasks are exempt.
Trigger ClaimNum assignment (CheckRules("ClaimNum")) and validation before save
Enforcement clsCoverageBTask.ValidClaimNum
Outcome Fails at LevelOne with "Error: Please enter a valid claim number." or "Error: Claim number is not a Coverage B Claim."
Source SAIF.Business.Tasks.Claim/clsCoverageBTask.vb

BR-CB-02 Coverage B task text is required

Field Value
Statement Coverage B task text is required.
Trigger Rule check on Text
Enforcement clsCoverageBTask.AddBusinessRules → CommonBusinessRules.TextRequired
Outcome Fails with "Error: Text required."
Source SAIF.Business.Tasks.Claim/clsCoverageBTask.vb

BR-CB-03 Coverage B due date window is one year

Field Value
Statement A Coverage B due date must fall between today and one year from today.
Trigger Base rule TASK2 evaluation when the task is dirty and not deleted
Enforcement clsCoverageBTask.OverrideRules
Outcome Base result overridden to fail with "Error: Due date must be between today and one year from today."
Source SAIF.Business.Tasks.Claim/clsCoverageBTask.vb

BR-CB-04 Coverage B tasks always report Coverage B source system

Field Value
Statement Coverage B tasks always report source system CoverageB / source code COVB, never require a notepad entry, and require no action code.
Trigger Every retrieval and save
Enforcement clsCoverageBTask.SourceSystem, SourceCode, RequiresNotePadEntry, ActionCode
Outcome Retrieval constrained to COVB rows; notepad never required
Source SAIF.Business.Tasks.Claim/clsCoverageBTask.vb

BR-CB-05 Coverage B due date rolls to next working day

Field Value
Statement A Coverage B due date that falls on a non-working day is rolled to the next working day.
Trigger Task construction (TaskDateModifier = NextWorkDay)
Enforcement clsCoverageBTask.New, applied by the base date logic
Outcome Stored due date is a working day
Source SAIF.Business.Tasks.Claim/clsCoverageBTask.vb

BR-GEN-01 Generated task must specify a claim

Field Value
Statement A generated task must specify a claim.
Trigger clsClaimTaskGenerator private NewTask when inClaimID = 0
Enforcement clsClaimTaskGenerator.NewTask
Outcome ApplicationException("ClaimID not specified") — creation aborts
Source SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-GEN-02 Generated task due date normalized to a working day

Field Value
Statement A generated task's due date is normalized to a working day: same-day requests use the next working day; explicit dates on non-working days roll forward; offsets roll back to the previous working day.
Trigger Every AddTask overload
Enforcement clsClaimTaskGenerator.AddTask overloads via clsSmartDate.NextWorkDay / IsWorkingDay
Outcome Due date replaced with a working day before task creation
Source SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-GEN-03 Default assignee is the responsible adjuster

Field Value
Statement When no assignee is supplied, the task is assigned to the claim's responsible adjuster.
Trigger Private NewTask when inUser is blank
Enforcement clsClaimTaskGenerator.NewTask via ClaimServices.GetResponsibleAdjuster or clsClaimData.AdjusterMailID
Outcome MailID set to the adjuster mailid, then validated by BR-CT-03
Source SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-GEN-04 Default create user is the data-portal user

Field Value
Statement The create user defaults to the current data-portal user when the caller does not supply one.
Trigger Generator construction (Initialize)
Enforcement clsClaimTaskGenerator.Initialize
Outcome m_CreateUser = IDataPortalInfo.UserID; stamped on every generated task
Source SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-GEN-05 Generated tasks claim must resolve to a valid claim record

Field Value
Statement Each generated task's claim must resolve to a valid claim record.
Trigger Rule added per task at generation; evaluated at validation/save
Enforcement clsClaimTaskGenerator.IsValidClaimID via clsClaimData.GetData(...).IsValid
Outcome Fails at LevelThree with "Invalid ClaimdID specified on Task"
Source SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-GEN-06 Unrecognized priority values default silently

Field Value
Statement An unrecognized priority enum maps to INFO; an unrecognized priority code maps to Medium.
Trigger Priority conversion during task creation or display
Enforcement clsClaimTaskGenerator.GetPriorityText overloads
Outcome Defaulted priority applied silently
Source SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb

BR-LTC-01 Legacy task codes are read-only

Field Value
Statement Legacy task codes are read-only reference data — create, insert, update, and delete are not supported.
Trigger Any attempt to read a non-retrieve SQL property
Enforcement clsLegacyTaskCode.Criteria and clsLegacyTaskCodeCollection.Criteria
Outcome ApplicationException(clsConstants.Messages.InvalidSQLProperty)
SQL SQL-002
Source SAIF.Business.Tasks.Claim/clsLegacyTaskCode.vb, SAIF.Business.Tasks.Claim/clsLegacyTaskCodeCollection.vb

Notes

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.

Sources

  • SAIF.Business.Tasks.Claim/clsClaimTask.vb
  • SAIF.Business.Tasks.Claim/clsClaimTaskGenerator.vb
  • SAIF.Business.Tasks.Claim/clsCoverageBTask.vb
  • SAIF.Business.Tasks.Claim/clsMyTaskCollection.vb
  • SAIF.Business.Tasks.Claim/clsLegacyTaskCode.vb
  • SAIF.Business.Tasks.Claim/clsLegacyTaskCodeCollection.vb