機械翻訳について

SOAP Webサービスのコール方法

アプリケーション・コンポーザのGroovyスクリプトからSOAP webサービスを呼び出すことができます。 内部または外部データへのアクセスや、データに対する計算の実行などのためにwebサービスを呼び出すことができます。

スクリプトからwebサービス・メソッドを呼び出すには、2つの概要レベルのステップが必要です:

  1. webサービスへの参照の作成。 これには、Groovyコードで使用する変数名でのwebサービスの登録が含まれます。

  2. webサービスを呼び出す式ビルダーでのGroovyコードの記述。 コールごとに、コードはwebサービスへのインバウンド引数を準備し、Webサービス・メソッドをコールして、Webサービスからの戻り値を処理する必要があります。

Webサービス参照の作成

スクリプトで使用するwebサービスを登録するには、最初にアプリケーション・コンポーザの「共通設定」ペインで「Webサービス」を選択し、次にSOAPを選択します。 次に、webサービス変数名を、コールするサービスを表すWebサービス記述言語(WSDL)リソースのロケーションを提供するURLに関連付けます。

たとえば、アプリケーションが別のシステムから従業員データを操作するためにコールする必要があるwebサービスに対して、Webサービス変数名EmployeeServiceを登録できます。 このwebサービスのWSDLのURLは次のようになります:

http://example.com:8099/Services/EmployeeService?WSDL

もちろん、実際のサービスのサーバー名、ポート番号、およびパス名は異なります。 ポート番号を省略すると、サービスはデフォルトのHTTPポート番号80でリスニングしているとみなされます。

「GroovyスクリプトのSOAP Webサービス参照」を読む: webサービス参照の作成の詳細は、「説明」を参照してください。

Webサービスを呼び出すためのGroovyコードの記述

Groovyスクリプトからwebサービスをコールする場合、コードはWebサービス・メソッドをコールする前にWebサービスへの引数を準備し、Webサービスから返されたデータを処理する必要があります。 コードがwebサービスとの間で構造化データを渡す場合は、次の「WebサービスでのGroovyマップおよびリストの使用」を参照してください。

式ビルダーの「Webサービス」タブから、webサービスへのコールのコードを挿入します。 「Webサービス」リストには登録済のwebサービス変数名のセットが表示され、「関数」リストには特定のWebサービスで使用可能なメソッドが表示されます。

Groovyスクリプトでwebサービスへのコールを挿入します。

  1. 式ビルダーの「Webサービス」タブを選択します。

  2. 「Webサービス」リストから変数名を選択します。

  3. 「関数」リストからメソッドを選択します。

    挿入されるコードは、「機能シグネチャ」の下に表示されます。

  4. 「挿入」ボタンをクリックして、webサービス・メソッドを呼び出すコードを挿入します。

Groovyスクリプトからのwebサービス・コールの構文は次のとおりです:

adf.webServices.YourServiceVariableName.MethodName (「引数」)

関数シグネチャの情報には、パラメータ・タイプと、コールの結果を割り当てる変数のタイプを示す戻り型も含まれます。 使用可能な戻り型は次のとおりです:

戻り値

返品タイプ

無効化

無効化

スカラー値(整数、文字列など)

実際のJava戻り型

オブジェクト

マップ

コレクション

リスト

WebサービスでのGroovyマップおよびリストの使用

webサービスとの間で構造化データを渡して受信する場合、Groovyマップはオブジェクトとそのプロパティを表します。 たとえば、Empno、Ename、SalおよびHiredateという名前のプロパティを持つEmployeeオブジェクトは、4つのキーと値のペアを持つマップ・オブジェクトで表され、プロパティの名前はキーです。

次の構文を使用して空のMapオブジェクトを作成できます:

def newEmp = [:]

その後、次のように明示的なput()メソッドを使用してマップにプロパティを追加できます:

newEmp.put("Empno",1234) 
newEmp.put("Ename","Sean") 
newEmp.put("Sal",9876) 
newEmp.put("Hiredate",date(2013,8,11))

また、次のような単純な直接割当て表記法を使用して、マップのキーと値のペアを割り当てて更新することもできます:

newEmp.Empno = 1234 
newEmp.Ename = "Sean" 
newEmp.Sal = 9876 
newEmp.Hiredate = date(2013,8,11)

最後に、新しいマップを作成し、コンストラクタ構文を使用して、1つの操作でそのプロパティの一部またはすべてを割り当てることもできます:

def newEmp = [Empno : 1234,
              Ename : "Sean",
              Sal : 9876,
              Hiredate : date(2013,8,11)]

オブジェクトのコレクションを作成するには、Groovyリスト・オブジェクトを使用します。 一度に1つのオブジェクトを作成してから空のリストを作成し、リストのadd()メソッドをコールして両方のオブジェクトをリストに追加できます:

def dependent1 = [Name : "Dave",
                  BirthYear : 1996]
def dependent2 = [Name : "Jenna",
                  BirthYear : 1999]
def listOfDependents = []
listOfDependents.add(dependent1)
listOfDependents.add(dependent2)

いくつかのステップを保存するには、前述の例の最後の3行を1行にまとめて、次の2つの要素を含む新しいリストを作成します:

def listOfDependents = [dependent1, dependent2]

リスト・コンストラクタ構文とマップ・コンストラクタ構文の組合せを使用して、マップのリストを1つの操作で作成することもできます:

def listOfDependents = [[Name : "Dave",
                         BirthYear : 1996],
                        [Name : "Jenna",
                         BirthYear : 1999]]

前のコード例のemployeeオブジェクトに、依存する子を表すオブジェクトのリストであるDependentsというプロパティがある場合、(割り当てられた値としてマップのリストを使用して)前述と同じ構文を使用してプロパティを割り当てることができます:

newEmp.Dependents = [[Name : "Dave",
                      BirthYear : 1996],
                     [Name : "Jenna",
                      BirthYear : 1999]]

最後に、コンストラクタ構文をさらにネストすることで、ネストされた依存を持つ新しい従業員を1つの文に構築することもできます:

def newEmp = [Empno : 1234,
              Ename : "Sean",
              Sal : 9876,
              Hiredate : date(2013,8,11),
              Dependents : [
                   [Name : "Dave",
                    BirthYear : 1996],
                   [Name : "Jenna",
                    BirthYear : 1999]]
              ]

マップおよびリストの詳細は、『Groovyスクリプト・リファレンス』ガイドのマップの操作に関する項を参照してください。