месечни архиви: Февруари 2008

Малки публичното обявяване: Windows живо сигурност настройки и контактуване пространство собственици

Аз получавам шепа на съобщения от лица чрез вградения "Изпращане на съобщение" функцията Microsoft предоставя живи пространства (което също е домакин моя блог) всеки месец.

Около една трета от времето, тези потребители са си осигурили сметката си живи пространства са такива, че не може да отговори. Това е някакъв вид анти-спам функция, предполагам.

</край>

Просто обяснение: “Стойността не попада в очаквания диапазон.”

АКТУАЛИЗИРАНЕ: Един анонимен плакат оставил голям коментар за вътрешните имена. Не забравяйте да го прочетете.

Когато работите със събитие приемници и други код, който адресира елементи чрез обектния модел на SharePoint списък, Аз често правят грешки, които генерира тази грешка по време на изпълнение:

Грешка при зареждане и събитие получател Conchango.xyzzyEventReceiver в xyzzy, Версия = 1.0.0.0, Култура = неутрална, PublicKeyToken = 0dc50a750396c3ac. Допълнителна информация е по-долу. : Стойността не попада в очаквания диапазон.

Мисля, че това е доста обща грешка, която потенциално е причинена много различни начини. Въпреки това, един прост обяснение е, че аз съм съотнасяне поле неправилно. Ако името на полето "Дата на падеж", Аз трябва да го позоваване като тази в събитие получател:

свойства.Елемент от списък["Дата на падеж"]

Когато грешите или да използвате грешен случая, когато се обръщате към полето, SharePoint генерира по-горе споменати runtime грешка. За пример, Това е грешно:

свойства.Елемент от списък["дата на падеж"]

</край>

Абонирайте се за моя блог.

Technorati тагове:

Краен потребител бързо съвет: Сортирай изгледи в библиотеката с документи, Списък, н.

Ние можем да, трябва да и създавате много изгледи в списъци на SharePoint (библиотеки с документи, потребителски списъци, н). SharePoint винаги изброява наличните изгледи по азбучен ред. Ние не може да промени това с помощта на функционалност кутия. Ако може да се направи чрез персонализиране (и аз не съм сигурен, че може да), Това е много технически за си Типичният крайния потребител.

Ако искате да контролирате реда, в който SharePoint списък на наличните изгледи, Просто сложете число или писмо до името на изгледа, както и в:

1 – От материала
2 – Всички документи
3 – Дата на падеж

-или-

А – От материала
Б – Всички документи
C – Дата на падеж

I също е създаден изгледи, чиято цел е строго да се хранят на KPI. Съм бил след тази конвенция за именуване:

Z_KPI_[описание]

Това причинява ми "KPI" изгледи да се появи в дъното на списъка.

</край>

Абонирайте се за моя блог.

Неделя забавни: “Когато бях малко момче”

Като родител, някъде по линията открих "когато бях малко момче" трик.

Моят син, вероятно четири или пет по време, играе балон и като най-малко момчета, които играят с балони, Той го показа. Той е бил много разстроен. Светът е дошъл да се сложи край. Аз му казах, "когато бях малко момче, Имах един балон и го показа и в крайна сметка, Аз имам нов балон." Тя изглеждаше да му се справят със загубата си помогне и да доведе до забавен говоря за какво е искал, когато бях малко момче.

Това работи добре като утеха техника и аз го използва няколко пъти през следващия период от време. Аз did добивам в беда веднъж когато му ранчо чудовище 3 създание умира. Аз говорихме за това как кучето ми, Принц, загинал в автомобилна катастрофа. Този път, Неговият отговор беше, "Сега се чувствам зле за две неща!" Аз стояла настрана от помощта "когато бях малко момче" техника за утеха след това.

Преди инцидента умряло куче, Въпреки това, Аз също започнаха да се използва техника за да го убеди да направи домакинска работа. "Когато бях малко момче, Аз трябваше да изляза и да получите вестника", "чисти стаята ми", "Вземи мама си чаша кафе", н.

