แบบสอบถาม CAML ที่มีปัญหาประกอบด้วยและหรือข้อ

สิ่งที่ฉันต้องการบรรลุ : ใช้อาร์เรย์คำหลักเป็นอินพุตและค้นหารายการ Sharepoint เพื่อส่งคืนแถวทั้งหมดที่มีคำหลักในรายการ

ฉันได้สร้างแบบสอบถาม CAML ง่ายๆ เพื่อสืบค้นรายการของฉันด้วยคำหลักคำเดียว (pdf)

<Query><Where><Contains><FieldRef Name='Keyword'/><Value Type='Text'>pdf</Value></Contains></Where></Query>

มันใช้งานได้ดี

แต่เมื่อฉันพยายามใช้ Or clause ในแบบสอบถาม CAML (ดูด้านล่าง) ฉันได้รับข้อผิดพลาดต่อไปนี้

"ประเภทฟิลด์อย่างน้อยหนึ่งประเภทไม่ได้ติดตั้งอย่างถูกต้อง ไปที่หน้าการตั้งค่ารายการเพื่อลบฟิลด์เหล่านี้"

<Query><Where><Or><Contains><FieldRef Name='Keyword'/><Value Type='Text'>pdf</Value></Contains></Or></Where></Query>

ฉันค้นหาไวยากรณ์ใน Google และทุกอย่างดูดี โปรดแจ้งให้เราทราบสิ่งที่หายไป

ขอบคุณล่วงหน้า.


person c_y    schedule 05.07.2012    source แหล่งที่มา
comment
หากคุณใช้ SharePoint 2007 อาจมีในปี 2010 ด้วยซ้ำ) ฉันขอแนะนำให้คุณลองใช้ CAML builder จะทำให้ชีวิตของคุณง่ายขึ้น!   -  person Truezplaya    schedule 05.07.2012
comment
ขออภัย Truezplaya..บริษัทของฉันมีข้อจำกัดในการดาวน์โหลดซอฟต์แวร์ ฉันใช้บริการรายการใน sharepoint จาก Javascript ของฉันเท่านั้น และจะไม่ต้องการมันอีกในอนาคต มีเครื่องมือออนไลน์สำหรับประเมินไวยากรณ์หรือไม่?   -  person c_y    schedule 05.07.2012
comment
น่าเสียดาย ฉันไม่คิดว่าจะมี เครื่องมือนี้จะปรับปรุงประสิทธิภาพเมื่อเขียน CAML ดังนั้นฉันคิดว่าคุณน่าจะมีกรณีที่ดีในการรับสำเนา หากคุณเขียน CAML อีกครั้ง ฉันมั่นใจว่าคุณจะต้องเจอมันอีกครั้ง!   -  person Truezplaya    schedule 06.07.2012


คำตอบ (2)


ใน CAML Query หากคุณต้องการใช้ OR คุณต้องและควรมี 2 เงื่อนไข

person bhargava    schedule 05.07.2012
comment
จำนวนคำหลักอาจเป็น 1-n ฉันกำลังสร้างส่วนคำสั่ง Where แบบไดนามิก ตามที่ฉันเข้าใจ ฉันต้องยกเว้น OR clause หากมีคำหลักหนึ่งคำ และรวมไว้ด้วยหากมีมากกว่าหนึ่งคำ ? - person c_y; 05.07.2012

ชื่อการอ้างอิงฟิลด์ต้องเป็นชื่อภายใน คุณสามารถค้นหาได้โดยไปที่หน้า colmn ในการตั้งค่ารายการ/ไลบรารี และชื่ออยู่ที่ส่วนท้ายของ URL ช่องว่างและขีดล่างในชื่อจะต้องได้รับการจัดการแตกต่างกัน

person zen00    schedule 21.07.2012