計算式プラグインで組織選択項目の組織メンバーをテーブルにセットします。
概要
組織選択項目の組織名、組織コード、組織メンバーを取得します。
組織メンバーを文字列項目にセットすることで、計算処理のパフォーマンス改善を図ることができます。
計算式プラグイン設定(パフォーマンス改善前)
OINFO, UINFO 関数を使用するため、「ユーザー情報」をチェックします。
- テーブル
- 組織メンバーの数をセット。0 の場合は 1 をセット
- ユーザー選択
- テーブル行位置に対応する組織メンバーをセット
- 社員番号
- ユーザー選択の値から社員番号をセット
.js
// 組織名 SINGLE_LINE_TEXT
SEL_NAME(組織選択,"text")
// 組織コード SINGLE_LINE_TEXT
SEL_CODE(組織選択,"text")
// テーブル SUBTABLE
LET(a,SEL_CODE(組織選択,"array"),
b,OINFO(a,"users"),
c,UINFO(b,"code"),
MAX(ARRAY_COUNT(c),1)
)
// テーブル.ユーザー選択 USER_SELECT
LET(a,SEL_CODE(組織選択,"array"),
b,OINFO(a,"users"),
c,UINFO(b,"code"),
d,ARRAY_GET(c,ROWNO(テーブル)),
SET_CODE(d)
)
// テーブル.社員番号 SINGLE_LINE_TEXT
LET(a,SEL_CODE(ユーザー選択,"array"),
UINFO(a,"employeeNumber")
)
計算処理改善版
前記の計算式をみると、組織メンバーを取得する計算が多くあります。
組織メンバー数が多い場合に、計算処理が遅くなるため、組織メンバーを文字列にセットして、それを参照するように改善します。
計算処理改善版プラグイン設定
組織メンバー項目を最終行に配置しましたが、組織メンバーの計算を先に行うため、ランク 1 を指定します。
.js
// 組織名 SINGLE_LINE_TEXT
SEL_NAME(組織選択,"text")
// 組織コード SINGLE_LINE_TEXT
SEL_CODE(組織選択,"text")
// テーブル SUBTABLE
LET(a,SPLIT(組織メンバー,","),
MAX(ARRAY_COUNT(a),1)
)
// テーブル.ユーザー選択 USER_SELECT
LET(a,SPLIT(組織メンバー,","),
b,ARRAY_GET(a,ROWNO(テーブル)),
SET_CODE(b)
)
// テーブル.社員番号 SINGLE_LINE_TEXT
LET(a,SEL_CODE(ユーザー選択,"array"),
UINFO(a,"employeeNumber")
)
// 組織メンバー SINGLE_LINE_TEXT (rank:1)
LET(a,SEL_CODE(組織選択,"array"),
b,OINFO(a,"users"),
c,UINFO(b,"code"),
c
)