Arsip bulanan: Februari 2014

Cara menentukan orang sebagai lingkup Cari / Sumber konten menggunakan SharePoint 2013 REST API

Aku punya alasan untuk bekerja dengan SharePoint 2013 Search API melalui sisanya untuk pertama kalinya. Aku ingin Cari orang, bukan dokumen. Kunci belajar di sini adalah bahwa Anda menentukan sumber konten melalui GUID yang (atau setidaknya dalam kasus ini). Berikut jQuery potongan menunjukkan bagaimana:

    loadExpertsAsync: fungsi() {

        jQuery.support.cors = benar;

        $.Ajax({
            URL: ini.CreateFullApiUrl() +
                "?querytext = 'portal'&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Keterampilan,AboutMe,Kepentingan,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            metode: "MENDAPATKAN",
            header: { "Menerima": "aplikasi json; oData = verbose" },
            cache: palsu,
            sukses: fungsi (hasil) {

Dalam kasus saya, Saya menjalankan API terhadap SharePoint online. Untuk mendapatkan GUID, Aku mengikuti langkah-langkah:

  1. Mengakses SharePoint admin center
  2. Pilih "Cari" dari navigasi di sebelah kiri
  3. Pilih "Atur hasil sumber"
  4. Pilih "Masyarakat setempat hasil"
  5. Melihat URL.

URL saya melihat sesuatu seperti:

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

Sourceid parameter adalah apa yang bekerja untuk saya.

(Saya memahami bahwa sourceid benar-benar mungkin semacam hal yang permanen dengan SP, but I’ll always check anyway 🙂 ).

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Contoh SharePoint sisanya panggilan

Di sini adalah sekumpulan panggilan sisa sampel yang bekerja untuk saya dan dapat membantu Anda serta. Sebagai 02/2014, ada dua contoh 🙂

  1. Referensi kolom dengan ruang dalam namanya
  2. Referensi kolom multi-pilih
  3. Melakukan pencarian orang melalui sisa

 

Saya akan menambahkan ini sebagai berjalannya waktu.

Berikut adalah beberapa tinta berguna yang saya telah menemukan juga:

Referensi kolom dengan ruang dalam namanya

Saya membuat daftar kustom dengan sebuah kolom yang bernama "Penulis Blog" (Ruang antara Blog dan penulis).

$select untuk referensi kolom adalah:

image

Hanya mengganti ruang dengan "_x0020_". Kita melihat _x0020_ dalam banyak contoh di seluruh internets dan sisanya tidak berbeda.

Jika Anda tidak melakukan yang, Anda bertanggung jawab untuk mendapatkan pesan kesalahan seperti ini:

Ekspresi “Penulis blog” ini tidak valid.

Cukup mudah.

Referensi kolom multi-pilih Lookup

Mengatur:

  1. Membuat daftar kustom yang bernama Kategori.
  2. Tambahkan beberapa kategori. Saya menambahkan kategori thusly:image
  3. Membuat daftar kustom yang lain yang disebut MockBlog dan menambahkan kategori sebagai kolom multi-pilih daftar (atau kolom situs jika itu adalah bagaimana Anda roll).

Menambahkan beberapa item ke daftar Mockblog dan Anda siap.

Panggilan gaya Ajax menggunakan jQuery akan terlihat seperti ini:

  = serverUrl "/_api/web/daftar/GetByTitle('MockBlog')/item" +
             "?$Pilih = judul,Kategori/judul,Blog_x0020_Author/judul" + 
             "&$memperluas = Blog_x0020_Author,Kategori";

Kami memberitahu SharePoint "memberi saya judul untuk semua kategori (Kategori/judul). Mendapatkan nilai yang sebenarnya untuk Judul oleh $memperluasing daftar kategori." (Saya parafrase tenang mungkin cukup longgar, Tapi ini bagaimana aku menafsirkan itu).

Jika Anda melakukan ini melalui JavaScript dan menggunakan Fiddler untuk melihat output, Anda mendapatkan sesuatu seperti ini sebagai balasannya:

 

image

(Di atas adalah sebuah objek JSON)

Melakukan pencarian orang melalui sisa

Aku blogged tentang hal ini secara terpisah. Kuncinya adalah untuk menentukan parameter sourceid yang nilainya adalah GUID sumber konten masyarakat setempat. (Sumber konten dulu disebut cakupan dan itu adalah my-oh-saya tidak begitu sulit untuk memanggil segala lingkup bagi saya!).

Baca lebih lanjut tentang hal itu di sini: http://www.mstechblogs.com/paul/?p=10385

 

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Cepat dan mudah: Buat situs SharePoint menggunakan sisa

Ada banyak sumber daya di yang menunjukkan bagaimana melakukan ini, tapi aku tidak bisa menemukan link masuk ke komprehensif, Jadi di sini kita berada.

Anda dapat membuat situs SharePoint menggunakan REST API.  Berikut adalah contoh sepenuhnya panggang:

<!--
    SiteRequestForm.html: Mengumpulkan informasi dan membuat situs untuk pengguna.
-->

<Pusat>
<Meja>
    <TR>
        <TD>Nama situs:</TD>
        <TD><masukan jenis= "teks" Nama= "SiteName" id= "SiteName" /></TD>
    </TR>
    <TR>
        <TD colspan= "2">
            <masukan jenis= "Kirim" id= "CreateSiteButton" nilai= "Buat situs" />
        </TD>
    </TR>
</Meja>
</Pusat>

<script src="../Plugins/jQuery-1.11.0.min.js"></script>

<script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parameter": {
                __metadata: { "jenis": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Judul: "Paultest1",
                Deskripsi: sisanya-dibuat "web oleh Paulus!",
                Bahasa: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: palsu
            }
    },

    createSite: fungsi () {

        jQuery.support.cors = benar;

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

            header: {
                "menerima": "aplikasi/json; oData = verbose",
                "content-type": "aplikasi/json;oData = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            data: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            sukses: fungsi () { peringatan("sukses"); },
            kesalahan: fungsi () { peringatan("kesalahan"); }

        });
    },

    wireUpForm: fungsi () {
        $("#CreateSiteButton").Klik(fungsi () {
            peringatan("Untuk mencoba dan membuat situs.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</script>

Ketika sukses, Anda mendapatkan paket JSON dalam respon seperti ini:

image

Kunci pikiran dan pembelajaran dari ini meliputi:

  • Pendekatan ini menggunakan jQuery.  Dalam kasus saya, Perpustakaan jQuery saya berada di "../ plugin. "  Anda akan ingin untuk mengubahnya untuk menunjuk ke lokasi JQ favorit Anda.
  • Anda dapat menyalin dan menyisipkan potongan yang seluruh ke bagian Web Content Editor pada halaman dan itu harus bekerja dengan baik.  Anda akan ingin mengubah titik akhir dari API panggilan dan pastikan Anda referensi JQ dengan benar.
  • URL adalah relatif terhadap endpoint Anda API.  Dalam kasus saya, menciptakan sub situs di bawah https://bigapplesharepoint.com
  • Anda tidak perlu untuk memberikan konten-panjang. Beberapa posting blog dan MSDN dokumen menyiratkan bahwa Anda melakukan, tetapi terjadi bagi saya secara otomatis, yang saya asumsikan sedang ditangani oleh $AJAX panggilan itu sendiri.
  • Baris ini diperlukan untuk menghindari Tanggapan "dilarang": "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Ada cara lain untuk melakukannya, Tapi ini cukup bagus.  Saya telah kehilangan link ke blog yang disediakan jalan pintas ini.  H/T ke Anda, misterius blogger!

Good luck dan berharap ini membantu seseorang.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Mengatasi masalah yang mengganggu dengan URL relatif dalam peluncuran cepat SharePoint

Saya ingin menambahkan link ke navigasi peluncuran cepat hari yang lain dan SharePoint mengatakan:

image

Versi teks murni yang:

Memastikan bahwa URL yang valid dan dimulai dengan baik karakter yang valid (tanda nomor (#) atau miring (/)) atau yang valid didukung protokol (misalnya, ' http://’, ' https://’, ' file://’, ' ftp://’, ' mailto:’, ' Berita:’).

"Blech dan cacar!"Aku berkata.

Solusi ini adalah dengan menggunakan JavaScript untuk menemukan link dikenal dalam peluncuran cepat dan mengesampingkan perilaku.

Untuk menguji ini, menambahkan link baru ke situs tes thusly:

image

Saya menggunakan jQuery. Mengatasinya, mendapatkan beberapa JavaScript dan jQuery ke halaman menggunakan teknik favorit Anda dan dengan baris kode seperti ini:

 

$(dokumen).siap( fungsi () {

    $("a:berisi('Test penggantian URL')").Klik(fungsi () { peringatan("Klik mengubah perilaku!"); kembali palsu;});

});

Dan Bob paman Anda.

Pemilih jQuery menemukan setiap <a> Tag yang memiliki "URL pengujian penggantian" dalam namanya. Anda mungkin ingin menemukan-tune yang tergantung pada link dan seperti.

.Click(fungsi() mengabaikan apa pun SharePoint akan dilakukan ketika pengguna mengklik. Pastikan Anda "return false" atau yang lain itu akan melakukan barang-barang Anda dan kemudian mencoba untuk hal href yang terlalu, yang merupakan hampir pasti tidak tujuan Anda.

Ini dilakukan dan tes di lingkungan online SharePoint tetapi harus bekerja baik di 2010 dan sebelumnya terlalu.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Cepat dan sederhana: SharePoint sisanya panggilan hanya kembali 100 Catatan

Saya telah bekerja pada sebuah situs web menghadapi yang umum untuk praktek SharePoint saya di sini di New York dan itu menggunakan banyak JavaScript dan sisanya panggilan untuk menampilkan konten.

Selama pengembangan utama, Cara membuat dataset kecil dengan hanya 10 atau jadi baris dalam daftar kustom dan panggilan ISTIRAHAT saya semua diambil dari sana.  Sekali aku bumped up daftar yang memiliki beberapa ratus baris data untuk menguji untuk pertumbuhan diantisipasi, Saya menemukan bahwa saya mendapatkan persis 100 baris yang dikembalikan kembali pada panggilan ISTIRAHAT saya.

Ini adalah hal yang sangat sederhana ke alamat.  Dalam kasus saya (dan saya percaya dalam kebanyakan kasus), default sisanya panggilan untuk SharePoint (dan mungkin sebagai standar industri?) kembali 100 baris.  Kembali lebih dari default, Gunakan $top parameter pada panggilan Anda, seperti dalam:

Dapatkan /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/item?$Pilih = ID,Judul,Kategori/judul,Blog_x0020_Author/judul,DatePublished,BlogSummary&$memperluas = Blog_x0020_Author,Kategori&$Filter =&$Top = 9999

Aku mengambil 9999 dalam kasus ini karena saya tahu bahwa growth-wise, tidak akan ada lebih dari 200 atau jadi baris ditambahkan ke daftar ini dalam setahun.  Jika ia menjadi canggung, kita dapat menerapkan beberapa paging di jalan.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Cepat dan sederhana: Memecahkan "Parameter URL tidak valid” masalah dengan UpdateListItems di lists.asmx

Ketika bekerja dengan UpdateListItems melalui lists.asmx, sangat mudah untuk menghasilkan kesalahan:

Parameter URL tidak valid.

URL yang diberikan berisi perintah tidak sah atau nilai. Silakan periksa URL lagi.

Anda dapat mendapatkan error ini ketika Anda lupa untuk menyertakan ID di daftar bidang untuk memperbarui.  Ini, seperti banyak layanan web ini SP, ini agak berlawanan karena Anda perlu menyertakan ID di atribut ID <Metode> elemen.  Dan Anda tidak diperbarui ID dan mungkin tidak pernah ingin di tempat pertama.

Ini sabun amplop bekerja:

<soapenv:Amplop xmlns:soapenv =' http://schemas.xmlsoap.org/Soap/Envelope/'>
  <soapenv:Tubuh>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/Soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <Update>                     
         <Batch OnError ="Lanjutkan">
          <Metode ID ="1" CMD ="Update">
            <Bidang nama ="CooperativeLock">terkunci!</Bidang>
            <Bidang nama ="ID">1</Bidang>
          </Metode>
        </Batch>                     
        </Update>                
      </UpdateListItems>             
  </soapenv:Tubuh>         
</soapenv:Amplop>

Jika Anda menghapus bidang ID referensi maka Anda akan mendapatkan pesan "Invalid URL parameter" mengganggu.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin