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 SSRSReportExecutionServiceSOAP 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 ownedclsPrintinstance. - 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, viaclsPrint. - Wrap the SSRS
ReportExecutionServiceSOAP service to load, parameterize, and render reports, viaclsRSPrint, independently of the xPression facade. - Orchestrate report/letter generation through the
Reporting.ReportBasetemplate-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 thexpresso.clsGenerateSOAP proxy; owns preview/print/publish/distribute operations and the MSMQ async-distribution path.clsRSPrint: Separate facade over SSRSReportExecutionService, used for reports rendered directly from an SSRS report path.Reporting.ReportBase/Reporting.IReport: Template-method base for concrete report/letter types; orchestratesCreate → Render → Print/Distribute/Saveusing an internally ownedclsPrintinstance.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.
Related documentation¶
Sources¶
SAIF.Services.Printing\clsPrint.vbSAIF.Services.Printing\clsRSPrint.vbSAIF.Services.Printing\Reporting\ReportBase.vbSAIF.Services.Printing\Reporting\IReport.vbSAIF.Services.Printing\Reporting\XDesignXDocument.vbSAIF.Services.Printing\Reporting\XDesignXElement.vbSAIF.Services.Printing\SAIF.Services.Printing.vbproj