Variable für Zugriff auf dedizierten oder lokalen EGL-Service deklarieren

Nach dem Codieren eines EGL-Serviceabschnitts können Sie diesen Abschnitt als Basis für eine Serviceszugriffsvariable verwenden. Zwei Fälle sind möglich:

Schnittstellenabschnitt für Zugriff auf lokalen EGL-Service definieren

Wenn Sie außerhalb von Rich UI auf einen lokalen EGL-Service zugreifen, kann die Servicezugriffsvariable auf einem Schnittstellenabschnitt basieren. Der Abschnitt enthält Funktionsprototypen, die mit einigen oder allen Funktionen im Serviceabschnitt übereinstimmen.

Im Folgenden ist ein Beispiel für einen Schnittstellenabschnitt aufgeführt, der für den Zugriff auf einen EGL-Service verwendet werden kann:
Interface MyInterfacePart
   Function GetEmployeeDetail(employeeCode STRING IN, 
                              employeeSalary FLOAT OUT, 
                              employeeStatus STRING INOUT) 
            returns(myEmployeeRecordPart);
end

Dieses Beispiel enthält nur einen Funktionsprototyp, es sind aber mehrere möglich. Ferner können Sie verschiedene EGL-Datentypen angeben und die Änderungswerte IN, OUT und INOUT verwenden.

Der Schnittstellenabschnitt kann auf einfache Weise aus dem Serviceabschnitt erstellt werden. Gehen Sie dazu wie folgt vor:
  1. Klicken Sie im Projektexplorer mit der rechten Maustaste auf die EGL-Datei, die den Service definiert.
  2. Klicken Sie auf EGL-Services > EGL-Schnittstelle extrahieren.
  3. Geben Sie im Fenster Neuer EGL-Schnittstellenabschnitt die entsprechenden Details an und klicken Sie auf Fertigstellen.

Verwenden Sie keinen Schnittstellenabschnitt, der aus einer WSDL-Datei abgeleitet wurde, um beim Zugriff auf einen Nicht-SOAP-Service einen möglichen Laufzeitfehler zu vermeiden.

EGL-Binding im Implementierungsdeskriptor festlegen

Wenn Sie außerhalb von Rich UI arbeiten und auf einen lokalen EGL-Service zugreifen, müssen Sie das Service-Binding im EGL-Implementierungsdeskriptor festlegen. Die Regel gilt unabhängig davon, ob Sie einen Service- oder Schnittstellenabschnitt als Basis der Servicezugriffsvariablen verwenden.

Gehen Sie wie folgt vor, um das EGL-Binding+++ im Implementierungsdeskriptor festzulegen:
  1. Doppelklicken Sie auf den Implementierungsdeskriptor.
  2. Klicken Sie auf der Registerkarte Service-Bindings unter 'Service-Bindings' auf Hinzufügen.
  3. Klicken Sie im Fenster 'Service-Binding hinzufügen' auf EGL-Binding und dann auf Weiter. Das Fenster EGL Binding hinzufügen wird angezeigt.
  4. Geben Sie einen Binding-Schlüssel an, der dem Namen des Service-Bindings entspricht. Geben Sie den Binding-Schlüssel entweder ein oder gehen Sie wie folgt vor:
    1. Klicken Sie neben dem Feld EGL-Binding-Name auf die Schaltfläche Durchsuchen. Das Fenster für die Schnittstellenauswahl wird angezeigt.
    2. Wählen Sie den Namen des Schnittstellenabschnitts aus, der die Basis einer Servicezugriffsvariablen in Ihrem Code darstellt. Wenn dieser Name der Binding-Schlüssel ist, müssen Sie den Namen beim Codieren der Eigenschaft @BindService in Ihrem Code nicht angeben.
    3. Klicken Sie auf OK.
  5. Wählen Sie Lokal aus.
  6. Klicken Sie auf Fertigstellen. Das neue Client-Binding wird in der Liste Service-Bindings angezeigt. Die Binding-Informationen können später im Abschnitt 'EGL-Service-Binding' aktualisiert werden.

Zuordnung des EGL-Bindings zur Servicezugriffsvariablen

Wenn Sie das EGL-Binding zur Entwicklungszeit für einen lokalen Service zuordnen, müssen Sie beim Deklarieren der Servicezugriffsvariablen die komplexe Eigenschaft @BindService einfügen. Beispiel:
myService MyInterfacePart {@BindService{bindingKey="MyInterfacePart"}};
Die Eigenschaft @BindService verfügt über ein Feld:
bindingKey
Gibt den Implementierungsdeskriptoreintrag an, der darauf hinweist, dass das Binding für den Anforderer lokal ist.
@BindService kann ohne das Feld bindingKey angegeben werden. In diesem Fall gibt die Eigenschaft den Implementierungsdeskriptoreintrag an, dessen Name mit dem in der Variablendeklaration verwendeten Service- oder Schnittstellenabschnitt übereinstimmt. Im Folgenden ist eine Beispielsyntax aufgeführt, die sich auf den Implementierungsdeskriptoreintrag MyInterfacePart bezieht:
MyService MyInterfacePart {@BindService};

Einzelheiten zur (erneuten) Zuordnung des Service-Bindings zur Laufzeit finden Sie in 'Servicezugriffsvariable dynamisch binden'.


Feedback