четверг, 13 июня 2013 г.

Рабочие процессы SharePoint 2013: Workflow Services API в примерах

В предыдущем посте я очень кратко (но ёмко) прошелся по Workflow в SharePoint 2013. Сегодня хочу продолжить тему и рассказать о новом клиентском API под названием Workflow Services (и показать, как его можно использовать), которое доступно в том числе из SharePoint JavaScript Object Model.

среда, 12 июня 2013 г.

Рабочие процессы SharePoint 2013

В SharePoint 2013 в части рабочих процессов (Workflow) произошли довольно важные перемены - как вы все наверное уже знаете. Постараюсь обобщить в цельную картину, кратко и без маркетингового трепа:
  1. Самое главное: SharePoint 2013 поддерживает теперь два типа Workflow: старыe (WF3) и новые (WF4). Старые крутятся внутри SharePoint как и раньше, а новые хостятся вне SharePoint, в отдельном компоненте под названием Workflow Manager. Чтобы обеспечить работоспособность новой связки, появилось Workflow Service Application, а для непосредственного взаимодействия WF с SharePoint используется механизм Apps.
  2. В новых Workflow есть циклы, переходы, вызов web-сервисов и других Workflow (что круто), но зато напрочь отсутствует куча жизненно важных Workflow Actions, таких как например "Set Approval Status" и некоторых других.
  3. Reusable Workflow в режиме WF2013 теперь нельзя цеплять к Content Type и нельзя их публиковать на всю коллекцию сайтов (кнопка "Publish Globally" задисейблена). Так что готовьтесь к копипасту :) 
  4. Impersonation Step в новых заменен на "App Step" (подробнее на MSDN). Для повышения привилегий используется тот же механизм, что в Apps.
  5. Есть interop - т.е. из новых можно вызывать старые WF. В итоге в реальных проектах вполне ожидаем следующий сценарий: основной РП пишется на WF4, а из него по мере необходимости вызываются WF3-workflow. Напоминает забивание гвоздей микроскопом, но тут уж куда деваться :)
  6. OOTB-Workflow, такие как Approval, Collect Feedback и т.д. - могут выполняться только в режиме совместимости, т.е. в режиме WF3.
  7. Custom Workflow Actions теперь декларативные: они представляют собой XOML-файлы, в которых можно использовать только ограниченный набор Workflow Activities.
  8. Custom Workflow (Code) Activity создавать всё-таки можно, хотя и через жопу сложно (т.е. в O365 уж точно так сделать не получится). Альтернативно предлагается писать веб-сервисы и вызывать веб-сервисы из Workflow. А что, вариант :)
  9. Для новых РП теперь есть очень мощное клиентское API (см. мой следующий пост про Workflow Services API).
  10. В SPD теперь есть новый Workflow Editor (только при наличии Visio на компьютере).
  11. Обладатели SharePoint Foundation остались без Workflow Manager и как следствие без WF нового типа.
Честно сказать, впечатления от нововведений неоднозначные. Для меня самый неприятный момент - это отсутствие некоторых фундаментальных WF activities в РП нового типа. Впрочем, уже есть мысли, как это можно "логически" обойти :)

P.S. Если у кого есть что добавить к моему списку, отпишитесь плиз в комменты!

Update 13.06: добавил уточнение про Impersonation Step и App Step, невозможность публиковать новые РП на всю коллекцию узлов, и ссылку на новый пост про Workflow Services.