Expose Scripts as Custom Script Steps (Similar to new External Script Steps)

Idea created by jbante on Mar 22, 2017

    The product roadmap lists "external script steps" as a new way to expose plug-in functionality to FileMaker developers. As demonstrated in product preview webinars, this feature would allow plug-ins to define new script steps that developers can use in the script workspace, in addition to the calculation engine.


    I'd like to see "custom script steps" that we can similarly create with built-in FileMaker tools and can be called with the same style of interface as built-in and external script steps, analogously to custom functions. This would mean that sub-scripts might look like this:


    Do Something [ Text: "Hello World" ; Number of Times: 10 ]


    Instead of:


    Perform Script [ "Do Something" ; Parameter: NameValue ( "Text" ; "Hello World" ) & NameValue ( "Number of Times" ; 10 ) ]


    For this to work smoothly, the Script Workspace would hopefully also add a way to specify multiple parameters that could be exposed with the same controlled interfaces as built-in script steps and a way to access those parameters within the script. There have been other proposals for scripts to accept multiple parameters, but few proposals for exactly how we would interact with them. This proposal would suggest that developers could specify multiple parameters when calling a subscript by just using exactly the same interface(s) as built-in and external scripts. How the parameters would be exposed inside the subscript (pre-set variables? JSON packed in the current script parameter?) is an open question.


    This would not do anything to make FileMaker solutions any more capable than they already are. Instead, this would extend the benefits of the improved developer user interface of the Script Workspace to developer-defined imperative behaviors. We can create any script steps and configure many of their options quickly from the keyboard without porpoising through dialog windows. Breaking down functionality into subscripts is the most important tool we have for managing complicated application logic, but it is among the least benefitted by the Script Workspace as it is now.