The FileMaker Server Script Engine is the component of FileMaker Server responsible for executing FileMaker scripts in dedicated server-side sessions.
Claris generally refers to it as the FileMaker Script Engine, abbreviated FMSE. FileMaker developers may also encounter the older acronym SASE, originally meaning Server-Side Script Execution and reflected in the name of the fmsase server process. “Server-Side Script Engine” is also commonly used as an informal expansion of SASE.
FMSE allows FileMaker Server to perform work without depending on FileMaker Pro or FileMaker Go running on a user’s device. It is used for scheduled automation, background processing, integrations, and operations delegated to the server.
However, FMSE is not the only environment capable of executing FileMaker scripts on FileMaker Server. WebDirect, Custom Web Publishing, the Data API, and OData each have their own execution architecture.
Understanding these distinctions is important when designing, optimizing, and troubleshooting a FileMaker application.
How can a script be executed by FMSE?
There are three principal ways to start a script in the FileMaker Script Engine.
FileMaker Server schedules
An administrator can create a schedule in the FileMaker Server Admin Console. FileMaker Server will then execute the selected script automatically at the configured time.
Scheduled scripts are commonly used to:
- Process or archive transactions
- Synchronize external systems
- Generate documents and reports
- Send notifications
- Import or export information
- Perform recurring maintenance
- Update calculated or aggregated data
Because the schedule is managed by FileMaker Server, the process can run even when no FileMaker user is connected.
Perform Script on Server
A script running in FileMaker Pro, FileMaker Go, FileMaker WebDirect, or another compatible environment can use Perform Script on Server, commonly abbreviated PSOS or PSoS.
Instead of performing the requested work in the current client session, FileMaker creates a new FMSE session on the server.
This is particularly useful when an operation involves large amounts of hosted data. Processing the records directly on the server can avoid transferring them across the network to the user’s device.
The client can wait for the server-side script to finish and retrieve its result, or allow the operation to continue independently.
The related Perform Script on Server with Callback script step allows the client to continue working while the server processes the request. When the operation is complete, FileMaker can run a callback script in the original client session.
OData
The FileMaker OData API can also execute a FileMaker script by sending a request to the corresponding Script resource.
Scripts launched through OData are server-side scripts and behave like scripts started with Perform Script on Server. They therefore run in FMSE processes rather than in the standard OData data-processing session.
This makes OData more than an interface for reading and modifying tables. An external application can call a FileMaker script to perform a complete business operation and receive its result.
Since OData scripts run through FMSE, they share its resources and execution limits with scheduled scripts and PSOS requests.
SASE and FileMaker Server 2026
Historically, server-side scripts shared a limited number of FileMaker Script Engine processes. A long-running or blocked operation could therefore delay other scheduled scripts, PSOS requests, or scripts called through OData.
FileMaker Server 2026 introduces support for multiple SASE processes. Administrators can allow several FileMaker Script Engine processes to run simultaneously, distributing server-side scripting sessions more effectively across available processor cores.
If the maximum number of simultaneous processes has been reached, additional sessions are queued until a process becomes available.
This can improve throughput for servers that handle many concurrent server-side scripts. It does not, however, eliminate the need to optimize those scripts. Increasing concurrency can also increase CPU, memory, disk, and database activity.
The appropriate configuration depends on the server hardware, the applications being hosted, and the nature of their server-side workloads.
Other ways to execute scripts on FileMaker Server
A FileMaker script can execute on the server without necessarily running in FMSE. FileMaker Server contains several components capable of maintaining their own application sessions.
FileMaker Data API
The FileMaker Data API can run a script through a dedicated HTTP endpoint. It can also execute scripts before or after operations such as finding, creating, editing, or deleting records.
These scripts run in the context of the Data API session and use the Data API Engine, not FMSE.
A script started by the Data API can, however, use Perform Script on Server to delegate additional work to FMSE. This is useful when the API needs to return a response quickly while a longer process continues separately.
The distinction matters because the Data API and FMSE have different compatibility, context, logging, and resource considerations.
FileMaker WebDirect
FileMaker WebDirect uses the Web Publishing Engine, or WPE, to translate FileMaker layouts and interactions into a web experience.
The WPE processes the WebDirect user’s scripts, script triggers, clicks, and keyboard interactions. A script started by a button in WebDirect therefore normally runs in that user’s WebDirect session, with its current layout, record, found set, and variables.
It does not automatically run in FMSE merely because WebDirect is hosted by FileMaker Server.
A WebDirect script can nevertheless call Perform Script on Server when part of the work should be transferred to FMSE.
Custom Web Publishing
Custom Web Publishing, including the still-supported XML interface and the deprecated FileMaker PHP API, also uses the Web Publishing Engine.
Scripts called through Custom Web Publishing run in a web publishing session and must use script steps compatible with that environment.
As with WebDirect and the Data API, a Custom Web Publishing script can call Perform Script on Server to delegate processing to FMSE.
Alternative PHP libraries can also provide a more modern interface to FileMaker. Romain Dunand, technical director of fmcloud.fm, has developed an alternative PHP API based on the FileMaker Data API. You can learn more in our article about the FileMaker PHP API for the Data API.
ODBC and JDBC
FileMaker Server can expose hosted databases as ODBC and JDBC data sources. External applications can then use SQL statements to read and modify FileMaker data.
However, ODBC and JDBC do not provide a direct command for executing a FileMaker script. FileMaker does not expose scripts as SQL stored procedures that can be called with a statement such as CALL.
An ODBC or JDBC operation can indirectly initiate an application process, for example by creating a record that is later handled by a scheduled script. But this is an application architecture, not a native ODBC or JDBC script call.
The reverse is also possible: an FMSE script can connect to an external ODBC data source using a data source name configured on the FileMaker Server machine.
The different execution environments
The expression “server-side script” can therefore describe several distinct situations:
| Script origin | Primary execution environment |
|---|---|
| FileMaker Server schedule | FileMaker Script Engine / SASE |
| Perform Script on Server | FileMaker Script Engine / SASE |
| OData script request | FileMaker Script Engine / SASE |
| FileMaker Data API request | Data API Engine |
| FileMaker WebDirect session | Web Publishing Engine |
| Custom Web Publishing XML or PHP | Web Publishing Engine |
| FileMaker Pro or FileMaker Go | FileMaker client |
| ODBC or JDBC connection | No direct FileMaker script execution |
These environments may all operate on the same hosted FileMaker files, but they do not necessarily share the same context, compatibility rules, plug-ins, temporary folders, variables, or resource limits.
A separate FileMaker session
Each FMSE operation runs in a separate FileMaker session. It does not automatically inherit the calling user’s:
- Current layout
- Current record
- Found set
- Sort order
- Open windows
- Local or global variables
- Global field values
A server-side script must establish the context it needs. Relevant information can be passed through a script parameter, after which the script can select the appropriate layout, find the required records, and perform its operation.
This is one of the most common causes of scripts behaving differently on FileMaker Server than they do during testing in FileMaker Pro.
Script-step compatibility
Not every FileMaker script step is supported in every execution environment.
FileMaker Pro’s Script Workspace includes a compatibility indicator that can show whether a step is compatible with FileMaker Server, WebDirect, Custom Web Publishing, the Data API, or other clients.
A script intended for FMSE should be checked using the Server compatibility option.
Server-side scripts also need explicit error handling. There is no user sitting in front of FMSE to respond to a dialog box or notice that an operation has failed. The script should capture errors, write useful diagnostic information, and return a structured result.
FileMaker Server records information about server-side execution in its log files, including the script event log and FMSE error log.
Why run scripts in FMSE?
Running a script through FMSE can provide several advantages.
Performance
Data-intensive operations can often be executed more efficiently close to the hosted database, without transferring large amounts of information to a remote client.
Automation
Schedules allow important processes to run automatically without depending on a user or workstation.
Background processing
An application can delegate a long operation to the server while allowing the user or calling service to continue working.
Centralized integrations
API calls, imports, exports, notifications, and synchronization processes can run from a controlled server environment.
Server-side plug-ins
Compatible plug-ins can be installed for use by FMSE, making their functions available to scheduled scripts and other scripts executed by the FileMaker Script Engine.
Designing reliable server-side scripts
Moving a script to the server does not automatically make it faster or more reliable.
Server-side scripts compete with connected users, backups, web publishing, API requests, and other scripts for the same hardware and database resources. Several concurrent SASE processes can increase throughput, but they can also generate additional load.
A professional implementation should consider:
- Execution context
- Script-step compatibility
- Authentication and privileges
- Record locking
- Transactions and record commits
- Script parameters and results
- Error handling and logging
- Timeouts and queued sessions
- Concurrent SASE processes
- CPU, memory, disk, and network usage
The objective is not to run every operation through FMSE. It is to select the execution environment best suited to each task.
FileMaker Server expertise from fmcloud.fm
At fmcloud.fm, we combine managed FileMaker hosting with extensive expertise in FileMaker development, server architecture, automation, and integration.
We can help you design and troubleshoot:
- FileMaker Server schedules
- PSOS and callback workflows
- OData script calls
- Data API integrations
- WebDirect and Custom Web Publishing scripts
- Server-side plug-ins
- Background processing and job queues
- Multiple SASE process configurations
- Error logging and performance monitoring
This combined application and infrastructure expertise is particularly valuable when a script works correctly in FileMaker Pro but becomes slow, unreliable, or unpredictable when executed on FileMaker Server.
Rather than treating the server as a black box, fmcloud.fm can examine both the design of the FileMaker application and the environment in which its scripts are executed.
Learn more
- About running scripts on FileMaker Server and FileMaker Cloud
- FileMaker scripting processes limit
- Running scheduled FileMaker scripts
- Perform Script on Server
- Perform Script on Server with Callback
- FileMaker scripts and OData
- Running scripts with the FileMaker Data API
- FileMaker WebDirect architecture
- What Is the FileMaker Data API?
- What Is OData?
- What Is Custom Web Publishing?