PolicyScreen

Policy screen is the foundation of an insurance contract. It is a main screen of OIPA. This screen rule is overridden at the plan level for each product, where it houses product specific information, or at the system level, where it’s used as the basis for creating the Application screen.

This business rule is used to configure the fixed fields of the Policy screen in order to:

  • Capture the basic information required for the policy like effective date, issue date, issue state, policy number, etc.

  • Perform policy level allocations

  • Define roles, role counts, role percents and client types for roles that are required for a policy

  • Define segment requirements

  • Enable/Disable policy field and state approvals

This business rule is used to configure the fixed fields of the Application screen in order to:

  • Capture basic application information, such as active date, issue date, issue state, application number, etc.

  • Add requirements to the application

  • Add impairments to the application

Policy summary section is added to the Policy Overview Screen to make it consistent with other policy related pages and compatible with prior versions. Now policy summary is displayed with all of the fixed fields presented in the same order and format as they present on the PolicyScreen. This is the default presentation of the policy summary for all policy related pages except the PolicyScreen which retains the current fixed field and dynamic field presentations alone and no summary. In addition, configurability for policy summary will be added so each customer may specify the fixed fields and presentation order they wish.

If the Policy Summary section configuration does not exist in the PolicyScreen business rule, the following fields/values are displayed in the order as stated below:

  • Policy Number

  • Company

  • Plan

  • Plan Date

  • Policy Name

  • Policy Status

PolicyScreen Elements and Attributes
Elements Attributes Parent Element Description Element/Attribute Values

<PolicyScreen>

    The opening and closing tag of the business rule.  

<Filter>

  <PolicyScreen>

Optional:

Allows to restrict access of privileged policies from selected security groups.

 

<Conditions>

 

 

 

  <Filter>

Required, Repeatable:

This structure defines one or more conditions for one or more sets of SecurityGroups.  A set of SecurityGroups in one <Conditions> element shares the same conditional statements.  This element is repeated for each combination of SecurityGroups and conditional statements needed to filter data from a user's view.

 
SecurityGroup <Conditions>

Required:

The attribute provides a comma delimited list of Security Group names to associate with the conditional statements contained within this structure.  When the user is a member of one of the listed Security Groups, the condition(s) are applied to the searched entity's resulting record data to determine removal from the results.

Values:

  • comma delimited list of Security Groups

Type <Conditions>

Required:

This attribute indicates when the conditions express an exclusion or inclusion of data from the presentation.  The system currently supports exclusion only.

Values:

  • Exclusion

    • The filter will remove the entity record from the screen's presentation when the conditions evaluate to true.

Operator <Conditions>

Optional:

The <Conditions> element may contain multiple <Condition> elements as each represents a conditional statement.  This attribute indicates the relationship between multiple <Condition> elements.  All <Condition> elements apply the same OPERATOR value.

Values:

  • AND

    • default

    • All conditionals are connected by an AND relationship and all must evaluate to be true for the filter to impact the resulting presentation.

  • OR

    • All conditionals are connected by an OR relationship and any one evaluating to true will impact the resulting presentation.

<Condition>

 

 

  <Conditions>

Required, Repeatable:

The element provides a single condition referencing data from the Policy's dynamic field table.  This element is repeated to provide multiple conditions with each referencing a different field.  When the condition evaluates to true, it may impact the display of the Policy's information on the screen.  This is also dependent on the value of the containing <Conditions> Operator attribute and the result of multiple <Condition> elements.

 
Fieldname <Condition>

Required:

This attribute identifies a Policy's dynamic field combined with the Value attribute identifies the Policy to exclude from the screen's presentation. 

Values:

  • Policy's dynamic field name

Value <Condition>

Required:

This attribute provides a value combined with the Fieldname attribute identifies the Policy to exclude from the screen's presentation.

Values:

  • a field value

<FixedFields>

  <PolicyScreen>

Optional:

This element allows the fixed fields to have the same configuration capabilities as dynamic fields.  Fixed field data types cannot be altered from their system defined type and that configuration will be ignored.

See Common Elements → Fixed Fields.

 

<Fields> 

  <PolicyScreen>

 Required:

Allows configuration of dynamic fields.

See Common Elements → Fields Elements.

 

<MultiFields>

  <PolicyScreen>

 Optional:

Allows configuration of MultiFields on the Policy Screen.

See Common Elements → MultiFields Element.

 

<Buttons>

  <PolicyScreen>

 Required:

This element allows configuration of buttons and navigation associated to the Policy.

 

<Button>

  <Buttons>

Required, Repeatable:

Defines functional buttons and navigation for the Policy.

Values:

  • Allocate

    • Indicates the Policy will have Allocations and the system presents a navigation to the Policy Allocations Screen.

  • Activity

    • Indicates the Policy will have Activities and the system presents a navigation to the Activities Screen.

  • Close

  • New

  • PolicyOverview

    • Indicates the system will present a navigation to the Policy Overview Screen.

  • Save

    • The Policy Screen will present a Save button for the user to save the entered or modified Policy data.

  • Values

    • Indicates the Policy supports valuation and the system presents a navigation to the Policy Values Screen.

  • Withholding

    • Indicates the Policy will have Wighholding and the system presents a navigation to the Policy Withholding Screen.

<Events>

  <PolicyScreen>

Optional:

See Common Elements → ActionEvents.

 

<ScreenMath>

  <PolicyScreen>

Optional:

See Transaction Rules → Transaction Elements → Math Elements → ScreenMath Element.

 

<Actions>

  <PolicyScreen>

Optional:

See Common Elements → ActionEvents.

 

<Summary>

  <PolicyScreen>

Optional:

This element defines a Policy Summary section that includes more customization with more Policy related data than the <PolicySummary> section.  If this element and the <PolicySummary> element are configured in the same Policy Screen rule, this element takes precedence.  When neither <PolicySummary> and <Summary> element is configured, the default behavior is to present all Policy fixed fields in the following order.

  • Company

  • PlanDate

  • PolicyNumber

  • PolicyName

  • Plan

  • StatusCode

 

<Fields>

  <Summary>

Optional:

This element is a definition structure to describe the Policy data to display.

Structural child elements:

  • See "Common <Field> structure description" below. 

  • Common table names available for the <Group> element in the common <Field> structure are:

    • Policy

    • PolicyField

 

<Client>

  <Summary>

Optional:

This element defines a structure to display Client data.

 

<ClientType>

  <Client>

Required:

This element provides the connection between the Policy and the Client through a Role.

 
ROLECODE <ClientType>

Required:

This attribute identifies the Client from which the Summary will retrieve data.

Values:

  • code value

    • Valid code value comes from AsCodeRole.

<Fields>

  <ClientType>

Required, Repeatable:

This element is a definition structure to describe the Client data to display.

Structural child elements:

  • See "Common <Field> sub-structure description" below,

  • Common table names available for the <Group> element in the common <Field> structure are:

  • Client

  • ClientField

 

<Address>

  <Summary>

Optional:

This element defines a structure to display Address data.

 

<AddressType>

 

<Address>

Required:

This element provides the connection between the Policy and the Address through a Role and AddressRole.

 
ROLECODE

<AddressType>

Required:

