Oracle® Rules Palette Release 9.1.0.0.0 E15811-01

# CalculateGeneral

## 125BDescription

This business rule calculates various segment and policy values. When a segment is calculated, the math configured in this business rule takes into account various aspects of the policy and arrives at the values, which are stored in the database tables. The name of the rule is commonly prefixed with CalculateGeneral, such as CalculateGeneral-BaseCoverage. Calculate business rules are always identified by their <Calculate> parent element.

When the Calculate rule is executed, it first processes the <Input> element section. The <Input> element provides for the inclusion of <MathVariables>. Each <MathVariable> must be included inside this element in order for it to be used in any part of the Calculate rule.

After completing the <Input> section, the <Validation> element section is processed. This section allows for the configuration of user data validation. Events such as OnLoad and OnChange can be configured to validate user input and also notify the user of any incorrect or incomplete inputs.

The final section processed is the <Output> element section. This section provides a method of moving both user input values and calculated values to various database tables. The <Mappings> sub-element allows <MathVariables> calculated in the <Input> to be copied. In order for each <MathVariable> to be mapped, it must be included in this section regardless of its inclusion in the <Input> section.

By default, each <MathVariable> that is mapped as a field is stored as a segment field in the AsSegmentField database table. In order to store a <MathVariable> as a segment field it must be included as a field in the specific segment's business rule. If the value should not be displayed for the end user in OIPA, then the Hidden attribute of the <Field> element must be used in the segment business rule to hide the field.

If a <MathVariable> needs to be stored as a different field, such as a policy field in the AsPolicyField table, then it must be specified. The GROUP attribute of <Mapping> allows for the specification of the table the fields should be stored in. In this secenario, where the <MathVariable> needs to be stored as a policy field, the GROUP would be set to Policy.

## 26BCalculateGeneral Element/Attribute Table

Element/Tag | Definition | Attribute | Element/Attribute Value and Description
<Calculate> | The opening and closing tag of the Calculate business rule. |  |
<Input> | Identifies the input or values that will be used for calculations. |  |
<MathVariables> | Please see Math and MathVariable Elements. |  |
<MathVariable> |  |  |
<MathIF> | Please see Math and MathVariable Elements. |  |
<MathLoop> | Please see Math and MathVariable Elements. |  |
<CopyBook> | Please see CopyBook Rule. |  |
<Validation> | Validates SegmentFields or MathVariables. |  | Value is an expression using MathVariables and operators.
<Expression> |  | TYPE | ErrorOnTrue
MESSAGE | String that is the error message you want to be displayed to the user.
<Output> | Identifies the values that were calculated and will be written to Policy or Segment records. |  |
<Mappings> | Starting tag to identifies which MathVariable will be mapped. |  |
<Mapping> | Identifies the MathVariable that will be copied to the policy or segment table. The value is the MathVariable used in the Calculate rule. | OUTPUTNAME | String Defines the name of the policy or segment field that will be updated.
TYPE | String Defines field type and value for calculation.
GROUP | String Defines policy and segment FIELD type mappings. CalculateGeneral output values are saved to AsSegmentField.

## 127BXML Example

<Calculate>

<Input>

<MathVariables>

<MathVariable VARIABLENAME="Checked" TYPE="VALUE">CHECKED</MathVariable>

<MathVariable VARIABLENAME="Unchecked" TYPE="VALUE"></MathVariable>

<MathVariable VARIABLENAME="IssueStateCode"></MathVariable>

<MathIF IF="UnisexIndicator = 'CHECKED'">

<MathVariable VARIABLENAME="RateGender" TYPE="VALUE">01</MathVariable>

</MathIF>

</MathVariables>

</Input>

<Validation>

<Expression TYPE="ErrorOnTrue" MESSAGE="Benefit should be minimum of $50,000">ADDBenefitAmount &lt; 50000</Expression>

</Validation>

<Output>

<Mappings>

<Mapping OUTPUTNAME="AnnuitizationDate" TYPE="FIELD" GROUP="Segment">AnnuitizationDate</Mapping>

<Mapping OUTPUTNAME="MaturityDate" TYPE="FIELD" GROUP="Segment">MaturityDate</Mapping>

<Mapping OUTPUTNAME="SWPEndDate" TYPE="FIELD" GROUP="Segment">MaturityDate</Mapping>

<Mapping OUTPUTNAME="AnnuitizationAge" TYPE="FIELD"

GROUP="Segment">AnnuitantAgeAtAnnuitization</Mapping>

<Mapping OUTPUTNAME="SomeRoleField" TYPE="FIELD" GROUP="Role"&ldots; ROLEGUID="SomeRoleGuid">InitialPremiumCycleDate</Mapping>

</Mappings>

</Output>

</Calculate>