PolicyAllocationScreen

Outside of the Group Customer context, a Policy's Allocation Screen is defined by either the PolicyAllocationScreen or the AllocationScreen business rules. The business rule that presents the screen is determined by the value of the Plan's PlanAllocationMethod. If that value indicates support for Models, then the PolicyAllocationScreen business rule defines the Policy's Allocation screen. If the PlanAllocationMethod is Default, then the AllocationScreen business rule is the definition for the Policy's Allocation screen. PolicyAllocationScreen business rule is the only rule that supports Model allocation functionality regardless of the Plan defining any Models.

The PolicyAllocationScreen must be defined for each Policy plan in the system outside of the Group Customer context. In the Group Customer context, the rule must be defined within a Product hierarchy.

Note: The AllocationScreen business rule is deprecated and will be removed from a future OIPA release with this rule replacing it. The PolicyAllocationScreen requires the plan to support Models regardless of there being Models defined for the Plan. The PolicyAllocationScreen supports all the functionality of the AllocationScreen. The Group Customer context only supports the PolicyAllocationScreen.

PolicyAllocationScreen Elements and Attributes
Element Attributes Parent Element Description Element / Attribute Values
<PolicyAllocationScreen>    

Required:

This is the root element of the rule.

 
<AllocationDate>   <PolicyAllocationScreen>

Optional:

This element indicates that funds and models that are available for the Policy's Allocations should be based on the effective date of the Policy or the Plan or the Policy's dynamic date field.

  • Policy's PlanDate

    • default

    • syntax is "Policy:PlanDate"

  • Plan's effective from date

    • The Plan's effective from date refers to the EffectiveFrom of the Plan's time slice in the Group Customer context.

    • syntax is "Plan:EffectiveFrom"

  • Policy's dynamic field name

    • field name must be prefixed with "Policy:[field name]"

<Precision>   <PolicyAllocationScreen>

Optional:

This element specifies the number of digits allowed after the decimal point in an allocation.

 
<PercentPrecision>   <Precision>

Required:

This element provides the precision for Percent allocations.

  • literal

    • value must be an integer

<AllocationType>   <PolicyAllocationScreen>

Required, Repeatable:

The Policy Allocation screen presents multiple Allocation types.  This element structure defines a single Allocation type.

 
  TYPECODE <AllocationType>

Required:

This attribute identifies the type of Allocation defined in this structure.

  • code value

    • valid value comes from AsCodeAllocationTypes

  ID <AllocationType>

Optional:

The attribute provides a name for the parent element.  The name may be used by an Action to direct the results of the Action to the parent element's presentation.  The value of the attribute must be a unique name in this rule.

  • literal

    • valid value must be a unique name in this rule

<Allocation>   <AllocationType>

Required, Repeatable:

This element defines the allocation details for this particular Allocation Type.  The structure defines the fund or model filters and their methods,  The element is repeated to support the two sides of a transfer (Switch) allocation type.

 
  SWITCH <Allocation>

Optional:

This attribute designates the section as one of the two sides applicable to a transfer.  If a From allocation is configured, a To allocation section must also be configured in this <AllocationType>.

  • To

    • default 

    • the allocation structure describes a fund distribution of money to be added to the policy.

  • From

    • the allocation structure describes a removal fund distribution from the policy.

    • value must be combined in the same <AllocationType> with another <Allocation> where SWITCH="To".

  ALLOWMIXEDMETHODS <Allocation>

Optional:

This attribute indicates when mixed allocation methods are allowed.  Normally, all funds in an allocation apply a single allocation method chosen by the user.  When mixed methods are allowed, an allocation may apply a different allocation method per fund.

  • No

    • default

    • mixed methods are not allowed per allocation type or side of the allocation type

  • Yes

    • mixed methods are allowed

    • user can choose one method per fund in an allocation type or per side of an allocation type

  ID <Allocation>

Optional:

The attribute provides a name for the parent element.  The name may be used by an Action to direct the results of the Action to the parent element's presentation.  The value of the attribute must be a unique name in this rule.

  • literal

    • valid value must be a unique name in this rule

<AllocationMethods>   <Allocation>

Required:

This element contains one or more allocation methods to populate the allocation method options available in a drop-down list.

 
<AllocationMethod>   <AllocationMethods>

Required, Repeatable:

This element identifies a single allocation method.  The element is repeated to provide multiple allocation methods. 

  • code value

    • valid value comes from AsCodeAllocationMethod

<Funds>   <Allocation>

Optional:

This element's structure provides an ability to limit and filter funds listed in the fund's drop-down list.

 
<Models>   <Allocation>

Optional:

This element's structure provides an ability to limit and filter models listed in the model's drop-down list.  The <Models> structure is not applicable when <Allocation> SWITCH="FROM".

 
  ID <Funds>, <Models>

Optional:

The attribute provides a name for the parent element.  The name may be used by an Action to direct the results of the Action to the parent element's presentation.  The value of the attribute must be a unique name in this rule.

  • literal

    • valid value must be a unique name in this rule

<FundLimit>   <Funds>

Optional:

The element provides a maximum limit on the number of funds that can be allocated.  When the element is not configured, there is no maximum.

  • literal

    • valid value must be an integer

<ModelLimit>   <Models>

Optional:

The element provides a maximum limit on the number of models that can be allocated.  When the element is not configured, there is no maximum.

  • literal

    • valid value must be an integer

<ValueRanges>   <Funds>, <Models>

Optional:

The element's structure indicate the minimum and maximum values for each fund's or model's allocation.

 
<Percent>   <ValueRanges>

Required:

This element provides the limits on the percentage values allowed on the allocation.

 
  MINIMUM <Percent>

Required:

The attribute provides the minimum percent value allowed.

  • literal

    • valid value must be an integer between 1 and 100

  MAXIMUM <Percent>

Required:

The attribute provides the maximum percent value allowed.

  • literal

    • valid value must be an integer between 1 and 100

<FundCriteria>  

<Funds>

Optional:

This element's structure provides definition to filter the funds listed in the fund's drop-down list.  Funds can be filtered by a SQL query, fund field values or fund statuses.

 
<ModelCriteria>  

<Models>

Optional:

This element's structure provides definition to filter the models listed in the model's drop-down list.  Models can be filtered by a SQL query, model field values or model statuses.

 
<Query>   <FundCriteria>, <ModelCriteria>

Optional:

This element contains a SQL query that returns FundGUIDs or ModelGUIDs to build the respective drop-down lists.  This element cannot be configured in combination with <FundFields> and <FundStatuses> or <ModelFields> and <ModelStatuses> elements.

  • SQL query

    • return value must be one or more FundGUIDs or ModelGUIDs dependent on the parent element's context

<FundFields>

 

<FundCriteria>

Optional:

This element provides a structure to filter the fund's list based on fund field values.

 

<ModelFields>

 

<ModelCriteria>

Optional:

This element provides a structure to filter the model's list based on model field values.

 

<And>

 

<FundFields>, <ModelFields>

Optional:

This element allows a complex filter definition.  It indicates a logical "and" relationship between multiple <FundField> or <ModelField> elements.

 

<Or>

 

<FundFields>, <ModelFields>

Optional:

This element allows a complex filter definition.  It indicates a logical "or" relationship between multiple field elements.

 

<FundField>

 

<FundFields>, <And>, <Or>

Required, Optionally Repeated:

This element defines a single fund field used in the filter.

A simple filter uses one <FundField> element and cannot be repeated as a direct child element of the <FundFields> element.

A complex filter repeats <FundField> elements which are direct children elements of <And> or <Or> elements.

 

<ModelField>

 

<ModelFields>,<And>, <Or>

Required, Optionally Repeated:

This element defines a single model field to be used in the filter.

A simple filter uses one <ModelField> element and cannot be repeated as a direct child element of the <ModelFields> element.

A complex filter repeats <ModelField> elements which are direct children elements of <And> or <Or> elements.

 

 

FIELDNAME

<FundField>, <ModelField>

Required:

