Kategori Arşivleri: SharePoint Web servisleri

İnsanlar arama kapsam olarak belirtme / SharePoint kullanarak içerik kaynağı 2013 REST API

SharePoint ile çalışmak için bir nedeni vardı. 2013 Arama API'sı üzerinden ilk kez dinlenme. Kişileri aramak istedim, belgeleri değil. İşte bu öğrenme anahtar GUID'sine üzerinden içerik kaynakları belirtin (ya da en azından bu durumda). Aşağıdaki jQuery pasajı gösterir nasıl:

    loadExpertsAsync: işlevi() {

        jQuery.support.cors = TRUE;

        $.Ajax({
            URL: Bu.CreateFullApiUrl() +
                "?Querytext 'portalları' =&kaynak kimlik = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Becerileri,AboutMe,İlgi alanları,İş unvanı,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&ROWLIMIT = 99",
            yöntemi: "Al",
            başlıkları: { "Kabul etmek": "uygulama/json; Odata = verbose" },
            önbellek: yanlış,
            başarı: işlevi (Sonuç) {

Benim durumumda, I koşma API SharePoint karşı online. GUID elde etmek için, Aşağıdaki adımları takip:

  1. SharePoint Yönetim Merkezi'ne erişmek
  2. "Sol navigasyon arama" seçin
  3. "Sonuç kaynaklarını Yönet" seçin
  4. "Yerel halkın sonuçları" seçin
  5. URL bakmak.

Benim URL gibi bir şey görünüyordu.:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

Kaynak kimlik parametresidir ne amele için beni.

(Kaynak kimlik aslında bir tür SP ile kalıcı şeyler olabilir anlamak, but I’ll always check anyway 🙂 ).

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Lists.asmx, GetListItems ve klasörler

Birinin etrafında bugün SharePoint bir parçası olarak sağlanan list.asmx web hizmeti için bir araştırma yaptığını 2010 (ve önceki sürümleri).  O was güçlü-e doğru kök klasörde liste öğelerini almak için (alt klasörleri adları da dahil olmak üzere), öğeleri alt klasörlere alamadım ama.  Bazı Internets üzerinde etrafa yaptı ve şaşırtıcı ortak bir soru.  Henüz, Basit bir soru için iyi bir cevap alamadım., "Ben klasörü biliyorsanız, klasördeki öğelerin nasıl alabilirim?”  Dürüst olmak gerekirse, Ben kendi dışarı bu bir şekil bir süre istedim çünkü bu zor deneyin vermedi Gülümseme.

Bunu ayarlamak için, "Bloglama senaryoları" adlı bir site ve "Özel liste ile alt klasörler" adlı özel bir liste oluşturdum.  Sonra adlı klasör oluşturdu:

  • Yıl 2005
  • Yıl 2006
  • Yıl 2007

Ben birkaç öğe "2006 yılı" klasöre eklendi.  Ne gibi görünüyor olmasıdır.:

image

Arkadaşım değil ama C# kodu yazmak yerine Java yazılımını kullanma, Yani o gerçekten gerekli soap zarfının oldu.  Almak için, JQuery biraz yazdı ve fiddler kullanılmış gerçek http oturumu almak.

İşte ilgili jQuery (Kopyala/Yapıştır istiyorsanız kodu aşağı aşağıda kopyaladığım):

image

Onlar ilk anahtarıdır hem de içerecek şekilde bir <queryOptions> ve <QueryOptions> düğüm.  Bu ikinci anahtarıdır <Klasör> düğüm istemci erişimi olan bir url..

Bu almak için başka yollar olabilir, ama bu amele su kuyusu için beni ne zaman jQuery kullanarak.

İşte yukarıdaki için soap Zarfı:

<soapenv:Zarf xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Vücut>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Alt klasörler içeren özel bir liste</listName>
      <viewFields>  
        <ViewFields>
          <FIELDREF Name =' başlığı’ />
          <FIELDREF Name ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Klasör>
http://demoserver1/blog Senaryo/listeleri/özel liste ile alt klasörler/yıl 2006</Klasör>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Vücut>
</soapenv:Zarf>

Örnekler ve bu tartışma çok bana tüm ihtiyacım olduğuna inanmak yol açtı <QueryOptions> ve bir klasör adı belirtin.  Benim için, [NULL]'Sarmak hem de içine <queryOptions> hem de tam bir url belirtin <Klasör> düğüm.

İşte jQuery ajax kurulumu:

$(Belge).hazır(işlevi() {
       var soapEnv =
           "<soapenv:Zarf xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Vücut> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Alt klasörler içeren özel bir liste</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FIELDREF Name =' başlığı’ /> \
                              <FIELDREF Name ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Klasör>http://demoserver1/Blogging Senaryo/listeleri/özel liste ile alt klasörler/yıl 2006</Klasör> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Vücut> \
           </soapenv:Zarf>";

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Lists.asmx, GetList ve "değeri null olamaz”

Bugün keşfettim bu GetList() yöntem lists.asmx Web hizmeti çok dikkatli bir şekilde çağrılacak ya da gizemli bir "Değer null olamaz" özel durum eğilimli (ve, sen-ebilmek almak daha kötü genel hata iletisi üstlenmektedir, "Özel durum türü ' Microsoft.SharePoint.SoapServer.SoapServerException’ atıldı.")  Özellikle, Ben GetList yöntemi herhangi bir önek sağlayamayacağını bulundu.  Aşağıdaki jQuery kod noktayı gösterir:

image

Bunu yaparsanız, "Değer bu aynı derecede boş olamaz ile" web hizmeti yanıt Fiddler-HTTP transkript sağlanan:

<?XML sürüm "1.0 =" kodlama = "utf-8"?>
  <sabun:Zarf
     xmlns:sabun ="
http://schemas.xmlsoap.org/SOAP/envelope/"    
     xmlns:XSI = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <sabun:Vücut>
    <sabun:Arıza>
      <faultCode>sabun:Sunucu</faultCode>
      <faultCode>
        Özel durum türü ' Microsoft.SharePoint.SoapServer.SoapServerException’ atıldı.
      </faultCode>
      <detay>
        <ErrorString xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Değer null olamaz.
        </ErrorString>
      </detay>
    </sabun:Arıza>
  </sabun:Vücut>
</sabun:Zarf>

Elbette, muhtemelen bu "s0" öneki, kendi eklediğiniz olmaz, ama bazı araçlar yapmaya yatkındır (Eclipse gibi).

Bu daha fazla kafa karıştırıcı / diğer yöntemler önekleri tahammül, çünkü sinir bozucu.  Örneğin, the GetListCollection yöntem bu öneki varsa akıl almaz, "xyzzy" gibi ile bile saçma önek:

image

Bu yüzden umarım bu yardımcı olacak kimse dışarı gelecek lists.asmx ile oldukça yaygın gibi görünüyor "değeri null olamaz".

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin