SAIF.Business.Claim.EAIP architecture¶
SAIF.Business.Claim.EAIP is a claim-domain business component that persists EAIP billing, period, reimbursement, targeting, and related history records through BOF business objects, Oracle stored procedures, and configuration-driven calculation helpers.
Responsibilities¶
- Manage EAIP billing records, expense billing, and bill-generation workflows.
- Maintain pay periods, time cards, expenses, purchases, reassignment records, and related history.
- Calculate and persist reimbursements, reimbursement detail, DCBS balances, and wage-subsidy values.
- Expose search and targeting entry points for EAIP claim and employer workflows.
- Centralize EAIP-specific code-table and utility helpers used across business objects.
Inherited framework context (from Legends CLI)¶
Cached resolvedTypes[].queries[] results for SAIF.Business.Claim.EAIP indicate the following inherited framework behavior:
IBusinessCriteriaprovides the BOF criteria contract that supplies overridable create/retrieve/insert/update/delete request slots for database and API-backed requests.* (source:saif-framework-corelibrary docs)IDataPortalInfosupplies connection, data-access-layer, API-client, and scalar-execution context to business objects during persistence and retrieval.* (source:saif-framework-corelibrary docs)IDataRequestrepresents the request abstraction used by the Oracle and SQL portal implementations beneath BOF business objects.* (source:saif-framework-corelibrary docs)clsBusinessBasecontributes edit lifecycle support and a per-objectclsRulesManagerused to surface validation state.* (source:saif-framework-corelibrary docs)clsBusinessCollectionBasecontributes collection traversal, deleted-item tracking, andIDataErrorInfovalidation surfacing for collection objects.* (source:saif-framework-corelibrary docs)clsResultSetis identified as a framework result-wrapper type, but no deeper indexed behavior was returned by the cached Legends results.* (source:saif-framework-corelibrary docs)clsSAIFDataReaderis identified as a framework data-reader abstraction, but no deeper indexed behavior was returned by the cached Legends results.* (source:saif-framework-corelibrary docs)clsSmartDateis part of the BOF smart-value wrapper set used to carry null-safe date values through business objects.* (source:saif-framework-corelibrary docs)clsSmartDecimalis part of the BOF smart-value wrapper set used to carry null-safe decimal values through business objects.* (source:saif-framework-corelibrary docs)clsSmartStringis part of the BOF smart-value wrapper set used to carry null-safe string values through business objects.* (source:saif-framework-corelibrary docs)
Component boundaries¶
- Billing boundary:
Billing\clsBilling,clsExpenseBilling, andclsGenerateBillown employer-billing persistence and bill-generation behavior. - Period boundary:
Period\clsPayPeriod,clsPayPeriodTimeCard,clsExpense,clsPurchase,clsWageSubsidy, and related history classes own EAIP operational state. - Reimbursement boundary:
Reimbursement\clsReimbursement,clsReimbursementDetail,clsAmount, andclsDetailAmountown reimbursement calculation and persistence. - Search and targeting boundary:
Search\*classes andTargeting\clsTargetingexpose read-oriented lookup and eligibility-targeting behavior. - Utility boundary:
mdlCodeTables,mdlUtility, anddcbsMethodsisolate reusable code-table access and helper behavior from entity persistence.
Interaction model¶
Application callers construct BOF business objects and criteria, the objects populate SQL or stored-procedure contracts on their criteria classes, and IDataPortalInfo routes those requests to Oracle. Billing and wage-subsidy operations additionally read Environment API configuration values before persisting calculated results.
Architecture diagram¶
The following diagram shows high-level component interactions.
flowchart TD
A[Claim applications] --> B[EAIP business objects]
B --> C[Billing and period modules]
B --> D[Reimbursement and targeting modules]
C --> E[Environment API settings]
C --> F[pk82500_eaip procedures]
D --> F
F --> G[Oracle EAIP tables]
Sequence diagram¶
The following diagram shows the primary request/response sequence.
sequenceDiagram
participant App as Claim application
participant EAIP as clsGenerateBill / clsPayPeriod
participant Config as EnvironmentService
participant DPI as IDataPortalInfo
participant DB as pk82500_eaip
App->>EAIP: Create or update EAIP work item
EAIP->>Config: Read EAIP rate settings when needed
Config-->>EAIP: Configuration values
EAIP->>DPI: Submit criteria SQL or stored-proc request
DPI->>DB: Execute EAIP insert/update/select
DB-->>DPI: Oracle rowset or rowcount
DPI-->>EAIP: Materialized business data
EAIP-->>App: Updated EAIP object graph
Design constraints¶
- Persistence is Oracle-centric and largely package-driven through
pk82500_eaip, with one notable inlineEAIP_PERIOD_TIMECARDinsert path that must stay consistent with package-managed tables. - EAIP billing and wage-subsidy calculations depend on
claims.eaip.fs2360.rateandclaims.eaip.wagesubsidyrates, and the configuration analysis found no local defaults for either key. - Update and delete flows rely on optimistic-concurrency rowcount checks surfaced as DB-contention errors by BOF lifecycle methods.
- The library is packaged with broad claim-domain dependencies, so changes in adjacent claim, payment, maintenance, and task libraries can affect EAIP orchestration behavior.
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Database tables
- SQL catalog
- Procedures
- 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.
Sources¶
Business\SAIF.Business.Claim.EAIP\SAIF.BOF.Business.Claim.EAIP.vbprojBusiness\SAIF.Business.Claim.EAIP\SAIF.BOF.Business.Claim.EAIP.nuspecBusiness\SAIF.Business.Claim.EAIP\packages.configBusiness\SAIF.Business.Claim.EAIP\Pipelines\build-vars.ymlBusiness\SAIF.Business.Claim.EAIP\Billing\clsBilling.vbBusiness\SAIF.Business.Claim.EAIP\Billing\clsExpenseBilling.vbBusiness\SAIF.Business.Claim.EAIP\Billing\clsGenerateBill.vbBusiness\SAIF.Business.Claim.EAIP\Period\clsPayPeriod.vbBusiness\SAIF.Business.Claim.EAIP\Period\clsPayPeriodTimeCard.vbBusiness\SAIF.Business.Claim.EAIP\Period\clsPeriod.vbBusiness\SAIF.Business.Claim.EAIP\Period\clsCreditCardPayments.vbBusiness\SAIF.Business.Claim.EAIP\Period\clsWageSubsidy.vbBusiness\SAIF.Business.Claim.EAIP\Reimbursement\clsReimbursement.vbBusiness\SAIF.Business.Claim.EAIP\Reimbursement\clsBalanceDCBS.vbBusiness\SAIF.Business.Claim.EAIP\Targeting\clsTargeting.vbBusiness\SAIF.Business.Claim.EAIP\Search\clsSearchCriteria.vbBusiness\SAIF.Business.Claim.EAIP\mdlCodeTables.vb