среда, 25 марта 2015 г.

SharePoint 2013 Workflow error: HTTP 401 & HTTP 423

В моём решение я использовал рабочий процесс. Причем не встроенные 2010 версии, а новые, используя Workflow manager 1.0. После старта рабочего процесса возникала ошибка, в который в самом начале фигурирует:
HTTP 423 или HTTP Unauthorized
Так же может быть:
HTTP 401

Пример:



















Чаще всего встречалась ошибка:
RequestorId: 37edfcab-8717-2a41-0000-000000000000. Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.ApplicationException: HTTP 401 {"Transfer-Encoding":["chunked"],"X-SharePointHealthScore":["0"],"SPClientServiceRequestDuration":["98"],"SPRequestGuid":["37edfcab-8717-2a41-9647-2cd739cfd2c0"],"request-id":["37edfcab-8717-2a41-9647-2cd739cfd2c0"],"X-FRAME-OPTIONS":["SAMEORIGIN"],"MicrosoftSharePointTeamServices":["15.0.0.4569"],"X-Content-Type-Options":["nosniff"],"X-MS-InvokeApp":["1; RequireReadOnly"],"Cache-Control":["max-age=0, private"],"Date":["Thu, 26 Feb 2015 08:47:18 GMT"],"Server":["Microsoft-IIS\/8.5"],"WWW-Authenticate":["NTLM"],"X-AspNet-Version":["4.0.30319"],"X-Powered-By":["ASP.NET"]} at Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)


Дело в том, что если Вы используете Workflow manager 1.0, то для работы со списком списком истории рабочего процесса будут использоваться права инициатора рабочего процесса. И у инициатора может быть недостаточно прав для работы с этим списком. Имейте это в виду.
Для решение проблемы необходимо повысить права пользователя на список истории рабочего процесса до уровня разрешений  "Совместная работа", сам список скрытый. Можно использовать SharePoint manager 2013, с его помощью поменять свойство списка "hidden" на false. Список появится в веб-интерфейсе и с ним можно будет работать как с обычным списком:



Теперь можно назначить необходимые права для пользователя.
Но есть способ несколько проще. Для этого достаточно использовать Microsoft SharePoint Designer. Откройте Ваш сайт, слева выберите пункт "Все файлы", если подвиснет на этапе "Создание отчёта" - обновите контент. Это баг с 2010 версии еще остался.

В основном окне выберите папку "Lists", потом "Workflow History", правый клик и выбрать свойства:
Потом на ленте выбрать "Веб-страница администрирования":

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