Webサービスの呼び出しについて説明します。
前提条件は以下です。
Webサービスの主要な概念を理解している。
Webサービスに関する以下の情報を得ている。
Webサービスの目的
Webサービスがサポートするオペレーションについて記述されているWSDL文書のURL
オプション: WSDL文書の配置場所を問い合わせるためのUDDIレジストリの照会URL
オペレーションの入力パラメータの意味とデータ型
オペレーションの戻り値の意味とデータ型
オペレーションに渡すパラメータ用のUDAを作成している。
オペレーションの戻り値を保存するUDAを作成している。
「Webサービス呼出し」Java Actionを使用して、Interstage BPMからWebサービスを呼び出すことができます。「Webサービス呼び出し」Java Actionは、任意のノードに割り当てることも、プロセス定義自体に割り当てることもできます。また、Web Serviceノードでは、このJavaActionだけ割り当てることができます。
Webサービスを呼び出す方法について説明します。
[プロパティー]ビューを表示するために、プロセス定義エディタ内の空のスペースをクリック、または、Java Actionを設定するノードを選択します。
[アクションセット]タブを選択します。Java Actionを追加する場所を選択し、[追加]をクリックします。[アクションタイプリスト]ダイアログが表示されます。
[連携アクション]を展開し、[Webサービス呼出し]をダブルクリックします。
[Webサービス呼び出し]ダイアログで、Java Actionのアクション名とノートを入力します。
[WSDLロケーション]フィールドにWSDL文書のURLを入力します。
WSDL文書のURLがわかっている場合は、[WSDL ロケーション]フィールドにそのURLを入力します。
URLがわからない場合は、[参照]をクリックすると、[UDDIブラウザ]ダイアログが表示されます。[UDDIブラウザ]ダイアログで[Search]をクリックし、Webサービスを検索します。WSDL文書のUDDIレジストリを問い合わせます。
WSDL文書のURLを動的に変更したい場合は、UDA あるいはアプリケーション変数を使用します。この場合、WSDL文書のURLをUDAまたはアプリケーション変数の値に事前に定義します。
図12.43 WSDL文書の検索
注意
[UDDIブラウザ]ダイアログに、デフォルトのUDDI Query Serverを表示するための設定について説明します。
Interstage BPM Studio for Systemwalkerを終了します。
twf.iniファイルを開きます。以下に、格納されています。
<Interstage BPM Studio for Systemwalkerインストールディレクトリ>\ibpm\Data\bin
以下のURLを入力します。:
UDDIInquiryURL=<URL of a UDDI query server>[,<URL of a UDDI query server> ...]
更新したファイルを保存します。
Interstage BPM Studio for Systemwalkerを起動します。
UDDIレジストリを問い合わせるときには、以下に留意してください。
[UDDI Query Server]フィールドに照会URLを入力します。
検索条件として、Webサービス名、Webサービスプロバイダ、またはtModelを指定できます。
検索条件では、1つまたは複数の文字の代わりに、パーセント記号(%)をワイルドカードとして使用できます。
使用するWebサービスが見つかったら、WSDL文書のURLが[WSDL URL]フィールドに表示されていることを確認します。次に、[UDDIブラウザ]ダイアログで[OK]をクリックすると、[Webサービス呼び出し]ダイアログに戻ります。
図12.44 WSDL文書の配置場所の指定
使用するオペレーションを以下の手順で指定します。
[オペレーション]タブを選択します。
指定されたサービスとポートで使用可能なオペレーションの1つを選択します。
図12.45 オペレーションの選択
選択したオペレーションの入力パラメータを以下の手順で指定します。
[入力]タブを選択します。
このタブには、Webサービスに送信されるSOAP要求メッセージが表示されます。このメッセージには、オペレーションが必要とする入力パラメータが含まれています。[XPath]列には、パラメータがXPath式として表示されます。
[値]列で、オペレーションに渡す値を含むUDAを指定します。
図12.46 オペレーションの入力パラメータの指定
高度なオプションの説明については、「12.7.3 Webサービス: SOAP要求メッセージ用の特殊タグ」を参照してください。
SOAP要求メッセージが外部アプリケーションによって作成される場合は、以下の操作を行います。
SOAP要求メッセージを含むUDAを追加したことを確認します。
[入力]タブで、[UDAからSOAP要求を選択]チェックボックスをオンします。ドロップダウンリストから、SOAP要求メッセージを含むUDAを選択します。リストにはSTRING型またはXML型のUDAのみが含まれます。
図12.47 外部システムから提供されるSOAP要求メッセージ
この場合は、[SOAP要求メッセージ]領域に表示されるメッセージは使用されません。
選択したオペレーションの戻り値をUDAにマッピングします。
[出力]タブを選択します。
[UDA名]フィールドをクリックし、戻り値を保存するUDAを選択します。
Webサービスは、オペレーションの戻り値をSOAP応答メッセージとして送信します。
[UDAのXPath]フィールドをクリックし、戻り値を保存するUDAのXML文字列内に入力します。このXPathフィールドは、XML型のUDAを選択したときのみアクティブになります。
オプション: XPathを編集する場合は、カラムの右端のボタンをクリックします。[XPath エディタ]ダイアログが表示され、XPathを編集できます。
注意
[XPath]コンボボックスに、編集されたXPathが表示されます。
注意
[XPath]ドロップダウンリストには、選択されたXMLタイプのユーザ定義属性に関連するXPathのリストが表示されます。 選択されたユーザ定義属性でXMLスキーマが定義されている時、このXMLスキーマで使用できるXPathのリストを表示します。 選択されたユーザ定義属性でXML(初期)値が定義されている場合は、このXML(初期)値で使用できるXPathのリストを表示します。 両方定義されている場合は、XMLスキーマで使用できるXPathのリストを表示します。
注意
XPath エディタはXPathの構文のチェックを行うのみです。編集されたXPathが存在するかどうかチェックしません。
[SOAP応答メッセージのXPath]フィールドで、SOAP応答メッセージ内の戻り値の場所を指定します。
行を追加する必要がある場合は、[追加]をクリックします。
戻り値が複数ある場合は、複数のUDAへのマッピングが必要なこともあります。たとえば、航空便のデータを返すようなWebサービスを呼び出す場合は、航空便の番号、航空会社、搭乗日などのデータを保存する複数のUDAが必要です。
マッピングを削除する場合は、削除するマッピングを選択し、[削除]をクリックします。
図12.48 戻り値のUDAへのマッピング
注意
SOAP応答メッセージの構造がわからない場合は、Webサービスの呼出しをテストして、サンプルメッセージを取得します。このメッセージを使用することで、必要なXPath式を判断できます。
Webサービスへのアクセスにユーザアカウントを必要とする場合は、以下の操作を行います。
[セキュリティ]タブを選択します。
ユーザ名とパスワードを入力します。
サンプルの値でWebサービス呼出しをテストする場合は、以下の操作を行います。
[入力]タブを選択します。
[XML]をクリックして[XML]ビューに切り替えます。
{{Field <UDA>}}タグをサンプルの値に置き換えます。
下の図は、サンプルの値に置き換える前のSOAP要求メッセージを示しています。
図12.49 UDAを使用したSOAP要求メッセージ
下の図は、サンプルの値に置き換えた後のSOAP要求メッセージを示しています。
図12.50 テスト用のサンプルの値を使用したSOAP要求メッセージ
[テスト]タブを選択し、[テスト]をクリックします。
想定したとおりのSOAP応答メッセージが表示されることを確認します。エラーが発生した場合は、入力データを確認してテストを繰り返します。
[入力]タブで、SOAP要求メッセージを元の状態に復元します。復元するには、値を右クリックし、元の式を選択します。
[OK]をクリックします。
注意
インターネット上のWebサービスを呼び出すときに、プロキシサーバ経由でインターネットにアクセスする場合は、プロキシサーバを使用するようにInterstage BPM Studio for Systemwalkerを構成する必要があります。そのためには、環境設定ファイルtwf.ini内にWSHttpProxyHostパラメータとWSHttpProxyPortパラメータを設定します。この環境設定ファイルは、<Interstage BPM Studio for Systemwalkerのインストールディレクトリ>¥ibpm¥Data¥binフォルダ内にあります。Interstage BPMサーバ用のパラメータは、データベース内のIBPMPropertiesテーブルにも格納されています。詳細については、『Interstage BPMサーバ 管理者ガイド』を参照してください。