【发布时间】:2018-07-24 19:44:49
【问题描述】:
我使用 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的时候,发现有登录用户的信息。
有没有什么方法可以在不直接从数据库中提取数据的情况下提取这些信息?
【问题讨论】:
-
请附上您用于
createAuditRecord的代码。 -
var inrecord = detail.AuditRecord; var res = new List
(); var date = inrecord.Attributes.SafeToDateTime("createdon"); var action = inrecord.Attributes.getOption(Static.AuditName, "action").Text; var user = inrecord.Attributes.toEntity (Static.AuditName, "userid").Name; -
@alekoo73 将该代码添加到您的初始帖子中,最好是完整的函数定义
标签: c# dynamics-crm crm xrm