Zum Hauptinhalt springen

Quelldaten

Der Quelldaten-Reiter des Routeneditors legt fest, woher eine Route ihre Daten bezieht und wie sie daraus die interne Nachricht aufbereitet. Er gliedert sich von oben nach unten in zwei Bereiche:

  • Zugang – Datenquelle, Quittierung, Datenfilter und Änderungsfilter: woher gelesen wird und welche Datensätze überhaupt einbezogen werden.
  • Aufbereitung – Feldstruktur, Referenzdaten, Schlüssel und Zusatzdaten: was aus den gelesenen Daten wird.

Rechts steht die Datenvorschau. Sie lässt sich über die Schaltfläche Datenvorschau in der Kopfzeile ein- und ausblenden; die Einstellung bleibt beim nächsten Öffnen der Route erhalten. Änderungen werden im Entwurf gesammelt und mit dessen Aktivierung wirksam.

Routen – Quelldaten

Berechtigungen

Die Seite ist sichtbar, sobald Ihnen die Berechtigung Konfiguration – Routen (Lesen oder Voll) zugewiesen ist. Ohne die Stufe Voll ist der Routeneditor nur lesbar: Sie sehen die Konfiguration, können sie aber nicht ändern.

Was die Datenherkunft bestimmt

Welche Bereiche der Reiter zeigt, hängt an der Datenherkunft der Route – dem Feld auf dem Reiter Allgemein:

DatenherkunftZugang-Bereich
DatenbestandDatenquelle mit Abrufendpunkt und Einzelabruf-Endpunkt, dazu Datenfilter und Änderungsfilter.
WarteschlangeDatenquelle mit Abrufendpunkt und Nachrichten-ID, dazu Quittierung. Keine Filter – die Route scannt keinen Bestand ab, sondern arbeitet ab, was zugestellt wurde.
VerteilungseingangEntfällt vollständig. Die Daten liefert die Verteilungsroute; die Route pflegt nur die Aufbereitung.

Datenquelle

Hier legen Sie fest, unter welchen Adressen die Route ihre Daten liest. Die Endpunkte gelten für jeden Lauf der Route und ebenso für das Laden von Referenzdaten im Editor.

FeldHinweis
AbrufendpunktDer Pfad, unter dem die Datensätze gelesen werden, relativ zur Anbindung – z. B. Items beim Datenbestand, events/pending bei einer Warteschlange. Pflichtfeld.
Einzelabruf-EndpunktDer Pfad, um einen einzelnen Datensatz per Schlüssel zu laden, z. B. Items('{{ItemCode}}'). Der Platzhalter {{…}} wird beim Abruf durch den Schlüsselwert ersetzt. Optional – bleibt das Feld leer, ruft die Route keine einzelnen Datensätze ab. Das ist der Normalfall beim Datenbestand, der die Datensätze schon beim Scan vollständig mitliefert. Pflicht ist das Feld nur, wenn ein Auslöser ausschließlich den Schlüssel übergibt: beim Ereignisauslöser, der mit dem Transaktionsereignis nur den Schlüssel des betroffenen Datensatzes meldet und den Datensatz danach abrufen lässt. Kennt Xchange die Feldstruktur, wird der Pfad aus dem Abrufendpunkt abgeleitet und ist schreibgeschützt; andernfalls geben Sie ihn selbst ein.
Nachrichten-IDNur bei Datenherkunft Warteschlange: das Feld der eingehenden Nachricht, das sie eindeutig kennzeichnet (z. B. id), über die Feldauswahl gewählt. Xchange erkennt daran wiederholt zugestellte Nachrichten und verarbeitet jede nur einmal. Die Feldauswahl füllt sich aus den hinterlegten Referenzdaten; ohne sie bleibt sie leer.

Über Referenzdaten in der Kopfzeile des Bereichs fügen Sie einen Beispieldatensatz als JSON ein. Die Schaltfläche erscheint dort, wo Xchange den Datensatz nicht selbst beschaffen kann: immer bei Datenherkunft Warteschlange und Verteilungseingang, und bei Datenbestand dann, wenn Xchange nicht selbst ableiten kann, wie ein einzelner Datensatz adressiert wird – also außerhalb des Exports aus SAP Business One und außerhalb einer Anbindung mit Shopware-Feldstruktur.

