FileMakerのスクリプトを組んでいると、「この処理は終わるまで待ったほうがいいのか?」「別の画面で作業しながら裏側で動かしたい」と迷う場面がよくあります。そんなときにポイントになるのが、「スクリプト実行」ステップの待機オプションです。
待機オプションをうまく使えると、ユーザーの操作感を損なわずに、裏側で重い処理を動かしたり、処理の抜け漏れを防いだりできます。本稿では、専門用語をできるだけ避けながら、実務で使いやすい待機オプションの考え方と操作方法、具体的な活用パターンを紹介します。
スクリプト実行の「待機オプション」とは?
FileMakerのスクリプトステップ「スクリプト実行」には、次のような選択肢があります。
- スクリプト完了まで待機する
- スクリプト完了を待機しない(続けて処理を進める)
簡単にいうと、あるスクリプトAから別のスクリプトBを呼び出したときに、
- Bが終わるまでAを一時停止して待つか
- Bを裏で動かしつつ、Aは先に進めるか
を選べるスイッチです。これを理解していないと、「ボタンを押したのに画面が固まったように見える」「まだ処理が終わっていないのに次の画面に進んでしまう」といったトラブルの原因になります。
どこで設定する?基本的な操作方法
待機オプションの設定はとてもシンプルです。
- スクリプトワークスペースを開く
- 使用したいスクリプト内に「スクリプト実行」ステップを追加
- インスペクタ内のオプションで、
- 「スクリプト完了まで待機」にチェック → 待機する
- チェックを外す → 待機しない
これだけで動きがガラッと変わります。難しく考えず、「この処理が終わらないと次へ進むと困るか?」を基準に選ぶと判断しやすくなります。
「待機する」を使うべき典型パターン
まずは「待機する」が基本になる場面から押さえましょう。次のようなときは、原則として待機するを選ぶのがおすすめです。
- 計算結果を使って次の処理をする場合
例:集計スクリプト → 集計結果をもとに請求書を作成する - データの整合性が重要な場合
例:在庫数の更新 → 更新後の在庫数を画面に表示する - ユーザーに確定した結果だけを見せたい場合
例:一括更新処理 → 完了後に「完了しました」ダイアログを出す
これらの処理を「待機しない」にしてしまうと、まだ裏で作業中なのにユーザーが次の操作をしてしまい、データの不整合や思わぬエラーの原因になります。迷ったら、まずは「待機する」で組み、必要になったら一部だけ「待機しない」に切り替えていくのが安全です。
「待機しない」で使いやすくなる場面
一方で、「待機しない」を使うとユーザー体験がぐっと良くなるケースもあります。
- 時間がかかる集計や外部連携
例:大量データの集計、外部APIとの通信、レポートPDFの一括生成など。 - ユーザーにとって結果がすぐ見えなくてもよい処理
例:ログの書き込み、バックアップ用レコードの作成など。 - 「裏でこっそり」やっておきたい処理
例:画面を開いたついでに最新データを同期する、不要データを整理するなど。
このような場合、「待機する」を選ぶと、その間ユーザーの操作が止まってしまい「遅いシステムだ」と感じさせてしまいます。「待機しない」で裏側で処理させることで、ユーザーは通常どおり作業を続けられます。
実践的な活用パターン:具体例でイメージする
ここでは、実務でよくあるシーンを例に、待機オプションの組み立て方を紹介します。
例1:請求書発行とPDF作成
- スクリプトA:請求書を確定して登録する
- スクリプトB:確定済み請求書からPDFを作成する
この場合、
- 請求書の登録処理は「待機する」:確定が終わっていないと困るため
- PDF作成は「待機しない」:ユーザーは登録さえ終われば次の作業に進める
という組み合わせがよく使われます。PDF作成完了をユーザーに知らせたい場合は、後から別の方法(一覧画面で完了マークを表示する、メール通知するなど)を用意すると親切です。
例2:画面表示と重い集計
一覧画面を開いたときに、その場で重い集計をしてしまうと、画面がなかなか表示されずストレスになります。この場合は、
- 画面を開くスクリプト:できるだけ軽くし、すぐに表示する
- 重い集計スクリプト:画面表示後に「待機しない」で裏で実行
という構成にすると、「とりあえず画面はすぐ開く」という安心感を提供できます。集計結果は後からリフレッシュボタンで読み込むなど、ユーザーにわかりやすい形で反映させましょう。
トラブルを避けるための注意ポイント
待機オプションを使いこなすには、次のポイントを押さえておくと安全です。
- 「待機しない」の処理内容をシンプルにする
複雑な条件分岐やユーザー入力に依存する処理は避け、できるだけ「自動で完結する」処理に限定します。 - ユーザーに「裏で動いている」ことを伝える
画面上に「処理中」アイコンを出す、ステータス用フィールドで進捗を見せるなど、状況がわかる仕組みを用意すると安心です。 - ログを残す
「待機しない」処理でエラーが起きてもユーザーが気づきにくいので、ログテーブルに結果を書き出すなど、後から追えるようにしておきましょう。
まとめ:まずは「待機する」、慣れたら「待機しない」を戦略的に
スクリプト実行の待機オプションは、
- 処理の正確さ(データの整合性)
- ユーザーの操作感(快適さ)
のバランスをとるための大事なスイッチです。最初は、安全側に倒して「待機する」を基本とし、処理が重く感じられてきたところから、
- 時間がかかる処理
- 結果がすぐに見えなくても困らない処理
を選んで少しずつ「待機しない」に切り替えていくと、失敗が少なく運用できます。
ほんの小さなチェックボックス1つですが、ここを意識して設計するだけで、FileMakerシステムの「使いやすさ」と「安心感」は大きく変わります。既存のスクリプトも、どこで待機しているかを一度見直してみると、改善のヒントが見つかるはずです。