Почему owssvr.dll возвращает пустой результат для моего списка? - PullRequest
2 голосов
/ 24 марта 2011

Я пытаюсь использовать owssvr.dll и его URL API в SharePoint 2007 для получения метаданных списка. Для большинства списков на моем интересующем сайте я могу использовать URL, отформатированный так:

http://hts-app1/compounds/_vti_bin/owssvr.dll?XMLDATA=1&List={F987723C-28A4-47D3-83D7-19094B0267DF}

Я получаю список метаданных поля на основе xml для представления по умолчанию и список записей в списке. Но когда я пытаюсь использовать другой guid для отдельного списка, я получаю пустой ответ от веб-сервера. Это код ответа 200, но остальные заголовки выглядят так:

Connection:close
Date:Thu, 24 Mar 2011 17:38:46 GMT
MicrosoftSharePointTeamServices:12.0.0.4518
Server:Microsoft-IIS/6.0
X-Powered-By:ASP.NET

Я почти уверен, что guid списка действителен, так как я могу сопоставить его с guid для списка, который я вижу на странице перечисленных файлам .aspx. Если я также отформатирую свой URL-адрес так:

http://hts-app1/compounds/_vti_bin/owssvr.dll?XMLDATA=1&List={F987723C-28A4-47D3-83D7-19094B0267DF}&Query=*

с параметром Query=* я могу получить действительный xml, но он просто показывает все, а не фильтруется для моего просмотра, и я действительно хотел бы получить представление.

Я посмотрел в файле журнала SharePoint и не смог найти ничего похожего на этот запрос.

Итак, как я могу отладить это? Мне бы очень хотелось использовать простой HTTP GET-запрос для возврата этих метаданных, и owssvr.dll казался идеальным механизмом.

Ответы [ 2 ]

1 голос
/ 12 июля 2013

Вы также можете указать конкретный вид. Как это

http://{0}/_vti_bin/owssvr.dll?Cmd=Display&List={1}&view={2}&XMLDATA=TRUE

например:

https://foo.com/extranet/_vti_bin/owssvr.dll?Cmd=Display&List=%7B7F7AFB9D%2D6D5D%2D4626%2DBD9D%2D085957DB79AB%7D&view=%7B111EC07E%2DF648%2D443B%2D8DE6%2DB53786BE6762%7D&XMLDATA=TRUE

Абсолютно самый простой способ получить список и просмотреть направляющие - это перейти к редактированию вида и перехватить список и просмотреть информацию прямо из адресной строки.

0 голосов
/ 25 марта 2011

1. То, что указание GUID в строке запроса вашего URL работает для одного списка, а для другого - нет, возможно, связано со списками на разных сайтах.Убедитесь, что sitename является правильным и что GUID действительно является идентификатором списка.

Остерегайтесь того факта, что вышеприведенное относится к SharePoint 2007 и 2010, для SharePoint 2010 могут потребоваться дополнительные меры в зависимости от контекстаиз которых вы выполняете команды на owssvr.dll.

2. query=* не является параметром фильтра;он показывает схему, а также данные для всех доступных столбцов в списке, включая внутренние столбцы SharePoint, которые обычно никогда не видны другими способами, кроме программного доступа.

3. Чтобы получить только те столбцы, которые видны в текущая по умолчанию view команда отображения вызова на owssvr.dll, в то время как параметр xmldata установлен в значение true;например:

http://hts-app1/compounds/_vti_bin/owssvr.dll?Cmd=Display&List={F987723C-28A4-47D3-83D7-19094B0267DF}&XMLDATA=TRUE

Опять же, это только для SharePoint 2007 и зависит от контекста выполнения.

4.

с помощью параметра Query = * я могу получить действительный xml, но он просто показывает все, а не фильтруется для моего просмотра, и я действительно хотел бы иметь представление.

Ох, но это не называется фильтрацией;фильтрация основана только на значениях столбцов.Для этого используйте дополнительные параметры FilterField1 и FilterValue1.

http://hts-app1/compounds/_vti_bin/owssvr.dll"
            + "?Cmd=Display&List={F987723C-28A4-47D3-83D7-19094B0267DF}"
            + "&XMLDATA=TRUE&FilterField1=YOUR_FILTER_COLUMN_NAME&FilterValue1"
            + YOUR_FILTER_COLUMN_VALUE

Взлет "(двойные кавычки) и + (плюс) и (возврат) перед тестированием в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...