kintoneのテーブルを更新する
このページでできること
kintoneのテーブル(SUBTABLE)を、workrunから更新する方法を説明します。
workrunのkintone「レコードを更新する」では、テーブルフィールドは「フィールド」欄に表示されず、標準ピースから直接更新できません。テーブルを更新する場合は「カスタムAPI呼び出し」を使用します。
使用するピース
- 必要に応じてCodeピース
- 前のピースから取得した複数データを、テーブル用の配列へ組み立てる場合に使用します。
1. 更新対象のレコードを確認する
kintoneでは、1件のレコードを更新するREST APIを使ってテーブルを更新します。
- URL:
- メソッド:
- :更新対象のアプリID
- :更新対象のレコードID
2. テーブルのフィールドコードを確認する
kintoneのフォーム設定で、テーブル本体とテーブル内の各フィールドのフィールドコードを確認します。
画面に表示される項目名ではなく、kintone側で設定しているフィールドコードを使用します。
3. カスタムAPI呼び出しを設定する
カスタムAPI呼び出し で次のように設定します。
URL
メソッド
ボディ
次は、テーブル「明細」の既存行を1行更新し、新しい行を1行追加する例です。
- 既存行を更新する場合は、その行の を指定します。
- 新しい行を追加する場合は、行の を指定せず を設定します。
- 、、、、 は、実際のkintone環境に合わせて置き換えてください。
既存のテーブル行を残したい場合は注意してください。
kintoneでは、テーブルを更新するとき、既存行の一部だけを送信するとリクエストに含めなかった行が削除されます。既存行を残しながら一部だけ更新・追加する場合は、現在のテーブルを取得し、残したい既存行をすべて含めて送信してください。
4. 既存の行を更新する場合
先に現在のレコードを取得し、テーブル行の を確認します。
更新対象の行には取得した行IDを設定し、残したい他の行もリクエストに含めます。
行IDを指定せずに既存行と同じ内容を送信すると、新しい行として扱われ、行IDが変わる場合があります。
5. 新しい行を追加する場合
新規行には行IDを指定せず、テーブル内のフィールド値だけを設定します。
ただし、既存のテーブルに行を追加する場合も、現在存在する行を残したいときは既存行を含めた配列を送信してください。
複数行を組み立てる場合
前のピースで取得した複数データからテーブル行を動的に生成する場合は、Codeピースでkintoneのテーブル形式に合わせた配列を作成し、その結果を「カスタムAPI呼び出し」のボディへ渡します。
エラーになった場合の確認ポイント
- テーブル本体のフィールドコードが正しいか
- テーブル内の各フィールドコードが正しいか
- テーブルの が配列になっているか
- 更新対象のアプリID・レコードIDが正しいか
- 既存行を更新する場合、正しい行IDを指定しているか
- APIトークンにレコード編集権限があるか