首页 > 解决方案 > CRM 2011 Xrm。审计记录返回系统用户,而不是记录一个

问题描述

我使用 CRM 2011 SDK 创建了应用程序。

在检索审计记录时,我使用推荐的代码。我的代码如下所示:

using (_serviceProxy = ServerConnection.GetOrganizationProxy(serverConfig))
{
    _service = (IOrganizationService)_serviceProxy;
    RetrieveRecordChangeHistoryRequest changeRequest = new RetrieveRecordChangeHistoryRequest();
    changeRequest.Target = new EntityReference(Static.IncidnentsEntityName, new Guid(id));

    RetrieveRecordChangeHistoryResponse changeResponse =
                        (RetrieveRecordChangeHistoryResponse)_service.Execute(changeRequest);

    return changeResponse.AuditDetailCollection.AuditDetails.SelectMany(s => createAuditRecord(s)).ToList();
}

其中createAuditRecord函数只是解包属性。有一个名为 的属性userid,但它总是返回系统用户,我的应用程序正在调用 CRM,而不是登录的用户。

在直接查询 SQL 时,我发现有一个关于已登录用户的信息。

在此处输入图像描述

有没有办法在不直接从数据库中提取数据的情况下提取这些信息?

标签: c#dynamics-crmcrmxrm

解决方案


如果用于外部使用或报告,我更喜欢直接从数据库中提取信息。它更快,您可以执行更复杂的查询,并且可以节省大量时间。使用 SDK 读取数据除了确保它会在下一个版本中得到支持并在线支持之外,没有其他好处。


推荐阅读