AppleScript.Execute
-------------------

Performs a compiled Apple Script.

| Component | Version | macOS | Windows | Linux | Server | iOS SDK |
|---|---|---|---|---|---|---|
| [AppleScript](component_AppleScript.md) | [1.0](newinversion10.md) | ✅ Yes | ❌ No | ❌ No | ✅ Yes, on macOS | ❌ No |

MBS( "AppleScript.Execute"; Script ID ) 

**MBS**( **"AppleScript.Execute";** /\* Performs a compiled Apple Script. \*/  
**$Script ID**) /\* The Id of the script you want to execute. This ID returned by the [AppleScript.Compile](AppleScriptCompile.md) function.e.g. 1 \*/ 

### Parameters

| Parameter | Description | Example |
|---|---|---|
| Script ID | The Id of the script you want to execute. This ID returned by the [AppleScript.Compile](AppleScriptCompile.md) function. | 1 |

### Description

Performs a compiled Apple Script.  
Executes an AppleScript that was previously compiled using the [AppleScript.Compile](AppleScriptCompile.md) function.  
AppleScripts can return a result to the object that called them. This is similar to the Script Results that were introduced in FileMaker 8.0.  
Older plugin versions used to put quotes around result. 6.4 and newer don't include quotes.  
### Examples

Execute a stored Applescript

 MBS ( "Applescript.Execute" ; $ScriptID )  
Send email via AppleScript and properties:

 Set Variable \[ $script ; Value: "property MySubject : \\"My Subject\\"  
property MyBody : \\"My Body\\"  
property MyReceiver : \\"test@test.test\\"  
property MySender : \\"test@test.test\\"  
  
tell application \\"Mail\\"  
 activate  
 set NewMail to make new outgoing message with properties {visible:true, subject:MySubject, content:MyBody}  
   
 tell NewMail  
 make new to recipient at beginning of to recipients with properties {address:MyReceiver}  
 end tell  
   
 set the sender of NewMail to MySender  
end tell" \]   
  
\# compile it   
Set Variable \[ $scriptID ; Value: MBS ( "[AppleScript.Compile](AppleScriptCompile.md)"; $script \]   
If \[ MBS ("isError") \]   
 Show Custom Dialog \[ MBS ("[AppleScript.LastErrorMessage](AppleScriptLastErrorMessage.md)") \]   
 Exit Script \[ Text Result: \]   
End If  
  
\# now fill in values   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)"; $scriptID ; "MySubject"; AppleScript Properties::Subject ) \]   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)"; $scriptID ; "MyBody"; AppleScript Properties::Body ) \]   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)"; $scriptID ; "MyReceiver"; AppleScript Properties::Receiver ) \]   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)"; $scriptID ; "MySender"; AppleScript Properties::Sender ) \]   
  
\# check if it is there   
Show Custom Dialog \[ MBS ("[AppleScript.GetPropertyValue](AppleScriptGetPropertyValue.md)"; $scriptID ; "MySubject") \]   
  
\# run the script   
Set Variable \[ $r ; Value: MBS ( "Applescript.Execute"; $scriptID ) \]   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.Close](AppleScriptClose.md)"; $scriptID ) \]  
Sets the note field for a contact via [AppleScript](component_AppleScript.md) functions:

 # Set Contact Note via AppleScript   
Set Variable \[ $theID ; Value: "773E1A42-ABCD-4CCF-88DE-E9C64BEE6D33:ABPerson" \]   
Set Variable \[ $theNote ; Value: "Best Hotdogs in town!" \]   
\# Compile AppleScript   
Set Variable \[ $ScriptID ; Value: MBS ( "[AppleScript.Compile](AppleScriptCompile.md)"; "property theID : \\"\\"¶ property theNote : \\"\\"¶ tell application \\"Contacts\\"¶ set theContact to the first person whose id is theID¶ set note of theContact to theNote¶ save¶ return note of theContact¶ end tell" ) \]   
Show Custom Dialog \[ "Result from AppleScript" ; MBS ( "[AppleScript.LastError](AppleScriptLastError.md)" ) &amp; ¶ &amp; MBS ( "[AppleScript.LastErrorMessage](AppleScriptLastErrorMessage.md)" ) \]   
\# run a query or multiple   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)"; $ScriptID ; "theID"; $theID ) \]   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)"; $ScriptID ; "theNote"; $theNote ) \]   
Set Variable \[ $result ; Value: MBS ( "AppleScript.Execute"; $ScriptID ) \]   
Show Custom Dialog \[ "Result from AppleScript" ; $result &amp; ¶ &amp; MBS ( "[AppleScript.LastError](AppleScriptLastError.md)" ) &amp; ¶ &amp; MBS ( "[AppleScript.LastErrorMessage](AppleScriptLastErrorMessage.md)" ) \]   
\# free memory   
Set Variable \[ $r ; Value: MBS ( "[AppleScript.Close](AppleScriptClose.md)"; $ScriptID ) \]  
### See also

- [AppleScript.Close](AppleScriptClose.md)
- [AppleScript.Compile](AppleScriptCompile.md)
- [AppleScript.GetPropertyValue](AppleScriptGetPropertyValue.md)
- [AppleScript.LastError](AppleScriptLastError.md)
- [AppleScript.LastErrorMessage](AppleScriptLastErrorMessage.md)
- [AppleScript.Run](AppleScriptRun.md)
- [AppleScript.SetPropertyValue](AppleScriptSetPropertyValue.md)
- [CNContact.SetValue](CNContactSetValue.md)
- [CNContact.Value](CNContactValue.md)
- [IsError](IsError.md)

### Blog Entries

- [Read and write notes in Contacts](https://www.mbsplugins.de/archive/2023-11-19/Read_and_write_notes_in_Contac/monkeybreadsoftware_blog_filemaker)
- [Send text message from FileMaker via iMessage](https://www.mbsplugins.de/archive/2019-03-10/Send_text_message_from_FileMak/monkeybreadsoftware_blog_filemaker)

This function checks for a license.

Created 18th August 2014 , last changed 17th November 2023

  
[AppleScript.DeterminePermissionToAutomateTarget](AppleScriptDeterminePermissionToAutomateTarget.md) - [AppleScript.GetPropertyName](AppleScriptGetPropertyName.md)

[HTML Version](AppleScriptExecute.shtml)