カテゴリー内の他の記事

レコード更新におけるテーブル操作のテクニック

 

(著者:サイボウズ 後迫 孝

kintone アプリのレコードには、テーブルという複数の行を作成できます。 見積もりや月間タイムカード、訪問記録など、テーブルを利用するシーンは多いです。
このページでは、kintone REST APIを使ったテーブル操作を紹介します。

kintone REST APIを使って、レコード内のテーブルを更新するときには注意点があります。

  • レコード更新時にテーブルのデータを含まない場合には、テーブルのデータは保持される
  • レコード更新時にテーブルのデータを含む場合には、リクエストに含まれないデータは更新されない

これらの注意点を考慮し、さまざまなケースを紹介します。

まず、レコードを用意しましょう

事前に次のようにレコードのテキストとテーブルの2行を作成しておきましょう。
kintone APIはフィールドコードを使うため、今回は便宜上、フィールド名とフィールドコードは同じ名称にしておきます。

レコードの値を取得しましょう

レコードの値は、次のJSON形式で取得できます。

  • "type" ・・・フィールドタイプ
  • "id" ・・・テーブルの行のインデックス(1行目のidは0です)
  • "value" ・・・値
  • "Table"内の"id" ・・・行ID 

GET https://{subdomain}.cybozu.com/k/v1/record.json?app=2364&id=1
※ "app"・・・アプリID、 "id"・・・レコードID

テーブルの最後に値を追加する

行追加の場合、既存の行のIDをリクエストに含める必要があります。
※ 行の各フィールド の値を更新しない場合は、既存の行の値を省略することができます。

  • "app" ・・・更新するアプリのアプリID
  • "id" ・・・更新するレコードID
  • "Table" "value" 内の配列に含まれる "id"・・・既存の行のID
  • "Table" "value" 内の配列に含まれる "value"・・・追加する行の値

既存の行のIDを省略し、既にテーブルにあった行の値をすべてリクエストに含めることで
テーブルへ値の追加を行うこともできます。
※ 実際の挙動としては「既存の行をすべて削除し、リクエストに含まれるデータをテーブルに追加する」というものになります。

  • "app" ・・・更新するアプリのアプリID
  • "id" ・・・更新するレコードID
  • "Table" "value" 内の配列に含まれる "value"・・・既存の行の値+追加する行の値

実行後の画面

テーブルの1行目に挿入する

挿入の場合にも、テーブルの行追加と同様の処理になります。テーブルに表示したい順番でリクエストします。

  • "app" ・・・更新するアプリのアプリID
  • "id" ・・・更新するレコードID
  • "Table" "value" 内の配列に含まれる "id"・・・既存の行のID
  • "Table" "value" 内の配列に含まれる "value"・・・追加する行の値

こちらも行追加と同様に、既存行のIDを省略してテーブルに含めたい値をすべて含めることでもテーブルの更新が可能です。

実行後の画面

テーブルの1行の特定のフィールドのみを更新する

更新する行のIDを指定することで、その行の特定のフィールドのみを更新できます。
同じ行の他のフィールドを更新しない場合にはそのフィールドを省くことができます。
※ 既存の行のIDを省略した場合、対象行は削除されます。

  • "app" ・・・更新するアプリのアプリID
  • "id" ・・・更新するレコードID
  • "Table"内の"id" ・・・更新する行ID

実行後の画面

赤枠の部分のみが更新されています。

注意事項

存在しない行IDを指定した場合、エラーは出ず、新規追加として扱われます。
その際、テーブルに存在するがAPIで指定していない既存の行IDは削除されます。

補足)テーブルの内容をすべて削除する

テーブルを [] でしてして更新することで、削除できます。

  • "app" ・・・更新するアプリのアプリID
  • "id" ・・・更新するレコードID

このようにテーブル更新のテクニックを理解するだけで、さまざまな利用シーンに活用できるかと思います。
ぜひ、お試しください。

 

 

このTipsは、2014年4月版で確認したものになります。

 

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。