kintoneのアプリで、Garoonのプロフィールの社員番号に登録されている文字列を取得したい

kintoneで作成したアプリでCSV出力をするとログインID(弊社では、メールアドレス)が出力されると思いますが、(弊社都合で、ログインIDを社員IDに変更ができないため)、

それと別に、GAROON側で利用している社員番号を自動取得して、レコードの作成者と共に、

とあるアプリ(経費精算アプリ)のレコード作成時に、レコードの作成者の社員番号として登録したいのですが、

何か良い実現方法はないでしょうか?

 

 

GAROON側のユーザー情報をCSVで吐き出し、kintone側の社員情報アプリに入れ、

アプリのレコードを作成する際に、
こちらの記事を参考にして、)
自動ルックアップでkintoneの社員情報アプリに入れた社員番号の取得はできましたが、
社員が増えるたびに、kintone側の社員情報アプリにも手動で入れないといけないので、できれば、サイボウズ側のプロフィールの情報を自動で取得できる方法があればと思い、質問させていただきました。

fukuyama様

こんにちは。一つの案としてご提案です。

cybozu.com共通管理のユーザー設定で「従業員ID」がありますが、こちらを利用するのはいかがでしょうか?

ルックアップで取得することはできませんが、JavaScriptでAPIを使えばレコード作成時に取得できるかと思います。

下記記事もご参照ください。

https://developer.cybozu.io/hc/ja/community/posts/115008992846-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E9%81%B8%E6%8A%9E%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%9F%E9%9A%9B%E3%81%AB-%E3%83%AB%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A7%E3%83%97%E3%83%AD%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%81%AE%E5%BE%93%E6%A5%AD%E5%93%A1ID-employeeNumber-%E3%82%92%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AB%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%9F%E3%81%84 

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()を利用します。

koichi

教えていただき、ありがとうございます。

いただいたソースで、動作するようになりました!!

ありがとうございます。