Введение

В этой статье приведены сведения о регулировании сценариев и ограничений для рабочих процессов, использующих тип платформы рабочего процесса SharePoint 2013 в SharePoint и Project в Microsoft 365.

Примечание: Рабочие процессы SharePoint 2010 были прекращены с 1 августа, 2020 для новых клиентов и удалены из существующих клиентов, начиная с 1 ноября 2020.  Если вы используете рабочие процессы SharePoint 2010, рекомендуем перейти на Power автоматизировать или другие поддерживаемые решения. Дополнительные сведения можно найти в статье о выбытие рабочего процесса в SharePoint 2010.

Дополнительные сведения

Чтобы узнать больше об регулированиях в SharePoint, перейдите к разделу Инструкции: предотвращение регулирования или блокировки в SharePoint.


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


Действия рабочего процесса SharePoint 2013 можно регулировать с помощью двух уровней регулирования:

  • Регулирование для SharePoint

  • Регулирование службы рабочего процесса

Регулирование службы рабочего процесса

Регулирование выполняется для обеспечения приемлемого использования ресурсов. Она также защищает среду от вредоносных рабочих процессов и рабочих процессов, которые не соответствуют рекомендациям. Регулирование службы рабочего процесса не контролируется в SharePoint. Служба рабочего процесса и SharePoint — это два независимых сервера, и каждый сервисный интервал уменьшает количество запросов в общем состоянии работоспособности служб. В службе рабочего процесса регулирование выполняется на уровне области рабочего процесса, который выравнивается по сайтам SharePoint. Для регулирования не задана глобальная учетная запись. Вместо этого все серверные службы рабочих процессов отслеживают использование области рабочего процесса независимо друг от друга. В области рабочего процесса может быть один или несколько рабочих процессов. Регулирование рабочего процесса является динамическим и будет периодически переоцениваться областью рабочего процесса и серверным интерфейсом рабочего процесса. 

Служба рабочего процесса также ограничивает количество исходящих запросов, которые может создавать один экземпляр рабочего процесса. В течение 24 часов один экземпляр рабочего процесса может формировать до 5 000 исходящих запросов. После создания исходящих запросов 5 000 в течение 24 часов рабочий процесс будет остановлен службой рабочего процесса.

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

  • У экземпляра превышена квота на исходящий HTTP-запрос для периода 1,00:00:00. Лимит запроса 5000 в <время>.

    Примечание. Заполнитель> Time <представляет время, затраченное на достижение максимального количества запросов 5 000 для рабочего процесса.

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

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

  • В экземпляре рабочего процесса превышено ограничение на использование ЦП в интервале времени 00:00:01.2000000, и его не удалось загрузить, так как он не является сохраняемым.


Приостановленные экземпляры рабочего процесса будут прекращены через 10 дней. При завершении рабочего процесса всплывающая подсказка о внутреннем статусе будет показывать следующее сообщение:

  • System. Activitys. операторы. WorkflowTerminatedException: экземпляр был перемещен из состояния приостановки в состояние прервано, так как срок его действия истек.

Завершенный рабочий процесс в конечном итоге будет очищен. После очистки завершенного рабочего процесса будет отображено следующее сообщение:

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

Области рабочего процесса

Область рабочего процесса определена как сайт в семействе веб-сайтов. Например, следующий URL-адрес предназначен для корневого семейства веб-сайтов и рассматривается как область рабочего процесса.

    https://contoso.sharepoint.com/sites/rootsite

Ниже приведен пример другой области рабочего процесса, которая находится в том же семействе веб-сайтов. Однако эта область рабочего процесса находится на дочернем сайте.

    https://contoso.sharepoint.com/sites/rootsite/subsite

Что такое запрос?

Рабочие процессы SharePoint 2013 строятся на основе модели надстроек для SharePoint и используют API-интерфейсы RESTFUL для взаимодействия с данными SharePoint. Дополнительные сведения можно найти в статье Знакомство с службой SharePoint 2013 в службе RESTful.

