FileMaker 2025 新機能:「レコード一覧へ移動」徹底解説 (第1回) 〜基本とレコード ID の仕組み〜

待望の Claris FileMaker 2025 がリリースされ、FileMaker 開発者にとって嬉しい新機能が数多く追加されました。その中でも特に注目したいのが、今回ご紹介する「レコード一覧へ移動」スクリプトステップです。

このシリーズでは、基本的な使い方から応用テクニック、そして気になるパフォーマンスまで、数回にわたってこの新機能を徹底的に掘り下げて解説していきます。

第1回は、新機能の学習を始めるにあたり、最も重要な基本を押さえる回です。「レコード一覧へ移動」がどのようなもので、何ができるのか、そしてその核となるレコード ID の仕組みについて解説します。

「レコード一覧へ移動」で何ができるのか?

今回登場した「レコード一覧へ移動」は、これらの課題をシンプルに解決してくれる画期的なスクリプトステップです。

このステップの動作は非常にシンプルで、

レコード ID のリストを渡すだけで、その並び順の通りに対象レコードを表示してくれる

たったこれだけです。

これにより、複雑なスクリプトやリレーション、検索条件を組むことなく、目的のレコード群を一瞬で呼び出すことが可能になります。

「レコード ID」を理解しよう

このスクリプトステップを使いこなす上で、レコード ID の仕組みを理解することが不可欠です。

レコード ID は、FileMaker の各テーブルに存在する全てのレコードに自動的に割り当てられる、ユニークな識別番号です。レコードが作成された瞬間に FileMaker によって内部的に生成されています。

主な特徴 

  • 自動生成される整数:
    レコードが作成されると、FileMaker がテーブル毎に自動的に1から始まる整数を割り当てます。
  • 一意性:
    同じテーブル内で、同じレコード ID が重複することはありません。
  • 取得関数:
    Get (レコード ID) や、新しく登場した GetRecordIDsFromFoundSet 関数で取得が可能です。
  • 編集不可:
    開発者やユーザーが値を直接編集することはできません。
  • インクリメンタルな採番:
    レコードが作られるたびに、ID は通常1ずつ増加します (例: 1, 2, 3…)。
  • 欠番の発生:
    レコードを削除しても、その ID は再利用されないため、歯抜けの状態になります。
  • 永続性:
    テーブル内の全レコードを削除しても(テーブルデータ削除 スクリプトステップでも同様)、ID のカウントはリセットされず(1に戻らず)、続きの番号から採番されます。

レコード ID がリセットされる唯一のケース

基本的にレコード ID はリセットされませんが、唯一の例外があります。

「データなしのコピー」や「クローン」ファイルの生成:
データベースの定義だけを複製して作成したファイルでは、レコード ID は 1 から採番が始まります。(メニューバー ファイル > 名前を付けて保存… > タイプ: データなしのコピー)

データ移行時の挙動

公式ツールである FileMaker Data Migration Tool を使用してデータを移行する場合、移行元のレコード ID はそのまま引き継がれます。

「レコード一覧へ移動」の基本的な使い方

それでは、スクリプトステップのオプション設定を見ながら、その挙動を詳しく検証していきましょう。

この関数の特に重要な次の2つの引数について紹介したいと思います。
・レコード ID の一覧
・レコードの表示に利用するレイアウト

レコード ID の一覧

表示したいレコードの ID を指定します。

以下の形式に対応しており、指定したリストの並び順がそのまま画面のソート順になる、という点が非常に強力です。

  • リスト形式:
    改行区切りの ID リスト (例: 1¶5¶3)
  • JSON 配列:
    数値または文字列の ID 配列 (例: [1, 5, 3])
  • オブジェクトの JSON 配列:
    (例: [{“recordId”: “1”}, … ])

GetRecordIDsFromFoundSet 関数

この関数は、現在の対象レコードのレコード ID を取得するものですが、パラメーターのタイプ(0~4)を指定することで、任意の形式でレコード ID の一覧を取得することができます。

GetRecordIDsFromFoundSet | Claris FileMaker Pro ヘルプ


・GetRecordIDsFromFoundSet ( 3 ) または GetRecordIDsFromFoundSet ( ValueNumberRanges )

範囲付き値のリスト

・GetRecordIDsFromFoundSet ( 4 ) または GetRecordIDsFromFoundSet ( JSONStringRanges )

範囲を持つ文字列としての JSON 配列

複雑で便利なレコード IDの指定方法

より複雑な指定方法にも対応できます。

次の例はレコード ID が1~4までのレコードが存在している場合です。

・2¶2¶3¶2 → 3,2 (重複何回してもよい)

・2¶1-3 → 2,1,3 (1-3の中に2も含まれるが、先に2が指定されているので、順序は先になるし、重複して表示されるわけではない。)

・2-3¶1-3 → 2,3,1

・3-1¶2 → 2 (範囲で指定する場合は数の降順で書くと無視される。)

指定方法で速度は変わるのか

指定方法で速度が変わるか検証してみました。

・改行リスト:
1から1,000,000までのIDを改行で区切った巨大なテキストを渡す。

・範囲指定:
“1-1000000” というシンプルな文字列で渡す。

改行区切りリスト(秒)範囲指定(秒)
1回目4.2784.080
2回目4.2094.032
3回目4.3374.035

結論としては、ほとんど差がないと評価できます。

実際はキャッシュが働いたのか瞬時に表示されることもありました。

どの指定方法がおすすめか

速度は上記の通りあまり変わらないので、「サーバー上のスクリプト実行のスクリプト引数/スクリプトの結果の上限が 1MB」という壁に当たる可能性が一番低い範囲指定がおすすめです。

GetRecordIDsFromFoundSet 関数では一番文字数が少なくなる引数 3 がおすすめです。

レコードの表示に利用するレイアウト

表示先のレイアウトを指定します。

・デフォルトは「現在のレイアウト」:

何も指定しなければ、現在表示しているレイアウトのまま、対象レコードが切り替わります。新規ウインドウに表示するオプションも選択可能です。

・どのレイアウトでも指定可能:

このステップは、あくまでレコード ID のリストだけを見て動作します。 そのため、現在のレイアウトのコンテキスト (テーブルオカレンス) とは無関係に、任意のレイアウトを指定してレコードを表示させることが可能です。

つまりこの「レコード一覧へ移動」では、「どのテーブルの ID か」という設定ではなく、意図するテーブルがコンテキストテーブルになっているレイアウトを指定する必要があります。

まとめ

今回は、FileMaker 2025 の新機能「レコード一覧へ移動」の基本的な概念と使い方について解説しました。

  • レコード ID のリストと順番を指定するだけで、目的のレコード群を瞬時に表示できる。
  • 核となるのは、各レコード固有の背番号である「レコード ID」。
  • ID リストは範囲指定(3)がおすすめ。

百聞は一見にしかず。まずはデータビューアで簡単な ID リストを作り、その手でこの手軽さとパワーを体感してみてください。きっと、あなたの開発の「武器」の一つになるはずです。

さて、基本を押さえたところで、次回はさらに一歩踏み込みます。「現在の対象レコードはどうなる?」「エラー処理はどうすれば?」といった、より実践的な挙動について深掘りしていきますので、ご期待ください!