sharepoint - क्या यह सीएमएल क्वेरी के लिए सही सिंटैक्स है?



sharepoint-2010 caml (1)

मेरे पास काम करने वाली एक सीएमएल क्वेरी है:

<View><Query><Where><Eq><FieldRef Name=\'ptli_TravelersEmail\' /><Value Type=\'Text\'>' + payeename + '</Value></Eq></Where></Query></View>

... जो एक Sharepoint सूची से "अभिलेख" प्राप्त करता है जहां 'ptli_TravelersEmail' क्षेत्र का मान पारित एआरजी "पेरिनाम" के मूल्य के बराबर होता है

क्वेरी में एक अन्य खंड जोड़ने के लिए, "रिकॉर्ड्स" को पुनः प्राप्त करने के लिए जहां पूर्व सत्य है, लेकिन जहां 'ptli_preparer' फ़ील्ड में मान पारित एआरजी "उपयोगकर्ता नाम" के मूल्य के बराबर है, मुझे पूरी तरह से दोहराने की ज़रूरत है "कहां। एक्फ़ील्ड रिफ नेम.वैलू .. वेल। ईक। कहाँ" अनुभाग, इस तरह से:

<View><Query><Where><Eq><FieldRef Name=\'ptli_TravelersEmail\' /><Value Type=\'Text\'>' + payeename + '</Value></Eq></Where><Where><Eq><FieldRef Name=\'ptli_preparer\' /><Value Type=\'Text\'>' + username + '</Value></Eq></Where></Query></View>

... या मेरा वाक्यविन्यास बंद है?

मैं सिर्फ यह कोशिश कर सकता हूं और पता लगा सकता हूं, मुझे पता है, लेकिन शेयरपॉइंट में बिल्ड / रन / टेस्ट प्रक्रिया थोड़ी थोड़ी देर लेती है, और मैं उम्मीद कर रहा हूं कि कुछ विशेषज्ञ बल्लेबाज़ से सही जानता है।

https://code.i-harness.com


यहां एक सीएएमएल क्वेरी के लिए सामान्य प्रारूप है:

<View>
    <Query>
        <Where>
            <Eq>
                <FieldRef Name="Internal_Name_of_field" />
                <Value Type="Text">The value to filter against</Value>
            </Eq>
        </Where>
    </Query>
</View>

<Eq> अर्थ है "बराबर।" आप <Neq> (बराबर नहीं), <Lt> (से कम), <Leq> (से कम या बराबर), <Gt> (से ग्रेटर), <Geq> (या उससे बड़ा ), <Contains> , <IsNull> , और <IsNotNull>

जब आप अपनी सीएएमएल क्वेरी को कई शर्तों के लिए चाहते हैं, तो आप उनमें से दो को <And> टैग के एक समूह के अंदर जोड़ सकते हैं ( यहां प्रलेखित )।

<Where>
    <And>
        <Eq>
            <FieldRef Name="Internal_Name_of_field1" />
            <Value Type="Text">The value to filter against</Value>
        </Eq>
        <Eq>
            <FieldRef Name="Internal_Name_of_field2" />
            <Value Type="Text">The value to filter against</Value>
        </Eq>
    </And>
</Where>

आप मनमाने ढंग से जटिल प्रश्नों के निर्माण के लिए अन्य <And> और <Or> टैग के अंदर नेस्ट <And> टैग कर सकते हैं।

<Where>
    <And>
        <Eq>
            <FieldRef Name="Internal_Name_of_field1" />
            <Value Type="Text">The value to filter against</Value>
        </Eq>
        <And>
            <Eq>
                <FieldRef Name="Internal_Name_of_field2" />
                <Value Type="Text">The value to filter against</Value>
            </Eq>
            <Eq>
                <FieldRef Name="Internal_Name_of_field3" />
                <Value Type="Text">The value to filter against</Value>
            </Eq>
        </And>
    </And>
</Where>

<Value> तत्व में प्रयुक्त सटीक सिंटैक्स तुलना किए जा रहे क्षेत्र के प्रकार के आधार पर भिन्न हो सकते हैं। Type="Text" एकल पंक्ति पाठ क्षेत्रों के लिए काम करता है, लेकिन लुकअप फ़ील्ड, दिनांक फ़ील्ड्स, और व्यक्ति या समूह फ़ील्ड में अलग वाक्यविन्यास है।

अधिक उन्नत सीएएमएल प्रश्नों के लिए, OrderBy और RowLimit तत्वों की नियुक्ति नोट करें:

<View>
    <Query>
        <Where>
            <Eq>
                <FieldRef Name="Internal_Name_of_field" />
                <Value Type="Text">The value to filter against</Value>
            </Eq>
        </Where>
        <OrderBy>
            <FieldRef Name="Internal_Name_of_field" />
        </OrderBy>
    </Query>
    <RowLimit>500</RowLimit>
</View>