Quittierung

Bei Datenherkunft Warteschlange kann Xchange dem Quellsystem den erfolgreichen Empfang jeder Nachricht bestätigen. Der Bereich erscheint nur bei dieser Datenherkunft.

FeldHinweis
QuittierungsendpunktDer Pfad, an den Xchange die Bestätigung per POST sendet, sobald die Nachricht dauerhaft gespeichert ist (z. B. events/confirm). Bleibt das Feld leer, wird nicht quittiert.

Darunter legen Sie optional die Quittierungszuordnung fest – welche Felder die Bestätigung mitträgt. Jede Zeile bildet ein Zielfeld der Quittierung auf eine Quelle ab, die Sie über die Feldauswahl aus der eingehenden Nachricht wählen. Über Zeile hinzufügen ergänzen Sie eine Zuordnung (höchstens 10), die Schaltfläche Zeile entfernen am Ende der Zeile nimmt sie wieder heraus. Ohne Zeilen sendet Xchange eine leere Bestätigung.

Quelldaten-Reiter einer Route mit Datenherkunft „Warteschlange“: Nachrichten-ID und Quittierung

Datenfilter

Routen – Quelldaten, Datenfilter und Änderungsfilter mit Beispielwerten

Der Datenfilter schränkt ein, welche Datensätze eine Route überhaupt einbezieht – er wirkt auf jeden Lauf, den vollständigen ebenso wie den inkrementellen (der Titel weist mit „für vollständige und inkrementelle Läufe“ darauf hin). Ohne Bedingung werden alle Datensätze einbezogen. Er erscheint nur bei Datenherkunft Datenbestand.

Hat die Route zusätzlich einen Ereignisauslöser im Modus Wie Abrufendpunkt, gilt derselbe Datenfilter auch für die Ereignisse: SAP Business One erzeugt dann nur für Datensätze ein Ereignis, die den Bedingungen genügen. Sie pflegen die Einschränkung damit an einer Stelle statt an zweien.

Die Bedingungen sind in Gruppen organisiert – bis zu 3 Gruppen mit je bis zu 5 Bedingungen. Innerhalb einer Gruppe werden sie per UND oder ODER verknüpft; die Gruppen untereinander immer per ODER (ein „– ODER –“-Trenner steht zwischen ihnen). Über Gruppe hinzufügen legen Sie eine weitere Gruppe an; Gruppe entfernen im Kopf einer Gruppe und Bedingung entfernen am Ende einer Zeile nehmen sie wieder heraus – beides nach Rückfrage, weil sich der Schritt nicht rückgängig machen lässt. Enthält der Filter Bedingungen, weist ein Filtersymbol neben dem Titel darauf hin, auch bei eingeklapptem Bereich.

FeldHinweis
FeldEin Feld der Datenquelle, über die Feldauswahl ausgewählt; Pflichtfeld. Die Feldauswahl ist nach Eigene Felder und Verknüpft gegliedert – siehe Verknüpfte Objekte.
Operatorist gleich, ist ungleich, ist eines von, ist keines von, ist größer als, ist größer oder gleich, ist kleiner als, ist kleiner oder gleich, enthält, enthält nicht, beginnt mit, beginnt nicht mit, ist leer oder ist nicht leer. Je nach Typ des gewählten Felds wird nur eine passende Teilmenge angeboten.
WertDer Vergleichswert. Bei ist leer / ist nicht leer entfällt das Wertfeld. Bietet das Feld feste Werte an, erscheint statt des Eingabefelds eine Auswahlliste. Bei ist eines von / ist keines von tritt eine Werteliste an die Stelle des Einzelwerts. Auf einem Datumsfeld setzt das Kalender-Symbol im Wertfeld „Heute“ als Vergleichswert, ein erneuter Klick nimmt es zurück.

Ein Datumsfeld wird tagesgenau verglichen – die Uhrzeit bleibt außer Betracht, auch bei einem fest eingetragenen Datum. Statt eines festen Datums lässt sich der aktuelle Tag als Vergleichswert wählen: „Heute“ wird bei jedem Lauf neu bestimmt, sodass eine Bedingung wie Änderungsdatum ist gleich Heute ohne Nachpflege stehen bleibt. Angeboten wird „Heute“ bei den Vergleichsoperatoren, nicht bei enthält, enthält nicht, beginnt mit, beginnt nicht mit, ist leer und ist nicht leer.

Mit enthält nicht und beginnt nicht mit grenzen Sie eine Wertegruppe über ihre Kennung aus, statt jeden einzelnen Wert als ist ungleich aufzuzählen – eine Aufzählung müssten Sie bei jedem neu hinzukommenden Wert nachziehen. So lassen sich etwa zwei Routen auf derselben Entität sauber trennen, wenn die eine das Lagerkennzeichen KSC- einbezieht und die andere es ausschließt.

Mehrere Werte in einer Bedingung

Tragen die auszuschließenden oder einzuschließenden Werte keine gemeinsame Kennung, prüfen Sie mit ist eines von und ist keines von gegen eine Liste. Sie geben die Werte in einem Feld nacheinander ein; jeder bestätigte Eintrag erscheint als eigenes Element und lässt sich einzeln wieder entfernen. Bietet das Feld feste Werte an, wählen Sie sie stattdessen aus einer Mehrfachauswahl. Pro Bedingung sind bis zu 20 Werte zulässig; doppelte Eingaben werden verworfen.

Der eigentliche Gewinn ist die Kombination aus Einschluss und Ausschluss. Sollen nur Umbuchungen in die Lager L1, L2, L3 übertragen werden, aber keine Bewegungen zwischen ihnen, genügen zwei Bedingungen in einer UND-Gruppe: Ziellager ist eines von L1, L2, L3 und Ausgangslager ist keines von L1, L2, L3. Als einzelne Gleichheitsbedingungen wären das sechs Zeilen – und weil Gruppen untereinander immer per ODER verknüpft sind, ließe sich die Kombination gar nicht ausdrücken.

Die Negationen schließen leere Felder ein: Ein Datensatz ohne Wert erfüllt beginnt nicht mit – er beginnt nicht mit dem gesuchten Text – und ebenso ist keines von, denn er steht in keiner Werteliste. Im Beispiel oben ist das genau richtig: Eine Buchung ohne Ausgangslager ist ein Zugang von außen und soll mitkommen. Sollen leere Werte draußen bleiben, ergänzen Sie in derselben Gruppe eine Bedingung ist nicht leer und verknüpfen die Gruppe per UND.

Über Treffer zählen ermittelt Xchange, wie viele Datensätze der Endpunkt mit dem aktuellen Filter gerade liefert, und zeigt das Ergebnis (z. B. „1.234 Datensätze“) neben der Schaltfläche. Ist kein Abrufendpunkt konfiguriert, weist ein Hinweis darauf hin.

Verknüpfte Objekte

Nicht jedes Kriterium steht im Datensatz selbst. Die Feldauswahl des Datenfilters ist deshalb in zwei Gruppen gegliedert:

  • Eigene Felder – die Felder des Datensatzes.
  • Verknüpft – alles, was über den Datensatz hinausführt.

Feldauswahl des Datenfilters mit den Gruppen Eigene Felder und Verknüpft

Unter Verknüpft stehen drei Arten von Zweigen:

ZweigHerkunft
Unter-SammlungEine untergeordnete Sammlung des Datensatzes, z. B. die Positionen eines Belegs. Xchange leitet sie aus der Feldstruktur ab.
Erkannte VerknüpfungEin Zielobjekt, auf das ein Referenzfeld des Datensatzes zeigt. Der Zweig trägt beide Namen: Zielobjekt (über Referenzfeld).
Angelegte VerknüpfungEine Verknüpfung, die Sie selbst über Verknüpfung hinzufügen eingerichtet haben. Der Zweig trägt den Namen des Zielobjekts.

Wählen Sie ein Feld unterhalb eines Zweigs, verhält sich die Bedingung wie jede andere – Operator und Wert richten sich nach dem Typ dieses Felds.

