Compartir a través de


Recuperar el historial de cambios de datos auditados

Cuando se habilita la auditoría y los datos en las tablas y columnas auditadas cambian, puede recuperar el historial de cambios de esas tablas y columnas.

Los datos de auditoría no están disponibles usando el punto de conexión Dataverse TDS (SQL).

El historial de auditoría no está disponible para las tablas en la aplicación móvil.

Tabla de auditoría

Los eventos de auditoría se almacenan en la Tabla de auditoría (Audit). En la API web, el EntityType de auditoría es el recurso para estos datos. La tabla de auditoría es de solo lectura.

La tabla de auditoría proporciona los datos para el Ver resumen de auditoría mostrado en el centro de administración de Power Platform.

Asegúrese de que el usuario que llama tiene el privilegio prvReadAuditSummary para recuperar datos de la tabla.

La siguiente tabla resume las columnas importantes en la tabla de auditoría.

SchemaName
LogicalName
Nombre para mostrar
Type Descripción
Action
action
Evento
Opción Representa el evento que provocó el cambio. Más información sobre acciones.
AttributeMask
attributemask
Campo cambiado
Memo Cuando el cambio representa un cambio de datos en un registro, contiene una lista de números separados por comas que corresponden al AttributeMetadata.ColumnNumber para las columnas que se han cambiado.

Nota: No use estos datos. En su lugar, utilice los mensajes para recuperar el historial de cambios.
AuditId
auditid
Identificador de registro
Identificador único Identifica la clave principal para la tabla de auditoría.
CallingUserId
callinguserid
Usuario que llama
Lookup Identifica el usuario que llama cuando se utiliza la suplantación para la operación; si no, será nula.
CreatedOn
createdon
Fecha cambiada
Fecha y hora Identifica cuándo se creó el registro de auditoría, que es cuando tuvo lugar la operación del usuario.
ObjectId
objectid
Grabar
Lookup Identifica de forma única el registro que se auditó.
ObjectTypeCode
objecttypecode
Entity
EntityName Muestra el nombre lógico de la tabla referida por la columna objectid.
Operation
operation
Operación
Opción Identifica la operación que creó el registro de auditoría; uno de cuatro valores:
1 = Crear
2 = Actualizar
3 = Eliminar
4 = Acceso
UserId
userid
Cambiado por
Lookup Muestra el id. del usuario que cambió los datos.

Acciones de auditoría

Use Opciones/elecciones de acciones para filtrar por eventos concretos. Las siguientes tablas clasifican estos eventos.

Eventos de fila de tabla

Estos eventos capturan cambios en un registro.

Valor Etiqueta Mensaje Descripción
1 Crear Create Se crea un registro.
2 Actualizar Update Se actualiza un registro.
3 Eliminar Delete Se elimina un registro.
12 Combinar Merge Un registro se combina con otro.
13 Assignar Assign Se cambia el valor de columna ownerid para un registro de tabla propiedad del usuario.
41 Establecer estado SetState Se cambia el valor de columna statecode para un registro.

Eventos de compartir registro

Estos eventos capturan cambios en el acceso a los registros cuando se comparte un registro.

Valor Etiqueta Mensaje Descripción
14 Compartir GrantAccess A un usuario se le otorgan privilegios sobre un registro.
48 Modificar Compartir ModifyAccess Los privilegios otorgados a un usuario se cambian.
49 Dejar de compartir RevokeAccess A un usuario se le retira el acceso a un registro.

Eventos de relación varios a varios

Estos eventos capturan cambios en las relaciones de varios a varios.

valor Etiqueta Publicación Descripción
33 Asociar entidades Associate Uno o más registros están asociados con otro.
34 Anular asociación de entidades Disassociate Uno o más registros dejan de estar asociados entre ellos.
53 Asignar rol a equipo Associate Un rol de seguridad se asigna a un equipo.
54 Quitar rol de equipo Disassociate Un rol de seguridad es eliminado de un equipo.
55 Asignar rol a usuario Associate Asignar un rol de seguridad a un usuario.
56 Quitar rol de usuario Disassociate Un rol de seguridad es eliminado de un usuario.

Eventos de acceso de los usuarios

Estas opciones capturan el historial de acceso de usuarios cuando la auditoría de acceso de usuarios está habilitada. El registro de auditoría de estos eventos tiene un valor en la columna operation de 4.

valor Etiqueta Descripción
64 Acceso de usuario mediante web El usuario está accediendo a Dataverse usando una aplicación basada en modelo.
65 Acceso de usuario mediante servicios web El usuario está accediendo Dataverse usando servicios web usando un cliente que no es una aplicación basada en modelos.
112 Auditoría de acceso de usuario iniciada La auditoría de acceso de usuario ha comenzado.
113 Auditoría de acceso de usuario detenida Auditoría de acceso de usuario finalizada.

La Muestra: Auditar el acceso de los usuarios muestra cómo utilizar estas opciones de acción para auditar el acceso de los usuarios.

Eventos de cambio de metadatos

Estos eventos capturan cambios en las definiciones de tablas y columnas, así como cambios en la tabla de organización.

