Open Record/Request

Makes an existing record or find request available for editing if the current user has record-editing privileges.

Options 

None.

Compatibility 

Product Supported
FileMaker Pro Yes
FileMaker Go Yes
FileMaker WebDirect Yes
FileMaker Server Yes
FileMaker Cloud Yes
FileMaker Data API Yes
Custom Web Publishing Yes

Originated in version 

6.0 or earlier

Description 

This script step makes an existing record available (in Browse mode) or an existing find request available (in Find mode) for editing if the current user has record-editing privileges. When performed on a record, this script step verifies that the user has sufficient access privileges to edit the record. If the user has the proper privilege set, FileMaker Pro attempts to prevent others from simultaneously editing or deleting the record. Once locked, the record is considered "opened" and may be edited.

If an error occurs (for example, if the current user has insufficient access privileges, the record is currently locked by another user, or the record is open in another window), FileMaker Pro generates an error message, which may be captured using the Set Error Capture script step and the Get(LastError) function. (Opening a find request will not return an error, because requests can't be locked by other users.)

Important  Because any attempt to modify a field or a record will also attempt to open the record for editing, in most cases you will not need to use the Open Record/Request script step to open a record explicitly. But when using the Go to Record/Request/Page script step to enter a field or record, use the Open Record/Request script step first to obtain a write lock.

Example 1 

Prints the current invoice if the user has the privileges to edit it.

Copy
Go to Layout ["Print Invoices"]
Open Record/Request
If [Get ( LastError ) = 0]
    Print [With dialog: On]
End If
Go to Layout [original layout]

Example 2

Checks if the current user's account access has the privilege to edit records. If not, asks if the user wants to log in to a different account.

Note  This script does not run properly if it is set to run with full access privileges because this allows any account to open the record.

Copy
Set Error Capture [On]
Go to Layout ["Invoice Details"]
Open Record/Request
If [Get ( LastError ) = 200]
    Show Custom Dialog ["You cannot edit this record. Do you want to re-login?"]
    If [Get ( LastMessageChoice ) = 1]
        Re-Login [With dialog: On]
    Else
        Go to Layout [original layout]
    End If
End If