レコードの編集

レコードを編集するには、HTTP PATCH メソッドを使用してデータベース名、レイアウト、およびレコード ID を records API エンドポイントで指定します。

HTTP メソッド

PATCH

URL

/fmi/data/version/databases/database-name/layouts/layout-name/records/record-id

version – リクエストされた FileMaker Data API のバージョン。v1v2、または vLatest のいずれかを使用できます。

database-name – 共有データベースの名前

layout-name – レコード編集のためのコンテキストとして使用するレイアウトの名前

record-id – 編集するレコードのレコード ID

HTTP ヘッダ

Content-Type: application/json

Authorization: Bearer session-tokensession-token はデータベースセッションに固有の X-FM-Data-Access-Token の値です。

引数

更新するフィールド/値ペアが含まれた JSON 形式のレコードデータ。portalData の指定を使用してレイアウト上にある関連レコードまたはポータルをこのデータで指定することもできます。FileMaker Pro のインスペクタに表示されるオブジェクト名か、関連テーブル名のいずれかをポータル名にすることができます。

指定したフィールドのみが更新されます。レコード内の他のフィールドは変更されません。fieldData の値として「{}」を指定した場合、目的のレコードは更新されません。

例:

コピー

  "fieldData": {
    "First Name": "Joe",
    "deleteRelated": "Orders.3",
    "Date Field": "2029/1/20"
  },
  "portalData": {
    "JobsTable": [
      {
        "recordId": "70"
        "modId": "4"
        "JobsTable::Name": "Contractor" 
      }
    ]
  },
  "options": {
    "entrymode": "script",
    "prohibitmode": "script"
  },
  "dateformats": 2
}

その他のオプションのリクエストボディの引数:

  • modId - 修正 ID を指定すると現在のバージョンのレコードを編集することができます。修正 ID の値がデータベース内の現在の修正 ID と一致しない場合、レコードは変更されません。

  • options - データを書き込むとき、これらのオプションで次を制御できます:

    • entrymode - フィールドに [データの入力時にユーザによる上書きを許可する] 入力値の制限オプションが選択されているかどうかを無視して代わりにこのオプションを使用します。値「script」はフィールドのデータ入力値の制限の要件を無視します (スクリプトがこれらの要件を無視するためにこのように名付けられました)。値「user」 (デフォルト) はフィールドの入力値の制限の要件に従います。

    • prohibitmode - フィールドに [データ入力時の値変更の禁止] 入力値の自動化オプションが選択されているかどうかを無視して代わりにこのオプションを使用します。値「script」はフィールドの入力値の自動化の要件を無視します (スクリプトがこれらの要件を無視するためにこのように名付けられました)。値「user」 (デフォルト) はフィールドの入力値の自動化の要件に従います。

  • dateformats - 日付およびタイムスタンプフィールドの形式を指定します。米国形式の場合は値が 0、ファイルロケールの形式の場合は 1、ISO 8601 形式の場合は 2 です。指定されていない場合、デフォルト値は 0 です。

  • script.prerequestscript.presortscript - リクエストの一部として FileMaker スクリプトを実行します。「別のリクエストによるスクリプトの実行」を参照してください。

応答

応答のボディ、およびエラーコード 0 を表示するメッセージ配列。

例:

コピー
{
  "response": {
    "modId": "3"
  },
  "messages": [
    {
      "code": "0",
      "message": "OK"
    }
  ]
}

エラー応答」を参照してください。

メモ 

  • FileMaker Data API を使用してレコードを編集する際は (上記 entrymode オプションで上書きされない限り) フィールドの入力値の制限がデフォルトで強制されます。フィールドの入力値の制限が強制されていてデータがフィールドの入力値の制限を満たしていない場合、エラーメッセージが返されてレコードは更新されません。

  • 関連レコードを削除するには、deleteRelated 構文を使用できます。

    ID が「3」の 1 つのレコードを関連テーブル「Orders」から削除する場合:

    "deleteRelated" : "Orders.3"

    ID が「7」および「9」のすべてのレコードを関連テーブル「Orders」から削除する場合:

    "deleteRelated" : ["Orders.7", "Orders.9"]