ユーザー選択フィールドでユーザーを選択した際に、ルックアップのようなイメージでプロフィールの従業員ID(employeeNumber)をフィールドに取り込みたい

以下のような方法を試してみましたが、コード、氏名はOKでしたが、社員番号は駄目でした。基本的なことがわかっていないのだと思いますが、ご指導いただけると助かります。宜しくお願いします。

 

kintone.events.on([‘app.record.edit.change.ユーザー選択’],function(event){
var record = event.record;
record[‘コード’][‘value’] = record[‘ユーザー選択’][‘value’][0][‘code’];
record[‘氏名’][‘value’] = record[‘ユーザー選択’][‘value’][0][‘name’];
record[‘社員番号’][‘value’] = record[‘ユーザー選択’][‘value’][0][‘employeeNumber’];
return event;
});

takashi.k さん

フィールド形式 にあるように、ユーザ選択項目は、code と name しか持っていません。

employeeNumber は、ユーザーエクスポート API(JSON)のcodes指定で取得できます。

あとは下記の検討が必要です。
・ユーザ選択クリア時もchange イベント発生
・複数ユーザ選択可能

rex0220さん、コメントありがとうございます。

「ユーザーエクスポート API(JSON)の codes指定」というものを使うのですね。

まだ、その辺りの事はよく理解できておりませんが、リンクを参考に勉強してみます。

その他の懸念は、先ず employeeNumber の取得に成功してから考えます。

宜しくお願いします。

 

こんなコードで取得できると思います。

 var params = {
codes : [record['ユーザー選択']['value'][0]['code'] ]
};
return kintone.api('/v1/users', 'GET', params, function(resp) {
console.log('users resp', resp);
if (resp.users.length > 0) {
console.log('users[0] employeeNumber', resp.users[0].employeeNumber);
record['社員番号']['value'] = resp.users[0].employeeNumber;
}
else {
record['社員番号']['value'] = '';
}
return event;
});

rex0220さん、コメントありがとうございます。

別スレッド「従業員IDを取得すると全員adminsistratorの番号になってしまう」も参考にして、なんとなく実現できました。

が、引用しただけで、スクリプトの詳細がまだ理解できていないので、もう少し勉強してみます。

ありがとうございました。