複数のレコードを更新する

目次

複数のレコードを更新する

複数のレコードを更新します。

  • 一度に更新できるレコードは100件までです。
  • レコード更新には、レコードIDを指定する方式と、フィールドの値を指定する方式があります。
  • 処理に失敗すると、リクエストに指定したレコードの更新はすべてキャンセルされます。

URL

通常のアプリ
https://sample.cybozu.com/k/v1/records.json
ゲストスペースのアプリ
https://sample.cybozu.com/k/guest/GUEST_SPACE_ID/v1/records.json

HTTP メソッド

PUT

必要なアクセス権

  • アプリのレコード編集権限
  • 値を更新するレコードの編集権限
  • 値を更新するフィールドの編集権限

リクエスト

パラメーター
パラメーター名 必須 説明
app 数値または文字列 必須 アプリ ID
records 配列 必須 更新するレコードの情報
records[].id 数値または文字列 条件必須 レコード ID
レコードID を指定して更新する場合、idを指定します。
updateKeyを指定する場合は、idを指定できません。
records[].updateKey オブジェクト 条件必須 フィールドコードと値
フィールドの値を指定して更新する場合、updateKeyを指定します。
指定できるフィールドは、重複禁止を設定した「文字列(1行)」または「数値」フィールドのみです。
idを指定する場合は、updateKeyを指定できません。
records[].record オブジェクト 省略可 レコード(フィールドコードとフィールドの値)を指定したオブジェクト
フィールドの形式の詳細は、 フィールド形式を参照してください。
省略すると、データは更新されません。
records.revision 数値または文字列 省略可 期待しているリビジョン番号
実際のリビジョン番号と一致しない場合はエラーとなり、レコードは更新されません。
値に「-1」を指定する、または指定しなかった場合はリビジョン番号は検証されません。
リクエストの例
URL

https://sample.cybozu.com/k/v1/records.json

ヘッダー
1
2
3
4
{
  "X-Cybozu-API-Token": "API_TOKEN",
  "Content-Type": "application/json"
}

リクエストヘッダーの詳細は kintone REST API の共通仕様を参照してください。

ボディ(レコード ID を指定する場合)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "app": 1001,
  "records": [
    {
      "id": 1,
      "revision": 4,
      "record": {
        "文字列1行_0": {
          "value": "ABC"
        }
      }
    },
    {
      "id": 2,
      "revision": 1,
      "record": {
        "文字列1行_1": {
          "value": "DFG"
        }
      }
    }
  ]
}
ボディ(フィールドの値を指定して更新する場合)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  "app": 1001,
  "records": [
    {
      "updateKey": {
        "field": "文字列1行_0",
        "value": "CODE123"
      },
      "revision": 4,
      "record": {
        "文字列1行_1": {
          "value": "123"
        }
      }
    },
    {
      "updateKey": {
        "field": "文字列1行_0",
        "value": "CODE456"
      },
      "revision": 1,
      "record": {
        "文字列1行_1": {
          "value": "456"
        }
      }
    }
  ]
}

レスポンス

プロパティ
プロパティ名 説明
records 配列(オブジェクト) 更新したレコードの ID とリビジョン番号のオブジェクトの配列
records[].id 文字列 更新したレコードのレコード ID
records[].revision 文字列 更新したレコードのリビジョン番号
レスポンスの例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "records": [
    {
      "id": "1",
      "revision": "5"
    },
    {
      "id": "2",
      "revision": "2"
    }
  ]
}

サンプルコード

curl を使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
curl -X PUT 'https://sample.cybozu.com/k/v1/records.json' \
  -H 'X-Cybozu-API-Token: API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "app": 1,
    "records": [
      {
        "id": 1,
        "record": {
          "文字列1行_0": {
            "value": "ABC"
          }
        }
      },
      {
        "id": 2,
        "record": {
          "文字列1行_1": {
            "value": "DFG"
          }
        }
      }
    ]
  }'
kintone REST API リクエストを送信する APIを使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const body = {
  app: kintone.app.getId(),
  records: [
    {
      id: 1,
      record: {
        文字列1行_0: {
          value: 'ABC'
        }
      }
    },
    {
      id: 2,
      record: {
        文字列1行_1: {
          value: 'DFG'
        }
      }
    }
  ]
};

await kintone.api(kintone.api.url('/k/v1/records.json', true), 'PUT', body);

注意事項

添付ファイルフィールドを更新するとき
  • すでにファイルを添付しているフィールドに、新しくファイルを追加する場合、添付済みのファイルのfileKeyもフィールドの値に指定してください。
  • すでに添付しているファイルを更新する場合、 ファイルをアップロードする APIでファイルをアップロードし直し、取得したfileKey 複数のレコードを更新する APIで指定してください。
  • すでに添付しているファイルをフィールドから削除する場合、削除するファイルのfileKeyをフィールドの値から除外してください。
テーブルを更新するとき
  • records[].recordでテーブルのフィールドコードを省略すると、そのテーブルのデータは保持されます。
    ただし、テーブルの一部を更新したい場合、既存のすべての行をリクエストに含めてください。
    リクエストに指定しない行は、削除されます。
  • 複数のレコードを取得する APIで取得したテーブルの行のidを指定すると、指定されたidの行を更新します。
    idを指定せずに行の値を変更すると、idが変わります。
  • 行の並び順は、リクエストに指定した配列の並び順です。
    行の並べ替えのみを行う場合は、並べ替えをしたidだけのリクエストデータを指定してください。

制限事項

  • 次のフィールドは、値を更新できません。
    • ルックアップ元からコピーされるフィールド
    • ステータス
    • カテゴリー
    • 計算
    • 作業者
    • 作成者
    • 作成日時
    • 更新者
    • 更新日時
    • 自動計算が設定されている文字列1行フィールド