DvSchemaSync peut synchroniser la plupart des tables Dataverse vers Azure SQL Database. Cette page explique quelles tables sont prises en charge et les éventuelles limitations.
Types de tables
Tables personnalisées (entités) :
Toutes les tables personnalisées créées dans votre environnement Dataverse sont entièrement prises en charge. Cela inclut les tables avec des préfixes personnalisés (par exemple, cr123_customtable) ainsi que les tables provenant de solutions installées.
Tables standard :
Les tables standard courantes de Microsoft Dataverse sont prises en charge, notamment les tables Compte, Contact, Prospect, Opportunité, Incidents et la plupart des autres tables liées à la gestion de la relation client (CRM).
Tables système :
Un nombre limité de tables système sont disponibles pour la synchronisation. Il s'agit notamment des tables SystemUser, Team, BusinessUnit et TransactionCurrency, qui sont souvent nécessaires pour établir des relations de reporting.
Tables couramment synchronisées
Les tables standard suivantes sont fréquemment synchronisées à des fins de reporting :
| Nom de la table | Nom logique | Remarques |
|---|---|---|
| Compte | compte | Organisations, entreprises |
| Contact | contact | Particuliers |
| Responsable | prospect | Pistes commerciales |
| Opportunité | opportunité | Opportunités commerciales |
| Incidents | Incident | Cas/tickets de service |
| Activité | indicateur d'activité | E-mails, appels, tâches, etc. |
| Utilisateur du système | systemuser | Utilisateurs pour les recherches de propriété |
| Équipe | équipe | Affectations d'équipe |
| Unité commerciale | businessunit | Hiérarchie organisationnelle |
| Devise | transactioncurrency | Références de devise |
Limitations
Tables qui ne peuvent pas être synchronisées :
• Tables virtuelles : les tables basées sur des sources de données externes ne peuvent pas être synchronisées.
• Tables élastiques — Les tables basées sur Azure Cosmos DB ont des modèles de requête différents
• Colonnes Image/Fichier — Les colonnes de données binaires sont ignorées lors de la synchronisation
💡 Astuce : si une table n'apparaît pas dans la liste de sélection, il s'agit peut-être d'une table virtuelle ou votre utilisateur d'application ne dispose peut-être pas des autorisations de lecture nécessaires.
Tables créées par DvSchemaSync
En plus de synchroniser les tables Dataverse, DvSchemaSync crée plusieurs tables système dans votre base de données SQL afin de prendre en charge les recherches d'ensembles d'options, l'historique d'audit et des rapports plus riches.
Tables d'ensembles d'options
optionset (ensembles d'options locaux)
Tableau consolidé contenant toutes les définitions d'ensembles d'options locales (listes de sélection) de toutes les entités synchronisées. Créé lorsque vous sélectionnez « OptionSet (sys) » dans le panneau Tableaux système.
| Colonne | Type | Description |
|---|---|---|
| id | INT IDENTITY | Clé primaire générée automatiquement |
| entity_logical_name | NVARCHAR(100) | Table contenant cet ensemble d'options (par exemple, compte) |
| attribute_logical_name | NVARCHAR(100) | Nom de la colonne (par exemple, code_secteur) |
| option_value | INT | La valeur numérique de l'option |
| option_label | NVARCHAR(400) | Libellé affiché pour l'option |
| option_lcid | INT | Code de langue (par défaut 1033 = anglais) |
| option_color | NVARCHAR(50) | Code couleur s'il est défini dans Dataverse |
| state_code | INT | État associé (pour les options de motif de statut) |
status_optionset (Statut et motif du statut)
Tableau consolidé spécifique aux ensembles d'options liés au statut (statecode, statuscode et listes de sélection). Créé lorsque vous sélectionnez « Statut », « Motif du statut » ou « Listes de sélection » dans le panneau Tableaux système.
Le schéma est identique à celui du tableau des ensembles d'options, ce qui vous permet d'interroger les valeurs de statut séparément des listes de sélection générales.
Tables d'audit
audit (journaux d'audit)
Contient les enregistrements du journal d'audit Dataverse indiquant qui a modifié quoi et quand. Créé lorsque vous sélectionnez « audit » dans le panneau Tables système. Nécessite l'activation de l'audit dans votre environnement Dataverse.
| Colonne | Type | Description |
|---|---|---|
| auditid | UNIQUEIDENTIFIER | Clé primaire - identifiant unique de l'enregistrement d'audit |
| action | INT | Code d'action (1 = Créer, 2 = Mettre à jour, 3 = Supprimer, etc.) |
| action_name | NVARCHAR(100) | Nom de l'action lisible par l'utilisateur |
| objectid | UNIQUEIDENTIFIER | ID de l'enregistrement qui a été modifié |
| objecttypecode | INT | Code du type d'entité de l'enregistrement modifié |
| entity_name | NVARCHAR(128) | Nom logique de l'entité (par exemple, contact) |
| userid | UNIQUEIDENTIFIER | ID de l'utilisateur qui a effectué la modification |
| createdon | DATETIME2 | Date à laquelle la modification a été effectuée |
| changedata | NVARCHAR(MAX) | JSON contenant les modifications détaillées des attributs |
| synced_on | DATETIME2 | Date à laquelle cet enregistrement a été synchronisé vers SQL |
auditdetail (Modifications des attributs d'audit)
Contient les modifications détaillées au niveau des attributs extraites du JSON changedata de la table d'audit. Chaque ligne représente un champ qui a été modifié, avec les anciennes et les nouvelles valeurs. Créé automatiquement lors de la synchronisation des journaux d'audit.
| Colonne | Type | Description |
|---|---|---|
| auditdetailid | UNIQUEIDENTIFIER | Clé primaire - identifiant unique de l'enregistrement détaillé |
| auditid | UNIQUEIDENTIFIER | Clé étrangère vers la table d'audit |
| attributename | NVARCHAR(100) | Nom logique du champ modifié |
| ancienne valeur | NVARCHAR(MAX) | Ancienne valeur (brute) |
| nouvelle valeur | NVARCHAR(MAX) | Nouvelle valeur (brute) |
| ancienne_valeur_formatée | NVARCHAR(MAX) | Ancienne valeur (libellé d'affichage) |
| newvalue_formatted | NVARCHAR(MAX) | Nouvelle valeur (libellé affiché) |
| date_modifiée | DATETIME2 | Date à laquelle la modification a eu lieu |
Exemple : requête sur l'historique des audits avec détails
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
✓ Avantages : ces tables système vous permettent de créer des rapports de piste d'audit indiquant qui a modifié quoi et quand, de créer des tableaux de bord de conformité et de résoudre les valeurs des ensembles d'options en étiquettes sans recherche manuelle.