<目次>
プリザンター(Pleasanter)で選択肢一覧にグループメンバーのみを表示させる方法
課題
対策
STEP1:項目をユーザー選択のプルダウンに変更する
STEP2:承認者グループの作成
STEP3:サーバスクリプトにサンプルプログラムを記載
疎通確認(テスト)
参考
プリザンター(Pleasanter)で選択肢一覧にグループメンバーのみを表示させる方法
課題
・プリザンターでワークフローを作る際、「承認者」のプルダウンで本来選べない人も選択できてしまう
↓
・これは誤操作のリスクがあるため、「承認者」となりうる人(例:課長以上)の明細のみを表示するよう制御したい
↓
・本記事では、この課題に対する解決策を記載します。
(図111)

対策
・サーバスクリプトの「columns.[項目名].AddChoiceHash」を用いて、選択肢のプルダウンにおいてグループメンバーの中から選択できるようにします。
・サーバスクリプトはその名の通り、サーバ側で動くJavaScriptです。JavaScriptというと、クライアント側(ブラウザ)で動作するイメージがありますが、Pleasanterではサーバサイドの様々なイベント時(例:ビュー処理時など)における処理もJavaScriptで処理を記述する事ができます。
STEP1:項目をユーザー選択のプルダウンに変更する
・①「エディタ」タブ⇒項目を選択⇒「詳細設定」押下
(図120①)

↓
・②選択肢一覧に「[[Users]]」を追記
(図120②)

STEP2:承認者グループの作成
承認者となりうるメンバーのグループを作成し、それを制御に使います。
・①「管理」→「グループの管理」を選択します。
(図121①)

↓
・②「新規作成」を押下
(図121②)

↓
・③グループ名を入力→作成
(図121③)

↓
・④メンバーを検索→「追加」でグループに追加
(図121④)

STEP3:サーバスクリプトにサンプルプログラムを記載
・「テーブルの管理」→「サーバスクリプト」を選択
(図122①)

↓
・下記のサンプルプログラムを適用し、「条件」は「サイト設定の読み込み時」を選択し、「変更」を押下
→サイト設定の読み込み時という事で、一番最初に発動しておくように設定します。
(図122②)

(サンプルプログラム)※グループのIDはご自身の環境に合わせて変更してください。
// グループ情報を取得
let group = groups.Get(771);
// メンバーの数だけループ
for (let member of group.GetMembers()) {
// メンバーの情報を取得
user = users.Get(member.UserId);
// 「メンバー名<ログインID>」形式でデータを取得
membername = user.Name + '<' + user.LoginId + '>';
// 「Manager」(=元は「管理者」、を「承認者」に変更した)項目の「選択肢一覧」を動的に設定
columns.Manager.AddChoiceHash(member.UserId, membername);
}
↓
・「変更」を押下します(※これを押さないと反映されないので注意)
(図122③)

疎通確認(テスト)
(テスト1)新規チケット作成時
→「承認者」のプルダウンには、「承認者」グループのメンバーのみが表示される
(図123①)

↓
(テスト2)一覧表示時
→「メンバー名<ログインID>」の形式で表示される
(図123②)

参考
・グループ
https://pleasanter.org/manual/server-script-groups
・columns.AddChoiceHash
https://pleasanter.org/manual/server-script-columns-add-choice-hash