Aku sedang melakukan penelitian untuk seseorang hari ini sekitar list.asmx web layanan yang disediakan sebagai bagian dari SharePoint 2010 (dan sebelumnya). Ia mampu untuk mendapatkan daftar item di folder akar (termasuk nama subfolder), tapi tidak bisa mendapatkan barang-barang dalam subfolder. Aku melakukan beberapa memandang berkeliling di the internets dan pertanyaan yang mengejutkan umum. Namun, Saya tidak bisa mendapatkan jawaban yang bagus untuk pertanyaan sederhana, "jika saya tahu folder, Bagaimana saya mendapatkan item di folder?” Jujur, Aku tidak mencoba terlalu keras karena aku ingin angka satu ini keluar pada saya sendiri untuk sementara waktu .
Untuk mengatur hal ini, Saya membuat sebuah situs bernama "Blogging skenario" dan daftar kustom bernama "Daftar dengan Sub folder". Saya kemudian membuat folder bernama:
- Tahun 2005
- Tahun 2006
- Tahun 2007
Saya menambahkan beberapa item ke folder "Tahun 2006". Ini adalah apa yang tampak seperti:
Teman saya tidak menulis C# kode tapi agak menggunakan Java, Jadi SOAP amplop adalah apa yang dia benar-benar diperlukan. Untuk mendapatkan itu, Saya menulis sedikit jQuery dan kemudian digunakan fiddler untuk mendapatkan percakapan HTTP sebenarnya.
Berikut adalah relevan jQuery (Aku menyalin kode turun di bawah ini jika Anda ingin copy/paste):
Mereka kunci pertama adalah untuk memasukkan kedua <queryOptions> dan <QueryOptions> node. Tombol kedua adalah bahwa <Folder> simpul adalah URL yang klien memiliki akses.
Mungkin ada cara lain untuk mendapatkan ini, Tapi ini bekerja dengan baik bagi saya ketika menggunakan jQuery.
Berikut adalah SOAP amplop untuk di atas:
<soapenv:Amplop xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>
<soapenv:Tubuh>
<GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’>
<listName>Daftar kustom dengan Sub folder</listName>
<viewFields>
<ViewFields>
<FieldRef nama =' judul’ />
<FieldRef nama ='EncodedAbsUrl’ />
</ViewFields>
</viewFields>
<queryOptions>
<QueryOptions>
<Folder>http://demoserver1/blog Skenario/daftar/Custom daftar dengan Sub folder/tahun 2006</Folder>
</QueryOptions>
</queryOptions>
</GetListItems>
</soapenv:Tubuh>
</soapenv:Amplop>
Banyak contoh dan diskusi sekitar ini membawaku untuk percaya bahwa semua saya butuhkan adalah <QueryOptions> dan tentukan nama folder. Bagi saya, Saya perlu untuk kedua bungkus dalam <queryOptions> serta menentukan URL yang memenuhi syarat untuk <Folder> node.
Here's the jQuery AJAX setup:
$(dokumen).siap(fungsi() {
var soapEnv =
"<soapenv:Amplop xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
<soapenv:Tubuh> \
<GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
<listName>Daftar kustom dengan Sub folder</listName> \
<viewFields> \
<ViewFields> \
<FieldRef nama =' judul’ /> \
<FieldRef nama ='EncodedAbsUrl’ /> \
</ViewFields> \
</viewFields> \
<queryOptions> \
<QueryOptions> \
<Folder>http://demoserver1/Blogging Skenario/daftar/Custom daftar dengan Sub folder/tahun 2006</Folder> \
</QueryOptions> \
</queryOptions> \
</GetListItems> \
</soapenv:Tubuh> \
</soapenv:Amplop>";
</akhir>
Ikuti saya di kegugupan di http://www.twitter.com/pagalvin
Hai
Saya mencoba untuk menampilkan dokumen di bawah folder tertentu menggunakan SPD 2010 DataSource GetListItems
Setelah saya terhubung ke layanan web saya dan masukkan guid untuk dokumen Perpustakaan
Aku dapat mengubah QueryOptions dan masukkan potongan berikut CAML
TrainingCompanyX kepatuhan.
Hanya ini tidak memberikan hasil apapun – menghapus QueryOptions parameter mengembalikan semua dokumen dalam perpustakaan dokumen akar….
Aku memandang melewati beberapa semacam Lihat parameter dan termasuk guid Lihat.
Ini adalah sangat tua posting/komentar sangat menyesal untuk tidak pernah menjawab. Saya asumsikan Anda panjang sejak tahu bagaimana untuk melanjutkan.
Artikel yang baik! Terima kasih.
Anda juga dapat menggunakan pilihan RecursiveAll untuk secara otomatis melintasi turun struktur folder (dari tingkat akar).
Oke, Sepertinya dilucuti keluar xml… hanya mengganti pon tanda-tanda di bawah ini dengan tanda pangkat.
#queryOptions #
#QueryOptions #
#Lingkup ViewAttributes = 'RecursiveAll' / #
#/QueryOptions #
#/queryOptions #
Terima kasih banyak untuk posting ini, Paul. Aku sudah berusaha untuk mengkonsumsi GetListItems melalui ColdFusion cfhttp, dan tidak bisa mendapatkan amplop yang benar. Akhirnya datang di posting ini, dan contoh Anda bekerja sempurna. Terima kasih lagi.
BTW – Apakah Anda tahu sumber daya yang berisi daftar semua amplop sabun tepat itu? Satu untuk item GetList diterbitkan pada microsoft.com tidak sesuai Anda di sini…