Pregunta

En SP2007 / MOSS necesito ejecutar una consulta de CAML en una sola lista, por lo que:

<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>

El resultado práctico de esto sería que tengo una SPListItemCollection de los elementos para los que tenía las URL.

Sin embargo, recibo un error 'Uno o más tipos de campos no están instalados correctamente. Vaya a la página de configuración de la lista para eliminar estos campos. '

Todos los elementos de la lista son del mismo tipo de contenido. El único error relevante en los registros de SP muestra el mismo mensaje.

La respuesta no resolvió este problema específico, pero terminó siendo correcta (los O tienen que estar anidados). El problema fue que mi campo Tipo de valor debería haber sido FileRef.

¿Fue útil?

Solución

Este error es casi siempre porque su consulta CAML es incorrecta. ¿Has intentado formatearlo así?

<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>

Estoy bastante seguro de que solo puedes tener dos componentes en una rama Or o And.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top