cancel
Showing results for 
Search instead for 
Did you mean: 

Linking slow when using application plan configured for multiple screens

Joshua_Jones
Confirmed Champ
Confirmed Champ

My institution has recently developed new application plans for use with UI 5.4.  In creating these new plans, we decided to try configuring one plan for each department that is configured to work with all of the screens they may use.  Users are reporting that this drastically slows down the linking time, as the plan now has to also determine what screen is being used.  Have others noticed this same sort of slow down, and has anybody discovered a solution?

10 REPLIES 10

Robert_Gratz
Star Contributor
Star Contributor
Approximately how many screens have you learned in one departmental application plan? Is there one screen that is the primary screen you are linking values from and the other screens are used for the view action (aka binoculars search)? Any screen you are linking values from should be at the top of the Screens list. You can move any screens position up and down from the toolbar directly under the Screens header in the screen pane within the application plan designer. By moving the primary linking screen to the top, linking performance should increase.

Mike_Johnson
Star Contributor
Star Contributor

Are you using shifting value scripts? If not, do it, drastically reduces your linking time.

Here is a copy/paste of my shifting value script to find VOUM. Replace VOUM with whatever screen you are looking for.

Size = IECapture(true, 0)
anchorvalue = IEFindValue("_FORM", 0, false)
formName = IEGetValueByIndex(anchorvalue + 1)
If formName = "VOUM" Then
ScreenFound = true
End If

This next bit is probably less valuable... but this is how you find the voucher amount... notice how I have to code for each screen(first is how it shows up on VOUI, second is on VOUM I think). This is programmer preference. I didn't want to have to copy more scripts to prod (scripts don't migrate with the tool) so I embeded all the code into 1, for each screen element that is across multiple screens.

Size = IECapture(true, 0)
anchorvalue = IEFindValue("VOU.INVOICE.AMT", 0, false)
If anchorvalue < 1 Then
anchorvalue = IEFindValue("VOU.TOTAL.AMT", 0, false)
End If
newValue = IEGetValueByIndex(anchorvalue + 1)
WorkingValue = newValue

HTH

I have not been using this sort of script. I created some scripts for use in finding the screen identifiers, and at least in testing the dictionary that seemed to increase the time taken to pull back information. Is this faster in real world use than it is in testing the dictionary?

Looking at using scripts to pull in the fields... That would be a lot of scripts to manage, and without there being some form of folders for scripts within Perceptive Content, that just seems cumbersome to me. Perhaps the speed benefits are not seen unless using scripts across the board, and not relying on the standard capturing of data fields?

For each value you should see a speed increase when switching to scripting... but it may be negligible depending on the number of values you are looking for.

If each search takes 3 seconds, and you have 30 searches happening, it takes 90 seconds to complete.

If you change 1 search to the faster way, reducing that one by 1 second, you won't see the difference, as it's still 88 seconds to search them all.

If you change them all to the script, it'll reduce the time to 30 seconds from 90...

the above are all fictitious numbers, in my testing of UI4 and UI5 app plans, the scripting in UI5 drops the time per screen/dictionary item by a factor of 5. In UI4 it was negligible, but still worth doing because the values shift when the context records were populated.