kintone 누가 읽었습니까? 기능

그 기록 누가 읽었는지 모르겠다;;



히사시 부리입니다.
요전날, 「투고한 레코드를 누가 읽었는지 확인하고 싶다!」라고 상사로부터 사령을 받았습니다.

앱 준비





앱 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);
       });
    });

조금 딱딱한 코드가되어 버렸습니다만,
서둘러 보스의 요청이 대답되었습니다! !

좋은 웹페이지 즐겨찾기