Oplossing: SPQuery wordt niet gezocht in mappen

Deze afgelopen week was ik de uitvoering van een "ontwikkeling" oplossing voor een client die gebruikt BDC en SPQuery en liep naar moeite met behulp van SPQuery tegen een documentbibliotheek met mappen. Bottom line: "recursieve toewijzen" met het kenmerk van de weergave van de query.

Mijn scenario:

  • Op maandag, Ik een document uploaden en sommige metagegevens verstrekken.
  • De volgende week, Ik uploaden een nieuw document. Veel van dit nieuwe document meta-gegevens is gebaseerd op het document dat ik heb geüpload op maandag (wat wij noemen het "master document").
  • We hebben gemaakt de gevel van een web-dienst waarmee een BDC-vriendelijke interface aan de lijst, zodat gebruikers gemakkelijk dat maandag document via een titel zoeken vinden kunnen.
  • Een gegevenskolom BDC biedt een vriendelijke user-interface. (Dit is onderdeel van mijn poging om met behulp van BDC voor een vriendelijker opzoekkolom).

De uiteindelijke BDC gevel dienst maakt gebruik van een query als dit te doen de zoekactie:

 // U2U tool gebruikt om te helpen bij het genereren van deze CAML query.
      oQuery.Query =
        "<Waar>";

      Als (titleFilter.Length > 0)
        oQuery.Query  =
          "  <En>";

      oQuery.Query  =
        "    <En>" +
        "      <GEQ>" +
        "        <FieldRef naam =  "DocumentId" />" +
        "        <Type waarde =  "Tekst">" + minId + "</Waarde>" +
        "      </GEQ>" +
        "      <Leq>" +
        "        <FieldRef naam =  "DocumentId" />" +
        "        <Type waarde =  "Tekst">" + maxId + "</Waarde>" +
        "      </Leq>" +
        "    </En>";

      Als (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Bevat>" +
          "      <FieldRef naam =  "Title" />" +
          "      <Type waarde =  "Tekst">" + titleFilter + "</Waarde>" +
          "    </Bevat>" +
          "  </En>";
      oQuery.Query  =
        "</Waar>";

Tijdens de eerste fase van ontwikkeling, Dit werkte prima. Echter, we ingevoerd mappen in de map sommige problemen op te lossen en plotseling, mijn BDC datumkiezer niet zou opleveren. Ik dit aan het feit dat de SPQuery geen resultaten nooit meer zou terugkeren bijgehouden. We mappen voornamelijk gebruikt voor het toestaan van meerdere bestanden met dezelfde naam te uploaden, maar met andere meta-gegevens. Wanneer het bestand is geüpload, We maken een map gebaseerd op de lijstitem-ID en verplaats het bestand er (Ik schreef over dat Hier; We hebben gemengde resultaten met deze benadering, maar over het geheel genomen, het werkt goed). De gebruiker niet schelen over mappen en in feite, niet echt begrijpen dat er mappen aanwezig zijn. We hebben alle weergaven op de bibliotheek voor het tonen van items ongeacht mappen geconfigureerd.

Ik raakte dit probleem twee keer als de technische uitvoering geëvolueerd en opgelost het anders elke keer. De eerste keer, Ik was niet met behulp van de operator CONTAINS gebruikt in de query. Zonder een operator CONTAINS, Ik was in staat om op te lossen het probleem door te geven van het uitzicht op de SPQuery bussenbouwer. In plaats van met behulp van de standaard constructor:

SPList oList = web.Lijsten["Documenten"];

SPQuery oQuery = Nieuw SPQuery();

Ik gebruikte in plaats daarvan een constructor die een weergave hebt opgegeven:

SPList oList = web.Lijsten["Documenten"];

SPQuery oQuery = Nieuw SPQuery(oList.Views["Alle documenten"]);

Dat het probleem opgelost en ik begon te krijgen van mijn resultaten.

Vervolgens voegde ik de operator CONTAINS in de mix en het brak opnieuw. Het blijkt dat de operator CONTAINS, zover ik kan vertellen, doet niet werken met de weergave op dezelfde manier als de een eenvoudiger GEQ / LEQ exploitanten. Ik heb wat zoeken en leerde dat van de query ViewAttributes moet worden ingesteld op "Recursieve", Als in:

oQuery.ViewAttributes = "Werkingssfeer = "Recursive"";

Dat het probleem opgelost voor bevat. Eigenlijk, dit ook mijn originele zoek probleem opgelost en als ik de recursieve had opgegeven kenmerk de eerste keer, Ik zou niet hebben lopen in de kwestie opnieuw.

Het feit dat een weergave gebaseerde SPQuery voor sommige exploitanten werkt (GEQ/LEQ) en andere niet (BEVAT), in combinatie met het feit dat KPI's lijken niet te werken op alle met map-bevattende document bibliotheken leidt mij te geloven dat SPQuery sommige uitvaardiging orthogonaliteit heeft.

Speciale dank:

  • De goede mensen van U2U en hun queryprogramma.
  • Michael Hoffer is geweldig "leren door te doen" blogbericht, opmerkingen en reacties.

</einde>

Abonneren op mijn blog!

3 gedachten over "Oplossing: SPQuery wordt niet gezocht in mappen

  1. Geen naam

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

    Antwoord

Laat een antwoord achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *