我使用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时,我发现有关于登录用户的信息。
是否有某种方法可以提取这些信息而无需直接从DB中提取数据?
答案 0 :(得分:0)
如果用于外部使用或报告,我更喜欢直接从数据库中提取信息。它速度更快,您可以进行更复杂的查询,并且可以节省大量时间。使用SDK读取数据除了确保在下一版本中将得到支持并在线支持之外,没有其他价值。