---
title: Load correspondence detail elements
summary: Retrieve the display-oriented name/value detail elements attached to a correspondence item.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Correspondence
reference_type: package
operation_id: OP-009
trigger: Caller invokes `GetCorrespondenceDetail` or `GetCorrespondenceDetailCollection`.
---

# Load correspondence detail elements

Retrieve the display-oriented name/value detail elements attached to a correspondence item.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-009 |
| **Trigger** | Caller invokes `GetCorrespondenceDetail` or `GetCorrespondenceDetailCollection`. |
| **Inputs** | Correspondence sequence number, with optional data-element name for the single-row variant. |
| **Outputs** | One `clsCorrespondenceDetail` or a `clsCorrespondenceDetailCollection`. |
| **Primary components** | `clsCorrespondenceDetail.BeforeRetrieve`, `clsCorrespondenceDetailCollection.AfterRetrieve` |
| **Entry point** | `Business\SAIF.Business.Policy.Correspondence\clsCorrespondenceDetail.vb`; `Business\SAIF.Business.Policy.Correspondence\clsCorrespondenceDetailCollection.vb` |

## Steps

1. Build either the single-row or collection criteria object and send it through the framework retrieve lifecycle†.
2. The single-row path binds both correspondence sequence number and data element to execute [SQL-011](../sql/SQL-011-saif-business-policy-correspondence.md); the collection path binds only the sequence number to execute [SQL-012](../sql/SQL-012-saif-business-policy-correspondence.md).
3. The SQL reads [POLICY_CORRESPOND_DATA](../database-tables.md#policy_correspond_data) rows, joins back to [ENDORSEMENT](../database-tables.md#endorsement) for correspondence-code context, and left-joins [CORRESPOND_DATA_ELEMENT](../database-tables.md#correspond_data_element) for the human-readable detail description.
4. `AfterRetrieve` / `Load` fills the detail object(s) and marks them old for display use.
5. No write path follows from this operation because the detail criteria object throws `InvalidSQLProperty` for insert, update, and delete ([BR-017](../business-rules.md#br-017-correspondence-details-are-read-only-through-this-library)).

## Process flow

The following diagram summarizes the control flow for this operation.

```mermaid
flowchart TD
    Start([Detail request]) --> Criteria[Build detail criteria] --> Query[Run SQL-011 or SQL-012] --> Fill[Fill detail objects] --> Return([Return detail data])
```

## Failure and edge-case behavior

- Validation and framework state errors surface through the BOF error collection unless the called dependency throws directly.
- Database-dependent operations rely on the caller-supplied data portal context and Oracle connectivity.
- Imaging reconciliation and stored-procedure wrappers defer cross-system behavior to their external collaborators.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)



> **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.
> Statements marked with † are derived from dependency library documentation via the Legends CLI.

## Sources
- ``Business\SAIF.Business.Policy.Correspondence\clsCorrespondenceDetail.vb``
- ``Business\SAIF.Business.Policy.Correspondence\clsCorrespondenceDetailCollection.vb``
