Reference > Script steps reference > Fields script steps > Set Field
 
Set Field
Purpose 
Replaces the entire contents of the specified field in the current record with a calculation result.
See also 
Format 
Set Field [<table::field>; <formula>]
Options 
Specify target field specifies the field whose contents you want to replace. If no field is specified and a field is selected in Browse mode or Find mode, that field is used.
Calculated result is the calculation whose results will be inserted by this script step.
Compatibility 
 
Where the script step runs 
Supported 
FileMaker Pro 
Yes 
FileMaker Server 
Yes 
FileMaker Go 
Yes 
Custom Web Publishing 
Yes 
FileMaker WebDirect 
Yes 
Runtime solution 
Yes 
Originated in 
FileMaker Pro 6.0 or earlier
Description 
The result of the calculation must match the field type. For example, you can't assign a date calculation to a container field.
The specified field doesn’t have to be on the current layout.
If the result of the calculation doesn’t match the target field type, and the validate option for the field is set to Always, the field will not be set and an error code is returned (which can be captured with the Get(LastError) function).
When possible, the Set Field script step makes the record active and leaves it active until the record is exited or committed. Scripts that use a series of Set Field script steps should group these steps together if possible, so that subsequent Set Field script steps can act on the record without having to lock the record, download and upload data, index the field, and so on, after each individual Set Field script step. These functions and record level validation are performed after the record has been exited or committed.
If the target field is a repeating field, you can specify a repetition number or generate a repetition number from a calculated expression.
Example 1 
Inserts the sum of the invoices' grand totals into the Statistics field.
Set Field [Customers::Statistics; Sum ( Invoices::Grand Total )]
Example 2 
Demonstrates when to use Set Field instead of Set Field By Name to simplify scripts.
#If the target field does not change, use the Set Field script step.
Set Field [Customers::Work Phone; Credit Collection::Phone Number]
#If you use Set Field by Name with a target field that does not change,
#you must surround the target field in quotation marks so it evaluates as a literal string
#and returns the specified field name. If you do not use quotation marks,
#Set Field by Name evaluates the specified field and uses the result as the target field.
#If the result does not specify a field name, nothing happens.
Set Field by Name ["Customers::Work Phone"; Credit Collection::Phone Number]
Related topics 
Set Field By Name script step
Defining calculation fields
Script steps reference (alphabetical list)
Script steps reference (category list)