---
title: Retrieve claim application data
summary: Re-runs subclass-specific application retrieval for the currently active, valid claim context.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-30
library: SAIF.Application.Claim
reference_type: package
operation_id: OP-AC-03
trigger: Caller invokes Retrieve() while a context is already active
---

# Retrieve claim application data

`Retrieve()` allows a caller to re-run subclass-specific data retrieval without changing the claim context — for example, refreshing a page after an external update. It only proceeds when the manager's context is valid; otherwise it takes no action.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-AC-03 |
| **Trigger** | Caller calls `Retrieve()` on an active `ClaimAppManager` subclass instance |
| **Inputs** | Current manager state: `ContextSet`, `SecurityRole`, `ClaimData` |
| **Outputs** | Refreshed subclass application data when the context is valid; no state change otherwise |
| **Primary components** | `ClaimAppManager.Retrieve`, `ClaimAppManager.OnValidContext`, `ClaimAppManager.OnRetrieve` |
| **Entry point** | `Application\SAIF.Application.Claim\ClaimAppManager.vb` |

## Steps

1. `Retrieve()` reads the `ValidContext` accessor.
   - Sub-step: `ValidContext` delegates to `OnValidContext()`, which this library overrides.

     > **Origin**: The `ValidContext` accessor itself is defined by `AppManagerBase` in `SAIF.Application`. That library is documented in the previous format, so no per-operation page exists; see [Context validity check](../../saif-application/operations/context-validity-check.md) in the `SAIF.Application` documentation set.
2. `OnValidContext()` returns true only when all three hold: `ContextSet` is true, `SecurityRole` is not `AppSecurityRole.NoAccess`, and `ClaimData.IsValid` is true ([BR-005](../business-rules.md#br-005-claim-retrieval-requires-a-populated-and-valid-context)).
3. If `ValidContext` is true: `Retrieve()` calls `OnRetrieve()`, which is abstract in `ClaimAppManager` and implemented by the concrete subclass to reload its application-specific data.
4. If `ValidContext` is false: `Retrieve()`'s `If` block is skipped entirely; no retrieval occurs.
5. `Retrieve()` is declared as a `Function` returning `Boolean`, but neither branch assigns a value to the function's return variable or executes an explicit `Return` statement. As a result, `Retrieve()` always yields the CLR default value (`False`) regardless of whether `OnRetrieve()` ran and succeeded.*

## Process flow

The following diagram visualizes the context-validity gate that controls whether retrieval executes.

```mermaid
flowchart TD
	Start([Caller invokes Retrieve]) --> Check{ValidContext?<br>ContextSet AND<br>SecurityRole not NoAccess AND<br>ClaimData.IsValid}
	Check -->|Yes| Run[OnRetrieve in subclass]
	Check -->|No| Skip([No retrieval performed])
	Run --> Return([Function returns False<br>regardless of outcome])
	Skip --> Return
```

## Failure and edge-case behavior

- When the context is not set, the claim data is invalid, or the security role is `NoAccess`, `Retrieve()` silently does nothing — it does not raise an error or change `Message` ([BR-005](../business-rules.md#br-005-claim-retrieval-requires-a-populated-and-valid-context)).
- `Retrieve()` never returns `True`, even on a successful retrieval, because no branch assigns its return value; callers cannot use the return value to detect whether `OnRetrieve()` executed or succeeded.*
- `OnRetrieve()` has no base-class implementation to fall back on; a subclass that does not override it silently performs no retrieval work even when `ValidContext` is true.*

## Related documentation

- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources

- `Application\SAIF.Application.Claim\ClaimAppManager.vb`
