CAML запрашивает элементы с заданными URL-адресами

StackOverflow https://stackoverflow.com/questions/202752

  •  03-07-2019
  •  | 
  •  

Вопрос

В SP2007 / MOSS мне нужно запустить запрос CAML к одному списку следующим образом:

<Where>
    <Or>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item1.aspx</Value>
        </Eq>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item4.aspx</Value>
        </Eq>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item7.aspx</Value>
        </Eq>
    </Or>
</Where>

Практическим результатом этого было бы то, что у меня есть SPListItemCollection элементов, для которых у меня были URL-адреса.

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

Все элементы в списке имеют один и тот же тип контента.Единственная релевантная ошибка в журналах SP показывает то же самое сообщение.

Ответ не решил эту конкретную проблему, но в конечном итоге оказался правильным (или должен быть вложенным).Проблема заключалась в том, что мой тип значения поля должен был быть FileRef .

Это было полезно?

Решение

Эта ошибка почти всегда возникает из-за того, что ваш запрос CAML неверен.Вы пробовали форматировать его следующим образом:

<Where>
    <Or>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item1.aspx</Value>
        </Eq>
        <Or>
            <Eq>
                <FieldRef Name='URL' />
                <Value Type='URL'>/path/item4.aspx</Value>
            </Eq>
            <Eq>
                <FieldRef Name='URL' />
                <Value Type='URL'>/path/item7.aspx</Value>
            </Eq>
        </Or>
    </Or>
</Where>

Я почти уверен, что у вас может быть только два компонента в ветке Or или And.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top