レコード作成、編集時に、親組織名(固定値)から子組織(流動的)を毎回取得し、配列に格納する方法はありますか?

・以下のように、組織をツリー構造で作成しております。
●●株式会社(最上位組織)
┗組織A
┗部署1
┗チームa
┗チームb
┗α係
┗部署2
┗チームc

┗組織B
┗部署3
┗部署4
┗チームe

・会社名、組織名については不変ですが、部署や、チーム名が変更されることがあります。

・ユーザーは組織、部署、チームのいずれか1つにしか所属しておりません。(例:Aさん=チームc、Bさん=組織A)

・入力フォームには、組織選択が必須となっています。

この時、組織選択で選択している組織が、自分の所属する組織と同じ親組織かどうかチェックし、異なる場合エラーを返すというJavascriptカスタマイズを行おうとしています。
(例:チームbに所属するユーザーは、組織A、部署1,チームa、チームb、α係、部署2、チームcの選択が可能)

そこで、組織名が不変だが、部署や、チーム名が変動するということから、以下のJavascriptを書きたいと考えています。

①組織名(ここで言う組織AまたはB)を指定して、それぞれの子組織を全て配列に格納する。(レコード作成、編集の都度行う)

②ログインユーザーの所属組織が、①のどの配列に含まれているか判別する。

③入力フォームで選択した組織が、①のどの配列に含まれているか判別する。

④②と③が不一致の場合エラーを返す。

この、①の方法が分からないため、教えていただけないでしょうか。
もしくは、別の方法があれば教えて下さい。

NSさん

こんにちは。

 

組織は以下のAPIを使えば取れます。

リクエストパラメータ無で実行すれば、全件を対象に取得できます。

上限100件のため、100を超える場合は、offsetを100ずつずらして取得すると良いです。

組織エクスポート API(JSON)

 

組織がどの親の配下にあるかは

レスポンス内の「parentCode」(親組織コード)でしか判別できないため

これを辿って配列に振り分けるしかないですね。

 

少々乱暴な方法になりますが

全組織に対する上位組織を定義したJSをkintoneシステム管理の全体JSに入れておくという方法もあります。

const ORG = {
a係: 組織A
チームA: 組織A
チームB: 組織A
部署1: 組織A
チームe: 組織B
部署3: 組織B
部署4: 組織B
};