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. Пробелы и подчеркивания в имени должны обрабатываться по-разному.