Arkib Bulanan: Februari 2008

Pengumuman Awam Minor: Windows Live Tetapan Keselamatan dan menghubungi Pemilik Angkasa

Saya terima beberapa mesej dari individu melalui terbina dalam "Hantar mesej" fungsi Microsoft menyediakan dengan ruang hidup (yang juga menjadi tuan rumah blog saya) setiap bulan.

Kira-kira satu pertiga daripada masa itu, pengguna tersebut telah memperolehi akaun live kawasan mereka sehinggakan saya tidak dapat membalas. Ini adalah beberapa jenis ciri-ciri anti spam yang saya menganggap.

</akhir>

Penjelasan Mudah: “Nilai tidak termasuk dalam julat yang dijangka.”

UPDATE: Poster tanpa nama untuk meninggalkan komen yang besar tentang nama-nama dalaman. Pastikan anda membacanya.

Apabila bekerja dengan penerima acara dan kod lain yang rujukan SharePoint senarai barangan melalui model objek, Saya sering membuat kesilapan yang menjana kesilapan ini di runtime:

Ralat memuatkan dan menjalankan acara penerima Conchango.xyzzyEventReceiver dalam xyzzy, Versi = 1.0.0.0, Budaya = neutral, PublicKeyToken = 0dc50a750396c3ac. Maklumat tambahan adalah di bawah. : Nilai tidak jatuh dalam lingkungan jangkaan.

Saya rasa ini adalah satu ralat agak generik yang berpotensi disebabkan banyak cara yang berbeza. Walau bagaimanapun, Satu penjelasan yang mudah adalah bahawa saya sedang rujukan bidang yang salah. Jika nama bidang "Tarikh matang", Saya mesti sebutan seperti ini dalam satu acara penerima:

properties.ListItem["Tarikh matang"]

Apabila saya misspell atau menggunakan kes salah apabila rujukan bidang, SharePoint menjana di atas disebut runtime ralat. Sebagai contoh, ini adalah salah:

properties.ListItem["tarikh matang"]

</akhir>

Langgan ke blog saya.

Technorati Tags:

Pengguna Akhir Tip Pantas: Susun Views dalam Perpustakaan Dokumen, Senarai, dan sebagainya..

Kita boleh, perlu dan jangan membuat banyak pandangan dalam senarai SharePoint (dokumen perpustakaan, senarai adat, dan sebagainya.). SharePoint sentiasa menyenaraikan pemandangan yang ada dalam susunan abjad. Kita tidak boleh menukar ini menggunakan daripada fungsi Peti. Jika ia boleh dilakukan melalui penyesuaian (dan saya tidak pasti ia boleh), ianya jauh ke teknikal bagi pengguna akhir anda biasa.

Jika anda ingin mengawal susunan dalam SharePoint yang menyenaraikan tersedia views, hanya menyambung nombor atau huruf untuk nama paparan, seperti dalam:

1 – Mengikut jenis bahan
2 – Semua dokumen
3 – Tarikh matang

-atau-

A – Mengikut jenis bahan
B – Semua dokumen
C – Tarikh matang

Saya juga telah mewujudkan pemandangan yang Tujuannya adalah ketat untuk suapan KPI yang. Saya telah mengikuti konvensyen penamaan ini:

Z_KPI_[Penerangan]

Yang menyebabkan saya "KPI" pandangan kepada muncul di bahagian bawah senarai.

</akhir>

Langgan ke blog saya.

Ahad Funny: “Apabila saya Adakah Boy Little”

Sebagai ibu bapa, di suatu tempat di sepanjang baris saya dapati di "Bilakah saya adalah seorang budak lelaki" silap mata.

Anak saya, mungkin empat atau lima pada masa yang, sedang bermain belon dan seperti kebanyakan kanak-kanak lelaki yang bermain dengan belon, Beliau muncul ia. Baginda sangat marah. Dunia telah sampai ke penghujungnya. Saya katakan kepadanya, "apabila saya berada budak lelaki, Saya mempunyai sebuah belon dan ia muncul dan akhirnya, Saya mendapat satu belon baru." Ia seolah-olah membantunya menghadapi kehilangan beliau dan membawa kepada keseronokan yang bercakap tentang apa yang ia adalah seperti apabila saya adalah seorang budak lelaki.

