イベント トピックでは、ブロック可能なイベントと応答可能なイベントがサポートされる場合があります。ワークフロー サブスクリプションの動作は、トピックでこれらのイベント タイプがサポートされるかどうか、またワークフロー サブスクリプションの設定方法によって異なります。

ブロック可能でないイベント トピック

ブロック可能でないイベント トピックでは、非ブロック サブスクリプションの作成のみが許可されます。非ブロック サブスクリプションは非同期的にトリガされるため、サブスクリプションのトリガや vRealize Orchestrator ワークフローの実行が、設定された順序どおりに処理されないことがあります。非ブロック サブスクリプションは、トピックが応答可能な場合にのみ応答を返します。

ブロック可能なイベント トピック

一部のイベント トピックはブロックをサポートします。ワークフロー サブスクリプションがブロックとしてマークされている場合、最初のワークフローが完了するまで、設定された条件を満たすすべてのメッセージは、条件が一致する他のワークフロー サブスクリプションでは受信されません。同じイベント トピックに複数のブロック ワークフロー サブスクリプションがある場合は、各サブスクリプションに優先順位を設定します。

ブロック サブスクリプションは優先順位に従って実行されます。最も高い優先順位の値は 0(ゼロ)です。1 つのイベント トピックに優先順位レベルが同じ 2 つ以上のブロック サブスクリプションがある場合、各サブスクリプションの名前に基づいてアルファベット順に実行されます。すべてのブロック サブスクリプションが処理されたら、メッセージは、すべての非ブロック サブスクリプションに同時に送信されます。ブロック ワークフロー サブスクリプションは同期的に実行されるため、後続のワークフロー サブスクリプションが通知される際には、変更されたイベント ペイロードに更新済みのイベントが含まれます。

選択したワークフローや目標に応じて、1 つまたは複数のワークフロー サブスクリプションにブロックを適用します。

たとえば、2 つのプロビジョニング ワークフロー サブスクリプションがあり、2 つ目のワークフローが 1 つ目の結果を使用する場合について考えます。1 つ目は、プロビジョニング時にプロパティを変更し、2 つ目はファイル システム内の新しいプロパティ(マシン名など)を記録します。ChangeProperty サブスクリプションの優先順位は 0 で、RecordProperty は ChangeProperty サブスクリプションの結果を使用するため、優先順位が 1 になります。マシンのプロビジョニングが開始されると、ChangeProperty サブスクリプションが実行されます。RecordProperty サブスクリプションの条件はプロビジョニング後の条件に基づくため、RecordProperty サブスクリプションはメッセージによってトリガされます。ただし、ChangeProperty ワークフローはブロック ワークフローであるため、完了するまでメッセージは受信されません。名前が変更されて最初のワークフローが終了したら、2 つ目のワークフローが実行されてファイル システムの名前が記録されます。

ブロックをサポートするイベント トピックの場合でも、ワークフロー サブスクリプションに、前のワークフローの結果を使用する後続のワークフローがない場合は、非ブロック ワークフロー サブスクリプションを作成できます。ワークフロー サブスクリプションがトリガされ、vRealize Automation や外部システムから操作を行わなくても、vRealize Orchestrator ワークフローが実行されます。

応答可能なイベント トピック

一部のイベント トピックは、登録済みサービスからの応答をサポートします。応答可能なイベント トピックを登録したサービスは、通常は、システムまたはユーザーからの操作の結果として、ワークフロー出力を提供する応答イベントを受け入れることができます。応答の出力パラメータは、元の応答可能なイベントを発行した vRealize Automation サービスによる処理を可能にするために、応答スキーマで定義された条件を満たす必要があります。たとえば、事前承認および事後承認のワークフロー サブスクリプションは応答可能です。外部システムに承認申請を送信するワークフローを作成する場合、(承認済みまたは却下済みの)応答は vRealize Automation によって処理され、カタログ アイテムがプロビジョニングされるか、申請が却下されたことがユーザーに通知されます。

応答は vRealize Orchestrator ワークフローの出力になるか、ワークフローがタイムアウトまたは失敗した場合には、エラーになることがあります。応答がワークフローの出力パラメータから行われる場合、応答は正しい応答スキーマ形式である必要があります。