ಪರಿಹಾರ: SPQuery ಫೋಲ್ಡರುಗಳು ಹುಡುಕು ಮಾಡುತ್ತಿಲ್ಲ

This past week I was implementing an "evolving" solution for a client that uses BDC and SPQuery and ran into some difficulty using SPQuery against a document library containing folders. ಬಾಟಮ್ ಲೈನ್: assign "recursive" ಪ್ರಶ್ನೆಗೆ ನೋಟ ಗುಣಲಕ್ಷಣ ಗೆ.

ನನ್ನ ಸನ್ನಿವೇಶದಲ್ಲಿ:

  • ಸೋಮವಾರ, ನಾನು ಡಾಕ್ಯುಮೆಂಟ್ ಅಪ್ಲೋಡ್ ಮತ್ತು ಕೆಲವು ಮೆಟಾ ಅಕ್ಷಾಂಶ ಪೂರೈಕೆ.
  • ಮುಂದಿನ ವಾರ, I upload a new document. Much of this new document’s meta data is based on the document I uploaded on Monday (which we call the "master document").
  • ಬಳಕೆದಾರರು ಸುಲಭವಾಗಿ ಶೀರ್ಷಿಕೆ ಹುಡುಕಾಟ ಮೂಲಕ ಎಂದು ಸೋಮವಾರ ಡಾಕ್ಯುಮೆಂಟ್ ಪತ್ತೆ ಇದರಿಂದ ನಾವು ಪಟ್ಟಿಗೆ ಒಂದು BDC ಸ್ನೇಹಿ ಇಂಟರ್ಫೇಸ್ ಒದಗಿಸುವ ಒಂದು ವೆಬ್ ಸೇವೆ ಮುಂಭಾಗ ರಚಿಸಿದ.
  • A BDC data column provides a friendly user interface. (ಇದು ಹೆಚ್ಚು ಸ್ನೇಹಿ ಲುಕಪ್ ಕಾಲಮ್ BDC ಬಳಸಿಕೊಂಡು ನನ್ನ ಪ್ರಯತ್ನದ ಭಾಗವಾಗಿದೆ).

ಅಂತಿಮ BDC ಮುಂಭಾಗ ಸೇವೆ ವೀಕ್ಷಣ ಮಾಡಲು ಈ ರೀತಿಯ ಪ್ರಶ್ನೆಯನ್ನು ಬಳಸುತ್ತದೆ:

 // ಈ CAML ಪ್ರಶ್ನೆಗೆ ಉತ್ಪಾದಿಸುವ ನೆರವಾಗಲು ಉಪಯೋಗಿಸಿದ U2U ಉಪಕರಣ.
      oQuery.Query =
        "<ಎಲ್ಲಿ>";

      ವೇಳೆ (titleFilter.Length > 0)
        oQuery.Query   =
          "  <ಮತ್ತು>";

      oQuery.Query   =
        "    <ಮತ್ತು>" +
        "      <Geq>" +
        "        <FieldRef Name=\"DocumentId\" />" +
        "        <Value Type=\"Text\">" + MinID + "</ಮೌಲ್ಯ>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef Name=\"DocumentId\" />" +
        "        <Value Type=\"Text\">" + maxId + "</ಮೌಲ್ಯ>" +
        "      </Leq>" +
        "    </ಮತ್ತು>";

      ವೇಳೆ (titleFilter.Length > 0)
        oQuery.Query   =
          "    <ಹೊಂದಿದ್ದರೆ>" +
          "      <FieldRef Name=\"Title\" />" +
          "      <Value Type=\"Text\">" + titleFilter + "</ಮೌಲ್ಯ>" +
          "    </ಹೊಂದಿದ್ದರೆ>" +
          "  </ಮತ್ತು>";
      oQuery.Query   =
        "</ಎಲ್ಲಿ>";

ಅಭಿವೃದ್ಧಿಯ ಆರಂಭಿಕ ಹಂತದ ಅವಧಿಯಲ್ಲಿ, this worked great. ಹೇಗಾದರೂ, ನಾವು ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಕೆಲವು ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಮತ್ತು ಕೋಶಕ್ಕೆ ಫೋಲ್ಡರ್ಗಳನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು, my BDC picker wouldn’t return any results. I tracked this down to the fact that the SPQuery would never return any results. We used folders primarily to allow multiple files with the same name to be uploaded but with different meta data. When the file is uploaded, ನಾವು ಪಟ್ಟಿ ಐಟಂನ ID ಆಧರಿಸಿ ಫೋಲ್ಡರ್ ರಚಿಸಲು ಮತ್ತು ನಂತರ ಅಲ್ಲಿ ಫೈಲ್ ಸರಿಸಲು (ನಾನು ಆ ಬಗ್ಗೆ ಬರೆದಿದ್ದಾರೆ ಇಲ್ಲಿ; ನಾವು ಹೊಂದಿತ್ತು ಬಂದಿದೆ ಮಿಶ್ರ ಫಲಿತಾಂಶಗಳನ್ನು ಈ ವಿಧಾನ ಆದರೆ ಒಟ್ಟಾರೆಯಾಗಿ, ಇದು ಚೆನ್ನಾಗಿ ಕೆಲಸ ವಿಶೇಷವೇನು). The user don’t care about folders and in fact, don’t really understand that there are any folders. We have configured all the views on the library to show items without regard to folders.

I hit this problem twice as the technical implementation evolved and solved it differently each time. The first time, I wasn’t using the CONTAINS operator in the query. Without a CONTAINS operator, I was able to solve the problem by specifying the view on the SPQuery’s contructor. Instead of using the default constructor:

SPList oList = web.Lists["Documents"];

SPQuery oQuery = ಹೊಸ SPQuery();

ನಾನು ಬದಲಿಗೆ ವೀಕ್ಷಿಸಿ ಸ್ಪೆಸಿಫೈಡ್ ನಿರ್ಮಾಣಕಾರ ಬಳಸಲಾಗುತ್ತದೆ:

SPList oList = web.Lists["Documents"];

SPQuery oQuery = ಹೊಸ SPQuery(oList.Views["All Documents"]);

ಆ ಸಮಸ್ಯೆಗೆ ಪರಿಹಾರ ಮತ್ತು ನನ್ನ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆಯಲು ಪ್ರಾರಂಭಿಸಿದರು.

I then added the CONTAINS operator into the mix and it broke again. It turns out that the CONTAINS operator, ಇಲ್ಲಿಯವರೆಗೆ ನಾನು ಹೇಳಬಲ್ಲೆ ಮಾಹಿತಿ, ಒಂದು ಸರಳ GEQ ಮಾಹಿತಿ ದೃಷ್ಟಿಯಿಂದ ಅದೇ ರೀತಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ / LEQ operators. I did some searching and learned that the query’s ViewAttributes should be set to "Recursive", ನಲ್ಲಿ:

oQuery.ViewAttributes = "Scope=\"Recursive\"";

That solved the problem for CONTAINS. ವಾಸ್ತವವಾಗಿ, ಇದು ನನ್ನ ಮೂಲ ಹುಡುಕು ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಬಹುದು ಮತ್ತು ನಾನು ಪುನರಾವರ್ತಿತ ಗುಣಲಕ್ಷಣ ಮೊದಲ ಬಾರಿಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಂದು, ನಾನು ಮತ್ತೆ ಸಮಸ್ಯೆಯನ್ನು ಎದುರಾದವು ಎಂದು.

ಒಂದು ನೋಟ ಆಧಾರಿತ SPQuery ಕೆಲವು ನಿರ್ವಾಹಕರು ಕೆಲಸ ಎಂದು ವಾಸ್ತವವಾಗಿ (GEQ/LEQ) ಮತ್ತು ಇತರರು (ಹೊಂದಿದ್ದರೆ), KPIs ಫೋಲ್ಡರ್ ಹೊಂದಿರುವ ಡಾಕ್ಯುಮೆಂಟ್ ಗ್ರಂಥಾಲಯಗಳು ಜೊತೆಗೆ ಕೆಲಸ ತೋರುತ್ತಿಲ್ಲ ಎಂಬ ಅಂಶವೂ ಸೇರಿಕೊಂಡು ನನ್ನನ್ನು SPQuery ಕೆಲವು ಆರ್ಥೊಗೊನಾಲಿಟಿಯನ್ನ ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿದೆ ನಂಬಲು ದಾರಿ.

ವಿಶೇಷ ಧನ್ಯವಾದಗಳು:

  • ಉತ್ತಮ ಜನರಾಗಿದ್ದರು U2U ಮತ್ತು ಅವರ ಪ್ರಶ್ನೆಗೆ ಉಪಕರಣ.
  • ಮೈಕೆಲ್ ಹಾಫರ್ ಶ್ರೇಷ್ಠ "ಮಾಡುವುದರ ಮೂಲಕ ಕಲಿಯುವುದರ" ಬ್ಲಾಗ್ ಪೋಸ್ಟ್, ಕಾಮೆಂಟ್ಗಳನ್ನು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಗಳು.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ!

3 ಮೇಲೆ "ಆಲೋಚನೆಗಳುಪರಿಹಾರ: SPQuery ಫೋಲ್ಡರುಗಳು ಹುಡುಕು ಮಾಡುತ್ತಿಲ್ಲ

  1. ಹೆಸರಿಲ್ಲ

    http://www.batteryfast.co.uk/asus/w3v.htm ಏಸಸ್ w3v ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/w3000a.htm asus w3000a battery,
    http://www.batteryfast.co.uk/asus/w3000.htm ಏಸಸ್ w3000 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/w3000v.htm ಏಸಸ್ w3000v ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/a31-s5.htm ಏಸಸ್ a31-S5 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/a32-s5.htm ಏಸಸ್ a32-S5 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/s52n.htm ಏಸಸ್ s52n ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/s5000.htm ಏಸಸ್ s5000 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/s5200n.htm ಏಸಸ್ s5200n ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/s5n.htm ಏಸಸ್ s5n ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm ಏಸಸ್ 90 naa1b1000 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/s2691061.htm ಏಸಸ್ s2691061 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/a42-v6.htm ಏಸಸ್ a42-V6 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/a32-u5.htm ಏಸಸ್ a32-U5 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/u5f.htm ಏಸಸ್ u5f ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/u5a.htm ಏಸಸ್ ಬ್ಯಾಟರಿ U5A,
    http://www.batteryfast.co.uk/asus/u5f.htm ಏಸಸ್ u5f ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/asus/u5.htm ಏಸಸ್ 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 ಡೆಲ್ ಇನ್ಸ್ಪಿರೇಶನ್ 700m ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm ಡೆಲ್ ಇನ್ಸ್ಪಿರೇಶನ್ 710m ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm ಡೆಲ್ ಅಕ್ಷಾಂಶ X200 ಬ್ಯಾಟರಿ,
    http://www.batteryfast.co.uk/dell/8u443.htm ಡೆಲ್ ಬ್ಯಾಟರಿ 8u443,
    http://www.batteryfast.co.uk/dell/312-0058.htm ಕಿರುಕಣಿವೆ 312-0058 ಬ್ಯಾಟರಿ,

ಒಂದು ಉತ್ತರಿಸಿ ಬಿಡಿ ಪಾಲ್ ಗಾಲ್ವಿನ್ ಉತ್ತರ ರದ್ದು

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ರ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *