Aylık Arşivler: Şubat 2014

İ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

Örnek SharePoint diğer aramalar

İş için beni ve de yardımcı olabilir örnek dinlenme çağrıları bir dizi işte. Güncelliği 02/2014, iki örnek var 🙂

  1. Adının içinde boşluklar içeren bir sütun başvurusu
  2. Çoklu seçim bir sütun başvurusu
  3. Geri kalan yolu ile insanların arama yapın

 

Bunun için zaman geçtikçe ekleyeceğiz.

İşte bazı yararlı mürekkepler de buldum:

Adının içinde boşluklar içeren bir sütun başvurusu

"Blog yazarı" adlı bir sütun ile özel liste oluşturma (Blog ile yazar arasındaki boşluk).

O sütuna başvurmak için $select olduğunu:

image

Sadece "_x0020_" boşluğun yerine. Karşıdan karşıya belgili tanımlık enterne _x0020_ birçok örneklerde gördüğümüz ve dinlenme farklı.

Eğer bunu yapmazsan, Böyle bir hata mesajı almak sorumlu:

İfade “Blog yazar” geçerli değil.

Kolay yeterli.

Referans çoklu seçim arama sütunu

Kurmak:

  1. Kategoriler adlı özel liste oluşturma.
  2. Bazı Kategoriler ekleme. Thusly Kategoriler eklendi:image
  3. MockBlog adı verilen başka bir özel liste oluşturun ve Kategoriler çoklu seçim liste sütun olarak eklemek (nasıl roll ise sütun sitesi veya).

Bazı öğeler Mockblog listenize ekleyin ve hazır.

JQuery kullanarak Ajax tarzı aramayý şuna benzer:

serverUrl  = "/_api/web/liste/GetByTitle('MockBlog')/öğeleri" +
             "?$seçin Title =,Kategoriler/başlık,Blog_x0020_Author/başlık" + 
             "&$genişletme Blog_x0020_Author =,Kategoriler";

SharePoint söylüyoruz "tüm kategoriler için başlık verin (Kategoriler/başlık). Fiili değerlerini almak Başlık tarafından $genişletmeIng Kategoriler listesi." (Benim huzurlu paraphrasing muhtemelen oldukça gevşek, Ama bu ne kadar bu yorumlama).

Eğer bu yolu ile JavaScript ve kemancı çıkış kullanılarak yapıyoruz, Böyle bir şey alıyorsun:

 

image

(Yukarıda bir JSON nesnesi olan)

Geri kalan yolu ile insanların arama yapın

Ben bu konuda blogged ayrı ayrı. Yerel halkın içerik kaynağı GUID değeri olan kaynak kimlik parametre belirtmek için anahtarıdır. (Kapsamları çağrılacak kullanılan içerik kaynakları ve her şey benim için bir kapsam aramak için Ah-benim çok zor değil mi!).

Devamı bu konuda burada: http://www.mstechblogs.com/paul/?p=10385

 

</sonunda>

undefinedBenim blog abone.

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

Hızlı ve kolay: DİNLENME kullanarak bir SharePoint sitesi oluşturma

Bunu nasıl kaynaklarını gösteren etrafında vardır., Ama kapsamlı gitmek için bir link bulamadım., İşte.

REST API kullanarak bir SharePoint sitesi oluşturabilir.  Tamamen pişmiş bir örnek:

<!--
    SiteRequestForm.html: Bilgi toplama ve kullanıcı için bir site oluşturun.
-->

<Merkezi>
<Tablo>
    <tr>
        <TD>Site adı:</TD>
        <TD><giriş türü= "metin" adı"SiteAdı =" kimliği"SiteAdı =" /></TD>
    </tr>
    <tr>
        <TD colspan"2 =">
            <giriş türü"submit =" kimliği"CreateSiteButton =" değer= "Site Oluştur" />
        </TD>
    </tr>
</Tablo>
</Merkezi>

<komut dosyası src="../Plugins/jQuery-1.11.0.min.js"></komut dosyası>

<komut dosyası>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametreleri": {
                __metadata: { "türü": "SPWebInfoCreationInformation" },
                URL: "Paultest1",
                Başlık: "Paultest1",
                Açıklama: Paul tarafından web diğerleri tarafından oluşturulan"!",
                Dil: 1033,
                LCID'sine: "sts",
                UseUniquePermissions: yanlış
            }
    },

    createSite: işlevi () {

        jQuery.support.cors = TRUE;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            yöntemi: "MESAJ",

            başlıkları: {
                "Kabul et": "uygulama/json; Odata = verbose",
                "content-type": "uygulama/json;Odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            veri: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            başarı: işlevi () { Uyarı("başarı"); },
            hata: işlevi () { Uyarı("hatası"); }

        });
    },

    wireUpForm: işlevi () {
        $("#CreateSiteButton").' ı tıklatın(işlevi () {
            Uyarı("Yaklaşık denemek ve siteyi oluşturmak için.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</komut dosyası>

Başarılı olduğunda, Bu yanıt bir JSON paket al:

image

Temel düşünce ve bu olası üzerinden Öğrenmeler:

  • Bu yaklaşım, jQuery kullanır.  Benim durumumda, benim jQuery kütüphanesi bulunur ".../ plugins. "  Bu senin en sevdiğin JQ konumu belirtmek için değiştirmek istediğiniz.
  • Kopyalayabilir ve içerik Düzenleyicisi Web Bölümü sayfasındaki tüm bu pasajı yapıştırın ve sadece iyi çalışması gerekir.  Youll'istemek-e doğru JQ başvuru emin olun ve API çağrısı bitiş noktası değiştirmek için.
  • URL'nin göreli olarak API'ın bitiş noktasıdır.  Benim durumumda, altında alt siteler oluşturma https://bigapplesharepoint.com
  • Bir içerik-uzunluk sağlamak gerek yok. Bazı blog yazıları ve MSDN belgesi anlamına gelir senin böyle, Ama benim için otomatik olarak oldu., varsayıyorum $.ajax çağrısı tarafından ele alınır.
  • Bu satır için bir "yasak" yanıtı önlemek için gerekli: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Bunu yapmak için başka yolları da vardır, Ama bu çok hoş.  Blog için bu kısayolu sağlanan bağlantıyı kaybettim.  H/T size, gizemli blogger!

İyi şanslar ve kimse bu yardımcı olur.

</sonunda>

undefinedBenim blog abone.

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

SharePoint çabuk denize indirmek içinde göreli URL'ler ile can sıkıcı bir sorun üstesinden gelmek

Hızlı başlatma gezinti geçen gün bir bağlantı eklemek istedim ve SharePoint söyledi:

image

Saf metin sürümü:

URL geçerli ve geçersiz bir karakter ya da ile başlar emin olun (numara işareti (#) ya da eğik çizgi (/)) veya geçerli bir iletişim kuralını destekleyen (Örneğin, ' http://’, ' https://’, ' dosya://’, ' ftp://’, ' mailto:’, ' Haberler:’).

"Blech ve çiçeği!"Dedim.

Bu geçici bir çözüm bulmak bilinen bir bağlantı-e doğru çabuk denize indirmek içinde ve davranışını geçersiz kılmak için JavaScript kullanmaktır.

Bu test etmek için, thusly, testi sitenize yeni bir bağlantı eklemek:

image

JQuery kullanılan. Bunu çözmek için, biraz JavaScript ve jQuery favori tekniği kullanarak sayfaya ve bu kod satırını ile:

 

$(Belge).hazır( işlevi () {

    $("bir:içerir('Test URL değiştirme')").' ı tıklatın(işlevi () { Uyarı("Değiştirilen tıklayın davranış!"); geri dönmek yanlış;});

});

Amcan Bob.

JQuery seçimi bulur her <bir> adını "Test URL değiştirme" olan etiket. Sen-ebilmek istemek-bul-bağlı olarak, bağlantı ve bu tune için.

Devamı(işlevi() Ne zaman kullanıcı tıkırtı ne SharePoint yapardı geçersiz kılar. Ya da yanlış "geri" Bu şeyler yapmak ve href şey de denemek emin olun, hangi hedef neredeyse kesin değil mi.

Bu yapıldı ve bir SharePoint çevrimiçi ortamda test ama gerektiğini iyi iş 2010 ve daha önce de.

</sonunda>

undefinedBenim blog abone.

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

Hızlı ve basit: SharePoint dinlenme çağrı tek döndürür 100 Kayıtları

Ben bir kamu bakan web sitesinde burada içinde benim SharePoint uygulama için çalışıyoruz New York ve içerik göstermek için bir sürü JavaScript ve REST telefonu kullanır.

Ana hat geliştirme sırasında, Sadece küçük bir veri kümesi oluştur 10 veya satırları özel liste ve dinlenme aramalarıma oradan çok çekti.  Bir kez birkaç yüz beklenen büyüme için test edilecek verilerin satır için listesini çarptı., Ben tam olarak başlamıştı bulundu. 100 geri kalan telefonlarıma geri satırları.

Adres için çok basit bir şey bu.  Benim durumumda (ve çoğu zaman inanıyorum), varsayılan diğer SharePoint için çağırır. (ve muhtemelen bir endüstri standardı olarak?) geri dönmek 100 satırları.  Daha fazla varsayılan dönmek için, Aramanız için $top parametresini kullanın, olarak:

/Insights Dev/_api/Web/Lists/GetByTitle olsun('MockBlog')/öğeleri?$seçin ID =,Başlık,Kategoriler/başlık,Blog_x0020_Author/başlık,DatePublished,BlogSummary&$genişletme Blog_x0020_Author =,Kategoriler&$Filtre =&$Top = 9999

Ben aldım 9999 Bu durumda beri growth-wise biliyorum, orada alışkanlık'var olmak daha--dan 200 veya satırları bir yıl içinde bu listeye ekledi.  Hantal hale gelirse, Yolun aşağısında bir disk belleği uygulayabilirsiniz.

</sonunda>

undefinedBenim blog abone.

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

Hızlı ve basit: "Geçersiz URL parametresi çözmek” lists.asmx UpdateListItems ile sorun

UpdateListItems ile lists.asmx yolu ile çalışırken, hata oluşturmak çok kolaydır:

Geçersiz URL parametresi.

Sağlanan URL geçersiz bir komut veya değeri içerir.. Lütfen URL'yi yeniden denetleyin.

Kimliği alanına dahil etmek boş zaman bu hatayı alabilirsiniz güncelleştirmek için alan listesi.  Bu, Bu SP web hizmetleri çok gibi, Kimliği özniteliğinde kimliği eklemeniz gerekir beri biraz counterintuitive olduğunu <Yöntemi> öğe.  Ve sen kimliği güncelleme ve muhtemelen ilk etapta istiyorum asla.

Bu SOAP Zarf works:

<soapenv:Zarf xmlns:soapenv =' http://schemas.xmlsoap.org/SOAP/Envelope/'>
  <soapenv:Vücut>                      
    <UpdateListItems xmlns =' http://schemas.microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <güncelleştirmeleri>                     
         <Toplu OnError ="Devam">
          <Yöntem kimliği ="1" Cmd ="Güncelleştirme">
            <Alan adı ="CooperativeLock">kilitli!</Alan>
            <Alan adı ="KİMLİĞİ">1</Alan>
          </Yöntemi>
        </Toplu iş>                     
        </güncelleştirmeleri>                
      </UpdateListItems>             
  </soapenv:Vücut>         
</soapenv:Zarf>

Eğer kimliği alanı başvurusu şerit sataşmak "Geçersiz URL parametresi" iletisini alırsınız:.

</sonunda>

undefinedBenim blog abone.

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