組織の所属ユーザーエクスポート-APIで
組織フィールド(1名しか所属していない)から
ユーザーの名前を取得するにはどうすればよいのでしょうか?
サンプルJavaScriptがなく、質問させて頂きました。
ご教授お願い致します。
組織の所属ユーザーエクスポート-APIで
組織フィールド(1名しか所属していない)から
ユーザーの名前を取得するにはどうすればよいのでしょうか?
サンプルJavaScriptがなく、質問させて頂きました。
ご教授お願い致します。
こんなかんじです。
(function() {
"use strict";
const getOrganizationUser = function() {
const str = "組織のコード";
const code = { code: str };
const appURL = kintone.api.url("/v1/organization/users", true);
kintone.api(appURL, "GET", code).then(function(resp) {
console.log(resp);
}).catch(function(error) {
console.log(error);
});
};
kintone.events.on("app.record.index.show", function(event) {
getOrganizationUser();
});
})();
TK様
お世話になります。
ご回答ありがとうございます。
上記プログラムでapp.record.index.show→app.record.detail.showに変更して試してみたのですが、
{userTitles: Array(0)}で階層を開いていったのですが名前が取得できませんでした。
どのレコード番号かわからないため、取得できないのでしょうか?
app.record.index.showでも試したのですが、同じ結果のため何かやり方が間違っているのでしょうか?
↓ここの「組織のコード」は、ご自身の環境で変えないとだめですね。
下記URLを参考にしてください!
conststr ="組織のコード";
https://jp.cybozu.help/general/ja/admin/list_useradmin/list_division/dprmntdetails.html
TK様
フィールドコードと勘違いしておりました!
申し訳ありません!
ということは組織フィールドから組織のコードを取得してその値をcodeに入れればよいのですね!
早速試してみます!
すみませんこちらも組織フィールドというのを見落としておりました。
おそらくこれで動くかと!
「組織選択」はフィールドコードなので適時変えてください!
(function() {
"use strict";
const getOrganizationUser = function(event) {
const str = event.record.組織選択.value[0].code;
const code = { code: str };
const appURL = kintone.api.url("/v1/organization/users", true);
kintone.api(appURL, "GET", code).then(function(resp) {
console.log(resp);
}).catch(function(error) {
console.log(error);
});
};
kintone.events.on("app.record.detail.show", function(event) {
getOrganizationUser(event);
return event;
});
})();
TK様
お世話になります。
無事上記のプログラムで動きました!
あとは配列の中のnameを文字列フィールドに格納したいと思います!
本当に有難うございました!
たぶん初歩的なミスなんでしょうが、
文字フィールドに取得した名前が変更されないのはなぜでしょうか?
console.logで文字列フィールドを見るとデータは入っているのですが・・・
(function() {
"use strict";
const getOrganizationUser = function(event) {
var record = event.record;
const str = event.record.組織フィールド.value[0].code;
const code = { code: str };
const appURL = kintone.api.url("/v1/organization/users", true);
kintone.api(appURL, "GET", code).then(function(resp) {
console.log(resp);
console.log(resp.userTitles[0].user.name);
var user = resp.userTitles[0].user.name;
record['文字列フィールド'].value = user;
console.log(record['文字列フィールド']['value']);
}).catch(function(error) {
console.log(error);
});
};
kintone.events.on(["app.record.create.change.組織フィールド","app.record.edit.change.組織フィールド"], function(event) {
getOrganizationUser(event);
return event;
});
})
その辺私もしっかりと理解はできてないのですが、非同期処理になるとフィールドに値をsetする前にeventが返ったりするので
ちょっと記述を変えたりしないとなんです。
具体的にはkintone.app.record.get()とkintone.app.record.set()を使います。
おそらくこれでいけるかと。
(function () {
"use strict";
const getOrganizationUser = function (event) {
const str = event.record.組織フィールド.value[0].code;
const code = { code: str };
const appURL = kintone.api.url("/v1/organization/users", true);
kintone.api(appURL, "GET", code).then(function (resp) {
var record = kintone.app.record.get();
var user = resp.userTitles[0].user.name;
record.record['文字列フィールド'].value = user;
kintone.app.record.set(record);
}).catch(function (error) {
console.log(error);
});
};
kintone.events.on(["app.record.create.change.組織フィールド", "app.record.edit.change.組織フィールド"], function (event) {
getOrganizationUser(event);
return event;
});
})();
TK様
お世話になります。
正しく処理がされました!
編集中だから不要だと思っていましたが、
getとsetが必要なんですね!
勉強になりました。
ありがとうございました!