ブログ

2022/06/15
【プリザンター】 第151回)プロセス機能を使ってワークフローを作ってみよう(後編)

後編の内容

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

前回説明したプロセス機能の後編です。
休暇申請ワークフローをプロセス機能を用いて作成するところまでを説明しました。ここまでだとワークフローとしては機能していませんので、今回の説明で機能するところまで説明します。アクセス権限や、その他必要なところの設定になりますので、前回のブログで説明したころまでを準備した状態で確認ください。

今回は以下の項目について説明します。以下を設定することで簡易的なものではありますが、プリザンター上でワークフローが動作するようになります。

 ・ユーザ・グループ・組織登録
 ・プロセスのアクセス制御設定
 ・承認者の自動設定

詳細は次で説明します。

各種設定方法

残りの設定を行っていきましょう。

まず、ユーザやグループ、組織設定を行いましょう。
今回説明を簡略化するために設定数を少なくしていますが、実際は実運用に合わせて作成ください。

1)一般ユーザと管理者(承認者)ユーザを登録します。
2)営業部という組織を作成し、一般ユーザおよび管理者ユーザの組織を営業部に設定します。
3)一般職と管理職のグループを作成し、一般職グループに一般ユーザ、管理職グループに管理者を登録します。

ここまでで、申請する人と承認する人の設定が完了しました。次にプロセスでのアクセス制御を設定します。
前回作成したときに、「承認」や「否決」でアクセス制御のタブを設定していませんでした。承認と否決は管理職が行うため、このアクセス制御タブで操作できる人を設定します。先ほど作成した「管理職グループ」をここで設定します。同様に「否決」でも設定してください。



さて、あとは承認者を自動設定すれば一通り動きます。あと少しです!
ここは少しスクリプトを書く必要があります。
上記の通り設定されていることを前提に、管理職グループのIDが「2」だった場合に以下のサーバスクリプトを記載します。
条件は「計算式の後」を選択してください。

<申請者と同じ組織の管理職を決定するサーバスクリプト>


try {
context.Log('決裁者の決定');

// 申請者の情報を取得
let owneruser = users.Get(model.Owner);

//管理職グループ(グループID:2)に入っているユーザを承認者に設定

model.Manager = manager(owneruser.DeptId , 2 ).UserId;

function manager(DeptId , groupId , owneruser) {
let members = Array.from(groups.Get(groupId).GetMembers()); // membersオブジェクトに引数で指定されたグループのメンバーを格納
for (let i = 0; i < members.length; i++) {
if (members[i].UserId > 0) { // メンバーのユーザIDが存在するとき
let user = users.Get(members[i].UserId); // そのメンバーのユーザIDをuserオブジェクトに格納
if (user.DeptId === DeptId) { // 申請者の組織と承認者の組織が同じ場合に処理
return user;
}
}
}
}

} catch (e){
context.Log(e.stack);
}




ここまで設定したら、実際の一般ユーザでログインして休暇申請を新規作成してみましょう。
まずここで、自分と同じ組織の管理職メンバーが承認者に設定されていることが確認できます。

次に新規作成(申請)した後に、管理者でログインし、申請されたレコードを見ると「承認」「否決」ボタンが追加されていることが確認できます。いずれかのボタンをクリックしてみましょう。処理が行われ、レコードの状況が更新されることがわかります。



もう少し親切にする場合は、プロセスタブの中にある「通知」設定を行うとよいでしょう。

まとめ

さて、いかがでしたか?

前編後編と2回に分けてプロセス機能の説明を行いました。以前のサーバスクリプトだけの場合と比べて簡単に設定できることは理解できたと思います。サーバスクリプトを一か所使っていますが、スクリプトを使わずにユーザに設定させることでよければ、スクリプトも不要になります。

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。プリザンター逆引き辞典PDF版やスタイル・スクリプトサンプル集PDF版の販売もしております!

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP