Почему GetSiteData(запрос) возвращает неправильные значения
Я делаю caml-запрос к библиотекам форм во всем семействе сайтов с помощью SPWeb.GetSiteData(SPQuery). Для поля "ServerUrl" возвращается просто "/" вместо "/ имя сайта / имя библиотеки /formName.xml". С item["ServerUrl"] возвращает правильное значение, но мне нужно использовать метод GetSiteData.
Вот мой код:
SPSiteDataQuery q = new SPSiteDataQuery();
q.Lists = "<Lists ServerTemplate='115' />";
q.Query = "<Where><And><And>"
+ "<Eq><FieldRef Name='" + UserId + "' /><Value Type='Text'>" + User + "</Value></Eq>"
+ "<Geq><FieldRef Name='Created' /><Value Type='DateTime'>" + dateFrom + "</Value></Geq></And>"
+ "<Leq><FieldRef Name='Created' /><Value Type='DateTime'>" + dateTo + "</Value></Leq></And></Where>";
q.Webs = "<Webs Scope='SiteCollection' />";
q.ViewFields =
"<FieldRef Name='Title' />" +
"<FieldRef Name='ID' />" +
"<FieldRef Name='Created' />" +
"<FieldRef ID='" + officeId + "' />" +
"<FieldRef ID='" + formStatusId + "' />" +
"<FieldRef ID='" + accessTypeId + "' />" +
"<FieldRef Name='ServerUrl' />" +
"<FieldRef Name='FileRef' />";
ret = web.GetSiteData(q);
1 ответ
Решение
Кажется, что поврежденный ServerURL выглядит просто еще одной забавной веб-службой SharePoint. Если вы пытаетесь получить полный URL для файла, вы можете создать его из полей EncodedAbsUrl и FileRef.
http://splucy.wordpress.com/2009/06/02/retrieve-pageurl-in-spsitedataquery/