ValidateSubflows

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:3分
  • ValidateSubflows バリデータは、非アクティブ、削除、または現在のユーザーの公開ワークフローとして使用できないサブフローとして含まれるワークフローを検出します。

    これらの条件のいずれかが原因で、メインフローのワークフロー アクティビティが発生したときにワークフローがハングします。
    警告:
    これは、ワークフローが実行されないようにする重大なエラーです。

    検証の要約

    • リスク: 削除されたサブフローに移行する親ワークフローは、回復オプションなしで無期限にハングアップします。
    • 重大度: クリティカル
    • 有効な結果: 有効
    • 有効なメッセージ: このワークフローには、<カウント>有効なサブフローが含まれています。
    • 無効な結果: 無効
    • 無効なメッセージ: このワークフローには、合計サブフローの<invalid count>無効なサブフローが含まれています。
    • 推奨処置: 親ワークフローのリンクを疑わしいサブフローに移動し、サブフローを検証してサブフローが有効で公開されていることを確認するか、現在のユーザーにチェックアウトされていることを確認します。サブフローの状態に修正した後、再度検証を実行して変更をテストします。
    • パブリッシュ可能: いいえ
    • 実行可能ファイル: いいえ
    • 関連情報: サブフローとして使用されるワークフロー

    トラブルシューティング

    ワークフローが実行されるとき、サブフローであるかメインフローであるかにかかわらず、スクリプトエンジンは、現在のユーザーおよびワークフローの条件を考慮して、実行するワークフローのバージョンを決定します。ワークフローを実行している同じユーザーがワークフローをチェックアウトすると、チェックアウトされたバージョンが実行されるバージョンになります。ユーザーがワークフローをチェックアウトしているのと同じ人でない場合は、ワークフローの公開バージョンが実行されます。公開されたワークフローがない場合、ワークフローは実行されません。

    1つのシナリオは、 ValidateSubflows バリデータはワークフローがいつ発生するかです:

    • ユーザーAにチェックアウトされています。
    • 親ワークフローのサブフローがユーザーBによって実行されているかどうかです
    • ユーザーBによって実行されているサブフローの代替案はありません。

    これが発生すると、親ワークフローは未発行のサブフローの実行まで実行され、そのアクティビティでハングします。サブフロー内でこの条件に遭遇するメインフローは、現在のレコードのトランザクションに対して実行することはできません。代わりに、サブフローの状態を詳述する重要なログエントリが、現在のワークフローのワークフローコンテキストレコードに追加されます。問題を解決するには、サブフローをメインフローから削除するか、サブフローをユーザーBが使用できるように公開します。これにより、ワークフローは次の適切なトランザクションで実行されます。

    他のシナリオ ValidateSubflow バリデータはワークフローがいつ発生するかです:

    • 親ワークフロー内のサブフローは、どのユーザーによっても実行されていますか。
    • ワークフローが削除されたか、またはワークフローのすべてのバージョンが未公開または非アクティブであるため、サブフローの代替案は公開されていません。
    注:
    サブフローであるワークフローをリストまたはフォームから削除することはできません。ただし、これらの不安定な条件の1つは、高度なスクリプト、SQLオプション、またはメインフローを含む不完全な更新セットで作成できますが、参照されるサブフローは作成できません。このバリデータをトリガしたワークフローをトラブルシューティングするときは、エラー状態を評価しながらサブフローの履歴を検討します。