Roztok: SPQuery neprehľadáva priečinky

Minulý týždeň som sa vykonáva "vyvíja" riešenie pre klienta, ktorý využíva BDC a SPQuery a narazil na niektoré problémy s používaním SPQuery proti knižnice dokumentov, ktorá obsahuje priečinky. Sečteno podtrženo: priradiť "rekurzívne" atribút zobrazenia dotazu.

Môj scenár:

  • V pondelok, Nahrať dokument a poskytnúť nejaké meta údaje.
  • Nasledujúci týždeň, Nahrať nový dokument. Moc tento nový dokument meta údajov vychádza z dokumentov, ktoré som nahral v pondelok (ktorú nazývame "nadradený dokument").
  • Sme vytvorili webovú službu fasádou, ktorá poskytuje BDC-priateľské rozhranie do zoznamu tak, aby užívatelia mohli ľahko vyhľadať pondelok dokumentu prostredníctvom vyhľadávania na názov.
  • Stĺpec údajov BDC poskytuje priateľské užívateľské rozhranie. (Toto je časť môjho pokusu pomocou BDC šetrnejší vyhľadávacieho stĺpca).

Konečné fasádu služba BDC používa dotaz ako to urobiť vyhľadávanie:

 // Použité U2U nástroj na pomoc pri vytváraní dotazu CAML.
      oQuery.Query =
        "<Kde>";

      Ak (titleFilter.Length > 0)
        oQuery.Query  =
          "  <A>";

      oQuery.Query  =
        "    <A>" +
        "      <GEQ>" +
        "        <FieldRef meno =  "DocumentId" />" +
        "        <Typ hodnoty =  "Text">" + minId + "</Hodnota>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef meno =  "DocumentId" />" +
        "        <Typ hodnoty =  "Text">" + maxId + "</Hodnota>" +
        "      </LEQ>" +
        "    </A>";

      Ak (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Obsahuje>" +
          "      <FieldRef meno =  "Title" />" +
          "      <Typ hodnoty =  "Text">" + titleFilter + "</Hodnota>" +
          "    </Obsahuje>" +
          "  </A>";
      oQuery.Query  =
        "</Kde>";

V počiatočnej fáze vývoja, Táto skvelá pracoval. Avšak, sme zaviedli priečinky do adresára vyriešiť niektoré problémy a zrazu, môj výber BDC nechcel vrátiť žiadne výsledky. Sledoval som to tým, že SPQuery by sa nikdy nevráti žiadne výsledky. Použili sme priečinky predovšetkým umožniť viac súborov s rovnakým názvom byť nahraný, ale s rôznymi meta dáta. Keď sa súbor odovzdáva, vytvoríme priečinok na základe identifikácia položky zoznamu a potom premiestnite súbor tam (Napísal som o tom tu; mali sme zmiešané výsledky s týmto prístupom, ale na celom, to funguje dobre). Užívateľ nestarajú o priečinkoch a v skutočnosti, nechápe, že neexistujú žiadne priečinky. Sme nakonfigurovaný všetkých zobrazení knižnice na zobrazenie položiek bez ohľadu na priečinky.

Trafil som tento problém dvakrát ako technickú realizáciu vyvinul a vyriešil to inak zakaždým. Po prvýkrát, Nebol pomocou operátora obsahuje v dotaze. Bez toho, aby prevádzkovateľ obsahuje, Bol som schopný vyriešiť zadaním pohľad na SPQuery contructor. Namiesto použitia predvolený konštruktor:

SPList oList = web.Zoznamy["Dokumenty"];

SPQuery oQuery = nové SPQuery();

Namiesto toho použiť konštruktor uvedenej zobrazenie:

SPList oList = web.Zoznamy["Dokumenty"];

SPQuery oQuery = nové SPQuery(oList.Views["Všetky dokumenty"]);

Problém vyriešil a začal som sa dostať moje výsledky.

Následne sa pridá operátor obsahuje do mixu a to zlomil znova. Ukazuje sa, že obsahuje operátora, tak ďaleko, ako môžete povedať, nefunguje s názorom rovnakým spôsobom ako jednoduchšie GEQ / Prevádzkovatelia LEQ. Urobil nejaké vyhľadávanie a dozvedel, že atribúty zobrazenia dotazu by byť nastavená na "Rekurzívne", rovnako ako v:

oQuery.ViewAttributes = "Rozsah = "Recursive"";

Že problém vyriešil za obsahuje. v skutočnosti, to tiež môj pôvodný Hľadať problém vyriešený a ak mal špecifikovať rekurzívny atribút prvýkrát, Mám by nie bežať na otázku znova.

Skutočnosť, že view-založené SPQuery pracuje niekoľko prevádzkovateľov (GEQ/LEQ) a iné nie (OBSAHUJE), spolu s tým, že indikátory KPI nezdá sa pracovať vôbec priečinok obsahujúci dokument knižnice vedie mi veriť, že SPQuery má niektorí orthogonality problémy.

Osobitné poďakovanie:

  • Dobrý ľudí na U2U a nástroj ich dotazu.
  • Michael Hoffer veľký "učenie praxou" blogu, Komentáre a reakcie.

</koniec>

Vyberajte môj blog!

3 myšlienky na "Roztok: SPQuery neprehľadáva priečinky

  1. Bez názvu

    http://www.batteryfast.co.uk/asus/w3v.htm batéria Asus w3v,
    http://www.batteryfast.co.uk/asus/w3000a.htm batéria Asus w3000a,
    http://www.batteryfast.co.uk/asus/w3000.htm batéria Asus w3000,
    http://www.batteryfast.co.uk/asus/w3000v.htm batéria Asus w3000v,
    http://www.batteryfast.co.uk/asus/a31-s5.htm batéria Asus a31 s5,
    http://www.batteryfast.co.uk/asus/a32-s5.htm batéria Asus a32 s5,
    http://www.batteryfast.co.uk/asus/s52n.htm batéria Asus s52n,
    http://www.batteryfast.co.uk/asus/s5000.htm batéria Asus s5000,
    http://www.batteryfast.co.uk/asus/s5200n.htm batéria Asus s5200n,
    http://www.batteryfast.co.uk/asus/s5n.htm batéria Asus s5n,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm batéria Asus 90-naa1b1000,
    http://www.batteryfast.co.uk/asus/s2691061.htm batéria Asus s2691061,
    http://www.batteryfast.co.uk/asus/a42-v6.htm batéria Asus a42-v6,
    http://www.batteryfast.co.uk/asus/a32-u5.htm batéria Asus a32-u5,
    http://www.batteryfast.co.uk/asus/u5f.htm batéria Asus u5f,
    http://www.batteryfast.co.uk/asus/u5a.htm batéria Asus u5a,
    http://www.batteryfast.co.uk/asus/u5f.htm batéria Asus u5f,
    http://www.batteryfast.co.uk/asus/u5.htm batéria Asus u5,
    http://www.batteryfast.co.uk/compaq/nw8000.htm batéria Compaq nw8000,
    http://www.batteryfast.co.uk/compaq/nc8000.htm batéria Compaq nc8000,
    http://www.batteryfast.co.uk/compaq/v1000.htm batéria Compaq v1000,
    http://www.batteryfast.co.uk/compaq/nc6000.htm batéria Compaq nc6000,
    http://www.batteryfast.co.uk/compaq/nx5000.htm batéria Compaq nx5000,
    http://www.batteryfast.co.uk/compaq/n600.htm batéria Compaq n600,
    http://www.batteryfast.co.uk/compaq/n600c.htm batéria Compaq n600c,
    http://www.batteryfast.co.uk/compaq/n610c.htm batéria Compaq n610c,
    http://www.batteryfast.co.uk/compaq/n610v.htm batéria Compaq n610v,
    http://www.batteryfast.co.uk/compaq/n620c.htm batéria Compaq n620c,
    http://www.batteryfast.co.uk/compaq/e500.htm batéria Compaq e500,
    http://www.batteryfast.co.uk/compaq/e500s.htm batéria Compaq e500s,
    http://www.batteryfast.co.uk/compaq/v300.htm batéria Compaq v300,
    http://www.batteryfast.co.uk/compaq/v500.htm batéria Compaq v500,
    http://www.batteryfast.co.uk/compaq/pp2060.htm batéria Compaq pp2060,
    http://www.batteryfast.co.uk/compaq/nx9000.htm batéria Compaq nx9000,
    http://www.batteryfast.co.uk/compaq/nx9005.htm batéria Compaq nx9005,
    http://www.batteryfast.co.uk/compaq/nx9010.htm batéria Compaq nx9010,
    http://www.batteryfast.co.uk/compaq/nx9020.htm Compaq nx9020 batérie,
    http://www.batteryfast.co.uk/compaq/n110.htm batéria Compaq n110,
    http://www.batteryfast.co.uk/compaq/n110s.htm batéria Compaq n110s,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm batéria Compaq pp2101x,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm Compaq presario 2100 batérie,
    http://www.batteryfast.co.uk/compaq/ze4000.htm batéria Compaq ze4000,
    http://www.batteryfast.co.uk/compaq/f4809a.htm batéria Compaq f4809a,
    http://www.batteryfast.co.uk/compaq/f4812a.htm batéria Compaq f4812a,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm Dell inspiron 700m batérie,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm Dell inspiron 710m batérie,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm batéria Dell latitude x 200,
    http://www.batteryfast.co.uk/dell/8u443.htm Dell 8u443 batérie,
    http://www.batteryfast.co.uk/dell/312-0058.htm Dell 312-0058 batérie,

    Odpoveď

Zanechajte odpovedať na Paul Galvin zrušiť odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *