見出し画像

【kintone】レコードが新規登録・追加か更新かどうかの判定|JavaScriptサンプル

kintone(キントーン)の標準機能でできないところをJavaScriptやCSSを使って実現しています。 今回はレコードが新規登録・追加なのか、更新なのかを判定する方法です。JavaScriptサンプルコードをご紹介します。

■ kintoneで登録か更新か判断できるのか

◎ こんなことありませんか?
・レコードを登録した時に、他のアプリも同時に登録したい
・ある項目を変更した時に、他のアプリも同時に更新したい
・とにかくkintoneでも登録か更新かを判断したい

リビジョン番号を使えばkintoneでも登録か更新かの判断ができます!

画像1

■ 完成形

画像2

保存ボタンを押した後の保存成功後の処理で、レコードの新規登録・追加か更新かを判断して、アラートを表示しています。

ポイント!
・登録か更新かは、レコードのリビジョン番号(revision)で判定
・判定のタイミングは保存成功後の処理
「app.record.create.submit.success」
「app.record.edit.submit.success」
「app.record.index.edit.submit.success」

■ JavaScript サンプルコード

(function() {
"use strict";

/*
* 登録画面・編集画面・一覧画面/保存成功後
*/
function editSubmitSuccess(event) {

 // レコード取得
 var record = event.record;

 if (record['$revision']['value'] > 1) {
   // 更新の時($revision>1)
   alert('更新の時:$revision = ' + record['$revision']['value']);
 } else {
   // 登録の時($revision=1)
   alert('登録の時:$revision = ' + record['$revision']['value']);
 }

 return event;
}

/* ------------------------------------------------------------------ */

// 登録画面・編集画面・一覧画面/保存成功後
kintone.events.on(['app.record.create.submit.success',
                  'app.record.edit.submit.success',
                  'app.record.index.edit.submit.success'], editSubmitSuccess);

})();

kintoneでは、レコードの変更履歴をリビジョン番号(revision)で管理しています。保存成功後の処理で「$revision」の値を取得することにより、新規か更新かの判断ができます。新規の場合はリビジョン番号が「1」、更新の場合はリビジョン番号が「2以上」となります。

注意点!
他のアプリではなく今保存しようとしているレコードのある項目に何かをセットしたい時、以下の保存実行前イベント
「app.record.create.submit」
「app.record.edit.submit」
「app.record.index.edit.submit」
では、レコード追加の際にレコード番号やリビジョン番号を判定するとエラーになります。(更新時は取得可)


この記事が気に入ったらサポートをしてみませんか?