Skip to content

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 OnRetrieve and OnWrite orchestration.
  • 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, ClaimHeader control, 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).

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.config
  • Legal/Legal.vbproj
  • SAIF.Application.Claim.Legal/LegalManagerBase.vb
  • SAIF.Business.Claim.Legal/SAIF.Business.Claim.Legal.vbproj
  • SAIF.Business.View.Policy/SAIF.Business.View.Policy.vbproj