Roztwór: SPQuery nie przeszukiwać foldery

W ubiegłym tygodniu I realizację "ewoluuje" rozwiązanie dla klienta, który korzysta z usługi BDC i SPQuery i wpadł na pewne trudności przy użyciu SPQuery przeciwko biblioteki dokumentów zawierających foldery. Motto: przypisać "cykliczne" atrybut widok kwerendy.

Mój scenariusz:

  • W poniedziałek, Przesłać dokument i podać niektóre dane meta.
  • Następny tydzień, Wgrać nowy dokument. Dużo od ten nowy dokument meta danych opiera się na dokumencie, który wysłał w poniedziałek (co nazywamy "dokument główny").
  • Stworzyliśmy elewacji usługi sieci web, które zapewnia usługi BDC-przyjazny interfejs do listy, tak, że użytkownicy mogą łatwo zlokalizować poniedziałek dokument korzystając z wyszukiwania tytuł.
  • Kolumna danych usługi BDC zapewnia przyjazny interfejs użytkownika. (Jest to część mojej próby przy użyciu usługi BDC na bardziej przyjazne kolumny odnośnika).

Końcowy usługi BDC fasada używa kwerendy jak to zrobić wyszukiwania:

 // Używane U2U narzędzie pomagające w tworzeniu tego zapytania CAML.
      oQuery.Query =
        "<W przypadku gdy>";

      Jeśli (titleFilter.Length > 0)
        oQuery.Query  =
          "  <I>";

      oQuery.Query  =
        "    <I>" +
        "      <GEQ>" +
        "        <Nazwa FieldRef =  "DocumentId" />" +
        "        <Typ wartości =  "Text">" + minId + "</Wartość>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <Nazwa FieldRef =  "DocumentId" />" +
        "        <Typ wartości =  "Text">" + maxId + "</Wartość>" +
        "      </LEQ>" +
        "    </I>";

      Jeśli (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Zawiera>" +
          "      <Nazwa FieldRef =  "Title" />" +
          "      <Typ wartości =  "Text">" + titleFilter + "</Wartość>" +
          "    </Zawiera>" +
          "  </I>";
      oQuery.Query  =
        "</W przypadku gdy>";

W początkowej fazie rozwoju, Ten pracował wielki. Jednakże, wprowadziliśmy foldery w katalogu, aby rozwiązać niektóre problemy i nagle, mój wybór usługi BDC nie zwraca żadnych wyników. Śledziłem ten do faktu, że SPQuery nigdy nie zwróci żadnych wyników. Użyliśmy foldery przede wszystkim umożliwienie wielu plików o tej samej nazwie, aby przekazać, ale z różnych danych meta. Kiedy plik jest wgrany, utworzyć folder oparte na identyfikator elementu listy, a następnie przenieść plik istnieje (Pisałem o tym tutaj; Mieliśmy mieszane wyniki z tym podejściem, ale na całej, to działa dobrze). Użytkownik nie obchodzi o folderów i w rzeczywistości, naprawdę nie rozumiem, że tu są wszelki teczka. Bazodanowego wszystkie widoki na bibliotece pokazanie pozycji bez względu na foldery.

Ja uderzyæ ten problem dwa razy jako technicznego wykonania ewoluowały i rozwiązać to inaczej za każdym razem. Po raz pierwszy, Nie używające operatora CONTAINS kwerendy. Bez operatora CONTAINS, Udało mi się rozwiązać ten problem przez określenie widoku na SPQuery contructor. Zamiast przy użyciu konstruktora domyślnego:

SPList oList = www.List["Dokumenty"];

SPQuery oQuery = Nowy SPQuery();

Kiedyś zamiast Konstruktor, że określony widok:

SPList oList = www.List["Dokumenty"];

SPQuery oQuery = Nowy SPQuery(oList.Views["Wszystkie dokumenty"]);

Że rozwiązać problem i zacząłem się moje wyniki.

Następnie dodaje operatora CONTAINS w mix i ponownie złamał. Okazuje się, że CONTAINS operator, tak dalece jak mogę powiedzieć, nie działa z widok taki sam sposób jak prostsze GEQ / LEQ operatorów. Zrobiłem kilka wyszukiwania i dowiedziałem się, że kwerendy ViewAttributes powinna być ustawiona na "Cykliczne", jak w:

oQuery.ViewAttributes = "Zakres = "Recursive"";

To rozwiązało problem dla zawiera. W zasadzie, to również rozwiązać mój oryginalny problem wyszukiwania i jeśli ja miał określony cykliczne atrybut po raz pierwszy, Chcieliby mieć nie napotkasz znowu problem.

Fakt, że oparte na widoku SPQuery działa dla niektórych operatorów (GEQ/LEQ) i inne nie (ZAWIERA), w połączeniu z faktem, że KWW nie wydaje się do pracy w ogóle folder zawierający dokument bibliotek prowadzi mnie do przypuszczenia, że SPQuery ma pewne problemy Ortogonalność.

Specjalne podziękowania:

</koniec>

Subskrybowanie mój blog!

3 przemyślenia na temat „Roztwór: SPQuery nie przeszukiwać foldery

  1. Bez nazwy

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

Odpowiedz

Twoj adres e-mail nie bedzie opublikowany. wymagane pola są zaznaczone *