スクリプト引数はJSONで統一する設計術
スクリプト

スクリプト引数はJSONで統一する設計術

2026年6月8日 admin スクリプト

FileMakerで開発していると、「このスクリプト引数、何を渡しているんだっけ?」と迷子になることはありませんか。開発の初期は単純なテキストやリストで済ませがちですが、プロジェクトが大きくなるほど、引数の中身が分かりづらくなり、変更もしづらくなっていきます。

この記事では、FileMakerのスクリプト引数を「JSONで統一する」というシンプルなルールを採用することで、設計をスッキリさせる方法を、できるだけ平易な言葉で解説します。

スクリプト引数がバラバラだと何が困る?

スクリプト引数の書き方がスクリプトごとにバラバラだと、次のような問題が出てきます。

  • 引数の順番を覚えていないと、正しく渡せない
  • スクリプト側で「GetValue」や「LeftValues」などの処理が増えて分かりづらい
  • 後から引数を追加すると、既存の呼び出し元をすべて修正する必要がある
  • 他の開発者が読んだときに意図が伝わりにくい

つまり、「スクリプトの再利用性」と「保守性」が下がってしまうのです。

JSONで統一するメリット

スクリプト引数をJSONで統一すると、次のようなメリットがあります。

  • 「名前付き」で引数を渡せるので、中身が一目で分かる
  • 引数の順番に縛られない(順番を気にせず渡せる)
  • 引数をあとから増やしたり、減らしたりしやすい
  • サブスクリプトとのやり取りがパターン化できる
  • スクリプトデバッグ時に内容を確認しやすい

特に、チーム開発や長期運用するシステムでは、この「あとから楽になる」効果がとても大きくなります。

基本パターン:JSONSetElementで引数を渡す

FileMakerのJSON関数を使うことで、スクリプト引数を分かりやすく構造化できます。
例えば、顧客IDとモード(新規・編集など)を渡したい場合は、次のように書きます。

JSONSetElement ( "" ;
    [ "customerId" ; 顧客::顧客ID ; JSONNumber ] ;
    [ "mode" ; "edit" ; JSONString ]
)

この計算結果を「スクリプト引数」として渡します。ポイントは次の2つです。

  • 空の文字列 “” からJSONを組み立てる
  • キー名(”customerId”、”mode”)を分かりやすく付ける

これだけで、スクリプト側から「何が来るか」が一目で分かるようになります。

スクリプト側でJSONを受け取る方法

受け取る側のスクリプトでは、Get ( スクリプト引数 )でJSON文字列を取り出し、JSONGetElementで必要な値を取り出します。

Set Variable [ $json ; Value: Get ( ScriptParameter ) ]
Set Variable [ $customerId ; Value: JSONGetElement ( $json ; "customerId" ) ]
Set Variable [ $mode ; Value: JSONGetElement ( $json ; "mode" ) ]

こうしておくと、後から引数を増やしたいときも、JSONSetElementとJSONGetElementを1行ずつ足していけばよく、既存の引数を壊しません。

サブスクリプトにも同じJSONをそのまま渡す

サブスクリプトを多用する場合は、「基本的には引数JSONをそのまま渡す」というルールを決めておくとスッキリします。

Perform Script [ “顧客_更新処理” ; Parameter: $json ]

サブスクリプト側でも同じようにGet ( ScriptParameter )でJSONを受け取り、必要なキーだけ取り出します。これにより、システム全体で「引数はJSON」「中身の取り出し方も共通」という統一感が生まれ、読みやすさがぐっと向上します。

よく使う設計パターンの例

現場で使いやすいように、キー名をある程度パターン化しておくのもおすすめです。例えば:

  • "mode":処理モード(”new” / “edit” / “delete” など)
  • "id":メインのID
  • "layout":戻り先レイアウト名
  • "script":戻り先スクリプト名
  • "option":オプション的なフラグ(true/false など)

あらかじめ「よく使うキー名リスト」をチーム内で決めておくと、どのスクリプトでも同じような引数構造になり、理解しやすくなります。

既存システムへの導入のコツ

すでに稼働中のシステムにいきなり全てJSONを導入するのは難しいので、次のようなステップをおすすめします。

  1. 新しく作るスクリプトからJSON引数を採用する
  2. 改修のタイミングで、関係するスクリプトの引数だけJSON化する
  3. よく使われる共通サブスクリプトから順にJSON化していく

少しずつでも「新しい書き方」を混ぜていくことで、無理なくJSONベースの設計に移行していけます。

まとめ:ルールを1つ決めるだけで、設計が楽になる

FileMakerのスクリプト引数をJSONで統一するポイントは、次の通りです。

  • 引数は必ずJSONで渡す(JSONSetElementを使う)
  • スクリプト側ではJSONGetElementで値を取り出す
  • サブスクリプトにも基本は同じJSONを渡す
  • よく使うキー名はパターン化しておく

ほんの少し記述は増えますが、その代わりに「読みやすさ」と「変更のしやすさ」が大幅に向上します。長く使うシステムほど、この差が効いてきますので、ぜひ次のプロジェクトから取り入れてみてください。

※ 本稿は、生成AIを使用して執筆しています。重要な内容については、必ずご自身でマニュアル等をご確認ください。