BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > AI トピック > Application Integration ユーザーズ ガイド > Studio におけるアプリケーション ビューの使用 |
Application Integration ユーザーズ ガイド
|
Studio におけるアプリケーション ビューの使用
この章では、以下のトピックを取り上げます。
始める前に
企業に必要なアプリケーション ビューのサービスとイベントをすべて作成すれば、そのアプリケーション ビューを使用してビジネス プロセスを実行できます。ビジネス プロセスを実行する場合、WebLogic Integration Studio でアプリケーション ビューのサービスとイベントを使用するビジネス プロセス ワークフローを設計するのが、最も簡単な方法です。
WebLogic Integration Studio は、ビジネス プロセス ワークフローを設計するためのグラフィカル ユーザ インタフェース(GUI)です。ワークフローには、WebLogic Integration によって定義したアプリケーション ビューのサービスおよびイベントを組み込むことができます。詳細については、『WebLogic Integration Studio ユーザーズ ガイド』を参照してください。
WebLogic Integration Studio でアプリケーション ビュー サービスを呼び出したり、アプリケーション ビュー イベントを受信するには、以下の前提条件を満たしていることを確認する必要があります。
ワークフローのセットアップ タスク
以下の節では、アプリケーション ビュー サービスおよびイベントを使用するワークフローをセットアップするときに実行する 4 つのタスクについて説明します。
これらのタスクは自由に組み合わせて実行し、独自のワークフローを作成できます。
このマニュアルでは、WebLogic Integration で提供されている Business Process Management (BPM) 機能の使い方を完全に説明しているわけではありません。詳細については、『WebLogic Integration チュートリアル
』を参照してください。
タスク 1 : アプリケーション ビュー サービスを呼び出すタスク ノードの設定
オーガニゼーションにおいて、ワークフローの中からアプリケーション ビューのサービスを呼び出すことが必要になる場合があります。そのような呼び出しができるようにするには、ワークフローにタスク ノードを追加し、以下に該当するアプリケーション ビュー サービスのアクションをそのタスク ノードに追加します。ワークフローを保存してアクティブ化すれば、タスク ノードの実行時に常にこのアプリケーション ビュー サービスが呼び出されるようになります。
アプリケーション ビューのサービスを呼び出すタスク ノードの設定手順
アプリケーション ビュー サービスを呼び出すタスク ノードを作成する手順は、次のとおりです。
どちらの項目を選択しても、[サービス要求テンプレート] ダイアログ ボックスが表示されます。
[サービス要求テンプレート] ダイアログ ボックスには、手順 11 で指定されたタイプのすべてのサービス要求に使用されるテンプレートが表示されます。このテンプレートは、サービスに関する入力スキーマが基準になっています。
このアクションが実行されると、指定された要求ドキュメント変数にテンプレート データが割り当てられ、サービス用の入力ドキュメントとして使用されます。このテンプレートは、その変数に対する既存のすべての設定をオーバーライドします(テンプレートを設定し、かつ新しい入力変数ではなく既存の入力変数を使用したい場合、[アプリケーション ビュー サービスの呼び出し] を削除し、再作成するのが最も簡単な方法)。
[Service Request Template] ダイアログ ボックスの使用方法については、『WebLogic Integration Studio ユーザーズ ガイド』を参照してください。
タスク 2 : 非同期アプリケーション ビュー サービスからの応答を待機するイベント ノードの設定
この節では、非同期アプリケーション ビュー サービスの応答を受信する方法と、その際に発生する可能性のあるエラーの処理方法について説明します。
ワークフロー内で、アクションの実行時にアプリケーション ビュー サービスが非同期的に呼び出されると、常にアプリケーション ビュー サービスが応答を返します。応答が必要な場合、その応答を待機する、対応する非同期イベント ノードを設定する必要があります。この節では、イベント ノードが、エラー チェックを行わずにアプリケーション ビュー サービスの応答を受信するといった非常に単純なシナリオについて説明します。
非同期イベント ノードを設定して非同期アプリケーション ビュー サービスからの応答を待機するには、イベント ノードを作成し、次にタイプが AI Async Response のイベントを待機するようにイベント ノードをコンフィグレーションします。
応答受信のコンフィグレーション
非同期サービス応答を受信するイベント ノードを設定するには、以下のいずれかの方法を使用できます。
注意: [応答ドキュメント] タブを使用する方法をお勧めします。この方法は、非同期応答と同期応答の両方の受信に対応しているからです。この方法を使用する場合は、応答が非同期的か同期的かということには無関係に XML ドキュメントが受信されます。したがって、非同期サービスの応答変数の値をクエリする必要はありません。
できる限り、応答ドキュメント変数を使用して、非同期サービスの応答を受信してください。AI Async Response タイプのイベントを待機するサービスをコンフィグレーションするには、[イベントのプロパティ] ダイアログ ボックスを使用します。このダイアログ ボックスで応答を受信する非同期変数を使用するオプションが提供される場合があります(提供されない場合もある)。このオプションが使用可能かどうかは、以下の条件によって決まります。
非同期アプリケーション ビュー サービス応答でのエラー処理
このタスクでは、アプリケーション ビュー サービス応答に対するエラー処理のコンフィグレーションは含まれませんが、通常、自分のワークフロー内でエラーを処理したい、と考えるでしょう。AsyncServiceResponse 変数を使用するワークフロー内で、非同期サービス応答のエラーを処理するには、Application Integration のプラグインに実装されている機能を使用できます。
Application Integration プラグインには、変数タイプ AsyncServiceResponse と次の 3 つの関数が実装されています。
これらの関数の詳細については、Application Integration プラグインに実装される関数を参照してください。
非同期サービス応答受信のコンフィグレーション手順(推奨方法)
非同期イベント ノードを設定して非同期アプリケーション ビュー サービスからの応答を待機するには、イベント ノードを作成し、次にタイプが AI Async Response のイベントを待機するようにイベント ノードをコンフィグレーションします。
非同期サービス応答の受信に XML 変数を使用するイベント ノードを設定する手順は、次のとおりです。
非同期サービス応答受信のコンフィグレーション手順(従来の方法)
非同期サービスの応答を受信する場合、XML タイプの応答ドキュメント変数を使用することをお勧めします。ただし、既存のワークフロー内に非同期イベント ノードがあり、AsynchServiceResponse 変数を使用して、非同期アプリケーション ビュー サービスからの応答を待機するように設定されている場合、そのイベント ノードを修正して使用することができます。
非同期サービス応答の受信に AsyncServiceResponse 変数を使用するイベント ノードを修正する手順は、次のとおりです。
Application Integration プラグインに実装される関数
企業で AI Async Response 変数を使用しており、Application Integration プラグインの使用時にそれらの変数を取り出したい場合は、次の関数を使用します。
上記の関数を使用して、正常条件またはエラー条件を処理するための分岐ノードを設定できます。
注意: これらの関数が使用できるのは、Application Integration プラグインがインストールされている場合に限り、対象となるのは非同期サービス応答を受信するのに非同期変数を使用する方法だけです。詳細については、非同期サービス応答受信のコンフィグレーション手順(従来の方法)を参照してください。
AIHasError()
非同期サービス応答ステータスを判断するには、AIHasError() を使用します。次の表には、この関数の詳細が示されています。
オペランド |
AsyncServiceResponse 変数 |
前提条件 |
|
戻り値 |
Boolean |
出力データの説明 |
False −非同期アプリケーション ビュー サービスの呼び出しに成功。 True −非同期アプリケーション ビュー サービスの呼び出しに失敗。 |
AIGetErrorMsg()
非同期アプリケーション ビュー サービスから返されたエラー メッセージ文字列を読み込むには、AIGetErrorMsg() を使用します。次の表には、この関数の詳細が示されています。
オペランド |
AsyncServiceResponse 変数 |
前提条件 |
|
戻り値 |
文字列 |
出力データの説明 |
エラー文字列 −非同期アプリケーション ビューの応答に失敗した理由を説明するエラー文字列が返される。 空の文字列 −エラーはなし。 |
AIGetResponseDocument()
非同期アプリケーション ビュー サービスから返された XML 応答ドキュメントを読み込むには、AIGetResponseDocument() を使用します。次の表には、この関数の詳細が示されています。
オペランド |
AsyncServiceResponse 変数 |
前提条件 |
|
戻り値 |
XML |
出力データの説明 |
XML ドキュメント −非同期サービスの応答を表す XML ドキュメントが返される。 NULL −エラーが発生したため、応答ドキュメントは返されていない。 |
タスク 3 : アプリケーション ビュー イベントによって開始されるワークフローの作成
時として、指定されたアプリケーション ビュー イベントが発生するたびに一定のワークフローが開始するように設定したい場合があります。そのようなワークフローを作成するには、そのワークフローがタイプ AI Start のイベントに応答するようにワークフローの開始ノードを編集し、該当するアプリケーション ビュー イベントを選択します。必要に応じて、イベントのフィルタ処理を実行するための条件を設定できます。このワークフローを保存してアクティブ化すると、そのアプリケーション ビュー イベントが発生するたびに開始ノードが実行されます。
アプリケーション ビュー イベントによって開始されるワークフローの作成手順
アプリケーション ビュー イベントによって起動される開始ノードを持つワークフローを設定する手順は、次のとおりです。
また、WebLogic Integration が、指定したキー値と着信イベントに対する XML メッセージのキー値を比較できるように、着信キー値を検索する式を定義する必要があります。キー値式がない場合、式を作成するように求められます。作成しなければイベントは保存できません。
[Event Descriptor for AI Events] は、次の形式によるアプリケーション ビュー イベントの完全修飾名です。
namespace.application view name.event
Root は、この完全修飾イベント名には含まれません。[Event Descriptor] フィールドは、キー値式が直接 [イベント] ダイアログ ボックスから作成された場合、自動的に入力されます。内容とは無関係に、指定したアプリケーション ビュー イベントのインスタンスごとに受け入れる場合は、このフィールドを空白にしておきます。
タスク 4 : アプリケーション ビュー イベントを待機するイベント ノードの設定
ワークフローでは、時としてアプリケーション ビュー イベントによって起動されるイベント ノードを設定したい場合があります。そのようなノードを作成するには、AI Event タイプのイベントに応答するようにイベント ノードを編集し、それから該当するアプリケーション ビュー イベントを選択します。必要に応じて、目的のアプリケーション ビュー イベントにフィルタ処理をするための条件を設定できます。ワークフローを保存してアクティブ化すると、ワークフローはこのイベント ノードまで進み、指定されたアプリケーション ビュー イベントを待機してから処理を続行します。
アプリケーション ビュー イベントを待機するノードの設定手順
アプリケーション ビュー イベントによって起動されるイベント ノードを設定する手順は、次のとおりです。
また、WebLogic Integration が、指定したキー値と着信イベントに対する XML メッセージのキー値を比較できるように、着信キー値を検索する式を定義する必要があります。キー値式がない場合、式を作成するように求められます。作成しなければイベントは保存できません。
[Event Descriptor for AI Events] は、次の形式によるアプリケーション ビュー イベントの完全修飾名です。
namespace.application view name.event
Root は、この完全修飾イベント名には含まれません。[Event Descriptor] フィールドは、キー値式が直接 [イベント] ダイアログ ボックスから作成された場合、自動的に入力されます。内容とは無関係に、指定したアプリケーション ビュー イベントのインスタンスごとに受け入れる場合は、このフィールドを空白にしておきます。
ワークフロー内におけるアプリケーション ビューのローカル トランザクションの処理
LocalTransaction インタフェースは、CCI (Common Client Interface) 接続クラスによってアダプタ クライアントに公開されます。現在、アプリケーション ビュー インタフェースでは、CCI LocalTransaction インタフェースは使用しません。ローカル トランザクションを管理するには、ユーザはまず接続オブジェクトから LocalTransaction を入手する必要があります。
ローカル トランザクション管理規約
ローカル トランザクション管理規約は、アダプタが、そのリソース マネージャで実行されるローカル トランザクションをサポートするために javax.resource.spi.LocalTransaction を実装する場合に作成されます。このタイプの規約によって、アプリケーション サーバがトランザクション管理のインフラストラクチャと実行時環境を整えられます。アプリケーション コンポーネントはこのトランザクション インフラストラクチャを利用して、コンポーネントレベルのトランザクション モデルをサポートします。
トランザクション境界設定の詳細については、以下を参照してください。
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/transaction_management/platform/index.html
ユーザ定義のトランザクション境界設定がないローカル トランザクションのコネクタ サポート
以下に示すのは、Application Integration プラグイン内でアプリケーション ビューのローカル トランザクションをサポートする場合のシナリオです。このシナリオは、コネクタがローカル トランザクションだけをサポートするため、EJB トランザクションの TX_REQUIRES_NEW に類似しています。
このシナリオでは、コネクタはローカル トランザクションだけをサポートし、BPM 設計者はローカル トランザクションの開始と終了の境界を明示的に設定しません。WebLogic Integration では、LocalTransaction オブジェクトの周囲に XA ラッパーを配置することにより、コネクタがグローバル トランザクションに参加できます。XA ラッパーは、LocalTransaction インスタンスに委託できない XAResource インタフェース上のすべてのメソッドに無演算命令を出します。WebLogic Integration では、トランザクション チェーンに組み込める非 XA リソースは 1 つだけです。したがって、ユーザがワークフロー内に設定できるアプリケーション ビュー LocalTransaction は 1 つだけです。
XA トランザクションのコネクタ サポート
このシナリオでは、アプリケーション ビュー サービスは、ローカル トランザクション内では呼び出されません。各サービス呼び出しは、リソース アダプタが XA をサポートしているため、自動的にグローバル XA トランザクションに追加されます。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |