新規投稿
フォローする

選択したユーザーの所属組織を組織選択フィールドに表示したい

選択したユーザーが所属する組織を取得したいです。

ユーザー選択フィールドには1人しか入力できないようにカスタマイズいたしました。

組織選択フィールドにはユーザーが所属する複数の組織を自動入力し、不必要な選択肢を消していく運営をする予定です。

こちらの記事を参考にしました。

user型で優先する組織を取得できることはわかりましたが、優先しない組織も取得したいため先に進めずにいます。

ユーザーの組織選択エクスポートAPIを使用すればいいのかな?と考え、以下のように記述してみました。

ユーザー情報は取得できますが、そのあとに「Failed to load resource: the server responded with a status of 520 (520)」のエラーが出てしまいます。

(function () {
  "use strict";
  kintone.events.on("app.record.create.change.ユーザー選択", function (event) {
    var userId = event.record['ユーザー選択'].value[0].code; //ユーザコード取得
    var body = {
      "codes": [userId]
    };
    console.log(body);
    // ユーザcodeをkeyにして所属組織の詳細を取得
    kintone.api(kintone.api.url('/v1/userOrganizations', true), 'GET', body, function (resp) {
      var orgId = resp.users[0].Organization; // 組織のIDを取得
      var body2 = {
        "ids": [orgId]
      };
      console.log(body2);
      var rec = kintone.app.record.get(); // 編集画面に表示しているレコードの取得
      rec.record['組織選択'].value = [{
        body2
      }];
      kintone.app.record.set(rec);
    });
  });
})();

初歩的なこともわかっておりません、、、

ご助力いただきたいです。

0

2件のコメント

Avatar
mls-hashimoto

こちらで恐らく可能と思われます。

(ユーザー情報取得APIは実行する度監査ログに重要として通知されますのでお気を付けください)

(function () {
"use strict";

kintone.events.on("app.record.create.change.ユーザー選択", function (event) {
var userId = event.record['ユーザー選択'].value[0].code;
var body = {
"code": userId
};

kintone.api(kintone.api.url('/v1/user/organizations', true), 'GET', body, function (resp) {
var orgArr = [];

for (var i = 0; i < resp.organizationTitles.length; i++) {
orgArr.push({
'code': resp.organizationTitles[i].organization.code,
'name': resp.organizationTitles[i].organization.name
});
};

var rec = kintone.app.record.get();

rec.record['組織選択'].value = orgArr;

kintone.app.record.set(rec);
});
});
})();
mls-hashimotoにより編集されました
0
Avatar
K

mls-hashimotoさん

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

organizationTitles[i]を使用してあげればよかったんですね!

実行できました。ありがとうございます。

1
サインインしてコメントを残してください。