Çözüm: SPQuery klasörleri aramaz

Geçen hafta uygulama bir "gelişen" BDC ve SPQuery kullanan ve SPQuery klasörleri içeren bir belge kitaplığı karşı kullanarak bazı zorluk rastladım bir istemci için çözüm. Alt çizgi: "özyinelemeli atamak" sorgu görünümü öznitelik için.

Benim senaryo:

  • Pazartesi günü, Bir belgeyi karşıya yüklemek ve bazı meta veri sağlamak.
  • Sonraki hafta, Yeni bir belgeyi karşıya yüklemek. Bu yeni belgenin meta veri çoğunu ben Pazartesi günü Tarih belge dayanır ("ana belge" dediğimiz).
  • Listeye bir BDC dostu arayüzü sağlar, böylece kullanıcıların kolayca Pazartesi belge başlık arama yoluyla bulabilirsiniz web hizmeti ön cephesi oluşturduk.
  • İVB veri sütun kolay bir kullanıcı arabirimi sağlar. (BDC daha dostça arama sütunu için kullanmak benim girişimi bir parçası).

Final BDC cephe hizmeti, arama yapmak için böyle bir sorgu kullanır.:

 // U2U aracı bu CAML sorgu oluşturmak için yardımcı olmak için kullanılır..
      oQuery.Query =
        "<Burada>";

      Eğer (titleFilter.Length > 0)
        oQuery.Query  =
          "  <Ve>";

      oQuery.Query  =
        "    <Ve>" +
        "      <GEQ>" +
        "        <FieldRef adı =  "DocumentId" />" +
        "        <Değer türü =  "Text">" + minId + "</Değer>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef adı =  "DocumentId" />" +
        "        <Değer türü =  "Text">" + maxId + "</Değer>" +
        "      </LEQ>" +
        "    </Ve>";

      Eğer (titleFilter.Length > 0)
        oQuery.Query  =
          "    <İçerir>" +
          "      <FieldRef adı =  "Title" />" +
          "      <Değer türü =  "Text">" + titleFilter + "</Değer>" +
          "    </İçerir>" +
          "  </Ve>";
      oQuery.Query  =
        "</Burada>";

Geliştirme başlangıç aşamasında, Bu amele büyük. Ancak, Biz bazı sorunları çözmek için dizine klasörleri tanıttı ve aniden, benim BDC seçici herhangi bir sonuç olmaz. Bu SPQuery hiç birisi-den sonuçlanmak dönmek aslında aşağı izlenen. Biz kullanılan klasörleri öncelikle birden fazla dosya yüklemek için aynı adda ama farklı meta veri ile izin vermek için. Dosya yüklendiğinde, liste öğesinin kimliği temel alarak bir klasör oluşturun ve dosyayı oraya taşıyın (Ben bu konuda yazdı Burada; Biz oldu karışık sonuçlar Ama bütün bu yaklaşım ile, iyi çalışıyor). Kullanıcı klasörleri hakkında ve hatta önemli değil, Gerçekten herhangi bir klasör vardır anlamıyorum. Biz-si olmak configured tüm görünümlerde kitaplığındaki öğeleri klasör olmadan görüntüle.

Bu sorun iki kat gelişti ve Çözülen teknik uygulama farklı her zaman isabet. İlk defa, Sorguda içerir işlecini kullanarak değildi. CONTAINS işleci olmadan, SPQuery'nın contructor ilgili görüntüyü belirterek sorunu çözmek mümkün. Varsayılan kurucuyu kullanarak yerine:

SPList.Update() oListe web =.Listeler["Belgeler"];

SPQuery oQuery = Yeni SPQuery();

Bunun yerine bir görünüm belirtilen bir Oluşturucu kullanılır.:

SPList.Update() oListe web =.Listeler["Belgeler"];

SPQuery oQuery = Yeni SPQuery(oList.Views["Tüm belgeler"]);

Bu sorun çözüldü ve sonuçlarımı almaya başladı..

Daha sonra karışımı içine içerir işlecini eklendi ve gene kırdı. CONTAINS işlecini meğer, söyleyebileceğim kadarıyla, görünümü ile aynı şekilde çalışmaz daha basit GEQ / LEQ operatörleri. Bazı arama yaptım ve sorgunun ViewAttributes "Özyinelemeli" belirlemesi gerektiğini öğrenmiş, olarak:

oQuery.ViewAttributes = "Kapsam = "Recursive"";

Bu münhal belgili tanımlık problem için içerir. Aslında, Bu da benim orijinal arama sorun çözüldü ve özyinelemeli belirtilen vardı ilk öznitelik, Ben sorunu içine tekrar çalışır değil.

Bazı operatörler için görünüm tabanlı SPQuery inşaat gerçeği (GEQ/LEQ) diğerleri değil (İÇERİR), KPI tüm içeren klasör belge kitaplıkları yol ile SPQuery bazı dikeylilik sorunları vardır inanmamı çalışma görünmüyor gerçeği ile birleştiğinde.

Özel teşekkür:

  • İyi millet U2U ve onların sorgu aracı.
  • Michael Hoffer büyük "yaparak öğrenme" blog yazısı, Yorumlar ve yanıtları.

</sonunda>

Benim blog abone!

3 “Üzerine düşüncelerÇözüm: SPQuery klasörleri aramaz

  1. Adı yok

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

    Yanıtla

Bir yanıt bırak Paul Galvin Cevabı iptal

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *