Claris FileMaker 2024 -「FileMaker Data API を実行」スクリプトステップー追加機能で作成や更新などのレコード操作が可能に!

2024年06月06日 04:36 PM

Claris FileMaker 2024


Claris FileMaker 2024 では、「FileMaker Data APIを実行」スクリプトステップに次の機能が新たにサポートされることになりました。

■追加された機能

1. レコードデータを変更する書き込み操作リクエストで、action キーに create、update、delete、または duplicate 値を設定できます

2. 他のスクリプトステップと同様に Get (最終エラー)、Get (最終エラー詳細)、Get (最終エラー位置) 関数で適切なエラー情報を返します

3. [データの入力時にユーザによる上書きを許可する] 制限オプションの上書きリクエストで、新しい options.entrymode キーに user (制限ルールに従う) または script (制限ルールを上書きする) を設定できます

■「レコードデータを変更する書き込み操作リクエスト」で追加されたactionキーを試してみよう

これまでサポートされていたactionキーは

  • 「metadata」(テーブルなどの構造の取得)
  • 「read」(データをJSON形式で取得)

のみでしたが、FileMaker 2024では、

  • 「create」(レコードの作成)
  • 「update」(レコードの更新)
  • 「duplicate」(レコードの複製)
  • 「delete」(レコードの削除)

がサポートされるようになりました。

次のようなレイアウトを準備します。
レイアウト名:「list」テーブルオカレンス名:「案件管理」

まずは既存の「metadata」を試してみます。

スクリプトを実行すると以下のような結果が返ってきます。

次に既存の「read」も試してみます。

では、追加された「create」を試してみます。

レコードを1件追加することができました。(レコードIDの値が 9のもの)

続いて「update」を試してみます。

JSON内でレコードIDの値を9に指定し「名前」を「白井」に設定することができました。

試しに、更新しようとするレコードが編集中の状態の場合、スクリプトを実行するとエラー番号301のエラーが発生し更新はできません。

Get (最終エラー) でもエラー番号を取得できるようになっています。

ちなみに存在しないレコードIDを指定すると、エラー番号101(レコードがみつかりません)が発生します。

次は「duplicate」を実行してみます。今作成したレコードIDが9のレコードを複製します。

レコードが複製され、レコードIDが10のレコードができました。

では最後に、複製してできたレコードIDが10のレコードを「delete」で削除してみます。

無事レコードが削除されました。

■追加されたoptions.entrymode キーについても確認してみましょう

まずは準備として「案件名」フィールドのオプションで「データの入力時にユーザによる上書きを許可する」と「データの入力時のみ」にチェックをし「最大文字数」を10という制限をかけておきます。

「update」を使い「options.entrymode」 キーを「user」にし、案件名に「あいうえおかきくけこさ」を設定するスクリプトを作成しました。

実行してみると、「user」の場合は入力値の制限ルールに従い、11文字である「あいうえおかきくけこさ」を設定することはできませんでした。

次に「options.entrymode」 キーを「script」にしたスクリプトを作成しました。

「script」にセットした場合は制限ルールを上書きできるので、エラーがでることなく最大文字数10という制限を無視して「あいうえおかきくけこさ」の値が設定されました。

まとめ

これらの機能追加により、必要なフィールドが配置されたレイアウトさえ準備しておけば、別のテーブルオカレンスのレイアウトを表示している場合でもレイアウトを切り替えずにレコードを操作できます。

これによって高速にスクリプトを実行できるようになり、使い方によっては大きな強みになるかもしれないですね。

無料評価版ダウンロードが可能

Claris FileMaker 2024 が45日間無料でお試しいただける無料評価版がダウンロードできます!
機能制限等は一切ありません。
購入前に新機能を試してみたい方、ご購入を検討されている方ぜひボタンをクリックしてください!(Caris サイトへ移動します)