Skip to content

Dynamic claim list generation

Executes an entire SQL statement supplied by the caller to build a configurable claim list, mapping result columns through caller-configurable alias properties.

Field Value
Operation ID claim-list-generation
Trigger Caller invokes clsClaimListGenerator.GetClaimListCollection(dataPortalInfo, sqlStatement, id[, requestId])
Inputs Caller-supplied SQL statement text, ID
Outputs Claim-list rows mapped via configurable alias properties
Primary components clsClaimListGenerator.GetClaimListCollection
Entry point SAIF.Business.Claim/clsClaimListGenerator.vb

Steps

  1. Caller supplies the complete SQL statement text and a single ID value.
  2. Every IBusinessCriteria SQL property (CreateSQL, RetrieveSQL, InsertSQL, UpdateSQL, DeleteSQL) throws ApplicationException(clsConstants.Messages.InvalidSQLProperty) — execution instead uses Criteria.SQLStatement directly (SQL-019).
  3. A single :ID bind parameter is applied to the caller-supplied statement.
  4. Result columns are mapped through configurable alias properties: ClaimIDSQLItem, ClaimNumberSQLItem, ClaimChkCharValueSQLItem, WorkerIDSQLItem.
  5. The mapped rows are returned as a claim-list collection to the caller.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start(["GetClaimListCollection<br>called"]) --> Supply["Caller supplies SQL text +<br>ID"]
    Supply --> Bind[Bind :ID parameter]
    Bind --> Execute["Execute<br>Criteria.SQLStatement"]
    Execute --> Map["Map result columns via alias<br>properties"]
    Map --> Return([Return claim-list collection])

Failure and edge-case behavior

  • The SQL statement and key are supplied entirely by the caller; column names are configurable. This is a SQL-injection and maintainability risk whose actual exposure depends on callers, none of which exist in this repository.*
  • All five IBusinessCriteria properties throw if invoked directly, so any caller attempting standard BOF create/retrieve/update/delete semantics on this class will fail immediately.

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.Business.Claim/clsClaimListGenerator.vb