はじめに
前回、カスタマイズスペシャリストの勉強を兼ねてSlack通知プラグインを作成してみました。
しかし、通知されたレコードが本当に確認されたのか不明なままでした。
そこで、kintoneで簡単な「足跡」機能を作成してみました。
コード
customize.js
(function () {
'use strict';
kintone.events.on('app.record.detail.show', function (event) {
const record = event.record;
const loginUser = kintone.getLoginUser();
const existUsers = record.足跡.value;
const codes = [];
// 足跡に登録済みユーザーのコードを配列に格納する
existUsers.forEach(user => {
codes.push(user.code);
});
// ログインユーザーが足跡に未登録の場合
if (codes.indexOf(loginUser.code) === -1) {
// 足跡に追加する
existUsers.push({ 'code': loginUser.code });
const putParams = {
'app': kintone.app.getId(),
'id': record.レコード番号.value,
'record': {
'足跡': {
'value': existUsers,
}
},
};
// レコードを更新する
kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', putParams, (resp) => {
// 成功したので再読込みする
location.reload();
}, (error) => {
console.log(error);
});
}
});
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], function (event) {
const record = event.record;
// レコード再利用の場合
if (event.reuse === true) {
// 足跡を初期化する
record.足跡.value = [];
}
// 足跡を非活性にする
record.足跡.disabled = true;
return event;
});
})();
使い方
対象のアプリに「ユーザー選択」フィールドを追加します。
フィールドコードは「足跡」にします。
次にコード(customize.js)を対象のアプリにアップロードします。
「アプリを更新」を忘れずに行います。
アップロードの仕方は こちら を参考にしてください。
動作確認
対象のアプリでレコード登録を行います。
※この例ではkintoneアプリストアの「商談報告書」を利用しています。
必要な情報を入力して、保存すると「足跡」にログインユーザー(N.N)が登録されます。
※JSカスタマイズで作成者を「足跡」に残さない対応も可能です。
次に別のユーザー(VIP1)でログインして先程のレコードを閲覧します。
「足跡」を確認すると、閲覧したユーザー(VIP1)が「足跡」に追加されます。
ポイント
同じユーザーで再閲覧しても「足跡」には登録されません。
注意
レコードコピーには対応できていません。
コードを修正しました。再利用は event.reuse で判断するようです。