新規投稿
フォローする

REST API GETした内容で判断してフィールド処理をしたいが、、、

ユーザのグループがabcdeだったら

フィールド['チェック']を編集不可にするコードです。

が、どうすれば良いでしょうか。

alert(1),alert(2)は順番通りに出ますが。。

 

(function() {
  'use strict';
  kintone.events.on('app.record.create.show', function(event) {

            var record = event.record;

            var user_group,
            group_ary_count,
            userType ="",
            user_group_ary = [],
            user = kintone.getLoginUser();

        /*--ユーザーの所属グループのコードを表示する ※複数件ある場合--*/ 
    kintone.api('/v1/user/groups','GET',{
            code:user.code
        },function(resp){
            //所属グループの数を数える
            group_ary_count = resp.groups.length;
            //所属グループの中に特定のグループがあるかの場合分け
            for(var i = 0; i < group_ary_count; i++){
                user_group = resp.groups[i].code;
                if(user_group.slice(0, 5) === "abcde"){

     alert(1);
                   userType = "aGroup"
                }
            }
      });
      
           
                    setTimeout(() => {
                      if(userType ==="aGroup"){
                      alert(2);
                      record['チェック'].disabled  = true;
                      }
                      return event;  
                    },1000);
                             
  });
})();

1

2件のコメント

Avatar
5MP2

こんにちは。

想像ですが、kintone.api()は非同期で動作するため
https://developer.cybozu.io/hc/ja/articles/202166310

下記の通り、Promiseをreturnする必要があるかと思います。
https://developer.cybozu.io/hc/ja/articles/204564604

record['チェック'].disabled  = true;
の後に、return event; して
return kintone.api() な感じです。

0
Avatar
井俊

40F1.2様、ご回答いただき、感謝します。

以下のように書きかましたら、希望の動きとなりました。

お陰様で、少し理解が進みました。m(__)m

(function() {
  'use strict';
    kintone.events.on(['app.record.edit.show'], function(event) {
    var record = event.record;

      var user_group,
      group_ary_count,
      user_group_ary = [],
      userType = "",
      user = kintone.getLoginUser();

      return new kintone.Promise(function(resolve, reject) {
      /*--ユーザーの所属グループのコードを表示する ※複数件ある場合--*/ 
          kintone.api('/v1/user/groups','GET',{
              code:user.code
          },function(resp){
              //所属グループの数を数える
              group_ary_count = resp.groups.length;
              //所属グループの中に特定のグループがあるかの場合分け
              for(var i = 0; i < group_ary_count; i++){
                  user_group = resp.groups[i].code;
                  if(user_group.slice(0, 5) === "abcde"){
                    userType = "abcde"
                  }
              }
              
              if(userType ==="abcde"){
                  record['チェック'].disabled  = true;
              }
              
              resolve(event); 
          
          });
      });  

  });
})();
1
サインインしてコメントを残してください。