Wählen Sie den Zweig selbst, ist die Verknüpfung die ganze Aussage: Der Operator lautet dann vorhanden, ein anderer wird nicht angeboten, und es gibt keinen Wert. Die Bedingung trifft zu, wenn es das verknüpfte Objekt gibt. Unter-Sammlungen sind davon ausgenommen und lassen sich nicht selbst wählen – dass ein Beleg Positionen hat, gilt für jeden Beleg und wäre keine Einschränkung.

Führt der Weg zum Feld über eine Unter-Sammlung, steht vor dem Operator der Zusatz mind. eine: Die Bedingung ist erfüllt, sobald ein Element der Sammlung ihr genügt.

Jede Bedingung über einen Zweig setzt voraus, dass die Quelldaten ein einzelnes Schlüsselfeld haben – über den Schlüssel führt Xchange das Ergebnis auf den Datensatz zurück. Braucht die Objektart mehrere Schlüsselfelder, lässt sich die Bedingung nicht auswerten: Die Aktivierung meldet das am Abrufendpunkt („Die Quelldaten haben kein eindeutiges Schlüsselfeld – eine Bedingung über verknüpfte Daten lässt sich damit nicht auswerten“).

Erkennt Xchange die gewünschte Verknüpfung nicht von selbst, legen Sie sie an: Verknüpfung hinzufügen am unteren Rand der Feldauswahl öffnet den gleichnamigen Dialog.

FeldHinweis
VonWo die Verknüpfung ansetzt – am Datensatz selbst oder an einer seiner Unter-Sammlungen.
ZielobjektDie SAP-Business-One-Objektart, auf die verknüpft wird. Pflichtfeld.
FeldDas Feld der Ausgangsseite, dessen Wert die Verknüpfung herstellt. Pflichtfeld.
Feld im ZielobjektDas Feld des Zielobjekts, gegen das verglichen wird. Pflichtfeld. Zwischen beiden steht fest ist gleich.

Übernehmen ist erst wählbar, wenn Zielobjekt und beide Felder gesetzt sind. Danach steht der neue Zweig sofort in jeder Feldauswahl des Datenfilters bereit. Lässt sich das Zielobjekt nicht lesen, meldet der Dialog das („Das Zielobjekt konnte nicht gelesen werden. Prüfen Sie den Namen und versuchen Sie es erneut.“) und legt nichts an.

Eine angelegte Verknüpfung wird mit den Bedingungen gespeichert, die sie nutzen. Nutzt keine Bedingung sie mehr, ist der Zweig beim nächsten Öffnen der Route nicht mehr da.

Änderungsfilter

Der Änderungsfilter legt fest, was bei einem inkrementellen Lauf als „seit dem letzten Lauf geändert“ gilt (der Titel weist mit „für inkrementelle Läufe“ darauf hin). Er ist erforderlich, sobald ein inkrementeller Zeitplanauslöser besteht – es sei denn, die Anbindung führt den Stand des letzten Laufs selbst mit: Eine REST-Anbindung schickt ihn beim Abruf als Delta-Token mit und braucht dafür kein Feld in der Einschränkung. Den manuellen inkrementellen Lauf über die Ausführung schaltet ebenso beides frei – ein gesetzter Änderungsfilter oder eine Anbindung mit Delta-Token. Wie der Datenfilter erscheint er nur bei Datenherkunft Datenbestand.

Anders als der Datenfilter kennt der Änderungsfilter genau eine Gruppe mit bis zu 5 Bedingungen (per UND oder ODER verknüpft) und bietet zusätzlich den Operator seit dem letzten Lauf an: Er steht an erster Stelle, benötigt keinen Wert und lässt sich auf Feldern mit einer Reihenfolge wählen: Auf einem Datumsfeld vergleicht Xchange gegen den Zeitpunkt des letzten Laufs, auf einem Zahlenfeld gegen den zuletzt gelesenen Wert – etwa eine laufende Nummer. Auf Text-, Auswahl- und Ja/Nein-Feldern steht der Operator nicht zur Wahl, weil ein Stand darauf nicht weiterwandern kann.

