2

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>

これの実際の結果は、UR​​L を持っていた項目の SPListItemCollection を取得することです。

ただし、「1 つ以上のフィールド タイプが正しくインストールされていません。これらのフィールドを削除するには、リスト設定ページに移動してください。

リスト内のアイテムはすべて同じコンテンツ タイプです。SP ログの唯一の関連するエラーは、同じメッセージを示しています。

答えはこの特定の問題を解決しませんでしたが、最終的には正しいものになりました(またはネストする必要があります)。問題は、フィールドの値のタイプが FileRef であるべきだったことです。

4

1 に答える 1

3

このエラーは、ほとんどの場合、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 ブランチには 2 つのコンポーネントしか持てないと確信しています。

于 2008-10-16T10:08:13.790 に答える