Routing: Ermittle Route

Ereignisaktion - Kurzfassung

Zweck: Versucht über die für den Datenkontext anwendbare Routingtabelle anhand der Adressierung eines Geschäftstransaktionsobjekts (Bezugsobjekt) eine relevante Route zu ermitteln. Wird ein "passender" Routingtabelleneintrag ermittelt, können dessen Daten auf Attribute des Bezugsobjekts übertragen werden.

images/download/attachments/73609732/image2021-6-29_13-44-12-version-1-modificationdate-1624967054679-api-v2.png

Die Ereignisaktion Routing: Ermittle Route soll über die für den Datenkontext anwendbare Routingtabelle (s. Routingtabellen) anhand der Adressierung eines als Bezugsobjekt übergebenen konkreten Geschäftstransaktionsobjekts eine relevante Route ermitteln. Ausschlaggebend für die Zuordnung der Route ist dabei ein als "passend" gewerteter Routingtabelleneintrag in der anwendbare Routingtabelle. Dieser kann neben dem Routennamen auch Werte für Routenattribute definieren, die optional auf das Bezugsobjekt übertragen werden können.

Logik für das Ermitteln der Route

Schritt 1: Anwendbare Routingtabelle identifizieren

Die anwendbare Routingtabelle wird nach dem best-matching-Prinzip abhängig vom Datenkontext zugewiesen.

Schritt 2: Ausgangspunkt ("Von") und Endpunkt ("Bis") der Route bestimmen

Ausgewählte Firmen- und Adressattribute des Bezugsobjekts werden abhängig von den Parametern Von-Kette und Bis-Kette nach dem folgenden Schema untersucht, um den Ausgangspunkt ("Von") und Endpunkt ("Bis") der Route über die Merkmale "Land" und "PLZ" zu qualifizieren:

  1. Die Parameter Von-Kette und Bis-Kette definieren über eine Mehrfachauswahl für den Firmentyp die Auswahl und die Reihenfolge in der die Firmen- und Adressattribute des Bezugsobjekts ausgewertet werden.

  2. Je Firmentyp wird geprüft, ob sich das betreffende "Firmen- und Adressattribut" auf eine Firmenadresse (company.address) und/oder eine Adresse (address) bezieht, für die mindestens das Feld "Land" angegeben ist.

  3. Liegen für denselben Firmentyp sowohl eine Firmenadresse als auch eine Adresse vor, erhält die Adresse den Vorrang, der zusätzlich eine Angabe für die "Postleitzahl" (zipcode) enthält. Trifft dies für beide Adressen zu, dann werden "Land" und "Postleitzahl" der Adresse verwendet.

  4. Nur wenn für den untersuchten Firmentyp keine Adressdaten gefunden werden, oder keine der Adressen mindestens das Land definiert, wird die Suche mit den nächsten Firmentyp in der Kette fortgesetzt.

Schritt 3: Routingtabelle nach passendem Routingtabelleneintrag durchsuchen

Sofern per best-matching eine anwendbare Routingtabelle für den Datenkontext zugewiesen wird, werden deren Einträge mit den Angaben für Land und Postleitzahl abgeglichen, die vorher für Ausgangspunkt ("Von") und Endpunkt ("Bis") für das Bezugsobjekt ermittelt wurden.

Jeder Routingtabelleneintrag definiert Vorgabewerte für "Von" und "Bis", die für das Land als konkrete Auswahl und für die "Postleitzahl" als Intervall (für einen String-Vergleich) bestimmt sind. Beide Einträge sind jeweils optional, wobei ein Eintrag ohne "Postleitzahl" nur als passend gewertet wird, wenn für den entsprechenden Ausgangs- oder Endpunkt ebenfalls keine Postleitzahl ermittelt wurde. Analog wird ein Eintrag, der für "Von" oder "Bis" weder Land und "Postleitzahl" benennt, nur als passend gewertet, wenn für den entsprechenden Ausgangs- oder Endpunkt beide Merkmale undefiniert sind.

HINWEIS◄ Ein Routingtabelleneintrag, der weder Von- noch Bis-Kriterien definiert, wird auch dann nicht als passend gewertet, wenn für das Bezugsobjekt weder für den Ausgangs- noch den Endpunkt Adressdaten liefert.

Schritt 4: Anwendbaren Routingtabelleneintrag anwenden

Sofern innerhalb der anwendbaren Routingtabelle ein Routingtabelleneintrag identifiziert wird, der zu den in Schritt 2 für das Bezugsobjekt ermittelten Merkmalen für Ausgangs- und Endpunkt passt, werden dessen Detaildaten wie folgt verwendet:

  1. Der Wert des Felds "Name" (name), also der Routenname, wird dem in der Ereignisbehandlung Routing: Ermittle Route konfigurierten Zielfeld zugewiesen (s. "Konfiguration").

  2. Sofern der Routingtabelleneintrag Werte für Routenattribute definiert, werden diese unter Berücksichtigung der Konfigurationsparameter Kopiere Routenattribute zum Ziel und Überschreibe Attribut im Ziel auf das Bezugsobjekt angewendet.

HINWEIS◄ Eine Routingtabelle kann mehrere Einträge beinhalten, die denselben Routennamen angeben, aber dabei unterschiedliche Werte für Routenattribute spezifizieren. Die "Von"/"Bis"-Kriterien sollten dabei immer überschneidungsfrei gewählt werden, so dass der betreffende Routingtabelleneintrag immer eindeutig und reproduzierbar greift.

WICHTIG

  • Zuweisungen, die das Bezugsobjekt betreffen, werden nicht automatisch gespeichert, sondern betreffen nur dessen volatilen Datenstand. Sofern die Ereignisbehandlung Routing: Ermittle Route nicht im Kontext eines Ereignisses wie "Erstellen" oder "Ändern" für das Bezugsobjekt ausgeführt wird, kann bei Bedarf die Ereignisbehandlung Änderungen später speichern ausgeführt werden, um die Zuweisungen zum Speichern am Ende der Transaktion vorzumerken.

  • Falls keine Routingtabelle anwendbar ist oder die anwendbare Routingtabelle keinen passenden Routingtabelleneintrag enthält, wird dem Zielfeld "kein Wert" (null) zugewiesen. Die Zuweisung entfällt also nicht, sondern der Zielwert wird ggf. gelöscht!

Konfiguration

HINWEIS◄ Die Verwendung der Ereignisaktion Routing: Ermittle Route ist nur mit einem "Geschäftstransaktionsobjekt" als Bezugsobjekt sinnvoll, da nur diesem über die zum Ermitteln der Route ausgewerteten Firmen- und Adressattribute verfügen.

  • Der Parameter Zielfeld sieht die Konfiguration eines Wertauflösers vor, der das Ziel einer Wertzuweisung für den Routennamen, also den Wert des Felds "Name" aus dem als passend ermittelten Routingtabelleneintrag, definiert. Typischerweise wird an dieser Stelle auf den Textwert eines Typisierten Attributs des Bezugsobjekts verwiesen. Allerdings können als Zielfeld auch andere Wertauflöser (z. B. Variable oder Listenwert) verwendet werden, sofern diese die geeignete Zielobjekte für Wertzuweisungen als Rückgabewert liefern.

    Die Parameter Von-Kette und Bis-Kette definieren je eine Merhfachauswahl basierend auf der Dynamischen Aufzählung Firmentyp. Für die Auswahl ist im Unterschied zu vielen anderen Fällen die Reihenfolge relevant, da sie die Priorität für die Auswertung der betreffenden Firmen- und Adressattribute bestimmt. Details zur Interpretation beschreibt "Schritt 2" im Abschnitt "Logik für das Ermitteln der Route" (oben).

  • Die Option Kopiere Routenattribute zum Ziel (per Standard abgewählt), muss gesetzt werden, damit Wertzuweisungen für Routenattribute aus dem Routingtabelleneintrag in das Bezugsobjekt ausgeführt werden. Nur wenn zusätzlich die Option Überschreibe Attribute im Ziel (per Standard abgewählt) gesetzt wird, werden dabei bereits bestehende Werte für die betreffenden Attribute im Bezugsobjekt mit den Daten aus dem Routingtabelleneintrag überschrieben. Sonst werden nur Werte in bis dahin "leere" Attribute übernommen.

images/download/attachments/73609732/image2021-6-29_13-44-12-version-1-modificationdate-1624967054679-api-v2.png

