機械翻訳について

送信および受信との相関の使用例

通常、相関は、プロセス間で通信するために送受信アクティビティで使用されます。 送信および受信アクティビティでは、相関を使用して、受信メッセージが実行時に適切なプロセス・インスタンスと適切に関連していることを確認します。

簡単なユースケースで、送受信アクティビティとの相関関係を使用して、相互に通信するプロセスを設計する方法を探ります。 2つのプロセスを構成するとします: オーダー・プロセスとベンダー・プロセス。 オーダー・プロセスでは、品目のオーダーが開始されます。 これにより、仕入先プロセスが呼び出され、オーダー済アイテムが使用可能かどうかが確認され、アイテムの見積りが取得されます。 オーダー品目が仕入先の在庫で使用可能な場合、仕入先プロセスは、品目の見積とともにオーダー・プロセスにメッセージを送信します。 コールされたプロセスから送信されたレスポンスが正しいコール元のプロセス・インスタンスによって確実に受信されるように、相関が設定されます。

フローの概要:
  • Orderプロセスが開始されると、order idを含む「相関キー」が初期化されます。 order idは、Orderプロセスのデータ・オブジェクトです。 エンジンは、オーダー・プロセスのそのインスタンスのキーを格納します。
  • オーダー・プロセスでは、「送信」アクティビティを使用して、order idをベンダー・プロセスに送信します。
  • ベンダー・プロセスでは、「送信」アクティビティを使用してorder idでコールバックします。
  • オーダー・プロセスの「受信」アクティビティは、ベンダー・プロセスによって送信されたorder idが、オーダー・プロセス・インスタンスの起動時に初期化された「相関キー」と一致するかどうかをチェックします。 order id「相関キー」と一致する場合、Orderプロセス・インスタンスによって受信されたレスポンスが、コールされた対応するVendorプロセス・インスタンスからのものであることを確認します。
  1. 次のアクティビティを使用してオーダー・プロセスを作成します:
    • フォーム開始イベント(開始イベント)
    • 送信アクティビティ(オーダー詳細の送信)
    • ヒューマン・タスク・アクティビティの承認(承認)
    • 受信アクティビティ(ベンダー・レスポンス待機中)
    • 2番目のヒューマン・タスク・アクティビティの承認(請求金額の承認)
    • 終了イベント(終了イベント)

    cor-order-process.pngの説明は以下のとおりです
    図cor-order-process.pngの説明

  2. 次のアクティビティを使用して仕入先プロセスを作成します:
    • メッセージ開始イベント(ベンダー・プロセスの開始)
    • ヒューマン・タスクの発行アクティビティ(見積の提供)
    • 送信アクティビティ(確認の送信)
    • 終了イベント(終了イベント)

    cor-vendor-process.pngの説明は以下のとおりです
    図cor-vendor-process.pngの説明

  3. オーダー・プロセスのフォーム開始イベントの開始フォームを実装します。

    フォームには少なくとも2つのフィールドが必要です: オーダーIDおよび説明 これらの2つのフィールドをフォームに追加すると、2つのデータ・オブジェクトorderIdおよびdescriptionが、フォームのプロパティ・ペインの「データ」セクションの下にリストされます。

    請求金額の承認アクティビティと承認アクティビティでは、同じフォームを実装できますが、プレゼンテーションが異なる場合があります。

  4. ベンダー・プロセスでメッセージ開始イベントの入力引数を定義します。

    メッセージ開始イベント(ベンダー・プロセスの開始)のプロパティ・ペインを開き、入力引数を指定します。 2つの入力引数の定義: order_idおよびdesc

    cor-vendor-start.pngの説明は以下のとおりです
    図cor-vendor-start.pngの説明

  5. オーダー・プロセスの送信アクティビティを使用して、ベンダー・プロセスをコールします。
    1. 送信アクティビティのプロパティ・ペインを開きます(オーダー詳細の送信)。
    2. 「タイプ」ドロップダウン・フィールドで、「プロセス・コール」を選択します。
    3. 「プロセス」ドロップダウン・フィールドで、「ベンダー」プロセスを選択します。
    4. 「ターゲット・ノード」ドロップダウン・フィールドで、ベンダー・プロセスのメッセージ開始イベント(「ベンダー・プロセスの開始」)を選択します。
  6. オーダー・プロセスの送信アクティビティ(オーダー詳細の送信)でデータ関連付けを定義し、orderIdおよびdescriptionorder_idおよびdescにマップします。
    • orderIdおよびdescriptionは、開始フォームのデータ・オブジェクトです。
    • order_idおよびdescは、メッセージ開始イベント入力引数です。
    cor-order-da-send.pngの説明は以下のとおりです
    図cor-order-da-send.pngの説明
  7. ベンダー・プロセスからコールバックで受信する入力引数を定義します。
    1. オーダー・プロセスで、受信アクティビティ(仕入先レスポンスの待機)のプロパティ・ペインを開きます。
    2. 「タイプ」ドロップダウン・フィールドで、実装タイプとして「インタフェースの定義」を選択します。
    3. 操作名フィールドで、操作を定義: waitingForVendorResponse
    4. 引数の定義で、入力引数を定義: orderidおよびquote
  8. ベンダー・プロセスからのレスポンス・メッセージが正しいオーダー・プロセス・インスタンスにマップされるように、オーダー・プロセスの受信アクティビティに相関を実装します。
    1. オーダー・プロセスで、受信アクティビティ(仕入先レスポンスの待機)のプロパティ・ペインを開きます。
    2. 相関キーを定義します。
      1. 「相関」セクションで、「キー」の横にある矢印>をクリックします。
      2. 結果の「キーの作成」ペインで、「新規」タブをクリックします。
      3. 「名前」フィールドに、キーの名前(orderKey)を入力します。
      4. キーにプロパティidを追加します。 「属性」フィールドにidと入力します。

        cor-create-key.pngの説明は以下のとおりです
        図cor-create-key.pngの説明

        必要に応じて、複数のプロパティをキーに追加できます。 +を使用して、プロパティを追加します。

      5. 「適用」をクリックします。

      「キー」の横にある緑色のチェック・マークは、相関キーが定義されていることを示します。

    3. 相関キーを、レスポンス・メッセージでベンダー・プロセスから受信される入力引数に関連付けるか、照合します。 この例では、id (相関キーの属性)と入力引数属性orderidを照合します。
      1. 「関係付け」の横にある矢印>をクリックします。
      2. 結果の「キー属性の相関」ペインで、ドロップダウン・フィールドのリテラル・モードに切り替えて、リストから「オーダーID」を選択します。

        cor-correlate.pngの説明は以下のとおりです
        図cor-correlate.pngの説明

      3. 「適用」をクリックします。

      「関係付け」およびid: orderidの横にある緑色のチェック・マークは、キーが相関していることを示します。

    4. 相関キーを初期化します。
      1. 「初期化」の横にある矢印>をクリックします。
      2. 結果の「初期化」ペインで、「初期化」ドロップダウン・フィールドで「イベントの開始」を選択します。
      3. 「属性を引数にマップ」で、相関キー・プロパティidを開始フォームのデータ・オブジェクトorderIdにマップします。 式モードを使用して、指定したフィールドに式startFormArgs.orderIdを形成します。

        cor-initialize.pngの説明は以下のとおりです
        図cor-initialize.pngの説明

      4. 「適用」をクリックします。

      開始アクティビティでキーを初期化すると、相関キーに値が割り当てられます。 値は、フォームのデータ・オブジェクトorderIdから取得されます。

  9. ベンダー・プロセスで送信ヒューマン・タスク・アクティビティ(見積りの提供)のフォームを実装します。
    このフォームには少なくとも次のフィールドが必要です: オーダーIDおよび見積金額
  10. order_idが送信フォームのデータ・オブジェクトorderIdにマップされるように、ベンダー・プロセスでメッセージ開始アクティビティ(ベンダー・プロセスの開始)のデータ関連付けを定義します。 これにより、オーダーID値がベンダー・プロセスの発行アクティビティ(見積の提供)に渡されます。
  11. ベンダー・プロセスの送信アクティビティを使用して、オーダー・プロセスをコールバックします。
    1. 送信アクティビティのプロパティ・ペインを開きます(確認の送信)。
    2. 「タイプ」ドロップダウン・フィールドで、「プロセス・コール」を選択します。
    3. 「プロセス」ドロップダウン・フィールドで、「順序」プロセスを選択します。
    4. 「ターゲット・ノード」ドロップダウン・フィールドで、受信アクティビティ(「ベンダー・レスポンス待ち」)を選択します。
  12. ベンダー・プロセスの送信アクティビティ(確認の送信)でデータ関連付けを定義し、ベンダー・プロセスからorderIdおよびquoteamountを入力引数orderidおよびquoteにマップします。 オプションで、フォーム・データ・オブジェクトorderIdのかわりに、プロセス入力order_idorderidにマップすることもできます。

    cor-vendor-da-send.pngの説明は以下のとおりです
    図cor-vendor-da-send.pngの説明

    これにより、相関キーの値がorderid入力引数の値と一致し、リクエストされたアイテムの見積金額が正しいOrderプロセス・インスタンスに渡されます。

プロセスが設定されたので、ワークスペースでプロセス・アプリケーションをアクティブ化およびテストできます。 トラッキング・ページから受注および取引先プロセス・インスタンスの実行をトラッキングし、取引先プロセス・インスタンスからのレスポンス・メッセージが対応するオーダー・プロセス・インスタンスによって受信されているかどうかを確認します。 「プロセスのトラッキング」を参照してください。