AnsweredAssumed Answered

Script Step Failure when developer has 'Manage Database - Specify Calculation' Dialog box open

Question asked by alan.stirling on Nov 30, 2011
Latest reply on Dec 12, 2011 by philmodjunk

Summary

Script Step Failure when developer has 'Manage Database - Specify Calculation' Dialog box open

Product

FileMaker Pro

Version

Tested on FileMaker Pro 10 and 11 with FileMaker Server 10 and 11

Operating system version

Mac OS 10.6.8 and 10.7.2

Description of the issue

If I open the 'Manage Database' dialog box and then open the 'Specify Calculation' dialog box for any calculation field in a particular table, other users on the same system, running scripts containing the 'New Record' script step in the same table, fail to generate New Records.

Instead, if my script starts with an 'Error Capture On' step, the script skips the 'New Record' step and then continues, overwriting data in the currently selected record. An error code 303 is generated, but there is no warning dialog box.

Even if the script doesn't have an 'Error Capture On' step, the warning dialog shows at the time the 'New Record' Script step is encountered, which can be after a long script has started, which has been designed to complete without encountering a fatal error halfway through.

This clandestine data loss is unacceptable!

Steps to reproduce the problem

On two machines, open a multi-user database system which is being served using FileMaker Server 10 or 11.

On one machine open the 'Manage Database' window and then the 'Specify Calculation' dialog box for a calculated field in that table.  Now on the other machine run a script that has been designed to add records to the same table. 

If the script starts with an 'Error Capture On' step, there will be no sign that the 'New Record' step has been skipped. If there is no 'Error Capture On' step, a dialog box appears, saying that the record cannot be generated because 'User Name' has the 'Manage Database' window open.

Expected result

In 2004, when FileMaker Pro 7 was released, all developers were told that we could work within the 'Manage Database' window, without affecting the operation of the specific database for other users.  This was a much flaunted at the time as a benefit of the change from FileMaker 6 (.fp5) to FileMaker 7 (.fp7).

It is obvious that this situation has now changed - just where is this documented and which other script steps can also be affected - we need to see a list - particularly if the list has more than two entries ('New Record' and "Duplicate Record')

Actual result

DATA LOSS!

In the worst case, this issue will cause record data to be overwritten, with no warnings for the user - what can be worse that that for a database product?

Exact text of any error message(s) that appear

With 'Error Capture On' this issue produces an error code of 303.

With 'Error Capture Off', the issue shows a dialog box explaining that the script step cannot be carried out as a 'User' is working in the 'Manage Database' window (I'm sorry, I didn't write down the actual text of this dialog box).

Configuration information

This has been tested on FileMaker Pro 10.0v3 and 11.0v4, with FileMaker Server 10.0.2.206 and 11.0.3.309, on Macintosh machines running Mac OS 10.6.8 and 10.7.2.

Workaround

Every instance of the 'New Record' or 'Duplicate Record' script step must be prefixed with  'Error Capture On' and followed by an error test If(Get(LastError) and then a carefully designed script exit procedure.

This could occur in any script at any time, so all instances of the offending script steps need to be covered.

Perhaps new systems now have to be designed with a 'Stop New Records' Global Flag, so that any script that might be susceptible to this issue can be halted as soon as it starts once the developer has set this flag -before opening the 'Manage Database' window.

We urgently need to know if this issue affects other script steps apart from 'New Record' and 'Duplicate Record' and where we were supposed to learn about this initially when the situation was first changed.

Outcomes