Application business rules¶
This page is the complete catalog of business rules that govern this application's behavior. A rule appears here when it is enforced on a code path this application can actually execute — regardless of where the enforcing code lives: the application project itself, a screen code-behind, or a consumed library.
Rules defined in a consumed library but never reached by this application are out of scope and are listed only in Rules not reachable from this application.
Rule scope and coverage¶
Reachability was determined by tracing outward from this application's entry points — screen event handlers, application workflow steps, and application startup/infrastructure code — through the documented delegations in the application, screen, and library analyses available in this repository.
| Category | Section | Count |
|---|---|---|
| Application-level (cross-cutting) | Application-level business rules | 6 |
| Screen-enforced | Screen business rules | 6 |
| Library-defined, in scope | Library business rules in scope | 15 |
| Total in scope | 27 | |
| Library-defined, not reachable | Rules not reachable from this application | 159 |
Rule index¶
| Rule ID | Statement | Origin | Reached from |
|---|---|---|---|
| BR-APP-001 | LegalMaintenance applies a shared LNView-based view-only mode across maintenance screens and AJAX-backed manager flows. | Application | Attorney profile maintenance, Hearing location maintenance, Inline AJAX grid edit via DataHelper.aspx |
| BR-APP-002 | Attorney assignment composes claim-context confidentiality with legal-manager access checks. | Application | Attorney-to-claim assignment |
| BR-APP-003 | Saving attorney assignments can fan out into task creation and calendar synchronization. | Application | Attorney-to-claim assignment |
| BR-APP-004 | Environment classification governs real versus test side effects. | Application | Attorney-to-claim assignment, Batch job submission (Appworx) |
| BR-APP-005 | Print preview depends on a shared package and metadata contract. | Application | Print preview and document distribution, Print Preview |
| BR-APP-006 | Startup always routes into attorney profile maintenance. | Application | Legal Maintenance Start Page |
| BR-SCR-001 | Attorney schedule view requires a specific attorney selection. | Attorney Tables | Attorney Tables |
| BR-SCR-002 | Attorney profile insert requires an unprofiled attorney. | Attorney Profile | Attorney Profile |
| BR-SCR-003 | Legal Person switches behavior by selected maintenance view. | Legal Person | Legal Person |
| BR-SCR-004 | Other Parties always applies the selected firm-type filter. | Other Parties | Other Parties |
| BR-SCR-005 | Hearing Location writes only dirty, valid collections. | Hearing Locations | Hearing Locations |
| BR-SCR-006 | Rotation print is available only through the rotation screen workflow. | Out of Town Rotations | Out of Town Rotations |
| BR-APP-001 | An application manager cannot be created without a security principal. | SAIF.Application | Attorney profile maintenance |
| BR-APP-004 | AD resource authorization is cached per instance. | SAIF.Application | Attorney profile maintenance, Attorney Tables |
| BR-CLM-003 | Claim context changes run retrieval, then security, then downstream retrieve logic. | SAIF.Application.Claim | Attorney-to-claim assignment |
| BR-CLM-006 | Worker-conflict claims are denied unless conflict authority or an override exists. | SAIF.Application.Claim | Attorney-to-claim assignment |
| BR-CLM-012 | Only the conflict dimension auto-blocks in the base claim manager. | SAIF.Application.Claim | Attorney-to-claim assignment |
| BR-001 | Legal-admin members bypass confidential-claim restrictions. | SAIF.Application.Claim.Legal | Attorney-to-claim assignment |
| BR-002 | Worker-conflict claims require legal conflict access, admin access, or override. | SAIF.Application.Claim.Legal | Attorney-to-claim assignment |
| BR-003 | Exposure claims require legal exposure access, admin access, or override. | SAIF.Application.Claim.Legal | Attorney-to-claim assignment |
| BR-006 | LNView is surfaced as the read-only capability for screens. |
SAIF.Application.Claim.Legal | Attorney profile maintenance, Attorney Tables |
| BR-030 | Saving attorney tables persists six child collections in a fixed order within one write. | SAIF.Application.Claim.Legal | Attorney Tables, Inline AJAX grid edit via DataHelper.aspx |
| BR-031 | Lookup code lists are cached in-process for eight hours. | SAIF.Application.Claim.Legal | Attorney profile maintenance, Hearing location maintenance |
| BR-050 | New hearing locations default flags and audit fields. | SAIF.Application.Claim.Legal | Hearing location maintenance |
| BR-060 | Attorney profiles are active only while expiration has not passed. | SAIF.Application.Claim.Legal | Attorney profile maintenance |
| BR-ASG-001 | Assignment processing sets legal case evaluation due dates to Today.NextWorkDay(18). |
SAIF.Business.Claim.Legal | Attorney-to-claim assignment |
| BR-ASG-002 | Assignment result codes CA and CAC trigger downstream side effects. |
SAIF.Business.Claim.Legal | Attorney-to-claim assignment |
| BR-CT-03 | Generated claim-task assignees must hold task-update access. | SAIF.Business.Tasks.Claim | Attorney-to-claim assignment |
| BR-CT-10 | Generated claim tasks default to the Manage Claims category. | SAIF.Business.Tasks.Claim | Attorney-to-claim assignment |
| BR-PRT-008 | Print rendering requires XML content and a report package. | SAIF.Services.Printing | Print preview and document distribution |
| BR-IMG-010 | Imaging metadata uses a fixed wire contract. | SAIF.Services.Imaging.Import | Print preview and document distribution |
| BR-003 | Appworx submissions send only populated argument slots. | SAIF.Services.Appworx | Batch job submission (Appworx) |
| BR-004 | Appworx submissions always send module, requestor, and printer values. | SAIF.Services.Appworx | Batch job submission (Appworx) |
Application-level business rules¶
BR-APP-001 AD-group-gated view-only mode controls toolbar edits¶
| Field | Value |
|---|---|
| Statement | LegalMaintenance applies a shared LNView-based view-only mode across maintenance screens and AJAX-backed manager flows. |
| Trigger | A user opens a maintenance screen or posts a maintenance-grid request backed by a LegalManagerBase-derived manager. |
| Enforcement | Screen Page_Load handlers disable Insert/Save/Delete when Manager.IsInViewOnly is true, while the same manager family also backs DataHelper.aspx AJAX mutations. |
| Outcome | Standard screens demote LNView users to read-only toolbar behavior, but the same manager family remains reachable through grid-driven mutation paths. |
| Origin | Application |
| Enforcing libraries | SAIF.Application, SAIF.Application.Claim.Legal |
| Reached from | Attorney profile maintenance, Hearing location maintenance, Inline AJAX grid edit via DataHelper.aspx, Attorney Profile, Attorney Tables |
| Source | docs/application/operations/attorney-profile-maintenance.md, docs/application/operations/hearing-location-maintenance.md, docs/application/operations/inline-ajax-grid-edit.md, docs/screens/frm-attorney-profile.md, docs/screens/frm-attorney-assignment.md |
BR-APP-002 Claim confidentiality is composed from claim context and legal access checks¶
| Field | Value |
|---|---|
| Statement | Attorney assignment composes claim-context confidentiality with legal-manager access checks before assignment data is read or written. |
| Trigger | A user selects a claim or worker context on the attorney assignment workflow. |
| Enforcement | ClaimAppManager.ChangeContext() runs claim retrieval and security checks, then LegalManagerBase.OnRetrieve applies legal admin/conflict/exposure gating against the same claim context. |
| Outcome | Assignment workflows can proceed only through claim contexts that survive both claim-level and legal-level confidentiality evaluation. |
| Origin | Application |
| Enforcing libraries | SAIF.Application.Claim, SAIF.Application.Claim.Legal |
| Reached from | Attorney-to-claim assignment |
| Tables | ATTORNEY_WORKER_ASSIGNMENT, ATTORNEY_CONFLICT |
| Source | docs/application/operations/attorney-to-claim-assignment.md, docs/application/security-authorization.md |
BR-APP-003 Assignment save fan-out includes task and calendar side effects¶
| Field | Value |
|---|---|
| Statement | Saving attorney assignments can fan out from UI persistence into task creation and calendar synchronization. |
| Trigger | A user saves attorney assignment collections from the attorney assignment screen. |
| Enforcement | The screen delegates to Controller.Write, the application-layer assignment manager runs the assignment process, and downstream business/task libraries raise claim tasks and optionally sync Exchange calendars. |
| Outcome | One save can update assignment tables, generate a claim task, and invoke attorney calendar side effects. |
| Origin | Application |
| Enforcing libraries | SAIF.Application.Claim.Legal, SAIF.Business.Claim.Legal, SAIF.Business.Tasks.Claim |
| Reached from | Attorney-to-claim assignment, Attorney Tables |
| Tables | ATTORNEY_WORKER_ASSIGNMENT, ATTORNEY_CONFLICT, TASK |
| Source | docs/application/operations/attorney-to-claim-assignment.md, docs/screens/frm-attorney-assignment.md |
BR-APP-004 Environment classification governs real vs test side effects¶
| Field | Value |
|---|---|
| Statement | Environment classification determines whether assignment and batch workflows target real or test side effects. |
| Trigger | Assignment processing decides whether to run in testing mode, or an Appworx batch request is submitted. |
| Enforcement | AppGlobal.EnvironmentService.GetApplicationEnvironment() drives the attorney-assignment testing flag and the Appworx target database selection. |
| Outcome | Non-production environments should remain on test-safe side effects; a misclassified environment can route to production-affecting integrations.* |
| Origin | Application |
| Enforcing libraries | SAIF.Business.Claim.Legal, SAIF.Services.Appworx |
| Reached from | Attorney-to-claim assignment, Batch job submission (Appworx) |
| Tables | JOB_QUEUE |
| Source | docs/application/operations/attorney-to-claim-assignment.md, docs/application/operations/batch-job-submission-appworx.md, docs/application/dependencies.md |
BR-APP-005 Print preview depends on a shared package and metadata contract¶
| Field | Value |
|---|---|
| Statement | Print preview depends on a caller-seeded package/XML contract shared with the printing and imaging libraries. |
| Trigger | A maintenance screen invokes print preview. |
| Enforcement | PrintReport(...) stores package/XML state, frmPrintPreview.aspx calls clsPrint.previewDocument(...), and the printing path serializes imaging metadata into the fixed clsImageImport.ToString() wire format. |
| Outcome | Print preview succeeds only when callers prepare a valid package plus XML/metadata payload that downstream services can interpret. |
| Origin | Application |
| Enforcing libraries | SAIF.Services.Printing, SAIF.Services.Imaging.Import |
| Reached from | Print preview and document distribution, Print Preview, Out of Town Rotations |
| Source | docs/application/operations/print-preview-and-document-distribution.md, docs/screens/frm-print-preview.md, docs/screens/frm-rotation.md |
BR-APP-006 Startup always routes into attorney profile maintenance¶
| Field | Value |
|---|---|
| Statement | Application startup always routes users from Default.aspx into attorney profile maintenance. |
| Trigger | The browser requests the application's default page. |
| Enforcement | Default.aspx unconditionally calls Controller.Navigate(ApplicationName, "frmAttorneyProfile.aspx"). |
| Outcome | The only documented startup path enters the attorney profile workflow. |
| Origin | Application |
| Enforcing libraries | SAIF.Application.Claim.Legal |
| Reached from | Legal Maintenance Start Page |
| Source | docs/screens/default.md |
Screen business rules¶
BR-SCR-001 Attorney schedule view requires a specific attorney selection¶
| Field | Value |
|---|---|
| Statement | The attorney schedule grid cannot be loaded when the filter remains ALL. |
| Trigger | A user selects attorney_schedule in ddlTableType and tries to configure the view. |
| Enforcement | ConfigureView() on frmAttorneyAssignment.aspx.vb shows an error and exits when ddlAttorney.SelectedValue = "ALL" for the schedule table. |
| Outcome | Schedule data is withheld until the user narrows the view to one attorney. |
| Origin | Attorney Tables |
| Reached from | Attorney Tables |
| Source | docs/screens/frm-attorney-assignment.md |
BR-SCR-002 Attorney profile insert requires an unprofiled attorney¶
| Field | Value |
|---|---|
| Statement | Attorney profile insert is blocked when no unprofiled attorneys remain. |
| Trigger | A user clicks Insert on the Attorney Profile screen. |
| Enforcement | Insert() checks Manager.NewAttornies.Count and stops with an error when the count is zero. |
| Outcome | Users cannot create duplicate attorney-profile rows for already-profiled attorneys. |
| Origin | Attorney Profile |
| Reached from | Attorney Profile |
| Source | docs/screens/frm-attorney-profile.md |
BR-SCR-003 Legal Person screen switches behavior by selected maintenance view¶
| Field | Value |
|---|---|
| Statement | Legal Person changes editable grids and expired-row behavior based on the selected maintenance view. |
| Trigger | A user changes ddlPersonType or toggles chkExpired. |
| Enforcement | ActiveGrid, FormatWebGridColumns, and ddlPersonType_SelectedIndexChanged switch between dgPerson and dgPersonType, while chkExpired_CheckedChanged controls expired-row inclusion. |
| Outcome | The same screen enforces distinct maintenance behavior for legal-person rows versus legal-person-type rows. |
| Origin | Legal Person |
| Reached from | Legal Person |
| Source | docs/screens/frm-legal-person.md |
BR-SCR-004 Other Parties always applies the selected firm-type filter¶
| Field | Value |
|---|---|
| Statement | Other Parties always rebinds data through the currently selected firm-type filter. |
| Trigger | The screen loads, the user clicks Retrieve, or the screen refreshes after save. |
| Enforcement | BindData copies ddlFirmType into Manager.FirmFilter, and successful save forces a filtered reload. |
| Outcome | Users always edit the subset of other-firm rows defined by the current firm-type selection. |
| Origin | Other Parties |
| Reached from | Other Parties |
| Source | docs/screens/frm-other-firms.md |
BR-SCR-005 Hearing Location screen writes only dirty, valid collections¶
| Field | Value |
|---|---|
| Statement | Hearing Locations saves or deletes only when the bound collection is valid, and save also requires dirty rows. |
| Trigger | A user clicks Save or Delete on the Hearing Locations screen. |
| Enforcement | Save checks Manager.HearingLocationCol.IsDirty and IsValid; Delete also gates the operation on collection validity before calling Manager.DeleteLocation. |
| Outcome | Invalid collections surface messages instead of persisting or deleting hearing-location rows. |
| Origin | Hearing Locations |
| Reached from | Hearing Locations |
| Source | docs/screens/frm-hearing-location.md |
BR-SCR-006 Rotation print is available only through the rotation screen workflow¶
| Field | Value |
|---|---|
| Statement | Rotation reporting is emitted only from the rotation screen's Print action. |
| Trigger | A user clicks Print on the rotation screen. |
| Enforcement | SAIFMenuTop.PrintButton runs Legal_Maint_RotationReport and navigates to print preview with the prepared report context. |
| Outcome | Rotation report output is available only when invoked from the screen's explicit print workflow. |
| Origin | Out of Town Rotations |
| Reached from | Out of Town Rotations |
| Source | docs/screens/frm-rotation.md |
Library business rules in scope¶
BR-APP-001 Manager construction requires a security principal¶
| Field | Value |
|---|---|
| Statement | An application manager cannot be created without a security principal. |
| Trigger | LegalMaintenance creates any manager instance for a screen or workflow. |
| Enforcement | AppManagerBase.New(inSecurityPrincipal As clsSecurityPrincipal) is the only protected constructor path available to derived managers. |
| Outcome | Every reachable manager carries request identity for authorization and DB client identity. |
| Origin | SAIF.Application — AppManagerBase |
| Reached from | Attorney profile maintenance, Hearing location maintenance, Attorney Tables |
| Source | docs/libraries/saif-application/business-rules.md, docs/application/operations/attorney-profile-maintenance.md |
BR-APP-004 AD resource authorization is cached per instance¶
| Field | Value |
|---|---|
| Statement | An AD resource authorization decision is evaluated once per UserAccess instance and reused thereafter. |
| Trigger | A manager checks LNView, LNAdmin, LNConflict, or another resource during one request lifecycle. |
| Enforcement | UserAccess.HasAccess caches the resource decision before reusing it on later checks. |
| Outcome | Repeat authorization checks within one manager instance reuse the same result instead of re-querying AD. |
| Origin | SAIF.Application — UserAccess |
| Reached from | Attorney profile maintenance, Hearing location maintenance, Attorney Tables |
| Source | docs/libraries/saif-application/business-rules.md, docs/application/security-authorization.md |
BR-CLM-003 Fixed context-change pipeline order¶
| Field | Value |
|---|---|
| Statement | Every context change runs claim retrieval, then the security evaluation, then the screen retrieval — in that order. |
| Trigger | Attorney assignment sets or changes claim context. |
| Enforcement | ChangeContext() in ClaimAppManager calls OnContextChanged() → OnCheckSecurity() → OnRetrieve(). |
| Outcome | Claim security is always evaluated against loaded claim data before legal assignment retrieval logic runs. |
| Origin | SAIF.Application.Claim — ClaimAppManager |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-application-claim/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-CLM-006 Conflict-claim denial with override¶
| Field | Value |
|---|---|
| Statement | A user without conflict-claim authority is denied all access to a worker-conflict claim unless a per-claim security override has been granted to that user. |
| Trigger | Attorney assignment evaluates a claim context flagged as worker conflict. |
| Enforcement | ClaimAppManager.OnCheckSecurity() calls MarkNoAccess() when ClaimSecurity.ConflictAccess is false and no override exists. |
| Outcome | Worker-conflict claims are blocked before attorney-assignment data is exposed unless an explicit override restores access. |
| Origin | SAIF.Application.Claim — ClaimAppManager |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-application-claim/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-CLM-012 Only conflict dimension auto-blocks¶
| Field | Value |
|---|---|
| Statement | Of the four claim-confidentiality dimensions, only the conflict dimension blocks access automatically. |
| Trigger | Attorney assignment runs the claim security check for a selected claim context. |
| Enforcement | ClaimAppManager.OnCheckSecurity() tests only ClaimSecurity.ConflictAccess for automatic denial. |
| Outcome | Exposure, secure-claim, and health-issue results remain advisory until legal-layer consumers enforce them. |
| Origin | SAIF.Application.Claim — ClaimAppManager |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-application-claim/business-rules.md, docs/application/security-authorization.md |
BR-001 Members of the legal admin AD group bypass all confidential-claim restrictions¶
| Field | Value |
|---|---|
| Statement | Members of the legal admin AD group bypass all confidential-claim restrictions. |
| Trigger | A legal manager retrieves assignment data for a claim-context workflow. |
| Enforcement | LegalManagerBase.OnRetrieve grants access when IsInAdminGroup is true. |
| Outcome | Legal-admin users bypass downstream conflict and exposure claim restrictions during legal retrieval. |
| Origin | SAIF.Application.Claim.Legal — LegalManagerBase |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-002 A worker-conflict claim¶
| Field | Value |
|---|---|
| Statement | A worker-conflict claim may be viewed only with legal conflict access (or admin, or a security override). |
| Trigger | A selected attorney-assignment claim context is marked as worker conflict. |
| Enforcement | LegalManagerBase.OnRetrieve checks ClaimData.IsWorkerConflict and blocks access when legal conflict access is absent and no bypass applies. |
| Outcome | Confidential worker-conflict claims are hidden from non-entitled legal users in the assignment flow. |
| Origin | SAIF.Application.Claim.Legal — LegalManagerBase |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-003 An exposure claim¶
| Field | Value |
|---|---|
| Statement | An exposure claim may be viewed only with legal exposure access (or admin, or a security override). |
| Trigger | A selected attorney-assignment claim context is marked as exposure. |
| Enforcement | LegalManagerBase.OnRetrieve checks ClaimData.IsExposure and blocks access when legal exposure access is absent and no bypass applies. |
| Outcome | Exposure claims are withheld from non-entitled legal users during the assignment workflow. |
| Origin | SAIF.Application.Claim.Legal — LegalManagerBase |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-006 The LNView resource is surfaced as a Boolean capability for read-only workflows¶
| Field | Value |
|---|---|
| Statement | The LNView resource is surfaced as a Boolean capability for read-only workflows. |
| Trigger | A LegalMaintenance screen decides whether to suppress write actions. |
| Enforcement | LegalManagerBase.IsInViewOnly exposes the LNView authorization result to screen code. |
| Outcome | Maintenance screens can disable toolbar editing actions for read-only users. |
| Origin | SAIF.Application.Claim.Legal — LegalManagerBase |
| Reached from | Attorney profile maintenance, Hearing location maintenance, Attorney Tables, Other Parties |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/security-authorization.md, docs/screens/frm-other-firms.md |
BR-030 Saving attorney tables persists six child collections in a fixed order within one write¶
| Field | Value |
|---|---|
| Statement | Saving attorney tables persists six child collections in a fixed order within one write. |
| Trigger | A user saves attorney-table edits or an AJAX table mutation reaches the manager. |
| Enforcement | clsAttorneyTableManager.OnWrite saves the attorney table child collections in a fixed sequence inside one write operation. |
| Outcome | Attorney conflict, policy, worker, schedule, and related table changes are persisted together in one ordered manager write.* |
| Origin | SAIF.Application.Claim.Legal — clsAttorneyTableManager |
| Reached from | Attorney Tables, Inline AJAX grid edit via DataHelper.aspx |
| Tables | ATTORNEY_WORKER_ASSIGNMENT, ATTORNEY_CONFLICT, ATTORNEY_POLICY_ASSIGNMENT, ATTORNEY_SCHEDULE |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/operations/inline-ajax-grid-edit.md, docs/screens/frm-attorney-assignment.md |
BR-031 Lookup code lists are cached in-process for 8 hours sliding¶
| Field | Value |
|---|---|
| Statement | Lookup code lists are cached in-process for 8 hours (sliding) at low priority. |
| Trigger | Attorney-table, hearing-location, or profile screens first request shared lookup lists. |
| Enforcement | AddToCache helpers in clsAttorneyTableManager and clsHearingLocationManager populate shared lookup data into process cache. |
| Outcome | Repeated screen loads reuse cached code lists instead of requerying the database for each request. |
| Origin | SAIF.Application.Claim.Legal — clsAttorneyTableManager, clsHearingLocationManager |
| Reached from | Attorney profile maintenance, Hearing location maintenance, Out of Town Rotations |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/operations/hearing-location-maintenance.md |
BR-050 New hearing locations default RequiresFullDayFlag False RotationFlag False CreateDate Today CreateUser DPI UserID¶
| Field | Value |
|---|---|
| Statement | New hearing locations default to RequiresFullDayFlag = False and RotationFlag = False, with CreateDate = Today and CreateUser = DPI.UserID. |
| Trigger | A user inserts a new hearing location row. |
| Enforcement | clsHearingLocationManager.InsertNewLocation seeds the new row before it is edited on the screen. |
| Outcome | New hearing-location records start with stable default flags and audit fields. |
| Origin | SAIF.Application.Claim.Legal — clsHearingLocationManager |
| Reached from | Hearing location maintenance, Hearing Locations |
| Tables | HEARING_LOCATION |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/application/operations/hearing-location-maintenance.md, docs/screens/frm-hearing-location.md |
BR-060 Attorney profiles are active only when ExpirationDate has not passed¶
| Field | Value |
|---|---|
| Statement | An attorney profile is "active" only when its ExpirationDate has not passed. |
| Trigger | The attorney profile screen loads or refreshes active-only profile data. |
| Enforcement | clsMaintenanceManager.GetProfiles returns active profiles separately from all profiles based on expiration status. |
| Outcome | The default attorney-profile view excludes expired attorney profiles until the user asks to include them. |
| Origin | SAIF.Application.Claim.Legal — clsMaintenanceManager |
| Reached from | Attorney profile maintenance, Attorney Profile |
| Tables | ATTORNEY_PROFILE |
| Source | docs/libraries/saif-application-claim-legal/business-rules.md, docs/screens/frm-attorney-profile.md |
BR-ASG-001 Legal case evaluation due date is Today NextWorkDay 18¶
| Field | Value |
|---|---|
| Statement | Legal case evaluation due date is Today.NextWorkDay(18). |
| Trigger | The attorney assignment batch process creates or updates assignment side effects for an eligible case. |
| Enforcement | The attorney-assignment business process in SAIF.Business.Claim.Legal computes the legal case evaluation due date using the next-workday offset. |
| Outcome | Assignment-driven legal evaluation follow-up dates land eighteen working days after the triggering event. |
| Origin | SAIF.Business.Claim.Legal — assignment process |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-business-claim-legal/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-ASG-002 Assignment result codes CA and CAC trigger¶
| Field | Value |
|---|---|
| Statement | Assignment result codes CA and CAC trigger downstream assignment processing side effects. |
| Trigger | The attorney assignment business flow processes an assignment result whose code is CA or CAC. |
| Enforcement | The assignment batch logic branches on these result codes to drive follow-on work. |
| Outcome | Only qualifying assignment outcomes trigger the documented assignment follow-up actions. |
| Origin | SAIF.Business.Claim.Legal — assignment process |
| Reached from | Attorney-to-claim assignment |
| Source | docs/libraries/saif-business-claim-legal/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-CT-03 Assignee must hold task-update AD access¶
| Field | Value |
|---|---|
| Statement | The assignee mailid must hold AD resource CTTaskUpdate, or else external resource RTWExternalUpdate. |
| Trigger | The assignment workflow generates a claim task and sets its assignee mailid. |
| Enforcement | clsClaimTask.ValidMailId validates assignee access during task creation/save. |
| Outcome | Generated claim tasks are blocked when the chosen assignee lacks the required task-update authorization. |
| Origin | SAIF.Business.Tasks.Claim — clsClaimTask |
| Reached from | Attorney-to-claim assignment |
| Tables | TASK |
| Source | docs/libraries/saif-business-tasks-claim/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-CT-10 Claim tasks default to the Manage Claims category¶
| Field | Value |
|---|---|
| Statement | Claim tasks are always created under the Manage Claims category (CLMM) unless the caller requests Fast Track (FSTRK). |
| Trigger | The attorney assignment workflow creates a downstream claim task. |
| Enforcement | clsClaimTask.NewTask and clsClaimTaskGenerator.NewTask seed the category during task creation. |
| Outcome | Assignment-generated tasks enter the claims task domain under the standard Manage Claims category unless explicitly overridden. |
| Origin | SAIF.Business.Tasks.Claim — clsClaimTask, clsClaimTaskGenerator |
| Reached from | Attorney-to-claim assignment |
| Tables | TASK |
| Source | docs/libraries/saif-business-tasks-claim/business-rules.md, docs/application/operations/attorney-to-claim-assignment.md |
BR-PRT-008 Render and distribute preconditions¶
| Field | Value |
|---|---|
| Statement | A report can be rendered or distributed only when its XML document exists and a report package is assigned. |
| Trigger | The print preview screen attempts to render a document. |
| Enforcement | ReportBase.Render and ReportBase.Distribute short-circuit unless both package and XML prerequisites are present. |
| Outcome | Print preview does not call downstream print services with incomplete report payloads. |
| Origin | SAIF.Services.Printing — ReportBase |
| Reached from | Print preview and document distribution, Print Preview |
| Source | docs/libraries/saif-services-printing/business-rules.md, docs/screens/frm-print-preview.md |
BR-IMG-010 Wire format contract key set and order¶
| Field | Value |
|---|---|
| Statement | The emitted key set, key spelling, and key order form the imaging/xPression wire contract; every key in the fixed list is always present even when its value is blank. |
| Trigger | Print/document distribution serializes imaging metadata through clsImageImport.ToString(). |
| Enforcement | clsImageImport.ToString() emits the stable newline-delimited metadata block consumed by downstream print/imaging components. |
| Outcome | Print consumers can rely on a fixed metadata shape and field order across document-distribution requests. |
| Origin | SAIF.Services.Imaging.Import — clsImageImport |
| Reached from | Print preview and document distribution |
| Source | docs/libraries/saif-services-imaging-import/business-rules.md, docs/application/operations/print-preview-and-document-distribution.md |
BR-003 Only populated argument slots are transmitted¶
| Field | Value |
|---|---|
| Statement | Only argument slots that hold a value are transmitted to the scheduler; unsupplied arguments must not be sent as parameters. |
| Trigger | LegalMaintenance constructs and submits an Appworx batch request. |
| Enforcement | clsRequestAppworxJob only copies non-empty ArgN values into the stored-procedure request. |
| Outcome | Appworx receives sparse parameter lists that reflect only the arguments the batch workflow actually populated. |
| Origin | SAIF.Services.Appworx — clsRequestAppworxJob |
| Reached from | Batch job submission (Appworx) |
| Tables | JOB_QUEUE |
| SQL | SQL-001 |
| Source | docs/libraries/saif-services-appworx/business-rules.md, docs/application/operations/batch-job-submission-appworx.md |
BR-004 Module requestor and printer are always supplied with defaults¶
| Field | Value |
|---|---|
| Statement | Module, requestor, and printer are always supplied on every submission; requestor defaults to Appworx and printer defaults to SYSOUT when the caller does not specify them. |
| Trigger | LegalMaintenance submits an Appworx job request. |
| Enforcement | clsRequestAppworxJob seeds defaults and unconditionally supplies the fixed procedure parameters. |
| Outcome | Batch submissions always include the Appworx contract's required top-level identifiers, even when the caller omits optional values.* |
| Origin | SAIF.Services.Appworx — clsRequestAppworxJob |
| Reached from | Batch job submission (Appworx) |
| Tables | JOB_QUEUE |
| SQL | SQL-001 |
| Source | docs/libraries/saif-services-appworx/business-rules.md, docs/application/operations/batch-job-submission-appworx.md |
Rules not reachable from this application¶
Rules documented in a consumed library that no application execution path reaches.
| Library | Rule ID | Statement | Reason not reachable |
|---|---|---|---|
| SAIF.Application | BR-APP-002 | Access is denied by default; a manager is restricted until a security evaluation explicitly grants view or update rights. | Reachability analysis for LegalMaintenance centers on documented workflow- and screen-level effects; this base-state contract is not named as a distinct executed rule.** |
| SAIF.Application.Claim.Legal | BR-005 | The LNCaseUpdate resource is surfaced as a Boolean capability for update workflows. | LNCaseUpdate is documented as unused in LegalMaintenance and relevant to sibling LegalNet workflows only. |
| SAIF.Business.Claim.Legal | BR-LC-001 | Case type is required. | BR-LC-* case-entry rules belong to LegalNet case maintenance, not LegalMaintenance screens. |
| SAIF.Business.Claim.Legal | BR-SC-001 | Schedule type and status are required. | These schedule rules govern LegalNet legal-case schedules, not the attorney maintenance grids documented for LegalMaintenance.** |
| SAIF.Business.Claim.Legal | BR-AT-001 | Attorney, attorney type and effective date are required. | Screen docs show collection-validity gates but do not identify this exact underlying validation rule on a named execution path.** |
| SAIF.Business.Claim.Legal | BR-HL-001 | Hearing location code and name are required. | The screen analysis does not name the underlying hearing-location business-object validation rule explicitly.** |
| SAIF.Business.Tasks | BR-001 | A task must have a Task Category Code. | Attorney-assignment docs reach claim-task rules in SAIF.Business.Tasks.Claim; they do not trace base-task rules separately. |
| SAIF.Business.Tasks.Claim | BR-CT-01 | A claim task must reference a resolvable claim. | The assignment documentation does not identify this lower-level rule explicitly on a reachable path.** |
| SAIF.Business.View.Policy | BR-VP-010 | Demo users see masked policy, address, agency and team member data. | The old application page mentioned masking, but no current screen or operation analysis proves an executed policy-view path.** |
| SAIF.Business.View.Provider | BR-PRV-001 | Primary tax ID must be a 9-digit number. | Provider-view retrieval is not documented on any LegalMaintenance execution path. |
| SAIF.Business.Utilities | BR-001 | A Nothing or whitespace-only string is returned unchanged by title casing. |
No analyzed LegalMaintenance workflow or screen references this utility behavior on an executed path. |
| SAIF.Services.Printing | BR-PRT-003 | Distribution is queued through MSMQ when asynchronous and sent directly otherwise. | The app print workflow documents preview rendering, not queued distribution execution from LegalMaintenance.** |
| SAIF.Services.Imaging.Import | BR-IMG-001 | Date index fields are emitted only when inside valid date bounds. | Application docs name only the overall wire-format contract, not specific field-emission rules. |
| SAIF.Services.Appworx | BR-001 | When the override flag is set, Appworx submissions route to PRADT on WCISPROD or WCISDEV1. |
The documented LegalMaintenance caller omits the override flag, so this routing override path is not executed. |
Notes¶
- Application-level rules retain the existing
BR-APP-001throughBR-APP-006identifiers so existing cross-document references continue to resolve. - Library rules remain in their owning libraries' canonical ID schemes and are restated here only when a LegalMaintenance workflow or screen analysis names a concrete reachable path.
- No inherited
INH-NNNrules are included because the repository artifacts reviewed for this run did not provide documented Legends-derived inherited-rule evidence for this application page.
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.
Related documentation¶
- Application index
- Overview
- Architecture
- Dependencies
- Configuration
- Operations and processes
- Security and authorization
- Data model
- Tech debt
Sources¶
.saifdocgen/templates/application/app-business-rules.md.saifdocgen/skills/technical-writing-standards/SKILL.md.saifdocgen/state/analysis-manifest.json.saifdocgen/state/decision-log.mddocs/application/architecture.mddocs/application/data-model.mddocs/application/dependencies.mddocs/application/operations-processes.mddocs/application/operations/attorney-profile-maintenance.mddocs/application/operations/attorney-to-claim-assignment.mddocs/application/operations/batch-job-submission-appworx.mddocs/application/operations/hearing-location-maintenance.mddocs/application/operations/inline-ajax-grid-edit.mddocs/application/operations/print-preview-and-document-distribution.mddocs/application/security-authorization.mddocs/application/tech-debt.mddocs/libraries/saif-application/business-rules.mddocs/libraries/saif-application-claim/business-rules.mddocs/libraries/saif-application-claim-legal/business-rules.mddocs/libraries/saif-business-claim/business-rules.mddocs/libraries/saif-business-claim-legal/business-rules.mddocs/libraries/saif-business-policy/business-rules.mddocs/libraries/saif-business-tasks/business-rules.mddocs/libraries/saif-business-tasks-claim/business-rules.mddocs/libraries/saif-business-utilities/business-rules.mddocs/libraries/saif-business-view-policy/business-rules.mddocs/libraries/saif-business-view-provider/business-rules.mddocs/libraries/saif-services-appworx/business-rules.mddocs/libraries/saif-services-imaging-import/business-rules.mddocs/libraries/saif-services-printing/business-rules.mddocs/screens/default.mddocs/screens/frm-attorney-assignment.mddocs/screens/frm-attorney-profile.mddocs/screens/frm-hearing-location.mddocs/screens/frm-legal-person.mddocs/screens/frm-other-firms.mddocs/screens/frm-print-preview.mddocs/screens/frm-rotation.md