Solved

Are UF variables not cached?


I tried to migrate an onpremise InfoPath form to a simplified SPO Nintex Responsive Form (~70 properties).

Unfortunately the loading time is around 1 minute and if I open a second form instance sharepoint results with a throttle page. If the user changes a lookup value, it again requires 30+ seconds to update the whole form

 

The form contains different dependencies for each control: a field may be invisible, readonly based on permissions, status, direct other controls or required lookups. I created many variables to keep control properties simple and not repeat "logic" in each control.

 

Excerp:

18362i1DED08FD2EFE879F.png

 

The RequestReasonKey variable depends on a lookup control and is using the id to retrieve data of another column of the selected option.

The variable is used in a boolean IsStep1G4 and this is further used in IsStep1G4Required

 

18363i99F6D3B8A1089A7B.png

As given by above variables: If the user changes "Request Reason" the following fields changes visibility / readonly / required state

Further dependencies of this cutout:

- Country is a lookup with a filtered view

- Company is a lookup with a filtered view which additionally restricts items by Country

- Location is a lookup with a filtered view which additionally restricts items by Company

- Process is a lookup with a filtered view which additionally restricts items by Location

- Designation is calculated by other columns of the selected lookup items

 

The problem: When opening an existing list entry the form sends 750 requests to SPO. Changing "Request Reasons" sends ~200. ... But most of them are the same again and again: Shouldn´t the variables only recalculated, if the source changes?

18365iA8B8A85DEE72A4D9.png

 

icon

Best answer by nico 4 August 2021, 09:24

View original

2 replies

Userlevel 4
Badge +10

First of all, you can choose the modes with you variable is "recalculate" (new,display or edit).


 


After, if your variable is used in a rule/condition/settings of control, this one will be automaticaly recalulated every time the rule is triggered.  So in your case, you have sevral rules triggered in cascading and that why you have a lot of request.


 


 

This is in line with our observations.


 


However, this is actually not what one (at least I) expects: When creating the Nintex variable, one defines for each form mode whether it should have the behavior of a constant or a variable.
The variable then behaves like a simple function, in which every content is executed at every call - but you would expect an observable, where the re-calculation is only necessary if the source values have changed.


 


In the meantime, we have built the forms using SPFX controls, because the initial requirements contained much more of this type of calculations (at the end, a single control-change by user changes up to ~100 dependend numbers)

Reply