MathStatement

Oracle Insurance Rules Palette

You are here: Configuration > Configuration Panes > Math Pane > Math Statement

 

MathStatement

The MathStatement math variable is a type of system function that is similar to the existing type FunctionCall. Unlike business rule functions, functions called by the MathStatement exist in the base code; however, the Rules Palette guides the configuror through the available functions and the required parameters for each function.   

 

MathStatement will not appear in the math tab of the Activity Results screen. Valuation objects created by MathStatements will not write valuation records to the data base.

 

mathstatement math variable

MathStatement Math Variable in Palette Window

 

Four functions and their parameters are currently supported:

  • FindNextExchangeDatePricing: Use when the activity is to use the next available currency exchange date on or after the activity effective date and fund unit values available on or after the calculated exchange date.

  • FindLastExchangeDatePricing: Use when the activity is to use the last known currency exchange date and fund prices on or prior to the activity effective date.

  • GetBenefitSplit: This function reads parameters to calculate the benefit split record for the activity calculation.
  • MathValuation: This will execute the policy valuation as of a specified date for use inside transaction math.
  • GetFundPositions: This function will retrieve a collection of parent funds that have fund balances, as well as the values of these parent funds. This can only be used in transaction Math when the activity is configured to perform valuation.

 

Define the MathStatement

Drag and drop the MathStatement function from the Palette window onto the Math Pane. Enter the following information for the MathStatement. 

  • Select a variable type from the Variable Type drop down list. field.

  • Click the Functions field for a list of the supported types of functions. Select one of the supported functions. 

  • Enter the Input or Output values in the Values column for each parameter as needed. Input parameters are required. Output parameters are optional.

 

Check-in the transaction to save the information to the database.

 

FindNextExchangeDatePricing

Uses exchange date offset as the input. The output is a guaranteed exchange date (exchange date the system will use) and the gain/loss exchange date (current system date)as well as a boolean result that identifies whether rates exist in the Rates table for the guaranteed exchange date. If rates do not exist, the activity cannot process.

 

Below are the configuration parameters for FindNextExchangeDatePricing:

  • Variable Type: ACTIVITYFUNCTION

  • Input

    • ExchangeDateOffset (INTEGER). This is required.
  • Output

    • GuaranteedExchangeDate (DATE). This is optional.
    • GainLossExchangeDate (DATE). This is optional.
    • RatesExist (BOOLEAN). This is optional.

 

The parameters GuaranteedExchangeDate and GainLossExchangeDate are passed into the Assignment. Assignment simply checks that MathStatementActivityFunction:GuaranteedExchangeDate is logged into AsActivityMath. These parameters are needed for unit linked funds to the help system determine exchange dates. Mapping the output parameters to math variables is optional as the system will automatically log the values. The output parameters should be configured only if the values are to be used elsewhere in the activity math.

 

 

XML Example

<MathStatement TYPE="ACTIVITYFUNCTION" FUNCTIONNAME="FindNextExchangeDatePricing">
<Parameters>   
<Parameter NAME="ExchangeDateOffset" TYPE="INPUT">InputOffset</Parameter>      
<Parameter NAME="GuaranteedExchangeDate" TYPE="OUTPUT">ExchangeDate</Parameter>      
<Parameter NAME="GainLossExchangeDate" TYPE="OUTPUT">GainLossExchangeDate</Parameter>      
<Parameter NAME="RatesExist" TYPE="OUTPUT">RatesExist</Parameter>      
</Parameters>   
</MathStatement>

 

 

FindLastExchangeDatePricing

 

Below are the configuration parameters for FindLastExchangeDatePricing:

  • Variable Type: ACTIVITYFUNCTION

  • Input

    • none
  • Output

    • GuaranteedExchangeDate (DATE). This is optional.
    • GainLossExchangeDate (DATE). This is optional.

 

XML Example

<MathStatement TYPE="ACTIVITYFUNCTION" FUNCTIONNAME="FindLastExchangeDatePricing"><Parameters>   
           <ParameterNAME="GuaranteedExchangeDate" TYPE="OUTPUT">ExchangeDate</Parameter>
<Parameter 
 NAME="GainLossExchangeDate" TYPE="OUTPUT">GainLossExchangeDate</Parameter>
 </Parameters>   
</MathStatement>

 

GetBenefitSplit

