4.3.2 ワークフローの設計
ワークフローの設計は、それぞれの業務のワークフローを作成し、申請や承認、またはタスク実行などの各アクティビティの内容や順序、アクティビティを実行できるロールなどをYAMLで定義します。
アクティビティには様々な種類があり、申請内容の確認や承認、Playbookを使用した自動タスクなどがあります。また、任意のワークフローのステップごとにラベルをYAML定義することができます。ワークフロー一覧画面ではこのラベルごとに進捗度合が表示されます。
ワークフロー画面の構成については「ワークフロー」を、YAML定義については「Workflow」を参照してください。
項目 | 定義手段 | 設計のポイント |
---|---|---|
・Workflow | YAMLによる定義 (GitLab) |
設計する業務に、どのような作業や承認ステップが必要か、また、その作業をどのユーザーがどのロールで実行するのかを検討します。 |
ワークフローの設計は、対象の業務のステップとして必要なアクティビティを洗い出し、各アクティビティを実行できるロールの割り当てを行います。以下はVM貸出申請を例としたワークフロー図で、アクティビティには申請や申請内容の確認などがあります。各アクティビティに必要なカラムはデータモデルにて定義します。
(表)VMの貸出を例としたワークフローのステップとロール一覧
作業名 | ワークフローステップ | 操作者 | ロール | UI | |||
---|---|---|---|---|---|---|---|
種別 | 名称 | アクション | バリデーションチェック | ||||
VMの貸出 | |||||||
申請 | 申請者 | Customer User | 申請に必要な情報やカラムはデータモデルで定義し、各カラムに対するアクションなどはUIで定義します。 | ||||
申請内容の確認 | 運用担当 | Operation Management Office Agent |
|||||
VMの生成 | (自動実行) | - | |||||
VMの生成の確認 | 運用担当 | Operation Management Office Agent |
|||||
承認 | 運用管理者 | Operation Management Office Manager |
なお、YAMLファイル定義において、ワークフローの起点となるステップへ、他のステップから遷移することはできません。申請内容の不備により、申請者に差し戻しを行う場合は、起点となるステップにガイダンス表示などのステップを作成しておくことで、ワークフローの起点となるステップが遷移先にならないよう設計してください。
データモデルの詳細については「データモデルの設計」、「Datamodel」を参照してください。
UIの詳細については「UI設計」、「UI」を参照してください。
その他、ユースケースに合わせて以下の機能を利用することができます。
【運用に必要なスキルをもったユーザーを設定したい場合】
YAMLファイル「Skill」、「Skillset」で定義したスキルを、YAMLファイル「Workflow」でアクティビティごとに必要なスキルセット(スキルの組み合わせ)として設定することができます。スキルセットに合わせたユーザーのアサインはワークフロータブのStepper画面から実施できます。
アサインされたアクティビティは、ユーザーの業務経験に反映されリソースタブから確認することができます。また、スケジュールにも反映されスケジュールタブから確認することができます。
項目 | 定義手段 | 設計のポイント |
---|---|---|
skill、skillset | YAMLによる定義 (GitLab) |
運用に必要なスキルとスキルセット(スキルの組み合わせ)を設定できます。 |
workflow | YAMLによる定義 (GitLab) |
各アクティビティに必要なスキルセットを指定することができます。 |
ユーザーへのスキル付与 | GUIによる定義 | リソースタブからユーザーにスキルを付与することができます。付与したスキルによって、自動でスキルセットも付与されます。 |
各アクティビティへユーザーをアサイン | GUIによる定義 | スキルセット要件との適合率、経験回数、スケジュールを確認しユーザーをアサインすることができます。 |
YAMLファイルの詳細は「Workflow」、「UI」、「Skill、Skillset」、スキル設定の詳細は「スキル管理」、ユーザーのアサインは「ワークフロー」を参照ください。
【並列処理を行いたい場合】
複数人で異なる作業を並列に行う場合や手動で作業すると同時に自動化スクリプトで並列に処理をする場合など、複数の並列処理はYAMLファイル「Workflow」でサブフローを定義することにより実施できます。設定したサブフローは、ワークフロータブでメインフローと同様にワークフロー一覧から管理することができます。
サブフローの機能には以下の特徴があります。
- 定義済のフローをサブフローとして利用できます。
- メインフローとサブフローの間でカスタムテーブルや添付ファイルのデータを共有することが可能です。
- 複数のアクティビティを並列実行する場合は、全てのステップをサブフロー化する必要があります。
- サブフロー種別は以下の選択肢があります。
- static:メインフローの保存時点で、コンテキストを作成
- dynamic:サブフロー実行時にコンテキストを作成