Това също е доста успешна за известно време, но той започва да се все повече се разбунтува срещу тиранията на моето детство. Едно събитие, по-специално, отбелязва края. Казах му за кофи за боклук от собственото обратно към гаража. Той твърди, и аз отговорили, "Когато бях малко момче, Аз трябваше да вземе отпадъците обратно в гаража." Той отговори:, "О да! Ами когато беше малко момче, Това е ГЛУПАВО!".

</край>

Абонирайте се за моя блог.

Technorati тагове:

Мнения и колоните на списъци и библиотеки с документи не може да бъде защитено

АКТУАЛИЗИРАНЕ (02/29/08): Този нов codeplex проект изглежда да се осигури метод за осигуряване на отделни колони: http://www.codeplex.com/SPListDisplaySetting. Ако имате опит работа с него, Моля, оставете коментар.

Форум плакати често задават въпрос като този: "Имам мениджър изглед and и персонала изглед на списък. Как правя сигурен изгледа на мениджър, така че персоналът не може да го използвате?"

Те също така често питат свързан въпрос: "Искам да се осигури на метаданни, специфични колона, така че само администратори могат да редактирате тази колона, докато други може да не дори виждате я."

Тези отговори се прилагат за двете WSS 3.0 и Мос:

  • SharePoint не предоставя вън на на кутия поддръжка за осигуряване на изгледи.
  • SharePoint не предоставя вън на на кутия поддръжка за сигурност колони.

Има няколко техники за един може да следва да отговарят на тези видове на изискванията за сигурност. Тук е това, което мога да мисля за:

  • Използвате елемент от вън на на кутия ниво на сигурност. Изглед винаги чест елемент ниво на сигурност конфигурация. Събитие получател и/или работен поток може да автоматизирате сигурност назначение.
  • Използвайте лични изгледи за "привилегировани" пъти видяна. Това са достатъчно лесен, за да настроите. Въпреки това, поради своите "лични" природата, те трябва да се конфигурират за всеки потребител. Използвайте стандартните сигурността конфигурация за предотвратяване на някой друг от създаване на личен изглед.
  • Използване на уеб компонента за изглед на данни и прилагат някакво решение за орязване на AJAXy сигурност.
  • Roll своя собствена списък излагам на показ функционален и включват орязване на защитата на ниво на колона.
  • Модифициране на данни запис форми и използват JavaScript във връзка с модел на сигурност за изпълнение на орязване на защитата на ниво на колона.
  • Използване на формуляр на InfoPath за въвеждане на данни. Прилагане на орязване на защитата на ниво на колона чрез уеб услуга повиквания към SharePoint и условно скриване на полета, ако е необходимо.
  • Roll своя собствена ASP.NET данни влизане функция, която изпълнява колоната ниво на сигурност подстригване.

Нито една от тези опции са наистина, че много, но има поне един път да следват, ако трябва да, дори ако това е трудно.

ЗАБЕЛЕЖКА: Ако отидете по някоя от тези пътеки, не забравяйте за "действия-> Отваряне с Windows Explorer". Искате да се уверите, че ви тест с тази функция, за да се уверите, че тя не работи като "задната врата" и победи вашата схема.

Ако имате други идеи за или опит с осигуряване колони или изгледи, Моля пишете ми или оставете коментар и аз ще актуализира този текст според случая.

</край>

Абонирайте се за моя блог.

Technorati тагове:

Бързо съвет: BDC ADF версия номера са си приятел

Ако вие сте ръчно кодиране ADF файлове и прави много от код/внос/изпитвателни цикли, Използвайте номера на версията, за да улесни живота ви.

Аз мразя да го призная, но докато тази седмица, Винаги бях изтриването на ADF и повторно импортиране на го. Това ще прекъсне ми колони за бизнес данни и правя me ре-тел ги. Всички ненужни.

Файл това под "това е очевидно, след като го виждате".

Пример:

<LobSystem
xmlns:XSi="HTTP://www.w3.org/2001/XMLSchema-instance" XSi:schemaLocation="HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Тип="Уеб услугата" Версия="1.2.0.0" Име="xyzzyDocumentReview" xmlns="HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Промяна на тази версия и повторен внос и съществуваща колона с бизнес данни използва актуализираната версия автоматично с не изисква допълнителна конфигурация.

</край>

Абонирайте се за моя блог.

Technorati тагове:

Разтвор: Избор на BDC показва само една колона с резултати

В моите Текущи опити за осигуряване на по-полезна справочна колона с помощта на BDC, Аз удари стената с избора на BDC. Ако не сте го видите, избора на BDC е подобен на избор на хората освен, че се работи с колони от тип "бизнес данни".

Имате достъп избор, като щракнете върху иконата на отворена книга на колона за бизнес данни както е показано:

Изображение

Горната снимка показва колона за бизнес данни, наречена "Master документ Id". Тази колона е свързана, чрез BDC, към уеб услуга. Уеб услугата връща две колони с информация: ИД на документ и заглавие. Бизнес цел тук е да се осигури "този документ се основава на" функция. Потребителите избират "магистър" документ и когато те спаси, получателят на събитието копира полетата за мета данни от посочения образец.

По подразбиране, избора на BDC изглежда като това, когато се търси за документ, чиито ID = "38":

clip_image002

Това е полезно, но не е достатъчно добър. Хората не мислят от гледна точка на идентификатори, те мислят заглавия и/или други мета данни. Избор ви позволява да търсите в други колони (e.g. Заглавие) но няма да се покаже действителния списък от заглавия, установено, просто си Идентификаторът е както е показано тук:

clip_image002[1]

(На екрана изстрел не е толкова голяма, защото аз не изберете търсене, която връща всички валидни резултати, но можете да видите, че ако е установил някои резултати, това само би показало Идентификаторът на, не заглавия).

Търсили висок и нисък за отговор на това и не е. Моят колега, преподобният Jonathan Брадшоу, са изправени и решават този проблем. Когато аз протегна ръка към него за помощ, Той ми посочи в правилната посока.

Конфигуриране на изписващия да покаже няколко колони чрез "ShowInPicker" имот в АПУ:

<Имоти Име="ShowInPicker" Тип="System.Boolean">вярно</Имоти>

По-подробно:

  <!-- Заглавие -->
  <TypeDescriptor TypeName="System.String" Име="Заглавие" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Заглавие</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Имоти>
      <Имоти Име="DisplayByDefault" Тип="System.Boolean">вярно</Имоти>
      <Имоти Име="ShowInPicker" Тип="System.Boolean">вярно</Имоти>
    </Имоти>
  </TypeDescriptor>

Задаването на това свойство въведе дребен проблем. Веднага след като сте го задали веднъж, трябва да го настроите за всяка колона, която искате да покажете. В моя случай, BDC picker показа Идентификаторът по подразбиране. Въпреки това, след като добавих "ShowInPicker" Заглавие, Идентификаторът не се показва. Аз решавам че чрез изрично установяване на свойството ShowInPicker за ИД на документ.

Тук е резултат:

Изображение

(Аз ще обясня странно изглеждащи "168 – CamlSchema.xsd" строителството в бъдеща блог пост. В кратко, Това е свръхдълги низ, който позволява за по малко по-добър потребителски опит).

Разбира се, като писмено този блог влизане, Аз просто Направих търсене за "ShowInPicker" и намерени множество хитове, включително този един: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Това обяснява смисъла на това свойство, както и някои други добри неща на BDC.

</край>

Абонирайте се за моя блог!

Technorati тагове:

Бърз & Лесно: Създаване на папка и да присвоите тип съдържание (Или, Си KPI и ги ядат)

За да заобиколите KPI проблем Аз написах за тук, Аз направих някои тестване и открих че KPI работа срещу папки с мета данни по същия начин, че те работят срещу документи или списъка елементи. Аз се оказа го чрез създаване на нов тип съдържание на базата на типа на съдържание на папка и след това се добавя няколко полета. Съм създал някои показатели и се оказа че KPI работи както се очаква. Това е добра новина. Това не е съвършен, тъй като тренировка надолу получавате от KPI срещу папки не е точно това, което искате. Това не е твърде много е недостатък в моя случай, защото 1) крайните потребители не знаят по-добре и 2) тренировка надолу отива в папка. Те щракнете върху името на папката и те са в елемента. Това е две кликвания вместо един, което не е края на света.

Това течеше добре с работата правя. Аз съм създаване на папка за всеки документ, който се качва. Това се прави чрез получател на събитие. Като резултат, Това е едно парче от тортата да се запази родителската папка мета данни в синхрон с KPI задвижване мета данни от самия тъй като водопровод е вече налице файл. Това ми позволява да имам KPI и да ги ям също 🙂

Аз modified събитие приемника да добави папката и след това тази нова папка на тип съдържание към моя потребителски тип KPI-приятелски съдържание. Този късче на код did определителен член хитрост:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Документи").Подпапките;
  Папка SPFolder addedFolder = srcFolders.Add(свойства.ListItem.ID.ToString());
  SPContentTypeId kpiCT = нов SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Идентификатор на тип съдържание"] = kpiCT;
  addedFolder.Item.Update();

За да намерите действителните ИД на тип съдържание, Достъп до този тип съдържание чрез настройки на сайта и копие/тесто то от определителен член URL както е показано:

Изображение

</край>

Абонирайте се за моя блог!

Technorati тагове: ,

Бърз и лесен: Вземи папка SPFolder на SPListItem в получател на събитие

Аз мразя да го призная, но аз се борят с този един цял ден. Моят събитие приемник трябва да актуализирате поле на родителската папка. Това малко показва как да го направя:

частни невалидни UpdateParentFolder(SPItemEventProperties имоти)
{

Папка SPFolder thisItemFolder = свойства.ListItem.File.ParentFolder;
thisItemFolder.Item["Състояние на одобрение за ZZ"] = "Добрата новина, всеки!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

В този случай, Аз съм на работа с библиотека с документи и свойствата са идващи от ItemAdded събитие.

Номерът е, че не можете да получите папка SPFolder на артикула директно от самия елемент (т.е.. свойства.ListItem.Folder е null). Вместо това, преминете към свързания файл на елемента от списъка и да получите папка на файла.

</край>

Абонирайте се за моя блог!

Technorati тагове:

Все още друго събитие получател Debug трик

Аз съм сигурен, че аз не съм първият човек, който излезе с това. Въпреки това, Аз не съм забелязал някой публикува трик като този, тъй като аз започнах да отделя специално внимание към Общността през юли. Така, Мислех, че ще го публикуваме този бърз и лесен debug съвет.

Аз съм работи по получател на събитие, което започна да генерира тази грешка в 12 кошер:

Грешка при зареждане и събитие получател Conchango.xyzzyEventReceiver в xyzzy, Версия = 1.0.0.0, Култура = неутрална, PublicKeyToken = blahbalhbalh. Допълнителна информация е по-долу. : Обект номер не настроен на една инстанция на обект.

Аз не знам къде е въведено този бъг, защото е направил твърде много неща в един от моите код/разположи/изпитвателни цикли.

Аз се опитах този разтвор да се ми pdb там с надеждата, че SharePoint 12 кошер ще покаже проследяването на стека, но няма късмет. Аз не знам дали това е възможно и ако някой прави, Моля да ме уведомите 🙂

Знам, че е възможно да Напишете вашия собствен регистър съобщения до 12 кошер. Честно казано, Исках нещо малко по-страшно и по-бързо за изпълнение.

Това ми хрумна, че мога да получа поне някои основни следа информация чрез улавяне и повторно хвърляне общи изключения като този:

  Опитайте {
    UpdateEditionDate(имоти);
  }
  улова (Изключение e)
  {
    хвърлят нов Изключение("Експедитор, UpdateEditionDate(): Изключение: [" + e.ToString() + "].");
  }

Това се появи в 12 Кошера thusly:

Грешка при зареждане и събитие получател Conchango.xyzzyEventReceiver в xyzzy, Версия = 1.0.0.0, Култура = неутрална, PublicKeyToken = blahblahblah. Допълнителна информация е по-долу. : Експедитор, UpdateEditionDate(): Изключение: [System.NullReferenceException: Обект номер не настроен на една инстанция на обект. в Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(Свойства на SPItemEventProperties) в Conchango.xyzzyManagementEventReceiver.Dispatcher(Свойства на SPItemEventProperties, Низ eventDescription)].

Това ми даде всички подробности, трябва да проследим този проблем и аз очаквам да се използва много върви напред.

</край>

Абонирайте се за моя блог!