---
title: CompositeRequestClass
summary: API reference for the CompositeRequestClass nested type.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-24
library: SAIF.Services.Printing
reference_type: package
---

# CompositeRequestClass

`CompositeRequestClass` is a public, `<Serializable()>` class nested inside `clsPrint`. It carries the full set of print/distribution request fields as the MSMQ message payload used by the asynchronous distribution path described in [BR-001](../../business-rules.md#br-001-distribution-mode-follows-the-asynchronous-flag) and [BR-002](../../business-rules.md#br-002-asynchronous-distribution-must-commit-or-abort-an-msmq-transaction).

## Purpose
- Bundle package, XML, printer, formatting, delivery, and IDM path fields into a single serializable message.
- Provide a diagnostic `ToString()` representation of the request payload.

## Context
- Namespace: `SAIF.Services.Printing`
- Assembly/package: `SAIF.Services.Printing`
- Defined in: `clsPrint.vb` (nested inside `clsPrint`, marked `<Serializable()>`)

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `PackageName` | `Public PackageName As String` | xPression package name for the request. |
| `XML` | `Public XML As String` | XML payload for the request. |
| `Printer` | `Public Printer As String` | Target printer name. |
| `Mode` | `Public Mode As PlexMode` | Duplex/simplex plex mode. |
| `Copies` | `Public Copies As Int16` | Requested print copy count. |
| `Scale` | `Public Scale As ScaleMode` | Scale mode for the print request. |
| `Format` | `Public Format As String` | Output format string. |
| `OutputProfile` | `Public OutputProfile As String` | xPression output profile name. |
| `Importinfo` | `Public Importinfo As clsImageImport` | Imaging import metadata attached to the request. |
| `EmailInfo` | `Public EmailInfo As EmailInfoClass` | Email delivery metadata. |
| `FaxInfo` | `Public FaxInfo As FaxInfoClass` | Fax delivery metadata. |
| `IDMPath` | `Public IDMPath As String` | IDM path value copied from `clsPrint.IDMPath` at message-build time. |
| `Tray` | `Public Tray As PaperTray` | Paper tray selection. |
| `DeferredInfo` | `Public DeferredInfo As DeferredPrintInfoClass` | Deferred-delivery metadata. |
| `ToString` | `Public Overrides Function ToString() As String` | Renders all fields, including nested object `ToString()` output where populated, as a labeled multi-line diagnostic string. |

## Behavioral notes
- `ToString()` substitutes an empty string for `Importinfo`, `EmailInfo`, `FaxInfo`, and `DeferredInfo` when those fields are `Nothing`, rather than throwing a null-reference exception.
- `clsPrint.distributeDocument()` constructs a `CompositeRequestClass` instance and sends it through the MSMQ transaction path when `Asynchronous` is `True`.*

## Constraints and usage notes
- The class must remain serializable (`<Serializable()>`) because instances are transmitted as MSMQ message bodies.
- Consumers reading queued messages must deserialize into `clsPrint.CompositeRequestClass` to access the original request fields.

> **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
- `Services\SAIF.Services.Printing\clsPrint.vb`
