Смена владельца рабочего процесса - PullRequest
1 голос
/ 29 декабря 2011

Я создаю сценарий linqpad, в котором я хочу добиться следующего:

1) Назначить мне все черновые и активные рабочие процессы 2) Активировать все черновые рабочие процессы

Моя проблема в том, чтоесли я пытаюсь сменить владельца активного рабочего процесса, я получаю сообщение об ошибке, в котором говорится, что я не могу обновить рабочий процесс, потому что он активен.Если я пытаюсь деактивировать, то это говорит о том, что я не владелец (следовательно, я не могу).Это сбивает с толку, потому что я могу легко сделать это через пользовательский интерфейс.

Код, который я использую для обновления владельца:

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 Ответ

3 голосов
/ 29 декабря 2011

Вы не можете изменить владельца записи с помощью обновления. Вы должны использовать AssignRequest, чтобы сменить владельца. См. мой ответ на Могу ли я обновить идентификатор владельца Контакта с помощью LINQ?

...