Enable database access for rules using root-level entities
- Last Updated: May 1, 2021
- 2 minute read
- Corticon
- Version 7.2
- Documentation
Once interfaced with EDC, the amount of test data is no longer limited to that
contained in a single Input Ruletest. It is limited by the sizes in the connected database.
Rules using root-level FlightPlan (or any other root-level
entity) forces the Server or Studio to retrieve all
FlightPlan entities (records) from the database. If the
database is very large, then that will mean a large amount of data is retrieved. For this
reason, database access for root-level rules is turned off by
default. This ensures that you do not accidentally force the Server to perform
extremely large and time-consuming data retrievals from the database unless you explicitly
require it.
Because database access for rules using root-level terms is disabled by default, you need to know how to enable it for those circumstances when you do want it. This is called extending a root-level entity to the database. To illustrate, a simple rule based on the Cargo project's Vocabulary is used, as follows:
- In Corticon Studio, create a new Rulesheet in the Cargo project, and open its advanced view.
- Drag from the Vocabulary into the Scope as shown, including
adding
Cargo.weightto theFlightPlanassociation as shown. - Add the aliases in the Scope as shown.
- Write the rule condition and its values in columns 1 and 2.
- Add the rule statement as shown.
- Save the Rulesheet as
CargoLoad.ers.
The Rulesheet shown adds up (sums) the collection (see
Collections) of Cargo weights associated with a FlightPlan
(load.weight) and compares this to the maxCargoWeight of the root-level Aircraft. The intention is to perform this comparison for every available
Aircraft, so the root-level Aircraft in our Conditional expression was used. Any Aircraft whose maxCargoWeight is inadequate
is identified with a posted Violation message.