1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

kintone誰が読んだの?機能

Posted at

#そのレコード誰が読んだのかわからない;;

おひさしぶりですうぇるです。
先日、「投稿したレコードを誰が読んだか確認したい!」と上司から司令をいただきました。

#アプリの用意
image.png

アプリID:717

フィールド名 フィールドの種類 フィールドコード
文字列 (1行) 文字列(1行) 文字列__1行_
読んだ人 ユーザー選択 既読

#JavaScriptでカスタマイズ

イベントハンドラは一回変数に

    const event1 = ['app.record.create.show','app.record.edit.show'];
    const detail = 'app.record.detail.show';
    const index = 'app.record.index.show';

読んだ人フィールドは編集できないように

kintone.events.on(event1, function(event){
        //読んだ人フィールドは入力不可
        const r = event.record;
        r['既読'].disabled = true;
        return event;
    });

①自分のユーザ名が既読に入っているかチェック
②入っていたら処理をやめる
②’入っていなかったら今入っている人をユーザ選択フィールドに合わせてobjに格納
③自分のユーザ名をobjに追加
④apiでPUT

kintone.events.on(detail, function(event){
        //既読の仕組みはここ
        const r = event.record;
        const User = kintone.getLoginUser();
        for(var num = 0; num < r['既読']['value'].length; num++){
            if(r['既読']['value'][num]['code'] === User.code){
                return ;
            }
        }
       //オブジェクト作っておく
       var obj = {};
       obj['app']    = 717;
       obj['id']     = r['レコード番号'].value;
       obj['record'] = {};
       obj['record']['既読'] = {};
       obj['record']['既読']['value'] = [];
       
       //今入っている人を数えて一緒に入れる
       for (var i = 0; i < r['既読']['value'].length; i++) {
           obj['record']['既読']['value'][i] = {};
           obj['record']['既読']['value'][i]['code'] = {};
           obj['record']['既読']['value'][i]['code'] = r['既読']['value'][i]['code'];
       }
       
       //ログインユーザを読んだ人フィールドに追加
       obj['record']['既読']['value'][r['既読']['value'].length] = {};
       obj['record']['既読']['value'][r['既読']['value'].length]['code'] = {};
       obj['record']['既読']['value'][r['既読']['value'].length]['code'] = User.code;
       kintone.api('/k/v1/record', 'PUT', obj, function(resp){
           console.log(obj);
       });
    });

ちょっとベタベタなコードになってしまいましたが、
取り急ぎは上司の要望は答えられました!!

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?