在CRM 2011中,我的代码中有一个标记为“activityEntity”的Activity实体。我还在Case实体上有一个名为“AssignToCaseOwner”的单选按钮字段。 Case实体标记为“sourceCase”。
基本上,当AssignToCaseOwner设置为Yes时,Activity将被分配给Case的所有者。
这是我的代码,但由于某种原因,Activity一直被分配给Case创建者。任何建议都非常感谢。
谢谢, -elisabeth
//retrieving case Owner
var sourceCaseColumnSet = new ColumnSet(new[] {"ownerid"});
var sourceCaseAttributes = sourceCase.RetrieveEntity<Entity>(service, sourceCaseColumnSet);
if ((int)assignToCaseOwner == 1)
{
activityEntity.Attributes["ownerid"] = new EntityReference(SystemUser.EntityLogicalName, (Guid)sourceCaseAttributes.Attributes["ownerid"]);
}
答案 0 :(得分:2)
您无法使用正常更新更改记录的ownerid
属性,您需要使用AssignRequest
消息。
帐户记录示例:
Guid accountId = new Guid("90F8889F-EB95-E781-8417-000C44420CBC");
Guid newOwnerId = new Guid("A8AA28B4-9015-DF11-8062-000E0CA08051");
AssignRequest assignRequest = new AssignRequest
{
Assignee = new EntityReference("systemuser", newOwnerId),
Target = new EntityReference("account", accountId)
};
service.Execute(assignRequest);
答案 1 :(得分:0)
谢谢大家的帮助。很抱歉延迟回复。
我的代码现在正在运行如下。双选项字段只是布尔值。
var assignToCaseOwner = new_entity.Attributes["new_assigntocaseowner"];
if ((bool)assignToCaseOwner)
{
activityEntity.Attributes.Add("ownerid", sourceCaseAttributes.Attributes["ownerid"]);
}
感谢。