Show TOC Anfang des Inhaltsbereichs

Vorgehensweisen Ausdruckseditor verwenden  Dokument im Navigationsbaum lokalisieren

Verwendung

Mit dem Ausdruckseditor können Sie Ausdrücke definieren bzw. auswählen. Sie haben folgende Möglichkeiten:

     Konstante definieren

     Variablen (Containerelemente) auswählen

     Auf ein bestimmtes Feld einer Message zugreifen

Um Ihnen die Eingabe zu erleichtern, passt sich das Aussehen des Ausdruckseditors automatisch an die aktuelle Situation an: Der Ausdruckseditor zeigt nur die Felder, die in der aktuellen Situation relevant sind. Daher können Sie nicht immer alle der genannten Funktionen ausführen.

Hinweis

Beachten Sie, dass bei der Verwendung des Ausdruckseditors im Integration Directory alle Eingaben für Konstanten als string interpretiert werden. Dies gilt insbesondere auch für Datums- und Zeitangaben.

Bei der Angabe von Ausdrücken in Integrationsprozessen wird für die Eingabe von Datumswerten und Zeiten ein besonderes Format erwartet (siehe Verwendbare XSD-Datentypen).

Vorgehensweise

Konstante definieren

Konstanten definieren Sie z. B. um den Vergleichswert für eine Bedingung zu definieren.

...

       1.      Geben Sie den Namen für die Konstante ein.

       2.      Wählen Sie den entsprechenden XSD-Datentyp (siehe auch: Verwendbare XSD-Datentypen).

Achtung

Wenn Date und Time in einem Integrationsprozess verwendet werden sollen, müssen Sie folgendes Format verwenden:

Date: CCYY-MM-DD

Time: hh:mm:ss

Das bedeutet, dass Sie insbesondere keine negativen Zeitangaben (negatives Vorzeichen) und keine Zeitzonen verwenden dürfen. Andernfalls wird eine Warnung ausgegeben.

Variable auswählen

...

       1.      Wählen Sie die gewünschte Variable aus.

Folgende Variablen können zur Auswahl stehen:

     Einfache Variable: Zeigt Containerelemente der Kategorie Einfacher Typ, die z. B. für Zähler verwendet wird.

     Empfänger: Zeigt Containerelemente der Kategorie Empfänger, die für Empfänger von Messages verwendet wird.

     Interface-Variable: Zeigt Containerelemente der Kategorie Abstraktes Interface, die für Messages verwendet wird.

       2.      Ist die Variable als Liste definiert, geben Sie im Feld Index die Position der Liste an, auf die Sie zugreifen möchten.

Sie können die Position als Ganzzahl eingeben (z. B. 2 für die zweite Position der Liste) oder den Ausdruck auswählen, der die gewünschte Position liefert.

Eine Variable ist eine Liste, wenn bei der Definition der Variable im Container das Kennzeichen Mehrzeilig gesetzt wurde.

Auf ein Feld einer Message zugreifen

Auf ein bestimmtes Feld einer Message können Sie über ein Kontextobjekt oder die Angabe des XPath zugreifen.

...

       1.      Wählen Sie die gewünschte Interface-Variable aus.

       2.      Legen Sie den Zugriff auf das Feld fest:

     Um über ein Kontextobjekt zuzugreifen, wählen Sie das entsprechende Kontextobjekt aus.

Der Ausdruckseditor zeigt die Kontextobjekte, die für das entsprechende Message-Interface definiert sind, und die technischen Kontextobjekte (Namensraum http://sap.com/xi/XI/System).

Darüber hinaus werden Kontextobjekte für alle vorhandenen Adapterspezifischen Attribute im Message-Header angezeigt.

Hinweis

Der Namensraum für ein Adapterspezifisches Attribut setzt sich folgendermaßen zusammen:

<Namensraum des Adaptermetadaten-Objektes>/<Name des Adaptermetadaten-Objektes>

Beachten Sie diese Konvention insbesondere bei Eigenentwicklungen von Adaptern (die Sie in einem eigenen Namensraum durchführen).

Alle von SAP ausgelieferten Adaptermetadaten liegen im Namensraum http://sap.com/xi/XI/System. Daher setzt sich der Namensraum der Kontextobjekte für diese Adapterspezifischen Attribute folgendermaßen zusammen: http://sap.com/xi/XI/System/<Name des Adaptermetadaten-Objektes>.

Beispiel

Beispiel für ein Adapterspezifisches Attribut des RFC-Sender-Adapters: RfcDestination http://sap.com/xi/XI/System/RFC

Hierbei ist RfcDestination der Name des Attributes und RFC der Name des Adaptermetadaten-Objektes (im Namensraum http://sap.com/xi/XI/System), in dem das Attribut definiert ist.

Achtung

Wenn Sie auf ein Adapterspezifisches Attribut im Message-Header zugreifen möchten, müssen Sie bei der Konfiguration des jeweiligen Adapters sicher stellen, dass das Attribut aktiviert ist (siehe Adapterspezifische Attribute im Message-Header).

     Um über den XPath zuzugreifen, expandieren Sie die Struktur der Message und doppelklicken auf das gewünschte Feld.

Enthält das Feld eine Struktur, markieren Sie Mehrzeilig.

Hinweis

Ein XPath-Ausdruck ist mehrzeilig, wenn er eine Liste zurückgibt. Wenn das entsprechende Ankreuzfeld markiert ist, wird bei der Auswertung des Ausdruckes berücksichtigt, dass es sich um eine Liste (und nicht einen Einzelwert) handelt.

Beispiel

Die Bedingung <Ausdruck>=a wird unterschiedlich interpretiert, je nachdem, ob der Ausdruck <Ausdruck> als einfach oder mehrzeilig gekennzeichnet ist:

<Ausdruck> einfach: <Ausdruck> ist gleich a

<Ausdruck> mehrzeilig: <Ausdruck> ist eine Liste, die den Wert a enthält

Anmerkungen zur Verwendung von XPath-Ausdrücken

Beachten Sie, dass mit dem Ausdruckseditor erfasste XPath-Ausdrücke nur Items vom Typ Knoten (node, node set) zurückgeben dürfen. Andere Typen (beispielsweise Boolescher Wert (boolean)) sind aus technischen Gründen nicht erlaubt.

Um dennoch komplexere logische Ausdrücke und Bedingungen zu formulieren, können Sie beispielsweise im XPath-Ausdruck Prädikate (Syntax-Bestandteile in eckigen Klammern) verwenden.

Beispiel

Sie möchten folgende Bedingung formulieren: Die Buchungsnummer (BookingNumber) ist größer als 0100.

Da im Bedingungseditor kein Operator > zur Verfügung steht, bietet sich folgende Lösung an: Sie definieren den entsprechenden logischen Ausdruck im Ausdruckseditor mit Hilfe eines XPath-Prädikates und ordnen ihn einem Knotenelement zu. Mit dem Bedingungseditor fragen Sie dann lediglich die Existenz dieses Knotenelementes ab (mit Hilfe des Existenz-Operators (EX)).

Das heißt, Sie erfassen zunächst mit dem Ausdruckseditor den folgenden Ausdruck:

/FlightBookingOrderConfirmation [BookingID/BookingNumber > 0100]

Mit dem Bedingungseditor formulieren Sie dann folgende Bedingung:

(/FlightBookingOrderConfirmation [BookingID/BookingNumber > 0100] EX)

In natürliche Sprache übersetzt, lautet diese Bedingung:

Das Knotenelement FlightBookingOrderConfirmation existiert, für das folgendes gilt: Der Inhalt des Unterelementes BookingID/BookingNumber ist größer als 0100.

Hinweis

Bei einem Ausdruck der folgenden Form /A/B/C = G wird auf den Knoten <C> genau genommen die getText()-Methode angewandt, die den Inhalt dieses Knotens ermittelt.

Ende des Inhaltsbereichs