This attribute identifies the Client from which the Summary will retrieve data.

  •  

  • Values:

    • code value

      • Valid code value comes from AsCodeRole

    ADDRESSTYPECODE

    <AddressType>

    Required:

    This attribute identifies the Address from which the Summary will retrieve data.

    Values:

    • code value

      • Valid code value comes from AsCodeAddressRole.

    <Fields>

      <AddressType>

    Required, Repeatable:

    This element is a definition structure to describe the Address data to display.

    Structural child elements:

    • See "Common <Field> sub-structure description" below.

    • Common table names available for the <Group> element in the common <Field> structure are:

      • Address

      • AddressField

     

    <Role>

      <Summary>

     Optional:

    This element defines a structure to display Role data.

     

    <RoleType>

     

      <Role>

    Required:

     This element provides the connection between the Policy and the desired Role.

     
    ROLECODE <RoleType>

    Required:

    This attribute identifies the Role from which the Summary will retrieve data.

  •  

  • Values:

    • code value

      • Valid code value comes from AsCodeRole

    <Fields>

      <RoleType>

    Required:

    This element is a definition structure to describe the Role data to display.

    Structural child elements:

    • See "Common <Field> sub-structure description" below.

    • Common table names available for the <Group> element in the common <Field> structure are:

      • Role

      • RoleField

     

    <GroupCustomer>

      <Summary>

    Optional:

    This element defines a structure to display Group Customer data.

     

    <GroupCustomerType>

     

     

    <GroupCustomer>

    Required:

    This element provides the connection between the Policy and the Group Customer.

     
    ROLECODE

    <GroupCustomer>

    Required:

    This attribute identifies the Group Customer from which the Summary will retrieve data.

    Values:

    • code value

      • Valid code value comes from AsCodeRole.

    <Fields>

     

    <GroupCustomer>

    Required:

    This element is a definition structure to describe the Group Customer data to display.

    Structural child elements:

    • See "Common <Field> sub-structure description" below.

    • Common table names available for the <Group> element in the common <Field> structure are:

      • GroupCustomer

     

    <PolicySummary>

      <PolicyScreen>

    Optional:

    This element provides backward compatibility allowing a customized definition of the Policy Summary that appears at the top of all policy related pages.  If this element and the <Summary> element are configured in the same Policy Screen rule, the <Summary> element takes precedence.  When neither <PolicySummary> and <Summary> element is configured, the default behavior is to present all Policy fixed fields in the following order.

    • Company

    • Plan

    • Date

    • PolicyNumber

    • PolicyName

    • Plan

    • StatusCode

     

    <FixedFieldName>

     

    <PolicySummary>

    Required, Repeatable:

    The element provides the name of a single Policy fixed field in which to display its value. 

    Values:

    • PolicyNumber

    • PolicyName

    • StatusCode

    • PlanDate

    • Company

    • PlanIssue

    • StateCode

    <SegmentsAllowed>

      <PolicyScreen>

    Optional:

    The element specifies the number of segments allowed on the Policy.

    Values:

    • 0

      • default

      • No segments will be allowed on the Policy.

    • integer

      • The number of segments allowed on the Policy will not exceed the integer value.

      • A valid value is a non-negative integer.

    • *

      • There is no limit to the number of segments allowed on the Policy.

    <MinimumSegments>

      <PolicyScreen>

    Optional:

    Specifies the minimum number of segments that must be attached to the Policy before any activity can be processed.

    Note: This element is required if the Policy supports Activities.

    Values:

    • 0

      • default

      • There is no minimum number of segments that must be added to the Policy before the user has access to activity processing.

    • integer

      • The number of segments that must exist on the Policy before a user has access to activity processing must be equal to or exceed the integer value.

      • A valid value is a non-negative integer.

    <AllowPlanDateModifications>

      <PolicyScreen>

    Optional:

    This element defines whether the PlanDate field is enabled or disabled.

    Values:

    • No

      • default

      • The PlanDate field will be disabled when the Policy is saved for the first time and it cannot be modified after this initial save.

    • Yes

      • The PlanDate field will be enabled or disabled based on the Policy's status and the value of the <DisablePolicyFields> element.

      • The Plan Date entered by the user will be validated based on two conditions:

        • If <UseStateApproval> is set to "Yes" in the PlanScreen business rule, the Plan is valid for the selected Issue State provided the PlanDate is between the EffectiveDate and ExpirationDate saved in the AsPlanStateApproval table.

        • If the PlanDate entered by the user is invalid based on the conditions above, an error message will be displayed, and the PlanDate field will be reset to its previous value.

    <DisablePolicyFields>

      <PolicyScreen>

    Optional:

    Specifies when fields on the Policy screen can or cannot be edited, based on the Policy's status. 

     

    <DisabledStatus>

      <DisablePolicyFields>

    Required:

    Indicates the Policy status(es) that would disable all Policy fields. 

    Values:

    • code values in a comma delimited list.

    • Valid code values are Policy statuses from AsCodeStatus.

    <SegmentCount>

      <DisablePolicyFields>

    Optional:

    This element is an additional method to disable the Policy's fields.  When the number of segments attached to the Policy reaches or exceeds this element's value, all Policy fields are disabled regardless of the Policy's status.  This feature is not executed when the element is not configured.

    Values:

    • integer

      • A valid value is any non-negative integer.

    • *

      • Policy fields are disabled under all conditions after the Policy is saved.

    • +

      • Policy fields are disabled after a single attached segment is active.

    <AutomaticPolicyNumber>

      <PolicyScreen>

    Optional:

    Allows generating a policy number when a new Policy is created as per the format specified in AutomaticPolicyNumber business rule.

    Values:

    • No

      • default 

      • A policy number will not be generated when a Policy is created.

      • The user will be required to enter an appropriate policy number.

    • Yes

      • A policy number will be generated when the Policy is created.

    • Optional

      • If a user enters data in the Policy Number field, it will be persisted with the Policy.

        • The Policy Number value can be modified while the Policy's fields are enabled. 

      • If the user does not enter data in the Policy Number field, a policy number will be generated when the Policy is created.

    <Roles>

      <PolicyScreen>

    Required:

    This element defines the roles that can be added to the policy.  Policy Roles identify individuals or entities that have a Policy level responsibility or benefit.  Multiple individuals or entities can be defined to a single role and multiple roles can be defined for a Policy.  Specific Roles can be defined to be required and others optional.  The order of Role definition dictates the order in which the Roles are presented on the screen as either checkboxes (left/right, top/bottom) or an options list in a drop down.

     

    <Role>

     

     

     

     

    <Roles>

    Required, Repeatable:

    This element defines a single role that can be added to the policy.

     
    NAME

    <Role>

    Optional:

    This element allows the configuror to provide a name to the Role to distinguish one <Role> element from another in a single PolicyScreen rule.

    Values:

    • literal

    DISABLEBYPOLICYSTATUS

    <Role>

    Optional:

    This element is used to disable modification of this Role's data through the UI and prevents this Role from being added through the UI when the Policy status value is equal to a listed value.  Without this attribute the Role's fields will not disable through the UI nor will the Role be prevented from being added through the UI.

    Values:

    • code values in a comma delimited list

    • Valid code values are Policy statuses from AsCodeStatus.

    ALLOWREQUIREMENTS

    <Role>

    Optional:

    The element controls the 'Add Requirement' button associated to this Role.  The Requirement screen can be viewed by clicking on the Requirement navigation link.

    Values:

    • No

      • default

      • The 'Add Requirement' button will not display.

    • Yes

      • The 'Add Requirement' button will display.

    <RoleCode>

     

    <Role>

    Required:

    This element identifies the single Role being defined in the <Role> element.

    Values:

    • code value

      • Valid code value comes from AsCodeRole.

    <RoleCount>

     

    <Role>

    Required:

    The element specifies the number of associated active Role instances that can be added to the Policy.

    Values:

    • integer

      • A valid value is a non-negative integer

    • *

      • This indicates no limit to the number of associated active Roles that can be added to the Policy.

    <RolePercent>

     

    <Role>

    Required:

    Defines the total percentage value that OIPA will validate when an associated Role is added.  OIPA will only accept multiple associated Roles where the total percentage value matches this element's value.

    Values:

    • integer

      • Valid value ranges from 0 to 100.

    • *

      • This value indicates that the total percentage for all associated Roles can exceed 100%.

      • Each individual associated Role has a maximum of 100%.

    <ClientType>

     

    <Role>

    Required:

    The element defines the client types that can be assigned to the associated Role. Multiple types of clients can be associated. This controls the client types from which the user can select.

    Values:

    • code value in a comma delimited list

      • Valid values come from AsCodeClientType.

    <Tests>

     

    <Role>

    Optional:

    This allows configuration of one or more test conditions.  All configured conditions must evaluate to true for this associated Role to be valid for addition to the Policy.

     

    <Test>

     

    <Tests>

    Required, Repeatable:

    This element defines a single conditional expression. 

    Values:

    • conditional expression

      • The expression can reference the Policy's fields with the syntax Policy:[] substituting [] with the Policy's fixed or dynamic field name.

    <AllowPercent>

     

    <Role>

    Optional:

    This element controls presentation of a percentage with the associated Role.

    Values:

    • Yes

      • default

      • Percentage is presented on the associated Role.

    • No

      • Percentage is not presented on the associated Role.

    <AllowZeroPercent>

     

    <Role>

    Optional:

    This element allows the percentage value to be zero.

    Values:

    • Yes

      • default

      • This allows the percentage to be zero.

    • No

      • This value does not allow the percentage to be zero.

    Common <Field> sub-structure description  

    <Field>

     

    <Fields>

    Required, Repeatable:

    This element defines a field structure that identifies the field value to display, its translatable label and the a source table or Math section where the data resides.

     

    <Name>

     

    <Field>

    Required:

    This element identifies the data column or dynamic field name in the source table providing data to the presentation. 

    Values:

    • literal

      • Fixed field name or dynamic field name.

    • Filler

      • This adds an empty space with no label that is the width of one field.

    • [math id]:[math variable]

      • This references a math variable from an entity's ONLOAD screen configuration.

      • This is valid only when <Group> is Math.

    <Display>

     

    <Field>

    Required:

    This element provides a label to display with the field's value.  The label can be translated.  If the <Name> element is Filler, this element is ignored.

    Values:

    • literal

    <Group>

     

    <Field>

    Required:

    This element provides the common name of the database table where the data has been stored.  If the<Name> element is Filler, this element is ignored.

    Values:

    • literal

      • List of common names are described by the parent <Field> element above.

    • Math

    XML Schema

    <PolicyScreen>
        <Filter>
            <Conditions SecurityGroup="[security group, ...]" Type="Exclusion" Operator="[AND | OR]">
                <Condition Fieldname="[field name]" Value="[field value]"/>
                <Condition>...</Condition>
            </Conditions>
            <Conditions>...</Conditions>
        </Filter>
        <FixedFields>...</FixedFields>
        <Fields>...</Fields>
        <MultiFields>...</MultiFields>
        <Buttons>
            <Button>[Allocate | Activity | Close | New | PolicyOverview | Save | Values | Withholding]</Button>
            <Button>...</Button>
        </Buttons>
        <Events>...</Events>
        <ScreenMath>...</ScreenMath>
        <Actions>...</Actions>
        <Summary>
            <Fields>
                <Field>
                    <Name>[field name | Filler | math id:variable]</Name>
                    <Display>[literal]</Display>
                    <Group>[literal | Math]</Group>
                </Field>
                <Field>...</Field>
            </Fields>
            <Client>
                <ClientType ROLECODE="[code value]">
                    <Fields>
                        <Field>
                            <Name>[field name | Filler | math id:variable]</Name>
                            <Display>[literal]</Display>
                            <Group>[literal | Math]</Group>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                </ClientType>
            </Client>
            <Address>
                <AddressType ROLECODE="[code value]" ADDRESSTYPECODE="[code value]">
                    <Fields>
                        <Field>
                            <Name>[field name | Filler | math id:variable]</Name>
                            <Display>[literal]</Display>
                            <Group>[literal | Math]</Group>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                </AddressType>
            </Address>
            <Role>
                <RoleType ROLECODE="[code value]">
                    <Fields>
                        <Field>
                            <Name>[field name | Filler | math id:variable]</Name>
                            <Display>[literal]</Display>
                            <Group>[literal | Math]</Group>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                </RoleType>
            </Role>
            <GroupCustomer>
                <GroupCustomerType ROLECODE="[code value]">
                    <Fields>
                        <Field>
                            <Name>[field name | Filler | math id:variable]</Name>
                            <Display>[literal]</Display>
                            <Group>[literal | Math]</Group>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                </GroupCustomerType>
            </GroupCustomer>
        </Summary>
        <PolicySummary>
            <FixedFieldName>[PolicyNumber | PolicyName | StatusCode | PlanDate | Company | Plan | IssueStateCode]</FixedFieldName>
            <FixedFieldName>...</FixedFieldName>
        </PolicySummary>
        <SegmentsAllowed>[0 | integer | *]</SegmentsAllowed>
        <MinimumSegments>[0 | integer]</MinimumSegmenes>
        <AllowPlanDateModifications>[No | Yes]</AllowPlanDateModifications>
        <DisablePolicyFields>
            <DisabledStatus>[code value, ...]</DisabledStatus>
            <SegmentCount>[integer | * | +]</SegmentCount>
        </DisablePolicyFields>
        <AutomaticPolicyNumber>[No | Yes | Optional]</AutomaticPolicyNumber>
        <Roles>
            <Role NAME="[literal]" DISABLEBYPOLICYSTATUS="[code value]" ALLOWREQUIREMENTS="[No | Yes]">
                <Tests>
                    <Test>[conditional expression]</Test>
                    <Test>...</Test>
                </Tests>
                <RoleCode>[code value]</RoleCode>
                <RoleCount>[integer | *]</RoleCount>
                <ClientType>[code value, ...]</ClientType>
                <AllowPercent>[Yes | No]</AllowPercent>
                <AllowZeroPercent>[Yes | No]</AllowZeroPercent>
            </Role>
            <Role>...</Role>
        </Roles>
    </PolicyScreen>

    XML Example

    <PolicyScreen>
        <Fields>
            <Field>
                <Name>StatutoryCompany</Name>
                <Display>Statutory Company</Display>
                <DataType>Combo</DataType>
                <DefaultValue>ALIC</DefaultValue>
                <Disabled>Yes</Disabled>
                <Query TYPE="FIXED">
                    <Options>
                        <Option>
                            <OptionValue>ALIC</OptionValue>
                            <OptionText>ALIC</OptionText>
                        </Option>
                        <Option>
                            <OptionValue>ALICNY</OptionValue>
                            <OptionText>ALICNY</OptionText>
                        </Option>
                    </Options>
                </Query>
            </Field>
            <Field>
                <Name>QualType</Name>
                <Display>Qual Type</Display>
                <DataType>Combo</DataType>
                <Query TYPE="SQL">SELECT AsCode.CodeValue, AsCode.ShortDescription FROM AsCode WHERE AsCode.CodeName = 'AsCodeQualifier' AND AsCode.CodeValue IN ('01','02','03','04','07','08','13')</Query>
            </Field>
            <Field>
                <Name>BandVariable</Name>
                <Display>Option Groups</Display>
                <DataType>Combo</DataType>
                <Query TYPE="FIXED">
                    <Options>
                        <Option>
                            <OptionValue>125</OptionValue>
                            <OptionText>ContractBSeries</OptionText>
                        </Option>
                        <Option>
                            <OptionValue>160</OptionValue>
                            <OptionText>ContractXCSeries</OptionText>
                        </Option>
                    </Options>
                </Query>
            </Field>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
            <Field>
                <Name>PolicyEffectiveDate</Name>
                <Display>Effective Date</Display>
                <DataType>Date</DataType>
                <Disabled>Yes</Disabled>
            </Field>
            <Field>
                <Name>PolicyIssueDate</Name>
                <Display>Issue Date</Display>
                <DataType>Date</DataType>
            </Field>
            <Field>
                <Name>SweepDate</Name>
                <Display>Sweep Date</Display>
                <DataType>Date</DataType>
                <Disabled>Yes</Disabled>
            </Field>
            <Field>
                <Name>FreeLookEndDate</Name>
                <Display>FreeLook End Date</Display>
                <DataType>Date</DataType>
                <Disabled>Yes</Disabled>
            </Field>
            <Field>
                <Name>NewTaxID</Name>
                <Display>SSN</Display>
                <DataType>Text</DataType>
                <Disabled>Yes</Disabled>
                <Hidden>Yes</Hidden>
            </Field>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
            <Field>
                <Name>GMABRider</Name>
                <Display>GMAB Rider</Display>
                <DataType>Radio</DataType>
                <Query TYPE="FIXED">
                    <Options>
                        <Option>
                            <OptionValue>00</OptionValue>
                            <OptionText>No</OptionText>
                        </Option>
                        <Option>
                            <OptionValue>01</OptionValue>
                            <OptionText>Yes</OptionText>
                        </Option>
                    </Options>
                </Query>
                <DefaultValue>00</DefaultValue>
            </Field>
            <Field>
                <Name>PolicyYear</Name>
                <Display>Policy Year</Display>
                <DataType>Integer</DataType>
                <DefaultValue>0</DefaultValue>
                <Hidden>Yes</Hidden>
            </Field>
        </Fields>
        <Summary>
            <Fields>
                <Field>
                    <Name>SummaryMath:OwnerFullNameMV</Name>
                    <Display>Owner Full Name</Display>
                    <Group>Math</Group>
                </Field>
                <Field>
                    <Name>SummaryMath:OwnerDOBMV</Name>
                    <Display>Owner DOB</Display>
                    <Group>Math</Group>
                </Field>
                <Field>
                    <Name>SummaryMath:OwnerTAXIDMV</Name>
                    <Display>Owner Tax ID</Display>
                    <Group>Math</Group>
                </Field>
                <Field>
                    <Name>SummaryMath:OwnerResidenceMV</Name>
                    <Display>Owner Residence</Display>
                    <Group>Math</Group>
                </Field>
                <Field>
                    <Name>SummaryMath:AnnuitantFullNameMV</Name>
                    <Display>Annuitant Full Name</Display>
                    <Group>Math</Group>
                </Field>
                <Field>
                    <Name>SummaryMath:AnnuitantDOB</Name>
                    <Display>Annuitant DOB</Display>
                    <Group>Math</Group>
                </Field>
                <Field>
                    <Name>QualType</Name>
                    <Display>Qual Type</Display>
                    <Group>PolicyField</Group>
                </Field>
                <Field>
                    <Name>NewTaxID</Name>
                    <Display>SSN</Display>
                    <Group>PolicyField</Group>
                </Field>
                <Field>
                    <Name>TAXID</Name>
                    <Display>SSN</Display>
                    <Group ROLECODE="01">Client</Group>
                </Field>
            </Fields>
            <Client>
                <ClientType ROLECODE="01">
                    <Fields>
                        <Field>
                            <Name>TAXID</Name>
                            <Display>SSN</Display>
                            <Group>Client</Group>
                        </Field>
                    </Fields>
                </ClientType>
            </Client>
            <Address>
                <AddressType ROLECODE="01" ADDRESSTYPECODE="02">
                    <Fields>
                        <Field>
                            <Name>Address</Name>
                            <Display>Owner Address</Display>
                            <Group>Address</Group>
                        </Field>
                    </Fields>
                </AddressType>
                <AddressType ROLECODE="27" ADDRESSTYPECODE="02">
                    <Fields>
                        <Field>
                            <Name>Address</Name>
                            <Display>Annuitant Address</Display>
                            <Group>Address</Group>
                        </Field>
                    </Fields>
                </AddressType>
            </Address>
        </Summary>
        <Buttons>
            <Button>Allocate</Button>
            <Button>Values</Button>
            <Button>Activity</Button>
            <Button>Withholding</Button>
        </Buttons>
        <Events>
            <Event TYPE="ONLOAD">
                <Math ID="SummaryMath"/>
                <Math ID="FinalValidationMath"/>
                <ActionSet ID="OnChangeIssueStateCode"/>
            </Event>
            <Event TYPE="ONCHANGE" FIELD="IssueStateCode">
                <ActionSet ID="OnChangeIssueStateCode"/>
            </Event>
            <Event TYPE="ONSUBMIT">
                <ActionSet ID="FinalValidation"/>
            </Event>
        </Events>
        <ScreenMath>
            <Math ID="SummaryMath" GLOBAL="Yes">
                <MathVariables>
                    <MathVariable VARIABLENAME="NewYork" TYPE="VALUE" DATATYPE="TEXT">32</MathVariable>
                    <MathVariable VARIABLENAME="AnnuitantFullNameMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.FirstName || ' ' || AsClient.LastName FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '27')</MathVariable>
                    <MathVariable VARIABLENAME="AnnuitantDOB" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.DATEOFBIRTH FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '27')</MathVariable>
                    <MathVariable VARIABLENAME="OwnerFullNameMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.FirstName || ' ' || AsClient.LastName FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '01')</MathVariable>
                    <MathVariable VARIABLENAME="OwnerDOBMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.DATEOFBIRTH FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '01')</MathVariable>
                    <MathVariable VARIABLENAME="OwnerTAXIDMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.TAXID FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '01')</MathVariable>
                    <MathVariable VARIABLENAME="OwnerAddressMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.FirstName || ' ' || AsClient.LastName FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '01')</MathVariable>
                    <MathVariable VARIABLENAME="OwnerResidenceMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.LegalResidenceCountryCode FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '01')</MathVariable>
                </MathVariables>
            </Math>
            <Math ID="FinalValidationMath" GLOBAL="No">
                <MathVariables>
                    <MathVariable VARIABLENAME="PolicyNameError" TYPE="VALUE" DATATYPE="BOOLEAN">false</MathVariable>
                    <MathIF IF="IsEmpty(PolicyName) = true">
                        <MathVariable VARIABLENAME="PolicyNameError" TYPE="VALUE" DATATYPE="BOOLEAN">true</MathVariable>
                    </MathIF>
                    <MathVariable VARIABLENAME="PlanName" TYPE="SQL" DATATYPE="TEXT">select PLANNAME from asplan where planguid in (select planguid from aspolicy where policyguid = '[PolicyGUID]')</MathVariable>
                </MathVariables>
            </Math>
            <Math ID="TestSummary" GLOBAL="No">
                <MathVariables>
                    <MathVariable VARIABLENAME="AnnuitantFullNameMV" TYPE="SQL" DATATYPE="TEXT">SELECT AsClient.FirstName || ' ' || AsClient.LastName FROM AsClient, AsRole, AsCode WHERE AsClient.ClientGUID = AsRole.ClientGUID AND (AsRole.RoleCode = AsCode.CodeValue) AND (AsCode.CodeName = 'AsCodeRole' AND AsRole.PolicyGUID = '[PolicyGUID]' AND AsRole.RoleCode = '01')</MathVariable>
                </MathVariables>
            </Math>
        </ScreenMath>
        <Actions>
            <ActionSet ID="OnChangeIssueStateCode">
                <Action ACTIONTYPE="ASSIGN" FIELD="NewTaxID">SummaryMath:OwnerTAXIDMV</Action>
                <Condition IF="IssueStateCode=SummaryMath:NewYork">
                    <Action ACTIONTYPE="ASSIGN" FIELD="StatutoryCompany">'ALICNY'</Action>
                    <Else>
                        <Action ACTIONTYPE="ASSIGN" FIELD="StatutoryCompany">'ALIC'</Action>
                    </Else>
                </Condition>
            </ActionSet>
            <ActionSet ID="FinalValidation">
                <Condition IF="IsEmpty(PolicyIssueDate)">
                    <Action ACTIONTYPE="ERROR">Issue Date is a required field.</Action>
                </Condition>
            </ActionSet>
        </Actions>
        <Roles>
            <Role NAME="Annuitant" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>27</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Collateral Assignee" DISABLEBYPOLICYSTATUS="01,09,10,21,05,29">
                <RoleCode>88</RoleCode>
                <RoleCount>*</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Contingent Beneficiary" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>24</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Financial Advisor" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>40</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Joint Annuitant" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>07</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Owner" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>01</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Payee" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>04</RoleCode>
                <RoleCount>*</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>01,02</ClientType>
            </Role>
            <Role NAME="Primary Beneficiary" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>23</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>02</ClientType>
            </Role>
            <Role NAME="Transfer Company" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>15</RoleCode>
                <RoleCount>1</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>01</ClientType>
            </Role>
            <Role NAME="Trustee" DISABLEBYPOLICYSTATUS="01,04,07,09,10,21,30,31,32,36,40">
                <RoleCode>67</RoleCode>
                <RoleCount>*</RoleCount>
                <RolePercent>100</RolePercent>
                <ClientType>01,02</ClientType>
            </Role>
        </Roles>
        <SegmentsAllowed>4</SegmentsAllowed>
        <MinimumSegments>1</MinimumSegments>
        <ShowSegmentRoles>Yes</ShowSegmentRoles>
        <AutomaticPolicyNumber>Yes</AutomaticPolicyNumber>
        <DisablePolicyFields>
            <DisabledStatus>01,04,07,09,10,21,30,31,32,36,40</DisabledStatus>
        </DisablePolicyFields>
    </PolicyScreen>