The attribute provides the fund's or model's field name to the filter.  Fixed and dynamic fields are supported.

  • dynamic field name

    • fund dynamic fields in the fund context

    • model dynamic fields in the model context

  • fixed field names in the fund context

    • FundName

    • TypeCode

  • fixed field names in the model context

    • ModelName

    • ModelCategoryCode

    • ModelDescription

    • ModelType

 

DATATYPE

<FundField>, <ModelField>

Required:

This attribute provides the data type of the field.

  • Text

  • Date

  • Integer

  • Decimal

 

OPERATOR

<FundField>, <ModelField>

Required:

The attribute provides a comparison operator.  The operator compares a field value to an expected value.

  • Equal

    • The value of the field is equal to one of the subsequent <Value> elements' values.

  • NotEqual

    • The value of the field is not equal to all of the subsequent <Value> element's values.

  • Like

    • There is a match when the field's value contains the text of one or more associated child <Value> elements' values.

    • This operator applies to Text data types only.

<Value>

 

<FundField>, <ModelField>

Required, Repeatable:

The element provides a single value to compare to the fund field's or model field's value.  It is repeated to provide multiple values to the comparison OPERATOR.

  • literal

    • a policy field provided in the form of Policy:[fieldname]

<FundStatuses>

 

<FundCriteria>

Optional:

This element structure defines a filter by a fund's status value.  This element can be combined with the <FundFields> element.  In this scenario an "and" relationship is established.  As an example, in an inclusion scenario, when a fund passes the <FundFields> filter and passes the <FundStatuses> filter, the fund is included in the fund's drop down.  In an exclusion scenario, when a fund passes the <FundFields> filter and passes the <FundStatuses> filter, the fund is excluded from the fund's drop down.  Otherwise, the fund is included as long as the <FundFields> filter passes.

 

<FundStatus>

 

<FundStatuses>

Required, Repeatable:

This element provides a single fund status code.  When a fund's status value matches the element's value, the fund can be included or excluded from the fund list.  The element is repeated to provide multiple codes in this statuses test.

  • code value

    • valid code value comes from AsCodeFundStatus

<ModelStatuses>

 

<ModelCriteria>

Optional:

This element structure defines a filter by a model's status value.  This element can be combined with the <ModelFields> element.  In this scenario an "and" relationship is established.  As an example, in an inclusion scenario, when a fund passes the <ModelFields> filter and passes the <ModelStatuses> filter, the model is included in the model's drop down.  In an exclusion scenario, when a model passes the <ModelFields> filter and passes the <ModelStatuses> filter, the model is excluded from the model's drop down.  Otherwise, the model is included as long as the <ModelFields> filter passes.

 

<ModelStatus>

 

<ModelStatuses>

Required, Repeatable:

This element provides a single model status code.  When a model's status value matches the element's value, the model can be included or excluded from the model list.  The element is repeated to provide multiple codes in this statuses test.

  • code value

    • Valid code value comes from AsCodeModelStatus

 

TYPE

<FundStatuses>, <ModelStatuses>

Required:

The attribute indicates when a fund or model will be included in or excluded from the respective fund or model drop-down list.

  • INCLUDE

    • A fund or model is included in the drop-down list when the fund or model has one of the status values provided below.

  • EXCLUDE

    • A fund or model is excluded from the drop-down list when the fund or model has one of the status values provided below.

<ScreenMath>

 

<AllocationType>

Optional:

See ActionEvents element for common behavior and expectations.

Note: Math has access to the Policy's fixed and dynamic fields through the syntax Policy:[fieldname].

 

<Events>

 

<AllocationType>

Optional:

See ActionEvents element for common behavior and expectations.

Note: Events are limited to ONLOAD and ONSUBMIT events.  These events are applicable to the parent Allocation type when it is presented on the screen at the time of the event.  As a user expands the Policy Allocation screen by adding a new allocation type to the presentation, the type's ONLOAD processes.  When the user clicks the Save button, all allocation types currently presented on the screen will process their individual ONSUBMIT events.

 

<Actions>

 

<AllocationType>

Optional:

See ActionEvents element for common behavior and expectations.

 

<ActionSet>

 

<Actions>

Optional, Repeatable:

See ActionEvents element for common behavior and expectations.

 