Die Feldauswahl führt hier ausschließlich die eigenen Felder des Datensatzes: keine Gruppen, keine verknüpften Objekte und keine Verknüpfung zum Anlegen. Ob ein Datensatz sich geändert hat, entscheidet der Datensatz selbst. Die Spalten Feld, Operator und Wert verhalten sich davon abgesehen wie beim Datenfilter.

Führt die Anbindung den Stand selbst mit, sieht der Bereich anders aus: Ein grauer Hinweis „Der Abrufendpunkt liefert nur die Änderungen seit dem letzten Lauf. Ein Änderungsfilter ist hier nicht erforderlich.“ steht über dem Filter, und Bedingung hinzufügen erscheint nicht, solange keine Bedingung konfiguriert ist – so lässt sich keine zweite, konkurrierende Einschränkung anlegen. Enthält der Änderungsfilter bereits eine Bedingung – etwa weil der Abrufendpunkt der Route nachträglich gewechselt hat –, steht die Schaltfläche wieder zur Verfügung und der Filter bleibt vollständig bearbeitbar. Der Hinweis bleibt in beiden Fällen stehen; er erklärt, warum der Bereich so aussieht.

Löschverhalten

Unter den beiden Filtern steht die Strategie. Sie beantwortet, was mit einem Datensatz geschieht, den die Route bisher übertragen hat und der nicht mehr zum Umfang gehört – etwa weil ein Artikel in SAP Business One inaktiv gesetzt wurde und der Datenfilter nur aktive einbezieht.

AuswahlWirkung
Nichts tunDer Datensatz fällt aus den folgenden Läufen heraus. Das Zielsystem behält den Stand, den es beim letzten Mal erhalten hat. Voreinstellung.
Im Zielsystem deaktivierenNach einem vollständigen Lauf über den gesamten Datenbestand ermittelt Xchange, welche Datensätze nicht mehr zum Umfang gehören, und überträgt jeden davon noch einmal, gekennzeichnet als Löschung. Das Zielsystem erfährt damit, dass der Datensatz nicht mehr dazugehört.

Die letzte Übertragung läuft über die normale Zuordnung und dieselben Schritte wie jeder andere Datensatz – es gibt keinen zweiten Weg ins Zielsystem. Damit die Meldung dort ankommt, muss das Zielfeld zugeordnet sein, das einen Datensatz als inaktiv oder gesperrt kennzeichnet; seinen Wert liefern die Quelldaten des Datensatzes. Die Nachricht trägt zusätzlich den Ereignistyp Delete, sodass das Zielsystem sie auch daran erkennt.

Ist der Datensatz in SAP Business One inzwischen gelöscht, lässt er sich für diese letzte Übertragung nicht mehr abrufen. Xchange greift dann auf den zuletzt übertragenen Stand der Quelldaten zurück – jede erfolgreiche Übertragung dieser Route hinterlegt ihn – und ordnet ihn wie gewohnt zu. Die Meldung ist damit genauso vollständig wie bei einem Datensatz, der noch existiert; liegt kein Stand vor, trägt sie nur den Schlüssel. Der Rückgriff gilt ausschließlich für den nachweislich gelöschten Datensatz: Schlägt der Abruf aus einem anderen Grund fehl – etwa weil der Service Layer gerade nicht erreichbar ist –, gilt die Übertragung als fehlgeschlagen und wird wiederholt. Aus einer Störung entstehen keine Löschmeldungen.

Den Stand legt Xchange erst ab, sobald Im Zielsystem deaktivieren eingestellt ist. Stellen Sie eine bestehende Route um, lassen Sie deshalb zunächst einen vollständigen Lauf ohne Bereinigung durchlaufen – erst danach liegt für jeden übertragenen Datensatz ein Stand vor. Ein Austritt davor meldet nur den Schlüssel.

Die Auswahl allein löst noch nichts aus: Der Abgleich läuft nur, wenn der Lauf ihn anfordert – über die Bereinigung am zeitgesteuerten Auslöser oder im Dialog Lauf starten der Ausführung. Meldet die Bereinigung ungewöhnlich viele Datensätze, hält Xchange sie zur Freigabe an.

