Ratkaisu: SPQuery ei etsi kansioita

Tämä viime viikolla, olin täytäntöönpanosta "kehittyy" ratkaisu on asiakas, joka käyttää BDC sekä SPQuery ja joutui vaikeuksia käyttää SPQuery vastaan asiakirjakirjastoon, joka sisältää käyttäjätilikohtaiset kansiot. Bottom line: määrittää "rekursiivinen" kyselyn näkymä-määritteeseen.

Skenaarion:

  • Maanantaina, Asiakirjan lataaminen ja jotkin meta-tiedot.
  • Seuraavalla viikolla, Ladata uuden asiakirjan. Suuri osa tämän uuden asiakirjan metatietoa perustuu latasin maanantaina asiakirjaan (jota kutsumme "perusasiakirjan").
  • Olemme luoneet web service julkisivu, joka tarjoaa BDC-ystävällinen liitäntä luetteloon niin, että käyttäjä kanisteri helposti paikallistaa maanantai asiakirjan kautta otsikko haku.
  • BDC-tietosarakkeen tarjoaa ystävällinen käyttöliittymä. (Tämä on osa minun yritys käyttää BDC enemmän ystävällinen hakusaraketta varten).

Lopullinen yritystietoluettelopalvelua julkisivu käyttää kyselyn näin tehdä haun:

 // Apuna U2U työkalu tuottaa CAML-kysely.
      oQuery.Query =
        "<Jos>";

      Jos (titleFilter.Length > 0)
        oQuery.Query  =
          "  <Ja>";

      oQuery.Query  =
        "    <Ja>" +
        "      <GEQ>" +
        "        <FieldRef nimi =  "DocumentId" />" +
        "        <Arvon tyyppi =  "Teksti, hiiren avulla">" + minId + "</Arvo>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef nimi =  "DocumentId" />" +
        "        <Arvon tyyppi =  "Teksti, hiiren avulla">" + maxId + "</Arvo>" +
        "      </LEQ>" +
        "    </Ja>";

      Jos (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Sisältää>" +
          "      <FieldRef nimi =  "Title" />" +
          "      <Arvon tyyppi =  "Teksti, hiiren avulla">" + titleFilter + "</Arvo>" +
          "    </Sisältää>" +
          "  </Ja>";
      oQuery.Query  =
        "</Jos>";

Kehityksen alkuvaiheessa, nyt kuluva työntekijä erinomainen. Kuitenkin, kansiot tuodaan directory liittyvien ongelmien ja yhtäkkiä, BDC-valitsin ei ole tuloksia. Olen seurannut siitä, SPQuery ei koskaan palaa tuloksia. Käytimme kansiot ensisijaisesti mahdollistaa useita tiedostoja ladataan sama nimi mutta eri metatiedot. Kun tiedosto ladataan, Luo kansio luettelokohteen tunnuksen perusteella ja sitten siirtää tiedoston siellä (Kirjoitin siitä, että Täällä; Meillä on ollut vaihtelevia tuloksia tätä lähestymistapaa, mutta kaikki, se toimii hyvin). Käyttäjän välitä tietoja kansioista ja itse asiassa, eivät todellakaan ymmärrä, että on olemassa jokin kansio. Meillä on määritetty Kirjasto näyttää kohteet kansioiden riippumatta näkemyksiä.

Osuin kahdesti tekninen toteutus kehittynyt ja ratkaista se eri tavalla aina, kun ongelma. Ensimmäistä kertaa, Ei käytä sisältää-operaattoria kyselyssä. Ilman sisältää-operaattoria, Minulla oli mahdollisuus ratkaista ongelman määrittämällä sitä mieltä SPQuery contructor. Sen sijaan, että oletus rakentaja:

SPList oList = web.Luettelot["Asiakirjat"];

SPQuery oQuery = Uusi SPQuery();

Sen sijaan käytetään konstruktoria, joka määrittää näkymän:

SPList oList = web.Luettelot["Asiakirjat"];

SPQuery oQuery = Uusi SPQuery(oList.Views["Kaikki asiakirjat"]);

Se ratkaisi ongelman ja aloin saan tuloksia.

Sitten lisäsin sisältää-operaattoria taikinaan ja se rikkoi jälleen. Osoittautuu, että CONTAINS-operaattorin, sikäli kuin voin kertoa, ei toimi mieltä samoin kuin yksinkertaisempi GEQ / LEQ toimijoiden. Valmis jokin tutkiva ja oppinut, että kyselyn ViewAttributes tarkoitus "Rekursiivinen", kuten:

oQuery.ViewAttributes = "Soveltamisala = "Recursive"";

Se ratkaisi ongelman sisältää. Itse asiassa, Tämä ratkaista minun alkuperäinen Etsi arvoitus ja oli määritelty täytäntöönpanoa kuiluun johtuvan ensimmäistä kertaa, En ole Suorita tarkastelemaan uudelleen.

Se, että näkymään perustuvaa SPQuery toimii joillekin toimijoille (GEQ/LEQ) eikä muita (SISÄLTÄÄ), yhdistettynä siihen, että KPI: T eivät näytä toimivan lainkaan kanssa kansion sisältävä asiakirja kirjastot johtaa minut uskomaan, että SPQuery on joitakin orthogonality asioita.

Erityiset kiitokset:

  • Hyvä folks at U2U ja kyselyn avulla.
  • Michael Hoffer suuri "tekemällä oppimista" Blogikirjoituksen, kommentteja ja vastauksia.

</loppu>

Tilaa blogiin!

3 ajatuksia ”Ratkaisu: SPQuery ei etsi kansioita

  1. Nimeä ei ole

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

    Vastaus

Jätä vastaus

Sähköpostiosoitettasi ei julkaista. pakolliset kentät on merkitty *