SAIF.Application.LogView operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Application.LogView. The library exposes seven operations covering creation, retrieval, soft-delete update, and filtered search for two parallel log types — application errors (clsAppError/clsAppErrorCollection) and application info/audit events (clsAppInfo/clsAppInfoCollection). Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Log an application error | Persist a caller-supplied error event as one App_Error row and return the generated sequence number |
clsAppError.CreateNewAppError(...) (struct or discrete-parameter overload) |
IDataPortalInfo; ErrorInfoStruct or discrete error fields |
Saved clsAppError with AppErrorSeqNum; InsertError message on failure |
BR-006 | App_Error | SQL-003, SQL-001 |
| Retrieve a single application error | Load exactly one error object by sequence number | clsAppError.GetAppError(...) |
IDataPortalInfo, AppErrorSeqNum |
Populated clsAppError, or an unhandled ApplicationException on invalid row count |
BR-005 | App_Error | (no executable single-object SQL documented) |
| Update an application error's deleted flag | Persist a Deleted_Flag change on an existing error row |
Caller sets DeletedFlag on a retrieved clsAppError and calls Save() |
Existing clsAppError, new DeletedFlag value |
Update request executed against App_Error; no rows-affected validation on this path |
BR-006 | App_Error | SQL-009 |
| Search application error logs | Return a filtered, sorted page of error rows plus the total matching count | Any GetAppErrorCollection(...) overload |
Error-date, date range, machine, app, environment, user, search-text, sort criteria | Up to 300 clsAppError rows plus TotalCount |
BR-001, BR-002, BR-003, BR-004 | App_Error | SQL-005, SQL-006 |
| Log an application info event | Persist a caller-supplied audit event as one App_Info row with a fixed 30-day purge date |
clsAppInfo.CreateNewAppInfo(...) (struct or discrete-parameter overload) |
IDataPortalInfo; AuditInfoStruct or discrete audit fields |
Saved clsAppInfo with AppInfoSeqNum; InsertError message on failure |
BR-007, BR-006 | App_Info | SQL-004, SQL-002 |
| Retrieve or create a single application info record | Allocate a new transient info object or load one existing row by sequence number | clsAppInfo.NewAppInfo(...) or clsAppInfo.GetAppInfo(...) |
IDataPortalInfo, AppInfoSeqNum |
New unsaved clsAppInfo, or a populated clsAppInfo on successful retrieve |
BR-005 | App_Info | (no executable single-object SQL documented) |
| Search application info logs | Return a filtered page of audit rows plus the total matching count, excluding EPAY/DirectDeposit by default |
Any GetAppInfoCollection(...) overload |
Create-date, date range, machine, app, environment, user, search-text, SearchType, ExcludeEpayAndDD criteria |
Up to 300 clsAppInfo rows plus TotalCount |
BR-001, BR-002, BR-003, BR-004, BR-008, BR-009 | App_Info | SQL-007, SQL-008 |
Process flow diagram¶
The following diagram shows how the seven operations relate across the two parallel log types: callers create, retrieve, update, and search error and info records through structurally identical BOF lifecycles.
flowchart TD
Start([Caller requests log operation]) --> Which{Error or info log?}
Which -->|Error| ELog[Log an application error]
Which -->|Error| ERetrieve[Retrieve a single<br>application error]
Which -->|Error| EUpdate[Update an error's<br>deleted flag]
Which -->|Error| ESearch[Search application<br>error logs]
Which -->|Info| ILog[Log an application<br>info event]
Which -->|Info| IRetrieve[Retrieve or create a single<br>application info record]
Which -->|Info| ISearch[Search application<br>info logs]
ERetrieve --> EUpdate
ELog --> Done([Object saved / returned])
EUpdate --> Done
ESearch --> Done
ILog --> Done
IRetrieve --> Done
ISearch --> Done
Database interactions¶
The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.
| Operation | SQL | Tables | Type |
|---|---|---|---|
| Log an application error | SQL-003, SQL-001 | App_Error | Write |
| Update an application error's deleted flag | SQL-009 | App_Error | Write |
| Search application error logs | SQL-005, SQL-006 | App_Error | Read |
| Log an application info event | SQL-004, SQL-002 | App_Info | Write |
| Search application info logs | SQL-007, SQL-008 | App_Info | Read |
Failure and edge-case behavior¶
- Both single-object retrieval operations (Retrieve a single application error, Retrieve or create a single application info record) throw an unhandled
ApplicationException("Invalid Results")when the underlying query does not return exactly one row, rather than surfacing a broken-rule collection entry. - Both collection searches (Search application error logs, Search application info logs) hard-cap the returned page at 300 rows even when the paired count query reports more matches.
- Both insert operations (Log an application error, Log an application info event) add an
InsertErrorbusiness-object message when the insert does not affect exactly one row, but neither throws — callers must check the object's message collection. - Update an application error's deleted flag has no
AfterUpdaterows-affected check, and itsUpdateSQLtext contains a trailing comma beforeWHERE, so this path should be treated as unreliable until corrected. - The single-object
RetrieveSQLproperties on bothclsAppError.CriteriaandclsAppInfo.Criteriaare blank placeholder strings, so neither single-object retrieval operation has documented executable SQL in this library.
Related documentation¶
Sources¶
Application\SAIF.Application.LogView\clsAppError.vbApplication\SAIF.Application.LogView\clsAppErrorCollection.vbApplication\SAIF.Application.LogView\clsAppInfo.vbApplication\SAIF.Application.LogView\clsAppInfoCollection.vbApplication\SAIF.Application.LogView\modLogViewExtensions.vb