Решение: SPQuery не папки поиска

На прошлой неделе я реализации «развивается" решение для клиента, который использует BDC и SPQuery и побежал в некоторые трудности с помощью SPQuery против библиотеки документов, содержащей папки. Нижняя линия: назначить «рекурсивные" в атрибут представления запроса.

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

  • В понедельник, Я загрузить документ и предоставить некоторые мета-данных.
  • Следующей недели, Загрузить новый документ. Большая часть этого нового документа мета-данных основывается на документе, который я загрузил в понедельник (который мы называем «главный документ»).
  • Мы создали веб службы фасада, который обеспечивает BDC-понятный интерфейс в список, так что пользователи могут легко найти этот понедельник документ через поиск по названию.
  • Столбец данных 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 никогда не будет возвращать любые результаты. Мы использовали папки прежде всего для того, чтобы позволить несколько файлов с тем же именем, чтобы быть загружены, но с различными мета-данных. Когда загружается файл, Мы создаем папку на основе идентификатора элемента списка и затем переместить файл там (Я писал о том, что Здесь; у нас были неоднозначные результаты с таким подходом, но в целом, Он работает хорошо). Пользователь не заботятся о папках и на самом деле, не очень понимаю, что есть любые папки. Мы настроили все представления в библиотеке для отображения элементов независимо от папки.

Я ударил эту проблему дважды, как техническое осуществление эволюционировали и решить его по-разному каждый раз. В первый раз, Я не использовал оператор в запросе. Без оператора CONTAINS, Я был в состоянии решить эту проблему, указав вид на SPQuery contructor. Вместо использования конструктора по умолчанию:

SPList oList = web.Списки[«Документы"];

SPQuery oQuery = Новые функции SPQuery();

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

SPList oList = web.Списки[«Документы"];

SPQuery oQuery = Новые функции SPQuery(oList.Views[«Все документы"]);

Была решена и я начал получать мои результаты.

Затем я добавил оператор CONTAINS в смеси, и он сломал снова. Получается, что оператор CONTAINS, так что насколько я могу сказать, не работать с тем так же, как простой GEQ / LEQ операторы. Я сделал некоторое ища и узнал, что ViewAttributes запроса должно быть присвоено «Рекурсивные», как и в:

oQuery.ViewAttributes = «Область = "Recursive"";

Что решена проблема для CONTAINS. На самом деле, Это также решить мою оригинальный проблему поиска и если я указал рекурсивным атрибутов в первый раз, Я бы не бежал в этот вопрос снова.

Тот факт, что на основе представления SPQuery работает для некоторых операторов (GEQ/LEQ) и не другие (СОДЕРЖИТ), Вместе с тем, что ключевые индикаторы производительности, похоже, не работать на всех с папки содержащих документ библиотеки приводит меня к мнению, что SPQuery имеет некоторые проблемы ортогональности.

Особая благодарность:

  • Хорошие люди на 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 А31 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 батарея n620c Compaq,
    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 710М батарея,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm Аккумулятор Dell Широта 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 отменить ответ

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *