Я использую SPservices в среде SharePoint 2013 для создания отфильтрованных представлений, уникальных для текущего пользователя. Фактически, когда пользователь посещает страницу, он получает пользовательский поток документов, которые он загрузил в определенную библиотеку.
Я могу успешно запросить библиотеку и отобразить результаты так, как я хочу, но когда я пытаюсь создать составной CAML-запрос, я продолжаю получать ошибки. Я попытался использовать различные ресурсы здесь, чтобы вручную построить этот запрос (и из-за сетевых ограничений, я не могу использовать инструмент сборки U2U CAML), но я продолжаю получать ошибочные сообщения. Я начал делать простые запросы, и это работало, но как только я пытаюсь добраться до своего третьего и четвертого операторов «ИЛИ» (включая аргумент 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, которая работает правильно.