在自定义实体上,我启用了一个用于审核的单个字段,似乎工作正常。但是,有许多,更多的审计记录更改了日期,更改了(用户和服务帐户)和更新事件,但空白更改字段,旧值和新值列。打开其中一个"空白"记录显示标题中给出的消息。
当您打开其中一个时,您看到的不是表格,而是声明"此操作更改的字段未启用审计跟踪"。
是的,我知道。除了其中一个字段之外的所有字段都未启用审计跟踪。显然,这些是由插件或工作流生成的事件。为什么它会给我这些以及如何让它停止?
答案 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"
已更改。
如何让它停止?
一种选择是过滤审核历史记录视图,仅显示您感兴趣的字段:
答案 1 :(得分:0)