FileMaker Cloud スケジュール実行するスクリプトの作成について

FileMaker Server、FileMaker Cloud に限らずスケジュール実行で気をつけることはいろいろあるのですが、今回はFileMaker Serverでは動いていたスケジュール実行のスクリプトをFileMaker Cloudで使用する時の注意点をお伝えします。

  • 深夜の実行時間がAuto-Maintenanceと被らないように設定する
  • タイムスタンプ、日付、時刻はUTC+9を考慮した式に変更する
  • Evaluate関数の中でGet(タイムスタンプ)などの「Get関数の日本語」は英語に変更する

深夜の実行時間がAuto-Maintenanceと被らないように

FileMaker Cloudには深夜に自動的に再起動してくれる「Auto-Maintenance」機能があります。このタイミングとスケジュール実行が被ると、少なくてもスケジュール実行かAuto-Maintenanceが実行されません。くわしくはこちらで確認ください。

タイムスタンプ、日付、時刻はUTC+9を考慮した式に変更する

サーバー上で実行されますので、FileMaker Cloudの仕様上、タイムスタンプ、日付、時刻はUTCの日時になります。Admin Consoleで設定した「Local Time Zone」はなんの影響もなく、常にUTC+0の結果が返ってきます。日本はUTC+9ですので、次の関数はすべて書き換える必要があります。

  • Get (ホストのタイムスタンプ)
  • Get (タイムスタンプ)
  • Get (時刻)
  • Get (日付)

タイムスタンプや時刻は内部的には秒単位の整数ですので、+9*60*60、日付はそのまま使えないので、GetAsDate ( Get(タイムスタンプ) +9*60*60 ) と書き換える必要があります。

Evaluate関数の中でGet(タイムスタンプ)などの「Get関数の日本語」は英語に変更する

FileMaker Cloudは英語です。FileMakerはUnicodeや内部のID管理等で日本語でも問題なく動作します。それでもEvaluate ( “Get(タイムスタンプ)” )は Evaluate ( “Get(CurrentTimestamp)” ) に書き換える必要があります。

FileMaker Pro のヘルプを参照し、そのアドレスのjaをenに変更すれば、英語圏のマニュアルが参照できます。
http://www.filemaker.com/help/16/fmp/ja/#page/FMP_Help%2Fget-currenttimestamp.html%23wwconnect_header

http://www.filemaker.com/help/16/fmp/en/#page/FMP_Help%2Fget-currenttimestamp.html%23wwconnect_header

英語環境とはいえ、日付の表示は mm/dd/yyyy ではなく、yyyy/mm/dd になりますし、GetAsDate(“2017/3/2”)は動作し、GetAsDate(“3/2/2017”)は?になります。なぜこうなるかはまた別の機会にReportしようと思います。

FileMaker Cloudへの乗せ換えはこの3点にご注意ください。

スケジュール設定をするときに便利なツールを公開していますので、ご興味あればダウンロードください。このツール上での日時は日本時間ですのでわかりやすくなっています。
FileMaker Cloud スケジュール設定ツール FileMaker Cloud Schedule Manager