Прикрепить Workflow-Association к типу контента сайта - PullRequest
0 голосов
/ 02 мая 2019

Я добавляю тип контента сайта во вложенную сеть и присоединяю этот тип контента к библиотеке документов.Я присоединяю WorkflowAssociation на основе шаблона WorkFlow по умолчанию «Сбор отзывов - SharePoint 2010».Все это делается CSOM для SharePoint-Online.Я проверил библиотеку и тип содержимого списка, а также тип содержимого сайта показывает рабочий процесс.Итак, здесь все выглядит хорошо.Если я затем перехожу к типу контента сайта по интерфейсу SharePoint-UI и хочу сохранить изменения (например, AutoStartChange) рабочего процесса и обновить связанные типы контента, я получаю сообщение об ошибке.Ошибка: «Несоответствие количества параметров».Если я изменяю рабочий процесс через тип содержимого списка в своей библиотеке, я не получаю упомянутую ошибку, и настройки сохраняются.

Если я создаю артефакты с помощью пользовательского интерфейса, все работает должным образом.Вот код, который я использую:

var web = context.Web;
context.Load(web);
context.ExecuteQuery();

var cts = web.ContentTypes;
context.Load(cts);
context.ExecuteQuery();

var wfts = web.WorkflowTemplates;
context.Load(wfts);
context.ExecuteQuery();

var ct = cts.FirstOrDefault(c => c.Name == ContentTypeNames.QMDokument);
context.Load(ct);
context.ExecuteQuery();
var wfTemplate = wfts.GetByName(BuiltInWorkflowNames.CollectFeedbackSharePoint2010);

context.Load(wfTemplate);
context.ExecuteQuery();

var historyList = web.Lists.GetByTitle("Workflowverlauf");
context.Load(historyList);
context.ExecuteQuery();

var taskList = web.Lists.GetByTitle("Aufgaben");
context.Load(taskList);
context.ExecuteQuery();

WorkflowAssociationCreationInformation wfaci = new WorkflowAssociationCreationInformation();
wfaci.Template = wfTemplate;
wfaci.HistoryList = historyList;
wfaci.TaskList = taskList;
wfaci.ContentTypeAssociationHistoryListName = "Workflowverlauf";
wfaci.ContentTypeAssociationTaskListName = "Aufgaben";
wfaci.Name = "Kenntnisnahme";

WorkflowAssociation newWaci = ct.WorkflowAssociations.Add(wfaci);

ct.Update(false);
context.ExecuteQuery();

Если я назначаю true при обновлении типа контента: ct.Update(true); Я получаю ту же ошибку, что и при сохранении через пользовательский интерфейс:

"Количество параметровmismatch "

Если я разверну WorkFlowAssociation на тип контента сайта, я смогу обновить WorkFlow через SharePoint-UI или CSOM, но это приведет к ошибке.

Из Спецификация Мой код должен быть действительным.Любой намек, что я могу сделать не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...