Segment
The Segment business rule dictates the data that is stored for each segment instance. Segment level roles and role views are defined in this rule. Configuration of the rule is similar to screen rules but allows for additional validations and calculations by invoking CalculateGeneral business rules.
Note: External clients are displayed in one of two ways:
- Using the existing Client Search Screen on the Policy and Segment Role screens in OIPA
- Using a customized type of external client search screen.
Element/Tag | Definition | Attribute | Element/Attribute Value and Description |
---|---|---|---|
<Segment> |
The opening and closing tag for the rule. |
|
|
<Filter> | Restrict access to Segments for certain security groups based on segment related data. | ||
<Subsections> |
Optional element: The fields configured inside subsections will be grouped together and the display can be collapsed or expanded. |
SECTIONNODES |
Optional attribute:Expanded/Collapsed Collapsed is the default value. |
<Subsection> |
Repeatable element: Required if <Subsections> element is configured. |
TITLE |
Optional attribute:String The title to be displayed on the subsection header. |
SECTIONNODES |
Optional attribute: Expanded/Collapsed Collapsed is the default value. |
||
<Fields> <Fields> |
Screen entry fields. Click the Fields link for configuration details. |
|
|
<Roles> |
Optional:Opening tag for the Roles section of configuration. When absent, no roles are attached to the segment. |
||
<Role> |
Required, Repeatable:Need to make available to CopyBook. |
Note: The order in which roles are configured in the XML will dictate the order in which the role checkboxes display on the Find Client and New Client tabs of the Segment Role screen. Roles on these tabs are ordered left to right, top to bottom across three columns. As the presentation of checkboxes or role drop down field is defined in configuration, the same ordering will apply to the drop down list if the field is used. | |
EXTERNAL |
Optional: Defines the role as an external role.The only value supported is "Yes". |
Yes If the attribute is omitted, the default is No. |
|
<ExternalClientRowRetriever> |
Optional: Specifies the class used in the client search for role assignments to populate the result grid. Required if EXTERNAL=“Yes”. |
The name of a class that has been created to implement the external client search. |
|
<CustomScreen> |
Optional: Specifies the name of a class that displays the custom external role screen. Required if EXTERNAL=”Yes” and customized external client search screen is used. |
The name of a class that has been created to implement a customized display of external client search results. |
|
<RoleCode/> |
Required:Identifies role via role code. |
Single Role Code |
|
<Maximum/> |
Optional:Defines the maximum number of roles of a specific role code on a segment. When absent, there is no limit. Note : This element correlates to <RoleCount> in the PolicyScreen. |
Numeric value |
|
<Minimum/> |
Optional:Defines the minimum number of roles of a specific role code on a segment. If element is present without a minimum value, no minimum will be applied. |
Numeric value | |
<ClientType> |
Required:Section to hold one or more client type codes that may be assigned to the role. |
||
<TypeCode/> |
Required, Repeatable:Defines the client type allowed that may be assigned to the role. |
Client type code | |
<RolePercent> |
Optional:Defines the value to which the sum of role percentages for each role must equate. |
Integer from 0 to 100 or *. Default is 100. An asterisk can be used to indicate that the total percent for the associated role can exceed 100%. Each individual record will still have a maximum of 100%, but the total for multiple records on the same Policy Role will be able to exceed 100%. |
|
<AllowZeroPercent/> |
Optional:Allows the role to accept a zero percent value. |
Yes|NoThe default value is No. |
|
<AllowPercent/> |
Optional: Controls the display of the Percent box for the specified role. |
Yes|NoYes: Percent box will display. The default value is Yes. No: Percent box will not display. |
|
<DisableRoleFields> |
Optional:Section to list the policy status that will disable the role fields. When absent or no statuses are listed, the role fields are not disabled. |
||
<DisableStatus/> |
Required, Repeatable:A policy status that will disable the role fields. |
Policy Status code | |
<ClientAssignment> |
Optional:Identifies existing segment and segment role that may be cloned When a role with this element configured is checked on the Find Client tab, the search results will be limited to those client defined by the role's ClientAssignment. |
||
|
CLONEROLEDETAIL |
Optional:Stipulates whether the common role detail is cloned (copied) to the new role. This has no affect to later editing of the new role's detail. Yes: Role detail is copied. No: Role detail is not copied. This is the default. |
|
|
EXCLUDEASSIGNED |
Optional:Indicates that the list of clients generated by <ClientAssignment> is affected by prior assignments of the same role code on the same segment or of the same role code on segments of the same segment name. When the value is Yes, clients already assigned are removed from the client list. Yes: Clients already assigned are removed from the client list. No: The client list is not affected by prior assignments. This is the default value. |
|
<SourceSegment> |
Required, Repeatable:Used with ClientAssignment element to identify the segment from which the role may base client selection and possibly clone common role data. |
||
SEGMENTNAME |
Required:Identifies the source segment(s) by a segment name. |
||
<SegmentRoleCodes> |
Required:A section to identify role codes from the SourceSegment in which to base client selection and possibly clone common role data. |
||
<RoleCode/> |
Required, Repeatable:Identifies the role code from a segment in which to base client selection and possibly clone common role data. |
Valid role code from the source segment. | |
<Ordinal/> |
Optional element:Used to place roles in a specific order. When not used, roles appear in an arbitrary order. |
||
<RoleViews> |
Optional:Opening tag for role view configuration. The absence of RoleViews configuration will result in the display of a default view. |
||
<DisplayStatus> |
Optional:Identifies a list of role statuses that will be available for the views. By default, roles of all statuses are available for the views. |
||
<Status/> |
Required, Repeatable:Identifies a role status that may be displayed for the views. |
Role status | |
<View>
|
Optional, Repeatable:Defines the data display for a view. The contents are available to copybooks. |
||
NAME |
Required:Each view created is named and the name listed in the View element on the Segment Role screen. |
||
<Roles>
|
Required:Configuration will define the roles to be included in the view. |
||
|
ALLROLES |
Optional:Specifies that a view contains all roles. Cannot coexist with the <Role> element. Yes: All roles attached to the segment of the appropriate status will be listed. No: Roles with the appropriate status are defined by one or more <Role> elements. This is the default value. |
|
<Role> |
Required, Repeatable:Defines the role(s) that are included in the view. |
Role Code | |
<Table> |
Optional:Common column definition to define the columns for the view. Available groups are: Role, RoleField, Client, ClientField, Segment, and SegmentField. |
XML Example
<Segment>
<Subsections SECTIONNODES="Expanded">
<Subsection TITLE="SubsectionTitleName1">
<Fields>
<Field>
<Name>SegmentIssueDate</Name>
<Display>Effective Date</Display>
<DataType>Date</DataType>
<Calculated TYPE="SQL">SELECT AsNbCaseField.Datevalue FROM AsNbCaseField WHERE AsNbCaseField.CaseID='[CaseID]' AND FieldName = 'AppSignedDate'</Calculated>
</Field>
<Field>
<Name>SegmentIssueAge</Name>
<Display>Issue Age</Display>
<DataType>Integer</DataType>
<Disabled>Yes</Disabled>
</Field>
<Field>
<Name>RiderPremium</Name>
<Display>Rider Premium</Display>
<DataType>Money</DataType>
</Field>
</Fields>
</Subsection>
</Subsections>
<Roles>
<Role>
<DisableRoleFields>
<DisableStatus>[policy status code]</DisableStatus>
</DisableRoleFields>
<RoleCode>[role code]</RoleCode>
<Maximum>[integer]</Maximum>
<ClientType>
<TypeCode>[client type code]</TypeCode>
</ClientType>
<AllowZeroPercent>Yes|No</AllowZeroPercent>
<AllowPercent>Yes|No</AllowPercent>
<RolePercent>[integer]</RolePercent>
<Minimum>[integer]</Minimum>
<ClientAssignment CLONEROLEDETAIL="Yes|No" EXCLUDEASSIGNED="Yes|No">
<SourceSegment SEGMENTNAME="[segment name]">
<SegmentRoleCodes>
<RoleCode>[role code]</RoleCode>
<RoleCode>[role code]</RoleCode>
</SegmentRoleCodes>
</SourceSegment>
</ClientAssignment>
<Ordinal>[integer]</Ordinal>
</Role>
<!-- Option 1 - Using OIPA screens-->
<Role EXTERNAL="Yes">
<ExternalClientRowRetriever> com.adminserver.web.ASWebappClassLoader</ExternalClientRowRetriever>
<RoleCode>90</RoleCode>
<RoleCount>*</RoleCount>
<RolePercent>100</RolePercent>
<ClientType>01</ClientType>
</Role>
<!-- Option 2 - Using custom screen
<Role EXTERNAL="Yes">
<ClientRowRetriever> com.adminserver.web.ASWebappClassLoader </ClientRowRetriever>
<CustomScreen>com.test.ExternalClientSearchScreen</CustomScreen>
<RoleCode>90</RoleCode>
<RoleCount>*</RoleCount>
<RolePercent>100</RolePercent>
</Role> -->
</Roles>
<Buttons>
<Button>Save</Button>
</Buttons>
<RoleViews>
<DisplayStatus>
<Status>00</Status>
<Status>99</Status>
</DisplayStatus>
<View NAME="[name of the view]">
<Roles ALLROLES="Yes|No">
<Role>[role code|*]</Role>
</Roles>
<Table>[common column definition]</Table>
</View>
</RoleViews>
<Events>
<Event TYPE="ONLOAD">
<ActionSet ID="CheckForBaseCoverage"></ActionSet>
<ActionSet ID="CheckForInsuredRole"></ActionSet>
</Event>
</Events>
<ScreenMath>
<Math ID="Math" GLOBAL="Yes">
<MathVariables>
<MathVariable VARIABLENAME="One" TYPE="VALUE" DATATYPE="INTEGER">1</MathVariable>
<MathVariable VARIABLENAME="BaseSegmentCount" TYPE="SQL" DATATYPE="INTEGER">SELECT COUNT(*) FROM AsNbSegment JOIN AsSegmentName ON AsNbSegment.SegmentNameGUID = AsSegmentName.SegmentNameGUID WHERE AsNbSegment.CaseID = '[CaseID]' AND AsSegmentName.TypeCode = '04'</MathVariable>
<MathVariable VARIABLENAME="InsuredCount" TYPE="SQL" DATATYPE="INTEGER">SELECT COUNT(*) FROM AsNbRole JOIN AsNbCaseRole ON AsNbCaseRole.RoleID = AsNbRole.RoleID WHERE AsNbCaseRole.CaseID = '[CaseID]' AND AsNbRole.RoleCode = '03' AND AsNbRole.StatusCode = '01'</MathVariable>
</MathVariables>
</Math>
</ScreenMath>
<Actions>
<ActionSet ID="CheckForBaseCoverage">
<Condition IF="Math:BaseSegmentCount < Math:One">
<Action ACTIONTYPE="ERROR">Base Coverage must be added to case before adding Waiver Of premium coverage.</Action>
</Condition>
</ActionSet>
<ActionSet ID="CheckForInsuredRole">
<Condition IF="Math:InsuredCount < Math:One">
<Action ACTIONTYPE="ERROR">Insured must be added to case before adding Waiver Of Premium coverage.</Action>
</Condition>
</ActionSet>
</Actions>
</Segment>