Я создаю сценарий 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