Valor Etiqueta Descripción
100 Eliminar entidad El usuario eliminó una tabla.
101 Eliminar atributo El usuario eliminó una columna.
102 Cambio en la auditoría con relación a la entidad El usuario cambió una definición de tabla para habilitar o deshabilitar la auditoría.
103 Cambio en la auditoría con relación al atributo El usuario cambió una definición de columna para habilitar o deshabilitar la auditoría.
104 Cambio en la auditoría con relación a la organización Un usuario ha cambiado la configuración de la organización.

Eventos de cambio de auditoría

Estos eventos capturan cambios en la configuración de auditoría.

valor Etiqueta Descripción
105 Auditoría de entidad iniciada Se ha habilitado la auditoría para una tabla.
106 Auditoría de atributo iniciada Se ha habilitado una auditoría para una columna.
107 Auditoría habilitada La auditoría se ha habilitado para la organización.
108 Auditoría de entidad detenida Se ha deshabilitado una auditoría para una tabla.
109 Auditoría de atributo detenida Se ha deshabilitado una auditoría para un atributo.
110 Auditoría deshabilitada Se ha deshabilitado una auditoría para una columna.
111 Eliminación de registro de auditoría Se eliminó un registro de auditoría.

Eventos de cambios en los roles de seguridad

Estos eventos capturan cambios en los roles de seguridad.

valor Etiqueta Publicación Descripción
57 Agregar privilegios al rol AddPrivilegesRole Privilegios agregados a un rol.
58 Quitar privilegios del rol RemovePrivilegeRole Privilegios quitados de un rol.
59 Reemplazar privilegios del rol ReplacePrivilegesRole Se reemplazan los privilegios de un rol.

Otras acciones

Las opciones de acción restantes generalmente se referirán a operaciones auditables que se aplican a soluciones específicas, como Dynamics 365 Sales, Customer Service y Marketing.

Las etiquetas para estas acciones deben alinearse con un valor SdkMessage.Name que representa la acción. La operación específica puede ser una combinación del nombre de la acción y una tabla. Por ejemplo, una opción con un valor 10 y la etiqueta Cerrar debe corresponder a los mensajes CloseIncident o CloseQuote.

Relaciones de tabla auditar

La tabla de auditoría tiene solo dos relaciones varios a uno con la tabla systemuser:

Relationship Búsqueda de tabla auditar Descripción
lk_audit_userid userid Relaciona al usuario con todos los registros de auditoría creados debido a los cambios que realizó.
lk_audit_callinguserid callinguserid Relaciona al usuario con cualquiera de los registros de auditoría que creó mientras se hacía pasar por otro usuario.

Puede usar estos Relaciones para filtrar registros de datos de auditoría creados para un usuario específico.

La entidad de auditoría solo admite una entidad de enlace en una consulta. Dado que solo existen dos Relaciones con la tabla systemuser, que puede incluir datos de las columnas callinguserid o userid, pero no ambas al mismo tiempo.

No puede crear consultas con QueryExpression o FetchXml que combinen datos de auditoría con tablas que no sean las dos Relaciones formales que existen con la tabla systemuser.

Definición de auditoría EntityType

Con la Web API, utilice el recurso EntityType de auditoría para leer datos de una tabla de auditoría. Los siguientes datos son la definición del documento EntityType de auditoría de la API web del documento $metadata service de CSDL sin anotaciones.

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

Nota

La Columna ChangeData no está incluida en la API web EntityType de auditoría. No use estos datos. En su lugar, utilice los mensajes para recuperar el historial de cambios de la auditoría.

Ejemplo: Buscar registros de contactos eliminados por un usuario

Los siguientes ejemplos son consultas que muestran el historial de auditoría de los registros de contacto eliminados por un usuario específico.

Las dos consultas siguientes devuelven la misma respuesta.

La siguiente consulta filtra en la propiedad _userid_value del registro de auditoría donde el valor coincide <user id>.

Solicitud:

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 siguiente consulta accede a la colección de registros de auditoría para un usuario específico con propiedad lk_audit_userid de navegación con valor de colección de la tabla systemuser donde coincide el valor systemuserid coincide con <user id>

Solicitud:

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

Respuesta:

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

Recuperan el historial de cambios de auditoría

Puede usar cualquiera de los tres mensajes para recuperar los cambios de datos que se auditan.

API Web SDK para .NET Descripción
Función RetrieveAuditDetails Clase RetrieveAuditDetailsRequest Recupere los detalles completos de la auditoría de un registro de auditoría.
Función RetrieveAttributeChangeHistory Clase RetrieveAttributeChangeHistoryRequest Recupere el historial de cambios de una sola columna de un registro auditado.
Función RetrieveRecordChangeHistory Clase RetrieveRecordChangeHistoryRequest Recupere todos los cambios de datos auditados para un registro específico.

Para utilizar estos mensajes asegúrese de tener los privilegios prvReadRecordAuditHistory y prvReadAuditSummary.

Tipos de AuditDetail

