フローおよびサブフローのステージ
要求、フロー、またはサブフローの現在のステージをエンドユーザーと通信します。
ワークフロースタジオ でステージを設定するときは次の操作を実行できます。
- フローまたはサブフローにステージを追加します。
- ステージのラベルと名前を変更できます。
- ステージの見込み時間を構成できます。
- [Stage Set] テーブルから、事前に定義されたステージセットのコピーをインポートできます。ステージセットの詳細については、「ワークフローステージセット」を参照してください。このコピーにどのような変更を加えても、元のステージセットレコードには影響しません。
フローまたはサブフローのステージはフロー実行の詳細で確認できます。
ステージ フィールドにステージを表示する
ステージフィールドには、フローまたはサブフローの実行中に、ステージのステータスと特定のレコードの詳細が保存および表示されます。たとえば、サービスカタログ テーブルでは、[ステージ] フィールドを使用して、要求の処理の進行状況を示します。
ステージ フィールドには次のものが表示されます。
- フローをトリガーした特定のレコード、またはサブフロー入力として使用された特定のレコードのステージの詳細。たとえば、特定の サービスカタログ 要求アイテムの現在のステータスなどです。
- 関連するフローまたはサブフローで定義されたステージ名とステータス。関連付けられたフローから別のフローを呼び出す場合、子フローに設定されたステージは表示されません。
- 開始されたフローまたはサブフローからのステージの詳細。フローまたはサブフローがレコードに対して実行されていない場合、そのレコードにはステージフィールドの詳細が含まれません。
ステージ フィールドのステータス アイコンは変更できません。ステージの数と各ステージ名の長さを制限して、テキストやアイコンが複数の行に折り返されることがないようにしてください。
ステージ フィールドとトリガー タイプ
ステージ フィールドへのフローの関連付けは、フローのトリガー タイプによって異なります。
| フローのトリガー タイプ | 要件 |
|---|---|
| レコード | ステージフィールドがレコードベースフロー上のステージをレポートするためには、トリガーするレコードと同じテーブルにステージフィールドが存在していなければなりません。 フローにステージがある場合、ワークフロースタジオは、各ステージのステータスをトリガーとなるテーブルに戻して伝え、現在のステージのステータスをアイコンとして表示します。テーブルに複数のステージ フィールドが存在する場合は、テーブルの辞書定義で定義されている最初のステージ フィールドのみが使用されます。 注: 同じテーブルからトリガーする複数のフローのステージを作成することは避けてください。ステージ フィールドには、最後に実行されるフローのステージのみが表示されます。あるフローのステージが別のフローを上書きしないように、フローごとに異なる条件を追加してください。 |
| サービスカタログ | 使用する場合 サービスカタログ トリガーの場合、フローは [フロー] フィールドを介してサービスカタログアイテムに関連付ける必要があります。[ワークフロー] と [実行計画] フィールドを消去して、アイテムに関連付けられているワークフローをすべて削除します。[ステージ] フィールドでは、要求アイテム [sc_req_item] テーブルの任意のリストビューに、現在のステージのステータスが表示されます。 |
ステージ状況
フローまたはサブフローの実行中、各ステージは 6 つのステータスのいずれかになります。
| ステータス | 説明 |
|---|---|
| 処理待ち | このステージはまだ開始されていません。 |
| 処理中 | このステージは実行中です。 |
| スキップ | このステージはスキップされ、実行されませんでした。通常、このステータスに達するのは、条件付きフロー ロジック ブロックが実行されないときです。 |
| 完了 | このステージは完了しています。 |
| Cancelled (キャンセル) | このステージはキャンセルされました。 |
| エラー | このステージはエラー状態に達しました。 フローまたはサブフローを設計する際、エラーステータスを報告するようにそれを手動で設定できます。エラー ステータスを設定するには次のようにします。
|
各ステージには独自のカスタム ステータス ラベルを持たせることができます。たとえば、2 つのステージを持つフローがあるとします。ステージ 1 には、待機中のラベルが付いた処理待ち状況を持たせ、ステージ 2 には、「まだ開始されていない」というラベルが付いた処理待ち状況を持たせる、といったことができます。ワークフロースタジオには、デフォルト状況または承認状況のいずれかを生成するためのオプションがあります。
システムプロパティ
これらのシステムプロパティを使用して、フローまたはサブフローで承認の詳細を表示する方法を構成できます。
- com.glide.hub.flow_engine.stage_display.show_approvers
- ステージフィールドからステージにアサインされた承認者のリストを表示または非表示にします。値を true に設定すると、ステージにアサインされた承認者のリストが表示されます。値を false に設定すると、ステージにアサインされた承認者のリストが非表示になります。
- タイプ:true | false
- デフォルト値:true
- 場所:システムプロパティ [sys_properties] テーブルに追加
- com.glide.hub.flow_engine.stage_display.show_approvers_limit
- ステージフィールドに表示する承認者の最大数を整数値で指定します。この値を 10 より大きく設定すると、リストビューでレンダリングエラーが発生するリスクがあります。1 つのレコードのステージフィールドが大きくなりすぎて、リスト内の他のレコードを表示できなくなることがあります。
- タイプ:整数
- デフォルト値: 5
- 場所:システムプロパティ [sys_properties] テーブルに追加
一般的なガイドライン
- For Each フローロジックに依存するステージの定義を避ける
- フローデザイナーでは [For Each] ブロック内にステージを追加できません。[For Each] ブロックの前後にのみステージを追加できます。
- 異なるフローまたはサブフローでの同じレコードのステージの作成を避ける
- ステージフィールドには、テーブルのレコードで実行する最後のフローまたはサブフローからのステージ情報が常に表示されます。複数のフローまたはサブフローが同じレコードで実行される場合、理論的には、1 つのフローまたはサブフローで定義されたステージが別のフローまたはサブフローのステージを上書きする可能性があります。複数のフローまたはサブフローが互いのステージを上書きしないようにするには、フローまたはサブフローごとに一意のトリガー条件または開始条件を定義します。
- フローまたはサブフローの外部からのステージフィールドの更新を避ける
- フローまたはサブフローを使用してステージを管理する場合は、フローまたはサブフローの外部からレコードステージフィールドを直接更新しないでください。ステージフィールドの値を手動で更新すると、予期しない結果または望ましくない結果が生じる可能性があります。
- テーブルの各フローに一意のトリガー条件があることを確認する
- 各フローに一意のトリガー条件を追加すると、フローはそれらの条件でのみ実行され、あるフローのステージが別のフローのステージを上書きすることを防ぐことができます。一意のトリガー条件を指定すると、レコード変更を生成できるフローの実行回数が制限され、フローのトラブルシューティングが容易になります。
- エラーステージを使用してユーザーに通知する
- フローのエラーステータスは、フローの実行には影響しません。フローはエラーステージに達しても引き続き実行されます。条件付きフローロジックブロックを使用してエラーステージを設定し、現在のステージのステータスがエラーであることをユーザーに伝えます。たとえば、必要な限度内で承認されていない承認がある場合、ユーザーにエラーを通知することができます。
- エラーステージを使用してフローの処理を停止する
- 条件付きフローロジックブロックを使用して、フローがエラーステージに移行するタイミングを特定します。フローロジックを使用して、フローの処理を停止するか、何らかの修復アクションを実行します。たとえば、フローがエラーステータスになったときに、レコードのステータスやアサインを変更することができます。