更改工作流程的所有者

时间:2011-12-29 04:45:28

标签: workflow dynamics-crm-2011

我正在创建一个linqpad脚本,我想要实现以下目标:

1)将所有草稿和活动工作流程分配给自己 2)激活所有草稿工作流程

我的问题是,如果我尝试更改活动工作流的所有者,我会收到错误消息,说我无法更新工作流,因为它处于活动状态。如果我尝试停用那么它就会出错,说我不是主人(因此我不被允许)。这很令人困惑,因为我可以通过UI轻松完成这项工作。

我用来更新所有者的代码:

var systemUser = 
var workflow = ...;
workflow.OwnerId = systemUser.ToEntityReference();
UpdateObject(workflow);
SaveChanges(); //exception: Cannot update a published workflow definition

我用来停用工作流程的代码:

var request = SetStateRequest {
    EntityMoniker = workflow.ToEntityReference(),
    State = new OptionSetValue(/*state value*/),
    Status = new OptionSetValue(/* status value*/)
};
service.Execute(request); //exception: The workflow cannot be published or unpublished by someone who is not its owner

1 个答案:

答案 0 :(得分:3)

您无法使用更新更改记录的所有者。您必须使用AssignRequest来更改所有者。请参阅my answer

上的Can I update the owner id of a Contact using LINQ?