Kontextobjekte
Verwendung
Kontextobjekte sind nur dann relevant für Sie, wenn Sie eine Kommunikation über den Integration Server realisieren (A2A, B2B oder Web-Service-orientiert) Sie sind eine komfortable Alternative zu XPath-Ausdrücken, um während der Konfiguration im Integration Directory auf Inhalte einer Message zuzugreifen. Betrachten Sie beispielsweise folgende Message-Instanz:
<InvoiceOut>
<customerData>
<address>
<name> ...
</name>
<postalCode>
...</postalCode>
...
</address>
...
</customerData>
</InvoiceOut>
Um auf den Inhalt des Feldes <postalCode> zuzugreifen, würden Sie in XPath den folgenden Ausdruck verwenden:
/InvoiceOut/customerData/address/postalCode
Wenn Sie diesen Ausdruck in mehreren Bedingungen benötigen, müssten Sie ihn jedes mal neu hinschreiben oder kopieren. Statt dessen können Sie dem Feld <postalCode> ein Kontextobjekt zuweisen, beispielsweise mit dem Namen postalCode. In allen Bedingungen, in denen Sie den Wert des Feldes <postalCode> benötigen, reicht es dann aus das Kontextobjekt postalCode zu verwenden, so dass diese Bedingungen lesbarer werden:
Vergleich über XPath oder Kontextobjekt
XPath |
Kontextobjekt |
/InvoiceOut/customerData/address/postalCode = “69120” |
postalCode = “69120” |

Kontextobjekte kapseln also den XPath-Ausdruck, mit dem Sie sonst auf den Feldinhalt zugegriffen hätten.
Nachdem Sie ein Kontextobjekt im ES Repository angelegt und dem Feld einer Request-Message zugeordnet haben, können Sie es in folgenden Situationen verwenden:
· Bei der Ermittlung des Empfängers einer Message abhängig von deren Inhalt
· Bei der Verarbeitung von Prozess-Schritten in Integrationsprozessen abhängig vom Inhalt einer Message
Um auf Header-Informationen der Message zugreifen zu können, gibt es eine Reihe von vordefinierten technischen Kontextobjekten.
Ein Kontextobjekt ist skalar und hat einen Referenztyp. Das bedeutet, dass Sie Kontextobjekte keinen Strukturfeldern zuordnen können. Mit dem Referenztyp legen Sie fest, mit welcher Art von Werten Sie später das Kontextobjekt vergleichen wollen:
Datentypen von Kontextobjekten
Referenztyp |
Art des Vergeichs |
xsd:string |
Lexikographisch. |
xsd:integer |
Numerisch |
xsd:date |
Vergleich mit Datum |
xsd:time |
Vergleich mit Uhrzeit |
...
1. Legen Sie ein Kontextobjekt im ES Builder an (siehe: Anlegen eines Objektes).
2. Wählen Sie über die Listbox Referenztyp einen eingebauten XSD-Datentyp für Ihr Kontextobjekt aus und speichern Sie.
3. Öffnen Sie das (Service-)Interface im ES Repository, dem Sie ein Kontextobjekt zuweisen wollen. Sie können Kontextobjekte nur der Request-Message von Interfaces der gleichen oder einer übergeordneten Software-Komponentenversion zuweisen.
4. Um Kontextobjekte zuzuweisen, gehen Sie folgendermaßen vor:
○
Importierte RFCs oder IDocs:
Ordnen Sie das Kontextobjekt einem Feld der Request-Message zu, indem Sie es
in der Spalte Kontextobjekt über die Eingabehilfe eintragen. Wenn Sie die
Zuordnung eines Kontextobjektes wieder rückgängig machen wollen, rufen Sie die
Funktionslistbox der Eingabehilfe zum Eingabefeld auf (
) und wählen Zurücksetzen (
).
○
Service-Interfaces:
Wählen Sie die entsprechende Operation für die Zuordnung aus. Bevor Sie ein
Kontextobjekt zuordnen können, muss der Request-Message ein Message-Schema
zugeordnet worden sein. Ist dies der Fall, markieren Sie den Namen der Message
und wählen die Drucktaste Kontextobjekte. Der ES Builder zeigt dann die Struktur der
Request-Message an, so dass Sie einzelnen Feldern ein Kontextobjekt zuordnen
können. Wenn Sie die Zuordnung eines Kontextobjektes wieder rückgängig machen
wollen, rufen Sie die Funktionslistbox der Eingabehilfe zum Eingabefeld auf
(
) und wählen
Löschen (
).

Wenn Sie einer Operation eine neue
Message zuweisen, wird unter Umständen eine vorher bestehende
Kontextobjekt-Zuordnung ungültig (weil der zugehörige XPath-Ausdruck nicht
mehr vorhanden ist). Wählen Sie Kontextobjekt-Zuordungen
prüfen und korrigieren (
), um ungültige Zuordnungen in allen Operationen
des Service-Interface automatisch zu entfernen. Die Prüfung prüft nicht, ob
eingetragenen Kontextobjekte auch tatsächlich existieren.
5. Aktivieren Sie ihre Änderungen.
Nach
der Aktivierung können Sie das Kontextobjekt in einem Integrationsprozess oder
bei der Konfiguration für das Feld verwenden, dem Sie das Kontextobjekt
zugewiesen haben (siehe
Ausdruckseditor).
Sie können ein Kontextobjekt auch in mehreren (Service-)Interfaces
beziehungsweise Operationen verwenden.