PSBN - Perform Script [ By Name - a module from

Document created by mrwatson-gbs on Oct 16, 2017Last modified by mrwatson-gbs on Oct 17, 2017
Version 4Show Document
  • View in full screen mode


Perform Script [ "By Name" …

A module from



Ever wanted to Perform Script by Name - natively?


Make FM ←→ FM APIs?


Well, now you can!




Thanks to fm16's dynamic data sources


(and a bit of magic from mrwatson)


Performing Scripts By Name natively has become a reality

in FileMaker *16*

with the PSBN module.


No plugins

No fmp-URLs

No AppleScript

No Messing

No waiting


just a Perform Script call ...


a script result :-)







The PSBN Module was created to be a proof-of-concept rather than a production solution,…
…it works well, however, within certain limits *, …
and above all
  it can  open our eyes
to the possibilities that Perform Script By Name could bring us in the future.



PSBN was first presented at dotfmp in Berlin 2017

and took a major role in the presentation

"Modularity in FileMaker 16"
at the FileMaker Konferenz in Salzburg 2017 (links coming


PSBN is now available on github:



GitHub - mrwatson-de/PSBN-FileMaker-Module: Ever wanted to Perform Script by Name? Now you can!



Please download and experiment + play around with it,

and discuss what the possibilities are in the comments to this post.



and go vote up the Product Idea

Perform Script [ by Name: ... ] - immediately + natively (Modular-FileMaker)
to let FileMaker Inc. know how much we need

and want this functionality natively!








* The limits are:


  • It can only Perform Scripts that have an internal ID of less than 4096 (that is probably about 99% of databases)
  • It can only call scripts in up to 50 files (that is probably also about 99% of databases)


Use Cases

Here are some use cases

  • Create APIs between FileMaker files.
  • Implement Callback Scripts (where you pass names of scripts to be called back to modules)
  • Implement distribution scripts (If … Else If …Else If … ) without having to hard code script references.
  • Call functionality in optional modules of your database that are not explicitly referenced. For example update them / change their master passwords.
  • Implement data-driven-logic
  • and much more (your ideas here!)
4 people found this helpful