ロールバックワークフローアクティビティ
[ロールバック] アクティビティは、送信遷移線矢印で指定されたアクティビティに直接移行します。
[ロールバック] は、実行順序ではなく、ロールバック自体とアクティビティに移行したものとの間でアクティビティの実際のワークフロー順序 (遷移線添付) に基づいて、どのアクティビティをリセットするかを決定します。[ロールバック] は、ロールバックとアクティビティへの移行の間に移行した承認をすべて [未要求] としてマークし、タスクを [オープン] または [保留中] のいずれかとしてすべてマークします。
複数のロールバックが必要なすべてのワークフローに [ロールバック] アクティビティを使用します。[ロールバック] に変数はありません。
条件
これらの条件によって、アクティビティの後にどの移行が実行されるかが決まります。
| 条件 | 説明 |
|---|---|
| 常時 | 承認を元のワークフロー ステップに戻すイベントまたは条件。 |
| エラー | エラーを生成するイベントまたは条件。 |
| スキップ | 承認をスキップできるイベントまたは条件。 |
ステータス
| ステータス | 説明 |
|---|---|
| 実行中 | ワークフロー エンジンは、アクティビティの [実行] 機能を起動させます。 |
| 待機中 | アクティビティを再開する特定のイベントが発生するまで、ワークフロー エンジンはアクティビティを無視します。 |
| 完了 | アクティビティの実行が終了しました。アクティビティの結果については結果値を確認してください。 |
| キャンセル | このアクティビティ、またはこのアクティビティを含むワークフローはキャンセルされました。 |
| エラー | JavaScript エラーが発生しました。エラーの詳細についてログを確認してください。 |
ロールバックの動作
[ロールバック] アクティビティは、遷移線矢印で指定されたアクティビティに直接移行します。
複数のロールバックまたはネストされたロールバックを使用するすべてのワークフローに [ロールバック] アクティビティを使用します。[ロールバック] は、対象タスク (直接移行) を [オープン] にリセットします。[ロールバック] アクティビティと対象タスク (ロールバック タスク) 間で実行されたすべてのタスクは、[保留中] に設定されます。
(0) 開始
(1) ログ メッセージ
(2) タスク 1
(3) タスク 3
(4) タスク 2
(5) タイマー
(6) 承認 1
(7) 最初のタスクにロールバック
(8) タスク 1
(9) タスク 2
(10) 承認 1
(11) ログ承認
(12) 結合
(14) メール送信
(15) 終了
移行履歴
(3) タスク 3 の状態は、このアクティビティがロールバック ターゲット アクティビティから直接移行しないため、変更されません。ロールバックされたアクティビティを確認するには、 [ワークフロー移行履歴] 関連リストを選択し、[ロールバック済み] 列を確認します。
[ロールバック] アクティビティ (7) は、以下のアクティビティを更新します。
(8) タスク 1:[オープン]
(9) タスク 2:[保留中]
(10) 承認 1:未要求 にリセット
ロールバック アクティビティ
ワークフロー内の条件が [ロールバック] アクティビティをトリガーすると、ワークフローは、ワークフロー内の指定されたアクティビティに処理を戻し、すでに実行された特定のアクティビティを元の状態にリセットします。これは、予期しないエラーを処理する場合や、プログラムされた論理フローの一部として処理する場合に便利です。
ワークフローのロールバック中にアクティビティがリセットされると、次のようになります。
- 承認は 未要求 にリセットされます。
- タスクは [オープン] または [保留中] のいずれかにリセットされます。ロールバックワークフロー パスは新しいタスクを作成できません。
ファイルの削除やメールの送信などの外部システム操作を実行するアクティビティはロールバックされません。承認およびタスクのアクティビティのみがリセットされます。
ワークフローには、単一のロールバック、複数のロールバックを含めることができます。また、より複雑なワークフローには、ネストされたロールバックを含めることができます。[ロールバック] アクティビティは、実行順序を使用して処理を再開する場所を決定するのではなく、それ自体とアクティビティに移行したものとの間でアクティビティの実際のワークフロー順序 (遷移線添付) に基づいてアクティビティをリセットします。