My Oracle Support Banner

Variables Embedded In Multifield Validation Messages Fail After Index 0 (Doc ID 2738531.1)

Last updated on DECEMBER 21, 2020

Applies to:

Oracle Insurance Policy Administration J2EE - Version 11.2.0.27 and later
Information in this document applies to any platform.

Symptoms

On : 11.2.0.27 version, General

ACTUAL BEHAVIOR
---------------
When ScreenMath validations are configured for Multifields, each index of the multifield is expected to run its own copy of the validations, and present its own copy of any errors encountered, independently.
Error messages support embedded ScreenMath variable references, by wrapping the variable in $$$ strings, like so: "$$$OnSubmitMath:ClientName$$$ does not have an address".
The variable referenced should be pulled from the cited ScreenMath section ("OnSubmitMath" in the above example) which was run for that same multifield index.
This functionality functioned as expected in v10. After transferring the same code to the v11 platform, all indices pull their dynamic data from the instance of ScreenMath which was run by the first multifleld index only. Each index of the multifield should have access to its own math variables only.


EXPECTED BEHAVIOR
-----------------------
Embedded variables within error messages should be pulled from the same instance of ScreenMath as the multifield which caused the error.


STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1. Create a transaction which contains multifields.

2. In the multifield rule, add an integer field, and set the End parameter to something greater than 1.

3. Add an OnSubmit event, which calls OnSubmitMath and OnSubmitActions.

4. In OnSubmitMath:
 - Create a boolean variable to control the presentation of the error.
 - Create a variable which contains the content of the integer field. Ensure that the variable name is different from the fieldname for the sake of this test.
 - If the integer value is greater than 10, set the boolean to true, else set it to false.

5. In OnSubmitActions:
 - Evaluate whether the boolean variable was set to true.
 - If so, present an error message which contains a reference to the integer variable from the ScreenMath: "The submitted value of $$$OnSubmitMath:IntegerVariableName$$$ is greater than the permitted maximum."

6. Create an instance of the transaction, and fill out multiple multifields:
 - Set the integer content of the first index of the multifield to 5 (any number which should not cause a validation error)
 - Set the next index's field value to 15 (any value greater than 10 to trigger the error).

7. Click OK to trigger the OnSubmit logic.

8. The expected error should say "The submitted value of 15 is greater than the permitted maximum."

*** Observe that it instead reads "The submitted value of 5 is greater than the permitted maximum."

Through testing with more complex validations and sets of independent validations, we have been able to verify that the type of error which is triggered is correctly based on the multifleld being evaluated (essentially, this error message was definitely created by the math values in OnSubmitMath from index 1, instead of index 0), but that the variable referenced within the error message itself does NOT come from the same math instance, as would be expected.



Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.