Skip to content

SAIF.Services.Printing overview

Documentation context: Front-End Application Component Documented via: Legal (Legal\Legal.vbproj)

SAIF.Services.Printing is a VB.NET service-facade library that wraps two external document-related SOAP services — xPression Design ("xPresso") for document generation, printing, and distribution, and SQL Server Reporting Services (SSRS) for report execution — and exposes a higher-level "letter"/report abstraction built on top of the xPression facade. It contains no UI and no BOF business-object types of its own.

Purpose

  • Provide a single, class-based wrapper (clsPrint) around the xPression Design "xPresso" SOAP service so callers can preview, print, publish, and distribute generated documents without talking to the SOAP proxy directly.
  • Provide a separate wrapper (clsRSPrint) around the SSRS ReportExecutionService SOAP service for loading, parameterizing, and rendering reports defined directly on an SSRS report server.
  • Offer a template-method "letter"/report abstraction (Reporting.IReport / Reporting.ReportBase) that lets concrete report/letter subclasses build an XML document and then render/print/distribute/save it consistently through an internally owned clsPrint instance.
  • Provide a bespoke XML-to-xPression-markup serializer (Reporting.XDesignXDocument / Reporting.XDesignXElement) that renders XML trees into the proprietary tag format expected by xPression Design templates, with primary/foreign "key" propagation.
  • Support asynchronous document distribution via MSMQ, as an alternative to synchronous SOAP distribution, including transaction lifecycle management.

Responsibilities

  • Wrap the xPression Design "xPresso" SOAP service (clsGenerate) to preview, print, publish, and distribute documents, via clsPrint.
  • Wrap the SSRS ReportExecutionService SOAP service to load, parameterize, and render reports, via clsRSPrint, independently of the xPression facade.
  • Orchestrate report/letter generation through the Reporting.ReportBase template-method base class.
  • Serialize XML document trees into xPression's proprietary markup via Reporting.XDesignXDocument/Reporting.XDesignXElement.
  • Route document distribution either synchronously (direct SOAP call) or asynchronously via an MSMQ queue (documentMSMQPath).

Key components

  • clsPrint: Stateful wrapper around the xpresso.clsGenerate SOAP proxy; owns preview/print/publish/distribute operations and the MSMQ async-distribution path.
  • clsRSPrint: Separate facade over SSRS ReportExecutionService, used for reports rendered directly from an SSRS report path.
  • Reporting.ReportBase / Reporting.IReport: Template-method base for concrete report/letter types; orchestrates Create → Render → Print/Distribute/Save using an internally owned clsPrint instance.
  • Reporting.XDesignXDocument / Reporting.XDesignXElement: XML document/element wrappers that render into xPression's proprietary markup format.
  • xpresso.clsGenerate / SharepointReporting.ReportExecutionService: Auto-generated SOAP client proxies (Web References) for the external xPression Design and SSRS services.

Sources

  • SAIF.Services.Printing\clsPrint.vb
  • SAIF.Services.Printing\clsRSPrint.vb
  • SAIF.Services.Printing\Reporting\ReportBase.vb
  • SAIF.Services.Printing\Reporting\IReport.vb
  • SAIF.Services.Printing\Reporting\XDesignXDocument.vb
  • SAIF.Services.Printing\Reporting\XDesignXElement.vb
  • SAIF.Services.Printing\SAIF.Services.Printing.vbproj