20.1.6 状態と遷移

ワークフローおよびワークフロー・アクティビティの状態と遷移について説明します。

20.1.6.1 ワークフローの状態と遷移

使用可能なワークフロー状態と潜在的な遷移について説明します。

ワークフロー状態

ワークフロー状態とは、ワークフロー・インスタンスの現在の状態のことです。異なる5つのワークフロー状態があり、ワークフローは同時に1つの状態でのみ存在できます。
アクティブ

現在実行中のワークフロー。

一時停止

特定のアクティビティで現在一時停止されているワークフロー。一時停止されたされたワークフローは、ワークフロー管理者が再開できます。

完了済

終了アクティビティに到達して、正常に完了したワークフロー。

終了

ワークフロー所有者またはワークフロー管理者が停止したワークフロー、または状態属性が終了に設定された終了アクティビティに達したワークフロー。

失敗

アクティビティの1つでエラーが生成されたワークフロー。ワークフロー管理者は、失敗したワークフローを再試行または停止できます。

ワークフロー状態の遷移

ワークフロー遷移では、ある状態から別の状態に移行するワークフローを示します。ワークフロー状態の遷移は、ワークフロー・エンジン自体や適切なAPIによって発生することも、ユーザー・アクションの結果として発生することもあります。たとえば、あるワークフローはユーザーがタスクを承認した後に「アクティブ」から「完了済」に遷移します。

初期状態 Category 可能な遷移
アクティブ 標準
  • 完了済。ワークフローが終了アクティビティに到達した場合。
  • 失敗。正しく処理できないパラメータのためにワークフロー・インスタンスの作成が失敗した場合、複数の開始アクティビティがある場合、または開始アクティビティがない場合。
  • 一時停止。APIまたはユーザー・リクエストによるもの。
  • 終了、APIまたはユーザー・リクエストによるもの。または、ワークフローが終了状態に移行する終了アクティビティに到達した場合。
完了済 標準 なし。
失敗 例外

ヒント:

ワークフローは、アクティビティが正常に実行できない場合、またはワークフロー変数取得の失敗によるワークフロー自体のエラーやシステム・エラーがある場合に失敗に遷移します。

失敗したワークフローは、変数の変更後に再試行できます。また、ユーザーがワークフロー・インスタンスの終了を求めていて、ワークフローの実行が不要になった場合に終了できます。

  • アクティブ。ワークフローがAPIまたはユーザー・リクエストによって再試行されて正常に再試行されると、ワークフローは通常の操作状態に戻ります。
  • 一時停止。APIまたはユーザー・リクエストによるもの。
  • 終了。APIまたはユーザー・リクエストによるもの。
一時停止 標準

ヒント:

通常、ワークフローは待機アクティビティのために一時停止されます。
  • アクティブ。ワークフローがAPIまたはユーザー・リクエストによって再開された場合。
  • 失敗。未処理(非同期)のアクティビティがエラーで戻され、アクティビティとワークフロー・インスタンスが失敗に遷移した場合。
  • 終了。APIまたはユーザー・リクエストによる場合。
終了 例外

ヒント:

終了したワークフロー・インスタンスは再試行できません。
なし。

20.1.6.2 アクティビティの状態と遷移

使用可能なアクティビティ状態と潜在的な遷移について説明します。

アクティビティ状態

アクティビティ状態とは、アクティビティの現在の状態のことです。アクティビティは一度に1つの状態にのみできます。
アクティブ

現在実行中のアクティビティ。

待機中

現在結果を待機しているアクティビティ。たとえば、アクティビティはタスクからの承認を待機することがあります。

完了済

正常に完了したアクティビティ。

終了

ワークフローが停止したときに、アクティブ状態だったアクティビティ。

失敗

実行に失敗したアクティビティ。

アクティビティ状態の遷移

アクティビティ遷移は、ある状態から別の状態に移行するアクティビティを示します。

初期状態 Category 可能な遷移
アクティブ 標準
  • 完了済。アクティビティが正常に完了し、ワークフローが続行された場合。
  • 失敗。アクティビティ自体が失敗したか、アクティビティに出入りするものが失敗したために、アクティビティが実行できなかった場合。
  • 終了。ワークフロー・インスタンスが終了した場合。
  • 待機中。アクティビティが結果が戻されるまで待機している場合。たとえば、非同期アクティビティまたは承認アクティビティは待機中の状態に移行することがあります。
完了済 標準 なし。
失敗 例外
  • アクティブ。ワークフロー・インスタンスがAPIまたはユーザー・リクエストによって再試行された場合。失敗したアクティビティはアクティブ状態に移行して、ワークフロー・ランタイム・エンジンがアクティビティの再実行を試行します。
終了 例外 なし。
待機中 標準
  • アクティブ。アクティビティの操作が完了し、続行しても問題ないことをワークフローに通知した場合。この遷移の期間は非常に短くなることがあるため、ワークフローに一時停止がある場合でも、ユーザーは待機中状態のアクティビティを経験しないこともあります。
  • 失敗。アクティビティの処理が失敗した場合。
  • 終了。ワークフロー・インスタンスが終了した場合。