AnsweredAssumed Answered

Possible Dependency Tree Bug

Question asked by philmodjunk on Dec 2, 2014
Latest reply on Dec 3, 2014 by philmodjunk

Summary

Possible Dependency Tree Bug

Product

FileMaker Pro

Version

FMP 13, FM Server 12, Citrix Terminal Server

Operating system version

Windows 7 and Windows Server

Description of the issue

Clicking a simple button to set a number field to a new simple value seems to cause FileMaker to run through every record in the table before refreshing the window even though the current found set may be less than 10 records.

There are no aggregate calculations (no summary fields, no aggregate functions...) that seem to be a factor.

Changing the button option to perform a script to do the same field value change followed by an immediate commit records step then keeps this "mass refresh" from happening.

Note that there are several buttons that each assign a different integer to the same local field and I can trigger this result even if I click different copies of this button in the current record.

Steps to reproduce the problem

We have a table with over one million records but less than 10 in the current found set.

Original Button option does a fairly simple set field step:

Set Field [LayoutTable::NumberField ;
Let ( x = 1 ; If ( x > LayoutTable::MinValue and x < LayoutTable::MaxValue ; x ; layoutTable::NumberField ) ]

Scripted version:
Set Field [LayoutTable::NumberField ;
Let ( x = Get ( ScriptParameter ) ; If ( x > LayoutTable::MinValue and x < LayoutTable::MaxValue ; x ; layoutTable::NumberField ) ]
Commit Records

Expected result

That both the original version and the scripted version would quickly update the field and a calculation field displaying a graphic would display a different graphic to show that the field's value has changed.

Actual result

With the first version, clicking the second button, does not matter if you click two buttons in the same record or two different records, results in a delay of nearly a minute during which the application window shows "not responding" and the cursor shows as an hour glass (no spinner, no coffee cup).

With the scripted "fix", the affected fields update almost instantly.

Configuration information

Recreated user complaint by remotely accessing database via Remote Desktop from over a hundred miles from the server.

Layout is a list view layout with a sub summary layout part and a modest number of layout text objects that have conditional formatting or Hide Object when settings. (But none reference the field being changed by these button clicks.)

Workaround

Set Field [LayoutTable::NumberField ;
Let ( x = Get ( ScriptParameter ) ; If ( x > LayoutTable::MinValue and x < LayoutTable::MaxValue ; x ; layoutTable::NumberField ) ]
Commit Records

Outcomes