---
title: SAIF.Business.Claim.SupportOrder operations and processes
summary: Operation catalog and cross-operation hub for the support-order header and connection business objects.
status: draft
owner: SAIF
last_reviewed: 2026-07-30
library: SAIF.Business.Claim.SupportOrder
reference_type: package
---

# SAIF.Business.Claim.SupportOrder operations and processes

This page is the operation catalog and cross-operation hub for `SAIF.Business.Claim.SupportOrder`. The library exposes two operations: retrieval and CRUD maintenance of the `CL_CLAIM_SUPPORT_ORDER` header row for a worker, and management of the `CL_CLAIM_SUPPORT_ORDER_CONN` link rows that connect individual claims to a support order. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

This library implements support orders through inline CRUD SQL with no registered business rules. `SAIF.Business.Claim.Maintenance` separately documents a richer "[Support order management](../saif-business-claim-maintenance/operations/support-order-management.md)" operation over the same domain concept (`clsClaimSupportOrder`, `clsClaimSupportOrderConnection`), built against the same tables but implemented through the `PK82141_SUPPORT_ORDER` Oracle package with a full validation rule set, to-do task derivation, and delete-blocking checks. Source tracing found no code path in this library that calls into, or is called by, that implementation — the two class hierarchies are distinct and are documented independently here rather than as one merged operation.

## Operation catalog

| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Support order retrieval and maintenance](operations/support-order-retrieval-and-maintenance.md) | Retrieve support-order header rows for a worker and create, update, or delete a single order | `clsClaimSupportOrder.NewClaimSupportOrder` / `clsClaimSupportOrderCollection.GetClaimSupportOrderCollection`, edits, then `Save()` | `WorkerID`, caller-assigned `SupportOrderID`, header fields, optional `AllClaimFlag` filter | Persisted or retrieved `CL_CLAIM_SUPPORT_ORDER` row(s); `InsertError`/`UpdateError` on contention | [BR-001](business-rules.md#br-001-support-order-updates-require-a-current-row-version), [BR-002](business-rules.md#br-002-support-order-inserts-and-updates-must-affect-one-row) | [CL_CLAIM_SUPPORT_ORDER](database-tables.md#cl-claim-support-order) | [SQL-001](sql/sql-001-insert.md), [SQL-003](sql/sql-003-select.md), [SQL-004](sql/sql-004-select.md), [SQL-006](sql/sql-006-update.md), [SQL-007](sql/sql-007-delete.md) |
| [Support order connection management](operations/support-order-connection-management.md) | Attach or detach a claim connection for a support order | `clsClaimSupportOrderConnectionCollection.GetClaimSupportOrderConnectionCollection` / `CreateConnection` / `DeleteConnection`, then `Save()` | `SupportOrderID`, `ClaimID` values, acting user (create only) | Persisted or removed `CL_CLAIM_SUPPORT_ORDER_CONN` row(s); `InsertError`/`DeleteError` on contention | [BR-003](business-rules.md#br-003-connection-deletes-must-affect-one-row), [BR-004](business-rules.md#br-004-connection-inserts-must-affect-one-row) | [CL_CLAIM_SUPPORT_ORDER_CONN](database-tables.md#cl-claim-support-order-conn) | [SQL-002](sql/sql-002-insert.md), [SQL-005](sql/sql-005-select.md), [SQL-008](sql/sql-008-delete.md) |

## Process flow diagram

The following diagram shows how the two operations relate: a header order is retrieved or created and maintained, while its claim connections are retrieved and maintained as a separate collection that is not saved automatically with the header.

```mermaid
flowchart TD
	Start([Caller requests support-order data]) --> Header[Support order retrieval<br>and maintenance]
	Header --> HeaderSave{Save header}
	HeaderSave --> HeaderRows{RowsAffected = 1?}
	HeaderRows -->|No, insert/update| HeaderErr([InsertError / UpdateError added])
	HeaderRows -->|Yes| HeaderOk([Header persisted])
	HeaderRows -->|Delete: no check| HeaderDelOk([Row deleted; no confirmation])
	Header -->|Connections property| Conn[Support order connection<br>management]
	Conn --> ConnEdit[CreateConnection / DeleteConnection]
	ConnEdit --> ConnSave{Save connections<br>separately}
	ConnSave --> ConnRows{RowsAffected = 1?}
	ConnRows -->|No| ConnErr([InsertError / DeleteError added])
	ConnRows -->|Yes| ConnOk([Connection persisted or removed])
```

## Database interactions

The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under `operations/`.

| Operation | SQL | Tables | Type |
| --- | --- | --- | --- |
| [Support order retrieval and maintenance](operations/support-order-retrieval-and-maintenance.md) | [SQL-001](sql/sql-001-insert.md), [SQL-003](sql/sql-003-select.md), [SQL-004](sql/sql-004-select.md), [SQL-006](sql/sql-006-update.md), [SQL-007](sql/sql-007-delete.md) | [CL_CLAIM_SUPPORT_ORDER](database-tables.md#cl-claim-support-order) | Read / Write |
| [Support order connection management](operations/support-order-connection-management.md) | [SQL-002](sql/sql-002-insert.md), [SQL-005](sql/sql-005-select.md), [SQL-008](sql/sql-008-delete.md) | [CL_CLAIM_SUPPORT_ORDER_CONN](database-tables.md#cl-claim-support-order-conn) | Read / Write |

## Failure and edge-case behavior

- Optimistic concurrency is checked only on the header update ([BR-001](business-rules.md#br-001-support-order-updates-require-a-current-row-version)) and on the rows-affected count after every insert/update ([BR-002](business-rules.md#br-002-support-order-inserts-and-updates-must-affect-one-row), [BR-004](business-rules.md#br-004-connection-inserts-must-affect-one-row)) and delete ([BR-003](business-rules.md#br-003-connection-deletes-must-affect-one-row)) on connections. The header delete path performs no such check at all — see [Support order retrieval and maintenance](operations/support-order-retrieval-and-maintenance.md#failure-and-edge-case-behavior).
- No business rules are registered on either the header or the connection classes, so this library performs no field-level validation of amounts, dates, or flag values before saving — a material difference from the equivalent `SAIF.Business.Claim.Maintenance` implementation.
- `clsClaimSupportOrderConnectionCollection.DeleteConnection` matches its argument against `SupportOrderID` rather than `ClaimID`; see [Support order connection management](operations/support-order-connection-management.md#failure-and-edge-case-behavior) for the full analysis.
- Connections are not cascaded from the header's `Save()`; callers must persist the header and its `Connections` collection as two separate save operations.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Claim.SupportOrder\clsClaimSupportOrder.vb`
- `Business\SAIF.Business.Claim.SupportOrder\clsClaimSupportOrderCollection.vb`
- `Business\SAIF.Business.Claim.SupportOrder\clsClaimSupportOrderConnection.vb`
- `Business\SAIF.Business.Claim.SupportOrder\clsClaimSupportOrderConnectionCollection.vb`