Wie die Filter selbst erscheint das Löschverhalten nur bei Datenherkunft Datenbestand.

Feldstruktur

Zeigt den Status der Feldstruktur des Quellsystems. Sobald die Struktur abgerufen wurde, erscheint hier der Zeitpunkt des letzten Abrufs. Ist noch kein Abrufendpunkt hinterlegt, weist eine Meldung darauf hin; schlägt der Abruf fehl, wird das ebenfalls gemeldet.

Erneut abgerufen wird die Feldstruktur nicht hier, sondern an einer Stelle für die ganze Installation: im Systemzustand über Feldstruktur abrufen. Nötig ist das, wenn in SAP Business One nach dem letzten Abruf ein Feld angelegt wurde – ohne diesen Schritt bleibt es in der Zuordnung unsichtbar. Den Ablauf mitsamt dem Service-Layer-Neustart, der dazugehört, beschreibt die Anleitung Neue Felder aus SAP Business One übernehmen. Die Feldstruktur eines externen Systems holt Feldstruktur abrufen im Bereich Feldstruktur der Anbindung.

Referenzdaten

Referenzdaten sind ein einzelner, echter Beispieldatensatz. An ihm prüfen Sie die tatsächlichen Werte und füllen die Feldauswahl der Zuordnung, ohne die Route auszuführen. Es gibt zwei Wege, sie zu hinterlegen:

  • Nach Schlüssel laden – Xchange holt den Datensatz über den Einzelabruf-Endpunkt aus dem Quellsystem. Möglich, sobald ein Einzelabruf-Endpunkt hinterlegt ist.
  • Manuell einfügen – Sie fügen den Datensatz als JSON ein. Der Weg, wenn Xchange den Datensatz nicht selbst beschaffen kann – siehe Datenquelle.

Schlüssel

Das Schlüsselfeld identifiziert einen Datensatz im Quellsystem eindeutig. Kennt Xchange die Feldstruktur und leitet daraus zugleich ab, wie ein einzelner Datensatz adressiert wird – beim Export aus SAP Business One oder bei einer Anbindung mit Shopware-Feldstruktur –, wird es automatisch gefüllt (z. B. ItemCode bei Artikeln) und ist schreibgeschützt. Braucht die Objektart mehrere Felder, stehen sie durch Komma getrennt in einem Feld – so wie die Zuordnung denselben Schlüssel zeigt; Bedingungen über verknüpfte Objekte lassen sich damit nicht auswerten. Lässt sich nichts ableiten, bleibt das Feld leer oder nennt den Grund.

Sonst wählen Sie das Schlüsselfeld selbst – über die Feldauswahl oder als JSONPath (z. B. $.DocNum). Die Feldauswahl zeigt die Felder der eingefügten Referenzdaten; sind keine hinterlegt, tritt die abgerufene Feldstruktur an ihre Stelle.

Zusatzdaten

Zusatzdaten ergänzen den Quelldatensatz um Werte, die nicht darin enthalten sind. Xchange liest sie über eine zusätzliche Abfrage aus SAP Business One (über den Service Layer) – verknüpft über einen Wert aus dem einlaufenden Datensatz. Die geladenen Werte landen im Teil Enrichments der internen Nachricht und stehen damit der Zuordnung zur Verfügung.

Eine Abfrage kann sich statt auf den ganzen Datensatz auch auf die Zeilen einer Liste darin beziehen – dann trägt jede Zeile ihre eigenen Zusatzdaten, und die Zuordnung kann die Liste danach filtern. Was die Ebene entscheidet, steht unter Ebene der Abfrage.

Routen – Quelldaten mit Zusatzdaten

Links steht die Liste der konfigurierten Zusatzdaten, rechts das Formular der aktuell gewählten Abfrage.

  • Zusatzdaten hinzufügen legt eine neue Abfrage an; sie erscheint sofort in der Liste.
  • Ist noch keine Abfrage angelegt, zeigt der Bereich Noch keine Zusatzdaten mit dem Hinweis „Fügen Sie eine Abfrage hinzu, um Daten zu laden, die nicht im Quelldatensatz enthalten sind.“
  • Ein Klick auf einen Listeneintrag öffnet die Abfrage im Formular. Eine noch nicht benannte Abfrage wird nach ihrer Position geführt – Zusatzdaten 2 für die zweite in der Liste. Dieselbe Bezeichnung nennt auch die Prüfliste, wenn sie einen Befund an dieser Abfrage meldet.
  • Löschen entfernt die gewählte Abfrage nach Rückfrage (Zusatzdaten löschen).

