はじめに
kintoneアプリのレコードは、テーブルという複数の行を作成できます。
見積もりや月間タイムカード、訪問記録など、テーブルを利用するシーンは多いです。
本記事では、kintone REST APIを使ったテーブル操作を紹介します。
kintone REST APIを使って、レコード内のテーブルを更新するときには次の2つの注意点があります。
- レコード更新時にテーブルのデータを含まない場合には、テーブルのデータは保持される。
- レコード更新時にテーブルのデータを含む場合には、リクエストに含まれないデータは更新されない。
これらの注意点を考慮し、さまざまなケースを紹介します。
準備:アプリとレコードの作成
次のようにフィールドを設定したアプリを作成しました。
「Text」と「Number」はテーブル内に配置します。
| フィールド名 | フィールドタイプ | フィールドコード |
|---|---|---|
| Table | テーブル | Table |
| Text | 文字列(1行) | Text |
| Number | 数値 | Number |
アプリを作成したら、次のようにレコードを1つ追加してください。
レコードの値の取得
まずは1件のレコードを取得するAPIを使ってアプリのレコードを取得し、実際のレコードの値を確認してみましょう。
サンプルコードは次のリンクを参考にしてください。
1件のレコードを取得する
取得した結果は次のとおりです。
レコードの値は、JSON形式で取得できます。
|
|
その他フィールドの形式については次のリンクを参考にしてください。
フィールドの形式
レコードの更新
では、1件のレコードを更新するAPIを使って、テーブルフィールドを更新してみましょう。
テーブルの最後に値を追加する
行を追加する場合、既存の行のIDをリクエストに含める必要があります。
サンプルコードは次のリンクを参考にしてください。
1件のレコードを更新する
行の各フィールドの値を更新しない場合は、次のように既存の行の値を省略できます。
|
|
また、既存の行のIDを省略し、すでにテーブルにあった行の値をすべてリクエストに含めると、テーブルに値の追加ができます。
実際の挙動は「既存の行をすべて削除し、リクエストに含まれるデータをテーブルへ追加する」となります。
|
|
更新した結果は次のとおりです。
テーブルの1行目に挿入する
挿入の場合にも、テーブルの行追加と同様の処理になります。
テーブルに表示したい順番でリクエストします。
行の各フィールドの値を更新しない場合は、先ほどと同様に既存の行の値を省略できます。
|
|
またこちらも同様に、既存の行のIDを省略し、すでにテーブルにあった行の値をすべてリクエストに含めると、テーブルに値の追加ができます。
実際の挙動は「既存の行をすべて削除し、リクエストに含まれるデータをテーブルへ追加する」となります。
|
|
挿入した結果は次のとおりです。
テーブルの1行の特定のフィールドのみを更新する
更新する行のIDを指定することで、その行の特定のフィールドのみを更新できます。
同じ行の他のフィールドを更新しない場合にはそのフィールドを省くことができます。
既存の行のIDを省略した場合、対象行は削除されます。
|
|
テーブルの1行の特定のフィールドのみを更新した結果は次のとおりです。
赤枠の部分のみが更新されています。
注意事項
存在しない行IDを指定した場合、エラーは出ず、新規追加として扱われます。
その際、テーブルに存在するがAPIで指定していない既存の行IDは削除されます。
補足:テーブルの内容をすべて削除する
Tableオブジェクト内のvalue配列を空にして指定し、更新することで削除できます。
|
|
結果は次のとおりです。
おわりに
このようにテーブル更新のテクニックを理解するだけで、さまざまな利用シーンに活用できるかと思います。
ぜひ、お試しください。
このTipsは、2025年6月版kintoneで動作を確認しています。
