FILEMAKER

Claris FileMaker Cloud でバッチ処理 〜スクリプト実行を簡単にスケジュール設定する方法〜

Claris FileMaker Cloud で、重たい集計処理を毎晩実行したい、毎月の処理を自動化したいといった場合、通常は FileMaker Admin API を用いてスクリプトを”毎日”や”毎月”といった頻度でスケジュール設定をすることが可能です。

ですが、FileMaker Cloud 上でAdmin API ( Data API も同様 ) を利用するにはAWSの規格に基づき IDトークンを取得した後に FileMaker Cloud へ API リクエストを実施すると言った手順が必要となります。
プログラムのコーディングといった技術的ハードルがある為、気軽に利用できる機能ではありませんでした。

もちろん、Python および Node.js のような知識のある方は問題なく実装可能ですので、
以下のページにある実装方法をご参考ください。
Claris ID を認証し、FileMaker Admin API および Data API へのアクセスを許可する

せっかく ノーコード・ローコード ツールを採用したのにスケジュール実行にはプログラミングの知識が必要といったことではお困りになる方もいらっしゃるかと思います。そこで、今回のブログではプログラミング知識がなくても簡単にスケジュール設定する方法をお伝えしたいと思います。

Claris Connect を使って簡単スケジュール設定

Claris Connect は トリガをキーにアクションを起こす自動化ワークフローを簡単に実装することができるツールとなります。今回は”スケジュール設定”をトリガ、“FileMaker スクリプトの実行”をアクションに設定する方法をご紹介いたします。

Claris Connect をご契約いただき、実際に設定を初めて試してみるという方は事前に以下のブログをご参考ください。
初めての Claris Connect


スケジュール設定方法

1.トリガの設定

Claris Connect のコンソール画面にて設定を行います。
Configure new trigger で、 Schedules を選択します。


スケジュールを選択

Schedules の設定画面では、以下5つのスケジュールが選択可能です。

  • Every hour
  • Every day
  • Every week
  • Every month
  • Custom (advanced)

”毎日”を設定したい場合には Every day を、
”毎月”を設定したい場合には Every month を選択します。

毎晩1時のスケジュール実行を設定

今回は毎晩1時のスケジュール実行を設定したいと思いますので、
Every day を選択します。
すると、以下の3つの設定画面となります。

  • Hour of day (実行する時間)
  • Run on weekends (土日も実行するかどうか)
  • Time zone (タイムゾーン)

それぞれ、選択肢から選ぶだけの簡単な設定になります。
Hour of day の設定画面では 1am を選択することで毎晩1時のスケジュール設定となります。
Save Trigger ボタンをクリックして設定を保存します。


設定画面

2.アクションの設定

続いての画面では Action を設定します。
+ ボタンから表示されるメニューから Action を選択。

Action を選択

App を選択する画面から Claris FileMaker Cloud を選択します。
(検索窓に “FileMaker” と入力すると簡単に見つけることができます。)

App を選択する画面でClaris FileMaker Cloud を選択

実行するアクションを選択する画面が表示されますので、
今回は Execute script を選択し Continue ボタンをクリック。
(“スクリプトの実行”をアクションに設定することが可能です。)

実行するアクションを選択

続いて、Claris FileMaker Cloud の認証設定を行います。
Sign into Claris FileMaker Cloud ボタンをクリック

Claris FileMaker Cloud の認証設定

表示された画面で以下3つの設定を行います。

  • Organization (現在ログインしている Claris ID の所属するFileMaker Cloud チームから選択)
  • Instance (選択したFileMaker Cloud チームのインスタンスを選択)
  • Database (スケジュール実行したいスクリプトが設定されているカスタム App を選択)

Sign in をクリックします。

3項目を設定

認証が成功すると緑色の Success の文字が表示されますので Continue をクリックします。

認証に成功した画面