Estos mensajes proporcionan detalles adicionales que dependen del tipo de acción. Los detalles se implementan usando tipos que se derivan de un tipo de base AuditDetail como se muestra en la siguiente tabla.

API Web SDK para .NET Descripción
AuditDetail ComplexType Clase AuditDetail Muestra el tipo base para las clases derivadas. Proporciona acceso al registro de auditoría.
AttributeAuditDetail ComplexType Clase AttributeAuditDetail Proporciona detalles cuando se producen cambios en los datos de un registro. Proporciona acceso a valores antiguos y valores nuevos.
Devuelto por los siguientes tipos de acciones:
- Eventos de fila de tabla
- Eventos de cambio de metadatos
- Eventos de cambio de auditoría
RelationshipAuditDetail ComplexType Clase RelationshipAuditDetail Proporciona detalles cuando los registros se asocian o desasocian mediante una relación de varios a varios. Proporciona el nombre de la relación y una lista de los registros que cambió la operación.
Devuelto por Eventos de relación varios a varios.
RolePrivilegeAuditDetail ComplexType Clase RolePrivilegeAuditDetail Proporciona detalles cuando las definiciones de registros Rol de seguridad (Rol) cambian. Proporciona información sobre los privilegios de función nuevos y antiguos asociados a la función.
Devuelto por Eventos de cambio de rol de seguridad.
ShareAuditDetail ComplexType Clase ShareAuditDetail Proporciona detalles cuando un registro se comparte, deja de compartirse o cuando cambia el nivel de acceso a un registro compartido.
Devuelto por Eventos de uso compartido de registros.
UserAccessAuditDetail ComplexType Clase UserAccessAuditDetail Proporciona detalles para realizar un seguimiento de la auditoría de acceso de los usuarios. Proporciona detalles sobre el intervalo y el tiempo de acceso.
Devuelto por Eventos de acceso de usuario.

Importante

  • Los tipos de API web enumerados anteriormente que heredan de AuditDetail ComplexType no devuelven el valor de propiedad de navegación AuditRecord que deberían heredar de AuditDetail. El SDK para clases .NET devuelve estos datos.

  • Los valores de columnas grandes, incluidos en las propiedades AttributeAuditDetailOldValue o NewValue como Email.Description o Annotation están limitados a 5 KB o alrededor de 5000 caracteres. Un valor de columna tapada se puede reconocer por puntos suspensivos (...) al final del texto; por ejemplo, "lorem ipsum, lorem ip...". Como los datos están truncados, no puede usarlos para restaurar los cambios en estos valores de columna.

Mensaje RetrieveAuditDetails

Utilice este mensaje para recuperar los detalles de auditoría de un único registro de auditoría.

RetrieveAuditDetails es una función vinculada a la tabla de auditoría. Incluye el encabezado de solicitud Prefer: odata.include-annotations="*" para obtener valores formateados.

El siguiente ejemplo muestra AttributeAuditDetail ComplexType devuelto cuando parentaccountid se establece en un registro de account.

Solicitud:

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

Respuesta:

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

Más información sobre:

Mensaje RetrieveAttributeChangeHistory

Utilice este mensaje para recuperar una lista de cambios para una columna de tabla específica.

Use el parámetro PagingInfo para controlar el número de registros a devolver y avanzar o retroceder a través de las páginas. Para solicitudes posteriores, establezca la propiedad PagingInfo.PagingCookie al valor devuelto por AuditDetailCollection.PagingCookie.

Los cambios para este mensaje siempre serán tipos AttributeAuditDetail.

Este ejemplo devuelve un único historial de cambios auditado para la columna description de un registro de tabla account.

Solicitud:

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

Respuesta:

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

Más información sobre:

Mensaje RetrieveRecordChangeHistory

El mensaje RetrieveRecordChangeHistory muestra el historial de cambios de datos para un registro indicado por el parámetro Target.

Use el parámetro PagingInfo para controlar el número de registros a devolver y avanzar o retroceder a través de las páginas. Para solicitudes posteriores, establezca la propiedad PagingInfo.PagingCookie al valor devuelto por AuditDetailCollection.PagingCookie.

Los resultados de este mensaje se ven comúnmente como datos AttributeAuditDetail que se muestran en aplicaciones basadas en modelos cuando selecciona Relacionado>Historial de auditoría. Muestra los valores antiguos y los valores nuevos de los registros, pero también devolverá los tipos RelationshipAuditDetail y ShareAuditDetail

Este mensaje también se puede utilizar con las tablas systemuser y role para devolver tipos RolePrivilegeAuditDetail y UserAccessAuditDetail.

El siguiente ejemplo devuelve solo los dos primeros de cuatro cambios para un registro de cuenta.

Solicitud:

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

Respuesta:

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

Nota

Los valores AuditDetail ComplexType devueltos no incluyen la propiedad AuditRecord por lo que no hay datos sobre quién hizo el cambio y cuándo se hizo.

Más información sobre:

Consulte también

Información general de auditoría
Configurar auditoría
Eliminar datos de auditoría
Administrar auditorías de Dataverse
Ejemplo: Auditar cambios de datos de tablas
Ejemplo: acceso de usuario de auditoría