Элементы запроса CAML с указанными URL - PullRequest
2 голосов
/ 15 октября 2008

В 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 показывает то же сообщение.

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

1 Ответ

3 голосов
/ 16 октября 2008

Эта ошибка почти всегда, потому что ваш 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.

...