четверг, 26 ноября 2009 г.

Sharepoint Survey raise "You are not allowed to respond again to this survey"

В силу ряда обстоятельств мне необходимо было заполнить Survey ответами от разных людей , при этом настройка "Allow multiple responses?" должна быть в "No".
Заполнял примерно вот так:
var item = list.Items.Add();
var Author = web.SiteUsers[@"DOMAIN\user"];
item["TestQuestion"] = "TestAnswer";
try
{
    item["Author"] = Author.ID;
    item["Editor"] = Author.ID;
}
catch
{}
item.Update();
т.е. в теории, такой алгоритм приводил бы, к тому что ответы, даже от несуществующих пользователей, не пропадут.
Но получается все интереснее. Если создается хотя бы один ответ от пользователя под которым работает программа, в моем случае это "SystemAccount", то после этого уже никакие ответы создать нельзя. Даже если "Author" и "Editor" выставленны верно получаем все равно "You are not allowed to respond again to this survey".
Оказывается перед тем как засунуть данные в базу WSS вызывает сторную процедуру:exec proc_UserHasDataItems в которую передает идентификатор текущего пользователя (того под кем работает приложение) и лишь в случае успеха вызывает proc_AddListItem

Вот так вот.

Комментариев нет: