ClientSearchScreen
This business rule allows a user-initiated client search by any data column in AsClient. The search results are also configurable and will display in a table format.
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.
Important: Both the search criteria (Fields & FixedFields) and results (Columns) will accept mask attributes in the DataType elements. Refer to the Fields and Tables sections to see mask attribute configuration.
Note: The AddressScreen rule should be used to dictate the contents of address column. Ordinals are not mandatory, but if specified, it dictates the order of sorting on initial load of the results.
| Element/Tag | Parent Element | Attribute | Definition |
|---|---|---|---|
|
<ClientSearchScreen> |
|
The required opening and closing tags. |
|
|
<Filter> |
<ClientSearchScreen> |
||
|
<Conditions> |
<Filter> |
SecurityGroup |
Exclusion condition definition:
Comma separated security group names:
|
|
<Condition> |
<Conditions>
|
ENTITY RELATIONSHIPKEY |
Repeatable Specifies the table to be used for the filter. Only requied when ENITITY is CLIENTRELATIONSHIP OR CLIENTRELATIONSHIPFIELD. Should be set to either Primary or Secondary |
|
Repeatable Specifies the field name to be used. For the main tables, this would be the column name. For Field tables this would be the field name. |
|||
|
Specifies the value to search on the attribute should correspond to the datatype of the field: TextValue/ IntValue/ FloatValue/ DateValue |
|||
|
<Events> |
<ClientSearchScreen> |
Optional: Identifies configurable events for the rule. |
|
|
<Event> |
<Events> |
Required, Repeatable:
|
|
|
<Event> |
TYPE |
ONLOAD Required: This attribute indicates the screen's state that may trigger a configurable action. The only applicable type is ONLOAD. Other types cause a system exception. |
|
|
<Math> |
<Event> |
Optional, Repeatable: This element identifies a <Math> section that to be executed for the <Event> trigger. There is no practical need to have multiple <Math> sections under <ScreenMath>. |
|
|
<Math> |
ID |
literal Required: The attribute identifes the <Math> section that to be executed upon the <Event> trigger. The value is the name of a defined<Math> element under the <ScreenMath> section. |
|
|
<QuerySet> |
<Event> |
Required, Repeatable: This element identifies an <Action> to be executed by the <Event>. There is no practical need to define multiple <QuerySet> elements. |
|
|
<QuerySet> |
ID |
literal Required: This attribute identifies the <Action>, by its ID attribute, to execute for the <Event> trigger.
|
|
|
<QuerySet> |
FIELD |
TypeCode Required: This attribute identifies the field that to be populated with the values returned by the <Action>. There is only one field that may be updated by <Events> in this rule. |
|
|
<ScreenMath> |
<ClientSearchScreen> |
Optional: OIPA's common screen math functionality with access to the extended activity/transaction context. |
|
|
<Math> |
<ScreenMath> |
Required, Repeatable: This provides a section of configured logic that establishes variables for use in the associated <Actions> element. There is no practical use for repeating the element in this rule. |
|
|
<Math> |
ID |
literal Required: Provides a name for the Math section. Access to the <Math>'s variables require prefixing the <Math>'s name. |
|
|
<Math> |
GLOBAL |
Yes, No Optional: Allows the variables in the <Math> section to be visible throughout the rule in all Client Type configuration. Applicable values are Yes and No. The default value is No. If multiple <Math> elements have GLOBAL="Yes", only the first defined element gets executed. |
|
|
<Actions> |
<ClientSearchScreen> |
Optional: A section to contain actions that may be performed by the triggered <Event>s on this screen. |
|
|
<QuerySet> |
<Actions> |
Required, Repeatable: This element's definition results in the data that will populate the field identified by the <Event>'s attribute. |
|
|
<QuerySet> |
ID |
literal Required: Provides a name for the QuerySet. |
|
|
<Client> |
<ClientSearchScreen> |
|
Required, Repeatable Element: Indicates the opening of the Client field descriptions and related values. Used to search for different types of clients specified in the TypeCode attribute. In addition, it also allows for the ability to search external clients from within the Client Search screen and perform actions on that external client like any other client type. |
|
<Client> |
TYPECODE |
Required
Attribute: |
|
|
<Client> |
EXTERNAL |
Optional: Defines the client type as an external client. The only value supported is "Yes". If the attribute is omitted, the default is No. "External" Indicates if the type of client is external, the client search will be performed on an outside data source. Retrieves external client info from another system through a real-time web service from within the existing client search screen. |
|
|
<ExternalClientSearchRetriever> |
<Client> |
|
The name of a class that has been created to implement the external client search. Optional: Specifies the class used in the client search for role assignments to populate the result grid. Required if EXTERNAL=“Yes” and existing Client Search Screen is used. |
|
<Search> |
<Client> |
|
Required
and Repeatable Element: |
|
<Fields> |
<Search> |
|
|
|
<Results> |
<Client> |
|
Required: Defines the results. This element provides the return of the search and the data in the Results override the fixed fields. |
|
<Table> |
<Results> |
|
Controls formatting of results display. See Table Element section. |
|
<Column> |
<Table> |
The container element for column configuration. |
|
|
<Display> |
<Column> |
Defines the header for the search result table column. |
|
|
<Name> |
<Column> |
|
Specifies the database column in which the field values are stored. |
|
<Group> |
<Column> |
Indicates the table/screen that stores the field being referenced. The value used should be appropriate for the screen being configured. The name of the database table that holds the relevant records. Examples: Activity |
|
|
<DataType> |
<Column> |
|
String Defines the datatype of the field. |
|
<DataType> |
MASK |
Optional: Used to specify the mask that will validate and format the field data for display purposes. Any mask name that has been defined. |
|
|
<OrderBy> |
<Column> |
|
Optional, repeatable element: Specifies a structure to define an ordering ability to the data in the table. This element is repeatable only when the <Name> element has a value of "Name" and the <Group> element has a value of "Client," or when the <Name> element has a value of "Address" and the <Group> element has a value of "Address." |
|
<OrderBy> |
ORDINAL |
Required attribute: Specifies priority of the column among the columns being sorted. An integer indicating the sort order of the column. |
|
|
<OrderBy> |
ORDER |
Optional attribute: Specifies the direction of the sort with respect to the value of each column's ORDINAL attribute. ASCENDING: The columns will sort in ascending order. This is the default value. DESCENDING: The columns will sort in descending order. |
|
|
<OrderBy> |
COLUMN |
A database column name from AsClient or AsAddress Optional attribute: This attribute is only valid and processed by the system for "Name=Name" and "Group=Client" and "Name=Address" and "Group=Address". |
Additional Common Fields Available for Configuration
Because client screens are often required to hold a wide range of information not displayed on any other screens in OIPA, they have a number of configurable fields not available to other screens. The following chart summarizes these fields, their configurability and their behavior.
| Fields | Hidden if not Configured | Able to be Disabled | Able to be Renamed | OnChange Generator | CanGenerate Errors | OnChange/OnLoad/OnSubmit Receiver |
|---|---|---|---|---|---|---|
| TypeCode | ✔1 | |||||
| CompanyName | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| LastName | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| FirstName | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| MiddleInitial | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AlternateName1 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AlternateName2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AlternateName3 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AlternateName4 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AlternateName5 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Prefix2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Suffix2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AdditionalPrefix | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| AdditionalSuffix | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Title2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Sex | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| MaritalStatus3 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| DateOfBirth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| DateOfDeath | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TaxIDType2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TaxID | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| BirthCountryCode2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| CitizenshipCountryCode2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| BirthRegionCode2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| PrimaryPhone | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TextField1 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TextField2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| CheckBox1 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| CheckBox2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Radio1 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Radio2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Combo12 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Combo22 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
Date1 |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Date2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| LegalResidenceCountryCode | ✔1 |
1 TypeCode and LegalResidenceCountryCode can only be renamed by using system translation keys.
2 These fixed fields are drop-down fields that will derive their values from their corresponding code names.
3 Marital Status will be a radio field.
XML Schema
<ClientSearchScreen>
<Filter>
<Conditions SecurityGroup="[security role list]" Type="[Exclusion]" Operator="[And | Or]">
<Condition Entity="[table name]">[string]</Condition>
<Condition Entity="[table name]">[string]</Condition>
<Condition Entity="[CLIENTRELATIONSHIP | CLIENTRELATIONSHIPTFIELD]" RelationshipKey="[Primary | Secondary]">[string]</Condition>
<Condition Entity="[CLIENTRELATIONSHIP | CLIENTRELATIONSHIPTFIELD]" RelationshipKey="[Primary | Secondary]">[string]</Condition>
</Conditions>
</Filter>
<Events>
<Event TYPE="ONLOAD">
<Math ID="[literal]"></Math>
<QuerySet ID="[literal]" FIELD="TypeCode"></QuerySet>
</Event>
</Events>
<ScreenMath>
<Math ID="[literal]" GLOBAL="[Yes|No]">. . .</Math>
</ScreenMath>
<Actions>
<QuerySet ID="[literal]">. . .</QuerySet>
</Actions>
<Client TYPECODE="[code value]" EXTERNAL="[Yes | No]">
<ExternalClientSearchRetriever>[class name]</ExternalClientSearchRetriever>
<Search>
<Fields>
<Field>
<Name>[literal]</Name>
<Display>[literal]</Display>
<DataType>[literal]</DataType>
<Group>[entity]</Group>
</Field>
<Field>. . .</Field>
</Fields>
</Search>
<Results DEFAULTRESULTS="[Yes | No]">
<Table>
<Column ALIGN="[LEFT | RIGHT | CENTER]">
<Display>[literal]</Display>
<Name>[literal]</Name>
<Group>[entity]</Group>
<DataType MASK="[mask name]">[Text | Integer | Date | Decimal]</DataType>
<OrderBy ORDINAL="[integer]" ORDER="[ASCENDING | DESCENDING]" COLUMN="[name]"></OrderBy>
</Column>
<Column>. . .</Column>
</Table>
</Results>
</Client>
<Client>. . .</Client>
</ClientSearchScreen>
XML Example
<ClientSearchScreen>
<Filter>
<Conditions SecurityGroup = "AlamereGroupSuper,AlamereTest" type ="Exclusion" Operator = "AND" >
<Condition Entity = "ASCLIENTFIELD">Fieldname = 'Employee' and TextValue = 'GuideStone'</Condition>
<Condition Entity = "ASCLIENTRELATIONSHIP" RELATIONSHIPKEY ="Primary">Fieldname = 'Status' and TextValue = 'FullTime'</Condition>
</Conditions>
</Filter>
<Client TYPECODE="90" EXTERNAL="Yes">
<ExternalClientSearchRetriever>com.adminserver.web.ASWebappClassLoader</ExternalClientSearchRetriever>
<Search>
<Fields>
<Field>
<Name>Name</Name>
<Display>Name</Display>
<DataType>Text</DataType>
<Group>Client</Group>
<InitialFocus>Yes</InitialFocus>
</Field>
</Fields>
</Search>
<Results DEFAULTRESULTS="Yes">
<Table>
<Column WIDTH="150" ALIGN="LEFT">
<Display>Name</Display>
<Name>Name</Name>
<Group>Client</Group>
<DataType>Text</DataType>
<OrderBy ORDINAL="1" ORDER="DESCENDING" COLUMN="LastName"></OrderBy>
</Column>
<Column WIDTH="250" ALIGN="LEFT">
<Display>Address</Display>
<Name>Address</Name>
<Group>Address</Group>
<DataType>Text</DataType>
</Column>
</Table>
</Results>
</Client>
<Client TYPECODE="*">
<Search>
<Fields>
<Field>
<Name>FirstName</Name>
<Display>First Name</Display>
<DataType>Text</DataType>
<Group>Client</Group>
</Field>
<Field>
<Name>LastName</Name>
<Display>Last Name</Display>
<DataType>Text</DataType>
<Group>Client</Group>
</Field>
<Field>
<Name>CompanyName</Name>
<Display>Company Name</Display>
<DataType>Text</DataType>
<Group>Client</Group>
</Field>
</Fields>
</Search>
<Results>
<Table NAME="CLIENT">
<Column ALIGN="CENTER">
<Display>TIN</Display>
<Name>TaxId</Name>
<DataType>Text</DataType>
<Group>Client</Group>
</Column>
<Column ALIGN="CENTER">
<Display>Company Name</Display>
<Name>CompanyName</Name>
<DataType>Text</DataType>
<Group>Client</Group>
<OrderBy ORDINAL="1" ORDER="DESCENDING" COLUMN="CompanyName"></OrderBy>
</Column>
<Column ALIGN="CENTER">
<Display>Last Name</Display>
<Name>LastName</Name>
<DataType>Text</DataType>
<Group>Client</Group>
<OrderBy ORDINAL="2" ORDER="DESCENDING" COLUMN="LastName"></OrderBy>
</Column>
<Column ALIGN="CENTER">
<Display>City</Display>
<Name>City</Name>
<DataType>Text</DataType>
</Column>
</Table>
</Results>
</Client>
</ClientSearchScreen>