I have a form that is constructed with ARD (what we are calling "mining form") and generator variables.
There is a variable defined as a dropdown list, which I populate with an ASLIST function.
I was getting strange behavior on the form, when I clicked the dropdown, it would just turn orange, but no error was visible.
I turned on the logging on Chrome and found this exception: (this is not my real SQL result, but a simple case to reproduce this for you)
angular.js:11655 Error: [ngRepeat:dupes] http://errors.angularjs.org/1.3.15/ngRepeat/dupes?p0=item%20in%20suggestionList.items%20track%20by%20track(item)&p1='B'&p2=%7B%22displayText%22%3A%22%20Second%22%2C%22valueText%22%3A%22'B'%22%7D
at angular.js:38
at angular.js:24631
at Object.fn (angular.js:14173)
at n.$digest (angular.js:14308)
at n.$apply (angular.js:14571)
at angular.js:16308
at e (angular.js:4924)
at angular.js:5312
Since the call referenced "dupes" it made me think to look at my SQL, and i did have an error, which resulted in duplicates. when I fixed it so no dupes, the error went away and the dropdown box worked.
So here is how to reproduce it:
First Construct a portal form that uses variables exposed via ARD. I leave that to you.
Make a variable that is a dropdown list (i used multi-select, but shouldn't mattter which type)
For the variable, here are 3 scenarios for what to put in the variable value:
1. This one works fine, i have hardcoded the list, but I have B as duplicate.
@aslist(@list(A,B,C,D,E,B)@)@
In either case, the dropdown works, and displays A,B,C,D,E and B appears only once.
In the portal, if I click VALIDATE, it will show me A,B,C,D,E,B with green checkmark.
2. So adding some complexity, by using the COLUMN1/COLUMN2 option, this one also works fine
@aslist(@list(FIRST ['A'],Second ['B'],Third ['C'],Fourth ['D'], Fifth ['E'])@)@
I do not have any duplicates here.
the dropdown will display FIRST, Second, Third, Fourth, Fifth in the dropdown
3. this is the one that will fail. in this case i have hardcoded the dupes, but my SQL returned dupes so that is what happened to me.
@aslist(@list(FIRST ['A'],Second ['B'],Third ['C'],Fourth ['D'], Fifth ['E'], Second ['B'])@)@
This is very similar to #1 above, i have B twice, but this time i am using the COL1/COL2 stuff
The portal variable validate is also a green checkmark.
but when i run this form, the dropdown list is throwing that angular error as above.
I easily resolved my own SQL issue, but this seems to be some gap in the validation of list ,or not properly handling when the list has duplicates.
I did experiment with some different variations, and have intermittent strange results. my simplified example above does show the issue, even though it's not a real-life example.
Release : 4.9
Component : CA Test Data Manager - Others
The above patch fixed the issue.
Note - All the duplicate display value and key value will be removed now.
e.g @aslist(@list(A ['Z'],A ['Y'],A ['X'],B ['X'])@)@
o/p in list could be any one from A ['Z'] OR A['Y'] OR A ['X'] AND B ['X']
A -> Z and B -> X