Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous activez l’audit et modifiez des données dans les tables et colonnes auditées, vous pouvez récupérer l’historique des modifications pour ces tables et colonnes.
Vous ne pouvez pas accéder aux données d’audit à l’aide du point de terminaison Dataverse TDS (SQL).
L’historique d’audit n’est pas disponible pour les tables de l’application mobile.
Table d’audit
La table Auditing (Audit) stocke les événements d’audit. Dans l’API web, l’audit EntityType est la ressource pour ces données. La table d’audit est en lecture seule.
La table d’audit fournit les données pour l’option Voir le résumé de l’audit affichée dans le centre d’administration Power Platform.
Assurez-vous que l’utilisateur appelant a le prvReadAuditSummary privilège de récupérer des données de la table.
Le tableau suivant résume les colonnes importantes de la table d’audit.
| SchemaName LogicalName DisplayName |
Type | Description |
|---|---|---|
ActionactionÉvénement |
Option | Représente l’événement à l’origine de la modification. En savoir plus sur les actions. |
AttributeMaskattributemaskChamp modifié |
Memo | Lorsque le changement représente une modification de données dans un enregistrement, il contient une liste de nombres séparés par des virgules qui correspondent au AttributeMetadata.ColumnNumber pour les colonnes qui ont été modifiées. Remarque : n’utilisez pas ces données. Utilisez plutôt les messages pour extraire l’historique des modifications. |
AuditIdauditidID de l’enregistrement |
Identificateur unique | Identifie la clé primaire de la table d’audit. |
CallingUserIdcallinguseridAppel de l’utilisateur |
Rechercher | Identifie l’utilisateur appelant lorsque l’emprunt d’identité est utilisé pour l’opération ; sinon, valeur nulle. |
CreatedOncreatedonDate de modification |
Date et heure | Identifie le moment où l’enregistrement d’audit a été créé, c’est-à-dire lorsque l’opération de l’utilisateur a eu lieu. En juillet 2025, la précision de cette valeur a été améliorée pour inclure des millisecondes. Cette modification capture la séquence correcte d’événements d’audit dans les transactions qui ont plusieurs opérations. |
ObjectIdobjectidEnregistrer |
Rechercher | Identifie de façon unique l’enregistrement audité. |
ObjectTypeCodeobjecttypecodeEntité |
EntityName | Affiche le nom logique de la table référencée par la colonne objectid. |
OperationoperationOpération |
Option | Identifie l’opération qui a créé l’enregistrement d’audit ; l’une des quatre valeurs : 1 = Créer 2 = Mettre à jour 3 = Supprimer 4 = Accès |
UserIduseridModifié par |
Rechercher | Affiche l’ID de l’utilisateur ayant modifié les données. |
Actions d’audit
Utilisez Choix/Options d’action pour filtrer selon les événements spécifiques. Les tables suivantes classent les événements.
Événements de ligne de tableau
Ces événements capturent les modifications apportées à un enregistrement.
| Valeur | Étiquette | Message | Description |
|---|---|---|---|
| 1 | Créer | Create |
Un enregistrement est créé. |
| 2 | Mise à jour | Update |
Un enregistrement est mis à jour. |
| 3 | Supprimer | Delete |
Un enregistrement est supprimé. |
| 12 | Fusion | Merge |
Un enregistrement est fusionné avec un autre. |
| 13 | Attribuer | Assign |
La valeur de la colonne ownerid d’un enregistrement de table appartenant à l’utilisateur est modifiée. |
| 41 | Changer l’état | SetState |
La valeur de la colonne statecode d’un enregistrement est modifiée. |
Événements de partage de fiches
Ces événements capturent les modifications apportées à l’accès à un enregistrement lorsqu’un enregistrement est partagé.
| Valeur | Étiquette | Message | Description |
|---|---|---|---|
| 14 | Partager | GrantAccess |
Un utilisateur se voit accorder des privilèges sur un enregistrement. |
| 48 | Modifier le partage | ModifyAccess |
Les privilèges accordés à un utilisateur ont été modifiés. |
| 49 | Ne plus partager | RevokeAccess |
L’accès d’un utilisateur à un enregistrement est supprimé. |
Événements de relation plusieurs-à-plusieurs
Ces événements capturent les changements pour les relations plusieurs-à-plusieurs.
| Valeur | Étiquette | Message | Description |
|---|---|---|---|
| 33 | Entités associées | Associate |
Un ou plusieurs enregistrements sont associés à un autre. |
| 34 | Désassocier des entités | Disassociate |
Un ou plusieurs enregistrements sont dissociés d’un autre. |
| 53 | Attribuer un rôle à une équipe | Associate |
Un rôle de sécurité est attribué à une équipe. |
| 54 | Supprimer le rôle de l’équipe | Disassociate |
Un rôle de sécurité est supprimé d’une équipe. |
| 55 | Attribuer un rôle à un utilisateur | Associate |
Un rôle de sécurité est attribué à un utilisateur. |
| 56 | Supprimer un rôle d’un utilisateur | Disassociate |
Un rôle de sécurité est supprimé d’un utilisateur. |
Événements d’accès utilisateur
Ces options capturent l’historique de l’accès utilisateur lorsque l’audit de l’accès utilisateur est activé. L’enregistrement d’audit de ces événements a une valeur de la colonne operation de 4.
| Valeur | Étiquette | Description |
|---|---|---|
| 64 | Accès utilisateur via le Web | L’utilisateur accède à Dataverse à l’aide d’une application pilotée par modèle. |
| 65 | Accès utilisateur via les services Web | L’utilisateur accède à Dataverse à l’aide de services web avec un client autre qu’une application pilotée par modèle. |
| 112 | L’audit de l’accès utilisateur a démarré | L’audit de l’accès utilisateur a commencé. |
| 113 | L’audit de l’accès utilisateur s’est arrêté | L’audit de l’accès utilisateur a pris fin. |
L’Exemple : Auditer l’accès des utilisateurs montre comment utiliser ces options d’action pour auditer l’accès des utilisateurs.
Événements de modification des métadonnées
Ces événements capturent les modifications apportées aux définitions de table et aux colonnes et aux modifications apportées à la table d’organisation.
| Valeur | Étiquette | Description |
|---|---|---|
| 100 | Supprimer l’entité | L’utilisateur a supprimé une table. |
| 101 | Supprimer l’attribut | L’utilisateur a supprimé une colonne. |
| 102 | Modification d’audit au niveau de l’entité | L’utilisateur a modifié une définition de table pour activer ou désactiver l’audit. |
| 103 | Modification d’audit au niveau de l’attribut | L’utilisateur a modifié une définition de colonne pour activer ou désactiver l’audit. |
| 104 | Modification d’audit au niveau de l’organisation | L’utilisateur a modifié les paramètres d’organisation. |
Événements de modification de l’audit
Ces événements capturent les modifications apportées aux paramètres d’audit.
| Valeur | Étiquette | Description |
|---|---|---|
| 105 | Audit de l’entité lancé | L’audit a été activé pour une table. |
| 106 | Audit de l’attribut lancé | L’audit a été activé pour une colonne. |
| 107 | Audit activé | L’audit a été activé pour l’organisation. |
| 108 | Audit de l’entité interrompu | L’audit a été désactivé pour une table. |
| 109 | Audit de l’attribut interrompu | L’audit a été désactivé pour un attribut. |
| 110 | Audit désactivé | L’audit a été désactivé pour une colonne. |
| 111 | Suppression du journal d’audit | Un journal d’audit a été supprimé. |
Événements de modification des rôles de sécurité
Ces événements capturent les modifications apportées aux rôles de sécurité.
| Valeur | Étiquette | Message | Description |
|---|---|---|---|
| 57 | Ajouter des privilèges à un rôle | AddPrivilegesRole |
Des privilèges ont été ajoutés à un rôle. |
| 58 | Supprimer des privilèges d’un rôle | RemovePrivilegeRole |
Des privilèges ont été supprimés d’un rôle. |
| 59 | Remplacer des privilèges d’un rôle | ReplacePrivilegesRole |
Les privilèges d’un rôle ont été remplacés. |
Autres actions
Les options d’action restantes font généralement référence à des opérations auditables qui s’appliquent à des solutions spécifiques, telles que Dynamics 365 Sales, Customer Service et Dynamics 365 Marketing.
Les Étiquettes de ces actions doivent s’aligner sur une valeur SdkMessage.Name qui représente l’action. L’opération spécifique peut être une combinaison du nom de l’action et d’une table. Par exemple, une option avec la valeur 10 et l’étiquette Fermer doit correspondre aux messages CloseIncident ou CloseQuote.
Relations de la table d’audit
La table d’audit a seulement deux relations plusieurs-à-un avec la table systemuser :
| Relation | Recherche de table d’audit | Description |
|---|---|---|
lk_audit_userid |
userid |
Associe l’utilisateur à tous les enregistrements d’audit créés en raison des modifications qu’il a apportées. |
lk_audit_callinguserid |
callinguserid |
Associe l’utilisateur à l’un des enregistrements d’audit qu’il a créés en empruntant l’identité d’un autre utilisateur. |
Vous pouvez utiliser ces relations pour filtrer les enregistrements de données d’audit créés pour un utilisateur spécifique.
L’entité d’audit ne prend en charge qu’une seule entité de lien dans une requête. Comme seules deux relations existent avec la table systemuser, cela signifie que vous pouvez inclure des données des colonnes callinguserid ou userid, mais pas les deux en même temps.
Vous ne pouvez pas créer de requêtes à l’aide de QueryExpression ou de FetchXml qui joignent des données d’audit à des tables autres que les deux relations formelles qui existent avec la table systemuser.
Définition de l’EntityType d’audit
À l’aide de l’API web, vous pouvez utiliser la ressource EntityType d’audit pour lire les données de la table d’audit. Les données suivantes correspondent à la définition d’EntityType d’audit issue du document de service $metadata CSDL de l’API Web sans annotations.
<EntityType Name="audit" BaseType="mscrm.crmbaseentity">
<Key>
<PropertyRef Name="auditid" />
</Key>
<Property Name="operation" Type="Edm.Int32" />
<Property Name="attributemask" Type="Edm.String" Unicode="false" />
<Property Name="action" Type="Edm.Int32" />
<Property Name="useradditionalinfo" Type="Edm.String" Unicode="false" />
<Property Name="createdon" Type="Edm.DateTimeOffset" />
<Property Name="objecttypecode" Type="Edm.String" Unicode="false" />
<Property Name="_callinguserid_value" Type="Edm.Guid" />
<Property Name="_regardingobjectid_value" Type="Edm.Guid" />
<Property Name="_objectid_value" Type="Edm.Guid" />
<Property Name="_userid_value" Type="Edm.Guid" />
<Property Name="transactionid" Type="Edm.Guid" />
<Property Name="auditid" Type="Edm.Guid" />
<NavigationProperty Name="callinguserid" Type="mscrm.systemuser"
Nullable="false" Partner="lk_audit_callinguserid">
<ReferentialConstraint Property="_callinguserid_value"
ReferencedProperty="systemuserid" />
</NavigationProperty>
<NavigationProperty Name="userid" Type="mscrm.systemuser"
Nullable="false" Partner="lk_audit_userid">
<ReferentialConstraint Property="_userid_value"
ReferencedProperty="systemuserid" />
</NavigationProperty>
</EntityType>
Note
La colonne ChangeData n’est pas incluse dans l’API web EntityType audit. N’utilisez pas ces données. Utilisez plutôt les messages pour extraire l’historique des modifications d’audit.
Exemple : rechercher des enregistrements de contact supprimés par un utilisateur
Les exemples suivants sont des requêtes affichant l’historique d’audit pour les enregistrements de contact supprimés par un utilisateur spécifique.
Les deux requêtes suivantes renvoient la même réponse.
La requête suivante filtre selon la propriété _userid_value de l’enregistrement d’audit où la valeur correspond à <user id>.
Demande :
GET [Organization URI]/api/data/v9.2/audits?$select=_objectid_value,objecttypecode,createdon,_userid_value&$orderby=createdon desc&$filter=operation eq 3 and objecttypecode eq 'contact' and _userid_value eq '<user id>'
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Prefer: odata.include-annotations="*"
La requête suivante accède à la collection d’enregistrements d’audit pour un utilisateur spécifique avec la propriété de navigation lk_audit_userid à valeur de collection de la table systemuser où la valeur systemuserid correspond à <user id>.
Demande :
GET [Organization URI]/api/data/v9.2/systemusers(<user id>)/lk_audit_userid?$select=_objectid_value,objecttypecode,createdon,_userid_value&$orderby=createdon desc&$filter=operation eq 3 and objecttypecode eq 'contact'
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Prefer: odata.include-annotations="*"
Réponse :
HTTP/1.1 200 OK
Preference-Applied: odata.include-annotations="*"
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#audits(_objectid_value,objecttypecode,createdon,_userid_value)",
"@Microsoft.Dynamics.CRM.totalrecordcount": -1,
"@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": false,
"value": [
{
"_objectid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_objectid_value": "0e76dc8a-41b5-ec11-983f-0022482bf046",
"objecttypecode@OData.Community.Display.V1.FormattedValue": "Contact",
"objecttypecode": "contact",
"createdon@OData.Community.Display.V1.FormattedValue": "5/12/2022 3:19 PM",
"createdon": "2022-05-12T22:19:12Z",
"_userid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "systemuser",
"_userid_value@OData.Community.Display.V1.FormattedValue": "FirstName LastName",
"_userid_value": "4026be43-6b69-e111-8f65-78e7d1620f5e"
},
< Other results truncated for brevity>
]
}
Récupérer l’historique des modifications d’audit
Pour récupérer les modifications de données auditées, utilisez l’un des messages suivants.
| API Web | Kit de développement logiciel (SDK) pour .NET | Description |
|---|---|---|
| Fonction RetrieveAuditDetails | Classe RetrieveAuditDetailsRequest | Récupère les détails complets de l’audit à partir d’un enregistrement d’audit. |
| Fonction RetrieveAttributeChangeHistory | Classe RetrieveAttributeChangeHistoryRequest | Extrayez l’historique de modifications pour une seule colonne d’un enregistrement audité. |
| Fonction RetrieveRecordChangeHistory | Classe RetrieveRecordChangeHistoryRequest | Récupère toutes les modifications de données auditées pour un enregistrement spécifique. |
Pour utiliser ces messages, vérifiez que vous disposez des autorisations prvReadAuditSummary et prvReadRecordAuditHistory.
Types AuditDetail
Ces messages fournissent des détails supplémentaires qui dépendent du type d’action. Les détails utilisent des types dérivés d’un type de base AuditDetail , comme indiqué dans le tableau suivant.
| API Web | SDK pour .NET | Description |
|---|---|---|
| type complexe AuditDetail | Classe AuditDetail | Affiche le type de base pour les classes dérivées. Fournit l’accès à l’enregistrement d’audit. |
| AttributeAuditDetail ComplexType | Classe AttributeAuditDetail | Fournit des détails lorsque des modifications de données se produisent pour un enregistrement. Permet d’accéder aux anciennes valeurs et aux nouvelles valeurs. Renvoyé par les types d’actions suivants : - Événements de ligne de tableau - Événements de modification des métadonnées - Événements de modification d’audit |
| RelationshipAuditDetail ComplexType | Classe RelationshipAuditDetail | Fournit des détails lorsque des enregistrements sont associés ou dissociés à l’aide d’une relation Plusieurs-à-plusieurs. Fournit le nom de la relation et une liste des enregistrements modifiés par l’opération. Renvoyés par les événements de relation plusieurs-à-plusieurs. |
| RolePrivilegeAuditDetail ComplexType | Classe RolePrivilegeAuditDetail | Fournit des détails lorsque les définitions des enregistrements de Rôle de sécurité (Rôle) changent. Fournit des informations sur les anciens et nouveaux privilèges de rôle associés au rôle. Retourné par les événements de changement de rôle de sécurité. |
| ShareAuditDetail ComplexType | Classe ShareAuditDetail | Fournit des détails lorsqu’un enregistrement est partagé ou non partagé ou lorsque le niveau d’accès à un enregistrement partagé change. Retourné par les événements de partage d’enregistrement. |
| ComplexType UserAccessAuditDetail | Classe UserAccessAuditDetail | Fournit des détails pour le suivi de l’audit des accès utilisateurs. Fournit des détails sur l’intervalle et le temps d’accès. Renvoyé par les événements d’accès utilisateur. |
Important
Les types d’API web répertoriés précédemment qui héritent de ComplexType AuditDetail ne renvoient pas la valeur de propriété de navigation
AuditRecordqu’ils devraient hériter deAuditDetail. Le SDK pour les classes .NET renvoie ces données.Les valeurs de colonne volumineuses incluses dans les propriétés
NewValueAttributeAuditDetailouOldValue, telles que Email.Description ou Annotation, sont limitées à 5 Ko ou environ 5 000 caractères. Reconnaître une valeur de colonne limitée par les points de suspension (...) à la fin du texte ; par exemple, « lorem ipsum, lorem ip... ». Étant donné que les données sont tronquées, vous ne pouvez pas l’utiliser pour restaurer les modifications apportées à ces valeurs de colonne.
message RetrieveAuditDetails
Utilisez ce message pour récupérer les détails d’audit d’un seul enregistrement d’audit.
RetrieveAuditDetails est une fonction liée à la table d’audit. Incluez l’en-tête de requête Prefer: odata.include-annotations="*" pour obtenir des valeurs mises en forme.
L’exemple suivant montre le ComplexType AttributeAuditDetail renvoyé lorsque l’parentaccountid est défini sur un enregistrement de type account.
Demande :
GET [Organization URI]/api/data/v9.2/audits(12869c65-d7d3-ec11-b656-281878f0eba9)/Microsoft.Dynamics.CRM.RetrieveAuditDetails
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Prefer: odata.include-annotations="*"
Réponse :
HTTP/1.1 200 OK
OData-Version: 4.0
Preference-Applied: odata.include-annotations="*"
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveAuditDetailsResponse",
"AuditDetail": {
"@odata.type": "#Microsoft.Dynamics.CRM.AttributeAuditDetail",
"InvalidNewValueAttributes": [],
"LocLabelLanguageCode": 0,
"DeletedAttributes": {
"Count": 0,
"Keys": [],
"Values": []
},
"OldValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account"
},
"NewValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"_parentaccountid_value@OData.Community.Display.V1.FormattedValue": "A. Datum Corporation",
"_parentaccountid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "parentaccountid",
"_parentaccountid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
"_parentaccountid_value": "d249d106-38b5-ec11-983f-002248296cd0"
}
}
}
En savoir plus sur :
message RetrieveAttributeChangeHistory
Utilisez ce message pour récupérer une liste des modifications pour une colonne de table spécifique.
Utilisez le paramètre PagingInfo pour contrôler le nombre d’enregistrements à renvoyer et avancer ou reculer dans les pages. Pour les requêtes ultérieures, définissez la propriété PagingInfo.PagingCookie à la valeur renvoyée par AuditDetailCollection.PagingCookie.
Les modifications apportées à ce message sont toujours du type AttributeAuditDetail.
Cet exemple renvoie un seul historique des modifications audité pour la colonne description d’un enregistrement d’une table account.
Demande :
GET [Organization URI]/api/data/v9.2/RetrieveAttributeChangeHistory(Target=@target,AttributeLogicalName=@attributeLogicalName,PagingInfo=@paginginfo)?
@target={ '@odata.id':'accounts(611e7713-68d7-4622-b552-85060af450bc)'}
&@attributeLogicalName='description'
&@paginginfo={
"PageNumber": 1,
"Count": 1,
"ReturnTotalRecordCount": true
}
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Réponse :
HTTP/1.1 200 OK
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveAttributeChangeHistoryResponse",
"AuditDetailCollection": {
"MoreRecords": true,
"PagingCookie": "<cookie page=\"1\"><cookieExtensions ContinuationToken=\"{"pageNumber":2,"continuationToken":"[{\\"compositeToken\\":{\\"token\\":null,\\"range\\":{\\"min\\":\\"3A800000000000000000000000000000\\",\\"max\\":\\"3B000000000000000000000000000000\\"}},\\"orderByItems\\":[{\\"item\\":\\"2022-05-13T22:06:46.6175613Z\\"}],\\"rid\\":\\"CVoNAJIidnNsmz0AAADwAw==\\",\\"skipCount\\":0,\\"filter\\":null}]"}\" /></cookie>",
,
"TotalRecordCount": 3,
"AuditDetails": [
{
"@odata.type": "#Microsoft.Dynamics.CRM.AttributeAuditDetail",
"InvalidNewValueAttributes": [],
"LocLabelLanguageCode": 0,
"DeletedAttributes": {
"Count": 0,
"Keys": [],
"Values": []
},
"OldValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"description": "Old description value"
},
"NewValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"description": "New description value"
}
}
]
}
}
En savoir plus sur :
Message « RetrieveRecordChangeHistory »
Le message RetrieveRecordChangeHistory affiche l’historique des modifications de données pour l’enregistrement indiqué par le paramètre Target.
Utilisez le paramètre PagingInfo pour contrôler le nombre d’enregistrements à renvoyer et avancer ou reculer dans les pages. Pour les requêtes ultérieures, définissez la propriété PagingInfo.PagingCookie à la valeur renvoyée par le AuditDetailCollection.PagingCookie.
Les résultats de ce message s’affichent généralement en tant que données affichées dans les applications basées sur des AttributeAuditDetail modèles lorsque vous sélectionnez Associé>. Il affiche les anciennes valeurs et les nouvelles valeurs des enregistrements, mais il renvoie également les types RelationshipAuditDetail et ShareAuditDetail.
Vous pouvez également utiliser ce message avec les role et systemuser tables pour renvoyer des types UserAccessAuditDetail et RolePrivilegeAuditDetail.
L’exemple suivant renvoie uniquement les deux premières des quatre modifications d’un enregistrement de compte.
Demande :
GET [Organization URI]/api/data/v9.2/RetrieveRecordChangeHistory(Target=@target,PagingInfo=@paginginfo)?
@target={ '@odata.id':'accounts(611e7713-68d7-4622-b552-85060af450bc)'}
&@paginginfo={
"PageNumber": 1,
"Count": 2,
"ReturnTotalRecordCount": true
}
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Réponse :
HTTP/1.1 200 OK
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.RetrieveRecordChangeHistoryResponse",
"AuditDetailCollection": {
"MoreRecords": true,
"PagingCookie": "<cookie page=\"1\"><cookieExtensions ContinuationToken=\"{"pageNumber":2,"continuationToken":"[{\\"compositeToken\\":{\\"token\\":null,\\"range\\":{\\"min\\":\\"38000000000000000000000000000000\\",\\"max\\":\\"38800000000000000000000000000000\\"}},\\"orderByItems\\":[{\\"item\\":\\"2022-05-13T22:06:27.8029732Z\\"}],\\"rid\\":\\"CVoNAJIidnPOnT0AAAAICA==\\",\\"skipCount\\":0,\\"filter\\":null}]"}\" /></cookie>",
"TotalRecordCount": 4,
"AuditDetails": [
{
"@odata.type": "#Microsoft.Dynamics.CRM.AttributeAuditDetail",
"InvalidNewValueAttributes": [],
"LocLabelLanguageCode": 0,
"DeletedAttributes": {
"Count": 0,
"Keys": [],
"Values": []
},
"OldValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"description": "Old description value"
},
"NewValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"description": "New description value"
}
},
{
"@odata.type": "#Microsoft.Dynamics.CRM.AttributeAuditDetail",
"InvalidNewValueAttributes": [],
"LocLabelLanguageCode": 0,
"DeletedAttributes": {
"Count": 0,
"Keys": [],
"Values": []
},
"OldValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"_ownerid_value@OData.Community.Display.V1.FormattedValue": "FirstName LastName",
"_ownerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "ownerid",
"_ownerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "systemuser",
"_ownerid_value": "4026be43-6b69-e111-8f65-78e7d1620f5e"
},
"NewValue": {
"@odata.type": "#Microsoft.Dynamics.CRM.account",
"_ownerid_value@OData.Community.Display.V1.FormattedValue": "TeamName",
"_ownerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "ownerid",
"_ownerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "team",
"_ownerid_value": "39e0dbe4-131b-e111-ba7e-78e7d1620f5e"
}
}
]
}
}
Note
Les valeurs ComplexType AuditDetail renvoyées actuellement n’incluent pas la propriété AuditRecord, donc il n’y a pas de données concernant qui a effectué la modification et à quel moment.
En savoir plus sur :
Voir aussi
Présentation de l’audit
Configurer la journalisation d’audit
Supprimer les données d’audit
Gérer l’audit Dataverse
Exemple : Auditer les modifications des données de table
Exemple : Audit de l’accès des utilisateurs