2008-10-14 9 views
2

Dans SP2007/MOSS Je dois exécuter une requête CAML contre une seule liste comme ceci:éléments de requête CAML avec les URL données

<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 de ce serait que j'ai SPListItemCollection des articles pour lequel j'avais les URL. Cependant, j'obtiens une erreur 'Un ou plusieurs types de champs ne sont pas correctement installés. Accédez à la page des paramètres de liste pour supprimer ces champs. "

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

La réponse n'a pas résolu ce problème spécifique mais a finalement été correcte (Ou doit être imbriquée). Le problème était que mon champ Value Type aurait dû être FileRef.

Répondre

3

Cette erreur est presque toujours due à une requête CAML incorrecte. Avez-vous essayé de 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 deux composants dans un ou Untel ou branche.

Questions connexes