ProgramAllocationScreen

The ProgramAllocationScreen business rule defines the presentation and data entry of fund allocations and investment model selections on the Program's Allocation tab. If this rule is not present the user cannot provide Allocation data for the Program.

Allocations allow a Program activity to move money. It expresses a customer's instructions about the distribution of the Policy's investments through a Program into one or more funds.

The ProgramAllocationScreen Business Rule overrides Allocations at the ProgramDefinition level so that activities called from program processing can directly use the allocation information specific to that Program instance. This screen rule is similar to the TransactionAllocationScreen business rule. That rule functions for Activities associated to a Transaction where this rule functions for Policy/Segment level Program instances associated to a ProgramDefinition.

ProgramAllocationScreen: Elements and Attributes
Elements Attributes Parent Element Description Element / Attribute Values

<ProgramAllocationScreen>

 

 

This is the root element for the rule.

 

<AllocationDate>

 

<ProgramAllocationScreen>

Optional:

This indicates that funds and models available for allocation should be based on the effective date specified in this element.

  • Program:StartDate

    • default

  • Policy:[field name]

    • valid value is a Policy's field name

<Precision>

 

<ProgramAllocationScreen>

Optional:   

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

 

<PercentPrecision>

 

<Precision>

Required element:

This element provides the number of digits following the decimal point for allocations entered as Percent..

  • integer

<DisableAllocations>   <ProgramAllocationScreen>

Optional:

This element's structure defines when the Allocation screen will be disabled.  This decision is based on the Program instance's status.  When this element is not configured, the Allocation screen is editable in all Program stages.

 
<ProgramStatus>  

<DisableAllocations>

Required, Repeatable:

This element provides a single program status.  When the Program has this status value the Allocation screen will be disabled and cannot be edited by a user.  This element is repeated to include more Program statuses to disable the screen.

  • code value

    • valid value comes from AsCodeProgramStatus

<DefaultAllocation>

 

<ProgramAllocationScreen>

Optional:

Default Allocation specifies whether to use a Plan allocation, Policy allocation or a specific model as the default allocation.  Default allocations are loaded and presented on the screen during the initial screen load and before any Allocation has been persisted for the Program instance.

 

 

LEVEL

<DefaultAllocation>

Required:

This attribute specifies the source of a default allocation.  Default allocations are sourced from the Policy, the Policy's Plan or a Model.  The identified allocation source must exist.

  • Plan

    • this requires the TYPECODE attribute.

  • Policy

    • this requires the TYPECODE attribute.

  • Model

    • this requires the MODELNAME attribute.

 

TYPECODE

<DefaultAllocation>

Optional:

This attribute provides the allocation type code.  It is required for Plan, Policy and Program level allocations.  The attribute is ignored for Model level allocations.

  • code value

    • valid value comes from AsCodeAllocationType

 

MODELNAME

<DefaultAllocation>

Optional:

If Model level is selected, this attribute specifies the model name.

This attribute sets the initial allocation presentation to the model named here.  It is required to initially present a Model level allocations.  The attribute is ignored for Plan and Policy level allocations.

  • name

    • a model's name

  • field

    • a Policy's field that holds the model's name

<Allocation>

 

<ProgramAllocationScreen>

Required, Repeatable:

This element's structure identifies the allocation sections and option population for the allocation methods, funds and models available to the user.

 

 

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 rule.

  • TO

    • default

    • the allocation section describes the target for the transferred money.

  • FROM

    • the allocation section describes a source of the transferred money.

 

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 allocations are not allowed.

  • Yes

    • mixed allocations are allowed.

    • the user must select an allocation method for each fund entered into the allocation

 

ID

<Allocation>

Optional:

The attribute provides a name for the allocation section.  The name may be used by an Action to direct the results of the Action to the Allocation section.  The value of the attribute must be a unique name in this rule.

  •  literal

<AllocationMethods>

 

 

<Allocation>

Required:

This element contains one or more allocation methods to populate the options available in the Allocation Method drop-down list on the Program's Allocation screen.  If the element is not configured the drop-down list will be empty.

 

<AllocationMethod>

 

<AllocationMethods>

Required, Repeatable:

This element identifies a single allocation method.  Allocation methods configured in this element will be available for selection in the Allocation Method drop-down list on the Program Allocation screen.  The element is repeated to provide multiple allocations methods.

  • code value

    • valid code values come 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's structure.  The name may be used by an Action to direct the results of the Action to the parent element's structure.  The value of the attribute must be a unique name in this rule.

  • name

<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.

  •  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.

  • integer

<ValueRanges>

 

<Funds>, <Models>

Optional element:

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

 

<Percent>

 

<ValueRanges>

Required:

If ValueRanges is used. Either the MINIMUM or MAXIMUM attribute is required.

 

 

MINIMUM

<Percent>

Required:

The attribute provides the minimum percent value allowed.

  • integer

    • the value must be between 1 and 100

 

MAXIMUM

<Percent>

Required:

The attribute provides the maximum percent value allowed.

  • integer

    • the value must be between 1 and 100

<FundCriteria>

 

<Funds>

Optional:

This element provides a definition structure to filter the funds listed in the fund's drop-down list.  Funds are filtered by a SQL query or a filter on <FundFields> and optionally <FundStatuses>.

 

<ModelCriteria>

 

<Models>

Optional:

This element provides a definition structure to filter the models listed in the model's drop-down list.  Models are filtered by a SQL query or a filter on <ModelFields> and optionally <ModelStatuses>.

 

<Query>  

<FundCriteria>, <ModelCriteria>

Optional:

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

  •  sql query

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

<FundFields>

 

<FundCriteria>

Optional:

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

 

<ModelFields>

 

<ModelCriteria>

Optional:

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

 

<And>

 

<FundFields>, <ModelFields>

Optional:

This element allows a compound filter definition.  It indicates a logical "and" relationship between multiple child field filter elements.

 

<Or>

 

<FundFields>, <ModelFields>

Optional:

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

 

<FundField>

 

 

 

 

<FundFields>, <And>, <Or>

Required, Repeatable:

This element defines a single fund field 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> and <Or> elements.  If this element is repeated outside of <And> and <Or> elements, the system constructs a logical "and" relationship.

 

<ModelField>

 

<ModelFields>, <And>, <Or>

Required, Repeatable:

This element defines a single model field 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> and <Or> elements.  If this element is repeated outside of <And> and <Or> elements, the system constructs a logical "and" relationship.

 

 

FIELDNAME

<FundField>, <ModelField>

Required:

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

  • dynamic field name

  • fixed field names in a fund context

    • FundName

    • TypeCode

  • fixed field names in a model context

    • ModelName

    • ModelCategoryCode

    • ModelDescription

    • ModelType

 

DATATYPE

<FundField>, <ModelField>

Required:

The attribute provides the data type of the field.

  • Text

  • Date

  • Integer

  • Decimal

 

OPERATOR

<FundField>, <ModelField>

Required:

The attribute provides a comparison operator.

 

Equal / NotEqual / Like   

The code will wrap the value with % on both sides.

The Like option only applies to TEXT.

  • 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:[field name]

<FundStatuses>

 

<FundCriteria>

Optional:

This element structure defines a filter on a fund's status values.  This element can be combined with the <FundFields> element.  In this scenario an "and" relationship is established where a fund must pass the <FundFields> filter and pass the <FundStatuses> filter.

 

<ModelStatuses>

 

<ModelCriteria>

Optional:

This element structure defines a filter on a model's status values.  This element can be combined with the <ModelFields> element.  In this scenario an "and" relationship is established where a model must pass the <ModelFields> filter and pass the <ModelStatuses> filter.

 

 

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.

<FundStatus>

 

<FundStatuses>

Required, Repeatable:

This element provides a single fund status code.  The element is repeated to provide multiple codes to test.

  • code value

    • valid code value comes from AsCodeFundStatus.

<ModelStatus>

 

<ModelStatuses>

Required, Repeatable:

This element provides a single model status code.  The element is repeated to provide multiple codes to test.

  • code value

    • valid code value comes from AsCodeModelStatus.

<Events>  

<ProgramAllocationScreen>

Optional:

See Actions/Events article under Common Elements topic.

 

<Event>  

<Events>

Optional:

See Actions/Events article under Common Elements topic.

This element provides the common ability to react to ONLOAD, ONCHANGE and ONSUBMIT events occurring on the program's allocation screen.  The configuration definition described below provides additional functionality not described in the common ActionEvents element.

 

  TYPE

<Event>

Optional:

See Actions/Events article under Common Elements topic.

In addition to the common types of events there is a CALLEDEVENT type.  This allows a connection to the program's screen where an event there can subsequently continue in the program's allocation screen.  The ProgramDefinition configuration triggers this through a CALLEXTERNALEVENT event type.  This is commonly used to show or hide sections of the allocation screen based on the program data.

  • CALLEDEVENT

    • This is an additional type for the attribute as described in the common ActionEvents page.

    • This type provides the connection to the program instance screen and its data.

    • The ID attribute is required.

    • During a CALLEDEVENT, the allocation's ScreenMath and Actions have access to the program instance field values through Program:[fieldname] syntax.

  ID

<Event>

Optional:

See Actions/Events article under Common Elements topic.

In addition to the common description of the attribute, this attribute is required when TYPE="CALLEDEVENT".

  • name

    • this provides a unique name to the called event

    • the name must match the ID value in the CALLEXTERNALEVENT defined in the ProgramDefinition Event's structure

    • this must be a unique name in the rule

<ScreenMath>  

<ProgramAllocationScreen>

Optional:

See Actions/Events article under Common Elements topic.

In addition to the common description, <ScreenMath> has access to the program instance's fields during a CALLEDEVENT with the syntax Program:[field name].

 

<Actions>  

<ProgramAllocationScreen>

Optional:

See Actions/Events article under Common Elements topic.

In addition to the common description, <Actions> has access to the program instance's fields during a CALLEDEVENT with the syntax Program:[field name]. 

 

<ActionSet>  

<Actions>

Optional, Repeatable:

See Actions/Events article under Common Elements topic. This is provided for context of the remaining elements and attributes.

 

<Condition>

 

<ActionSet>

Optional, Repeatable:

See Actions/Events article under Common Elements topic. This is provided for context of the remaining elements and attributes.

 

<Action>   <ActionSet>, <Condition>

Required, Repeatable:

See Actions/Events article under Common Elements topic.

This rule provides additional functionality not described in the common ActionEvents element.

  • CHECKED

    • applicable to ASSIGN Action Type with a FIELD attribute

  • UNCHECKED

    • applicable to ASSIGN Action Type with a FIELD attribute

  • allocation type code value

    • applicable to ASSIGN Action Type without a FIELD attribute

  • screen math variable

    • applicable to ASSIGN Action Type

  • program instance's field name

    • applicable to ASSIGN Action Type

  ACTIONTYPE <Action>

Required:

In addition to the common description, the description for the attribute's values are further modified in this rule.

  • ASSIGN

    • this can assign a checked or unchecked value to the EqualPercent field of a specific allocation section.  The value of the <Action> element is CHECKED or UNCHECKED or a screen math variable or a program instance's field name containing a CHECKED or UNCHECKED value.

    • this can copy a Policy or Plan level allocation to a source allocation, SWITCH="FROM".  The value of the <Action> element is the Allocation's TypeCode value or a screen math variable or a program instance's field containing a valid Allocation TypeCode value.

    • this can also be used to purposefully leave a section's allocation blank or empty.  There should be no value for the <Action> element and the section's ID value provided by the SECTIONNAME attribute.

  • DISABLE

    • this value disables the EqualPercent field, FIELD="EqualPercent" of a specific allocation section

  • ENABLE

    • this value enables the EqualPercent field, FIELD="EqualPercent" of a specific allocation section

  • DISABLEALL

    • this is not supported in this business rule.

  • HIDE

    • this value can hide the EqualPercent field, FIELD="EqualPercent" of a specific allocation section.

    • this value can hide an entire allocation section identified by its ID value in the SECTIONNAME attribute.

  • SHOW

    • this value can show or re-display a previously hidden EqualPercent field.

    • this value can show or re-display an entire allocation section identified by its ID value in the SECTIONNAME attribute.

  SECTIONNAME <Action>

Optional:

This attribute provides the name of the allocation section to target with the action being defined.

  • section name

    • section name must match one of the <Allocation>'s ID attribute values in this rule.

    • this attribute is applicable to HIDE, SHOW and some ASSIGN actions.

  FIELD <Action> 

Optional:

See Actions/Events article under Common Elements topic.

In this rule the only applicable field name is EqualPercent.

  • EqualPercent

    • this attribute is applicable to HIDE, SHOW and some ASSIGN actions.

XML Schema

<ProgramAllocationScreen>
    <AllocationDate>[Program:StartDate | Policy:[field]]</AllocationDate>
    <Precision>
        <PercentPrecision>[integer]</PercentPrecision>
    </Precision>
    <DisableAllocations>
        <ProgramStatus>[code]</ProgramStatus>
        <ProgramStatus>...</ProgramStatus>
    </DisableAllocations>
    <DefaultAllocation LEVEL="[Plan | Policy | Model]" TYPECODE="[code]" MODELNAME="[model name | Policy:[field]]" ALLOWEVENTS="[No | Yes]"/>
    <Allocation ID="[literal]" SWITCH="[FROM | TO]" ALLOWMIXEDMETHODS="[No | Yes]">
        <AllocationMethods>
            <AllocationMethod>[code]</AllocationMethod>
            <AllocationMethod>...</AllocationMethod>
        </AllocationMethods>
        <Funds ID="[literal]">
            <FundLimit>[integer]</FundLimit>
            <ValueRanges>
                <Percent MINIMUM="[integer]" MAXIMUM="[integer]"/>
            </ValueRanges>
            <FundCriteria>
                <Query>[sql]</Query>
                <FundFields>
                    <FundField FIELDNAME="[FundName | TypeCode | fund field name]" DATATYPE="[Text | Date | Integer | Decimal]" OPERATOR="[Equal | NotEqual | Like]">
                        <Value>[literal | Policy:[field] | Program:[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] | Program:[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] | Program:[field]]</Value>
                            <Value>...</Value>
                        </FundField>
                        <FundField>...</FundField>
                    </Or>
                </FundFields>
                <FundStatuses TYPE="[INCLUDE | EXCLUDE]">
                    <FundStatus>[code]</FundStatus>
                    <FundStatus>...</FundStatus>
                </FundStatuses>
            </FundCriteria>
        </Funds>
        <Models ID="[literal]">
            <ModelLimit>[integer]</ModelLimit>
            <ValueRanges>
                <Percent MINIMUM="[integer]" MAXIMUM="[integer]"/>
            </ValueRanges>
            <ModelCriteria>
                <Query>[sql]</Query>
                <ModelFields>
                    <ModelField FIELDNAME="[model field name | ModelName | ModelCategoryCode | ModelDescription | ModelType]" DATATYPE="[Text | Date | Integer | Decimal]" OPERATOR="[Equal | NotEqual | Like]">
                        <Value>[literal | Policy:[field] | Program:[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] | Program:[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] | Program:[field]]</Value>
                            <Value>...</Value>
                        </ModelField>
                        <ModelField>...</ModelField>
                    </Or>
                </ModelFields>
                <ModelStatuses TYPE="[INCLUDE | EXCLUDE]">
                    <ModelStatus>[code]</ModelStatus>
                    <ModelStatus>...</ModelStatus>
                </ModelStatuses>
            </ModelCriteria>
        </Models>
    </Allocation>
    <Allocation>...</Allocation>
    <Events>...</Events>
    <ScreenMath>...</ScreenMath>
    <Actions>
        <ActionSet>
            <Action ACTIONTYPE="[HIDE | SHOW]" SECTIONNAME="[section name]"/>
            <Action ACTIONTYPE="[HIDE | SHOW]" SECTIONNAME="[section name]" FIELD="EqualPercent"/>
            <Action ACTIONTYPE="[ASSIGN]" SECTIONNAME="[section name]" FIELD="EqualPercent">[CHECKED | UNCHECKED | variable]</Action>
            <Action ACTIONTYPE="[ASSIGN]" SECTIONNAME="[section name]">[code | variable | field]</Action>
            <Action ACTIONTYPE="[ASSIGN]" SECTIONNAME="[section name]"/>
            <Action>...</Action>
        </ActionSet>
        <ActionSet>
            <Condition IF="[condition]">
                <Action>...</Action>
                <Action>...</Action>
                <ElseIf IF="[condition]">
                    <Action>...</Action>
                    <Action>...</Action>
                </ElseIf>
                <ElseIf>...</ElseIf>
                <Else>
                    <Action>...</Action>
                    <Action>...</Action>
                </Else>
            </Condition>
        </ActionSet>
    </Actions>
</ProgramAllocationScreen>