DvSchemaSync kann die meisten Dataverse-Tabellen mit der Azure SQL-Datenbank synchronisieren. Auf dieser Seite werden die unterstützten Tabellen und etwaige Einschränkungen erläutert.
Tabellentypen
Benutzerdefinierte Tabellen (Entitäten):
Alle in Ihrer Dataverse-Umgebung erstellten benutzerdefinierten Tabellen werden vollständig unterstützt. Dazu gehören Tabellen mit benutzerdefinierten Präfixen (z. B. cr123_customtable) sowie Tabellen aus installierten Lösungen.
Standardtabellen:
Gängige Microsoft Dataverse-Standardtabellen werden unterstützt, darunter „Account”, „Contact”, „Lead”, „Opportunity”, „Case” und die meisten anderen CRM-bezogenen Tabellen.
Systemtabellen:
Für die Synchronisierung stehen begrenzte Systemtabellen zur Verfügung. Dazu gehören Tabellen wie SystemUser, Team, BusinessUnit und TransactionCurrency, die häufig für Berichtsbeziehungen benötigt werden.
Häufig synchronisierte Tabellen
Die folgenden Standardtabellen werden häufig für Berichtszwecke synchronisiert:
| Tabellenname | Logischer Name | Anmerkungen |
|---|---|---|
| Konto | Konto | Organisationen, Unternehmen |
| Kontakt | Kontakt | Einzelpersonen |
| Leitung | Lead | Vertriebs-Leads |
| Opportunity | Opportunity | Vertriebsmöglichkeiten |
| Fall | Vorfall | Servicefälle/Tickets |
| Aktivität | activitypointer | E-Mails, Anrufe, Aufgaben usw. |
| System Benutzer | systemuser | Benutzer für Eigentumsrecherchen |
| Team | team | Teamzuweisungen |
| Geschäftseinheit | businessunit | Organisationshierarchie |
| Währung | transactioncurrency | Währungsreferenzen |
Einschränkungen
Tabellen, die nicht synchronisiert werden können:
• Virtuelle Tabellen – Tabellen, die auf externen Datenquellen basieren, können nicht synchronisiert werden
• Elastische Tabellen – Von Azure Cosmos DB unterstützte Tabellen haben unterschiedliche Abfragemuster
• Bild-/Dateispalten – Binäre Datenspalten werden bei der Synchronisierung übersprungen
💡 Tipp: Wenn eine Tabelle nicht in der Auswahlliste angezeigt wird, handelt es sich möglicherweise um eine virtuelle Tabelle oder Ihr Anwendungsbenutzer verfügt nicht über Leseberechtigungen für diese Tabelle.
Von DvSchemaSync erstellte Tabellen
Zusätzlich zur Synchronisierung von Dataverse-Tabellen erstellt DvSchemaSync mehrere Systemtabellen in Ihrer SQL-Datenbank, um Optionssatz-Lookups, Audit-Verläufe und umfangreichere Berichte zu unterstützen.
Optionssatz-Tabellen
optionset (Lokale Optionssätze)
Eine konsolidierte Tabelle, die alle lokalen Optionssatzdefinitionen (Auswahllisten) aus allen synchronisierten Entitäten enthält. Wird erstellt, wenn Sie im Bereich „Systemtabellen” die Option „OptionSet (sys)” auswählen.
| Spalte | Typ | Beschreibung |
|---|---|---|
| id | INT IDENTITY | Automatisch generierter Primärschlüssel |
| entity_logical_name | NVARCHAR(100) | Die Tabelle, die diesen Optionssatz enthält (z. B. Konto) |
| attribute_logical_name | NVARCHAR(100) | Der Spaltenname (z. B. industrycode) |
| option_value | INT | Der numerische Wert der Option |
| option_label | NVARCHAR(400) | Die Anzeigebezeichnung für die Option |
| option_lcid | INT | Sprachcode (Standard 1033 = Englisch) |
| option_color | NVARCHAR(50) | Farbcode, falls in Dataverse definiert |
| state_code | INT | Zugehöriger Status (für Statusgrundoptionen) |
status_optionset (Status & Statusgrund)
Eine konsolidierte Tabelle speziell für statusbezogene Optionssätze (statecode, statuscode und Auswahllisten). Wird erstellt, wenn Sie im Bereich „Systemtabellen“ die Optionen „Status“, „Statusgrund“ oder „Auswahllisten“ auswählen.
Das Schema ist identisch mit dem der Optionstabelle, sodass Sie Statuswerte separat von allgemeinen Auswahllisten abfragen können.
Audit-Tabellen
audit (Auditprotokolle)
Enthält Dataverse-Auditprotokolleinträge, aus denen hervorgeht, wer wann welche Änderungen vorgenommen hat. Wird erstellt, wenn Sie im Bereich „Systemtabellen“ die Option „Audit“ auswählen. Erfordert, dass die Auditierung in Ihrer Dataverse-Umgebung aktiviert ist.
| Spalte | Typ | Beschreibung |
|---|---|---|
| auditid | UNIQUEIDENTIFIER | Primärschlüssel – eindeutige Audit-Datensatz-ID |
| action | INT | Aktionscode (1=Erstellen, 2=Aktualisieren, 3=Löschen usw.) |
| action_name | NVARCHAR(100) | Für Menschen lesbarer Aktionsname |
| objectid | UNIQUEIDENTIFIER | ID des Datensatzes, der geändert wurde |
| objecttypecode | INT | Entitätstypcode des geänderten Datensatzes |
| entity_name | NVARCHAR(128) | Logischer Name der Entität (z. B. Kontakt) |
| userid | UNIQUEIDENTIFIER | ID des Benutzers, der die Änderung vorgenommen hat |
| Erstellt am | DATETIME2 | Zeitpunkt, zu dem die Änderung vorgenommen wurde |
| changedata | NVARCHAR(MAX) | JSON mit detaillierten Attributänderungen |
| synced_on | DATETIME2 | Zeitpunkt, zu dem dieser Datensatz mit SQL synchronisiert wurde |
auditdetail (Änderungen an Audit-Attributen)
Enthält detaillierte Änderungen auf Attributebene, die aus dem JSON-Datensatz „changedata” der Audit-Tabelle extrahiert wurden. Jede Zeile steht für ein geändertes Feld mit alten und neuen Werten. Wird automatisch beim Synchronisieren von Audit-Protokollen erstellt.
| Spalte | Typ | Beschreibung |
|---|---|---|
| auditdetailid | EINDEUTIGE IDENTIFIKATION | Primärschlüssel – eindeutige Detaildatensatz-ID |
| auditid | UNIQUEIDENTIFIER | Fremdschlüssel zur Audit-Tabelle |
| attributename | NVARCHAR(100) | Logischer Name des geänderten Feldes |
| oldvalue | NVARCHAR(MAX) | Vorheriger Wert (Rohwert) |
| newvalue | NVARCHAR(MAX) | Neuer Wert (unformatiert) |
| oldvalue_formatted | NVARCHAR(MAX) | Vorheriger Wert (Anzeigebezeichnung) |
| newvalue_formatted | NVARCHAR(MAX) | Neuer Wert (Anzeigebezeichnung) |
| Änderungsdatum | DATETIME2 | Zeitpunkt der Änderung |
Beispiel: Abfrage des Audit-Verlaufs mit Details
SELECT a.entity_name, a.action_name, a.createdon, d.attributename, d.oldvalue_formatted, d.newvalue_formatted FROM audit a JOIN auditdetail d ON d.auditid = a.auditid WHERE a.entity_name = 'contact' ORDER BY a.createdon DESC
✓ Vorteile: Mit diesen Systemtabellen können Sie Audit-Trail-Berichte erstellen, aus denen hervorgeht, wer was wann geändert hat, Compliance-Dashboards erstellen und Optionssatzwerte ohne manuelle Nachschläge in Bezeichnungen auflösen.