Freigeben über


Abrufen des Verlaufs von überwachten Datenänderungen

Wenn die Überwachung aktiviert ist und Daten in überwachten Tabellen und Spalten geändert werden, können Sie den Änderungsverlauf dieser Tabellen und Spalten abrufen.

Überwachungsdaten sind nicht über den Dataverse TDS (SQL)-Endpunkt verfügbar.

Der Prüfungsverlauf ist für Tabellen in der mobilen App nicht verfügbar.

Überwachungstabelle

Überwachungsereignisse werden in der Überwachungs- (Audit)-Tabelle gespeichert. In der Web-API ist audit EntityType die Ressource für diese Daten. Die Überwachungstabelle ist schreibgeschützt.

Die Überwachungstabelle liefert die Daten für die Anzeige der Überwachungszusammenfassung, die im Power Platform Admin Center angezeigt wird.

Stellen Sie sicher, dass der aufrufende Benutzer die prvReadAuditSummary-Berechtigung hat, um Daten aus der Tabelle abzurufen.

Die folgende Tabelle fasst wichtige Spalten in der Audit-Tabelle zusammen.

Schemaname
LogicalName
Anzeigename
Type Beschreibung
Action
action
Veranstaltung
Auswahl Repräsentiert das Ereignis, das die Änderung verursacht hat. Weitere Informationen zu Aktionen.
AttributeMask
attributemask
Geändertes Feld
Memo Wenn die Änderung eine Änderung an Datensatzdaten darstellt, enthält eine durch Kommas getrennte Liste von Zahlen, die AttributeMetadata.ColumnNumber entsprechen.

Hinweis: Verwenden Sie diese Daten nicht. Verwenden Sie stattdessen die Nachrichten, um den Änderungsverlauf abzurufen.
AuditId
auditid
Datensatz-ID
Eindeutiger Bezeichner Bezeichnet den Primärschlüssel für die Überwachungstabelle.
CallingUserId
callinguserid
Aufrufender Benutzer
Nachschlagefeld Bezeichnet den aufrufenden Benutzer, wenn der Identitätswechsel für den Vorgang verwendet wird, andernfalls null.
CreatedOn
createdon
Änderungsdatum
DateTime Bezeichnet, wann der Überwachungsdatensatz erstellt wurde, d. h. wann die Benutzeroperation stattfand.
ObjectId
objectid
Datensatz
Nachschlagefeld Bezeichnet den Datensatz eindeutig, der überwacht wurde.
ObjectTypeCode
objecttypecode
Entität
EntityName Zeigt den logischen Namen der Tabelle an, auf die in der Spalte objectid verwiesen wird.
Operation
operation
Vorgang
Auswahl Bezeichnet den Vorgang, der den Überwachungsdatensatz erstellt hat. Einer von vier Werten:
1 = Erstellen
2 = Aktualisieren
3 = Löschen
4 = Zugriff
UserId
userid
Geändert von
Nachschlagefeld Zeigt die ID des Benutzers an, der die Datenänderung vorgenommen hat.

Überwachungsaktionen

Verwenden Sie Aktionsauswahl/Optionen, um nach bestimmten Ereignissen zu filtern. Die folgenden Tabellen kategorisieren die Ereignisse.

Tabellenzeilenereignisse

Diese Ereignisse erfassen Änderungen an einem Datensatz.

Wert Beschriftung Nachricht Beschreibung
1 Erzeugen Create Ein Datensatz wird erstellt.
2 Aktualisieren Update Ein Datensatz wird aktualisiert.
3 Löschen Delete Ein Datensatz wird gelöscht.
12 Zusammenführen Merge Ein Datensatz wird mit einem anderen Datensatz zusammengeführt.
13 Zuweisen Assign Der ownerid Spaltenwert für einen benutzereigenen Tabellendatensatz wird geändert.
41 Zustand festlegen SetState Der statecode Spaltenwert für einen Datensatz wird geändert.

Ereignisse zum Freigeben von Datensätzen

Diese Ereignisse erfassen Änderungen am Datensatzzugriff, wenn ein Datensatz freigegeben wird.

