समाधान: SPQuery फ़ोल्डर्स खोज नहीं करती.

पिछले हफ्ते मैं को लागू करने था एक "विकसित हो" एक ग्राहक है कि BDC और SPQuery का उपयोग करता है और कुछ कठिनाई SPQuery युक्त फ़ोल्डर्स किसी दस्तावेज़ लायब्रेरी के खिलाफ का उपयोग कर में भाग के लिए समाधान. नीचे पंक्ति: "रीकर्सिव असाइन करें" क्वेरी से विशेषता देखें करने के लिए.

मेरी परिदृश्य:

  • सोमवार को, मैं एक दस्तावेज़ अपलोड करें और कुछ मेटा डेटा की आपूर्ति.
  • अगले हफ्ते, मैं एक नया दस्तावेज़ अपलोड करें. इस नए दस्तावेज़ का मेटा डेटा का ज्यादा मैं सोमवार को अपलोड किया गया दस्तावेज़ पर आधारित है (जो हम कहते हैं "मुख्य दस्तावेज़").
  • हम एक वेब सेवा मुखौटे कि सूची के लिए कोई BDC के अनुकूल इंटरफेस प्रदान करता है जिससे कि उपयोगकर्ताओं को आसानी से एक शीर्षक खोज के माध्यम से उस सोमवार दस्तावेज़ का पता लगाने कर सकते हैं बनाया है.
  • कोई BDC डेटा स्तंभ एक उपयोगकर्ता के अनुकूल इंटरफेस प्रदान करता है. (यह एक अधिक दोस्ताना लुकअप स्तंभ के लिए BDC का उपयोग करने पर मेरे प्रयास का हिस्सा है).

अंतिम BDC मुखौटे सेवा लुकअप करने के लिए इस तरह की एक क्वेरी का उपयोग करता है:

 // U2U उपकरण इस CAML क्वेरी पैदा करने में सहायता करने के लिए प्रयुक्त.
      oQuery.Query =
        "<जहाँ>";

      अगर (titleFilter.Length > 0)
        oQuery.Query   =
          "  <और>";

      oQuery.Query   =
        "    <और>" +
        "      <Geq>" +
        "        <FieldRef नाम =  "DocumentId" />" +
        "        <मान प्रकार =  "Text">" + minId + "</मान>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef नाम =  "DocumentId" />" +
        "        <मान प्रकार =  "Text">" + maxId + "</मान>" +
        "      </Leq>" +
        "    </और>";

      अगर (titleFilter.Length > 0)
        oQuery.Query   =
          "    <होता है>" +
          "      <FieldRef नाम =  "Title" />" +
          "      <मान प्रकार =  "Text">" + titleFilter + "</मान>" +
          "    </होता है>" +
          "  </और>";
      oQuery.Query   =
        "</जहाँ>";

विकास के प्रारंभिक चरण के दौरान, यह बहुत अच्छा काम किया. हालांकि, हम कुछ समस्याओं को हल करने के लिए निर्देशिका में फ़ोल्डर्स की शुरुआत की और अचानक, मेरी BDC पिकर किसी भी परिणाम वापस नहीं होता. मैं इस तथ्य यह है कि SPQuery कोई भी परिणाम वापस कभी नहीं होगा के लिए नीचे ट्रैक किया. हम मुख्य रूप से एकाधिक फ़ाइलें अपलोड किया जा करने के लिए एक ही नाम के साथ, लेकिन अलग अलग मेटा डेटा के साथ की अनुमति दें करने के लिए फ़ोल्डर्स इस्तेमाल किया. जब फ़ाइल अपलोड की गई है, हम सूची आइटम की आईडी पर आधारित एक फ़ोल्डर बनाएँ और तब फ़ाइल को वहाँ ले जाएँ (मैं उस के बारे में लिखा था यहाँ; हम लिया है मिश्रित परिणाम इस दृष्टिकोण के साथ, लेकिन पूरे पर, यह अच्छी तरह से काम कर रहा है). उपयोगकर्ता फ़ोल्डर्स के बारे में और वास्तव में परवाह नहीं, सच में नहीं समझते हैं कि वहाँ किसी भी फ़ोल्डर्स. हम कॉन्फ़िगर करने सभी आइटम्स के संबंध के बिना फ़ोल्डर्स दिखाने के लिए लायब्रेरी पर बार देखे गए.

