InquiryScreen
The Inquiry screen enables users to access information via a rules defined format. The rule can be created at the Main Menu, Client level or Policy level. The level determines which screen this Inquiry screen can be accessed from.
OIPA supports TOTAL attribute for the output column specification in the Inquiry screen wherein if the Column Data is numeric, a total of the results would display. The total that referred here is the entire results set, the new attribute "Total" added to the Column will fetch the value results for the numeric column data at the bottom of the grid via configured SQL statement.
OIPA supports Action/event for InquiryScreen rule in order to provide the ability to dictate the various actions as per the events that are detected on the inquiry screen. Below list displays the three different types of action configured for the particular event :
- OnSubmit
- Onchange
- OnLoad
The user can initiate action directly from the inquiry screen. This provides the ability to have a link from the inquiry screens to a related OIPA object like Policy, Client, and Activity that is being reported upon. This is controlled through configuration in the Inquiry Screen rule using a hamburger menu on each line of the result.
Note: When linking to the policy activity screen the <MinimumSegments> configuration in the associated Policy Screen should be checked. When <MinimumSegments> criteria is not met Policy Activity Link is Disabled. Add Another Segment will enable Activities and Segment link on policy and Inquiry Screen. This controls whether a user can access activities.
Note: If SUBMITFORM and FIELD are not configured, InquiryScreen continues to work as before, as these are optional attributes.
Note: Auto-submit does not bypass existing validations. If required fields are incomplete or validation errors exist, the screen displays those messages before results are loaded.
Note: If the same combo field also has other ONCHANGE actions configured, those actions run first and the auto-submit runs last.
As part of the link the corresponding GUID must be identified to the relevant object.
The user must have the ability to return to the inquiry once any action has been performed. OIPA supports this by introducing a new property “AllowMultipleLogin”. If the “AllowMultipleLogin” is set to Yes, the related object screen should open in new tab. If the “AllowMultipleLogin” is set to “No” Inquiry screen will have to open the entity screen in the same tab and so the return will need to rerun the inquiry. Opening a new tab will enable the inquiry results to be retained.
A related GUID must be returned in the Output section of an inquiry will be definable as being a hyperlink.
The new Link configuration will define what links appear in the hamburger menu including the associated GUIDs selected in the related Query.
OIPA allows you to conditionally show or hide individual Result tabs in the InquiryScreen, according to business logic that ScreenMath evaluates. The new optional SHOW attribute on the <Result> element manages this feature.
DISPLAYONLOAD Compatibility:
When the <Result> element includes the SHOW attribute, its value determines the tab's visibility, overriding the DISPLAYONLOAD setting at the InquiryScreen level. If SHOW is not specified, tab visibility will follow the standard DISPLAYONLOAD behavior as in previous versions.
Backward Compatibility:
If the SHOW attribute is not configured on a <Result> element, the behavior of InquiryScreen tabs remains unchanged from prior OIPA versions. This ensures existing configurations work without modification.
<Result SHOW="[Math Variable | Yes | No]" DISPLAY="[Literal]">
-
SHOW (optional, case-insensitive):
-
Yes – Show this tab.
-
No – Hide this tab.
-
MathVariable – The MathVariable’s value (Yes or No, set in ScreenMath) determines visibility at runtime.
-
-
DISPLAY: Must be unique for each Result tab.
The SHOW attribute is re-evaluated during:
-
ONLOAD (when the screen is first rendered),
-
ONCHANGE (when relevant field values change such as Combo selection), and
-
ONSUBMIT (when a search or submit action is triggered).
Example:
If SHOW="ShowTabA", and ShowTabA is set to "Yes" by ScreenMath, the tab displays.
If ShowTabA is set to "No" then the tab is hidden.
| Element/Tag | Attributes | Parent Element | Description | Element/Attribute Value |
|---|---|---|---|---|
|
<InquiryScreen> |
|
The opening and closing elements of the rule. |
||
| SUBMITFORM |
Optional: It allows an ONCHANGE event on a Combo field to trigger the result loading process immediately, without redefining ONSUBMIT or requiring the user to click on the OK button. |
Yes: Attribute will perform form submit action without user clicking OK button
|
||
| FIELD | Identifies the field from the <Fields> section of InquiryScreen configuration with a data type COMBO only. It will be used to trigger the form submit action SUBMITFORM every time when there is change on the combo field. | |||
|
DISPLAYONLOAD |
Controls the display of the Output section. |
Yes: When the screen is loaded the output
section will display immediately. No: The output section will only display when the OK button is clicked. |
||
|
<Input> |
|
<InquiryScreen> |
Defines the Input section of the Inquiry screen. |
|
|
<Fields> |
|
<Input> |
Defines the Input fields. See Fields. |
|
|
<Events> |
|
See Action/Events section. |
||
|
<ScreenMath> |
|
See ScreenMath Element. |
||
|
<Output> |
|
<InquiryScreen> |
Defines the Output section of the Inquiry screen. Configured differently for field display and table display. |
|
|
<Result> |
|
<Output> |
|
|
|
DISPLAY |
Name of the result set. |
String: | ||
| SHOW |
This new optional attribute at the Result level controls whether a Result tab is shown or hidden, based on the ScreenMath configuration. Yes = Does not hide the <Result> tab based on ScreenMath configuration. No = Hides the <Result> tab based on ScreenMath configuration. MathVariable = VARIABLENAME. Literal text string. |
|||
|
<Fields> |
|
<Result> |
Defines the output fields. See Fields. |
|
|
<Query> |
|
<Result> |
|
|
|
TYPE |
Math: Indicates a field display with a MathVariables section. The Query element is a descendent of the Result XML element. SQL: Indicates a table display supported by a SQL statement that may return multiple columns and multiple rows. The Query element is a descendent of a Results XML element. |
|||
|
VALUATION |
Yes: Allows valuation to execute and make valuation fields available to the MathVariables section. No:No valuation is executed. The valuation fields are not available to the MathVariables section. |
|||
|
VALUATIONDATE |
Allows the configuror to indicate processing valuation with a date different than the current system date. By default, valuation is processed by the InquiryScreen with the current system date. The following options allow configuration to indicate dating the valuation one day either before or after the current system date. NEXTSYSTEM: When this option is configured the system provides a system date one day after the current system date to the valuation engine. PREVIOUSSYSTEM: When this option is configured the system will provide a system date one day prior to the current system date to the valuation engine. |
|||
|
VALUEFINANCIALENTRY
|
Optional: 'Yes' or 'No', or a Field with a value of 'Yes' or 'No'. |
Yes : Financial entry calculations and math will need to be executed in PolicyValues BR. IsValueFinancialEntry context value will be assigned a values Yes. No: No financial entry calculation in PolicyValues IsValueFinancialEntry will have value No. Default Value is "No" |
||
|
<Fields> |
<Result> |
Used when Query TYPE="SQL" to define the table. Standard column attributes are available. |
||
|
<MathVariables> |
|
<Query> |
Used when Query TYPE="MATH" Standard math variables functionality is available. |
|
|
<Table> |
|
<Result> |
Used with Query TYPE="SQL" to indicate that results will be returned in a table format. See Table for more details. |
|
|
TOTAL |
Optional Attribute: Yes/No |
Yes: Displays a sum of a numeric column at the bottom of the column. No: No does not display a sum for the column. Default Value is “No”. |
||
|
<Links> |
|
Optional/Repeatable Note: Additional information regarding <Links> functionality can be found in InquiryScreen overview above. |
||
|
<Link> |
|
Identify the related Group and Object GUID to be lined to. |
||
|
GROUP |
GROUP: Defines the object group the field belongs to. |
|||
|
TYPE |
TYPE: Define whether the link is to the Object screen or Activity Screen. | |||
|
KEY |
KEY: Defines the related GUID for the link. | |||
|
<Query> |
|
<Results> |
|
|
|
TYPE |
Math: Indicates a field display with a MathVariables section. The Query element is a descendent of the Result XML element. SQL: Indicates a table display supported by a SQL statement that may return multiple columns and multiple rows. The Query element is a descendent of a Results XML element. |
|||
|
VALUATION |
Yes: Allows valuation to execute and make valuation fields available to the MathVariables section. No: No valuation is executed. The valuation fields are not available to the MathVariables section. |
|||
|
VALUATIONDATE |
Allows the configuror to indicate processing valuation with a date different than the current system date. By default, valuation is processed by the InquiryScreen with the current system date. The following options allow configuration to indicate dating the valuation one day either before or after the current system date. NEXTSYSTEM: When this option is configured, the system provides a system date one day after the current system date to the valuation engine. PREVIOUSSYSTEM: When this option is configured, the system will provide a system date one day prior to the current system date to the valuation engine. |
|||
|
VALUEFINANCIALENTRY |
Optional: 'Yes' or 'No', or a Field with a value of 'Yes' or 'No'.
|
Yes: Financial entry calculations and math will need to be executed in PolicyValues BR. IsValueFinancialEntry context value will be assigned a values Yes. No: No financial entry calculation in PolicyValues IsValueFinancialEntry will have value No. Default Value ="No" |
||
|
<Fields> |
|
Used when Query TYPE="SQL" to define the table. Standard column attributes are available. |
||
|
<MathVariables> |
|
<Query> |
Used when Query TYPE="MATH" Standard math variables functionality is available. |
XML Example 1
<InquiryScreen DISPLAYONLOAD="Yes">
<Input>
<Fields>
<Field>
<Name>AsOfDate</Name>
<Display>As of Date</Display>
<DataType>Date</DataType>
<Disabled>Yes</Disabled>
<Calculated TYPE="SYSTEM"></Calculated>
</Field>
</Fields>
</Input>
<Output>
<Result DISPLAY="Details">
<Query TYPE="MATH" VALUATION="YES">
<MathVariables>
<MathVariable VARIABLENAME="PlanGUIDMV" TYPE="FIELD" DATATYPE="TEXT">Plan:PlanGUID</MathVariable>
<MathVariable VARIABLENAME="IssueDate" TYPE="FIELD" DATATYPE="DATE">Policy:PolicyIssueDate</MathVariable>
<MathVariable VARIABLENAME="IssueStateMV" TYPE="SQL" DATATYPE="TEXT">SELECT IssueStateCode FROM AsPolicy WHERE PolicyGUID='[Policy:PolicyGUID]'</MathVariable>
<MathVariable VARIABLENAME="QualType" TYPE="POLICYFIELD" DATATYPE="TEXT">QualType</MathVariable>
<MathVariable VARIABLENAME="QualTypeDesc" TYPE="SQL" DATATYPE="TEXT">SELECT ShortDescription FROM AsCode WHERE CodeName='AsCodeQualifier' AND CodeValue = '[QualType]'</MathVariable>
<MathVariable VARIABLENAME="Qualified" TYPE="VALUE" DATATYPE="TEXT">02</MathVariable>
<MathVariable VARIABLENAME="Replacement" TYPE="VALUE" DATATYPE="TEXT">Replacement</MathVariable>
<MathVariable VARIABLENAME="NonReplacement" TYPE="VALUE" DATATYPE="TEXT">NonReplacement</MathVariable>
<MathVariable VARIABLENAME="ReplacementCriteria" TYPE="IIF" EXPRESSION="QualTypeDesc = Qualified" DATATYPE="TEXT">Replacement,NonReplacement</MathVariable>
<MathVariable VARIABLENAME="FreeLookDays" TYPE="SQL" DEFAULT="0" DATATYPE="INTEGER">SELECT IntValue FROM (SELECT AsMapValue.IntValue FROM AsMapValue JOIN AsMapGroup ON AsMapGroup.MapGroupGUID = AsMapValue.MapGroupGUID AND AsMapGroup.MapGroupDescription = 'FreeLookDays' JOIN AsMapCriteria ON AsMapCriteria.MapValueGUID = AsMapValue.MapValueGUID AND AsMapCriteria.MapCriteriaName = 'PlanGUID' AND (AsMapCriteria.TextValue = '[PlanGUIDMV]' OR AsMapCriteria.TextValue = '*') JOIN AsMapCriteria Q ON Q.MapValueGUID = AsMapValue.MapValueGUID AND Q.MapCriteriaName = 'ReplacementType' AND (Q.TextValue='[ReplacementCriteria]') JOIN AsMapCriteria R ON R.MapValueGUID = AsMapValue.MapValueGUID AND R.MapCriteriaName ='StateCode' AND (R.TextValue = 'IssueStateMV' OR R.TextValue='*') ORDER BY R.TextValue DESC) WHERE ROWNUM = 1</MathVariable>
<MathVariable VARIABLENAME="DefaultFreeLookEndDate" TYPE="FUNCTION" DATATYPE="DATE">DaysAdd(IssueDate,FreeLookDays)</MathVariable>
<MathVariable VARIABLENAME="FreeLookEndDate" TYPE="SQL" DATATYPE="DATE" DEFAULT="DefaultFreeLookEndDate">select AsPolicyField.DateValue from AsPolicyField JOIN AsPolicy ON AsPolicyField.PolicyGUID =AsPolicy.PolicyGUID WHERE AsPolicy.PolicyGUID='[Policy:PolicyGUID]' AND AsPolicyField.FieldName='FreeLookEndDate'</MathVariable>
<MathVariable VARIABLENAME="BandVariable" TYPE="POLICYFIELD" DATATYPE="TEXT">BandVariable</MathVariable>
<MathVariable VARIABLENAME="PolicyGrowth" TYPE="POLICYFIELD" DATATYPE="DECIMAL">Valuation:Policy:PolicyGrowth</MathVariable>
</MathVariables>
</Query>
<Fields>
<Field>
<Display>Issue Date</Display>
<Name>IssueDate</Name>
<DataType>Date</DataType>
</Field>
<Field>
<Display>Qualifier Type</Display>
<Name>QualTypeDesc</Name>
<DataType>Text</DataType>
</Field>
<Field>
<Display>Freelook End Date</Display>
<Name>FreeLookEndDate</Name>
<DataType>Date</DataType>
</Field>
<Field>
<Display>Band</Display>
<Name>BandVariable</Name>
<DataType>Text</DataType>
</Field>
</Fields>
</Result>
<Result DISPLAY="Fund Information">
<Table>
<Results>
<Query TYPE="MATH" VALUATION="Yes">
<MathVariables>
<MathVariable VARIABLENAME="FundGUIDMV" TYPE="EXPRESSION" DATATYPE="TEXT">FundGUID</MathVariable>
<MathVariable VARIABLENAME="FundCashValue" TYPE="FIELD" DATATYPE="DECIMAL">Valuation:Fund:FundGUID:CashValue</MathVariable>
<MathVariable VARIABLENAME="FundCashValue" TYPE="FIELD" DATATYPE="DECIMAL">Valuation:Fund:FundGUID:FundName</MathVariable>
<MathVariable VARIABLENAME="RatioVM" TYPE="EXPRESSION" DATATYPE="DECIMAL">Valuation:Fund:FundGUID:RatioVM</MathVariable>
<MathVariables>
</Results>
<Column ALIGN="CENTER">
<Name>Fund</Name>
<Display>FundName</Display>
<DataType>Text</DataType>
</Column>
<Column ALIGN="CENTER">
<Name>CashValue</Name>
<Display>Cash Value</Display>
<DataType>Text</DataType>
</Column>
<Column ALIGN="CENTER">
<Name>RatioVm</Name>
<Display>Ratio</Display>
<DataType>Text</DataType>
</Column>
</Table>
</Result>
</Output>
</InquiryScreen>
XML Example 2
<InquiryScreen>
<Input>
<Fields>
<Field>
<Name>ClientType</Name>
<Display>Client Type</Display>
<DataType>Combo</DataType>
<Disabled>No</Disabled>
<Hidden>No</Hidden>
<DefaultValue>00</DefaultValue>
<Query TYPE="SQL">SELECT CodeValue,ShortDescription FROM AsCode Where
CodeName='AsCodeClientType' AND CodeValue IN ('01','02')</Query></Field>
<Field>
<Name>LegalResidenceCountryCode</Name>
<Display>Legal Residence Country</Display>
<DataType>Combo</DataType>
<Query TYPE="SQL">SELECT CountryCode,CountryShortName FROM
AsCountry</Query>
</Field>
</Fields>
</Input>
<Output>
<Result DISPLAY="CLIENT LIST ">
<Table>
<Results>
<Query TYPE="SQL">SELECT FirstName,LastName,LegalResidenceCountryCode,BirthCountryCode,CitizenshipCount
ryCode,clientGuid from AsClient where TypeCode='[ClientType]' and
LegalResidenceCountryCode='[LegalResidenceCountryCode]'</Query>
</Results>
<Links>
<Link Group="CLIENT" Key="clientGuid"></Link>
</Links>
<Column ALIGN="RIGHT">
<Display>First Name</Display>
<Name>FirstName</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="RIGHT">
<Display>Last Name</Display>
<Name>LastName</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="RIGHT">
<Display>Legal Residence</Display>
<Name>Legal Residence Country</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="RIGHT">
<Display>Birth Country</Display>
<Name>BirthCountryCode</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="RIGHT">
<Display>Citizenship Country</Display>
<Name>CitizenshipCountryCode</Name>
<DataType>Text</DataType>
</Column>
</Table>
</Result>
</Output>
</InquiryScreen>
XML Example 3
<InquiryScreen DISPLAYONLOAD="Yes" SUBMITFORM='Yes' FIELD='ClientType'>
<Input>
<Fields>
<Field>
<Name>ClientType</Name>
<Display>Client Type</Display>
<DataType>Combo</DataType>
<DefaultValue>00</DefaultValue>
<Query TYPE="SQL">SELECT CodeValue, ShortDescription FROM AsCode WHERE CodeName = 'AsCodeClientType'</Query>
</Field>
</Fields>
</Input>
<Output>
<Result SHOW="True" DISPLAY="Clients">
<Table>
<Results>
<Query TYPE="SQL">SELECT ClientNumber, FirstName, LastName FROM AsClient WHERE ClientType = '[ClientType]'</Query>
</Results>
<Column>
<Display>Client Number</Display>
<Name>ClientNumber</Name>
<DataType>Text</DataType>
</Column>
<Column>
<Display>First Name</Display>
<Name>FirstName</Name>
<DataType>Text</DataType>
</Column>
<Column>
<Display>Last Name</Display>
<Name>LastName</Name>
<DataType>Text</DataType>
</Column>
</Table>
</Result>
</Output>
</InquiryScreen>
XML Example 4
<InquiryScreen DISPLAYONLOAD="Yes">
<Input>
<Fields>
<Field>
<Name>LegalResidenceCountryCode</Name>
<Display>Legal Residence Country</Display>
<DataType>Combo</DataType>
<DefaultValue>US</DefaultValue>
<Query TYPE="SQL">
SELECT CountryCode, CountryShortName FROM AsCountry
</Query>
</Field>
<Field>
<Name>ClientType</Name>
<Display>Client Type</Display>
<DataType>Combo</DataType>
<DefaultValue>00</DefaultValue>
<Query TYPE="SQL">
SELECT CodeValue, ShortDescription
FROM AsCode
WHERE CodeName = 'AsCodeClientType'
AND CodeValue IN ('01','02','05','20','91')
</Query>
</Field>
<Field>
<Name>Transaction</Name>
<Display>Transaction Type</Display>
<DataType>Combo</DataType>
<DefaultValue>Transaction1</DefaultValue>
<Query TYPE="SQL">
SELECT TransactionCode, TransactionDesc FROM AsTransaction
</Query>
</Field>
</Fields>
<Events>
<Event TYPE="ONCHANGE" FIELD="Transaction">
<Math ID="ResultVisibilityMath"/>
<ActionSet ID="OnTransactionChange"/>
</Event>
</Events>
<ScreenMath>
<Math ID="ResultVisibilityMath">
<MathVariables>
<!-- Default value (in case no MathIF is triggered) -->
<MathVariable VARIABLENAME="MV1" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
<MathVariable VARIABLENAME="MV2" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
<MathVariable VARIABLENAME="MV3" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
<!-- Transaction-specific tab visibility -->
<MathIF IF="Transaction='Transaction1'">
<MathVariable VARIABLENAME="MV1" TYPE="VALUE" DATATYPE="TEXT">Yes</MathVariable>
<MathVariable VARIABLENAME="MV2" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
<MathVariable VARIABLENAME="MV3" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
</MathIF>
<MathIF IF="Transaction='Transaction2'">
<MathVariable VARIABLENAME="MV1" TYPE="VALUE" DATATYPE="TEXT">Yes</MathVariable>
<MathVariable VARIABLENAME="MV2" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
<MathVariable VARIABLENAME="MV3" TYPE="VALUE" DATATYPE="TEXT">Yes</MathVariable>
</MathIF>
<MathIF IF="Transaction='Transaction3'">
<MathVariable VARIABLENAME="MV1" TYPE="VALUE" DATATYPE="TEXT">Yes</MathVariable>
<MathVariable VARIABLENAME="MV2" TYPE="VALUE" DATATYPE="TEXT">Yes</MathVariable>
<MathVariable VARIABLENAME="MV3" TYPE="VALUE" DATATYPE="TEXT">No</MathVariable>
</MathIF>
</MathVariables>
</Math>
</ScreenMath>
<Actions>
<ActionSet ID="OnTransactionChange">
<!-- Configuror can define as required. This is already supported -->
<Action ACTIONTYPE="WARNING">Transaction value changed.</Action>
</ActionSet>
</Actions>
</Input>
<Output>
<Result SHOW="ResultVisibilityMath:MV1" DISPLAY="Client Details 1">
<Table>
<Results>
<Query TYPE="SQL">
SELECT FirstName, LastName, TaxId, LegalResidenceCountryCode, BirthCountryCode, CitizenshipCountryCode
FROM AsClient
WHERE TypeCode='[ClientType]'
AND LegalResidenceCountryCode='[LegalResidenceCountryCode]'
</Query>
</Results>
<Column ALIGN="LEFT">
<Display>Client Number</Display>
<Name>ClientNumber</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="LEFT">
<Display>First Name</Display>
<Name>FirstName</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="LEFT">
<Display>Last Name</Display>
<Name>LastName</Name>
<DataType>Text</DataType>
</Column>
</Table>
</Result>
<Result SHOW="ResultVisibilityMath:MV2" DISPLAY="Client Details 2">
<Table>
<Results>
<Query TYPE="SQL">
SELECT FirstName, LastName, TaxId, LegalResidenceCountryCode, BirthCountryCode, CitizenshipCountryCode
FROM AsClient
WHERE TypeCode='[ClientType]'
AND LegalResidenceCountryCode='[LegalResidenceCountryCode]'
</Query>
</Results>
<Column ALIGN="LEFT">
<Display>Client Number</Display>
<Name>ClientNumber</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="LEFT">
<Display>First Name</Display>
<Name>FirstName</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="LEFT">
<Display>Last Name</Display>
<Name>LastName</Name>
<DataType>Text</DataType>
</Column>
</Table>
</Result>
<Result SHOW="ResultVisibilityMath:MV3" DISPLAY="Client Details 3">
<Table>
<Results>
<Query TYPE="SQL">
SELECT FirstName, LastName, TaxId, LegalResidenceCountryCode, BirthCountryCode, CitizenshipCountryCode
FROM AsClient
WHERE TypeCode='[ClientType]'
AND LegalResidenceCountryCode='[LegalResidenceCountryCode]'
</Query>
</Results>
<Column ALIGN="LEFT">
<Display>Client Number</Display>
<Name>ClientNumber</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="LEFT">
<Display>First Name</Display>
<Name>FirstName</Name>
<DataType>Text</DataType>
</Column>
<Column ALIGN="LEFT">
<Display>Last Name</Display>
<Name>LastName</Name>
<DataType>Text</DataType>
</Column>
</Table>
</Result>
</Output>
</InquiryScreen>