CAML-запрос SharePoint не работает при использовании OR и IN - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь запросить список SharePoint следующим запросом:

<Where>
<Or>
 <In>
    <FieldRef Name='col1' />
    <Values><Value Type='Integer'>1</Value></Values>
 </In>
 <In>
    <FieldRef Name='col2' />
    <Values><Value Type='Integer'>1</Value></Values>
 </In>
</Or>
</Where>

Оба поля являются таксономическими. Проблема в том, что я не получаю никаких результатов. При использовании только одного из условий я получаю результаты, но, комбинируя их с «Или», я не получаю никаких результатов. Что я делаю не так?

РЕДАКТИРОВАТЬ: я использую SharePoint 2013, и я также пытался добавить LookupId = "TRUE"

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Я бы предложил использовать CAML Builder для построения вашего запроса.

Попробуйте следующее

    <Where>
<Or>
 <In>
    <FieldRef Name='col1' />
    <Values><Value Type='Text'>TAxTextValue</Value></Values>
 </In>
 <In>
    <FieldRef Name='col2' />
    <Values><Value Type='Text'>TAxTextValue</Value></Values>
 </In>
</Or>
</Where>

Кто-то указал, что может быть ошибка, но вы не указали версию SP.

Возможная ошибка

Спасибо

Truez

0 голосов
/ 16 января 2019

В итоге я запросил скрытые TextFields полей таксономии, используя термин ids:

<Where>
<Or>
  <Contains><FieldRef Name='kf7aa880952e4699a9693b8b7379c884'/><Value Type='Text'>40e7b1fd-3892-4311-8428-6dbe77fc4ad7</Value></Contains>
  <Contains><FieldRef Name='le11567cdf314372b377761db5f67b84'/><Value Type='Text'>40e7b1fd-3892-4311-8428-6dbe77fc4ad7</Value></Contains>
</Or>
</Where>
0 голосов
/ 16 января 2019

попробуйте что-то вроде этого

<FieldRef LookupId='TRUE' Name='MyTaxonomyField' />
<Values>
 <Value Type='Integer'>4</Value>
</Values>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...