Nach dem Codieren eines EGL-Serviceabschnitts können Sie diesen Abschnitt als Basis für eine
Serviceszugriffsvariable verwenden.
Zwei Fälle sind möglich:
- Wenn Sie in Rich UI arbeiten, ist der einzige EGL-Service, auf den Sie zugreifen können, ein
dedizierter Service (siehe 'Servicezugriff in Rich UI').
Deklarieren Sie die Servicezugriffsvariable wie
folgt:
myService MyServicePart{@dedicatedService};
In dieser Deklaration müssen Sie
den Serviceabschnitt (keinen Schnittstellenabschnitt) angeben.
Nach dem Deklarieren der Variablen wird diese
in einer call-Anweisung verwendet. Siehe 'Service asynchron aus einer Rich-UI-Anwendung aufrufen'.
- Wenn Sie außerhalb von Rich UI arbeiten, lautet die typische Vorgehensweise wie folgt:
- Schnittstellenabschnitt für Zugriff auf lokalen EGL-Service definieren
- EGL-Binding im Implementierungsdeskriptor festlegen
- Zuordnung des EGL-Bindings zur Servicezugriffsvariablen
Nachdem Sie die Variable
deklariert und dieser ein Service-Binding zugeordnet haben, wird die Variable in einer Servicezugriffsanweisung
verwendet. Siehe hierzu 'Service synchron außerhalb von Rich UI aufrufen'.
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:
- Klicken Sie im Projektexplorer mit der rechten Maustaste auf die EGL-Datei, die den Service definiert.
- Klicken Sie auf EGL-Services > EGL-Schnittstelle extrahieren.
- 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:
- Doppelklicken Sie auf den Implementierungsdeskriptor.
- Klicken Sie auf der Registerkarte Service-Bindings unter 'Service-Bindings' auf
Hinzufügen.
- Klicken Sie im Fenster 'Service-Binding hinzufügen' auf EGL-Binding und
dann auf Weiter. Das Fenster EGL Binding hinzufügen wird angezeigt.
- 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:
- Klicken Sie neben dem Feld EGL-Binding-Name auf die Schaltfläche Durchsuchen. Das Fenster für die Schnittstellenauswahl wird angezeigt.
- 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.
- Klicken Sie auf OK.
- Wählen Sie Lokal aus.
- 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'.