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.
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:
|
|
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:
►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.
|
|
►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:
Die nachfolgende Wenn Dann Sonst-Ereignisaktion prüft, ob eine Route ermittelt werden konnte, und definiert den weiteren Ablauf:
|
|