<Condition>

 

<AsctionSet>

Optional, Repeatable:

See ActionEvents element for common behavior and expectations.

 

 

IF

<Condition>

Optional:

See ActionEvents element for common behavior and expectations.

Note: Conditional expressions have access to the Policy's fixed and dynamic fields.

  • conditional expression

    • See ActionEvents element for common values

    • This expression has access to Policy fixed and dynamic fields with the syntax of Policy:[fieldname]

<Action>

 

<ActionSet>, <Condition>

Required, Repeatable:

See ActionEvents element for common behavior and expectations.

Note: Common attributes supported in this business rule are ACTIONTYPE, FIELD and SECTIONNAME.

 

 

 

ACTIONTYPE

<Action>

Required:

See ActionEvents element for common behavior and expectations.

Note: This has limited action types to HIDE and SHOW.

  • HIDE

    • This value can hide the EqualPercent field for the scope of an ID attribute with the added attributes of FIELD="EqualPercent" and SECTIONNAME="[id]".

    • This value can hide a section, fund drop down or model drop down with the attribute SECTIONNAME="[id]".

  • SHOW

    • This value can show an EqualPercent field for the scope of an ID attribute with the added attributes of FIELD="EqualPercent" and SECTIONNAME="[id]".

    • This value can hide a section, fund drop down or model drop down with the attribute SECTIONNAME="[id]".

 

FIELD

<Action>

Optional:

See ActionEvents element for common behavior and expectations.

Note: The only applicable field name is "EqualPercent".

  • EqualPercent

    • This field applies to ACTIONTYPEs of HIDE, and SHOW.

 

SECTIONNAME

<Action>

Optional:

This attribute is unique to this business rule.  It identifies a section of an Allocation type by providing a value that matches an ID.  The identified section becomes the target for the associated action.

  • literal

    • The literal must match one of the parent Allocation type's ID attribute values.

    • This attribute is applicable to HIDE and SHOW.

<DisableAllocations>

 

<PolicyAllocationScreen>

Optional:

This element defines when the Policy Allocation Screen is disabled when the Policy reaches a status value within the containing list.  Without this element, Policy Allocation Screen is not disabled.

 

<PolicyStatus>

 

<DisableAllocations>

Required, Repeatable:

This element provides a policy status code that disables the Policy Allocation Screen.  The element is repeated to provide more than one policy status code.

  • code value

    • valid value comes from AsCodePolicyStatus

