---
title: Retrieve a manual class base
summary: `clsManualClassBase.GetManualClassBase` (4 overloads) / `GetDefaultManualClassBase`
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Rating
reference_type: package
operation_id: OP-005
trigger: Rating or maintenance needs the published attributes of a manual class
---

# Retrieve a manual class base

`clsManualClassBase.GetManualClassBase` (4 overloads) / `GetDefaultManualClassBase`

| Field | Value |
| --- | --- |
| **Operation ID** | OP-005 |
| **Trigger** | Rating or maintenance needs the published attributes of a manual class |
| **Inputs** | Depending on overload: rate file sequence number + class number, or period rating info + class number |
| **Outputs** | A populated `clsManualClassBase` |
| **Primary components** | ``clsManualClassBase.GetManualClassBase` (4 overloads) / `GetDefaultManualClassBase`` |
| **Entry point** | `Business\SAIF.Business.Policy.Rating\clsManualClassBase.vb` |

## Steps

1. The caller selects an overload; overloads keyed on `iPeriodRatingInfo` first resolve the rate file
2. A nested `Criteria` is built and passed to `inDataportal.DataAccessLayer.RetrieveObject`.
3. `BeforeRetrieve` sets `Criteria.RetrieveSQL` (composed from the shared column/table/join/where
4. `ProcessPortalRequest` executes; `AfterRetrieve` calls `Fill()` then `MarkOld()`.
5. Rule [BR-003](../business-rules.md#br-003-a-manual-class-base-is-valid-only-when-its-rate-file-sequence-number-is-non-zero-and-its-class-numberusage-code-is-not-empty) is evaluated on demand via `IsValid`.
6. Use the related data-access statements and tables for this operation: [SQL-020](../sql/SQL-020-saif-business-policy-rating.md), [SQL-021](../sql/SQL-021-saif-business-policy-rating.md), [SQL-019](../sql/SQL-019-saif-business-policy-rating.md), [MANUAL_CLASS_BASE](../database-tables.md#manual_class_base).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid

flowchart TD

  Start([Trigger: rating or maintenance needs published class attributes]) --> D1{Overload keyed on iPeriodRatingInfo?}

  D1 -->|Yes| S1[Resolve rate file sequence number first - OP-003]

  D1 -->|No| S2[Use rate file sequence number and class number directly]

  S1 --> S3[Build nested Criteria]

  S2 --> S3

  S3 --> S4[BeforeRetrieve: compose RetrieveSQL from shared column/table/join/where clauses]

  S4 --> S5[ProcessPortalRequest executes]

  S5 --> S6[AfterRetrieve: Fill then MarkOld]

  S6 --> Done([Populated clsManualClassBase - validity via BR-003 on demand])

```

## Failure and edge-case behavior

- Review the linked business rules and SQL documents for the validation or data-access conditions that can block this operation.

## 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.Rating\clsManualClassBase.vb`
