Reference > Script steps reference > Control script steps > Set Variable
 
Set Variable
Purpose 
Sets a local or global variable to a specified value.
See also 
Format 
Set Variable [<variable name> {[<repetition number>]}; Value:<value or formula>]
Options 
Name is the name of the variable you want to create. Prefix the name with $ for a local variable or $$ for a global variable. If no prefix is added, $ is automatically added to the beginning of the name.
Value is the value the variable is set to. You can enter text or specify a calculation.
Repetition is the repetition (index) number of the variable you want to create. If no repetition is specified, the default is 1.
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 8.0
Description 
If a variable doesn’t exist, this script step will create one. A variable name has the same naming restrictions as a field name. For more information, see About naming fields.
Local and global variables can be created and used in calculations.
A local variable can only be used in script steps in the currently executing script. The value in a local variable is cleared when the script exits.
A global variable can be used in a calculation or script anywhere in a file, for example, other scripts or file paths. The value of a global variable is not cleared until the file is closed.
Local and global variables (or even two local variables in different scripts) can have the same name but they are treated as different variables and can store different values.
Example 1 
Creates a related record by using a local variable to copy information into a match field.
Set Variable [$CURRENT_CUSTOMER_ID; Value: Customers::Customer ID]
Go to Layout ["Invoice Details"]
New Record/Request
Set Field [Invoices::Customer ID; $CURRENT_CUSTOMER_ID]
Example 2 
Uses a local variable to save records as Excel or PDF files in the Documents folder.
Show Custom Dialog ["Save the current record as Excel or PDF?"]
If [Get ( LastMessageChoice ) = 1]
Set Variable [$PATH; Value: Get ( DocumentsPath ) & "Invoice " & Invoice::Invoice Number & ".xlsx"]
Save Records as Excel [Restore; With dialog: Off; "$PATH"; Current record]
Else
Set Variable [$PATH; Value: Get ( DocumentsPath ) & "Invoice " & Invoice::Invoice Number & ".pdf"]
Save Records as PDF [Restore; With dialog: Off; "$PATH"; Current record"]
End If
Example 3 
Uses global variable as a toggle to stop a script from being triggered.
Script: Go to Selected Invoice for iOS
Set Variable [$$SCRIPT_TRIGGER; Value: "Off"]
Go to Layout ["Invoice Details iPad"]
Script: Trigger Entering Invoice Details
If [$$SCRIPT_TRIGGER = "Off"]
Set Variable [$$SCRIPT_TRIGGER; Value: "On"]
Exit Script [Text Result: ]
End If
Find Matching Records [Replace; Invoices::Customer Name]
Go to Record/Request/Page [First]
Related topics 
Script steps reference (alphabetical list)
Script steps reference (category list)
About formulas
Defining repeating fields