سؤال

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

والنتيجة العملية لهذا سيكون أن لدي SPListItemCollection من البنود التي كان لي عناوين المواقع.

ولكن، أنا على الحصول على خطأ "لم يتم تثبيت واحد أو أكثر أنواع الحقول بشكل صحيح. انتقل إلى صفحة إعدادات القائمة لحذف هذه المجالات ".

وكافة العناصر في القائمة هي من نفس نوع المحتوى. الخطأ الوحيد ذات الصلة في سجلات SP يظهر نفس الرسالة.

والجواب لم تحل هذه المشكلة ولكن لم ينتهي الامر صحيح (أور أن تكون متداخلة). وهذا هو بلدي حقل نوع القيمة كان ينبغي أن يكون مشكلة 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>

وأنا متأكد من أنك يمكن أن يكون عنصرين فقط في أو أو والفرع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top