Product Logo

MMScript

Trigger and schedule scripts


Coding Considerations

Getting Results

Every time you use an MMScript function, status text is returned back from the plug-in. This information can be very useful. It can let you know that your script events have been set properly. It can also let you know if an error occurred. Consider the following code:

MMScript_CreateImmediateScriptEvent( “Beep” )

The above code will run the script “Beep” in your current database. If it is successful, the plug-in will return:

Called ‘Beep’ in ‘MyDatabase’.

However, if the script does not exist, or if there is a misspelling in your function or in the real script name, the plug-in will return:

ERROR: CreateImmediateScriptEvent: Script “Beep” does not exist in Database “MyDatabase”.

Curly Brackets

Curly brackets indicate that a parameter or parameters are optional. Take the MMScript_Version function for example:

MMScript_Version{( Option )}

This function can be called without any parameters because the “Option” parameter is surrounded by curly brackets indicating that is it optional. Using the function in this manner looks like:

MMScript_Version

The above code simply returns the default version string when called. However, you can use “Auto Update” for the Option parameter to return a more auto update friendly version number:

MMScript_Version( “Auto Update” )

In more complex functions, there may be multiple optional parameters. Note that if there are optional parameters before one that you need to use, you must include any parameters before it. Consider the MMScript_CreateImmediateScriptEvent function:

MMScript_CreateImmediateScriptEvent( Script {; DB {; EventName {; EventValue {; Priority {; CurrentScript }}}}} )

If you want to specify the “EventName” parameter, you must also specify the “DB” function. If you want to specify the “EventValue”, you must also specify the “EventName” and “DB” parameters. Following is an incorrect example and a correct example:

INCORRECT:

MMScript_CreateImmediateScriptEvent( “MyScript” ; “MyEventName” )

CORRECT:
MMScript_CreateImmediateScriptEvent( “MyScript” ; “MyDB” ; “MyEventName” )

FileMaker Version Considerations

When plug-ins were first introduced, the only place you really wanted to use a plug-in function was the Set Field script step. However, since FileMaker 4, many new advancements have taken place. Though the Set Field script step is still a very common place to use plug-in functions, there are now many places that can logically be used. For a list of a few of these places, see the next section titled “Places to use MMScript Functions”.

It is important to keep in mind what versions of FileMaker will be in use when using MMScript and other plug-ins. For example, creating a variable using the Set Variable script step can be very convenient, however, that functionality only exists in FileMaker 8 and greater. If you or your users use FileMaker 7, then your script calls would fall on deaf ears if you used Set Variable script step. In addition, when using functions in a variable you will be less likely to see the results returned from the plug-in (such as error messages), because a variable cannot but put on a layout like a field.

Places to use MMScript Functions

You can use MMScript functions in any calculation engine dialog in FileMaker. Keep in mind that just because you can do something does not mean it is actually useful.

There are several places that fit very well depending on the situation:

  • Calculation field
  • Auto-Enter Calculated value
  • Validation by calculation
  • Set Field Script/Button step
  • Insert Calculated Result Script/Button step
  • Show Custom Dialog
  • Set Variable Script/Button Step
  • Custom Functions
  • and more…