Yang bekerja baik memandangkan teknik saguhati dan saya menggunakannya beberapa kali dalam tempoh masa yang seterusnya. Saya pula akan menghadapi sebarang masalah sekali apabila beliau Rancher raksasa 3 makhluk yang meninggal dunia. Saya bercakap tentang bagaimana anjing saya, Putera, telah meninggal dunia dalam kemalangan kereta. Kali ini, tindak balas adalah, "Sekarang saya rasa perkara-perkara yang buruk dan kira-kira dua!" Saya menjauhkan diri dari menggunakan yang "ketika aku masih seorang budak lelaki" teknik bagi saguhati selepas itu.

Sebelum kejadian anjing mati, Walau bagaimanapun, Saya juga telah mula menggunakan teknik ini untuk meyakinkan beliau untuk melakukan kerja-kerja. "Apabila saya adalah seorang budak lelaki, Saya terpaksa keluar dan mendapatkan akhbar", "Bersihkan bilik saya", "Dapatkan Mommy dia cawan kopi", dan sebagainya..

Ini juga adalah cukup berjaya untuk sementara waktu, tetapi dia mula semakin memberontak terhadap kezaliman kanak-kanak saya. Satu peristiwa, khususnya, menandakan berakhirnya. Aku memberitahunya untuk membawa Tong sampah dari curb kembali ke garaj. Beliau berhujah dan saya maklum balas, "Apabila saya adalah seorang budak lelaki, Saya terpaksa mengambil sampah kembali ke garaj." Beliau bertindak, "Oh ya! Baik apabila anda adalah seorang budak lelaki, itu adalah bodoh!".

</akhir>

Langgan ke blog saya.

Technorati Tags:

Pandangan dan Columns pada Senarai dan Perpustakaan Dokumen Tidak Boleh Bercagar

UPDATE (02/29/08): Ini codeplex projek baru seolah-olah untuk menyediakan satu kaedah untuk mendapatkan ruang individu: http://www.codeplex.com/SPListDisplaySetting. Jika anda mempunyai sebarang pengalaman bekerja dengan, sila tinggalkan komen.

Poster Forum sering bertanya soalan seperti ini: "Saya mempunyai pemandangan Pengurus dan dan pemandangan kakitangan senarai. Bagaimana saya mendapatkan pandangan Pengurus supaya kakitangan boleh menggunakannya?"

Mereka juga sering bertanya soalan yang berkaitan: "Saya ingin mendapatkan satu kolum khusus metadata supaya Pengurus hanya boleh mengedit kolum itu manakala orang lain mungkin tidak melihat ia."

Jawapan yang diberikan digunakan untuk kedua-dua WSS 3.0 dan MOSS:

  • SharePoint tidak memberikan sokongan out-of-the-box untuk memperolehi views.
  • SharePoint tidak memberikan sokongan out-of-the-box untuk kolum Keselamatan.

Terdapat beberapa teknik satu boleh mengikuti untuk memenuhi keperluan-keperluan sekuriti jenis ini. Inilah apa yang saya boleh fikirkan:

  • Gunakan item out-of-the-box peringkat Keselamatan. Pandangan sentiasa menghormati konfigurasi peringkat Keselamatan perkara. Sekiranya penerima dan/atau aliran boleh automatikkan tugasan Keselamatan.
  • Menggunakan pandangan peribadi untuk "hak istimewa" views. Ini adalah cukup mudah untuk disediakan. Walau bagaimanapun, disebabkan oleh diri"" alam semula jadi, ini perlu dikonfigurasikan untuk setiap pengguna. Menggunakan konfigurasi standard keselamatan untuk mencegah orang lain daripada mencipta satu pandangan peribadi.
  • Gunakan sebahagian web paparan data dan melaksanakan beberapa jenis penyelesaian mengurangkan Keselamatan AJAXy.
  • Melancarkan fungsi paparan senarai anda sendiri dan mengurangkan keselamatan di peringkat medan menggabungkan.
  • Mengubah suai bentuk-bentuk kemasukan data dan menggunakan JavaScript dalam bersama-sama dengan model Keselamatan untuk melaksanakan mengurangkan kolum peringkat Keselamatan.
  • Gunakan untuk InfoPath borang untuk kemasukan data. Melaksanakan mengurangkan lajur tahap keselamatan melalui perkhidmatan web panggilan untuk SharePoint dan bersyarat Sembunyi bidang yang diperlukan.
  • Roll anda sendiri fungsi masukan data ASP.NET yang mengurangkan tahap keselamatan lajur.

Tiada seorang pun daripada orang-orang pilihan yang benar-benar yang besar, Tapi ada laluan sekurang-kurangnya untuk diikuti jika anda perlu untuk, Walaupun ianya sukar.

NOTA: Jika anda pergi ke mana-mana laluan ini, Jangan lupa tentang "tindakan-> Terbuka dengan Windows Explorer". Anda mahu pastikan anda menguji dengan ciri-ciri tersebut untuk memastikan bahawa ia tidak berfungsi sebagai sebuah "pintu belakang" dan kemudian menyerang skim keselamatan anda atau.

Jika anda mempunyai idea untuk atau pengalaman dengan mendapatkan pemandangan atau tiang lain, Sila e-mel saya atau tinggalkan komen dan saya akan mengemaskini ini posting mengikut kesesuaian.

</akhir>

Langgan ke blog saya.

Technorati Tags:

Tip Pantas: BDC ADF Version Nombor Adakah Kawan

Jika anda tangan-kod fail ADF dan melakukan banyak kod / import / ujian kitaran, menggunakan nombor versi untuk menjadikan hidup anda lebih mudah.

Saya tidak suka mengakuinya, tetapi sehingga minggu ini, Saya sentiasa menghapuskan ADF tersebut dan pengimportan semula itu. Ini akan memecahkan lajur data perniagaan saya dan membuat saya semula Kawat mereka. Semua tidak perlu.

Fail ini di bawah "ia adalah jelas apabila anda melihatnya".

Contoh:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Jenis="WebService" Versi="1.2.0.0" Nama="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Tukar versi itu dan import dan lajur data perniagaan yang sedia ada menggunakan versi yang dikemaskini secara automatik dengan sebarang konfigurasi tambahan yang diperlukan.

</akhir>

Langgan ke blog saya.

Technorati Tags:

Penyelesaian: BDC Picker Rancangan Hanya Satu Column Of Results

Dalam usaha berterusan saya menyediakan satu kolum carian lebih kepada menggunakan BDC, Saya memukul dinding dengan pengutip BDC. Jika anda belum melihatnya, pengutip BDC adalah serupa dengan pengutip orang kecuali bahawa ia berfungsi dengan tiang jenis "data perniagaan".

Anda mengakses PEMILIH tersebut dengan klik pada ikon buku yang terbuka lajur data perniagaan seperti yang ditunjukkan:

imej

Imej di atas menunjukkan sebuah medan data perniagaan yang dikenali sebagai "Id dokumen induk". Medan yang disambung, melalui BDC, kepada perkhidmatan web. Perkhidmatan web pulangan dua kolum maklumat: Dokumen pengenalan dan tajuk. Tujuan perniagaan adalah untuk menyediakan sebuah "dokumen ini adalah berdasarkan" fungsi. Pengguna memilih "master" dokumen dan Bilakah mereka Simpan, penerima acara untuk menyalin meta data bidang dari tuan diselesaikan.

Secara lalai, pengutip BDC yang kelihatan seperti ini apabila saya mencari dokumen yang ID = "38":

clip_image002

Itulah yang berguna, tetapi tidak cukup baik. Orang tidak fikir dari segi ID, mereka fikir dari segi hakmilik dan/atau lain-lain data meta. Reservasi yang membolehkan anda untuk mencari di kolum lain (e.g. Title) tetapi tidak menunjukkan senarai sebenar tajuk-tajuk yang ia dijumpai, hanya DocId mereka adalah seperti yang ditunjukkan di sini:

clip_image002[1]

(Pukulan skrin yang tidak begitu besar kerana saya tidak memilih carian yang mengembalikan mana-mana keputusan yang sah, tetapi anda boleh lihat jika ia telah mendapati sesetengah keputusan, Ia hanya telah menunjukkan DocId yang, Tajuk tidak).

