フローおよびサブフローのステージ

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む7読むのに数分
  • 要求、フロー、またはサブフローの現在のステージをエンド ユーザーと通信します。

    フローデザイナーでステージを設定するときは次の操作を実行できます。

    • 任意の数のステージを作成します。
    • ステージのラベルと名前を変更します。
    • ステージの予定期間を設定します。
    • ステージ セット テーブルから、事前定義されたステージ セットのコピーをインポートします。ステージセットの詳細については、「ワークフローステージセット」を参照してください。コピーに加えられた変更は、元のステージ セット レコードには影響を与えません。

    スケジュール済みトリガーを使用してフローにステージを追加することはできますが、ステージ フィールドに関連付けられたレコードがないため、ステージはエンド ユーザーに表示されません。レコードと サービスカタログ トリガーのあるフローでのみステージを使用します。

    フローまたはサブフローのステージはフロー実行の詳細で確認します。

    ステージ フィールドにステージを表示する

    ステージフィールドは、ユーザーにフローのステージを表示するワークフロータイプのフィールドです。 サービスカタログ テーブルでは、[ステージ] フィールドを使用して、要求の処理の進行状況を示します。

    ステージ フィールドには次のものが表示されます。

    • レコードまたはサービスカタログのトリガーを持つフローからのステージ。
    • 関連するフローまたはサブフローからのステージ。関連付けられたフローから別のフローを呼び出す場合、子フローに設定されたステージは表示されません。
    • 開始されたフローまたはサブフローからのステージ。

    ステージ フィールドのステータス アイコンは変更できません。ステージの数と各ステージ名の長さを制限して、テキストやアイコンが複数の行に折り返されることがないようにしてください。

    注:
    テーブルごとに 1 つのステージ フィールドのみを追加してください。ステージ フィールドが複数ある場合は、テーブル ディクショナリー エントリーで定義されている最初のステージ フィールドからのステージのみが表示されます。

    ステージ フィールドとトリガー タイプ

    ステージ フィールドへのフローの関連付けは、フローのトリガー タイプによって異なります。

    フローのトリガー タイプ 要件
    レコード

    ステージフィールドがレコードベースフロー上のステージをレポートするためには、トリガーするレコードと同じテーブルにステージフィールドが存在していなければなりません。 フローにステージがある場合、フローデザイナーは、各ステージのステータスをトリガーとなるテーブルに戻して伝え、現在のステージのステータスをアイコンとして表示します。テーブルに複数のステージ フィールドが存在する場合は、テーブルの辞書定義で定義されている最初のステージ フィールドのみが使用されます。

    注:
    同じテーブルからトリガーする複数のフローのステージを作成することは避けてください。ステージ フィールドには、最後に実行されるフローのステージのみが表示されます。あるフローのステージが別のフローを上書きしないように、フローごとに異なる条件を追加してください。
    サービスカタログ を使用する場合 サービスカタログ トリガーの場合、フローは [フロー] フィールドを介してアイテムに関連付けられているサービスカタログ必要があります。[ワークフロー][実行計画] フィールドを消去して、アイテムに関連付けられているワークフローをすべて削除します。[ステージ] フィールドでは、要求アイテム [sc_req_item] テーブルの任意のリストビューに、現在のステージのステータスが表示されます。

    ステージのステータス

    フローまたはサブフローの実行中、各ステージは 5 つのステータスのいずれかになります。

    State (ステータス) 説明
    処理待ち このステージはまだ開始されていません。
    処理中 このステージは実行中です。
    スキップ このステージはスキップされ、実行されませんでした。通常、このステータスに達するのは、条件付きフロー ロジック ブロックが実行されないときです。
    完了 このステージは完了しています。
    エラー

    このステージはエラー状態に達しました。

    フローまたはサブフローを設計する際、エラーステータスを報告するように手動で設定できます。エラー ステータスを設定するには次のようにします。
    • フローまたはサブフローには、少なくとも 1 つのステージが定義されている必要があります。
    • エラーはステージ内でのみ設定できます。エラー条件に達すると、現在のステージはエラーに設定されます。
    • エラーは、条件付きフローロジックブロック内でのみ設定できます。

    各ステージには独自のカスタム ステータス ラベルを持たせることができます。たとえば、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 フローロジックに依存するステージの定義を避ける
    Flow Designer では [For Each] ブロック内にステージを追加できません。[For Each] ブロックの前後にのみステージを追加できます。
    同じレコードのステージを持つフローを複数使用しないでください
    ステージフィールドには、テーブルまたはレコードで実行する最後のフローからのステージ情報が常に表示されます。複数のフローが同じレコードで実行される場合、1 つのフローで定義されたステージが別のフローのステージを上書きする可能性があります。複数のフローが互いのステージを上書きしないようにするには、フローごとに一意のトリガー条件を定義します。
    ステージフィールドの更新を避ける
    フローを使用してステージを管理する場合は、アクション、ビジネスルール、スクリプト呼び出し、またはワークフローでステージフィールドを直接更新しないでください。ステージフィールドの値を手動で更新すると、予期しない結果または望ましくない結果が生じる可能性があります。
    テーブルの各フローに一意のトリガー条件があることを確認する
    各フローに一意のトリガー条件を追加すると、フローはそれらの条件でのみ実行され、あるフローのステージが別のフローのステージを上書きすることを防ぐことができます。一意のトリガー条件を指定すると、レコード変更を生成できるフローの実行回数が制限され、フローのトラブルシューティングが容易になります。
    エラーステージを使用してユーザーに通知する
    フローのエラーステータスは、フローの実行には影響しません。フローはエラーステージに達しても引き続き実行されます。条件付きフローロジックブロックを使用してエラーステージを設定し、現在のステージのステータスがエラーであることをユーザーに伝えます。たとえば、必要な限度内で承認されていない承認がある場合、ユーザーにエラーを通知することができます。
    エラーステージを使用してフローの処理を停止する
    条件付きフローロジックブロックを使用して、フローがエラーステージに移行するタイミングを特定します。フローロジックを使用して、フローの処理を停止するか、何らかの修復アクションを実行します。たとえば、フローがエラーステータスになったときに、レコードのステータスや割り当てを変更することができます。