---
title: SAIF.Services.Printing.Remote overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Services.Printing.Remote
reference_type: package
---

# SAIF.Services.Printing.Remote overview

> **Documentation context:** Packaged Component (NuGet)

SAIF.Services.Printing.Remote is a BOF (Business Object Framework) class library that orchestrates deferred and batch print processing against Oracle-backed print-control tables. It exposes three parallel families of business objects — print control batches, documents, and deferred print items — each following the standard SAIF BOF pattern (business object + collection, each with a nested `Criteria` implementing `IBusinessCriteria`). The library is consumed by other applications and services as a NuGet package (`SAIF.BOF.Services.Printing.Remote`).

## Purpose
- Provides business object representations and Oracle data-access logic for deferred and batch print orchestration, covering print-control batch headers, individual print job documents, and queued deferred print items.
- Consumed by downstream applications and services that need to enqueue, retrieve, sequence, and purge print jobs through Oracle tables (`XPRINT_CONTROL`, `XDOCUMENT`, `XDEFERRED_PRINT`, `XPRINTER_BIN`, `XPRINTER`).

## Responsibilities
- Represent and persist print-control batch headers (`clsXPrintControl` / `clsXPrintControlCollection`) with directory, duplex mode, processed date, XML file name, and MD5 hash.
- Represent and persist individual print job documents (`clsXDocument` / `clsXDocumentCollection`) linked to a print-control batch, with bin/printer routing and sort-value-driven sequencing.
- Represent and persist deferred (queued) print requests (`clsXDeferredPrint` / `clsXDeferredPrintCollection`) retrievable by print date or document description.
- Provide Oracle data access for the above via `IBusinessCriteria`-based SQL, with joins to `XPRINTER_BIN` and `XPRINTER` for routing resolution at read time.
- Enforce optimistic-concurrency/contention checks on every insert, update, and delete across all six business objects.

## Key components
- `clsXPrintControl` / `clsXPrintControlCollection`: print-control batch header and its collection.
- `clsXDocument` / `clsXDocumentCollection`: individual print job document and its collection; collection drives batch/group printing logic via the `PrintType` enum (`ByDocSeq`, `ByPrintGroup`).
- `clsXDeferredPrint` / `clsXDeferredPrintCollection`: deferred print item and its collection, supporting `byDate` and `byDocDescr` retrieval modes.
- `DuplexModes` (enum): controlled vocabulary for duplex printing modes (`SIMPLEX`, `VERTICAL`, `HORIZONTAL`, `DEFLT`).
- `BinType` (enum): controlled vocabulary for printer bin routing (`AutoSelect`, `BulkInputTray`, `EnvelopeFeeder`, `Tray1`–`Tray4`).
- `Institutions` (typed DataSet): generated bank/institution lookup data shape; no consuming code was found within this library's source files.*

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

> **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\SAIF.BOF.Services.Printing.Remote.vbproj`
- `Services\SAIF.Services.Printing.Remote\clsXPrintControl.vb`
- `Services\SAIF.Services.Printing.Remote\clsXPrintControlCollection.vb`
- `Services\SAIF.Services.Printing.Remote\clsXDocument.vb`
- `Services\SAIF.Services.Printing.Remote\clsXDocumentCollection.vb`
- `Services\SAIF.Services.Printing.Remote\clsXDeferredPrint.vb`
- `Services\SAIF.Services.Printing.Remote\clsXDeferredPrintCollection.vb`
- `Services\SAIF.Services.Printing.Remote\Enums.vb`
- `Services\SAIF.Services.Printing.Remote\Institutions.Designer.vb`
