CRM使用C#将OwnerId分配给活动

时间:2014-06-11 14:03:42

标签: c# dynamics-crm-2011

在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"]);
        }

2 个答案:

答案 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"]);

        }

感谢。