---
title: "SQL-004: clsXDeferredPrint.InsertSQL"
summary: Inserts a single deferred print item into XDEFERRED_PRINT.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Services.Printing.Remote
reference_type: package
---

# SQL-004: clsXDeferredPrint.InsertSQL

Inserts a new row into `XDEFERRED_PRINT`, capturing all metadata for a deferred print request: copies count, user, document description, duplex code, file name, printed date, ten sort/grouping values, an XML payload blob, and the primary key generated via `GetNextSeqNum("XDeferred_SEQ")`. This is the live insert path executed by `clsXDeferredPrint.BeforeInsert`.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-004 |
| **Operation type** | Create (Insert) |
| **Execution method** | Inline |
| **Database** | Oracle |
| **Schema** | `[unqualified]**` |
| **Command type** | Text |
| **Business object** | `clsXDeferredPrint` |
| **Criteria property** | `InsertSQL` |
| **Lifecycle method** | `BeforeInsert` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:CopiesCount` | Input | Decimal | — | Number of copies to print |
| `:CreateUser` | Input | String (SmartString) | 30 | User or process that created the item |
| `:DocumentDescr` | Input | String | 60 | Document description used for later `byDocDescr` retrieval matching |
| `:DuplexCode` | Input | String | 5 | Duplex printing code (`DEFLT`/`HORIZ`/`VERTL`/`SIMPL`) |
| `:FileName` | Input | String | 120 | Source file name for the deferred print item |
| `:PrintedDate` | Input | Date (SmartDate) | — | Date the item was printed (nullable) |
| `:Sort0Value` | Input | String (SmartString) | 120 | Sort/grouping column 0 |
| `:Sort1Value` | Input | String (SmartString) | 120 | Sort/grouping column 1 |
| `:Sort2Value` | Input | String (SmartString) | 120 | Sort/grouping column 2 |
| `:Sort3Value` | Input | String (SmartString) | 120 | Sort/grouping column 3 |
| `:Sort4Value` | Input | String (SmartString) | 120 | Sort/grouping column 4 |
| `:Sort5Value` | Input | String (SmartString) | 120 | Sort/grouping column 5 |
| `:Sort6Value` | Input | String (SmartString) | 120 | Sort/grouping column 6 |
| `:Sort7Value` | Input | String (SmartString) | 120 | Sort/grouping column 7 |
| `:Sort8Value` | Input | String (SmartString) | 120 | Sort/grouping column 8 |
| `:Sort9Value` | Input | String (SmartString) | 120 | Sort/grouping column 9 |
| `:XMLValueText` | Input | NCLOB (`AddNCLobParm`) | — | XML payload/value blob associated with the print item |
| `:XdeferredSeqNum` | Input | Decimal | — | Primary key, generated via `GetNextSeqNum("XDeferred_SEQ")` in `Create()` |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [XDEFERRED_PRINT](../database-tables.md#xdeferred_print) | INSERT | `COPIES_COUNT`, `CREATE_USER`, `DOCUMENT_DESCR`, `DUPLEX_CODE`, `FILE_NAME`, `PRINTED_DATE`, `SORT0_VALUE`–`SORT9_VALUE`, `XML_VALUE_TEXT`, `XDEFERRED_SEQ_NUM` |

## Sample SQL

```sql
INSERT INTO XDEFERRED_PRINT (
    COPIES_COUNT,
    CREATE_USER,
    DOCUMENT_DESCR,
    DUPLEX_CODE,
    FILE_NAME,
    PRINTED_DATE,
    SORT0_VALUE,
    SORT1_VALUE,
    SORT2_VALUE,
    SORT3_VALUE,
    SORT4_VALUE,
    SORT5_VALUE,
    SORT6_VALUE,
    SORT7_VALUE,
    SORT8_VALUE,
    SORT9_VALUE,
    XML_VALUE_TEXT,
    XDEFERRED_SEQ_NUM
) VALUES (
    :CopiesCount,
    :CreateUser,
    :DocumentDescr,
    :DuplexCode,
    :FileName,
    :PrintedDate,
    :Sort0Value,
    :Sort1Value,
    :Sort2Value,
    :Sort3Value,
    :Sort4Value,
    :Sort5Value,
    :Sort6Value,
    :Sort7Value,
    :Sort8Value,
    :Sort9Value,
    :XMLValueText,
    :XdeferredSeqNum
)
```

## Operations and processes
- [Deferred print queue lifecycle](../operations/deferred-print-queue-lifecycle.md)

## Business rules
- [BR-001: Row-count contention check](../business-rules.md#br-001-row-count-contention-check)

> **Note:** Statements marked with `**` could not be confirmed; treat as unknown until verified.

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