従業員IDを取得すると全員adminsistratorの番号になってしまう

お世話様です

従業員IDを社員番号という文字列に自動で入力させようとすると

全員が同じID アプリ作成者のIDを掴んできてしまいます

ここに掴みたいのですがよろしくお願いします

kintone.events.on([‘app.record.create.show’, ‘app.record.edit.show’],function(event){
 
  var loginUserid = kintone.getLoginUser()[‘id’]; // ログイン名を取得
  var path = ‘/v1/users’;
  var data = {
    id: loginUserid // ログインユーザーを指定
  };
 
  kintone.api(path, ‘GET’, data, function(resp){
    var record = kintone.app.record.get(); // レコード情報を取得
    record[‘record’][‘社員番号’][‘value’] = resp[‘users’][0][‘employeeNumber’];
    kintone.app.record.set(record); // レコード情報をセット
  }, function(resp){
    var errmsg = ‘社員番号取得時にエラーが発生しました。’;
    if (resp.message !== undefined){
      errmsg += ‘’ + resp.message;
    }
    alert(errmsg);
  });
});

hassyさん

cstap武井です。

 

ご提示のコードを当方の環境で試してみたところ、

恐らくhassyさんの求めておられる挙動になっておりました。

 

kintone.getLoginUser()[‘id’]の部分は、ログインユーザーによって異なるようになっていますので、

確かめるには、異なるログインユーザーで試す必要があります。

 

また、従業員IDはプロフィール画面でそれぞれのユーザーアカウントにて変更する必要があります。

hassyさん

と、思いましたが、よく見るとこれではダメですね。

 

原因は取得しているのがresp[‘users’][0][‘employeeNumber’];で固定になっているからです。

ループで取得したusersの中からログインユーザーのIDでマッチするものだけを抽出する必要があります。

或いは下記でもイケちゃいます。

 

kintone.events.on(['app.record.create.show', 'app.record.edit.show'],function(event){

kintone.api('/v1/users', 'GET', {codes: kintone.getLoginUser()['code']}, function (resp) {
var record = kintone.app.record.get();
record['record']['社員番号']['value'] = resp.users[0].employeeNumber;
kintone.app.record.set(record);
})

return event;
});

 

 

解決いたしました

ありがとうございました