Как узнать конец цикла в рабочем процессе дизайнера sharepoint?

В мох 2007 с пакетом обновления 2

я разработал рабочий цикл конструктора sharepoint, который обрабатывает каждый элемент в списке и отслеживает последний элемент, обработанный с использованием столбца flag в списке.

изначально все элементы в списке имеют значение столбца флага = нет

циклический рабочий процесс сначала ищет первый элемент в списке с флагом = нет

после обработки этого элемента его флаг становится да. тогда он обрабатывает только следующий элемент.

при достижении последнего элемента в списке он обрабатывает его и затем устанавливает свой флаг на "да".

цикл обработки завершается тем, что элемент списка ошибок не найден, потому что на следующей итерации он не находит никаких отмеченных элементов.

Моя проблема - как я могу знать, что последний элемент был обработан. так что я могу затем запустить рабочий процесс, чтобы сбросить все флаги снова, чтобы сделать оригинальный рабочий процесс снова пригодным для использования.

2 ответа

Решение

Создать условие Если [Поле в текущем элементе] равно [Значение] и выполняет действия, только если это условие выполнено, в противном случае оно выйдет из рабочего процесса.

Выполнение любых циклов в рабочих процессах SharePoint, по меньшей мере, болезненно. Ваш подход почти наверняка вызовет проблемы параллелизма, если поток запускается более одного раза за раз.

Для такого рода сложных требований вы можете посмотреть на программное обеспечение сторонних производителей. Я предвзято отношусь к работе над этим продуктом, но вы можете рассмотреть Power Pack Power Pack, который позволяет встроить код C# или VB непосредственно в рабочие процессы SharePoint Designer без сложных циклов разработки Visual Studio.

Если вы не хотите идти по стороннему проспекту, ознакомьтесь со следующими статьями.

Другие вопросы по тегам