Wert Beschriftung Nachricht Beschreibung
14 Teilen GrantAccess Einem Benutzer werden Berechtigungen für einen Datensatz gewährt.
48 Freigabe ändern ModifyAccess Die Berechtigungen, die einem Benutzer gewährt werden, werden geändert.
49 Freigabe aufheben RevokeAccess Der Zugriff eines Benutzers auf einen Datensatz wird entfernt.

m:n-Beziehungsereignisse

Diese Ereignisse erfassen Änderungen für viele-zu-viele-Beziehungen.

Wert Label Nachricht Beschreibung
33 Entitäten zuordnen Associate Ein oder mehrere Datensätze sind einem anderen zugeordnet.
34 Zuordnung von Entitäten aufheben Disassociate Die Zuordnung eines oder mehrerer Datensätze wird aufgehoben.
53 Team Rolle zuweisen Associate Einem Team wird eine Sicherheitsrolle zugewiesen.
54 Rolle von Team entfernen Disassociate Einem Team wird eine Sicherheitsrolle aberkannt.
55 Benutzer Rolle zuweisen Associate Eine Sicherheitsrolle wird einem Benutzer zugewiesen.
56 Rolle von Benutzer entfernen Disassociate Einem Benutzer wird eine Sicherheitsrolle aberkannt.

Benutzerzugriffsereignisse

Diese Optionen erfassen den Verlauf des Benutzerzugriffs, wenn die Überwachung des Benutzerzugriffs aktiviert ist. Der Überwachungsdatensatz für diese Ereignisse enthält einen operation-Spaltenwert von 4.

Wert Label Beschreibung
64 Benutzerzugriff über das Web Benutzer greift auf Dataverse mit einer modellgesteuerten App zu.
65 Benutzerzugriff über die Webdienste Benutzer greift auf Dataverse mit Webdiensten mit einem anderen Client als einer modellgesteuerten App zu.
112 Überwachung des Benutzerzugriffs gestartet Überwachung des Benutzerzugriffs begann.
113 Überwachung des Benutzerzugriffs beendet Überwachung von Benutzerzugriffen ended.

Das Beispiel: Benutzerzugriff überwachen zeigt, wie Sie diese Aktionsoptionen verwenden, um den Benutzerzugriff zu überwachen.

Metadatenänderungsereignisse

Diese Ereignisse erfassen Änderungen an Tabellen- und Spaltendefinitionen sowie Änderungen an der Organisationstabelle.

Wert Beschriftung Beschreibung
100 Entität löschen Benutzer löscht eine Tabelle.
101 Attribut löschen Benutzer löschte eine Spalte.
102 Änderung auf Entitätsebene überwachen Der Benutzer hat eine Tabellendefinition geändert, um die Überwachung zu aktivieren oder zu deaktivieren.
103 Änderung auf Attributebene überwachen Der Benutzer hat eine Spaltendefinition geändert, um die Überwachung zu aktivieren oder zu deaktivieren.
104 Änderung auf Organisationsebene überwachen Vom Benutzer geänderte Organisationseinstellungen.

Überwachungsänderungsereignisse

Diese Ereignisse erfassen Änderungen an Überwachungseinstellungen.

Wert Label Beschreibung
105 Entitätsüberwachung gestartet Überwachung wurde für eine Tabelle aktiviert.
106 Attributüberwachung gestartet Überwachung wurde für eine Spalte aktiviert.
107 Überwachung aktiviert Überwachung wurde für die Organisation aktiviert.
108 Entitätsüberwachung angehalten Überwachung wurde für eine Tabelle deaktiviert.
109 Attributüberwachung angehalten Überwachung wurde für ein Attribut deaktiviert.
110 Überwachung deaktiviert Überwachung wurde für eine Spalte deaktiviert.
111 Löschung des Überwachungsprotokolls Ein Überwachungsprotokoll wurde gelöscht.

Ereignisse für Änderungen an Sicherheitsrollen

Diese Ereignisse erfassen Änderungen an Sicherheitsrollen.

Wert Label Nachricht Beschreibung
57 Rolle Berechtigungen hinzufügen AddPrivilegesRole Berechtigungen wurden zu einer Rolle hinzugefügt.
58 Berechtigungen von Rolle entfernen RemovePrivilegeRole Berechtigungen wurden aus einer Rolle entfernt.
59 Berechtigungen in Rolle ersetzen ReplacePrivilegesRole Berechtigungen für eine Rolle wurden ersetzt.

Andere Aktionen

Die verbleibenden Aktionsoptionen beziehen sich im Allgemeinen auf überprüfbare Vorgänge, die für bestimmte Lösungen gelten, wie z. B. Dynamics 365 Sales, Customer Service und Marketing.

Die Bezeichnungen für diese Aktionen sollten mit einem SdkMessage.Name Wert ausgerichtet sein, der die Aktion darstellt. Die spezifische Operation kann eine Kombination aus dem Aktionsnamen und einer Tabelle sein. Zum Beispiel sollte eine Option mit einem Wert von 10 und die Bezeichnung Schließen den CloseIncident oder CloseQuote Mitteilungen entsprechen.

Überwachungstabellenbeziehungen

Die Überwachungstabelle hat nur zwei viele-zu-eins-Beziehungen mit der systemuser-Tabelle:

Relationship Überwachungstabellensuche Beschreibung
lk_audit_userid userid Verbindet den Benutzer mit allen Audit-Datensätzen, die aufgrund der von ihm vorgenommenen Änderungen erstellt wurden.
lk_audit_callinguserid callinguserid Verbindet den Benutzer mit einem der Überwachungsdatensätze, die er erstellt hat, während er sich als ein anderer Benutzer ausgibt.

Sie können diese Beziehungen verwenden, um Audit-Datensätze zu filtern, die für einen bestimmten Benutzer erstellt wurden.

Die Audit-Entität unterstützt nur eine Link-Entität in einer Abfrage. Da nur zwei Beziehungen mit der systemuser-Tabelle existieren, können Sie Daten entweder aus der Spalte callinguserid oder der Spalte userid einbeziehen, aber nicht beide gleichzeitig.

Sie können keine Abfragen mit QueryExpression oder FetchXml erstellen, die Überwachungsdaten mit anderen Tabellen als den beiden formalen Beziehungen verknüpfen, die mit der systemuser Tabelle existieren.

Überwachung EntityType-Definition

Mit der Web-API verwenden Sie die audit EntityType-Ressource zum Lesen von Daten aus der Überwachungstabelle. Die folgenden Daten sind die audit EntityType-Definition aus dem Web-API-CSDL $metadata service-Dokument ohne Anmerkungen.

<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>

Anmerkung

Die ChangeData-Spalte ist nicht in der Web-API audit EntityType enthalten. Verwenden Sie diese Daten nicht. Verwenden Sie stattdessen die Nachrichten, um den Überwachungsänderungsverlauf abzurufen.

Beispiel: Von einem Benutzer gelöschte Kontaktdatensätze suchen

Die folgenden Beispiele sind Abfragen, die den Überwachungsverlauf für Kontaktdatensätze zeigen, die von einem bestimmten Benutzer gelöscht wurden.

Die beiden folgenden Abfragen geben dieselbe Antwort zurück.

Die folgende Abfrage filtert auf die _userid_value-Eigenschaft des Überwachungsdatensatzes, wo der Wert mit <user id> übereinstimmt.

Anforderung:

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="*" 

Die folgende Abfrage greift auf die Sammlung von Überwachungsdatensätzen für einen bestimmten Benutzer mit der sammlungsbewerteten Navigationseigenschaft lk_audit_userid aus der systemuser-Tabelle zu, wo der systemuserid-Wert mit <user id> übereinstimmt.

Anforderung:

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="*" 

Antwort:

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>
  ]
}

Abrufen des Überwachungsänderungsverlaufs

Sie können jede der drei Nachrichten verwenden, um überwachte Datenänderungen abzurufen.

Internet-API SDK für .NET Beschreibung
RetrieveAuditDetails-Funktion RetrieveAuditDetailsRequest-Klasse Rufen Sie die vollständigen Überwachungsdetails aus einem Überwachungsdatensatz ab.
RetrieveAttributeChangeHistory-Funktion RetrieveAttributeChangeHistoryRequest-Klasse Rufen Sie den Änderungsverlauf für eine einzelne Spalte eines überwachten Datensatzes ab.
RetrieveRecordChangeHistory-Funktion RetrieveRecordChangeHistoryRequest-Klasse Rufen Sie alle geprüften Datenänderungen für einen bestimmten Datensatz ab.

Stellen Sie sicher, dass Sie die Rechte prvReadRecordAuditHistory und prvReadAuditSummary haben, um diese Nachrichten verwenden zu können.

AuditDetail-Typen

Diese Nachrichten bieten mehr Details, die vom Typ der Aktion abhängen. Die Details werden durch verschiedene Typen implementiert, die von einem Basis-AuditDetail-Typ abgeleitet werden, wie in der folgenden Tabelle gezeigt.

Internet-API SDK für .NET Beschreibung
AuditDetail ComplexType AuditDetail-Klasse Zeigt den Basistyp für die abgeleiteten Klassen an. Stellt Zugriff für den Überwachungsdatensatz zur Verfügung.
AttributeAuditDetail ComplexType AttributeAuditDetail-Klasse Stellt Details bereit, wenn Datenänderungen für einen Datensatz auftreten. Bietet Zugriff auf alte Werte und neue Werte.
Wird von den folgenden Arten von Aktionen zurückgegeben:
- Tabellenzeilenereignisse
- Metadatenänderungsereignisse
- Überwachungsänderungsereignisse
RelationshipAuditDetail ComplexType RelationshipAuditDetail-Klasse Stellt Details bereit, wenn Datensätze mithilfe einer m:n-Beziehung verknüpft oder getrennt werden. Stellt den Namen der Beziehung und eine Liste der Datensätze bereit, die der Vorgang geändert hat.
Zurückgegeben von m:n-Beziehungsereignissen.
RolePrivilegeAuditDetail ComplexType RolePrivilegeAuditDetail-Klasse Liefert Details, wenn die Definitionen von Sicherheitsrolle (Rolle) Datensätzen sich ändern. Stellt Informationen zu den alten und neuen Rollenberechtigungen bereit, die der Rolle zugeordnet sind.
Zurückgegeben von Sicherheitsrollenänderungsereignissen.
ShareAuditDetail ComplexType ShareAuditDetail-Klasse Stellt Details bereit, wenn ein Datensatz geteilt oder nicht geteilt wird oder wenn sich die Zugriffsebene auf einen geteilten Datensatz ändert.
Zurückgegeben von Ereignisse zum Teilen von Datensätzen.
UserAccessAuditDetail ComplexType UserAccessAuditDetail-Klasse Stellt Details bereit, um die Überwachung des Benutzerzugriffs zu verfolgen. Liefert Details zum Intervall und zur Zugriffszeit.
Zurückgegeben von Benutzerzugriffsereignissen.

Wichtig

  • Die zuvor aufgeführten Web-API-Typen, die von AuditDetail ComplexType erben, geben nicht den AuditRecord-Navigationseigenschaftswert zurück, den sie von AuditDetail erben sollten. Das SDK für .NET-Klassen gibt diese Daten zurück.

  • Große Spaltenwerte in den Eigenschaften AttributeAuditDetailOldValue oder NewValue wie Email.Description oder Annotation sind auf 5 KB oder ungefähr 5.000 Zeichen begrenzt. Ein begrenzter Spaltenwert ist an einem Auslassungszeichen (…) am Ende des Textes zu erkennen; zum Beispiel „lorem ipsum, lorem ip…“ Da die Daten abgeschnitten sind, können Sie sie nicht zum Wiederherstellen von Änderungen an diesen Spaltenwerten verwenden.

RetrieveAuditDetails-Nachricht

Verwenden Sie diese Nachricht, um die Audit-Details für einen einzelnen Audit-Datensatz abzurufen.

RetrieveAuditDetails ist eine Funktion, die an die Überwachungstabelle gebunden ist. Beziehen Sie den Prefer: odata.include-annotations="*"-Anforderungsheader ein, um formatierte Werte zu erhalten.

Das folgende Beispiel zeigt den AttributeAuditDetail ComplexType, der zurückgegeben wird, wenn parentaccountid für einen account-Datensatz festgelegt ist.

Anforderung:

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="*" 

Antwort:

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"
  }
 }
}

Weitere Informationen zu:

RetrieveAttributeChangeHistory-Nachricht

Verwenden Sie diese Nachricht, um eine Liste der Änderungen für eine bestimmte Tabellenspalte abzurufen.

Verwenden Sie den PagingInfo Parameter, um die Anzahl der zurückzugebenden Datensätze zu steuern und sich vorwärts oder rückwärts durch die Seiten zu bewegen. Legen Sie für nachfolgende Anfragen die PagingInfo.PagingCookie -Eigenschaft auf den von der AuditDetailCollection.PagingCookie zurückgegebenen Wert.

Änderungen für diese Nachricht sind immer AttributeAuditDetail-Typen.

Dieses Beispiel gibt einen einzelnen geprüften Änderungsverlauf für die description Spalte eines account Tabellendatensatzes zurück.

Anforderung:

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

Antwort:

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=\"{&quot;pageNumber&quot;:2,&quot;continuationToken&quot;:&quot;[{\\&quot;compositeToken\\&quot;:{\\&quot;token\\&quot;:null,\\&quot;range\\&quot;:{\\&quot;min\\&quot;:\\&quot;3A800000000000000000000000000000\\&quot;,\\&quot;max\\&quot;:\\&quot;3B000000000000000000000000000000\\&quot;}},\\&quot;orderByItems\\&quot;:[{\\&quot;item\\&quot;:\\&quot;2022-05-13T22:06:46.6175613Z\\&quot;}],\\&quot;rid\\&quot;:\\&quot;CVoNAJIidnNsmz0AAADwAw==\\&quot;,\\&quot;skipCount\\&quot;:0,\\&quot;filter\\&quot;:null}]&quot;}\" /></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"
    }
   }
  ]
 }
}

Weitere Informationen zu:

RetrieveRecordChangeHistory-Nachricht

Die RetrieveRecordChangeHistory-Nachricht zeigt den Verlauf der Datenänderungen für den Datensatz an, der durch den Target-Parameter angegeben wird.

Verwenden Sie den PagingInfo Parameter, um die Anzahl der zurückzugebenden Datensätze zu steuern und sich vorwärts oder rückwärts durch die Seiten zu bewegen. Legen Sie für nachfolgende Anfragen die PagingInfo.PagingCookie -Eigenschaft auf den von der AuditDetailCollection.PagingCookie zurückgegebenen Wert.

Die Ergebnisse dieser Nachricht werden allgemein als die AttributeAuditDetail Daten angesehen, die in modellgesteuerten Apps angezeigt werden, wenn Sie Verwandt>Überwachungsverlauf auswählen. Es zeigt die alten Werte und die neuen Werte der Datensätze an, gibt aber auch RelationshipAuditDetail- und ShareAuditDetail-Typen zurück.

Diese Meldung kann auch mit den systemuser- und role-Tabellen verwendet werden, um RolePrivilegeAuditDetail- und UserAccessAuditDetail-Typen zurückzugeben.

Das folgende Beispiel gibt nur die ersten zwei von vier Änderungen an einem Firmendatensatz zurück.

Anforderung:

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

Antwort:

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=\"{&quot;pageNumber&quot;:2,&quot;continuationToken&quot;:&quot;[{\\&quot;compositeToken\\&quot;:{\\&quot;token\\&quot;:null,\\&quot;range\\&quot;:{\\&quot;min\\&quot;:\\&quot;38000000000000000000000000000000\\&quot;,\\&quot;max\\&quot;:\\&quot;38800000000000000000000000000000\\&quot;}},\\&quot;orderByItems\\&quot;:[{\\&quot;item\\&quot;:\\&quot;2022-05-13T22:06:27.8029732Z\\&quot;}],\\&quot;rid\\&quot;:\\&quot;CVoNAJIidnPOnT0AAAAICA==\\&quot;,\\&quot;skipCount\\&quot;:0,\\&quot;filter\\&quot;:null}]&quot;}\" /></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"
    }
   }
  ]
 }
}

Anmerkung

Die zurückgegebenen AuditDetail ComplexType-Werte enthalten nicht die AuditRecord-Eigenschaft, sodass keine Daten darüber verfügbar sind, wer die Änderung vorgenommen hat und wann sie vorgenommen wurde.

Weitere Informationen zu:

Siehe auch

Überwachungsübersicht
Überwachung konfigurieren
Überwachungsdaten löschen
Dataverse Überwachungen verwalten
Beispiel: Änderungen von Tabellendaten überwachen
Beispiel: Überwachung von Benutzerzugriffen