XML Schema

 <PolicyAllocationScreen>
    <AllocationDate>[Policy:PlanDate | Plan:EffectiveFrom | Policy:[field name]]</AllocationDate>
    <Precision>
        <PercentPrecision>[integer]</PercentPrecision>
    </Precision>
    <AllocationType TYPECODE="[code value]" ID="[literal]">
        <Allocation SWITCH="From" ALLOWMIXEDMETHODS="[No | Yes]" ID="[literal]">
            <AllocationMethods>
                <AllocationMethod>[code value]</AllocationMethod>
                <AllocationMethod>...</AllocationMethod>
            </AllocationMethods>
            <Funds ID="[literal]">
                <FundLimit>[integer]</FundLimit>
                <ValueRanges>
                    <Percent MINIMUM="[integer]" MAXIMUM="[integer]"></Percent>
                </ValueRanges>
                <FundCriteria>
                    <Query>[sql query]</Query>
                    <FundFields>
                        <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]"
                            OPERATOR="[Equal | NotEqual | Like]">
                            <Value>[literal | policy field]</Value>
                            <Value>...</Value>
                        </FundField>
                        <And>
                            <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]"
                                OPERATOR="[Equal | NotEqual | Like]">
                                <Value>[literal | policy field]</Value>
                                <Value>...</Value>
                            </FundField>
                            <FundField>...</FundField>
                        </And>
                        <Or>
                            <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]"
                                OPERATOR="[Equal | NotEqual | Like]">
                                <Value>[literal | policy field]</Value>
                                <Value>...</Value>
                            </FundField>
                            <FundField>...</FundField>
                        </Or>
                    </FundFields>
                    <FundStatuses TYPE="[INCLUDE | EXCLUDE]">
                        <FundStatus>[code value]</FundStatus>
                        <FundStatus>...</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Allocation SWITCH="To" ALLOWMIXEDMETHODS="[No | Yes]" ID="[literal]">
            <AllocationMethods>
                <AllocationMethod>[code value]</AllocationMethod>
                <AllocationMethod>...</AllocationMethod>
            </AllocationMethods>
            <Funds ID="[literal]">
                <FundLimit>[integer]</FundLimit>
                <ValueRanges>
                    <Percent MINIMUM="[integer]" MAXIMUM="[integer]"></Percent>
                </ValueRanges>
                <FundCriteria>
                    <Query>[sql query]</Query>
                    <FundFields>
                        <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]"
                            OPERATOR="[Equal | NotEqual | Like]">
                            <Value>[literal | policy field]</Value>
                            <Value>...</Value>
                        </FundField>
                        <And>
                            <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]"
                                OPERATOR="[Equal | NotEqual | Like]">
                                <Value>[literal | policy field]</Value>
                                <Value>...</Value>
                            </FundField>
                            <FundField>...</FundField>
                        </And>
                        <Or>
                            <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]"
                                OPERATOR="[Equal | NotEqual | Like]">
                                <Value>[literal | policy field]</Value>
                                <Value>...</Value>
                            </FundField>
                            <FundField>...</FundField>
                        </Or>
                    </FundFields>
                    <FundStatuses TYPE="[INCLUDE | EXCLUDE]">
                        <FundStatus>[code value]</FundStatus>
                        <FundStatus>...</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
            <Models ID="[literal]">
                <ModelLimit>[integer]</ModelLimit>
                <ValueRanges>
                    <Percent MINIMUM="[integer]" MAXIMUM="[integer]"></Percent>
                </ValueRanges>
                <ModelCriteria>
                    <Query>[sql query]</Query>
                    <ModelFields>
                        <ModelField FIELDNAME="[model field name | ModelName | ModelCategoryCode | ModelDescription | ModelType]"
                            DATATYPE="[Text | Date | Integer | Decimal]" OPERATOR="[Equal | NotEqual | Like]">
                            <Value>[literal | policy field]</Value>
                            <Value>...</Value>
                        </ModelField>
                        <And>
                            <ModelField FIELDNAME="[model field name | ModelName | ModelCategoryCode | ModelDescription | ModelType]"
                                DATATYPE="[Text | Date | Integer | Decimal]" OPERATOR="[Equal | NotEqual | Like]">
                                <Value>[literal | policy field]</Value>
                                <Value>...</Value>
                            </ModelField>
                            <ModelField>...</ModelField>
                        </And>
                        <Or>
                            <ModelField FIELDNAME="[model field name | ModelName | ModelCategoryCode | ModelDescription | ModelType]"
                                DATATYPE="[Text | Date | Integer | Decimal]" OPERATOR="[Equal | NotEqual | Like]">
                                <Value>[literal | policy field]</Value>
                                <Value>...</Value>
                            </ModelField>
                            <ModelField>...</ModelField>
                        </Or>
                    </ModelFields>
                    <ModelStatuses TYPE="[INCLUDE | EXCLUDE]">
                        <ModelStatus>[code value]</ModelStatus>
                        <ModelStatus>...</ModelStatus>
                    </ModelStatuses>
                </ModelCriteria>
            </Models>
        </Allocation>
        <Events>
            <Event TYPE="[ONLOAD | ONSUBMIT]">...</Event>
            <Event>...</Event>
        </Events>
        <ScreenMath>...</ScreenMath>
        <Actions>
            <ActionSet ID="[literal]">
                <Action ACTIONTYPE="[HIDE | SHOW]" FIELD="EqualPercent" SECTIONNAME="[section name]">...</Action>
                <Action ACTIONTYPE="[HIDE | SHOW]" SECTIONNAME="[section name]">...</Action>
                <Action>...</Action>
            </ActionSet>
            <ActionSet ID="[literal]">
                <Condition IF="...">
                    <Action ACTIONTYPE="[HIDE | SHOW]" FIELD="EqualPercent" SECTIONNAME="[section name]">...</Action>
                    <Action ACTIONTYPE="[HIDE | SHOW]" SECTIONNAME="[section name]">...</Action>
                    <Action>...</Action>
                </Condition>
                <Condition>...</Condition>
            </ActionSet>
            <ActionSet>...</ActionSet>
        </Actions>
    </AllocationType>
    <!-- without SWITCH -->
    <AllocationType TYPECODE="[code value]" ID="[literal]">
        <Allocation ALLOWMIXEDMETHODS="[No | Yes]" ID="[literal]">
            <AllocationMethods>...</AllocationMethods>
            <Funds ID="[literal]">...</Funds>
            <Models ID="[literal]">...</Models>
        </Allocation>
        <Events>...</Events>
        <ScreenMath>...</ScreenMath>
        <Actions>...</Actions>
    </AllocationType>
    <DisableAllocations>
        <PolicyStatus>[code value]</PolicyStatus>
        <PolicyStatus>...</PolicyStatus>
    </DisableAllocations>
