SAIF.Business.Policy.Correspondence architecture¶
SAIF.Business.Policy.Correspondence is a mid-tier VB.NET BOF library that sits between consuming policy applications and Oracle-backed correspondence data. It combines framework-derived lifecycle behavior† with local correspondence logic, one Oracle document-output integration path, and one external Imaging API dependency.
Responsibilities¶
- Model correspondence and endorsement rows stored in
ENDORSEMENT. - Read correspondence-code metadata and read-only detail-element rows.
- Hand off policy output-document creation to the
pk73343_output_documentOracle package. - Reconcile local image references with the Imaging API.
Component boundaries¶
- No UI, service host, or program entry point is defined in this library.
- Persistence flows through
IDataPortalInfoand the inherited BOF data-portal lifecycle†. - The only outbound network dependency is
ImagingClient, created from theImagingApiUrlsetting. - Stored-procedure integration is isolated behind
clsOutputDocumentInserterand the legacyclsCorrespondence.InsertOutputLoghelper.
Interaction model¶
- Static factory methods create or retrieve business objects and collections.
- Nested criteria classes assemble Oracle SQL and route requests through the BOF data portal†.
clsEndorsementandclsEndorsementCollectionshadow the base retrieve SQL to add endorsement-only filters and policy-period rules.clsEndorsementCollectioncaches a sharedImagingClient, so endpoint changes require a process restart to take effect.*
Architecture diagram¶
The following diagram shows the library's high-level runtime collaborators.
flowchart TD
A[Consuming policy applications] --> B[SAIF.Business.Policy.Correspondence]
B --> C[SAIF.BOF.Business
constants and code collections]
B --> D[SAIF.Framework.Core
data portal and BOF base classes]
B --> E[(Oracle tables and procedures)]
B --> F[ImagingAPI.Client]
F --> G[(Imaging API)]
Sequence diagram¶
The following diagram shows the image-reconciliation path.
sequenceDiagram
participant Caller
participant Collection as clsEndorsementCollection
participant Env as EnvironmentService
participant Imaging as ImagingClient
Caller->>Collection: ClearImageSequenceNumbersForDeletedImages()
Collection->>Env: GetConfigSetting("ImagingApiUrl")
Env-->>Collection: Imaging API base URL
Collection->>Imaging: GetImages(POLICY, imageIds)
Imaging-->>Collection: Existing image IDs
Collection->>Collection: Reset missing IDs to 0
Collection-->>Caller: Updated collection
Design constraints¶
- Correspondence rows do not expose delete support through the criteria API.
- Detail rows are read-only in live code.
- Endorsement collection period logic differs for Guidewire and non-Guidewire policy periods.
- The Imaging API client is cached in a shared field, so endpoint changes take effect only after restart.*
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Database tables
- SQL catalog
- Configuration
- API reference
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. Statements marked with † are derived from dependency library documentation via the Legends CLI.
Sources¶
Business\SAIF.Business.Policy.Correspondence\SAIF.BOF.Business.Policy.Correspondence.vbprojBusiness\SAIF.Business.Policy.Correspondence\SAIF.BOF.Business.Policy.Correspondence.nuspecBusiness\SAIF.Business.Policy.Correspondence\packages.configBusiness\SAIF.Business.Policy.Correspondence\app.configBusiness\SAIF.Business.Policy.Correspondence\Web.configBusiness\SAIF.Business.Policy.Correspondence\clsCorrespondence.vbBusiness\SAIF.Business.Policy.Correspondence\clsCorrespondenceCode.vbBusiness\SAIF.Business.Policy.Correspondence\clsCorrespondenceCollection.vbBusiness\SAIF.Business.Policy.Correspondence\clsCorrespondenceDetail.vbBusiness\SAIF.Business.Policy.Correspondence\clsCorrespondenceDetailCollection.vbBusiness\SAIF.Business.Policy.Correspondence\clsEndorsement.vbBusiness\SAIF.Business.Policy.Correspondence\clsEndorsementCollection.vbBusiness\SAIF.Business.Policy.Correspondence\clsOutputDocumentInserter.vb