ValidateSingleEnd
ValidateSingleEndバリデーターは、単一のワークフローで複数のEndアクティビティを検出して識別します。
ワークフロー内の複数のEndアクティビティは意図的であり、ワークフローに影響を与えないか、または設計者が修正する必要がある間違いである可能性があります。
検証の要約
- リスク:終了アクティビティへの実行パスは相互に排他的ではなく、最初の終了によってワークフローが完了し、他の実行中のアクティビティはすべてキャンセルされます。
- 重大度: 警告
- 有効な結果: 有効
- 有効なメッセージ: このワークフローには1つの終了アクティビティが含まれます。
- 無効な結果: 無効
- 無効なメッセージ: このワークフローには、<終了数>終了アクティビティが含まれます。
- 提案されたアクション:設計の一部として意図されていない余分な終了アクティビティを削除します。
- パブリッシュ可能: はい
- 実行可能ファイル: はい
- 関連情報: なし
トラブルシューティング
ワークフローでEndアクティビティが発生するとすぐに、他の実行可能な実行パスが存在していても、まだ実行中の2番目のEndアクティビティが発生しても、ワークフローは完了します。実行しているアクティビティは、 Endアクティビティのクリーンアップアクションです。したがって、複数のEndを持つワークフローを設計した結果は注意深く考慮する必要があります。
大規模なワークフローの場合、複数のEndアクティビティがある場合にワークフローを読む方が直感的です。次の例では、2つのEndへのパスは相互に排他的な実行パスです。これがBranchと2番目のEndの間に多数のアクティビティを持つ大きなワークフローだった場合、複数のエンドの値が明らかになります。ユーザーからの無応答のトレースは、他の33の活動の後ろの1つのEndに対しては無効です。このワークフロー設計では、通知アクティビティ終了後のEndがワークフローを終了した場合に他のアクティビティを実行する理由がないため、リスクはありません。
次の例では、実行パスに複数のEndアクティビティがあり、それらは相互に排他的ではありません。ユーザーからのYesレスポンスが有効な場合、値の設定アクティビティが直ちに終了します。この実行パスは、Endアクティビティに最初に到達することにより、AppsおよびDB Taskアクティビティの承認をキャンセルしますが、これは望ましい結果ではない可能性があります。Endの前にパスがすべて完了すると予想される場合、アクティビティは単一のEndに遷移するJoin(前の例のように)に来る必要があります。