2011-03-24 107 views
2

我試圖在SharePoint 2007中使用owssvr.dll and its URL API來獲取一些列表元數據。這是我感興趣的網站大部分的名單,我可以使用格式化像這樣一個網址:爲什麼owssvr.dll爲我的列表返回空結果?

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

我回來默認視圖字段元數據的基於XML的列表和記錄列表中的一個列表。但是,當我嘗試使用另一個GUID作爲單獨的列表時,我從Web服務器收到一個空的響應。這是一個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列表,我可以在listedit.aspx頁面看到它相匹配。如果我還格式化我的網址,像這樣:與Query=*參數

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

,我能得到有效的XML,但它只是顯示的一切,並不能過濾以我的看法,我真的很想有看法。

我查看了SharePoint日誌文件,但找不到與此請求相關的任何內容。

那麼,我該如何調試呢?我真的想用一個簡單的http GET請求來取回這個元數據,而owssvr.dll似乎是理想的機制。

回答

0

1.在您的URL的查詢字符串中提供GUID適用於一個列表,而不適用於其他列表可能是因爲列表位於不同的站點。驗證sitename是否正確,並確實GUID是List ID。

請注意,上述情況同時適用於SharePoint 2007和2010,但對於SharePoint 2010,可能需要額外的措施,具體取決於您在owssvr.dll上執行命令的環境。

2. query=*不是過濾器參數;它顯示列表中所有可用列的架構以及數據,包括SharePoint內部列,通常您不會使用以編程訪問以外的方式查看。

爲了獲得只有那些同時XMLDATA參數設置爲true上owssvr.dll都在當前默認視圖來電顯示命令可見列;像這樣:

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

再次,這是SharePoint 2007僅依賴於執行上下文。

4.

與查詢= *參數,我可以得到 有效的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 

起飛「(雙引號)和+(加號),並在瀏覽器測試前(返回)。

+0

感謝您的回覆。我確定guid是正確的,因爲當我在url中添加'query = *'時,我可以看到正確的列表元數據。這些列表都在同一個SPWeb中。至於你的#2點,我同意。我最終不想使用'Query = *',但我只是想表明我確實可以通過這種方式獲得正確的原始列表數據。我嘗試了#3建議,並得到了與沒有'Cmd'參數相同的行爲。對於#4,我列表的默認視圖確實是根據字段值進行行篩選(以及包含更少的顯示列),這是我想在此使用視圖的一個關鍵原因。 – 2011-03-25 03:21:22

1

您可以指定一個特定的視圖,以及喜歡這張

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 

獲取列表和查看指令的絕對最簡單的方法是轉到編輯視圖並抓取li st &直接從地址欄查看信息。

相關問題