我正在利用SharePoint 2013环境中的SPServices创建当前用户独有的过滤视图。有效地,当用户访问页面时,他们会获得已上传到特定库的文档的自定义提要。
我可以成功查询库并渲染自己想要的结果,但是当我尝试创建复合CAML查询时,我会不断遇到错误。我已经尝试使用这里的各种资源来手动构建此查询(并且要对网络限制进行我无法使用U2U CAML Builder工具(,但是我不断被丢弃错误。我开始做简单的查询,它正在奏效,但是一旦我尝试到达第三和第三次"或"语句(包括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>
所需的结果将是当前用户上传/创建的项目的输出,其中内容类型等于"文档",而灵敏度(选择(字段等于低,中等,高,高或空为空。
我觉得自己真的很接近,但是我犯了一个愚蠢的错误。对于上下文,语句中的"用户名"参考是正常运行的JavaScript变量。
没有U2U CAML Builder工具等工具,括号可能会令人困惑。我感到你的痛苦。
我认为您的问题可能是最后的isnull。我相信您想要的是Notnull
<IsNotNull>
<FieldRef Name='sensitivity' />
</IsNotNull>
作为最后一个沟渠,您可能只能查询用户Whos Documents Co