Raztopina: SPQuery iskanje mape

Ta preteklem tednu je bilo izvajanje je "razvijajoči" rešitev za stranko, ki uporablja BDC in SPQuery in tekel v neki težava z SPQuery proti knjižnico dokumentov, ki vsebuje mape. Bottom line: dodelite "rekurzivni" atribut pogled poizvedbe.

Moj scenarij:

  • V ponedeljek, Upload dokument in nekaj meta podatke.
  • Naslednji teden, Dodam nov dokument. Veliko novega dokumenta meta podatkov temelji na dokumentu sem naložil v ponedeljek (ki smo jih poimenovali "glavni dokument").
  • Ustvarili smo spletno storitev fasado, ki zagotavlja BDC-prijazen vmesnik na seznam, tako da uporabniki lahko preprosto poiščete dokumenta ponedeljek preko naslov iskanje.
  • BDC podatkov stolpca zagotavlja prijazen uporabniški vmesnik. (To je del od svoj poskus v using BDC za bolj prijazno stolpec za iskanje).

Končni fasado storitev BDC uporablja poizvedbe, kot to storiti iskanje:

 // Uporablja U2U orodje za pomoč pri ustvarjanju te CAML poizvedbe.
      oQuery.Query =
        "<Kjer>";

      Če (titleFilter.Length > 0)
        oQuery.Query  =
          "  <In>";

      oQuery.Query  =
        "    <In>" +
        "      <GEQ>" +
        "        <FieldRef ime =  "DocumentId" />" +
        "        <Vrednost vrste =  "Text">" + minId + "</Vrednost>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef ime =  "DocumentId" />" +
        "        <Vrednost vrste =  "Text">" + maxId + "</Vrednost>" +
        "      </LEQ>" +
        "    </In>";

      Če (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Vsebuje>" +
          "      <FieldRef ime =  "Title" />" +
          "      <Vrednost vrste =  "Text">" + titleFilter + "</Vrednost>" +
          "    </Vsebuje>" +
          "  </In>";
      oQuery.Query  =
        "</Kjer>";

V začetni fazi razvoja, to obdelan velik. Vendar, smo uvedli map v imeniku za reševanje nekaterih problemov in nenadoma, moj BDC izbirnik ne bi našlo zadetkov. Našel sem to do dejstva, da se SPQuery nikoli ne bi vrnila rezultatov. Smo uporabili mape predvsem omogočiti več datotek z istim imenom, da, vendar z različnimi meta podatkov. Ko je datoteka prenesena, smo ustvariti mapo, ki temeljijo na ID elementa seznama in nato premaknite datoteke tam (Sem pisal o tem tukaj; smo imeli mešane rezultate s tem pristopom, ampak na celotno, to deluje dobro). Uporabnik ne skrbi o mapah in dejansko, res ne razumem, da so vse mape. Smo nastavili vse poglede na knjižnici prikaz elementov ne mape.

Sem udaril težavo dvakrat kot tehnično izvajanje razvil in rešiti to drugače vsakič. Prvič, Sem bil ne uporabljate vsebuje operaterja v poizvedbi. Ne vsebuje operaterja, Sem mogel rešiti problem tako, da določite pogled na contructor na SPQuery. Namesto da bi uporabili privzeti konstruktor:

SPList.Update() oList = spletni.Seznami["Dokumenti"];

SPQuery oQuery = nove SPQuery();

Namesto tega sem rabil konstruktorja, ki določen pogled:

SPList.Update() oList = spletni.Seznami["Dokumenti"];

SPQuery oQuery = nove SPQuery(oList.Views["Vse dokumente"]);

To rešiti problem in sem začel, da se moje rezultate.

Potem sem dodal vsebuje operaterja v mešanici in se razšla še. Izkazalo se je, da vsebuje upravljavec, kolikor lahko povem, ne deluje s pogledom na enak način kot je enostavnejša GEQ / Operaterji LEQ. Did neki preiskava ter se naučili, da poizvedbe ViewAttributes naj bi "Rekurzivni", kot v:

oQuery.ViewAttributes = "Obseg = "Recursive"";

To rešiti naloga za vsebuje. v bistvu, tudi to rešiti svoj prvotni problem iskanja in če sem imel določeno rekurzivno atribut prvič, Jaz bi ne predelati v izdaja spet.

Dejstvo, da na podlagi pogleda SPQuery deluje pri nekaterih operaterjih (GEQ/LEQ) drugih pa ne (VSEBUJE), skupaj z dejstvom, da KPI ne zdi, da dela na vseh, z mapo, ki vsebuje dokument knjižnice vodi mi verjeti, da je SPQuery nekaj orthogonality vprašanj.

Posebna zahvala:

  • Dobri ljudje na U2U in svoje poizvedbe orodje.
  • Michael Hoffer je super "učenje z delom" blog post, Komentarji in Odzivi.

</namen>

Naročite se na moj blog!

3 misli o "Raztopina: SPQuery iskanje mape

  1. Nobeno ime

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

    Odgovor

Leave a Reply to Paul Galvin preklicati odgovor

Vaš e-naslov ne bo objavljen. Obvezna polja so označena *