06-06-2016 03:17 PM
The question isn't (quite) what you think.
Have a Unity Form. Has a dropdown based on a keyword.
I wrote a script against IExternalKeywordDataSetScript and it works fine. But I noticed in Diagnostics it's making two trips, one for each time the user clicks the element. So it's retrieving the full recordset again after the user selects what they want rather than just the first request.
Funny thing: this only happens on Unity Forms. It does NOT happen on a direct Import. So it's definitely something with how Unity Forms executes the External Data Set.
My question: is there some other method that would allow me to populate this dataset without the extra trip against the app server that I'm just not seeing? I saw the Custom Action method, but that appears to be only for fields.
07-10-2016 11:03 AM
After some additional testing, what I want isn't there.
The issue is really with Unity Forms' interface. They're making the call to get the dataset when the user clicks - which is fine. But they're not trapping first whether or not that event has already happened so that they can avoid doing the same call a second time needlessly.
In pseudo code:
This is basically how the regular Import is doing it since it's not making the second call. However that code is written, that should also apply to the Unity Form interface itself, ideally.
I can't script around it because it does need to be a Keyword Data Set, but by making it a Keyword Data Set, it means Unity Forms will always do the same execute when the user clicks it.
The other option would be to add a Custom Action to "Get Data Set From a Script" or something. That way I can throw a condition against it to prevent it from multiple hits.
As a side note, E-Forms does not have this issue because when you set a field as OBDataset, it's pulling back whatever dataset at form load. Slows it down a bit but doesn't need to do multiple calls. Another W in the column there.
06-17-2016 12:57 PM
Hi Marcus
In order to populate a Dataset like you are, an IExternalDatasetScript is the correct process. As for multiple trips to the AppServer, this may be something that is better handled by your first line of support.
I would suggest having a few things ready for them to help speed up the troubleshooting process, before contacting support. They will want you to be able to replicate the issue with a very basic script; possibly with hardcoded values. Additionallity, the Service, Web.Service, and Database Tabs of Diagnostics should be provided as an XML Snapshot of all Tabs.
06-20-2016 05:16 AM
You could try fiddling with the "Filter Select List" custom action in the Unity client which I believe is one trip to the app server after selecting from the first select box.
07-10-2016 10:34 AM
07-10-2016 11:03 AM
After some additional testing, what I want isn't there.
The issue is really with Unity Forms' interface. They're making the call to get the dataset when the user clicks - which is fine. But they're not trapping first whether or not that event has already happened so that they can avoid doing the same call a second time needlessly.
In pseudo code:
This is basically how the regular Import is doing it since it's not making the second call. However that code is written, that should also apply to the Unity Form interface itself, ideally.
I can't script around it because it does need to be a Keyword Data Set, but by making it a Keyword Data Set, it means Unity Forms will always do the same execute when the user clicks it.
The other option would be to add a Custom Action to "Get Data Set From a Script" or something. That way I can throw a condition against it to prevent it from multiple hits.
As a side note, E-Forms does not have this issue because when you set a field as OBDataset, it's pulling back whatever dataset at form load. Slows it down a bit but doesn't need to do multiple calls. Another W in the column there.
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.