Saya mencari jawapan ini tinggi dan rendah dan gagal. Rakan saya, dengan kereta kebal Jonathan Bradshaw, telah dihadapi dan diselesaikan isu ini. Bilakah saya menjangkau kepadanya untuk bantuan, Dia menunjuk saya arah yang betul.

Konfigurasi reservasi yang menunjukkan beberapa kolum melalui "ShowInPicker" Hotel hebat di dalam ADF:

<Harta Nama="ShowInPicker" Jenis="System.Boolean">benar</Harta>

Dengan lebih terperinci:

  <!-- Title -->
  <TypeDescriptor TypeName="System.String" Nama="Title" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Title</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Hartanah>
      <Harta Nama="DisplayByDefault" Jenis="System.Boolean">benar</Harta>
      <Harta Nama="ShowInPicker" Jenis="System.Boolean">benar</Harta>
    </Hartanah>
  </TypeDescriptor>

Tatacara ini memperkenalkan satu masalah kecil. Sebaik sahaja anda menetapkan sekali, anda perlu menetapkan bagi setiap lajur yang anda mahu menunjukkan kepada. Dalam kes saya,, Pengutip BDC yang menunjukkan DocId secara lalai. Walau bagaimanapun, Sebaik sahaja saya menambah "ShowInPicker" untuk tajuk, DocId tidak lagi dipaparkan. Saya menyelesaikan yang dengan jelas menetapkan harta ShowInPicker untuk Doc ID.

Di sini adalah hasil:

imej

(Saya akan Terangkan odd-looking "168 – CamlSchema.xsd" pembinaan dalam sebuah posting blog masa depan. Secara ringkasnya, Ia adalah rentetan concatenated yang membolehkan untuk pengalaman pengguna yang sedikit lebih baik).

Kursus, Setelah entri blog ini ditulis., Saya hanya melakukan carian untuk "ShowInPicker" dan mendapati banyak hits, termasuk yang ini: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Ia menerangkan makna sesuatu sifat bersama-sama dengan beberapa lain BDC bagus.

</akhir>

Langgan ke blog saya!

Technorati Tags:

Pantas & Mudah: Membuat Folder dan Berikan Jenis Kandungan (Atau, Ada KPI anda dan Makan Mereka Terlalu)

Dalam usaha untuk bekerja di sekitar masalah KPI Saya menulis tentang di sini, Saya melakukan beberapa percubaan dan menemui kerja KPI itu terhadap folder dengan meta data dengan cara yang sama bahawa mereka menyebelahi dokumen atau senarai item. Saya membuktikan ia keluar dengan mencipta sejenis kandungan yang baru berdasarkan jenis kandungan folder dan kemudian ditambah beberapa bidang. Saya telah mencipta beberapa penunjuk dan membuktikan kepada diri saya sendiri bahawa KPI berfungsi seperti yang dijangka. Ini merupakan berita yang alu-aluan. Memang tidak sempurna, kerana yang turun gerudi yang anda terima daripada KPI terhadap folder adalah tidak betul-betul apa yang anda mahu. Ini tidak terlalu banyak kelemahan di dalam kes saya kerana 1) pengguna akhir tidak tahu apa-apa yang lebih baik dan 2) gerudi-down pergi ke folder. Mereka klik nama folder dan mereka berada di perkara. Ia adalah dua klik sekaligus dan bukannya satu, yang tidak menjadi akhir dunia.

Ini mengalir baik dengan pekerjaan yang saya lakukan. Saya saya mencipta folder untuk tiap-tiap dokumen yang mendapat upload. Ini dilakukan melalui penerima acara untuk. Hasilnya, ia adalah sekeping kek untuk menjaga induk folder data Meta yang selari dengan data meta berasaskan KPI dari fail itu sendiri kerana sistem paip yang ada telah diperuntukkan. This allows me to have my KPI’s and eat them too 🙂

Aku buat kali terakhir acara penerima untuk menambah folder dan kemudian, setkan jenis kandungan folder ini baru untuk saya jenis kandungan mesra KPI adat. Ini sedikit kod melakukan silap mata:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Dokumen-dokumen").Subfolder;
  SPFolder addedFolder = srcFolders.Add(properties.ListItem.ID.ToString());
  SPContentTypeId kpiCT = baru SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Kandungan jenis ID"] = KpiCT;
  addedFolder.Item.Update();

