プリンシパルを利用したワークフローの制御

最終更新日: 2023年4月17日

準備

Wagbyのワークフローで、次の承認者/決裁者はどういう権限(プリンシパル)をもっているか、という指定を行うことができます。これによって承認者や決裁者を動的に決めることができます。

プリンシパルの作成

はじめに "プロジェクト管理者" というプリンシパルを用意します。

プロジェクト管理者プリンシパルを用意する

アカウント

次に示すアカウントを用意しておきます。ここでは "user3" にプロジェクト管理者プリンシパルを持たせます。このプリンシパルを保有するアカウントは、プロジェクト管理者という扱いになります。

user3をプロジェクト管理者とする (1)
user3をプロジェクト管理者とする (2)

ワークフローの設定

スクリプト

「スクリプト>ワークフロー」を開きます。新しいスクリプト "プロジェクト管理者" を作成します。

ワークフローのためのスクリプトを作成する

「申請者 > のグループ > に属するユーザを取得 > のユーザ名」という流れでブロックを組み立てます。
ここで「に属するユーザを取得」の検索条件に「権限」をセットします。これによって、同一グループに属し、かつ、指定された権限をもったアカウントであるという絞り込みができます。

プロジェクト管理者スクリプト

申請・決裁ルール

年休申請というワークフローを設計します。今回の次のルールとします。

申請者

  • 申請者またはログオンユーザ

決裁者

  • 申請者の同一グループに所属
  • "プロジェクト管理者" プリンシパルを持つ
フロー参加者設定

このフロー参加者設定を、年休申請モデルに適用すると次のようになります。

ワークフロー設定

実行例

"ユーザ1" は(同一グループ内で)ワークフローの申請を行うことができるアカウントです。このユーザで、年休申請データを作成します。

年休申請 新規登録

データ作成後、ワークフローの申請を行います。

年休申請ワークフローを開始する (1)
年休申請ワークフローを開始する (2)

"ユーザ2" は同一グループですがプロジェクト管理者ではありません。このアカウントでは承認行為が行えません。

プロジェクト管理者でなければ承認できない

"ユーザ3" は同一グループかつプロジェクト管理者であるため、承認を行うことができます。

プロジェクト管理者はワークフローを承認できる