[英]Properly Nesting Compound AND / OR Statements Using CAML
我正在利用SharePoint 2013環境中的SPservices創建對當前用戶唯一的篩選視圖。 實際上,當用戶訪問頁面時,他們會獲得他們已上傳到特定庫的文檔的自定義源。
我可以成功查詢庫並按照我想要的方式呈現結果,但是當我嘗試創建復合CAML查詢時,我不斷收到錯誤。 我已經嘗試使用這里的各種資源來手動構建這個查詢(並且做網絡限制我不能使用U2U CAML構建器工具),但是我一直在拋出錯誤。 我開始做簡單的查詢並且它正在工作,但是一旦我嘗試進入我的第三個和第四個“OR”語句(包括一個IsNull參數),我就碰壁了。 我認為我不恰當地嵌套我的陳述,並希望在確定我做錯了什么方面有所幫助。
<Where>
<And>
<Contains>
<FieldRef Name='Author' />
<Value Type='User'>" + userName + "</Value>
</Contains>
<And>
<Eq>
<FieldRef Name='ContentType' />
<Value Type='Computed'>Document</Value>
</Eq>
</And>
<Or>
<Or>
<Or>
<Or>
<Eq>
<FieldRef Name='sensitivity' />
<Value Type='Choice'>Low</Value>
</Eq>
<Eq>
<FieldRef Name='sensitivity' />
<Value Type='Choice'>Medium</Value>
</Eq>
</Or>
<Eq>
<FieldRef Name='sensitivity' />
<Value Type='Choice'>High</Value>
</Eq>
</Or>
</Or>
<IsNull>
<FieldRef Name='sensitivity' />
</IsNull>
</Or>
</And>
</Where>
期望的結果將是當前用戶上傳/創建的項目的輸出,其中內容類型等於“文檔”並且靈敏度(選擇)字段等於低,中,高或為空。
我覺得我很親密,但我犯了一個愚蠢的錯誤。 對於上下文,語句中的“userName”引用是一個正常運行的javascript變量。
如果沒有像U2U CAML構建工具那樣的工具,包圍可能會非常混亂。 我感覺到你的痛苦。
我認為你的問題可能是最后的問題。 我相信你想要的是NotNull
<IsNotNull>
<FieldRef Name='sensitivity' />
</IsNotNull>
作為最后一個溝渠,您可能只能通過文件公司的用戶查詢所有文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.