This function reads parameters to calculate the benefit split record for the activity calculation. Below are the configuration parameters for the function.

  • Variable Type: MathStatement
  • Input:
    • SegmentGUID: a math variable holding the related segment for the Benefit Split record.

    • EffectiveDate: a math variable holding the valuation effective date for AsNetAssetValue records.

    • BenefitSplitTypeCode: a math variable or literal value indicating the Benefit Split type code to retrieve.

    • ABLIndicator: a math variable holding either Yes or No indicates if ABL is in effect and if the variable benefit is to be suppressed.

    • ExcludeFunds: a math variable holding an array of one or more benefit funds to exclude from the calculated output.

  • Output: (optionally configured to map to math variables for use elsewhere in transaction processing)
    • BenefitAmount: gross benefit amount in the Plan default currency.
    • ParentFundAmountCollection: key/value pairs of Parent Fund GUID and Benefit Allocation Amounts in decimal values.

    XML Example

    <MathStatement TYPE=”ACTIVITYFUNCTION” FUNCTIONNAME="GetBenefitSplit">
    <Parameters>
    <Parameter NAME=”SegmentGUID” TYPE="INPUT">SegmentGUID</Parameter>
    <Parameter NAME=”Effectivedate” TYPE="INPUT">Activity:EffectiveDate</Parameter>
    <Parameter NAME=”BenefitSplitTypeCode” TYPE="INPUT">TypeCode</Parameter>
    <Parameter NAME=”ABLIndicator” TYPE="INPUT">ABLActive</Parameter>
    <Parameter NAME=”BenefitAmount” TYPE="OUTPUT”>OutputAmount</Parameter>
    <Parameter NAME=”ParentFundAmountCollection” TYPE="OUTPUT”>OutputCollection</Parameter>
    <Parameters>
    </MathStatement>

MathValuation

This executes the policy valuation as of a specified date for use inside transaction math. The valuation date specified in the Activity valuation is not read by OIPA and only the activity's effective date is applied to the activity valuation. The new valuation object created in math holds all of the same data that the activity valuation contains. Retrieving data from the math variable valuation object uses a different syntax but all of the same data is available (Fund, Deposit or Policy values). Once created, a math valuation object remains in memory until it is replaced by another math valuation object. Only one math valuation object exists in memory at the same time as activity valuation. Activity valuation is calculated independently of the math valuation and the two co-exist inside the transaction processing and can be independently accessed.

 

The presence of the activity <Valuation> element is not a prerequisite to calculating valuation in transaction math. Calculation of the math valuation is not available to screen math or math in attached rules. A stack trace is thrown if configured in an invalid location. All valuation is executed using the plan configuration (point in time or from inception).

 

Below are the configuration parameters for MathValuation:

  • Variable Type: ACTIVITYFUNCTION

  • Input:

    • Valuation Date (DATE): holds a field or math variable containing a date value.
    • PolicyValues (TEXT): holds a literal or a field or math variable containing a “Yes” or “No” text string. This indicates whether the PolicyValues business rule is executed as part of the math valuation.
    • Nearest Price (TEXT): holds a literal or a field or math variable containing a “Yes” or “No” text string. This indicates that valuation should be calculated with the exact prices as of the ValuationDate (No) or with the last known prices as of the ValuationDate (Yes).
  • Output:

    • ExactPriceDateUsed (TEXT): returns a Boolean (true/false) indicator if the fund prices used to value the policy were as of the exact ValuationDates specified (true) or if the nearest price dates were used (false). Mapping this output value to a configured math variable is optional. The NearestPrice must be set to Yes in order to make use of this output. If NearestPrice is set to No and the activity processes, then the output value will always be True.

     

XML Example

<MathStatement TYPE=”ACTIVITYFUNCTION” FUNCTIONNAME="MathValuation">
<Parameters>
<Parameter NAME=”ValuationDate” TYPE="INPUT">MyValuationDate</Parameter>
<Parameter NAME=”PolicyValues” TYPE="INPUT">Yes</Parameter>
<Parameter NAME=”NearestPrice” TYPE="INPUT">Yes</Parameter>
<Parameter NAME=”ExactPriceDateUsed” TYPE="OUTPUT">ExactPriceDateUsedMV</Parameter>
</Parameters>
</MathStatement>

 

GetFundPositions

This function will retrieve a collection of parent funds that have fund balances, as well as the values of these parent funds. GetFundPositions can only be used in transaction math if the transaction is configured to perform valuation. If this function is added to a transaction that is not configured to perform validation, a system error will occur in OIPA, which should indicate that the configuration was not set up properly.

 

Below are the configuration parameters for GetFundPositions:

  • Variable Type: MATHSTATEMENT
  • Input:
    • ExcludeFundTypes: A math variable holding an array of one or more fund types to exclude from the calculated output.
  • Output:
    • ParentFundAmountCollection: Key/value pairs of Parent Fund GUID and Fund Amounts in a currency object
  • This collection may be further modified by the transaction math for use in the ReassignAllocations rule.

XML Example

<MathStatement TYPE="ACTIVITYFUNCTION" FUNCTIONNAME="GetFundPositions">
<Parameters>
<Parameter NAME="ExcludeFunds" TYPE="INPUT">FundTypeArray</Parameter>
<Parameter NAME="ParentFundAmountCollection" TYPE="OUTPUT">OutputCollection</Parameter>
</Parameters>
</MathStatement>

 

Copyright © 2009, 2014, Oracle and/or its affiliates. All rights reserved. Legal Notices