ValidateSubflows
ValidateSubflows バリデータは、非アクティブ、削除、または現在のユーザーの公開ワークフローとして使用できないサブフローとして含まれるワークフローを検出します。
警告:
これは、ワークフローが実行されないようにする重大なエラーです。
検証の要約
- リスク: 削除されたサブフローに移行する親ワークフローは、回復オプションなしで無期限にハングアップします。
- 重大度: クリティカル
- 有効な結果: 有効
- 有効なメッセージ: このワークフローには、<カウント>有効なサブフローが含まれています。
- 無効な結果: 無効
- 無効なメッセージ: このワークフローには、合計サブフローの<invalid count>無効なサブフローが含まれています。
- 推奨処置: 親ワークフローのリンクを疑わしいサブフローに移動し、サブフローを検証してサブフローが有効で公開されていることを確認するか、現在のユーザーにチェックアウトされていることを確認します。サブフローの状態に修正した後、再度検証を実行して変更をテストします。
- パブリッシュ可能: いいえ
- 実行可能ファイル: いいえ
- 関連情報: サブフローとして使用されるワークフロー
トラブルシューティング
ワークフローが実行されるとき、サブフローであるかメインフローであるかにかかわらず、スクリプトエンジンは、現在のユーザーおよびワークフローの条件を考慮して、実行するワークフローのバージョンを決定します。ワークフローを実行している同じユーザーがワークフローをチェックアウトすると、チェックアウトされたバージョンが実行されるバージョンになります。ユーザーがワークフローをチェックアウトしているのと同じ人でない場合は、ワークフローの公開バージョンが実行されます。公開されたワークフローがない場合、ワークフローは実行されません。
1つのシナリオは、 ValidateSubflows バリデータはワークフローがいつ発生するかです:
- ユーザーAにチェックアウトされています。
- 親ワークフローのサブフローがユーザーBによって実行されているかどうかです
- ユーザーBによって実行されているサブフローの代替案はありません。
これが発生すると、親ワークフローは未発行のサブフローの実行まで実行され、そのアクティビティでハングします。サブフロー内でこの条件に遭遇するメインフローは、現在のレコードのトランザクションに対して実行することはできません。代わりに、サブフローの状態を詳述する重要なログエントリが、現在のワークフローのワークフローコンテキストレコードに追加されます。問題を解決するには、サブフローをメインフローから削除するか、サブフローをユーザーBが使用できるように公開します。これにより、ワークフローは次の適切なトランザクションで実行されます。
他のシナリオ ValidateSubflow バリデータはワークフローがいつ発生するかです:
- 親ワークフロー内のサブフローは、どのユーザーによっても実行されていますか。
- ワークフローが削除されたか、またはワークフローのすべてのバージョンが未公開または非アクティブであるため、サブフローの代替案は公開されていません。
注:
サブフローであるワークフローをリストまたはフォームから削除することはできません。ただし、これらの不安定な条件の1つは、高度なスクリプト、SQLオプション、またはメインフローを含む不完全な更新セットで作成できますが、参照されるサブフローは作成できません。このバリデータをトリガしたワークフローをトラブルシューティングするときは、エラー状態を評価しながらサブフローの履歴を検討します。