Как обновить длительный рабочий процесс SharePoint, уже работающий

Передо мной была оказана помощь в развертывании второго этапа предыдущего развертывания SharePoint.

Исходное развертывание имеет настраиваемые рабочие процессы, которые были обновлены на этапе 2.
Есть ли как-то для этой ситуации?

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

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

Я только вхожу в проект, и эти проблемы заметили разработчики.

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

Вот некоторые заметки от другого разработчика, который дает мне некоторое представление о том, что он видел:

Если версия рабочего процесса уже существует, то ее повторное развертывание в качестве функции приведет к тому, что для существующего рабочего процесса будет установлено состояние "Нет новых экземпляров". Это можно увидеть, перейдя в библиотеку документов, к которой был прикреплен рабочий процесс, выберите "Настройки" -> "Настройки библиотеки документов" -> "Настройки рабочего процесса" -> "Удалить рабочий процесс" и отметьте параметр переключателя для рабочего процесса. Любые текущие рабочие экземпляры рабочих процессов будут по-прежнему завершаться в обычном режиме, но этот параметр предотвратит любые новые экземпляры рабочего процесса.

После того, как 2-я "версия" того же рабочего процесса была развернута, вам нужно будет вернуться к каждой библиотеке документов, где вы хотите, чтобы она была связана, и заново добавить ее, как если бы это был новый рабочий процесс. Вам нужно дать ему уникальное имя, например, "MyWorkflow_v2". Другой побочный эффект заключается в том, что теперь у вас будет 2 столбца состояния рабочего процесса в библиотеке документов. Вы можете удалить / скрыть первый, когда все его экземпляры завершены и статус больше не нужен.

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

После повторного развертывания второй "версии" рабочего процесса вам все равно придется вручную посетить каждую библиотеку документов, где вы хотите ее использовать, и добавить ее в библиотеку документов. Имейте в виду, что его имя шаблона рабочего процесса будет отображаться в списке шаблонов рабочего процесса в том виде, в котором оно названо в файлах XML (что нормально), но после его добавления вам потребуется ввести уникальное имя рабочего процесса для рабочего процесса. В этот момент вы должны выбрать что-то вроде "Workflow_v2" в качестве нового имени.

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

1 ответ

Я думаю, что вы уже читали комментарии Криса О'Брайена на эту тему. так вот вторая ссылка: http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx

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