0

SharePoint での CAML クエリの基本を学ぼうとしています。さまざまな非技術的な理由により、現在、VBSCRIPT を使用して、照会したいサイトに要求を送信することに制限されています。サイトに接続してデータを取得できますが、要求された特定のデータに対して、ターゲット リストのすべての行とすべての列が返されます。私が間違ったことと、問題を解決する方法についてのアイデアをいただければ幸いです。コードは次のとおりです。

dim soapEnv
dim oHttp
dim URL

set oHttp = CreateObject("Microsoft.XmlHttp")

URL     = "https://[MyCorporateSite]/_vti_bin/Lists.asmx?op=GetListItems"
soapEnv = "<?xml version='1.0' encoding='utf-8'?>" _
        & "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'  xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>" _
        &    "<soap:Body>" _
        &       "<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>" _    
        &          "<listName>{3C786148-E3E1-425B-84BE-6E44335D5645}</listName>" _
        &          "<Query>" _
        &             "<Where>" _
        &                "<Eq>" _
        &                   "<FieldRef Name='ApplicationID' />" _
        &                   "<Value Type='Text'>5Z4PWS</Value>" _
        &                 "</Eq>" _
        &             "</Where>" _
        &          "</Query>" _
        &          "<ViewFields xmlns='http://schemas.microsoft.com/sharepoint/soap/'>" _
        &             "<FieldRef Name='ApplicationID' />" _
        &             "<FieldRef Name='ApplicationName' />" _
        &          "</ViewFields>" _
        &          "<RowLimit>1</RowLimit>" _
        &       "</GetListItems>" _
        &    "</soap:Body>" _
        & "</soap:Envelope>"

oHttp.Open "POST", URL, False, [MySiteUID], [MySitePWD]
oHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
oHttp.send soapEnv
WScript.Echo oHttp.responseText

最終的に結果を XML ドキュメントに割り当てるべきであり、返されたテキストをエコーする必要があることはわかっていますが、プレゼンテーションについて心配する前に、クエリを適切に機能させたいと考えています。

また、CAML作成・フォーマットツールのダウンロードは、企業の都合によりできません。

4

1 に答える 1

0

それを見つけた。改訂されたコードは次のとおりです。

dim soapEnv
dim oHttp
dim URL

set oHttp = CreateObject("Microsoft.XmlHttp")

URL     = "https://[MyCorporateSite]/_vti_bin/Lists.asmx?op=GetListItems"
soapEnv = "<?xml version='1.0' encoding='utf-8'?>" _
        & "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>" _
        &    "<soap:Body>" _
        &       "<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>" _
        &          "<listName>{3C786148-E3E1-425B-84BE-6E44335D5645}</listName>" _
        &          "<query>" _
        &             "<Query>" _
        &                "<Where>" _
        &                   "<Eq>" _
        &                      "<FieldRef Name='ApplicationID' />" _
        &                      "<Value Type='Text'>5Z4PWS</Value>" _
        &                    "</Eq>" _
        &                "</Where>" _
        &             "</Query>" _
        &          "</query>" _
        &          "<ViewFields>" _
        &             "<ViewFields xmlns='http://schemas.microsoft.com/sharepoint/soap/'>" _
        &                "<FieldRef Name='ApplicationID' />" _
        &                "<FieldRef Name='ApplicationName' />" _
        &             "</ViewFields>" _
        &         "</ViewFields>" _
        &       "</GetListItems>" _
        &    "</soap:Body>" _
        & "</soap:Envelope>"

oHttp.Open "POST", URL, False, [MySiteUID], [MySitePWD]
oHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
oHttp.send soapEnv
WScript.Echo oHttp.responseText

追加の Query および ViewFields タグに注意してください。

于 2013-06-20T14:44:26.087 に答える