はじめに
今回は、kintone REST APIによるデータ更新処理方法のご説明となります。よくあるデータ更新処理の例として、マスタデータとなる顧客情報アプリ画面で住所等を更新したら、トランザクション側の問い合わせ管理画面にも反映するといった動作について考えます。
kintoneアプリでは、フォーム(画面)に配置したルックアップ項目にて外部アプリのレコードを参照し、項目値を取得することができます。しかし、ルックアップ項目は取得した値を格納しており、都度参照していないので外部アプリ側でのレコード項目値の更新が反映されません。そこで、javascriptとkintone REST APIを使用したデータ更新処理の出番となります。
kintoneでのマスタデータ反映の方法論
kintoneにはタスクスケジューラのような時間指定での処理実行機能が無いため、マスタアプリの更新が行われた後、トランザクションデータへの一括反映処理を実行できるようなタイミングがレコード保存イベントしかありません。
マスタアプリ側での保存ボタン押下(レコード保存イベント)の際に、そのレコードを参照しているトランザクションアプリのレコードを更新するという方法で、どのように更新処理を行うか考えます。
マスタデータ反映処理のイメージ
トランザクションアプリから更新対象レコードIDの取得
REST APIでのレコード更新のキー項目は、レコードIDに固定となっています。この更新キーを取得するため、トランザクションアプリから「マスタアプリの更新されたレコードのキー項目値」をルックアップ項目に持つレコードをすべて抽出し、抽出したレコードデータから更新対象のレコードIDを取得します。
更新用レコードデータの作成
トランザクションアプリの更新用レコードとして以下のセットを作成します。
- 更新対象のレコードID(下図の"id":1)
- レコード項目リスト(下図の"record”)
- トランザクションアプリのルックアップ項目のフィールドID(下図の”会社名”)
- マスタアプリの更新レコードのキー項目値(下図の”テスト株式会社”)
・更新用レコードのイメージ
{
"id":1,
"record":{
"会社名":"テスト株式会社"
}
}
kintoneアプリ画面でルックアップ項目の「取得」をクリックして項目値を更新した場合と同様にREST APIによるレコード更新でルックアップ項目が更新された場合でも、「ほかのフィールドのコピー」でコピーされる項目も更新されます。
トランザクションアプリのレコードを更新する
トランザクションアプリのアプリIDと②で作成した更新用レコードデータを指定して、トランザクションアプリの更新対象レコードを更新します。
おわりに
今回は、kintone REST APIを利用したデータ更新の概念についてご説明しました。次回は、javascriptを使用した具体的な実装について説明いたします。