четверг, 30 апреля 2015 г.

SharePoint 2013 Workflow error. Exception details: System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).


В ходе выполнения рабочего процесса возникла ошибка:
RequestorId: f54a5d97-39ba-7d44-0000-000000000000. Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException) at System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result) at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result) at System.Guid.Parse(String input) at System.Activities.CodeActivity`1.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Вот так выглядит на странице состояния рабочего процесса (wrkstat.aspx):


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

Ошибка, описанная в начале статьи, возникает в случае если Вы пробуете достать элемент задачи используя не GUID. Т.е. просто перепутали поле и вместо TaskId14, как в моем случае, используете любое другое значение, которое не является GUID.