レコード一覧画面の表示後イベントでユーザー情報と所属情報を取得したい

お世話になっております。

レコード一覧画面の表示後イベントでユーザー情報と所属情報を取得したいのですが、うまく取得できません。

先にユーザー情報から全コードを取得し、そのコードでそれぞれの所属情報を取得しようとしています。

/* ユーザー情報を取得 */
function getUserInfo(opt_offset, opt_limit, opt_records) {
var offset = opt_offset || 0;
var limit = opt_limit || 100;
var allRecords = opt_records || [];
var param = {
“offset”:offset,
“size”: limit
};
return kintone.api(‘/v1/users.json’, ‘GET’, param).then(function(resp) {
allRecords = allRecords.concat(resp.records);
var userInfo = resp.users;
var userInfoLength = userInfo.length;
for (var i = 0; i < userInfoLength; i++) {

// コードを取得
userCode = userInfo[i].code;

// 所属情報を取得する

************ここから↓************

kintone.api(‘/v1/user/organizations.json’, ‘GET’, userCode).then(function(resp) {
shozokuMap.set(userEmpNum, resp.organizationTitles[0].organization.name);
});
}

************ここまで↑************

if (userInfoLength === limit) {
return getUserInfo(offset + limit, limit, allRecords);
}

return allRecords;
});
}

 

上記ソースで****ここから↓*** ***ここまで↑*****のコードを書くとユーザー情報は1件しか取得できず、所属情報も取れません。

書かない場合はユーザー情報は全件取得できていました。

どのように書けばユーザー情報と所属情報を取得できるのか、ご教授いただけませんでしょうか。

よろしくお願いいたします。

 

 

古川さん

パッと見ですが、所属組織の取得にあたり、リクエストパラメータに

userCode を指定していますが形式にに誤りがあるかと思います。

下記のような指定に修正することで、取得自体はできるかと思います。

 

userCode = { “code” : userInfo[i].code }

 

パラメータの記述自体は、下記ページに記載があります。

https://developer.cybozu.io/hc/ja/articles/202124774#step2

 

ただ、所属組織の取得処理が非同期となっているため、おそらく取得順序が

バラバラになってしまうことが考えらます。

サクラエビさん

お世話になります。

リクエストパラメータの指定はご指摘の通りでした。

修正しましたがやはり思うようにユーザー情報と所属情報の全てを取得することが出来ません。

(非同期処理にどれだけ悩まされていることか・・・。)

別の方法も含めて検討してみます。

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