使用CAML正确嵌套化合物和 /或语句



我正在利用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

的所有文件

相关内容

  • 没有找到相关文章

最新更新