Änderungen werden automatisch gespeichert – es gibt keine separate Speichern-Schaltfläche.

Ebene der Abfrage

Die Ebene entscheidet, worauf sich die Abfrage bezieht, und bestimmt damit, welche Felder das Formular überhaupt zeigt.

EbeneBezugErgebnis
HauptdatensatzDer einlaufende Datensatz als Ganzes. Voreinstellung.Eine Abfrage je Datensatz.
Zeilen einer ListeEine Liste innerhalb des Datensatzes – etwa die Positionen einer Lieferung.Ein eigener Wert je Zeile, abgelegt an der Zeile.

Auf Ebene Zeilen einer Liste liest Xchange nicht je Zeile einzeln, sondern sammelt die Verknüpfungswerte aller Zeilen und ruft sie gebündelt ab. Die Zeilenliste darf selbst wieder in einer Zeilenliste liegen; drei Ebenen sind möglich – Hauptdatensatz, Liste, Liste innerhalb dieser Liste.

Da beide Seiten unterschiedliche Felder brauchen, zeigt das Formular jeweils nur die der gewählten Ebene: Zeilenliste, Verknüpfungsfeld (Zeile) und Verknüpfungsfeld (Hauptobjekt) gehören zur Zeilenebene, Unterobjekt, Verknüpfungsfeld (Unterobjekt), Ergebnistyp, Spaltenname und Maximale Zeilen zum Hauptdatensatz. Alles andere – Bezeichnung, Hauptobjekt, Felder, Bedingungen – gilt für beide.

Die Ebene lässt sich nachträglich umstellen. Dabei werden die Felder der verlassenen Ebene verworfen, ohne Rückfrage: Ein Wechsel auf Hauptdatensatz löscht die Verknüpfung zur Zeile, ein Wechsel auf Zeilen einer Liste das Unterobjekt samt der darauf gewählten Felder und Bedingungen. Ein Wechsel zurück gibt beides nicht wieder.

Felder der Abfrage

FeldBedeutung
Bezeichnung (Pflichtfeld)Name der Abfrage. Er erscheint in der Liste links und benennt die Werte in Enrichments.
EbeneHauptdatensatz oder Zeilen einer Liste – siehe Ebene der Abfrage.
Zeilenliste (Pflichtfeld)Die Liste, deren Zeilen abgefragt werden (z. B. OriginalPayload.DocumentLines[*]) – über eine Auswahl der Listen des Quellschemas, in derselben Schreibweise wie die Quell-Liste der Zuordnung. Ohne geladenes Schema bleibt die Auswahl leer und Sie geben den Pfad selbst ein. Nur auf Ebene Zeilen einer Liste.
Hauptobjekt (Pflichtfeld)Die SAP-Business-One-Objektart, aus der gelesen wird (z. B. Items, BusinessPartners).
Verknüpfungsfeld (Zeile) (Pflichtfeld)Das Feld der Zeile, das den zu ladenden Datensatz benennt (z. B. ItemCode). Nur auf Ebene Zeilen einer Liste.
Verknüpfungsfeld (Hauptobjekt) (Pflichtfeld)Das Feld des Hauptobjekts, auf das die Zeile verweist. Es muss der Schlüssel des Hauptobjekts sein, sonst lässt sich die Abfrage nicht bündeln. Nur auf Ebene Zeilen einer Liste.
UnterobjektEine untergeordnete Sammlung des Hauptobjekts (optional). Nur auf Ebene Hauptdatensatz, und nur sichtbar, sobald das Hauptobjekt untergeordnete Objekte anbietet oder bereits eines gewählt ist.
Verknüpfungsfeld (Unterobjekt) (Pflichtfeld)Das Feld des Unterobjekts, das auf das Hauptobjekt verweist. Nur sichtbar, wenn ein Unterobjekt gewählt ist.
FelderDie zu lesenden Felder – Mehrfachauswahl über eine Feldliste. Erscheint, sobald ein Hauptobjekt gesetzt ist.
ErgebnistypObjektliste (ganze Datensätze mit allen gewählten Feldern) oder Werteliste (nur die Werte einer einzelnen Spalte). Nur auf Ebene Hauptdatensatz: zu einer Zeile gehört ein Datensatz und keine Liste, dort gibt es also nichts zu wählen.
SpaltennameDie Spalte, deren Werte die Werteliste bildet. Nur auf Ebene Hauptdatensatz und nur bei Ergebnistyp Werteliste sichtbar.
Maximale ZeilenObergrenze der abgerufenen Datensätze, höchstens 1000. Leer bedeutet Unbegrenzt – dann braucht die Abfrage mindestens eine Bedingung, sonst meldet die Prüfliste sie. Nur auf Ebene Hauptdatensatz.

Bedingungen

Unter Bedingungen wird eingegrenzt, welche Datensätze die Abfrage abruft. Ohne Bedingung steht dort „Keine Bedingung – alle Datensätze werden abgerufen“. Bedingung hinzufügen fügt eine Zeile mit drei Spalten hinzu:

  • Feld – das Feld des Haupt- oder Unterobjekts, auf das die Bedingung wirkt.
  • Operatorist gleich, ist ungleich, größer als, größer/gleich, kleiner als, kleiner/gleich, beginnt mit, endet mit, enthält, ist leer, ist nicht leer.
  • Wert – entweder ein Pfad (ein Wert aus dem einlaufenden Datensatz, z. B. OriginalPayload.ItemCode) oder eine Konstante (frei eingegebener Wert). Eine neu hinzugefügte Zeile öffnet auf Pfad: Die Verknüpfung gegen ein Feld des aktuellen Datensatzes ist der Parameter der Abfrage, die Konstante tritt als zusätzliche Einschränkung daneben. Bei den Operatoren ist leer und ist nicht leer entfällt die Wertangabe.

Jede Zeile lässt sich einzeln wieder entfernen.

Zusatzdaten abrufen

Zusatzdaten abrufen führt die Abfragen gegen geladene Referenzdaten aus und zeigt die tatsächlich geladenen Werte in der Datenvorschau. Die Schaltfläche erscheint erst, wenn Referenzdaten geladen sind und mindestens eine Abfrage angelegt ist – vorher gibt es nichts abzurufen. Nach einer Änderung an der Konfiguration markiert das Kennzeichen Veraltet – neu abrufen in der Kopfzeile der Datenvorschau, dass die angezeigten Werte nicht mehr zur aktuellen Konfiguration passen.

Datenvorschau

Zeigt die interne Nachricht als formatiertes, schreibgeschütztes JSON – das einheitliche Format, in das Xchange jeden Datensatz überführt. Sie besteht aus drei Teilen:

TeilInhalt
OriginalPayloadDer Roh-Datensatz, wie ihn das Quellsystem liefert (beim Export der SAP Business One Service Layer).
EnrichmentsÜber Zusatzdaten geladene Werte – leer, bis die Abfragen ausgeführt wurden.
SubObjectsVerknüpfte Unterobjekte (hier leer).

Die Vorschau hat drei Zustände: leer (Feldstruktur noch nicht geladen), Skelett (Struktur geladen, aber noch kein Datensatz – zeigt die Felder mit Platzhaltern) und echt (ein Beispieldatensatz wurde geladen und zeigt die tatsächlichen Werte).

Im Zustand echt schaltet Anzeige zwischen beiden Sichten auf denselben Datensatz um: Referenzdaten zeigt die interne Nachricht mit den tatsächlichen Werten, Feldstruktur die daraus abgeleitete Struktur mit Platzhaltern anstelle der Werte.

Bei einer Verteilungsroute entfällt die Datenvorschau: Eine Verteilungsroute bildet keine interne Nachricht, sondern reicht die eingehende Nachricht an ihre Zielrouten weiter.

Siehe auch