SPWorkflowCollection в SPListItem всегда пуст.
-
25-09-2019 - |
Вопрос
У меня возникла проблема, связанная с рабочими процессами Sharepoint и связанным списком задач.
У меня есть два пользовательских рабочих процесса, которые мы создали для нашего продукта.Оба они используют один и тот же список задач с настраиваемым типом контента, наследуемым от типа контента задачи.
Теперь у меня есть случай, когда запущенный рабочий процесс был удален через список или документ, что привело к появлению потерянных задач.
Я хочу перезаписать событие OnDeleting списков задач, чтобы пользователи могли очищать свои задачи и не содержать ненужных потерянных задач.Итак, мое удаление элемента выглядит так
public override void ItemDeleting(SPItemEventProperties properties)
{
SPListItem currentListItem = properties.ListItem;
}
Проблема в том, что когда я перехожу в режим отладки и проверяю поле currentListItem.Workflows.Count, оно всегда равно 0.Неважно, какой рабочий процесс я инициирую или какую задачу смотрю, возвращаемая SPWorkflowCollection всегда пуста :(
Мне было интересно, может ли это быть связано с ошибкой в нашем пользовательском рабочем процессе, где он не подключен должным образом (но завершается правильно, а задачи удаляются при завершении рабочего процесса), или я смотрю на это неправильно?
Решение
А currentListItem
В вашей области действия находится сам элемент задачи, а не элемент списка, с которым выполняется рабочий процесс.Задание не делает с ним работает рабочий процесс, поэтому ожидается нулевой счетчик.
Если вы пытаетесь перейти к задачам рабочего процесса, связанным с рабочими процессами удаляемого элемента, вам понадобится обработчик событий такого типа на каждый список рабочий процесс активирован, а не в списке задач, который рабочий процесс использует для хранения своих задач.