CAML-запрос с вопросом "или содержит предложение"

Чего я хочу добиться: взять массив ключевых слов в качестве входных данных и запросить список Sharepoint, чтобы получить все строки, которые содержат ключевые слова в списке.

Я построил простой CAML-запрос для запроса моего списка одним ключевым словом (pdf) .

<Query><Where><Contains><FieldRef Name='Keyword'/><Value Type='Text'>pdf</Value></Contains></Where></Query>

Это отлично работает.

Но когда я пытаюсь использовать предложение Or в запросе CAML (см. Ниже), я получаю следующую ошибку

"Один или несколько типов полей установлены неправильно. Перейдите на страницу настроек списка, чтобы удалить эти поля".

<Query><Where><Or><Contains><FieldRef Name='Keyword'/><Value Type='Text'>pdf</Value></Contains></Or></Where></Query>

Я гуглил по синтаксису и все выглядит хорошо. Пожалуйста, дайте мне знать, чего не хватает.

Заранее спасибо.

2 ответа

Решение

В CAML Query, если вы хотите использовать ИЛИ, вы должны и должны иметь 2 условия.

Имя ссылки на поле должно быть внутренним именем. Вы можете найти это, зайдя на страницу столбца в настройках списка / библиотеки, и имя является концом URL. Пробелы и подчеркивания в имени должны обрабатываться по-разному.

Другие вопросы по тегам