Untuk mencari Kandungan sebenar Jenis ID, Saya diakses bahawa jenis kandungan melalui penetapan tapak dan copy / paste dari URL seperti yang ditunjukkan:

imej

</akhir>

Langgan ke blog saya!

Technorati Tags: ,

Pantas dan Mudah: Dapatkan SPFolder daripada SPListItem dalam sesuatu Penerima Acara

Saya tidak suka mengakuinya, tetapi saya bergelut dengan semua ini satu hari. Penerima sekiranya saya perlu untuk mengemaskini bidang folder ibunya. Ini sedikit menunjukkan bagaimana untuk melakukannya:

swasta membatalkan UpdateParentFolder(SPItemEventProperties hartanah)
{

SPFolder thisItemFolder = properties.ListItem.File.ParentFolder;
thisItemFolder.Item["Status kelulusan ZZ"] = "Berita baik, semua orang!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

Dalam kes ini,, Saya bekerja dengan sebuah perpustakaan dokumen dan sifat-sifat yang datang dari acara ItemAdded.

Silap mata tersebut bahawa anda tidak boleh mendapatkan SPFolder item secara langsung dari ruang itu sendiri (Dgn kata lain. properties.ListItem.Folder adalah batal). Sebaliknya, pergi ke fail yang berkaitan item senarai dan mendapatkan folder Fail ini.

</akhir>

Langgan ke blog saya!

Technorati Tags:

Namun Satu lagi acara Penerima Debug Trick

Saya yakin saya bukan orang pertama yang datang dengan ini. Walau bagaimanapun, Saya belum melihat sesiapa yang menerbitkan trick seperti ini sejak saya mula memberi perhatian yang rapat kepada masyarakat Julai lepas. Jadi, Saya fikir saya akan pos ini hujung debug cepat dan mudah.

Saya bekerja di penerima acara yang mula menjana kesilapan ini dalam 12 sarang:

Ralat memuatkan dan menjalankan acara penerima Conchango.xyzzyEventReceiver dalam xyzzy, Versi = 1.0.0.0, Budaya = neutral, PublicKeyToken = blahbalhbalh. Maklumat tambahan adalah di bawah. : Rujukan objek tidak disetkan kepada contoh objek.

Saya tidak tahu di mana saya telah memperkenalkan bug ini kerana saya telah melakukan perkara-perkara yang terlalu banyak dalam satu kitaran kod/menggunakan/ujian saya.

Saya cuba penyelesaian ini untuk mendapatkan pdb saya di sana dengan harapan bahawa ini SharePoint 12 sarang akan menunjukkan kesan tindanan, tetapi nasib tidak. Saya tidak tahu jika ia boleh dilakukan dan jika seseorang yang melakukan, sila beritahu saya 🙂

Saya tahu ia adalah mungkin untuk menulis mesej log anda sendiri kepada 12 sarang. Terus terang, Saya mahu sesuatu yang kurang menakutkan dan lebih cepat untuk melaksanakan.

Ia berlaku kepada saya bahawa saya sekurang-kurangnya boleh mendapatkan beberapa maklumat asas mengesan dengan menangkap dan membaling semula pengecualian generik seperti ini:

  cuba {
    UpdateEditionDate(hartanah);
  }
  menangkap (Pengecualian dan)
  {
    membuang baru Pengecualian("Dispatcher, UpdateEditionDate(): Pengecualian: [" + e.ToString() + "].");
  }

Ini muncul dalam 12 sarang thusly:

Ralat memuatkan dan menjalankan acara penerima Conchango.xyzzyEventReceiver dalam xyzzy, Versi = 1.0.0.0, Budaya = neutral, PublicKeyToken = blahblahblah. Maklumat tambahan adalah di bawah. : Penghantar, UpdateEditionDate(): Pengecualian: [System.NullReferenceException: Rujukan objek tidak disetkan kepada contoh objek. pada Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(Hartanah SPItemEventProperties) pada Conchango.xyzzyManagementEventReceiver.Dispatcher(Hartanah SPItemEventProperties, EventDescription String)].

Yang memberikan saya semua butiran yang saya perlu untuk mengesan masalah yang tertentu dan saya mengharapkan untuk menggunakannya banyak masa hadapan.

</akhir>

Langgan ke blog saya!