Can I run a script whenever an event is edited in iCal?
Yes! We know that many developers use scripted validation to make sure their records are properly formatted, or to manipulated the data in other ways. And since iCal is editing your records, you don't have the same buttons and scripts that you do in FileMaker. However, you can still use scripts to process your records because Zulu calls an optional script in your file each time a record is edited in iCal.
The script is named "Zulu_PostEdit" and you can find a copy in the Zulu example file. This script runs AFTER an event record is edited or created in iCal.
(We also have a similar script that runs before deleting a record.)
Here are a few things to keep in mind regarding this script:
Make sure the script only uses Web Publishing compatible script steps (you can find those by toggling "show compatibility" in the lower right of the Edit Scripts window). Remember, the script runs on the server in the web publishing space, so...
References to Get ( CurrentTime
) in this script will use the time of your FileMaker
Sever. Get ( AccountName
) will return the name of the logged in user (using the account and password entered into iCal).
If the script isn't there or has been renamed the plugin just moves past it without registering an error.
If there are script steps in your script that are not supported in Web Publishing the script will stop running as soon as it hits one, unless the Allow User Abort script step option is included and disabled (Off).
Be sure to call the "Commit Records/Requests" step at the end of your script.
To learn more about server side scripts, read the section "Running FileMaker Scripts" on the FileMaker Server 11 Help pdf
Here is a great example
of sending notifications when a project milestone is moved. (We're editing the event in iCal using Zulu to publish milestones from SeedCode Complete
And here is a great demo linking a contact to an event in iCal, triggering an auto enter in FileMaker
to lookup that contact's info, including their last contacted date: push more relevant information to iCal