Запрос — это сетевой вызов из службы рабочего процесса в конечную точку API для SharePoint или Project RESTful. Нет различий между видами запроса или ответом на данный запрос. Действие и его составные действия не влияют на подсчет запросов, если только запрос не включает API SharePoint 2013 RESTFUL. Например, действие " записать в журнал" может создавать пять или более запросов на работоспособную операцию. Кроме того, логика повторов встроена в рабочие процессы в случае, если что-то пойдет не так. Это может привести к созданию дополнительных запросов.

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

Рекомендации по проектированию рабочих процессов

Существует множество способов создания большого количества запросов в рабочем процессе, которые могут привести к регулированию. Ниже приведены некоторые общие примеры.

  • Одноядерный цикл рабочего процесса или несколько циклических рабочих процессов.

  • Рабочий процесс, связанный со списком или библиотекой при переносе контента в SharePoint.

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

Функция регулирования области рабочего процесса, принудительно применяемая службой рабочего процесса, должна допустить типичные сценарии использования рабочего процесса. Тем не менее, так как логика рабочего процесса более сложная, Рабочий процесс может превысить безопасные ограничения.

Следующие сценарии рабочего процесса также приводят к регулированию.

Сценарий 1: рабочий процесс, который обрабатывает изменения на экране

Например, вы можете проверить элемент на наличие обновлений вместо того, чтобы ждать обновления элемента.

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

Рабочие процессы предназначены для управления управляемым документом, процессами человека и не для отправки значительных вычислительных задач.

Сценарий 3: запущено несколько рабочих процессов, использующих событие Wait в элементе списка "действие"

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

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

Альтернативы сценариям 1: рабочий процесс, который обрабатывает изменения в целях контроля

Вариант 1: использование надстроек SharePoint и внешних приемников событий

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

Вариант 2: Добавление действия паузы

Вы можете улучшить дизайн рабочего процесса, добавив задержку (то есть действие паузы). Это должно уменьшить трафик, который генерируется. Однако они не изменяют общие недостатки этого дизайна.

Вариант 3: используйте действие "ждать изменения поля в текущем элементе"

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

Диалоговое окно "Параметры запуска"

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

Еще один способ — использовать поле ожидание, чтобы изменить текущее действие. 

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

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

  1. Создайте переменную логического типа.

    Диалоговое окно "изменение переменной"

  2. Установите значение нет.

  3. Вставьте параллельный блок, щелкните Блок правой кнопкой мыши и выберите пункт Дополнительные свойства.

    Диалоговое окно "Свойства"

  4. В раскрывающемся списке выберите переменную, созданную в действии 1.

  5. Вставьте два параллельных блока во вставленном параллельном блоке с помощью свойства CompletionCondition .
     

  6. В первом из двух параллельных блоков, вставленных в действии 5, вставьте параметр Ожидание изменения поля в текущем действии элемента . Измените действие, чтобы оно выходило за столбец выбора. Не отслеживать выбор по умолчанию.

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

  8. Повторите шаги 1-7 для других значений столбцов выбора.

  9. Переместите другие части исходного рабочего процесса в положение после параллельных блоков.

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

Вариант 4: запуск рабочего процесса SharePoint 2010 из рабочего процесса SharePoint 2013

Тип платформы рабочего процесса SharePoint 2010 можно использовать для выполнения некоторых операций, выполняемых с помощью типа платформы рабочего процесса SharePoint 2013. Это может уменьшить количество запросов.

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

Альтернатива сценария 2: использование рабочего процесса для выполнения сложных алгоритмов

Если решение требует выполнения значительных вычислительных задач, рекомендуется разработать надстройку для SharePoint. Дополнительные сведения можно найти в надстройках SharePoint.


Все еще нужна помощь? Перейдите в сообщество Майкрософт.

Нужна дополнительная помощь?

Совершенствование навыков

Перейти к обучению >

Первоочередный доступ к новым возможностям

Присоединение к программе предварительной оценки Майкрософт >

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?

Спасибо за ваш отзыв!

×