ここでエラーが表示される場合には、選択したカスタム App に fmrest の拡張アクセス権を設定する必要があります。詳しくは以下のブログをご参考ください。
 初めての Claris Connect

最後に実行時のレイアウトと実行したいスクリプトを選択して Save します。
必要に応じて、スクリプト引数の設定も可能です。

スクリプトを選択

作成したフローはデフォルトで無効になっておりますので、
右上のスイッチにて Enabled にして作業完了です。
毎晩 1 時に集計作業スクリプトが実行されます。

フローを有効化

如何でしたでしょうか?
Claris Connect を利用することで、管理画面からマウス操作のみでスクリプトのスケジュール設定が簡単にできました。Claris Connect を使う場合、例えばスクリプトのスケジュール実行が終わった後に Slack や Chatwork といったチャットツールに実行結果のメッセージを送付するなどといったフローを追加することも簡単に設定できます。

Claris FileMaker Cloud をご契約中のお客様の場合、Claris Connect の FileMaker Plus プランというお得なプランがご契約可能です。(月額換算 ¥5,130 で利用することができます。)

Claris Connect のプラン

Claris Connect は15日間の無料評価版のご用意がございます。
FileMaker Cloud でスクリプトのスケジュール実行をこの機会に是非お試しください。

(付録)
今回のブログではトリガの Schedules で毎晩1時という設定にしましたが、
もう少し複雑なスケジュールを組みたい場合には、トリガの Schedules で Custom (advanced) を選択することで柔軟なスケジュール設定を組むことが可能になります。

ここでは、Custom (advanced) を選択した際の設定方法をご紹介いたします。

Custom (advanced) の設定方法

Custom (advanced) を選択すると、
Cron expression の欄にスケジュール情報を入力する形式になります。
どの様なルールでスケジュール情報を入力すればよいかについては、( more ) のリンク先の Web ページに説明があります。本ブログでは以下にその詳細を記載しております。

Cron expression の欄には以下の並びでスケジュール情報を登録します。
(それぞれの値をスペースで区切ります。)

分␣時␣日␣月␣曜日

例えば、毎日 10 時を指定したい場合、以下の値になります。
00 10 * * *

毎日 10 時を指定する場合

日と月と曜日には任意の値が入るため、毎日という設定になります。
仮に毎月 1 日の 10 時はこちらになります。
毎月の月初に実行したいスケジュールという用途は多いことかと思います。
00 10 1 * *

毎月 1 日の 10 時を指定する場合

この Schedules の Custom オプションでは、さらに柔軟なスケジュールを設定するための便利な記号が利用できます。

スケジュール設定に利用できる記号

それでは、便利な記号を使ってスケジュールを作ってみましょう。

1. 毎月 5 日の 10 時、15 日の 10 時、25 日の 10 時
  (値の区切りを利用します。)
  00 10 5,15,25 * *

毎月 5 日の 10 時、15 日の 10 時、25 日の 10 時を指定する場合

2. 毎日 9 時 - 18 時の間で 1 時間毎
 (範囲指定を利用します。)
 00 9-18 * * *

範囲指定を利用

3. 毎日 9 時 - 18 時の間で 2 時間間隔
 (範囲指定と間隔を合わせて利用します。)
 00 9-18/2 * * *

範囲指定と間隔を合わせて利用

4. 毎週 月曜日から金曜日の 夜中の 1 時
 (範囲指定を利用します。曜日は0を日曜日とした数字で表すかアルファベット指定が可能です。)
 00 1 * * 1-5
 00 1 * * MON-FRI


範囲指定

曜日指定

5. 毎分
 * * * * *

毎分を指定する場合

以上となります。
便利な記号を利用することで柔軟なスケジュール設定が可能となります。
それではこのブログを最後までお読みいただいた読者の方へ問題です。

毎年、年度末の 3 月 31 日の夜 23 時に期末処理を実行するスクリプトをスケジュールしたい場合、
設定するスケジュールの値はどうなるでしょうか?

是非考えてみてください。