среда, октября 20, 2010

Читают ли MSDN разработчики SPD 2010…

Вот сейчас точно знаю, что не читают. По крайней мере, не всё читают…

Выяснилось, что в РП в Sharepoint Designer 2010 невозможно без дополнительных танцев с бубном использовать действие “Создать элемент в списке”. SPD настоятельно предлагает заполнить обязательное поле с дивным названием “Путь и имя”. При помощи вот этой утилиты удалось выяснить, что имеется в виду поле списка “FileLeafRef” (каков переводчик - чудо!), про которое в MSDN сказано: “Required, but ignored if the list is not a document library.”. В соответствии с этим указанием все списки имеют атрибут этого поля required==true (в WSS3 такого не было и никаких проблем с этим полем - тоже). А так как разработчики MSDN не читали, то и выставляют перед изумлённой публикой требование заполнить обязательное поле (которое не совсем обязательное, а только немножко…) неведомо чем.

При помощи той же утилиты можно видеть, что значение поля имеет вид '1;#1_.000', однако в рамках РП подсунуть ему такое значение (равно как и любое другое) не удаётся и РП заканчивается сообщением об ошибке: “Обновить элемент в рабочем процессе не удалось, возможно потому, что в одном или нескольких столбцах для этого элемента должны содержаться данные другого типа.”.

Исправилась ситуация при помощи той же утилиты – атрибут required был установлен в false. После этого SDP успокоился, а РП начал исполняться как ожидалось…

Странно всё же, как такое было пропущено при тестировании действия. Получается одно из двух – либо обязательность для поля ввели после тестирования, либо тестирования не было вовсе…

Добавлено на другой день:

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

2 комментария:

Анонимный комментирует...

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

с правами администратора рабочий процесс работает корректно, как только пытаюсь под простым пользователем (права на списки есть у него) - так эта ошибка выскакивает, причем на шаге, в котором процеес получает данные от третьего лица (из 3 полей всего), и заносит их ИД в переменную.
пока не знаю как решить

DkmS комментирует...

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