機械翻訳について

プロセス間の通信

プロセスはメッセージの開始およびメッセージの終了イベント、送信および受信アクティビティ、またはメッセージのスローおよびメッセージの捕捉イベントを使用して操作できます。 プロセスは他のプロセスを呼び出す、またはサブプロセスを含むこともできます。

あるプロセスが別のプロセスを開始し、応答を待つ場合、プロセスは同期的に対話します。 あるプロセスが別のプロセスを開始し、両方のプロセスが独立して実行する場合、プロセスは非同期的に対話します。

対話タイプ 説明

メッセージの開始およびメッセージの終了イベント

メッセージの開始イベントのプロセスの入力引数を定義する場合、これらの引数にデータを指定してプロセスを開始する必要があります。

メッセージのスロー・イベントを使用したメッセージの開始イベント、または別のプロセスの送信アクティビティから開始するプロセスを非同期的に開始できます。 または、サービス・アクティビティを使用してそのようなプロセスを同期的に開始することもできます。

メッセージの開始イベントから開始されるプロセスは、デプロイ後にWebサービスとして公開されます。 したがって、それを開始するWebサービス・コンシューマとしてプロセスと接続することができます。 「Webサービス接続の作成」を参照してください。

メッセージの終了イベントのプロセスの出力引数を定義する場合、プロセスは完了時にこれらの引数にデータを指定します。

「入力引数または出力引数の定義」を参照してください。

送信および受信アクティビティ

送信アクティビティはデータを送信し、他のプロセスを開始します。 受信アクティビティは他のプロセスの完了時にそこからのデータを受信します。

送信および受信アクティビティは境界イベントを含むことができます。メッセージのスローおよびメッセージの捕捉イベントではできません。

「プロセス間で通信するための送信および受信の使用」を参照してください。

呼出し側プロセスでの送信アクティビティについては、「他のプロセスの呼出し」を参照してください。 呼び出される側プロセスでの受信アクティビティまたは送信アクティビティについては、「入力引数または出力引数の定義」を参照してください。

メッセージのスローおよびメッセージの捕捉イベント

メッセージのスロー・イベントはデータを送信し、他のプロセスを開始します。 メッセージの捕捉イベントは他のプロセスの完了時にそこからのデータを受信します。

「プロセス間で通信するためのメッセージのスローおよび捕捉の使用」を参照してください。

メッセージのスロー・イベントについては、「他のプロセスの呼出し」を参照してください。 メッセージの捕捉イベントについては、「入力引数または出力引数の定義」を参照してください。

サービス・アクティビティ

サービス・アクティビティは他のプロセスまたはWebサービスを呼び出すことができます。 送信、受信およびコール・アクティビティと、メッセージのスローおよびメッセージの捕捉イベントは、他のプロセスを非同期的にのみ呼び出すことができます。 サービス・アクティビティはプロセスを非同期的または同期的に呼び出すことができます。 しかし、呼び出されたプロセスがメッセージの開始イベントで始まる場合、呼出しは同期的である必要があります。

Webサービスの詳細については、「Webサービス接続の作成」を参照してください。

「他のプロセスの呼び出し」を参照してください。

コール・アクティビティ

コール・アクティビティは他のプロセスを子プロセスとして開始します。 親プロセスは子プロセスが完了するまで待機してから続行します。 これによりそれを呼び出す複数のプロセスでプロセスを再利用できます。

「子プロセス用の入力および出力引数の定義」を参照してください。

サブプロセス・アクティビティ

サブプロセス・アクティビティには固有の開始および終了イベントがあるサブプロセスが含まれます。 サブプロセスはその親プロセスと切り離されません。 サブプロセス・アクティビティにより、プロセスの一部の複雑な詳細を隠し、プロセス全体をよりわかりやすくすることができます。

「Expand」「Expand」アイコンをクリックしてサブプロセスを展開し、アクティビティをドラッグして直接サブプロセスにドロップします。 「Collapse」「Collapse」アイコンをクリックして、サブプロセスを折りたたみます。

プロセス間で通信するための送信および受信の使用

送信アクティビティと受信アクティビティを使用して、別のビジネス・プロセスを開始し、そこからメッセージを受信します。 receiveアクティビティから始まり、sendアクティビティを含むプロセスは、「プロセス」内の他のプロセスおよびサービスが使用できるサービスとして公開されています。

次の図に、送信アクティビティが他のプロセスを開始し、受信アクティビティが応答を受信する方法を示します。

