Как получить WorkItem объекта в Workflow? - PullRequest
4 голосов
/ 23 марта 2012

В Tridion 2011 SP1, Event System, я пытаюсь получить WorkItem объекта, который, как я знаю, находится в рабочем процессе, но я не знаю, в чьем WorkList это может быть.

Сценарий Описание:

  • Страница должна оставаться заблокированной, пока данный компонент находится в рабочем процессе
  • Если состояние рабочего процесса компонента изменяется, состояние страницы также должно измениться

То, о чем я думал, было событием, запущенным на FinishActivityEventArgs, которое бы:

  1. Проверьте, является ли текущий элемент Компонентом
  2. Получить соответствующую страницу (GetUsingItems типа page)
  3. Проверьте, находится ли страница также в рабочем процессе
  4. Получить страницу в вопросе
  5. Получить WorkItem для страницы
  6. Завершить текущее действие и передать сведения о соответствующем действии

Я почти готов к большинству шагов, но у меня есть сомнения по поводу шага 5. Единственный способ получить WorkItems, который я пока вижу, - это использовать session.WorkflowManager.GetUserWorkItems (userWorkItemsFilter), но, вероятно, произойдет сбой, если страница не находится в рабочие элементы текущего пользователя, верно?

Какие-либо советы / указания?

1 Ответ

4 голосов
/ 23 марта 2012

Полагаю, вам нужно будет использовать метод session.WorkflowManager.GetListProcesses, чтобы найти все процессы, а не только те, которые используются для текущего пользователя.Я полагаю, что вам, возможно, придется выдать себя за администратора, чтобы вернуть все предметы обратно.

...