Skip to content

Load a code table

This operation loads one or all rows of a read-only task code table (clsTaskActionCode, clsTaskCategoryCode, clsTaskPriorityCode, clsTaskSourceCode, or their collections) for code↔description/enum translation.

Field Value
Operation ID OP-9
Trigger Application requests action/category/priority/source codes
Inputs Optional Code and/or TaskSourceCode filter
Outputs Populated code object or collection
Primary components clsTask*Code[Collection].GetCode(s)
Entry point SAIF.Business.Tasks/clsTaskActionCode.vb, clsTaskActionCodeCollection.vb, clsTaskCategoryCode.vb, clsTaskCategoryCodeCollection.vb, clsTaskPriorityCode.vb, clsTaskPriorityCodeCollection.vb, clsTaskSourceCode.vb, clsTaskSourceCodeCollection.vb

Steps

  1. Build the nested Criteria with the DPI (plus Code and/or TaskSourceCode when applicable).
  2. Call DataAccessLayer.RetrieveObject(criteria).
  3. BeforeRetrieve assigns RetrieveSQL and binds :Code / :TaskSourceCode where applicable (SQL-003, SQL-004, SQL-006, SQL-007, SQL-009, SQL-010, SQL-011, SQL-012).
  4. AfterRetrieve reads rows and, for collections, constructs and adds each code object via Load, which fills fields, builds a per-row Criteria, and calls MarkOld().
  5. clsTaskCategoryCodeCollection additionally sets m_DataFound = True per row, which drives its IsValid override (BR-024).
  6. Any attempt to use the write-SQL properties (CreateSQL/InsertSQL/UpdateSQL/DeleteSQL) on any code-table criteria throws ApplicationException(clsConstants.Messages.InvalidSQLProperty) (BR-023).
  7. Unrecognized priority or source codes map to a safe default (Informational / NotAssigned) rather than raising an error (BR-025).

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([GetCode/GetCodes called]) --> S1["Build Criteria with DPI +<br>Code/TaskSourceCode"]
    S1 --> S2["RetrieveObject executes<br>RetrieveSQL"]
    S2 --> S3["AfterRetrieve reads rows via<br>Load"]
    S3 --> D{clsTaskCategoryCodeCollection?}
    D -->|Yes| S4[Set m_DataFound per row]
    D -->|No| EndOk(["Code object/collection<br>returned"])
    S4 --> EndOk

Failure and edge-case behavior

  • Code tables are strictly read-only; write-SQL access throws ApplicationException (BR-023).
  • A category-code collection is valid only if at least one row was returned for the requested source system (BR-024).
  • Unrecognized codes translate to safe enum defaults instead of throwing (BR-025).

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/clsTaskActionCode.vb
  • SAIF.Business.Tasks/clsTaskActionCodeCollection.vb
  • SAIF.Business.Tasks/clsTaskCategoryCode.vb
  • SAIF.Business.Tasks/clsTaskCategoryCodeCollection.vb
  • SAIF.Business.Tasks/clsTaskPriorityCode.vb
  • SAIF.Business.Tasks/clsTaskPriorityCodeCollection.vb
  • SAIF.Business.Tasks/clsTaskSourceCode.vb
  • SAIF.Business.Tasks/clsTaskSourceCodeCollection.vb