次の例で、複雑ですが一般的なケースを紹介します。Order[received]メッセージがOrdersシステムで呼び出された場合、2つの宛先が考えられます。最終的なターゲットとなる宛先は、顧客の出荷先の住所により判断されます。この情報は、メッセージ内に格納されます。メッセージの適切な宛先を判断するには、メッセージに対していくつかの評価を実行する必要があります。
この場合、BESは、Order[received]イベントが発生したという通知を受信しても、メッセージを即時に別のアプリケーションに渡すことはできません。かわりに、Oracle Workflowのルーティングおよび判断処理機能を使用してメッセージを評価し、送信先を判断します。Oracle Workflowは、判断プロセスの一部としてユーザー指定のJavaコードを起動します。結果に応じて、2つのターゲット・アクティビティの1つがアクティブになります。
図1に示されている内容ベース・ルーティングの実装に必要な定義はすべて、次のとおりです。
送信システム
ターゲット・システム
ハブ
送信システムにより送信されるイベント
送信アクティビティがメッセージの送信に使用する出力チャネル
受信アクティビティがメッセージの受信に使用する入力チャネル
BESにワークフローへのイベントの送信を指示する受信
遷移に記述され、イベント・メッセージを評価し、メッセージを正しい受信者に送信する関数をコールするコード(詳細は、「カスタム内容ルーティング・ロジックの使用」を参照)