次のステップで、送信および受信アクティビティを使用してプロセス間で通信するための考えられるシナリオの概要を示します。

  1. プロセスAが開始します。

  2. プロセスAのフローが送信アクティビティに到達します。

  3. 送信アクティビティがプロセスBを開始します。

    送信アクティビティの実装で、どのプロセスが開始するかを指定します。

  4. プロセスAのフローが次のフロー要素へと進みます。

  5. 受信アクティビティはプロセスBのインスタンスを初期化します。

    プロセスBの開始イベントでは「Trigger」値が「None」である必要があります。 受信アクティビティの実装では、「Create Instance」がチェックされている必要があります。

  6. プロセスBが実行されます。

  7. 両方のプロセスの特定の動作に応じて、次のシナリオが発生する可能性があります。

    1. プロセスAのフローが、プロセスBからの送信アクティビティとペアになっている受信アクティビティに到達すると、プロセスAのフローは応答を受信するまで待機します。

      応答が受信されたら、プロセスAのフローが次のフロー要素へと進みます。

    2. プロセスBのフローが、プロセスAの受信アクティビティとペアになっている送信アクティビティに到達すると、プロセスBは応答をプロセスAに送信します。

      プロセスBのフローが次のフロー要素へと進みます。

  8. 両方のビジネス・プロセスが引き続き実行します。

    後続の送信および受信のペアを使用して、2つのプロセス間の後続の通信を定義できます。

プロセス間で通信するためのメッセージのスローおよび捕捉の使用

メッセージ・スローとメッセージ・キャッチ・イベントの組み合わせを使用して、他のビジネス・プロセスを開始および通信します。

メッセージ・スロー・イベントを使用して別のビジネス・プロセスを開始する場合、次の条件を満たす必要があります。

  • 開始されているビジネス・プロセスは非同期プロセスである必要があります。

    メッセージのスロー・イベントを使用して同期プロセスを開始できますが、他のプロセスから同期的にメッセージを捕捉するメカニズムはありません。 同期プロセスを開始するには、サービス・アクティビティを使用します。

  • メッセージのスロー・イベントを最初に使用するとき、開始したプロセスのメッセージの開始イベントとペアにする必要があります。

    これはプロセス・インスタンスを開始するのに必要です。 インスタンスが開始したら、2番目のプロセスの他のイベントにより捕捉された後続のメッセージのスロー・イベントを使用できます。

メッセージの開始イベントから開始されるプロセスはWebサービスとして公開されます。 「Webサービス接続の作成」を参照してください。

別のプロセスにより開始されたプロセスは子プロセスとはみなされません。 つまり、呼出し元のプロセスの強制終了イベントはメッセージのスロー・イベントで開始されたプロセスを停止しません。

次の図に、メッセージのスロー・イベントが他のプロセスを開始し、メッセージの捕捉イベントが応答を受信する方法を示します。

次のステップでは、メッセージ・スローおよびキャッチ・イベントを使用してプロセス間で通信するシナリオを説明します。

  1. プロセスAが開始します。

  2. プロセスAのフローが、プロセスBを開始するメッセージのスロー・イベントに到達します。

  3. メッセージのスロー・イベントはメッセージをプロセスBのメッセージの開始イベントに送信します。

  4. プロセスAのフローが次のフロー要素へと進みます。

  5. メッセージの開始イベントはプロセスBのインスタンスを開始します。

  6. プロセスBが実行されます。

  7. 両方のプロセスの特定の動作に応じて、次のシナリオが発生する可能性があります。

    1. プロセスAのフローが、プロセスBからのメッセージのスロー・イベントとペアになっているメッセージの捕捉イベントに到達すると、プロセスAのフローはメッセージを受信するまで待機します。

      メッセージが受信されたら、プロセスAのフローが次のフロー要素へと進みます。

    2. プロセスBのフローが、プロセスAのメッセージの捕捉イベントとペアになっているメッセージのスロー・イベントに到達すると、プロセスBはメッセージをプロセスAにスローします。

      プロセスBのフローが次のフロー要素へと進みます。

  8. 両方のプロセスも引き続き実行します。

    後続のメッセージのスローおよびメッセージの捕捉イベントのペアを使用して、2つのプロセス間の後続の通信を定義できます。

入力引数または出力引数の定義

メッセージ開始およびメッセージ・キャッチ・イベントの入力引数と受信アクティビティの入力引数を定義できます。 メッセージの終了イベントと、他のプロセスから呼び出されたプロセスの送信アクティビティに対し出力引数を定義できます。

プロセスの相互作用イベントまたはアクティビティの入力または出力引数を定義するには:
  1. プロセス・エディタの要素パレットで、システムまたはイベント要素を展開します。
  2. 要素をプロセスにドラッグ・アンド・ドロップします。
  3. 要素を選択し、「メニュー」 メニュー・アイコンをクリックして、「プロパティを開く」を選択します。 実装ペインが表示されます。
  4. 他のプロセスで呼び出されたプロセスの受信アクティビティの場合、「Create Instance」をクリックします。
  5. 「Type」ドロップダウン・リストから、「Define Interface」を選択します。 「Edit」をクリックします。
  6. 「Add」をクリックして新しい引数を追加してから、各引数の「Name」および「Type」を指定します。
  7. 他のプロセスで呼び出されたプロセスの送信アクティビティの場合、プロセスが返信を待機する必要があれば、「Synchronous」を選択します。
  8. 「Operation Name」に操作名を入力するか、デフォルトの名前を受け入れます。
  9. データ関連付けを定義して、入力引数データをプロセスの次のアクティビティに渡します。 「データ関連付けの構成」を参照してください。
メッセージ開始イベントで始まるプロセスをアクティブ化すると、プロセスはWebサービスとして公開されます。 「アクティブなアプリケーションの管理」ページで「デプロイされたサービスの表示」を選択すると、Webサービスに関する情報が表示されます。 「アプリケーションおよびサービスとの統合」「管理者の基本」を参照してください。

子プロセスの入力および出力引数の定義

親プロセスのコール・アクティビティにより呼び出された子プロセス用の入力および出力引数を定義できます。

子プロセスの開始および終了イベントは「Trigger」値が「None」である必要があります。 子プロセスには、メッセージ・イベントおよび送信、受信またはサービス・アクティビティのような独立プロセスでのみ有効な要素を含めることはできません。
子プロセス用の入力および出力引数を定義するには:
  1. プロセス・エディタで子プロセスを開きます。
  2. プロセス・エディタで、右下隅の「Restore Pane」アイコンをクリックします。
    ウィンドウの下部に、「Properties」ペインが開きます。
  3. 「Add」アイコンをクリックして、新しい入力または出力引数を追加してから、各引数の「Name」および「Type」を決定します。
  4. プロセス・エディタで親プロセスを開き、コール・アクティビティを選択し、「Menu」メニュー・アイコンをクリックして「Open Properties」を選択します。
  5. 「Implementation」をクリックします。
  6. 「Process」ドロップダウン・リストから子プロセスを選択して、「Properties」ペインを閉じます。
  7. 入力データを子プロセスに渡してそこから出力データを受け取るコール・アクティビティのデータ関連付けを定義します。 「プロセス・フロー要素のデータ関連付けの構成」を参照してください。

別のプロセスのコール

メッセージのスロー・イベント、送信、サービスまたは呼出しシステム・アクティビティを使用して他のプロセスを呼び出します。

他のプロセスを呼び出すには:
  1. プロセス・エディタの要素パレットで、「System」または「Events」タイプを展開します。
  2. システムまたはイベント要素をプロセスにドラッグ・アンド・ドロップします。
  3. 要素を選択し、「Menu」メニュー・アイコンをクリックして「Open Properties」を選択します。
  4. 「Implementation」をクリックします。
    • コール・アクティビティでは、呼び出すプロセスを「Process」ドロップダウン・リストから選択します。 コール・アクティビティについてさらに学習したいですか。 「子プロセスの入力および出力引数の定義」を参照してください。

    • その他のすべての呼び出しコンポーネントに対し、「Type」ドロップダウン・リストから「Process Call」を選択します。 「Browse」アイコンをクリックし、プロセスを選択してから、「OK」をクリックします。

  5. 必要に応じて、ドロップダウン・リストから別の「Target Node」を選択します。
    • メッセージ・スロー・イベントの場合、呼び出されたプロセスのメッセージ開始イベントがリストされます。

    • 送信またはサービス・アクティビティの場合、メッセージ開始イベントと受信アクティビティの両方がリストされます。

  6. プロセスの前のアクティビティから入力データを受信するデータ関連付けを定義します。 「データ関連付けの構成」を参照してください。