clsTaskCollection¶
clsTaskCollection is the abstract collection type for tasks, providing the dynamic, criteria-driven search subsystem (GetTasks), collection-level save (Save), and batch purge (PurgeTasks). Its nested Criteria class is a self-contained SQL-assembly component that builds a filtered TASK query from up to ten optional predicates.
Purpose¶
- Retrieve a filtered list of tasks matching caller-supplied criteria, materializing each row into a concrete task instance via the abstract
NewTask()factory (see Retrieve a filtered task list). - Batch-persist pending edits across a collection by delegating to the framework's per-item save lifecycle (see Save a task collection).
- Purge previously completed tasks older than a retention window via
PK82036_Task.Task_Purge(see Purge completed tasks).
Context¶
- Namespace:
SAIF.Business.Tasks - Assembly/package:
SAIF.Business.Tasks(embedded in theLegalMaintenanceweb deployment)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
Item |
Default ReadOnly Property Item(Index As Integer) As iTask |
Positional access to a task within the collection. |
Item |
Default ReadOnly Property Item(inTaskSeqNum As String) As iTask |
Access a task within the collection by its sequence number. |
GetTasks |
Shared Function GetTasks(inDataPortalInfo As IDataPortalInfo, inSelectionCriteria As Criteria) As clsTaskCollection |
Factory/retrieval entry point; assembles and executes the dynamic filtered TASK query (SQL-008). |
PurgeTasks |
Shared Function PurgeTasks(inDataPortalInfo As IDataPortalInfo, inTaskSourceCode As String, inTaskCategoryCode As String, inKeepDays As Integer) As Integer |
Batch-deletes completed tasks older than the retention window via PK82036_Task.Task_Purge (SQL-015); returns the count of purged rows. |
NewTask |
MustOverride Function NewTask() As iTask |
Abstract — descendant factory hook that materializes a concrete task instance for a retrieved row. |
Save |
Overrides Function Save() As <result type> |
Applies pending edits (ApplyEdit()) then delegates to the framework base Save() for per-item persistence (see Save a task collection). |
Add |
Sub Add(inTask As iTask) |
Adds a task to the collection. |
Remove |
Sub Remove(inTask As iTask) / Sub Remove(inTaskSeqNum As Decimal) |
Removes a task by reference or by sequence number. |
Contains |
Function Contains(...) As Boolean |
Checks whether the collection holds a given task (overloaded). |
ContainsDeleted |
Function ContainsDeleted(...) As Boolean |
Checks whether a deleted/removed task is tracked (overloaded). |
MyCriteria |
ReadOnly Property MyCriteria As Criteria |
The nested Criteria instance used for the last/pending retrieval. |
Criteria |
Public Class Criteria (nested, implements IBusinessCriteria) |
Search-criteria builder; assembles the dynamic TASK SELECT/WHERE and binds parameters (SQL-008). |
Criteria.TaskCategoryCode, Criteria.TaskActionCode, Criteria.TaskPriority, Criteria.PriorityLevel |
Property ... As String / TaskPriority |
Single-value category/action/priority filters (BR-018). |
Criteria.BeginDate, Criteria.EndDate |
Property ... As Date |
Date-range bounds compared against trunc(TASK_DATE) (BR-020). |
Criteria.MailID |
Property MailID As String |
Assigned-user filter; normalized to upper-case (BR-016). |
Criteria.ShowCompleted |
Property ShowCompleted As Boolean |
When false (default), excludes completed tasks (BR-017). |
Criteria.TaskText |
Property TaskText As String |
Free-text search term concatenated unbound into a LIKE predicate*. |
Criteria.InnerSort, Criteria.OuterSort |
Property ... As String |
Sort expressions used when row-limiting (BR-021). |
Criteria.RowNumLimit |
Property RowNumLimit As Integer |
Caps the result set to N rows via an Oracle rownum wrapper (BR-021). |
Criteria.ContextCategory, Criteria.ContextCode, Criteria.ContextDate, Criteria.ContextKey, Criteria.ContextNumericValue, Criteria.ContextTextValue |
Property ... As <smart type> |
Context-column filters; concatenated unbound into the SQL text*. |
Criteria.WhereClause |
ReadOnly Property WhereClause As String |
Returns m_LastSQLStatement, which is never assigned — always an empty string (likely dead/legacy code)*. |
Criteria.ClaimList, Criteria.PolicyList, Criteria.TaskCategoryList, Criteria.TaskSourceList, Criteria.TaskActionCodeList |
ReadOnly Property ... As <list> |
Accessors for the multi-value filter lists used to build IN (...) predicates (BR-019). |
Criteria.AddClaimID, Criteria.AddPolicyNumber, Criteria.AddTaskActionCode, Criteria.AddTaskCategory, Criteria.AddTaskSourceSystem |
Sub Add*(...) |
Mutators that add a filter value, rejecting blank/zero entries (BR-019). |
Criteria.TaskSource |
Property TaskSource(String) / TaskSource(TaskSourceSystem) |
Convenience overloads for setting the single-value source filter. |
Criteria.ClearCriteria |
Sub ClearCriteria() |
Resets all filter state on the criteria object. |
Behavioral notes¶
- The class is
<Serializable()>, consistent with remoting/session persistence of BOF objects across the web tier*. Criteria.FormatRequestapplies predicates in a fixed order (other-parameters → source → category → priority → date → MailID → claim → policy → action → context), then optionally wraps withrownumlimiting.
Constraints and usage notes¶
clsTaskCollectionisMustInherit— concrete collection types live inSAIF.Business.Tasks.Claim.Criteria.TaskTextand allCriteria.Context*filters bypass bind-parameter binding, creating a SQL-injection risk that should be remediated independently of any Oracle-side changes*.
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.
Related documentation¶
Sources¶
- SAIF.Business.Tasks/clsTaskCollection.vb