Question

Dans SP2007 / MOSS, je dois exécuter une requête CAML sur une liste unique, comme suit:

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

Le résultat pratique en serait que je dispose d'une collection SPListItemCollection des éléments pour lesquels j'ai eu les URL.

Cependant, un message d'erreur s'affiche: "Un ou plusieurs types de champs ne sont pas installés correctement. Accédez à la page des paramètres de liste pour supprimer ces champs. '

Tous les éléments de la liste ont le même type de contenu. La seule erreur pertinente dans les journaux du SP indique le même message.

La réponse ne résout pas ce problème spécifique mais finit par être correcte (ou doit être imbriquée). Le problème était que mon champ Type de valeur aurait dû être FileRef.

Était-ce utile?

La solution

Cette erreur est presque toujours parce que votre requête CAML est incorrecte. Avez-vous essayé de le formater comme ceci:

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

Je suis sûr que vous ne pouvez avoir que deux composants dans une branche Ou ou Et.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top