---
title: clsXDeferredPrint
summary: API reference for clsXDeferredPrint.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Services.Printing.Remote
reference_type: package
---

# clsXDeferredPrint

`clsXDeferredPrint` represents a single deferred (queued) print request stored in `XDEFERRED_PRINT`. It extends `clsBusinessBase` and supports insert, update, and delete operations through `IBusinessCriteria`. The primary key is generated procedurally via `GetNextSeqNum("XDeferred_SEQ")` in `Create()`. Single-item retrieve is not supported (dead code) — use `clsXDeferredPrintCollection` for retrieval.

## Purpose
- Persist a single deferred print item to `XDEFERRED_PRINT` with copies count, document description, duplex code, file name, printed date, sort values, and XML payload.
- Update or delete an existing deferred print item by primary key.

## Context
- Namespace: `SAIF.Services.Printing.Remote`
- Assembly/package: `SAIF.BOF.Services.Printing.Remote`
- Base class: `clsBusinessBase` (from `SAIF.BOF.Framework`/`SAIF.BOF.Business`)

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `XdeferredSeqNum` | `Public Property XdeferredSeqNum As Decimal` | Primary key; generated via `GetNextSeqNum("XDeferred_SEQ")` in `Create()`. |
| `CopiesCount` | `Public Property CopiesCount As Decimal` | Number of copies to print.* |
| `CreateUser` | `Public Property CreateUser As SmartString` | User or process that created the item. Max length 30.* |
| `DocumentDescr` | `Public Property DocumentDescr As String` | Document description; used as the filter key for `byDocDescr` collection retrieval. Max length 60. |
| `DuplexCode` | `Public Property DuplexCode As String` | Duplex printing code stored as 5-char string (`DEFLT`/`HORIZ`/`VERTL`/`SIMPL`). Max length 5.* |
| `FileName` | `Public Property FileName As String` | Source file name for the deferred print item. Max length 120.* |
| `PrintedDate` | `Public Property PrintedDate As SmartDate` | Date the item was printed. Nullable.* |
| `Sort0Value`–`Sort9Value` | `Public Property Sort0Value As SmartString` (×10) | Ten generic sort/grouping columns for print sequencing. Max length 120 each.* |
| `XMLValueText` | `Public Property XMLValueText As String` | XML payload blob associated with the print item (NCLOB in Oracle).* |
| `Criteria` (nested class) | `Public Class Criteria Implements IBusinessCriteria` | Holds SQL text: `InsertSQL` ([SQL-004](../../sql/SQL-004-saif-services-printing-remote.md)), `UpdateSQL` ([SQL-015](../../sql/SQL-015-saif-services-printing-remote.md)), `DeleteSQL` ([SQL-019](../../sql/SQL-019-saif-services-printing-remote.md)); `CreateSQL` ([SQL-001](../../sql/SQL-001-saif-services-printing-remote.md)) and `RetrieveSQL` ([SQL-009](../../sql/SQL-009-saif-services-printing-remote.md)) are dead code. |

## Behavioral notes
- `Create()` generates `XdeferredSeqNum` via `GetNextSeqNum("XDeferred_SEQ")` — the `CreateSQL` property (SQL-001) is never invoked.*
- `AfterInsert` and `AfterUpdate` check `RowsAffected <> 1` per [BR-001](../../business-rules.md#br-001-row-count-contention-check).
- `AfterDelete` has its row-count contention check commented out — no live post-delete validation applies for single-item deletes.*
- `RetrieveSQL` (SQL-009) unconditionally throws; single-item retrieval is not available — use `clsXDeferredPrintCollection`.*

## Constraints and usage notes
- `DocumentDescr` is the key field for collection-level retrieval and purge operations — keep it consistent across related items.
- `XMLValueText` is stored as a `NCLOB` and bound with `AddNCLobParm` in `BeforeInsert`.
- Single-item retrieve and `CreateSQL` are dead code — do not call `GetXDeferredPrint()` expecting a single-item lookup.*

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

## Sources
- `Services\SAIF.Services.Printing.Remote\clsXDeferredPrint.vb`
