Quantifiers

Overview

Socotra Enterprise Core has built-in structures for managing “quantification.” For example, if a personal auto policy has vehicles and the perils represent coverages like comprehensive and collision, you may want to ensure that each vehicle has exactly one each of these coverages. Quantifiers are the mechanism that addresses this and other similar needs.

Structure

Quantifiers are specified for an item in configuration with one of these suffixes:

  • (no suffix): Exactly one of this type is required

  • !: Like no suffix, except it will be created automatically if not already present

  • ?: Zero or one is required

  • *: Any number of these are OK

  • +: There must be one or more of these

Element Quantifiers

Each element within a product configuration may contain sub-elements based on the product’s configuration. For example, a personal auto policy might be structured like this:

  • Product personalAuto

    • exposure vehicle+

    • coverage collision!

    • coverage comprehensive

    • coverage roadsideAssistance?

In this example, the + suffix for the vehicle means the policy must have at least one vehicle to be validated. The ! suffix for the collision coverage means that that element will be added automatically when the vehicle element is created, if it isn’t included as part of the creation request. The lack of suffix on comprehensive means there must be exactly one comprehensive element per vehicle. And the ? suffix on roadsideAssistance means that there must be either zero or one of those elements.

Coverage Term Quantifiers

Coverage terms for an element can be declared with a ? suffix, which means they are optional, or no suffix, which means there must be exactly one coverage term of that type for that element, or with a ! suffix, which means it is automatic. The other quantifiers do not apply to coverage terms.

Default Coverage Term Options

In configuration, one allowed value for a coverage term may be prefixed with a * symbol, which means it is the default value if a value is not specified. See the Default Coverage Term Options section of the Coverage Terms Guide for details.

Data Extension Quantifiers

The type declaration in configuration for data extensions for an element or account can have any of the quantifiers except for automatic (!).

Blank (i.e. no suffix) means that the property is required, and ? means that it is optional.

The + quantifier signifies an array with one or more of the items, and * is for an array with any number of items.

Automatic Items

The ! suffix means the item will be created automatically upon validation if it’s not included in the creation request. The requirements for automatic items vary by the type.

Note

If a policy transaction attempts to remove an automatic element or other item, the system will add it back when the transaction is validated.

Automatic Elements

For elements to be created automatically, they must have the following:

  • There must be no fields on the element that do not have default values.

  • There must be no coverage terms on the element that do not have default values.

  • If the element has automatic subelements itself, then each of those subelements must meet the above criteria. This requirement can cascade down if the product graph contains multiple levels.

These requirements are all verifiable by examining the configuration, and any conflicts should cause the configuration deployment to fail.

Automatic Coverage Terms

Coverage terms configured with an automatic ! suffix must have a default option as one of their options.