# Allgemeine Informationen
# Datenbank DEX_MasterData
Für die Stammdatentabellen wird eine separate SQL Datenbank **DEX\_MasterData** mit diversen Tabellen für **MS SQL Server** und **MySQL Server** zur Verfügung gestellt. Die Datenbank **DEX\_Workflow** verwaltet hingegen sämtliche Konfigurationen und Einstellungen.
Das DEXPRO Template-Lösungen bieten im Standardumfang eine detaillierte SQL basierte Tabellenstruktur an, welche aus externen Systemen befüllt werden kann. Die in den Templates hinterlegte Programmlogik greift auf die definierten Tabellen zu und kann deren Inhalte direkt in den dafür vorgesehenen Szenarien verwenden. Zu den einzelnen Tabellen existieren passende Felder und die Pop-Up-Auswahlfenster und Autocomplete-Funktionen sind auf diese Datenbank-Tabellen ausgerichtet. Sobald die Tabellen mit Stammdaten gefüllt wurden und die zugehörigen Felder aktiviert wurden können die Funktionen in der Anwendung getestet werden.
Der Großteil der Stammdatentabellen kann fixen Daten zugeordnet werden. So wurde die Tabelle **Accounting\_GLAccount** für Sachkonten erstellt und die Tabelle **OrderData** stellt Bestell-Daten bereit. Weitere Tabellen wie **Accounting\_Category** oder **Accounting\_Custom** sind Platzhalter für zusätzliche Stammdaten. Genauere Erläuterungen gibt es in den einzelnen Kapiteln zu den Tabellen.
Es gibt einen grundsätzlichen Aufbau für die Stammdatentabellen. Einige Spalten sind in allen Tabellen enthalten und werden in der folgenden Tabellarischen Ansicht einmal erläutert.
**Spaltenname** | **Typ** | **NULL-Werte zulassen** | **Erläuterung** |
ID | bigint | Nein | Eindeutige ID (Auto-Inkrement). |
Licence | nvarchar(50) | Nein | Documents-Lizenzname (PEM). |
Principal | nvarchar(50) | Nein | Technischer Mandant oder 'ANY' |
CompanyCode | nvarchar(50) | Nein | Technischer Buchungskreis oder 'ANY' |
InsertTS | datetime | Nein | Wird automatisch beim Insert gesetzt |
UpdateTS | datetime | Ja | Wird automatisch bei einem Update gesetzt |
Die **ID**-Spalte wird technisch zwingend in den Pop-Ups und für die WEB-Darstellung benötigt. Der Großteil der Tabellen kann bei Bedarf auch manuell über Konfigurationen der WEB-Anwendung erfolgen. Hierfür wird die ID-Spalte ebenfalls zwingend benötigt. Über die WEB-Konfiguration können Stammdaten die sich in der Regel nur selten ändern komplett manuell gepflegt werden.
[](https://docs.squeeze.one/uploads/images/gallery/2022-01/image-1642503654351.png)
Alle Abfragen auf die Datenbank-Tabellen beinhalten den Documents-Lizenznamen. Die **Licence**-Tabellenspalten können in der Datenbank mit dem Lizenznamen vorbelegt werden. Bei den WEB-Konfigurationen wird der Wert automatisch gefiltert und gesetzt.
In der Regel benötigen Kunden nur eine Angabe um interne Mandanten zu unterscheiden. Einige Buchungs-Systeme wie SAP bieten jedoch die Möglichkeit zwischen Mandant und Buchungskreis zu unterscheiden. Die Spalten **Principal** und **CompanyCode** werden in allen Abfragen verwendet und es wird jeweils nach dem spezifischen Wert aus der Vorgangsakte gesucht. Zusätzlich wird mit einem 'Oder' verknüpft in beiden Spalten nach dem fixen Wert '**ANY**' gesucht. Durch die Angabe von 'ANY' müssen Mandanten- oder Buchungskreis-übergreifende Stammdaten nicht mehrfach angelegt werden. Wenn zum Beispiel der Buchungskreis nicht verwendet wird kann in allen Tabellen an den CompanyCode-Spalten dieser fixe Wert hinterlegt werden. In der WEB-Konfiguration wird 'ANY' mit '\*Beliebig' übersetzt.
Beim Schreiben in die Datenbank wird der Spaltenwert **InsertTS** automatisch auf den aktuellen Zeitstempel gesetzt. Hierdurch kann der Support sehen wann die Stammdaten zuletzt geschrieben wurden. Bei der Aktualisierung einer Zeile wird die Spalte **UpdateTS** auf den aktuellen Zeitstempel gesetzt.
# Stammdatenübertragung
Die Übertragung der Stammdaten aus dem führenden System muss projektspezifisch geklärt werden. Die Stammdaten können über die WEB-Administration auf der Administrations-Outbar "Allgemein" manuell angegeben oder verändert werden.
[](https://docs.squeeze.one/uploads/images/gallery/2022-01/image-1642520313020.png)
Häufig werden die Tabellen bei der Stammdatenübertragung aus dem führenden System zunächst komplett gelöscht und im Anschluss neu geschrieben. Während der Übertragung stehen die Stammdaten temporär nicht komplett zur Verfügung. Bei großen Stammdaten-Mengen bietet sich wegen der Downtime ein Job-Lauf ausserhalb der Arbeitszeiten an.
Wie häufig Stammdaten aktualisiert werden können muss projektspezifisch entschieden werden und ist stark abhängig von der Laufzeit der Übertragung. Bei vielen Stammdaten reicht eine Übertragung am Tag aus. Ein häufiger genannter Fall für den Bedarf der mehrfachen Übertragung ist die Anlage neuer Kreditoren im führenden System bei der Validierung von Rechnungen. Die neuen Kreditor-Stammdaten stehen erst bei einer erneuten Stammdaten-Übertragung zur Verfügung. Für solche Fälle kann eine Übertragung eines einzelnen Datensatzes erstellt werden oder es wird am Mittag eine zusätzliche Übertragung ausgeführt. Häufig setzen sich die Anwender diese Rechnung einfach auf Wiedervorlage für den nächsten Tag.
Als zusätzliche Alternative können die Stammdaten auch aktualisiert werden. Aktualisierungs-Jobs sind deutlich aufwändiger aber haben bei großen Datenmengen aber den Vorteil, dass man den Job häufiger am Tag ohne Downtime durchführen kann. Hier müssen Aufwand und Nutzen abgewogen werden.
Das jeweilige Vorgehen sollte projektspezifisch pro Tabelle entschieden werden.