मैं इस समस्या तकनीकी कार्यान्वयन विकसित किया गया है और हल के रूप में दो बार इसे दूसरे तरीके से हर बार मारा. पहली बार, मैं क्वेरी में संग्रहित करता है ऑपरेटर का उपयोग कर नहीं था. बिना एक संग्रहित करता ऑपरेटर, मैं SPQuery contructor पर दृश्य निर्दिष्ट करके समस्या को हल करने में सक्षम था. डिफ़ॉल्ट निर्माता का उपयोग करने के बजाय:

SPList oList वेब =।सूचियाँ["दस्तावेज़"];

SPQuery oQuery = नई SPQuery();

मैं बजाय एक निर्माता एक दृश्य निर्दिष्ट करते थे:

SPList oList वेब =।सूचियाँ["दस्तावेज़"];

SPQuery oQuery = नई SPQuery(oList.Views["सभी दस्तावेज"]);

कि समस्या हल कर दी और मैं अपने परिणाम प्राप्त करने के लिए शुरू कर दिया.

मैं तो मिश्रण में संग्रहित करता है ऑपरेटर जोड़ दिया और इसे फिर से तोड़ दिया. यह जाता है कि बाहर इसमें ऑपरेटर, जहाँ तक मैं बता सकता हूँ, दृश्य के साथ एक ही तरह के रूप में काम नहीं करता है एक सरल GEQ / LEQ ऑपरेटर्स. मैं कुछ खोज किया था और सीखा है कि क्वेरी ViewAttributes "पुनरावर्ती करने के लिए" सेट किया जाना चाहिए, के रूप में:

oQuery.ViewAttributes = "गुंजाइश = "Recursive"";

कि संग्रहित करता है के लिए समस्या का हल. वास्तव में, यह मेरे मूल खोज समस्या भी हल हो और अगर मैं रीकर्सिव निर्दिष्ट किया था पहली बार विशेषता, मैं इस मुद्दे में फिर से चला होगा नहीं.

तथ्य यह है कि एक दृश्य-आधारित SPQuery कुछ ऑपरेटरों के लिए काम करता है (GEQ/LEQ) और दूसरों को नहीं (होता है), तथ्य यह है कि KPIs सब पर मुझे विश्वास है कि SPQuery कुछ orthogonality के मुद्दों के लिए दस्तावेज़ लायब्रेरीज़ फ़ोल्डर-युक्त सुराग के साथ काम करने के लिए नहीं लग रहे हो के साथ युग्मित.

विशेष धन्यवाद:

  • में अच्छे लोगों U2U और अपनी क्वेरी उपकरण.
  • माइकल विलियम ब्लेक ग्रेट "कर के सीखना" ब्लॉग पोस्ट, टिप्पणियाँ और प्रतिक्रियाएं.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें!

3 पर विचार "समाधान: SPQuery फ़ोल्डर्स खोज नहीं करती.

  1. कोई नाम नहीं

    http://www.batteryfast.co.uk/asus/w3v.htm asus w3v बैटरी,
    http://www.batteryfast.co.uk/asus/w3000a.htm asus w3000a बैटरी,
    http://www.batteryfast.co.uk/asus/w3000.htm asus w3000 बैटरी,
    http://www.batteryfast.co.uk/asus/w3000v.htm asus w3000v बैटरी,
    http://www.batteryfast.co.uk/asus/a31-s5.htm asus a31-s5 बैटरी,
    http://www.batteryfast.co.uk/asus/a32-s5.htm asus a32-s5 बैटरी,
    http://www.batteryfast.co.uk/asus/s52n.htm asus s52n बैटरी,
    http://www.batteryfast.co.uk/asus/s5000.htm asus s5000 बैटरी,
    http://www.batteryfast.co.uk/asus/s5200n.htm asus s5200n बैटरी,
    http://www.batteryfast.co.uk/asus/s5n.htm asus s5n बैटरी,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm asus 90-naa1b1000 बैटरी,
    http://www.batteryfast.co.uk/asus/s2691061.htm asus s2691061 बैटरी,
    http://www.batteryfast.co.uk/asus/a42-v6.htm asus a42-v6 बैटरी,
    http://www.batteryfast.co.uk/asus/a32-u5.htm asus a32-u5 बैटरी,
    http://www.batteryfast.co.uk/asus/u5f.htm asus u5f बैटरी,
    http://www.batteryfast.co.uk/asus/u5a.htm asus u5a बैटरी,
    http://www.batteryfast.co.uk/asus/u5f.htm asus u5f बैटरी,
    http://www.batteryfast.co.uk/asus/u5.htm asus u5 बैटरी,
    http://www.batteryfast.co.uk/compaq/nw8000.htm कॉम्पैक nw8000 बैटरी,
    http://www.batteryfast.co.uk/compaq/nc8000.htm कॉम्पैक nc8000 बैटरी,
    http://www.batteryfast.co.uk/compaq/v1000.htm कॉम्पैक v1000 बैटरी,
    http://www.batteryfast.co.uk/compaq/nc6000.htm कॉम्पैक nc6000 बाहर बैटरी,
    http://www.batteryfast.co.uk/compaq/nx5000.htm कॉम्पैक nx5000 बैटरी,
    http://www.batteryfast.co.uk/compaq/n600.htm कॉम्पैक n600 बैटरी,
    http://www.batteryfast.co.uk/compaq/n600c.htm कॉम्पैक n600c बैटरी,
    http://www.batteryfast.co.uk/compaq/n610c.htm कॉम्पैक n610c बैटरी,
    http://www.batteryfast.co.uk/compaq/n610v.htm कॉम्पैक n610v बैटरी,
    http://www.batteryfast.co.uk/compaq/n620c.htm कॉम्पैक n620c बैटरी,
    http://www.batteryfast.co.uk/compaq/e500.htm कॉम्पैक e500 बैटरी,
    http://www.batteryfast.co.uk/compaq/e500s.htm कॉम्पैक e500s बैटरी,
    http://www.batteryfast.co.uk/compaq/v300.htm कॉम्पैक v300 बैटरी,
    http://www.batteryfast.co.uk/compaq/v500.htm कॉम्पैक v500 बैटरी,
    http://www.batteryfast.co.uk/compaq/pp2060.htm कॉम्पैक pp2060 बैटरी,
    http://www.batteryfast.co.uk/compaq/nx9000.htm कॉम्पैक nx9000 बैटरी,
    http://www.batteryfast.co.uk/compaq/nx9005.htm कॉम्पैक nx9005 बैटरी,
    http://www.batteryfast.co.uk/compaq/nx9010.htm कॉम्पैक nx9010 बैटरी,
    http://www.batteryfast.co.uk/compaq/nx9020.htm कॉम्पैक nx9020 बैटरी,
    http://www.batteryfast.co.uk/compaq/n110.htm कॉम्पैक n110 बैटरी,
    http://www.batteryfast.co.uk/compaq/n110s.htm कॉम्पैक n110s बैटरी,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm कॉम्पैक pp2101x बैटरी,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm कॉम्पैक प्रेसारियो 2100 बैटरी,
    http://www.batteryfast.co.uk/compaq/ze4000.htm कॉम्पैक ze4000 बैटरी,
    http://www.batteryfast.co.uk/compaq/f4809a.htm कॉम्पैक f4809a बैटरी,
    http://www.batteryfast.co.uk/compaq/f4812a.htm कॉम्पैक f4812a बैटरी,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm dell inspiron ७०० मीटर बैटरी,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm dell inspiron 710 मीटर बैटरी,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm dell अक्षांश x 200 बैटरी,
    http://www.batteryfast.co.uk/dell/8u443.htm डेल 8u443 बैटरी,
    http://www.batteryfast.co.uk/dell/312-0058.htm डेल 312-0058 बैटरी,

करने के लिए एक उत्तर दें छोड़ दो पॉल Galvin उत्तर रद्द करे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *