SAIF.Application operations and processes¶
This page is the operation catalog for this library. SAIF.Application supports no domain workflow of its own; each row below describes a reusable application-layer process that domain managers (SAIF.Application.Claim, SAIF.Application.Claim.Legal) build on.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules |
|---|---|---|---|---|---|
| Construct and initialize an application manager | Bind an identity to a new manager instance and prepare its data layer | A derived manager (e.g. ClaimAppManager) is constructed by a front-end page or service caller |
inSecurityPrincipal As clsSecurityPrincipal |
An initialized manager instance with a data layer ready for portal creation | BR-APP-001, BR-APP-002, BR-APP-007 |
| Provision a data portal and register it by key | Build an Oracle or SQL Server data portal and register it under a caller-supplied key | Derived manager's OnCreateDataLayer() implementation |
DBUser, Database, Server, BatchID properties; a portal key string |
An IDataPortalInfo registered in the DPI library under the lower-cased key |
BR-APP-007, BR-APP-008 |
| Evaluate and cache AD resource access | Answer whether the current user holds a named AD resource, reusing prior answers | A derived access class (e.g. ClaimUserAccess) is asked whether the current user holds a named AD resource |
One or more AD resource names; a clsSecurityPrincipal previously supplied via SetPrincipal |
Boolean authorization result; a populated per-instance cache |
BR-APP-004 |
| Accumulate and render user messages | Build a single de-duplicated, channel-appropriate message string for the caller | A derived manager reports a validation failure, save result, or informational note | One message string, a String(), or an IEnumerable(Of String) |
The Message property (single concatenated string) |
BR-APP-005, BR-APP-010 |
| Retrieve / Write lifecycle contract | Define the read/write contract every concrete manager must implement | Front-end page load or save postback on a derived manager | Derived-class context state | Boolean success flag; Message text; persisted business objects |
BR-APP-003, BR-APP-006 |
| Build a service response | Accumulate categorized success/warning/error/environment messages for service-style callers | A service-style manager derived from clsServiceAppManagerBase completes a unit of work |
Messages added during processing; optionally a caught Exception |
Result flag plus categorized message collections |
BR-APP-009 |
Process flow diagram¶
The following diagram visualizes the manager construction, authorization, and message-accumulation flow shared by all operations above.
flowchart TD
Start([Derived manager constructed]) --> Bind[Bind clsSecurityPrincipal]
Bind --> Init["Initialize: OnInitialize<br>then OnCreateDataLayer"]
Init --> Provision["Provision data portal via<br>ApplicationDataAccess"]
Init --> Auth["UserAccess.HasAccess checks<br>AD resource"]
Auth --> Cache{Cached?}
Cache -->|Yes| Return[Return cached Boolean]
Cache -->|No| Query[clsSecurityPrincipal.IsAuthorized]
Query --> Return
Return --> Mark["Derived manager calls<br>MarkUpdate / MarkViewOnly /<br>MarkNoAccess"]
Mark --> RW[Retrieve / Write lifecycle]
Database interactions¶
No database interactions exist in this library — SAIF.Application provisions Oracle and SQL Server data portals but issues no SQL of its own; the SQL executed on those portals belongs to consuming SAIF.Business.* libraries.
Failure and edge-case behavior¶
- A
Nothing/uninitializedclsSecurityPrincipalsurfaces as aNullReferenceExceptionrather than an explicit deny (Construct and initialize an application manager, Evaluate and cache AD resource access).** - Re-registering a DPI key through
CreateOraclePortal/CreateSQLServerPortalraisesArgumentException; the same key viaInjectDPIis silently ignored (Provision a data portal and register it by key). ServiceResponse.ProcessExceptioncan loop indefinitely when an exception's inner-exception chain is non-Nothing, due to an inner-exception re-assignment defect (Build a service response).**
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Configuration
- Business rules
- Security and authorization
- 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.
Sources¶
SAIF.Application/AppManagerBase.vbSAIF.Application/UserAccess.vbSAIF.Application/ApplicationDataAccess.vbSAIF.Application/MessageFormatting.vbSAIF.Application/Service Based/ServiceResponse.vbSAIF.Application/Service Based/clsServiceAppManagerBase.vb