質問

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 ログ内の唯一の関連エラーには、同じメッセージが表示されます。

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

役に立ちましたか?

解決

このエラーは、ほとんどの場合、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 つのコンポーネントしか含めることができないと確信しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top