FileMakerで一覧画面を使っていると、「新しいデータが追加されたのに、画面に反映されない」「他の人が変更した内容をすぐに見たい」と感じることはないでしょうか。そんなときに便利なのが「オンタイマースクリプト」を使った一覧の自動更新です。
本稿では、専門用語をできるだけ避けながら、「オンタイマースクリプト設定で一覧を自動更新する」ための考え方と、基本的な設定手順を分かりやすく解説します。
オンタイマースクリプトとは?何ができるのか
オンタイマースクリプトとは、簡単に言うと「一定時間ごとに自動で実行されるスクリプト(処理)」を設定できる機能です。
たとえば、次のようなことが可能になります。
- 1分ごとに一覧画面を再表示して最新データに更新する
- 一定時間操作がなかったら、メニュー画面に戻す
- バックグラウンドで軽いチェック処理を動かす
今回はこの中でも、「一覧を自動で最新状態に保つ」という用途に絞って説明していきます。
一覧が自動更新されると何が嬉しいのか
オンタイマースクリプトで一覧を自動更新すると、次のようなメリットがあります。
- 手動で更新ボタンを押す手間が減る
毎回「再検索」や「一覧更新」のボタンを押す必要がなくなります。 - 複数人で使っているときにズレが少ない
他のユーザーが追加・変更したデータが、ほぼリアルタイムに近い形で共有できます。 - 見落としを防げる
新しい注文や問い合わせなど、「入ってきたらすぐ気づきたい」情報に向いています。
一方で、あまり短い間隔で更新しすぎると、パソコンへの負荷が高くなったり、ユーザー操作の邪魔になったりするので、ほどよいバランスが大切です。
オンタイマースクリプトで自動更新する基本の仕組み
一覧自動更新の流れは、とてもシンプルです。
- 「一覧を更新するスクリプト」を用意する
- レイアウトに「オンタイマースクリプト」を設定して、
そのスクリプトを「○秒ごとに実行」するようにする
この2つができれば、基本的な自動更新は完成です。
ここからは、実際の操作の流れを順番に見ていきます。
手順1:一覧を更新するスクリプトを作る
まずは、「更新用スクリプト」を1本作成します。ここでは、シンプルな例を紹介します。
- 「スクリプトワークスペース」を開く
- 新規スクリプトを作成し、名前を「一覧更新」など分かりやすいものにする
- 次のようなステップを追加する(例)
- 現在のレイアウトを再表示する
「ウインドウ内容再表示」や「検索の再実行」などを使用する - 必要があれば並び順も維持する
「レコードのソート」などで、あらかじめ決めたソート順を再適用する
- 現在のレイアウトを再表示する
すでに「検索し直し」や「一覧更新」のスクリプトがある場合は、それを流用してもかまいません。ただし、オンタイマースクリプトで自動実行されることを意識して、「ユーザーにダイアログを出さない」「処理時間が長くなりすぎない」といった点に配慮しておきましょう。
手順2:レイアウトにオンタイマースクリプトを設定する
次に、「どのレイアウトで」「何秒ごとに」「どのスクリプトを動かすか」を設定します。ポイントは、一覧画面(リスト表示やポータル一覧など)に対して設定することです。
- レイアウトモードで、対象の一覧レイアウトを開く
- 「レイアウト設定」を開く(メニューまたは右クリックなど)
- 「スクリプトトリガ」タブを選択する
- 「オンタイマースクリプト」を有効にし、先ほど作成した「一覧更新」スクリプトを指定する
- 「オンタイマー間隔(秒)」に、更新したい間隔(例:60秒)を設定する
これで、そのレイアウトを開いている間は、指定した秒数ごとに自動でスクリプトが動き、一覧が更新されるようになります。
どのくらいの間隔で更新するのが良いか
オンタイマースクリプトの間隔は、短すぎても長すぎても不便です。目安としては、次のように考えると良いでしょう。
- 30〜60秒:新しいデータをわりと早く見たいが、負荷も気にしたい場合
- 3〜5分:そこまでリアルタイム性は要らないが、定期的に更新したい場合
- 10秒以下:よほどリアルタイム性が重要な場合のみ(操作の妨げに注意)
また、同じファイルを多人数で使用している場合や、サーバー経由で使っている場合は、短い間隔にしすぎるとサーバーやネットワークへの負荷が増えることがあります。最初は長めの間隔から試して、様子を見ながら調整していくのがおすすめです。
ユーザー操作との兼ね合いに注意しよう
オンタイマースクリプトは、ユーザーが操作している最中であっても、設定したタイミングになると動こうとします。そのため、次のようなケースには注意が必要です。
- ユーザーが入力中のレコードを、スクリプトが「検索」や「一覧再表示」で中断してしまう
- ポップオーバーやカードウインドウを開いている最中に、タイマーが動いて違和感が出る
対策としては、次のような工夫があります。
- 一覧用レイアウトでは「基本的に編集させない」運用にする
- 編集中かどうかを判定し、編集中ならスクリプトを終了する処理を入れる
- 入力画面と一覧画面を分けて、オンタイマースクリプトは一覧側だけに設定する
「ユーザーにとってストレスなく使えるか」を意識しながら、スクリプト内容や間隔を調整していくことが大切です。
オンタイマースクリプトを止めたいときは?
オンタイマースクリプトは、そのレイアウトを表示している間は動き続けます。タイマーを止めたい場合は、次のような方法があります。
- 別のレイアウト(オンタイマースクリプトのないレイアウト)に切り替える
- レイアウト設定から「オンタイマースクリプト」のチェックを外す
- スクリプト内で条件分岐を行い、場合によっては「何もしない」で終了する
運用上、「業務時間外は動かさない」「特定のユーザーには自動更新させない」といった要望がある場合は、ユーザー名や権限セットなどを条件にして、スクリプト内で「処理を実行するかどうか」を切り替えることも可能です。
まとめ:オンタイマースクリプトで「見える化」と「手間削減」を両立
オンタイマースクリプトを使った一覧自動更新は、設定自体はシンプルですが、日々の運用に大きな違いをもたらします。
- 最新の情報が自動で画面に反映される
- 更新ボタンを押し忘れる心配が減る
- 他のユーザーとの情報のズレを小さくできる
一方で、更新間隔やスクリプト内容を誤ると、「重い」「邪魔」と感じられてしまうこともあります。最初は小さく試して、実際に使う人の感触を聞きながら、少しずつ調整していくのが成功のコツです。
自社の運用に合ったバランスを探りながら、オンタイマースクリプトを上手に活用してみてください。