Reference > Script steps reference > Control script steps > Perform Script
 
Perform Script
Purpose 
Performs a script that is defined in the current file or in another FileMaker Pro file.
See also 
Format 
Perform Script ["<script name>"; Parameter: <parameter>]
Options 
<script name> specifies the script you want to perform.
Optional script parameter specifies a script parameter for the specified script.
See Specify Script dialog box.
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 
Partial 
Originated in 
FileMaker Pro 6.0 or earlier
Description 
There is no need to open an external file when using a script in it—FileMaker Pro opens it for you.
You can use separate scripts to break complex tasks into smaller segments, which are often easier to troubleshoot. You can also save time by putting common tasks like printing or exporting records into separate scripts, which can then be accessed by more than one script. For example, you might want to use the same page setup and printing options in several scripts. By defining those steps once and saving them in separate scripts, you make it easy to access those steps many times.
Use script parameters to pass text or numbers into a script. When a parameter is specified, that parameter may be accessed within a script or passed to other script steps using the Get(ScriptParameter) function.
Script parameters:
exist within the parent script only unless explicitly passed to the sub-script. If your script calls another script, parameters in the called script are independent of parameters in the parent script.
exist only for the duration of the script. Script parameters are reset each time a script is performed.
can be used (but not modified) within a script and can be passed along to sub-scripts by using the Get(ScriptParameter) function as the parameter for the sub-script. You can also specify different parameters each time the sub-script is called using Perform Script. Changing the parameters passed to a sub-script does not modify the value of the parameters returned from Get(ScriptParameter) in the parent script.
can contain multiple values separated by carriage returns. Use the LeftValues function, MiddleValues function, and RightValues function to isolate a specific parameter.
Tip  If you've performed an external script and you want to return to the original file, add an Enter Browse Mode step or Go to Layout step right after the Perform Script step in the original file, so that the script returns to the original file.
Notes 
If you are using FileMaker Pro Advanced to define a custom menu item that performs a script, select the script and optional script parameters. For more information, see Defining custom menus (FileMaker Pro Advanced).
For scripts run via FileMaker WebDirect or Custom Web Publishing, the files containing the scripts must be hosted on the same FileMaker Server and have the appropriate extended privileges enabled to permit access. See Editing extended privileges for a privilege set.
A runtime solution can perform an external script only if the external file is bound to the solution.
Example 1 
Runs the "Print Invoice Report" script with no parameters.
Go to Layout ["Invoice Report"]
Perform Script ["Print Invoice Report"]
Example 2 
Uses a field value, Customer Name, as the parameter. Invoices for the current customer are returned in a new window with the Invoice Report layout.
Main script: Current Customer Invoices
Find Matching Records [Replace; Invoices::Customer ID]
#Calls the "View Customer Invoices" sub-script defined below
Perform Script ["View Customer Invoices"; Parameter: Invoices::Customer Name]
Sub-script: View Customer Invoices
New Window [Style: Document; Name: "Customer: " & Get ( ScriptParameter ); Using layout: "Invoice Report" (Invoices)]
Sort Records [Restore; With dialog: Off]
Related topics 
Perform Script and script parameter examples
Script steps reference (alphabetical list)
Script steps reference (category list)
Defining custom menus (FileMaker Pro Advanced)
About formulas