機械翻訳について

相関を使用したプロセス間の通信

相関により、ビジネス・プロセスがインスタンスの状態に基づいて相互に通信できます。

ビジネス・プロセスの相関を定義すると、インスタンスの状態に基づいて別のプロセスのインスタンスを識別し、その特定のインスタンスにメッセージを送信できます。

たとえば、販売プロセスと、対応する出荷プロセスおよびメーリング・プロセス間の通信に相関を使用できます。 顧客がオーダーを確定すると、販売プロセスは、オーダーIDを使用して両方のプロセスのインスタンスを検索するように定義する相関を使用して、出荷およびメーリング・プロセスにメッセージを送信します。

相関の機能

単純なユースケースで相関がどのように機能するかを見てみましょう。

品目をオーダーするためのメイン・プロセス(オーダー)があるとします。 このプロセスは別のプロセス(仕入先)を呼び出して、オーダーでリクエストされたアイテムが使用可能かどうかを確認および確認します。 どちらのプロセスも非同期に実行されます。 仕入先プロセスが実行され、リクエストされたアイテムの利用可能状況がチェックされる間、オーダー・プロセスはプロセス・フローの次のアクティビティに進みます - たとえば、マネージャから第1レベルの承認を得るためにアクティビティに移動し、次に次のアクティビティに移動して財務から承認を取得します。 オーダー・プロセスは、ベンダー・プロセスからのレスポンス・メッセージを待機する必要があるアクティビティに到達するまで継続して実行されます。 ベンダー・プロセスからレスポンス・メッセージを受信すると、オーダー・プロセスは後続のアクティビティに進み、完了します。

しかし、実際のシナリオでは、多くのオーダーが同時に開始され、特定のアイテムの利用可能状況についてベンダーからのレスポンスを待つ場合があります。 そのため、オーダー・プロセスとベンダー・プロセスの多くのインスタンスが同時に実行される場合があります。 エンジンは、ベンダー・プロセス・インスタンスのレスポンスとメイン・オーダー・プロセス・インスタンスの対応するリクエストをどのように決定し、正しく一致させますか。 たとえば: オーダー・プロセスと仕入先プロセスの50インスタンスが同時に開始された可能性があります。 エンジンは、ベンダー・プロセス・インスタンス25のレスポンスを、オーダー・プロセス・インスタンス25のリクエストとどのように照合しますか。 これは、「相関」を使用して行います。 相関を使用すると、受信レスポンス・メッセージを適切なインスタンスと照合できます。 相関の主なコンポーネントは、「相関キー」です。

相関キーとは

「相関キー」は、受信メッセージをプロセスの特定のインスタンスに関連付けるために使用される相関プロパティのセットです。 たとえば、OrderプロセスとVendorプロセスのユース・ケースでは、相関キー・プロパティはOrder Idです。 相関キーを定義する場合は、相関で使用されるプロパティを識別するために、キーに一意の名前を指定します。 相関キーのスコープはプロセスとなり、つまり、定義した相関キーは、そのプロセスのアクティビティの相関定義に使用できます。

相関キーはどこで定義しますか。

相関キーは、アクティビティ・レベル(受信アクティビティ)またはプロセス・レベルのいずれかで定義できます。
  • 受信アクティビティのプロパティ・ペインから相関キーを定義および作成します。
  • プロセス・エディタのサイドバー・メニューから「相関キー」 相関キーアイコンをクリックして、プロセス・レベルで相関キーを定義および作成します。 「相関キー」ペインが開き、プロセスの相関キーを定義できます。 定義したら、そのプロセスの受信アクティビティで使用できます。

相関を実装する主なステップは何ですか。

  1. 定義: 使用する相関キーを定義します。 相関キーを定義する場合は、識別するための名前を指定します。 1つ以上のプロパティを使用してキーを作成します。 たとえば、オーダーID + 品目番号です。 プロパティは、オーダーID、顧客名、社会保障番号などの、プロセスの代表的な属性の抽象概念です。
  2. 初期化: リテラル値または式を使用して相関キーに値を割り当て、アクティビティから初期化します。 アクティビティの引数および事前定義済変数を使用できます。 相関を初期化した後は、サービス・エンジンでインスタンスを特定するためにこの値が使用されるため、この値を変更することはできません。
  3. 関係付け: 相関キーと一致する入力引数を指定します。 入力引数は、呼び出されたプロセスによって送信されたレスポンス・メッセージで受信する引数です