COLLECTION and KEY
This math element can be used to create a collection, set the value of a math variable from an existing math variable or activity field, or execute a SQL statement that will return two result columns as a key-value pair. In the latter case, the first column is considered the key with the second column a value. A subsequent statement of type COLLECTIONVALUE is used to access the key to retrieve its associated value (see the last XML example).
TYPE=COLLECTION KEY=GUID | |||
---|---|---|---|
Element | Attribute | Attribute Value | Element Value |
OPERATION="CREATE" |
|||
<MathVariable>
|
Empty | ||
VARIABLENAME |
String: The name of the math variable. |
|
|
TYPE |
COLLECTION |
|
|
OPERATION | CREATE Creates a COLLECTION math variable. |
||
DATATYPE |
MAP |
|
|
ORDERED |
Yes: The order of the collection will be persisted until the final instance of the math variable. No: The order of the collection will not be persisted. This is the default behavior if this attribute is omitted from configuration. |
Note: This Ordered Attribute for TYPE = COLLECTION is an additional optional attribute and is only applicable for screenmath. if it is used in ActivityMath, it would get omitted or ignored. | |
OPERATION="SETVALUE" |
|||
<MathVariable>
|
String: Refers to the name of a COLLECTION math variable created with OPERATION="CREATE". |
||
VARIABLENAME |
String: The name of the math variable whose value is set by this configuration. |
|
|
TYPE |
COLLECTION |
|
|
OPERATION | SETVALUE Assigns a value to an existing or new math variable once the collection is created. Use a previously defined Math Variable or Activity Field to replace the value / |
||
DATATYPE |
BIGTEXT |
|
|
ROUND |
Integer If DATATYPE="DECIMAL" |
|
|
KEY |
The KEY indicates the type of value the configuror is using to map or insert into a new math variable name within the collection. For example a SegmentGUID for a SegmentLoop to update the face amount or active code, a unique naming convention, or fund code. |
||
DEFAULT |
String |
|
|
LOG |
Yes: the result is stored in AsActivityMath table to be used by other activities. No: the result is not stored. This is the default behavior. |
||
ORDERED |
Yes: The order of the collection will be persisted until the final instance of the math variable. This behavior is akin to the LOG attribute being set to "Yes". No: The order of the collection will not be persisted. This is the default behavior if this attribute is omitted from configuration. Note: If the ORDERED attribute is used on a COLLECTION math variable with OPERATION set to "SETVALUE", ORDERED must be used on the first instance of the collection that inserts a value. |
Note: This Ordered Attribute for TYPE = COLLECTION is an additional optional attribute and is only applicable for screenmath. if it is used in ActivityMath, it would get omitted or ignored. | |
OPERATION attribute omitted |
|||
<MathVariable>
|
Option 1: One of the following: <SqlServer>[SqlStatement]</SqlServer> <Oracle>[SqlStatement]</Oracle> <DB2>[SqlStatement]</DB2> Option 2: [SqlStatement] |
||
VARIABLENAME |
String |
|
|
TYPE |
COLLECTION |
|
|
DATATYPE |
MAP |
|
|
ORDERED |
Yes: The order of the collection will be persisted until the final instance of the math variable. No: The order of the collection will not be persisted. This is the default behavior if this attribute is omitted from configuration. |
Note: This Ordered Attribute for TYPE = COLLECTION is an additional optional attribute and is only applicable for screenmath. if it is used in ActivityMath, it would get omitted or ignored. |
XML Examples
OPERATION="CREATE"
<MathVariable VARIABLENAME="SegmentAnnPremiumAmt" TYPE="COLLECTION"
OPERATION="CREATE" DATATYPE="MAP"/>
OPERATION="SETVALUE"
<MathVariable VARIABLENAME="SegmentAnnPremiumAmt" TYPE="COLLECTION"
OPERATION="SETVALUE" KEY="CurrentSegmentGUID" DATATYPE="CURRENCY" ORDERED="YES">CurrentYearsAnnualPremiumUSD
</MathVariable>
OPERATION attribute omitted
<MathVariable VARIABLENAME="SegmentCollection" TYPE="COLLECTION" DATATYPE="MAP">
SELECT Field.FieldName,
CASE
WHEN Field.FieldTypeCode = '02' THEN Field.TextValue
WHEN Field.FieldTypeCode = '03' THEN CAST(Field.IntValue AS CHAR(10))
WHEN Field.FieldTypeCode = '04' THEN CAST(Field.FloatValue AS CHAR(32))
END
FROM AsSegment
JOIN AsSegmentName ON AsSegmentName.SegmentNameGUID = AsSegment.SegmentNameGUID
AND AsSegmentName.TypeCode = '04'
JOIN AsSegmentField Field ON Field.SegmentGUID = AsSegment.SegmentGUID
AND Field.FieldName IN ('SegmentIssueGender',
'SegmentUWClass',
'SegmentTobaccoPremBasis',
'SegmentAmount',
'SegmentIssueAge')
WHERE AsSegment.PolicyGUID = '[Policy:PolicyGUID]'
</MathVariable>
COLLECTIONVALUE Example
<MathVariable VARIABLENAME="BaseFace" TYPE="COLLECTIONVALUE"
KEY="SegmentAmount" DATATYPE="DECIMAL" DEFAULT="-999999999">SegmentCollection
</MathVariable>
XML Schema
OPERATION="CREATE"
<MathVariable VARIABLENAME="[String]" TYPE="COLLECTION"
OPERATION="CREATE"
DATATYPE="MAP">
</MathVariable>
OPERATION="SETVALUE"
<MathVariable VARIABLENAME="[String]" TYPE="COLLECTION"
OPERATION="SETVALUE" KEY="[String]" DATATYPE="DATE|TEXT|INTEGER|DECIMAL"
ROUND="[Integer]" DEFAULT="[String]" LOG="Yes">[String]
</MathVariable>
OPERATION attribute omitted
<MathVariable VARIABLENAME="[String]" TYPE="COLLECTION" DATATYPE="MAP">
<!-- option 1 -->
<SqlServer>[SqlStatement]</SqlServer>|<Oracle>[SqlStatement]</Oracle>|<DB2>[SqlStatement]</DB2>
<!-- option 2 -->
[SqlStatement]
</MathVariable>