Application architecture¶
Claims Legal follows a layered BOF pattern with a WebForms presentation tier, an application-manager orchestration tier, a business-object tier, and a service/integration tier.
Layer diagram¶
The following diagram shows how the WebForms screens call application managers, which orchestrate business libraries and downstream service integrations.
flowchart TD
subgraph P["Presentation layer"]
P1["Legal WebForms<br>DefaultMaster, frmCaseSearch, frmSummary, frmSchedule, frmRequest, frmAppeal"]
P2["Popup controls<br>SAIF.Presentation.Web.Controls.PopUps.Infragistics111"]
end
subgraph A["Application layer"]
A1["SAIF.Application<br>AppManagerBase, UserAccess"]
A2["SAIF.Application.Claim<br>ClaimAppManager, ClaimSecurity"]
A3["SAIF.Application.Claim.Legal<br>LegalManagerBase and screen managers"]
end
subgraph B["Business layer"]
B1["SAIF.Business.Claim.Legal<br>legal cases, schedules, appeals, outcomes, costs"]
B2["SAIF.Business.View.Policy<br>policy view, affiliations, policy security"]
B3["SAIF.Business.Policy<br>shared policy contracts and lookups"]
B4["SAIF.Business.Utilities<br>formatting helpers"]
end
subgraph S["Services and integrations"]
S1["SAIF.Services.Appworx<br>batch letter jobs"]
S2["SAIF.Services.Printing<br>xPression and SSRS"]
S3["SAIF.Services.Export<br>CSV download"]
S4["SAIF.Services.Imaging.Import<br>imaging payloads"]
S5["Guidewire APIs<br>GwMatterApi, GWActivityData, GWClaimDataApi"]
S6["Oracle and SQL Server BDS<br>BOF data portal targets"]
end
P1 --> P2
P1 --> A3
A3 --> A2
A2 --> A1
A3 --> B1
A3 --> B2
B2 --> B3
B1 --> B4
A3 --> S1
A3 --> S2
A3 --> S3
S2 --> S4
A3 --> S5
B1 --> S6
B2 --> S6
Layer descriptions¶
| Layer | Libraries | Responsibility |
|---|---|---|
| Presentation | Legal (ASP.NET WebForms, DefaultMaster.master, database-driven menu navigation, Infragistics 11.1 grids/editors), SAIF.Presentation.Web.Controls.PopUps.Infragistics111 |
Renders screens, hosts reusable popup controls for notes, notify workflows, image moves, and task prompts. |
| Application | SAIF.Application, SAIF.Application.Claim, SAIF.Application.Claim.Legal | SAIF.Application supplies AppManagerBase, ApplicationDataAccess, UserAccess, and shared service-response helpers. SAIF.Application.Claim adds claim context, claim security, and claim task orchestration. SAIF.Application.Claim.Legal is the application-specific core, where each screen maps to a manager class such as clsCaseSearchManager, clsScheduleManager, clsRequestManager, clsAppealManager, or clsAssignmentManager. |
| Business | SAIF.Business.Claim.Legal, SAIF.Business.View.Policy, SAIF.Business.Policy, SAIF.Business.Utilities | SAIF.Business.Claim.Legal owns the legal case aggregate, schedules, appeals, outcomes, requests, notes, case cost, assignment logic, and reference-data maintenance objects. SAIF.Business.View.Policy supplies policy context, policy security, affiliations, team assignments, and policyholder data masking. SAIF.Business.Policy supplies shared policy contracts, enums, code maps, hazard groups, and policy information lookups. SAIF.Business.Utilities supplies formatting helpers used by policy-facing components. |
| Service and integration | SAIF.Services.Appworx, SAIF.Services.Printing, SAIF.Services.Export, SAIF.Services.Imaging.Import | SAIF.Services.Appworx submits batch jobs for letter generation. SAIF.Services.Printing provides xPression and SSRS document generation and preview. SAIF.Services.Export supports CSV export flows. SAIF.Services.Imaging.Import carries imaging metadata for downstream document distribution. |
Key patterns¶
- Screen-per-manager pattern: every major screen has a dedicated application manager with
OnRetrieveandOnWriteorchestration. - BOF data-portal pattern: business objects use
IBusinessCriteria,IDataPortalInfo, Oracle stored procedures, inline SQL, and targeted ad hoc queries. - Hybrid data access: legal-case data is primarily Oracle-backed, while policy-security and book-of-business lookups also use a SQL Server BDS connection.
- Hybrid integration model: some operations call Oracle directly, some call
LegalApi-style REST routes, and some call external services such as Guidewire, xPression, SSRS, and Appworx. - Cross-screen shared controls: the master page, popup library,
ClaimHeadercontrol,ObjectBindManager, and menu controls provide consistent navigation and edit behavior.
Integration points¶
| Integration | Type | Direction | Libraries involved |
|---|---|---|---|
| Guidewire matter and activity APIs | API | Outbound | SAIF.Application.Claim.Legal |
Claim claim-data API (ccclaimdataapi) |
API | Outbound | SAIF.Application.Claim.Legal |
| Appworx batch job submission | API/File | Outbound | SAIF.Services.Appworx |
| xPression document generation and SSRS report execution | API | Outbound | SAIF.Services.Printing |
| Oracle BOF data portal | DB | Bidirectional | SAIF.Business.Claim.Legal |
| SQL Server BDS policy-security lookups | DB | Inbound | SAIF.Business.View.Policy |
| Imaging/OnBase document distribution payloads | File/Message | Outbound | SAIF.Services.Imaging.Import, SAIF.Services.Printing |
Design constraints¶
- This is a .NET Framework ASP.NET WebForms application; it does not run on .NET Core/.NET 5+ and depends on IIS-hosted NTLM/Kerberos Windows authentication rather than a portable, cross-platform identity model.*
- Hybrid Oracle/SQL Server data access requires both connection contracts to be present and correctly configured in every deployment environment.
- Guidewire integrations are treated as best-effort: qualifying schedules and WCD updates are sent externally, but logging and exception handling prevent the base legal-case save from failing solely because a downstream API call failed (BR-APP-006).
- Consolidated (primary/secondary) legal cases must be kept state-aligned across independent save operations, which constrains how schedule, outcome, and status-change logic can be modified without breaking propagation (BR-APP-003).
Related documentation¶
- Application index
- Overview
- Dependencies
- Configuration
- Operations and processes
- Business rules
- Security and authorization
- Data model
- Tech debt
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¶
Legal/Web.configLegal/Legal.vbprojSAIF.Application.Claim.Legal/LegalManagerBase.vbSAIF.Business.Claim.Legal/SAIF.Business.Claim.Legal.vbprojSAIF.Business.View.Policy/SAIF.Business.View.Policy.vbproj