3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kintoneで「足跡」機能を作ってみた

Last updated at Posted at 2023-01-01

はじめに

前回、カスタマイズスペシャリストの勉強を兼ねて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;
  });

})();

使い方

対象のアプリに「ユーザー選択」フィールドを追加します。
フィールドコードは「足跡」にします。
ユーザー選択.png
次にコード(customize.js)を対象のアプリにアップロードします。
「アプリを更新」を忘れずに行います。
アップロードの仕方は こちら を参考にしてください。
JSアップロード.png

動作確認

対象のアプリでレコード登録を行います。
※この例ではkintoneアプリストアの「商談報告書」を利用しています。
レコード登録1.png

必要な情報を入力して、保存すると「足跡」にログインユーザー(N.N)が登録されます。
※JSカスタマイズで作成者を「足跡」に残さない対応も可能です。
レコード詳細1.png

次に別のユーザー(VIP1)でログインして先程のレコードを閲覧します。
レコード詳細2.png

「足跡」を確認すると、閲覧したユーザー(VIP1)が「足跡」に追加されます。
レコード詳細3.png

ポイント
同じユーザーで再閲覧しても「足跡」には登録されません。

注意
レコードコピーには対応できていません。
コードを修正しました。再利用は event.reuse で判断するようです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?