Разтвор: Член SPQuery не папки за търсене

Миналата седмица бях прилагане "се развива" решение за клиент, който използва BDC и член SPQuery и се блъсна в някои затруднения, използвайки член SPQuery срещу библиотека с документи, съдържащи папки. Долната линия: Присвояване на "рекурсивни" за атрибут на изглед на заявка.

Моят сценарий:

  • В понеделник, Качване на документ и предоставят някои мета данни.
  • Следващата седмица, Качване на нов документ. Голяма част от този нов документ мета данни се основава на документа, който качих в понеделник (които наричаме "главен документ").
  • Ние създадохме уеб услуга фасада, която осигурява КБД-приятелски интерфейс към списъка, така че потребителите лесно да намерите този понеделник документ чрез търсене по заглавие.
  • BDC данни колона осигурява приятелски потребителски интерфейс. (Това е част от моя опит с BDC за по-приятелски справочна колона).

BDC фасада услуги използва заявка като този да направите търсене:

 // Използва U2U инструмент за подпомагане при създаването на тази CAML заявка.
      oQuery.Query =
        "<Където>";

      Ако (titleFilter.Length > 0)
        oQuery.Query  =
          "  <И>";

      oQuery.Query  =
        "    <И>" +
        "      <Geq>" +
        "        <FieldRef име =  "DocumentId" />" +
        "        <Стойност тип =  "Text">" + minId + "</Стойност>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef име =  "DocumentId" />" +
        "        <Стойност тип =  "Text">" + maxId + "</Стойност>" +
        "      </Leq>" +
        "    </И>";

      Ако (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Съдържа>" +
          "      <FieldRef име =  "Title" />" +
          "      <Стойност тип =  "Text">" + titleFilter + "</Стойност>" +
          "    </Съдържа>" +
          "  </И>";
      oQuery.Query  =
        "</Където>";

По време на първоначалния етап на развитие, този работник голям. Въпреки това, Ние въведохме папки в директорията за решаване на някои проблеми и изведнъж, Моят избор на BDC не върне никакви резултати. Това се проследяват до факта, че член SPQuery би никога не върне никакви резултати. Ние използвани папки главно да дадат възможност на множество файлове със същото име да бъде качен, но с различни мета данни. Когато файлът е качен, Ние Създай папка, базирано на ИД на елемента от списъка и след това преместете файла там (Аз написах за това Тук; Ние сме имали смесени резултати с този подход, но като цяло, Тя работи добре). Потребителят не им пука за папки и в действителност, наистина не разбирам, че има някакви папки. Ние конфигурирали всички изгледи на библиотеката да се показват елементи без папки.

Аз хит този проблем, два пъти по техническото изпълнение еволюира и решавам то различно всеки път. За първи път, Не е използвал съдържа оператор в заявка. Без оператор на съдържа, Аз бях в състояние да реши проблема чрез задаване на изгледа в член SPQuery на contructor. Вместо да използвате Конструкторът по подразбиране:

Splist.Update() oList = web.Списъци["Документи"];

Член SPQuery oQuery = нов Член SPQuery();

Вместо това използва конструктор, който определен изглед:

Splist.Update() oList = web.Списъци["Документи"];

Член SPQuery oQuery = нов Член SPQuery(oList.Views["Всички документи"]);

Това решен проблема и аз започнах да си взема резултатите.

След това се добавя съдържа оператора в микса и го разби отново. Оказва се, че съдържа оператор, доколкото мога да кажа, не работи с изглед по същия начин като по-прост GEQ / LEQ оператори. Направих някои търсене и научих, че от заявката преглед на атрибути трябва да бъде настроен да "Рекурсивна", както и в:

oQuery.ViewAttributes = "Обхват = "Recursive"";

Това решен проблема за съдържа. Всъщност, Това също така решен проблема ми първоначалното търсене и ако бяха определени рекурсивни атрибут за първи път, Аз ще не тичам в този въпрос отново.

Фактът, че Изглед основа член SPQuery работи за някои оператори (GEQ/LEQ) а други не (СЪДЪРЖА), съчетано с факта, че KPI не изглежда да работи изобщо с папка, която съдържа документа библиотеки води ми да се смята, че член SPQuery има orthogonality проблеми.

Специални благодарности:

  • Добрите хора в U2U и си инструмент за заявка.
  • Майкъл Хофер е страхотно "учене чрез правене" блог пост, коментари и отговори.

</край>

Абонирайте се за моя блог!

3 мисли за "Разтвор: Член SPQuery не папки за търсене

  1. Без име

    http://www.batteryfast.co.uk/asus/w3v.htm Asus w3v батерия,
    http://www.batteryfast.co.uk/asus/w3000a.htm Asus w3000a батерия,
    http://www.batteryfast.co.uk/asus/w3000.htm Asus w3000 батерия,
    http://www.batteryfast.co.uk/asus/w3000v.htm Asus w3000v батерия,
    http://www.batteryfast.co.uk/asus/a31-s5.htm Asus a31-s5 батерия,
    http://www.batteryfast.co.uk/asus/a32-s5.htm Asus a32-s5 батерия,
    http://www.batteryfast.co.uk/asus/s52n.htm Asus s52n батерия,
    http://www.batteryfast.co.uk/asus/s5000.htm Asus s5000 батерия,
    http://www.batteryfast.co.uk/asus/s5200n.htm Asus s5200n батерия,
    http://www.batteryfast.co.uk/asus/s5n.htm Asus s5n батерия,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm Asus 90-naa1b1000 батерия,
    http://www.batteryfast.co.uk/asus/s2691061.htm Asus s2691061 батерия,
    http://www.batteryfast.co.uk/asus/a42-v6.htm Asus a42-v6 батерия,
    http://www.batteryfast.co.uk/asus/a32-u5.htm Asus a32-u5 батерия,
    http://www.batteryfast.co.uk/asus/u5f.htm Asus u5f батерия,
    http://www.batteryfast.co.uk/asus/u5a.htm Asus u5a батерия,
    http://www.batteryfast.co.uk/asus/u5f.htm Asus u5f батерия,
    http://www.batteryfast.co.uk/asus/u5.htm Asus u5 батерия,
    http://www.batteryfast.co.uk/compaq/nw8000.htm Compaq nw8000 батерия,
    http://www.batteryfast.co.uk/compaq/nc8000.htm Compaq nc8000 батерия,
    http://www.batteryfast.co.uk/compaq/v1000.htm Compaq v1000 батерия,
    http://www.batteryfast.co.uk/compaq/nc6000.htm Compaq nc6000 батерия,
    http://www.batteryfast.co.uk/compaq/nx5000.htm Compaq nx5000 батерия,
    http://www.batteryfast.co.uk/compaq/n600.htm Compaq n600 батерия,
    http://www.batteryfast.co.uk/compaq/n600c.htm Compaq n600c батерия,
    http://www.batteryfast.co.uk/compaq/n610c.htm Compaq n610c батерия,
    http://www.batteryfast.co.uk/compaq/n610v.htm Compaq n610v батерия,
    http://www.batteryfast.co.uk/compaq/n620c.htm Compaq n620c батерия,
    http://www.batteryfast.co.uk/compaq/e500.htm Compaq e500 батерия,
    http://www.batteryfast.co.uk/compaq/e500s.htm Compaq e500s батерия,
    http://www.batteryfast.co.uk/compaq/v300.htm Compaq v300 батерия,
    http://www.batteryfast.co.uk/compaq/v500.htm Compaq v500 батерия,
    http://www.batteryfast.co.uk/compaq/pp2060.htm Compaq pp2060 батерия,
    http://www.batteryfast.co.uk/compaq/nx9000.htm Compaq nx9000 батерия,
    http://www.batteryfast.co.uk/compaq/nx9005.htm Compaq nx9005 батерия,
    http://www.batteryfast.co.uk/compaq/nx9010.htm Compaq nx9010 батерия,
    http://www.batteryfast.co.uk/compaq/nx9020.htm Compaq nx9020 батерия,
    http://www.batteryfast.co.uk/compaq/n110.htm Compaq n110 батерия,
    http://www.batteryfast.co.uk/compaq/n110s.htm Compaq n110s батерия,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm Compaq pp2101x батерия,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm Compaq presario 2100 батерия,
    http://www.batteryfast.co.uk/compaq/ze4000.htm Compaq ze4000 батерия,
    http://www.batteryfast.co.uk/compaq/f4809a.htm Compaq f4809a батерия,
    http://www.batteryfast.co.uk/compaq/f4812a.htm Compaq f4812a батерия,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm Dell inspiron 700 м батерията,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm Dell inspiron 2,10 м батерията,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm Долчинка Географска ширина x 200 батерия,
    http://www.batteryfast.co.uk/dell/8u443.htm Dell 8u443 батерия,
    http://www.batteryfast.co.uk/dell/312-0058.htm Dell 312-0058 батерия,

Оставете отговор Пол Galvin Отказване на отговора

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани *