---
title: "Record a cancellation reason override"
summary: "Record a cancellation reason override."
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Core
reference_type: package
operation_id: "OP-012"
trigger: "user overrides a cancellation reason"
---

# Record a cancellation reason override

Record a cancellation reason override describes the corresponding policy-core workflow and its BOF or Oracle touchpoints.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-012 |
| **Trigger** | user overrides a cancellation reason |
| **Inputs** | — |
| **Outputs** | inserted `CANCEL_REASON_OVERRIDE` row |
| **Primary components** | ``clsCancelReasonOverride` (`clsCancelReasonOverride.vb`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Core` |

## Steps
1. Resolve display context with four ad-hoc queries: carrier name (`CARRIER_CODE`), carrier change reason (`CARRIER_CHANGE_REASON_CODE`), cancel reason description (`CANCEL_REASON_CODE`), and the next `CANCELLATION_SEQ_NUM` (`CANCELLATION`).
2. Validate `CancellationSeqNum` ([BR-009](../business-rules.md#br-009-a-cancellation-reason-override-must-carry-a-valid)).
3. Insert the override row. Only `InsertSQL` is implemented; update and delete are not supported for this entity.
4. Consolidate supporting references.
   - Related business rules: [BR-009](../business-rules.md#br-009-a-cancellation-reason-override-must-carry-a-valid), [BR-033](../business-rules.md#br-033-new-sequence-values-for-writable-entities-are-obtained)
   - Related SQL statements: [SQL-001](../sql/SQL-001-saif-business-policy-core.md), [SQL-002](../sql/SQL-002-saif-business-policy-core.md), [SQL-003](../sql/SQL-003-saif-business-policy-core.md), [SQL-004](../sql/SQL-004-saif-business-policy-core.md), [SQL-022](../sql/SQL-022-saif-business-policy-core.md), [SQL-023](../sql/SQL-023-saif-business-policy-core.md), [SQL-024](../sql/SQL-024-saif-business-policy-core.md), [SQL-025](../sql/SQL-025-saif-business-policy-core.md), [SQL-026](../sql/SQL-026-saif-business-policy-core.md), [SQL-045](../sql/SQL-045-saif-business-policy-core.md), [SQL-046](../sql/SQL-046-saif-business-policy-core.md), [SQL-047](../sql/SQL-047-saif-business-policy-core.md), [SQL-048](../sql/SQL-048-saif-business-policy-core.md), [SQL-049](../sql/SQL-049-saif-business-policy-core.md), [SQL-050](../sql/SQL-050-saif-business-policy-core.md), [SQL-051](../sql/SQL-051-saif-business-policy-core.md), [SQL-052](../sql/SQL-052-saif-business-policy-core.md), [SQL-053](../sql/SQL-053-saif-business-policy-core.md), [SQL-122](../sql/SQL-122-saif-business-policy-core.md), [SQL-123](../sql/SQL-123-saif-business-policy-core.md), [SQL-124](../sql/SQL-124-saif-business-policy-core.md), [SQL-125](../sql/SQL-125-saif-business-policy-core.md), [SQL-145](../sql/SQL-145-saif-business-policy-core.md), [SQL-146](../sql/SQL-146-saif-business-policy-core.md), [SQL-147](../sql/SQL-147-saif-business-policy-core.md), [SQL-148](../sql/SQL-148-saif-business-policy-core.md)
   - Related tables: [DUAL](../database-tables.md#dual), [CANCEL_REASON_CODE](../database-tables.md#cancel_reason_code), [CANCELLATION](../database-tables.md#cancellation), [CANCEL_REASON_OVERRIDE](../database-tables.md#cancel_reason_override), [CARRIER_CHANGE_REASON_CODE](../database-tables.md#carrier_change_reason_code), [CARRIER_CODE](../database-tables.md#carrier_code)

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
    Start([Trigger]) --> S1[Apply policy-core logic]
    S1 --> D{Validation or branch?}
    D -->|Continue| S2[Execute BOF SQL or Oracle call]
    D -->|Stop| EndErr([Return error or empty result])
    S2 --> EndOk([Return populated result])
```

## Failure and edge-case behavior
- Error, warning, and empty-result behavior follows the rules and SQL cited in the steps above.
- Stored-procedure-backed paths depend on Oracle-side logic outside this repository.**

## 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.

## Sources
- `Business\SAIF.Business.Policy.Core\clsPolicy.vb`
- `Business\SAIF.Business.Policy.Core\clsPolicyPeriodBase.vb`
- `Business\SAIF.Business.Policy.Core\clsPolicyPeriod.vb`
- `Business\SAIF.Business.Policy.Core\clsLegacyPolicyPeriod.vb`
- `Business\SAIF.Business.Policy.Core\clsCancelReasonOverride.vb`
- `Business\SAIF.Business.Policy.Core\WCISInquiry.vb`
