Dynamics CRM 2013:审核日志有"空白"记录

时间:2017-08-01 14:02:24

标签: dynamics-crm-2011 dynamics-crm-2013

在自定义实体上,我启用了一个用于审核的单个字段,似乎工作正常。但是,有许多,更多的审计记录更改了日期,更改了(用户和服务帐户)和更新事件,但空白更改字段,旧值和新值列。打开其中一个"空白"记录显示标题中给出的消息。 example from a record

当您打开其中一个时,您看到的不是表格,而是声明"此操作更改的字段未启用审计跟踪"。

是的,我知道。除了其中一个字段之外的所有字段都未启用审计跟踪。显然,这些是由插件或工作流生成的事件。

为什么它会给我这些以及如何让它停止?

2 个答案:

答案 0 :(得分:3)

  

为什么给我这些

因为字段正在更新。正如你所提到的,这可能是一个插件或工作流程。

当插件忘记实例化新的Entity并且仅为其提供必要的更新属性时,插件通常会错误地更新字段:

实例化新实体

var smallEntity = new Entity { Id = new Guid("entityId"), LogicalName = "entityName" };
smallEntity["firstname"] = "newName";
...
service.Update(smallEntity);

不必要地更新所有字段

var bigEntity = service.Retrieve(new Guid("entityId"), "entityName", new ColumnSet(true));
bigEntity["firstname"] = "newName";
...
service.Update(bigEntity);

smallEntity只包含一个属性。调用Update时,审核历史记录将仅显示一个已更新的字段。

bigEntity包含每个实体属性,因为它是使用new ColumnSet(true)检索的。调用Update后,审核历史记录会将所有字段显示为已更新,即使实际只有"firstname"已更改。

  

如何让它停止?

一种选择是过滤审核历史记录视图,仅显示您感兴趣的字段:

enter image description here

答案 1 :(得分:0)

审计可以在3个级别启用,即组织,实体和属性级别。

系统将开始收集所有已启用审核的属性值,以捕获旧值&新值(不是当前值)。

您对插件/工作流程中的显式更新启动了对实体的审核,但在此类服务更新上更新的属性不符合值(可能是未更改的值)以进行值捕获。

如果您在数据库中也看到了审计表,那么该行将为空,并带有〜(不包含列名和存储的旧/新值)

您无法停止收集此信息,但可以通过启用所有字段的审核来查找字段。识别插件步骤。然后像Dave提到的那样启动实体对象&避免这种情况。

更新:100%正确。当我关联查找(未启用审计)

时,这种情况发生在我身上

enter image description here