kintoneで作成したアプリでCSV出力をするとログインID(弊社では、メールアドレス)が出力されると思いますが、(弊社都合で、ログインIDを社員IDに変更ができないため)、
それと別に、GAROON側で利用している社員番号を自動取得して、レコードの作成者と共に、
とあるアプリ(経費精算アプリ)のレコード作成時に、レコードの作成者の社員番号として登録したいのですが、
何か良い実現方法はないでしょうか?
GAROON側のユーザー情報をCSVで吐き出し、kintone側の社員情報アプリに入れ、
アプリのレコードを作成する際に、
(こちらの記事を参考にして、)
自動ルックアップでkintoneの社員情報アプリに入れた社員番号の取得はできましたが、
社員が増えるたびに、kintone側の社員情報アプリにも手動で入れないといけないので、できれば、サイボウズ側のプロフィールの情報を自動で取得できる方法があればと思い、質問させていただきました。
koichi様
ご回答いただきありがとうございます。
共通管理の従業員ID、これをキントーン側にAPIで持ってこれるのですね!とても助かります。
URLを参考にして、やってみたのですが、consoleログに従業員IDを表示させることはできたのですが、
画面上のフォーム(文字列(1行)、フィールド名:社員番号、フィールドコード:社員番号、必須項目にする)に従業員IDをうまくセットすることができませんでした。
consoleログにエラーは表示されておりません。
ソースで間違っているところがあれば教えていただけないでしょうか?
よろしくお願いします。
(function() {
“use strict”;
var events1 = [‘app.record.create.show’];
kintone.events.on(events1, function(event) {
var record = event.record;
var user = kintone.getLoginUser();
var params = {
codes : user.code
};
console.log(params);
return kintone.api(‘/v1/users’, ‘GET’, params, function(resp) {
//console.log(‘users resp’, resp);
if (resp.users[0].employeeNumber) {
console.log(‘users[0] employeeNumber’, resp.users[0].employeeNumber);
// 取得したレコードの値を社員番号にセット
record[‘社員番号’][‘value’] = resp.users[0].employeeNumber;
} else {
var errorDisplayField = kintone.app.record.getSpaceElement(‘error_display_field’);
errorDisplayField.parentNode.style.width = ‘250px’;
// 文字列要素
var errorDisplayDiv = document.createElement(‘div’);
errorDisplayDiv.style.backgroundColor = ‘#E5505C’;
errorDisplayDiv.style.color =‘#FFFFFF’
errorDisplayDiv.innerHTML = ‘Garoonに従業員番号が登録されていません。管理者へお問い合わせください’;
errorDisplayField.appendChild(errorDisplayDiv);
}
return event;
});
});
})();
console.log(‘users[0] employeeNumber’, resp.users[0].employeeNumber);
↑ここで、従業員番号は取得できています。
fukuyama様
下記でいかがでしょうか。
// 取得したレコードの値を社員番号にセット
var myRecord = kintone.app.record.get();
myRecord['record']['社員番号']['value'] = resp.users[0].employeeNumber;
kintone.app.record.set(myRecord);
API実行後のfunction(resp) {}内では、event.recordに値を指定しても反映されませんので、
kintone.app.record.get()とkintone.app.record.set()を利用します。