ANMERKUNG◄ Wie im Screenshot zu sehen erscheint für den Parameter Zielfeld per Standard ein Wertauflöser für statischen Text. Dies ist rein systematisch begründet, da als Routenname ein Text erwartet wird. Da der Wertauflöser das Ziel für eine Zuweisung definieren soll, hat eine statische Zuweisung bzw. die Direkteingabe von Text anstelle einer Referenz auf ein geeignetes Ziel keinen Sinn. Sie verursacht aber auch keinen Fehler. Der Routenname wird schlicht nicht zugewiesen, falls ein statischer Text eingetragen wird.

Beispiel

Beim Speichern ("Erstellen"/"Ändern", s. Allgemein (Ereignisse)) von Sendungen soll versucht werden, die anwendbare "Route" anhand von Routingtabellen zu ermitteln:

  • Für den Ausgangspunkt ("Von") soll die Adressierung für den Firmentyp "Abholadresse" (DPA) bzw. - ersatzweise - die Adresse für den "Auftraggeber" (AAL) ausgewertet werden.

  • Den Endpunkt ("Bis") soll die Adressierung für den Firmentyp "Empänger" (CNE) definieren.

Sofern eine Route identifiziert werden kann, sollen bestimmte Ereignisaktionen (z. B. Hinweis anzeigen (Popup), Export, usw.) ausgeführt werden. Außerdem sollen die Werte von Routenattributen in die Sendung übernommen werden, soweit noch keine entsprechenden Angaben vorliegen.

ANMERKUNG◄ Der Name der Route soll dagegen nicht innerhalb der Sendung vermerkt werden, da die endgültige Zuweisung der Route später durch ein operatives System erfolgt.

Innerhalb einer Ereignisbehandlung, die auf das "Erstellen" oder "Ändern" von relevanten Sendungen reagiert, werden die rechts abgebildeten Ereignisaktionen konfiguriert.

Ereignisaktion Routing: Ermittle Route:

  • Der Wertauflöser für das Zielfeld verweist auf eine String-Variable "ROUTE", der der Routenname im Erfolgsfall zugewiesen werden soll.

  • Die Von Kette definiert, dass die Firmen- und Adressattribute für die Firmentypen "Abholadresse" und "Auftraggeber" in dieser Reihenfolge ausgewertet werden sollen.

  • Die Bis Kette spezifiziert den Firmentyp "Empfänger" als einzigen relevanten Typ für den Endpunkt der Route.

  • Die Option Kopiere Routenattribute zum Ziel, ist gesetzt, damit Zuordnungen für Routenattribute auf das Bezugsobjekt übertragen werden, sofern ein "passender" Routingtabelleneintrag gefunden wird. Die Option Überschreibe Attribute im Ziel wurde nicht gewählt, um bestehende Attributwerte im Bezugsobjekt zu schützen.


Die nachfolgende Wenn Dann Sonst-Ereignisaktion prüft, ob eine Route ermittelt werden konnte, und definiert den weiteren Ablauf:

  • Per Objekt-Feld-Regel wird geprüft, ob die Variable "ROUTE" leer ist.

  • Der "Dann"-Zweig der Fallunterscheidung sieht hier eine "Warnung" per Hinweis anzeigen (Popup) vor, nach der die Ereignisbehandlung ggf. fortgesetzt wird.
    ANMERKUNG◄ Denkbar wäre hier auch eine Abbrechen, durch die die Transaktion mit einer Benachrichtigung insgesamt "zurückgerollt" werden könnte. Dann könnte eine Sendung nur wirksam gespeichert werden, wenn ihre Adressierung das Ermitteln einer Route ermöglicht.

  • Der "Sonst"-Zweig definiert die Abläufe nach einem erfolgreichen "Routing". Neben der Erfolgsmeldung (per Hinweis anzeigen (Popup)) wird hier die Sendung per Export-Ereignisaktion zur Übergabe an ein Lobster_data-Profil beim Abschluss der Transaktion vorgemerkt. So kann die Weitergabe der Daten z. B. an ein ausführendes System davon abhängig gemacht werden, dass die Adressierung der Sendung im Abgleich mit der anwendbaren Routingtabelle als "legitim" bzw. hinreichend qualifiziert bewertet wird. Solange Angaben fehlen oder eine ungültige "Von"/"Bis"-Kombination vorliegt, erscheint stattdessen die Warnung.

images/download/attachments/73609732/image2021-7-6_12-14-30-version-1-modificationdate-1625566472525-api-v2.png