</PolicyAllocationScreen>

XML Example

<PolicyAllocationScreen>
    <AllocationDate>Policy:PlanDate</AllocationDate>
    <Precision>
        <PercentPrecision>2</PercentPrecision>
    </Precision>
    <AllocationType TYPECODE="02">
        <Allocation>
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
                <AllocationMethod>02</AllocationMethod>
                <AllocationMethod>03</AllocationMethod>
                <AllocationMethod>04</AllocationMethod>
                <AllocationMethod>05</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundLimit>2</FundLimit>
                <FundCriteria>
                    <FundStatuses TYPE="EXCLUDE">
                        <FundStatus>02</FundStatus>
                        <FundStatus>03</FundStatus>
                        <FundStatus>04</FundStatus>
                        <FundStatus>05</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
            <Models>
                <ModelLimit>2</ModelLimit>
                <ValueRanges>
                    <Percent MINIMUM="0" MAXIMUM="100"></Percent>
                </ValueRanges>
                <ModelCriteria>
                    <ModelStatuses TYPE="INCLUDE">
                        <ModelStatus>01</ModelStatus>
                    </ModelStatuses>
                </ModelCriteria>
            </Models>
        </Allocation>
    </AllocationType>
    <AllocationType TYPECODE="09">
        <Allocation SWITCH="From">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
                <AllocationMethod>02</AllocationMethod>
                <AllocationMethod>03</AllocationMethod>
                <AllocationMethod>04</AllocationMethod>
                <AllocationMethod>05</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundLimit>3</FundLimit>
                <FundCriteria>
                    <FundStatuses TYPE="EXCLUDE">
                        <FundStatus>02</FundStatus>
                        <FundStatus>03</FundStatus>
                        <FundStatus>04</FundStatus>
                        <FundStatus>05</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Allocation SWITCH="To">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
                <AllocationMethod>02</AllocationMethod>
                <AllocationMethod>03</AllocationMethod>
                <AllocationMethod>04</AllocationMethod>
                <AllocationMethod>05</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundLimit>3</FundLimit>
                <FundCriteria>
                    <FundStatuses TYPE="EXCLUDE">
                        <FundStatus>02</FundStatus>
                        <FundStatus>03</FundStatus>
                        <FundStatus>04</FundStatus>
                        <FundStatus>05</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
            <Models>
                <ModelLimit>2</ModelLimit>
                <ValueRanges>
                    <Percent MINIMUM="10" MAXIMUM="100"></Percent>
                </ValueRanges>
                <ModelCriteria>
                    <ModelStatuses TYPE="INCLUDE">
                        <ModelStatus>01</ModelStatus>
                    </ModelStatuses>
                </ModelCriteria>
            </Models>
        </Allocation>
    </AllocationType>
    <!--This Allocation is added to just show other model types. -->
    <AllocationType TYPECODE="15">
        <Allocation>
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
                <AllocationMethod>02</AllocationMethod>
                <AllocationMethod>03</AllocationMethod>
                <AllocationMethod>04</AllocationMethod>
                <AllocationMethod>05</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundLimit>2</FundLimit>
                <FundCriteria>
                    <FundStatuses TYPE="EXCLUDE">
                        <FundStatus>02</FundStatus>
                        <FundStatus>03</FundStatus>
                        <FundStatus>04</FundStatus>
                        <FundStatus>05</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
            <Models>
                <ModelLimit>2</ModelLimit>
                <ValueRanges>
                    <Percent MINIMUM="10" MAXIMUM="100"></Percent>
                </ValueRanges>
                <ModelCriteria>
                    <ModelStatuses TYPE="INCLUDE">
                        <ModelStatus>01</ModelStatus>
                    </ModelStatuses>
                </ModelCriteria>
            </Models>
        </Allocation>
    </AllocationType>
    <AllocationType TYPECODE="13">
        <Allocation ID="SourceAllocation1" SWITCH="From">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <FundStatuses TYPE="INCLUDE">
                        <FundStatus>01</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Allocation SWITCH="To">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <FundStatuses TYPE="INCLUDE">
                        <FundStatus>01</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Events>
            <Event TYPE="ONLOAD">
                <ActionSet ID="OnLoadActionSet1"></ActionSet>
            </Event>
        </Events>
        <Actions>
            <ActionSet ID="OnLoadActionSet1">
                <Condition IF="Policy:PlanDate < SystemDate">
                    <Action ACTIONTYPE="SHOW" SECTIONNAME="SourceAllocation1"></Action>
                    <Else>
                        <Action ACTIONTYPE="HIDE" SECTIONNAME="SourceAllocation1"></Action>
                    </Else>
                </Condition>
            </ActionSet>
        </Actions>
    </AllocationType>
    <AllocationType TYPECODE="11">
        <Allocation SWITCH="From">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <Query>SELECT AsFund.FundGUID FROM AsFund JOIN AsFundField RedemptionFee ON AsFund.FundGUID=RedemptionFee.FundGUID AND RedemptionFee.FieldName='RedemptionFee' AND RedemptionFee.TextValue='Yes' JOIN AsFundField FundCode ON AsFund.FundGUID=FundCode.FundGUID AND FundCode.FieldName='FundCode' AND FundCode.TextValue='100' JOIN AsFundField RedemptionFactor ON AsFund.FundGUID=RedemptionFactor.FundGUID AND RedemptionFactor.FieldName='RedemptionFactor' AND RedemptionFactor.FloatValue='1'</Query>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Allocation SWITCH="To">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <Query>SELECT AsFund.FundGUID FROM AsFund JOIN AsFundField RedemptionFee ON AsFund.FundGUID=RedemptionFee.FundGUID AND RedemptionFee.FieldName='RedemptionFee' AND RedemptionFee.TextValue='Yes' JOIN AsFundField FundCode ON AsFund.FundGUID=FundCode.FundGUID AND FundCode.FieldName='FundCode' AND FundCode.TextValue='100' JOIN AsFundField RedemptionFactor ON AsFund.FundGUID=RedemptionFactor.FundGUID AND RedemptionFactor.FieldName='RedemptionFactor' AND RedemptionFactor.FloatValue='1'</Query>
                </FundCriteria>
            </Funds>
        </Allocation>
    </AllocationType>
    <AllocationType TYPECODE="14">
        <Allocation SWITCH="From">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <FundFields>
                        <And>
                            <FundField FIELDNAME="FundName" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>CNP Guaranteed</Value>
                                <Value>CNP F Inflation Stars</Value>
                                <Value>CNP Strategy F Stars</Value>
                                <Value>CNP F Growth Stars</Value>
                            </FundField>
                            <FundField FIELDNAME="FundCode" DATATYPE="TEXT" OPERATOR="NotEqual">
                                <Value>100</Value>
                            </FundField>
                            <FundField FIELDNAME="RedemptionFee" DATATYPE="TEXT" OPERATOR="NotEqual">
                                <Value>No</Value>
                            </FundField>
                            <FundField FIELDNAME="RedemptionDuration" DATATYPE="INTEGER" OPERATOR="Equal">
                                <Value>4</Value>
                            </FundField>
                        </And>
                    </FundFields>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Allocation SWITCH="To">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <FundFields>
                        <And>
                            <FundField FIELDNAME="FundName" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>CNP Guaranteed</Value>
                                <Value>CNP F Inflation Stars</Value>
                                <Value>CNP Strategy F Stars</Value>
                                <Value>CNP F Growth Stars</Value>
                            </FundField>
                        </And>
                    </FundFields>
                    <FundStatuses TYPE="INCLUDE">
                        <FundStatus>01</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
        </Allocation>
    </AllocationType>
    <AllocationType TYPECODE="16">
        <Allocation SWITCH="From">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <FundFields>
                        <Or>
                            <FundField FIELDNAME="FundName" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>CNP Guaranteed</Value>
                            </FundField>
                            <FundField FIELDNAME="TypeCode" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>01</Value>
                            </FundField>
                            <FundField FIELDNAME="RedemptionFactor" DATATYPE="DECIMAL" OPERATOR="Equal">
                                <Value>3</Value>
                            </FundField>
                            <FundField FIELDNAME="RedemptionFee" DATATYPE="TEXT" OPERATOR="NotEqual">
                                <Value>Yes</Value>
                            </FundField>
                            <FundField FIELDNAME="RedemptionDuration" DATATYPE="INTEGER" OPERATOR="Equal">
                                <Value>8</Value>
                            </FundField>
                        </Or>
                    </FundFields>
                </FundCriteria>
            </Funds>
        </Allocation>
        <Allocation SWITCH="To">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundCriteria>
                    <FundFields>
                        <And>
                            <FundField FIELDNAME="FundName" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>CNP F Inflation Stars</Value>
                                <Value>CNP Strategy F Stars</Value>
                                <Value>CNP F Growth Stars</Value>
                            </FundField>
                        </And>
                        <Or>
                            <FundField FIELDNAME="FundCode" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>700</Value>
                            </FundField>
                            <FundField FIELDNAME="FundName" DATATYPE="TEXT" OPERATOR="Equal">
                                <Value>CNP Guaranteed</Value>
                                <Value>CNP F Inflation Stars</Value>
                                <Value>CNP Strategy F Stars</Value>
                                <Value>CNP F Growth Stars</Value>
                            </FundField>
                        </Or>
                    </FundFields>
                    <FundStatuses TYPE="INCLUDE">
                        <FundStatus>01</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
        </Allocation>
    </AllocationType>
    <AllocationType TYPECODE="10">
        <Allocation ALLOWMIXEDMETHODS="Yes">
            <AllocationMethods>
                <AllocationMethod>01</AllocationMethod>
                <AllocationMethod>02</AllocationMethod>
                <AllocationMethod>03</AllocationMethod>
            </AllocationMethods>
            <Funds>
                <FundLimit>4</FundLimit>
                <FundCriteria>
                    <FundFields><FundField FIELDNAME="FundName" DATATYPE="TEXT" OPERATOR="Equal">
                            <Value>CNP Guaranteed</Value>
                            <Value>CNP F Inflation Stars</Value>
                            <Value>CNP Strategy F Stars</Value>
                            <Value>CNP F Growth Stars</Value>
                        </FundField>
                    </FundFields>
                    <FundStatuses TYPE="INCLUDE">
                        <FundStatus>01</FundStatus>
                    </FundStatuses>
                </FundCriteria>
            </Funds>
            <Models>
                <ModelLimit>2</ModelLimit>
                <ValueRanges>
                    <Percent MINIMUM="10" MAXIMUM="100"></Percent>
                </ValueRanges>
                <ModelCriteria>
                    <ModelStatuses TYPE="INCLUDE">
                        <ModelStatus>01</ModelStatus>
                    </ModelStatuses>
                </ModelCriteria>
            </Models>
        </Allocation>
    </AllocationType>
    <DisableAllocations>
        <PolicyStatus>01</PolicyStatus>
        <PolicyStatus>04</PolicyStatus>
        <PolicyStatus>07</PolicyStatus>
    </DisableAllocations>
</PolicyAllocationScreen>