RoleScreen

This business rule allows for the configuration of the Role screen and defines the dynamic fields that can be displayed and updated on the specified Role Detail(s) screens.  The plan selected during the policy entry process dictates which role options are visible and available on the Role screen. 

RoleScreen: Elements and Attributes
Elements Attributes Parent Element Description Element/Attribute Values
<RoleScreen>    

Required:

This is the opening element and matches the name of the business rule.

 
<Filter>   <RoleScreen>

Optional:

The filter structure expresses conditions upon which the entity's data will not be displayed to a user.  The restrictions are based on the user's SecurityGroup membership and the entity's data values.
 
<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 database table provided by its associated ENTITY attribute.  This element is repeated to provide multiple conditions with each referencing a different table name.

Values:

  • Conditional statement in the form of a SQL predicate

  ENTITY <Condition>

Required:

The attribute provides a database table name upon which the condition will apply. 

Values:

  • ASPOLICY

  • ASPOLICYFIELD

  • ASCLIENT

  • ASCLIENTFIELD

  • ASROLE

  • ASROLEFIELD

  FIELDNAME <Condition>

Optional:

This attribute helps identify the Policy Role or Client that the <Condition>'s value is tested against.  This applies to Role, RoleField, Client and ClientField entities only.

Values:

  • RoleCode

    • This is applicable for ASROLE and ASROLEFIELD entities.

  • TypeCode

    • This is applicable for ASCLIENT and ASCLIENTFIELD entities.

  VALUE <Condition>

Optional:

This attribute provides a Policy Role's RoleCode or Client's TypeCode value.

Values:

  • code value

    • If the entity is ASROLE or ASROLEFIELD the code value must be a value from AsCodeRole.

    • If the entity is ASCLIENT or ASCLIENTFIELD the code value must be a value from AsCodeClientType.

<Role>

  <RoleScreen>

Required, Repeatable:  

This element's structure defines the dynamic fields, delete behavior and sort properties for a specific Policy Role.  Repeating the element defines multiple Policy Roles.

 

 

ROLECODE <Role>

Required:

This attribute identifies the Policy Role being defined.

Values:

  • code value

    • The valid role code comes from AsCodeRole.

 

NAME <Role>

Optional:

This element provides a user-friendly description for the Policy Role.

Values:

  • literal

<SuccessorOnDelete>

  <Role>

Optional:  

This element allows the system to replace one Policy Role with another upon deletion of the original Role. This behavior is described on the old Role defined by this <Role>'s ROLECODE attribute value and this element's value identifies the new Role that replaces it.

Values:

  • role code

    • The valid role code comes from AsCodeRole.

    • This is the replacement role code value.

 

DELETEOLDROLE <SuccessorOnDelete>

Required:

This attribute allows the system to delete the old Policy Role.

Values:

  • Yes

    • The old Policy Role will be deleted.

  • No

    • The old Policy Role will not be deleted.

 

IGNOREONSTATUS <SuccessorOnDelete>

Optional:

This attributes provides the Policy statuses where Roles cannot be replaced.

Values:

  • comma-delimited list

    • The valid status codes come from AsCodeStatus.

<Ordinal>

  <Role>

Optional:

This element allows Policy Roles to be displayed in a specific order by providing an ordinal value.  Lower ordinal values are ordered before higher ordinal values.  Roles defined with an ordinal value are ordered and presented before Roles without an ordinal value which are ordered alphabetically by client name.

Values:

  • integer

    • Value must be unique among the other roles defined in this rule.

    • Value must be positive.

<Fields>

  <Role>

Optional:

This structure allows dynamic field configuration. 

See Fields Element

 

<Events>

  <Role>

Optional:

This structure allows Events configuration on the Role screen.  The common definition of the Events element configuration, widely used in other system areas, applies to the RoleScreen and is expanded for this rule only.

See the Action/Events page for an explanation of the elements and attributes generally available for Events configuration.

 

<Event>

 

<Events>

Required, Repeatable:

This element describes a single event and is repeated for each event needed by the Role.

 

 

TYPE

<Event>

Required:

This attribute indicates a type of event.  Generally event types are ONLOAD, ONCHANGE and ONSUBMIT.  In this rule these event types exist with the following modification/addition.

Values:

  • ONCLICK

    • The event is triggered upon user click of the Delete or Add buttons.

 

BUTTON

<Event>

Optional:

This attribute defines the button to pair with the ONCLICK type event.

Values:

  • Add

    • Pairs the event to the selection of the Add button.

  • Delete

    • Pairs the event to the selection of the Delete button

<ScreenMath>

  <Role>

Optional:

This structure allows configuration of screen math that support the Events and Actions in this Rule.

See ScreenMath Element.

 

<Actions>

  <Role>

Optional:

This structure allows configuration of a series of actions.

See Action/Events element.

 

<RoleViews>

  <RoleScreen>

Optional:

This structure provides a definition for customized views of the Policy Roles.  The absence of this definition will result in a default view containing columns of Client Name, Role, Status, Tax ID and Percent Box.

 

<DisplayStatus>

  <RoleViews>

Optional:

Identifies a list of Role statuses that are included in the customized view.  This structure applies to all customized Role views.  By default, only active Roles are included in the view.

 

<Status>

  <DisplayStatus>

Required, Repeatable:

This element provides a single Role status to include in the customized view.  This element is repeated to include multiple Role statuses.

Values:

  • code value from AsCodeRoleStatus.

<View>

  <RoleViews>

Required, Repeatable:

This structure defines a single customized Role view.  The rule can contain multiple views by repeating this element's structure.  OIPA presents the view's name in a drop down for user selection.

 

 

NAME

<View>

Required:

This attribute provides a name to the view.  View names are presented in the screen as an option in a drop down and displayed in the configured order.

Values:

  • literal

<Roles>

 

<View>

Required:

This element structure provides the Policy Roles to be included in the view.

 

 

ALLROLES <Roles>

Optional:

This attribute indicates that all Policy Roles will be included in the specific view. 

Values:

  • No

    • default

    • The Roles to include are further defined in the following <Role> elements.

  • Yes

    • All Policy Roles satisfying the <DisplayStatus> filter will be displayed. This configuration is not compatible with the following <Role> elements.

<Role>

  <Roles>

Optional, Repeatable:

This element defines a Policy Role to include in the view.  The element is repeated to include multiple Policy Roles in the view.

Values:

  • code value from AsCodeRole and also exists in this rule's definition.

<Table>

  <View>

Optional:

See Tables element.

The groups available to this table are Role, RoleField, Client, ClientField, Policy and PolicyField.

 

XML Schema

<RoleScreen>
    <Filter>
        <Conditions SECURITYGROUP="[list]" TYPE="Exclusion" OPERATOR="[AND | OR]">
            <Condition ENTITY="[ASPOLICY | APOLICYFIELD]">[SQL predicate]</Condition>
            <Condition ENTITY="[ASROLE | ASROLEFIELD | ASCLIENT | ASCLIENTFIELD]" FIELDNAME="[column name | field name]" VALUE="[literal]">[SQL predicate | empty]</Condition>
            <Condition>...</Condition>
        </Conditions>
        <Conditions>...</Conditions>
    </Filter>
    <Role ROLECODE="[code]" NAME="[literal]">
        <SuccessorOnDelete DELETEOLDROLE="[Yes | No]" IGNOREONSTATUS="[list]">[role code]</SuccessorOnDelete>
        <Ordinal>[integer]</Ordinal>
        <Fields>...</Fields>
        <Events>
            <Event TYPE="[... | ONCLICK]" BUTTON="[Add | Delete]">...</Event>
            <Event>...</Event>
        </Events>
        <ScreenMath>...</ScreenMath>
        <Actions>...</Actions>
    </Role>
    <Role>...</Role>
    <RoleViews>
        <DisplayStatus>
            <Status>[status code]</Status>
            <Status>...</Status>
        </DisplayStatus>
        <View NAME="[literal]">
            <Roles ALLROLES="No">
                <Role>[role code]</Role>
                <Role>...</Role>
            </Roles>
            <Table>...</Table>
        </View>
        <View NAME="[literal]">
            <Roles ALLROLES="Yes"></Roles>
            <Table>...</Table>
        </View>
        <View>...</View>
    </RoleViews>
</RoleScreen>

XML Example

<RoleScreen>
    <Role ROLECODE="82" NAME="Writing Agent"/>
    <!-- Insured -->
    <Role ROLECODE="37" NAME="Insured">
        <Ordinal>01</Ordinal>
        <Fields>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
        </Fields>
    </Role>
    <Role ROLECODE="72" NAME="Participant Member">
        <Ordinal>01</Ordinal>
        <Fields>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
        </Fields>
    </Role>
    <!-- Annuitant -->
    <Role ROLECODE="27" NAME="Annuitant">
        <Fields>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
        </Fields>
    </Role>
    <!-- Trustee -->
    <Role ROLECODE="67" NAME="Trustee">
        <Fields>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
        </Fields>
        <Events>
            <Event TYPE="ONCLICK" BUTTON="Add">
                <Math ID="FinalActionScreenMath"/>
                <ActionSet ID="FinalValidation"/>
            </Event>
            <Event TYPE="ONSUBMIT">
                <Math ID="FinalActionScreenMath"/>
                <ActionSet ID="FinalValidation"/>
            </Event>
        </Events>
        <ScreenMath>
            <Math ID="FinalActionScreenMath" GLOBAL="No">
                <MathVariables>
                    <MathVariable VARIABLENAME="AsCodeClientType_Individual" TYPE="VALUE" DATATYPE="TEXT">02</MathVariable>
                    <MathVariable VARIABLENAME="ClientIsDeceased" TYPE="VALUE" DATATYPE="BOOLEAN">false</MathVariable>
                    <MathVariable VARIABLENAME="ClientType" TYPE="EXPRESSION" DATATYPE="TEXT">Client:TypeCode</MathVariable>
                    <MathIF IF="ClientType = AsCodeClientType_Individual">
                        <MathVariable VARIABLENAME="ClientDOD" TYPE="EXPRESSION" DATATYPE="DATE">Client:DateOfDeath</MathVariable>
                        <MathIF IF="Not IsEmpty(ClientDOD)">
                            <MathVariable VARIABLENAME="ClientIsDeceased" TYPE="VALUE" DATATYPE="BOOLEAN">true</MathVariable>
                        </MathIF>
                    </MathIF>
                </MathVariables>
            </Math>
        </ScreenMath>
        <Actions>
            <ActionSet ID="FinalValidation">
                <Condition IF="FinalActionScreenMath:ClientIsDeceased = true">
                    <Action ACTIONTYPE="ERROR">The Client You Have Selected is Deceased and Cannot be Added.</Action>
                </Condition>
            </ActionSet>
        </Actions>
    </Role>
    <!-- Beneficiary  -->
    <Role ROLECODE="23" NAME="Beneficiary">
        <Fields>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
        </Fields>
    </Role>
    <!-- Joint Annuitant   -->
    <Role ROLECODE="07">
        <Fields>
            <Field>
                <Name>Filler</Name>
                <Display/>
                <DataType>Blank</DataType>
            </Field>
        </Fields>
        <Events>
            <Event TYPE="ONCLICK" BUTTON="Add">
                <Math ID="FinalActionScreenMath"/>
                <ActionSet ID="FinalValidation"/>
            </Event>
            <Event TYPE="ONSUBMIT">
                <Math ID="FinalActionScreenMath"/>
                <ActionSet ID="FinalValidation"/>
            </Event>
        </Events>
        <ScreenMath>
            <Math ID="FinalActionScreenMath" GLOBAL="No">
                <MathVariables>
                    <MathVariable VARIABLENAME="AsCodeClientType_Individual" TYPE="VALUE" DATATYPE="TEXT">02</MathVariable>
                    <MathVariable VARIABLENAME="ClientIsDeceased" TYPE="VALUE" DATATYPE="BOOLEAN">false</MathVariable>
                    <MathVariable VARIABLENAME="ClientType" TYPE="EXPRESSION" DATATYPE="TEXT">Client:TypeCode</MathVariable>
                    <MathIF IF="ClientType = AsCodeClientType_Individual">
                        <MathVariable VARIABLENAME="ClientDOD" TYPE="EXPRESSION" DATATYPE="DATE">Client:DateOfDeath</MathVariable>
                        <MathIF IF="Not IsEmpty(ClientDOD)">
                            <MathVariable VARIABLENAME="ClientIsDeceased" TYPE="VALUE" DATATYPE="BOOLEAN">true</MathVariable>
                        </MathIF>
                    </MathIF>
                </MathVariables>
            </Math>
        </ScreenMath>
        <Actions>
            <ActionSet ID="FinalValidation">
                <Condition IF="FinalActionScreenMath:ClientIsDeceased = true">
                    <Action ACTIONTYPE="ERROR">The Client You Have Selected is Deceased and Cannot be Added.</Action>
                </Condition>
            </ActionSet>
        </Actions>
    </Role>
    <RoleViews>
        <DisplayStatus>
            <Status>01</Status>
            <Status>98</Status>
            <Status>99</Status>
        </DisplayStatus>
        <View NAME="All Roles View">
            <Roles ALLROLES="Yes"/>
            <Table>
                <Column ALIGN="Left">
                    <Display>Client Name</Display>
                    <Name>Name</Name>
                    <Group>Client</Group>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="Left">
                    <Display>Role</Display>
                    <Name>RoleCode</Name>
                    <Group>Role</Group>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="LEFT" FORMAT="Text">
                    <Display>Status</Display>
                    <Group>Role</Group>
                    <Name>StatusCode</Name>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="Left">
                    <Display>Tax ID</Display>
                    <Name>TaxID</Name>
                    <Group>Client</Group>
                    <DataType>Text</DataType>
                </Column>
            </Table>
        </View>
        <View NAME="Insured Role">
            <Roles ALLROLES="No">
                <Role>37</Role>
            </Roles>
            <Table>
                <Column ALIGN="Left">
                    <Display>Owner Name1</Display>
                    <Name>Name</Name>
                    <Group>Client</Group>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="Left">
                    <Display>Role</Display>
                    <Name>RoleCode</Name>
                    <Group>Role</Group>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="Left">
                    <Display>Tax ID</Display>
                    <Name>TaxID</Name>
                    <Group>Client</Group>
                    <DataType MASK="TaxID">Text</DataType>
                </Column>
            </Table>
        </View>
        <View NAME="Owner Role ">
            <Roles ALLROLES="No">
                <Role>30</Role>
            </Roles>
            <Table>
                <Column ALIGN="Left">
                    <Display>Owner Name</Display>
                    <Name>Name</Name>
                    <Group>Client</Group>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="Left">
                    <Display>Role</Display>
                    <Name>RoleCode</Name>
                    <Group>Role</Group>
                    <DataType>Text</DataType>
                </Column>
                <Column ALIGN="Left">
                    <Display>Tax ID</Display>
                    <Name>TaxID</Name>
                    <Group>Client</Group>
                    <DataType MASK="TaxID">Text</DataType>
                </Column>
            </Table>
        </View>
    </RoleViews>
</RoleScreen>