ブログ

2022/12/19
【プリザンター】 番外編)プロセスで所属長を承認者に指定する方法

プロセス機能を使ったときの承認者設定

こんにちは、CCS田中です。

プリザンターにプロセス機能が標準機能として導入されたことで、ワークフローをプリザンターで作成されている方もいらっしゃるかと思います。
ワークフローを作成した場合に、承認者は部署の所属長だったりすることが多くあります。
承認者を固定で設定することも可能ですが、そうすると部署ごとにプロセスを設定する必要がありますし、所属長が替わった場合に設定変更が必要になりますので、固定することはお勧めできません。

そういった場合は、プリザンターの「組織」に所属を設定し、「グループ」に所属長のグループを作成して、サーバスクリプトを使うことで申請者の所属する所属長を自動的に設定することができます。今回はこの方法を説明します。
ただし、組織やグループは、人事異動や組織変更の都度変更が必要になりますので、ご了承ください。

所属長を設定するサーバスクリプト

今回プロセスの設定は割愛します。
分類Aで選択した組織の所属長を分類Bに設定するサーバスクリプトになります。

テーブルを作成し、そのテーブルに分類Aに組織を設定するために選択肢一覧に[[Depts]]を設定します。
分類Bには所属長を設定するために選択肢一覧に[[Users*]]を設定します。

次に部長グループを作成します。今回このグループIDを「4」としてスクリプトに記載します。
スクリプトは以下になります。

<スクリプト>


try{
let group = groups.Get(4);
for (let member of group.GetMembers()) {
let user = users.Get(member.UserId);
if(parseInt(model.ClassA , 10) === user.DeptId){
model.ClassB = user.UserId;
break;
}
}
} catch (e) {
context.Log(e.stack);
}




スクリプトの説明
2行目:グループID「4」のグループをgroupオブジェクトとして作成します。
3行目:作成したgroupオブジェクトのメンバーの分だけ以下を繰り返します。
4行目:グループに含まれるメンバーをユーザオブジェクトとして作成します。
5行目:分類Aに設定されている組織の組織IDと、前述で取出したユーザの組織IDが一致しているかを判定します。
※分類Aは内部的に文字列のため、整数型にキャストしてから比較をしています。
6行目:上記で一致したユーザのユーザIDを分類Bに設定します。(これが所属長になります)

今回、部署に複数の所属長が存在するケースは考慮しておりませんので、ご注意ください。
上記の設定をすると、以下のサンプルのように「部署」を選択することで、自動的に部長が決定するような仕組みを作ることができます。

まとめ

いかがでしたか?

プロセスを使ったときに自動的に所属長を決定することで、メール等の通知も自動的に所属長に送付されるようになるため便利かと思います。
組織やグループの使い方の前提がありますが、ぜひお試しください。

弊社ではスタイル・スクリプトサンプル集、プリザンター逆引き辞典のほかにも、運用ノウハウ集の販売もございます。また、導入の支援や、スクリプト開発なども支援いたします。

ご相談の内容によっては有料となる場合がございますが、まずは気軽にご相談ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆

PAGE TOP