Mit diesem Formular können Sie fehlende, unklare oder fehlerhafte Inhalte in der Dokumentation melden und Verbesserungsvorschläge machen. Ihr Feedback hilft uns, die Qualität und Vollständigkeit kontinuierlich zu verbessern.
Tabelle abonnieren
Tabelle deklarieren
Um Tabellen für die Stammdatensynchronisation einzurichten, rufen Sie zunächst die Liste "Partner für Stammdatensynchronisation" über die "Universal Data Connection Einrichtung" auf. Wählen Sie dort den gewünschten Partner und navigieren Sie über "Zugehörig" zu "Abonnierte Tabellen". Dort deklarieren Sie wie folgt die einzelnen Tabellen, die an diesen Partner übermittelt werden sollen:
Geben Sie in "Tabellenr." die Nummer der Tabelle an, deren Daten Sie synchronisieren möchten. Bei Bedarf nutzen Sie die Lookup-Funktionalität.
Ergänzen Sie im Feld "Seiten Id" die Nummer einer Seite, über die Sie bei Bedarf Datensätze aus der Tabelle zu Prüfzwecken darstellen möchten.
Bei Bedarf definieren Sie einen "Tabellenfilter". Bitte beachten Sie zu diesem Thema die Hinweise.
De-/Aktivieren Sie die nachfolgenden Felder nach Bedarf oder belassen Sie diese bei den Standardeinstellungen.
Fehlertoleranz einrichten
Bei der Stammdatensynchronisation geht es darum, die im Quellsystem getätigten Datenbankaktionen (einfügen, ändern, löschen, umbenennen) in den Zielsystemen nachzuvollziehen, um damit wieder denselben Datenbestand zu erreichen. Dabei kann es aus verschiedensten Gründen passieren, dass im Zielsystem ein erwarteter Datensatz gar nicht vorhanden ist oder - im Gegenteil - ein nicht erwarteter Datensatz bereits vorgefunden wird. Beide Situationen sind ein Indiz dafür, dass sich das Zielsystem nicht im erwarteten Datenzustand befindet. Dies kann je nach Einsatzbereich kritisch oder unkritisch sein. Dementsprechend haben Sie die Möglichkeit, den Umgang mit dieser Situation in seinen Folgen abzustufen.
Sind unerwartete Datenbestände für Sie unkritisch (weil z. B. im Zielsystem Anwender arbeiten, die der Stammdatensynchronisation zuvorkommen dürfen), dann aktivieren Sie bitte den sog. defensiven Umgang mit den jeweiligen Datenbankaktionen. Die Universal Data Connection löst Konflikte dieser Art dann selbständig.
| Feld | Beschreibung |
|---|---|
| Defensives Einfügen | Wenn der neue Datensatz bereits in der Partnerdatenbank vorgefunden wird, dann wird er dort aktualisiert - ohne Abbruch mit einer Fehlermeldung. |
| Defensives Ändern | Wenn der geänderte Datensatz in der Partnerdatenbank nicht gefunden wird, dann wird er dort eingefügt - ohne Abbruch mit einer Fehlermeldung. |
| Defensives Löschen | Wenn der gelöschte Datensatz in der Partnerdatenbank nicht gefunden wird, dann wird nichts weiter unternommen - ohne Abbruch mit einer Fehlermeldung. |
| Defensives Rename | Wenn der umbenannte (alte) Datensatz in der Partnerdatenbank nicht gefunden wird, dann wird der neue Datensatz eingefügt oder aktualisiert - ohne Abbruch mit einer Fehlermeldung. |
Wenn diese Toleranz in Ihrem Fall nicht sinnvoll ist, dann deaktivieren Sie die defensiven Vorgehensweisen. Die Stammdatensynchronisation hält dann an, wenn eine unerwartete Datenkonstellation auftritt. Sollten Sie im Tagesbetrieb feststellen, dass bei bestimmten Tabellen und Aktionen wiederholt unkritische Konflikte auftreten, dann können Sie die Schreibstrategie auch nachträglich partiell auf defensives Vorgehen umstellen.
Trigger auf dem Quell- und Zielsystem de-/aktivieren
Je Tabelle können Sie separat definieren, welche der vier Datenbankaktionen Sie an das Zielsystem übermitteln wollen. In der Regel abonnieren Sie alle vier Trigger, Ausnahmen sind denkbar. Bitte bedenken Sie, dass das Ignorieren einzelner Trigger in der Regel zu abweichenden Datenbeständen in Quell- und Zielsystem führt. Dies kann gewollt sein oder auch durch defensive Schreibstrategien wieder ausgeglichen werden. Bspw. können Sie das Einfügen neuer Datensätze ignorieren, dafür aber das defensive Ändern aktivieren. Datensätze gelangen dann spätestens bei der ersten Änderung korrekt ins Zielsystem.
| Trigger | Funktion |
|---|---|
| Einfügen abonnieren | Bestimmt, ob für diese Tabelle Datensatzeinfügungen aufgezeichnet werden oder nicht. |
| Ändern abonnieren | Bestimmt, ob für diese Tabelle Datensatzänderungen aufgezeichnet werden oder nicht. |
| Löschen abonnieren | Bestimmt, ob für diese Tabelle Datensatzlöschungen aufgezeichnet werden oder nicht. |
| Umbenennen abonnieren | Bestimmt, ob für diese Tabelle Primärschlüsseländerungen aufgezeichnet werden oder nicht. |
Legen Sie zusätzlich je Tabelle explizit fest, welche der drei optionalen Tabellentrigger im Zielsystem durchlaufen werden sollen. Dies hat z. B. Auswirkungen auf Metainformationen, die in den Triggern aktualisiert und damit gegenüber dem Quellsystem abweichend übersteuert werden (z. B. "zuletzt geändert durch"). Bitte bedenken Sie, dass die Trigger bereits im Quellsystem je nach Kontext bewusst ausgeführt oder ignoriert wurden und damit z. B. auch gewollte Seiteneffekte ausgelöst haben, die dann ebenfalls durch die Stammdatensynchronisation übermittelt werden. Andererseits können Trigger auch Plausibilitätsprüfungen enthalten, die Sie evtl. auch im Zielsystem anwenden möchten. Bspw. verhindern sie das Löschen von Datensätzen, zu denen bereits Geschäftsvorfälle erfasst sind. Die Entscheidung für oder gegen das Durchlaufen der Trigger auf dem Zielsystem ist daher sehr individuell zu treffen.
| Trigger | Funktion |
|---|---|
| Durchlaufe Trigger OnInsert | Aktivieren Sie diese Option, wenn im Partnersystem der Trigger ausgelöst werden soll. Deaktivieren Sie diese Option, wenn nur die Daten übertagen werden sollen. |
| Durchlaufe Trigger OnModify | Aktivieren Sie diese Option, wenn im Partnersystem der Trigger ausgelöst werden soll.Deaktivieren Sie diese Option, wenn nur die Daten übertagen werden sollen. |
| Durchlaufe Trigger OnDelete | Aktivieren Sie diese Option, wenn im Partnersystem der Trigger ausgelöst werden soll. Deaktivieren Sie diese Option, wenn nur die Daten übertagen werden sollen. |
Hinweis
Diese Funktionalität bezieht sich ausschließlich auf die programmierbaren Tabellentrigger. Sie betrifft nicht die sog. Global Trigger Events (OnBefore/AfterInsert/Modify/Delete/RenameEvent). Diese lassen sich grundsätzlich nicht programmatisch übersteuern, also auch nicht durch die Universal Data Connection.
Tabellenfelder einrichten
Richten Sie die Felder ein, welche synchronisiert werden sollen. Sie erreichen die Liste der Felder aus der "UDC Abonnement Tabelle" über "Zugehörig" - "Abonnierte Felder".
In der Tabellenfelder-Liste klicken Sie in der Navigationsleiste auf "Weitere Optionen", "Aktionen" und "Felder füllen". Die Tabelle wird im Anschluss automatisch mit den in der Tabelle vorhandenen Feldern befüllt.
Dies soll Ihnen die weitere Einrichtung erleichtern, kann sie jedoch nicht ersetzen. Bitte prüfen Sie im Detail, welche Felder Sie übertragen lassen möchten, und löschen Sie die übrigen.
Feldvalidierung einrichten
In der "UDC Abonnement Tabellenfelder", die Sie aus der "UDC Abonnement Tabelle" über "Zugehörig" zu "Abonnierte Felder" aufrufen, sind u. a. die folgenden zwei Spalten zu finden:
| Feld | Beschreibung |
|---|---|
| Validierung | Legen Sie durch De-/Aktivierung fest, ob das Feld nach der Datenübertragung im Ziel validiert werden soll. |
| Validierungsart | Gibt das Verfahren an, mit dem das Feld nach der Übertragung, validiert wird. Wählen Sie im Dropdown zwischen den Möglichkeiten "Nie" (Standard-Einstellung), "Immer" oder "Nur bei Änderung", um den Trigger On-Validate auf diese Weise auszuführen. |
Beide Felder korrespondieren miteinander: Über das Feld ‘Validierung’ können Sie die Validierungsart mit einem einzelnen Klick zwischen "Nie” und "Immer” umschalten. Im Feld "Validierungsart” können Sie bei Bedarf die Bedingung feiner abstufen.
Abweichende Feldnamen eintragen
Sollte ein Feld im Zielsystem anders benannt sein als im Quellsystem, dann tragen Sie den Namen aus dem Zielsystem in der Spalte "Feldname Partner" ein. Hintergrund ist hierbei, dass ein Feld im Zielsystem nur dann befüllt wird, wenn dort sowohl der Datentyp als auch der Feldname zur Feldnummer passen.
Weitere Spalten in der Feldeinrichtung
Das Anzeigefeld "Feldstatus” gibt die Aktualität eines Feldes an. Felder können im Rahmen der Releasepflege als "Veraltet" oder "Entfernt" gekennzeichnet werden. Solche Kennzeichnungen führen zu Fehlern in der Übertragung, sind also frühzeitig zu prüfen und zu klären. Sollte ein eingerichtetes Feld tatsächlich gar nicht mehr in der Datenbank gefunden werden, dann finden Sie einen Hinweis in der Spalte "Bemerkung”. Das Feld "Reihenfolge” bestimmt die Übertragungs- und damit auch die Verarbeitungsreihenfolge der Felder. Sie kann insbesondere bei der Validierung von Feldinhalten relevant sein.
In der Spalte "Feld bei Einfügen überspringen falls leer” sind alle Felder markiert, die in einer Einfüge-Nachricht ignoriert werden können, wenn sie den ‘leeren’ Wert ihres jeweiligen Datentyps besitzen (also bspw. 0 bei Zahlen oder den leeren String). Dies verkleinert die Einfügenachrichten, kann aber zu Inkonsistenzen führen, wenn (zumindest im Zielsystem) abweichende Initialwerte definiert sind. Ein eingefügter Datensatz würde dann im Zielsystem den Initialwert erhalten, obwohl das Feld im Quellsystem den leeren Wert zugewiesen bekommen hat.
Blob-Verweise einrichten
In der Spalte "Blob-Art” geben Sie an, ob es sich bei einem Feld für Bilder oder Dateien um ein binäres Objekt (Blob) handelt, das in der zentralen Zusatztabelle für persistente Blobs gespeichert wird. In diesem Fall erzeugt die Stammdatensynchronisation in der Zusatztabelle einen neuen Eintrag und transportiert das binäre Objekt von der Zusatztabelle des Quellsystems in die Zusatztabelle des Zielsystems. Dabei erstellt das Zielsystem eine neue Referenznummer für das Objekt, die dann in das korrespondierende Feld im abonnierten Datensatz eingetragen wird.
Hinweis
Wird hier eine Blob-Referenz nicht eingerichtet, so wird die Referenznummer ohne das zugehörige binäre Objekt übertragen und zeigt im Zielsystem auf ein anderes Objekt, das dort zufällig dieselbe Nummer erhalten hat. Als Hinweis auf mögliche Blob-Referenzen trägt unitop bei der Einrichtung der Felder die Blob-Art "Blob ?” ein. Bitte prüfen Sie solche Felder während der Einrichtung umgehend und ändern Sie die Blob-Art auf leer oder "Blob-Referenz”, damit Verknüpfungen im Zielsystem korrekt neu erstellt werden.
Tabellenfilter
Bei Bedarf können Sie in der Einrichtungszeile einer abonnierten Tabelle auch einen "Tabellenfilter" einfügen, um ausschließlich gefilterte Datensätze in einen Mandanten zu synchronisieren. Der Tabellenfilter wirkt sich sowohl auf die Tabelle aus, für die er hinterlegt ist, als auch auf eingerichtete Untertabellen. In Zusammenhang mit gefilterten Tabellen ist auch die nachfolgend beschriebene Pflege der partnerrelevanten Datensätze zu beachten. Die Tabelle der partnerrelevanten Datensätze stellt den Füllstand jeder gefilterten Tabelle je Partner dar. Sie bestimmt indirekt, ob das Partnersystem bei Änderung eines Datensatzes im Quellsystem eine Einfüge-, Lösch-, Änderungs- oder gar keine Nachricht erhält. Da das Quellsystem den Füllstand beim Partner nicht selbst ermitteln kann, tragen Sie ihn bei Bedarf mit den nachfolgend beschriebenen Funktionen vor.
Partnerrelevante Datensätze
Ausgehend von der "UDC Abonnement Tabelle" können Sie partnerrelevante Datensätze einsehen. Klicken Sie dazu auf die Anzahl der Datensätze, die in der Datenbank des Partners gespeichert sind (berücksichtigt "Tabellenfilter"). Sie sehen alle Datensätze inkl. Primärschlüsselwerte, System-ID des Datensatzes und Zeitstempel der Erstellung. Datensätze werden pro Partner und pro Tabelle gespeichert. So kann bspw. eine Artikelvariante dreimal von drei Partnern abonniert sein. Diese Information wird von unitop gespeichert. Somit ist zu erkennen, welche Datensätze ein Partner in seiner Datenbank bereits gespeichert hat.
Funktionen zur Pflege partnerrelevanter Datensätze
| Aktion | Beschreibung |
|---|---|
| Fehlende Datensätze nachtragen | Diese Funktion trägt alle fehlenden Datensätze in der partnerrelevanten Datensatz-Tabelle nach, die der Partner nach Einrichtung (gemäß Filter) kennen soll. |
| Fehlende Datensätze nachtragen und senden | Es erfolgt die Übertragung aller gemäß Einrichtung fehlenden Datensätze. Diese werden indirekt (beim Versand) in die partnerrelevanten Datensatz-Tabelle nachgetragen. Ihre Anzahl verändert sich also erst nach der asynchronen Übermittlung an das Zielsystem. |
| Überflüssige Datensätze entfernen | Diese Funktion entfernt gemäß Filter überflüssige Datensätze. |
| Überflüssige Datensätze beim Partner löschen | Löscht die Datensätze, auf die der Partner keinen Zugriff mehr haben soll. |
| Referenztabelle leeren | Diese Funktion leert die gesamte partnerrelevante Datensatz-Tabelle. |
| Alle bekannten Datensätze bei Partner löschen | Diese Funktion sendet zu jedem Datensatz der aktuellen Tabelle, der gemäß den partnerrelevanten Datensätzen im Zielsystem vorhanden ist, eine Löschnachricht. |
| Kennzeichen ändern für "Tabellenfilter nie verwendet” | Hiermit können Sie manuell das Kennzeichen umsetzen, das die Pflege der partnerrelevanten Datensätze steuert. Für ungefilterte Tabellen wird auf die Pflege dieser Tabelle aus Gründen der Performance und des Speicherplatzes verzichtet, weil Datenbankaktionen nicht für den Partner übersetzt werden müssen. Sobald allerdings eine Filterung aktiv war, kann eine Übersetzung ebenso nach dem Entfernen des Filters benötigt werden, bis wieder alle Datensätze im Zielsystem vorhanden sind. Anschließend kann mithilfe der hier beschriebenen Funktionen die Referenztabelle geleert und das Kennzeichen für "Tabellenfilter nie verwendet” wieder gesetzt werden. |
Tabellenrelationen
Stellen Sie Tabellenrelationen zwischen Haupt- und Untertabellen her, z. B. zwischen Artikel und Artikelvariante, damit alle nötigen bzw. zusammenhängenden Informationen für spätere Prozesse aufgerufen, gefiltert und verarbeitet werden können. Die Relationen sind, aufgrund verschiedener Schlüsselfelder, manuell zu schaffen.
Hinweis
Untertabellen sind dabei nur zu deklarieren, wenn sie zu einer gefilterten oder mehreren Haupttabellen gehören. Ist dies nicht der Fall, dann richten Sie die Untertabellen bitte ohne Zuordnung ein, um Rechenlast und Speicherbedarf gering zu halten.