WindowsScript.ExecuteFunction
-----------------------------

Runs the script specified by the Script ID.

| Component | Version | macOS | Windows | Linux | Server | iOS SDK |
|---|---|---|---|---|---|---|
| [WindowsScript](component_WindowsScript.md) | [1.1](newinversion11.md) | ❌ No | ✅ Yes | ❌ No | ✅ Yes, on Windows | ❌ No |

MBS( "WindowsScript.ExecuteFunction"; ScriptID; FunctionName { ; Function Parameter... } ) 

**MBS**( **"WindowsScript.ExecuteFunction";** /\* Runs the script specified by the Script ID. \*/  
**$ScriptID**; /\* The ID of a WindowsScript in memory.e.g. 0 \*/   
**$FunctionName**; /\* The name of the function you are using in the script \*/   
**$Function Parameter...**) /\* Optional; The first function parameter \*/ 

### Parameters

| Parameter | Description | Example | Flags |
|---|---|---|---|
| ScriptID | The ID of a WindowsScript in memory. | 0 |  |
| FunctionName | The name of the function you are using in the script |  |  |
| Function Parameter... | The first function parameter |  | Optional |

### Description

Runs the script specified by the Script ID.  
  
This function takes variable number of parameters. Pass as much parameters as needed separated by the semicolon in FileMaker.  
Please repeat Function Parameter parameter as often as you need.  
### Examples

Trigger a FileMaker Script Using OS Scripting

 Let(  
\[  
// --- the name of the script to run ------------------  
  
ScriptName = "Triggered Script";  
FileName = Get(FileName);  
  
//------------------------------------------------------------  
  
//--- don't need to edit anything below this line --------  
  
  
Applescript = "do script " &amp; Quote(ScriptName);  
  
VBScriptText =   
"FUNCTION DoFMSCript(FileName, ScriptName)" &amp; "¶" &amp;   
  
"Set fmApp = CreateObject(\\"FMPro.Application\\")" &amp; "¶" &amp;   
"fmApp.Visible = True" &amp; "¶" &amp;   
"Set fmDocs = fmApp.Documents" &amp; "¶" &amp;  
"For Each fmDoc In fmDocs" &amp; "¶" &amp;  
"If InStr(LCase(fmDoc.fullname), LCase(FileName)) &gt; 0 Then" &amp; "¶" &amp;  
" fmDoc.dofmscript (ScriptName)" &amp; "¶" &amp;  
"End If" &amp; "¶" &amp;  
"Next" &amp; "¶" &amp;  
  
"END FUNCTION";  
  
ScriptID = MBS ("[WindowsScript.Create](WindowsScriptCreate.md)");  
lang= MBS ("[WindowsScript.SetLanguage](WindowsScriptSetLanguage.md)"; ScriptID; "VBScript");  
addcode = MBS ("[WindowsScript.AddCode](WindowsScriptAddCode.md)"; ScriptID; VBScriptText)  
  
\];  
Case(  
Get ( SystemPlatform ) = 1;  
  
// Mac OSX Case  
MBS (   
"[AppleScript.Run](AppleScriptRun.md)";  
Applescript  
);  
  
// Windows Case  
MBS ("WindowsScript.ExecuteFunction";ScriptID; "DoFMScript";FileName; ScriptName) &amp;   
MBS ("[WindowsScript.Close](WindowsScriptClose.md)"; ScriptID)  
  
)  
)  
Trigger A FileMaker Script (Custom Function)

 MBS\_TriggerScript ( "Triggered Script" ; Get ( FileName ) )   
  
  
Custom Function Definition  
/\*###############################################  
  
MBS\_TriggerScript  
created 10/26/06, by Todd Geist, todd@geistinteractive.com  
  
Parameters: theScriptName, theFileName  
  
Dependancies: MBS FileMaker Plug-in.  
  
Notes: Uses VBScript and Applescript to run a script  
  
\################################################\*/   
Let(  
\[  
  
Applescript = "do script " &amp; Quote(theScriptName);  
  
VBScriptText =   
"FUNCTION DoFMSCript(FileName, ScriptName)" &amp; "¶" &amp;   
  
"Set fmApp = CreateObject(\\"FMPro.Application\\")" &amp; "¶" &amp;   
"fmApp.Visible = True" &amp; "¶" &amp;   
"Set fmDocs = fmApp.Documents" &amp; "¶" &amp;  
"For Each fmDoc In fmDocs" &amp; "¶" &amp;  
"If InStr(LCase(fmDoc.fullname), LCase(FileName)) &gt; 0 Then" &amp; "¶" &amp;  
" fmDoc.dofmscript (ScriptName)" &amp; "¶" &amp;  
"End If" &amp; "¶" &amp;  
"Next" &amp; "¶" &amp;  
  
"END FUNCTION";  
  
ScriptID = MBS ("[WindowsScript.Create](WindowsScriptCreate.md)");  
lang= MBS ("[WindowsScript.SetLanguage](WindowsScriptSetLanguage.md)"; ScriptID; "VBScript");  
addcode = MBS ("[WindowsScript.AddCode](WindowsScriptAddCode.md)"; ScriptID; VBScriptText)  
  
\];  
Case(  
Get ( SystemPlatform ) = 1;  
  
// Mac OSX Case  
MBS (   
"[AppleScript.Run](AppleScriptRun.md)";  
Applescript  
);  
  
// Windows Case  
MBS ("WindowsScript.ExecuteFunction";ScriptID; "DoFMScript";theFileName; theScriptName) &amp;   
MBS ("[WindowsScript.Close](WindowsScriptClose.md)"; ScriptID)  
  
)  
)  
Use JScript to Get System Date

 Let(  
\[  
JScriptText = "function TestDate(){var d =new Date();  
return d.toGMTString();}";  
scriptID = MBS ("[WindowsScript.Create](WindowsScriptCreate.md)");  
SetLang = MBS ("[WindowsScript.SetLanguage](WindowsScriptSetLanguage.md)";1;"JScript");  
addcode = MBS ("[WindowsScript.AddCode](WindowsScriptAddCode.md)";1;JScriptText);  
theDate = MBS ("WindowsScript.ExecuteFunction";1;"TestDate");  
closeScript = MBS ("[WindowsScript.Close](WindowsScriptClose.md)";1)  
  
\];  
  
theDate  
  
)  
### See also

- [AppleScript.Run](AppleScriptRun.md)
- [WindowsScript.AddCode](WindowsScriptAddCode.md)
- [WindowsScript.Close](WindowsScriptClose.md)
- [WindowsScript.Create](WindowsScriptCreate.md)
- [WindowsScript.ExecuteStatement](WindowsScriptExecuteStatement.md)
- [WindowsScript.SetLanguage](WindowsScriptSetLanguage.md)

### Example Databases

- [OS Scripting/Trigger Scripts Using OS Scripting](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/OS%20Scripting/Trigger%20Scripts%20Using%20OS%20Scripting.shtml#1292FieldAnchor_)
- [OS Scripting/VBScript Example](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/OS%20Scripting/VBScript%20Example.shtml#14ScriptAnchor_)
- [Window/WindowEffects](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/Window/WindowEffects.shtml#1CustomFunctionAnchor_)

This function is free to use.

Created 18th August 2014 , last changed 5th June 2021

  
[WindowsScript.Eval](WindowsScriptEval.md) - [WindowsScript.ExecuteStatement](WindowsScriptExecuteStatement.md)

[HTML Version](WindowsScriptExecuteFunction.shtml)