専用 EGL サービスまたはローカル EGL サービスにアクセスするための変数の宣言

EGL サービス・パーツをコーディングした後で、そのパーツをサービス・アクセス変数のベースとして使用できます。 以下の 2 つの状況が考えられます。

ローカル EGL サービスにアクセスするためのインターフェース・パーツの定義

Rich UI 外部からローカル EGL サービスにアクセスする場合、インターフェース・パーツをサービス・アクセス変数のベースにすることができます。このパーツに含まれている関数プロトタイプは、サービス・パーツの一部またはすべての関数に一致します。

EGL サービスへのアクセスに使用されるインターフェース・パーツの例を以下に示します。
Interface MyInterfacePart
   Function GetEmployeeDetail(employeeCode STRING IN, 
                              employeeSalary FLOAT OUT, 
                              employeeStatus STRING INOUT) 
            returns(myEmployeeRecordPart);
end

この例には、1 つの関数プロトタイプが含まれていますが、複数のプロトタイプを含めることもできます。また、さまざまな EGL データ型を指定でき、修飾子 IN、OUT、および INOUT を使用できます。

インターフェース・パーツは、以下のようにしてサービス・パーツから簡単に作成できます。
  1. Project Explorer で、サービスを定義する EGL ファイルを右クリックします。
  2. 「EGL サービス」>「EGL インターフェースを抽出」をクリックします。
  3. 「新規 EGL インターフェース・パーツ」ウィンドウに適切な詳細を指定して、「完了」をクリックします。

SOAP 以外のサービスにアクセスするときに実行時エラーが発生しないようにするため、WSDL ファイルから派生されるインターフェース・パーツを使用しないでください。

デプロイメント記述子での EGL バインディングの設定

Rich UI 外部で作業しており、ローカル EGL サービスにアクセスする場合、EGL デプロイメント記述子でサービス・バインディングを設定する必要があります。サービス・アクセス変数のベースとしてサービス・パーツまたはインターフェース・パーツをいずれを使用する場合でも、このルールが適用されます。

デプロイメント記述子での EGL バインディングの設定手順を以下に示します。
  1. デプロイメント記述子をダブルクリックする。
  2. 「サービス・バインディング」タブの「サービス・バインディング」で、「追加」をクリックする。
  3. 「サービス・バインディングの追加」ウィンドウで「EGL バインディング」をクリックして、「次へ」をクリックする。「EGL バインディングの追加」ウィンドウが表示されます。
  4. バインディング・キー (サービス・バインディングの名前) を指定する。 バインディング・キーを入力するか、または次の手順を実行する。
    1. 「EGL バインディング名」フィールドの隣にある「参照」ボタンをクリックする。「インターフェースの選択」ウィンドウが表示されます。
    2. コードにおけるサービス・アクセス変数の基礎となるインターフェース・パーツの名前を選択します。この名前がバインディング・キーであり、コードに @BindService プロパティーをコーディングする場合は、名前を指定する必要はありません。
    3. 「OK」をクリックします。
  5. 「ローカル」を選択します。
  6. 「終了」をクリックします。その新規クライアント・バインディングが「サービス・バインディング」リストに表示されます。後で「EGL サービス・バインディング」セクションでバインディング情報を更新できます。

サービス・アクセス変数への EGL バインディングの割り当て

開発時にローカル・サービスの EGL バインディングを割り当てる場合は、サービス・アクセス変数を宣言するときに @BindService 複合プロパティーを含めてください。以下に例を示します。
myService MyInterfacePart {@BindService{bindingKey="MyInterfacePart"}};
@BindService プロパティーには、以下の 1 つのフィールドがあります。
bindingKey
バインディングがリクエスターのローカルであることを示すデプロイメント記述子項目指定します。
bindingKey フィールドを指定せずに @BindService を指定できます。この場合、このプロパティーは、変数宣言で使用されているサービス・パーツまたはインターフェース・パーツと同じ名前のデプロイメント記述子項目を示します。以下に、この使用法の例を示します。ここでは、MyInterfacePart という名前のデプロイメント記述子項目が参照されています。
MyService MyInterfacePart {@BindService};

実行時のサービス・バインディングの割り当ておよび再割り当てについて詳しくは、『サービス・アクセス変数の動的なバインド』を参照してください。


フィードバック