Архивы по месяцам: Август 2007

Список Крейга работал хорошо для меня

Я разместил объявление для продажи моего автомобиля в округе Берген, Нью-Джерси в ночь на воскресенье. Я получил несколько запросов по электронной почте вскоре после этого и закрыли сделку с кем-то в ночь на вторник.

Почти слишком хорошо чтобы быть правдой …

Мосс дополнительная настройка поиска — Дело имеет значение в расширенном поиске XSLT

Я не очень часто изменить расширенный поиск XSLT, так что похоже я восхождение малые холмы каждый раз.

Мои новейшие урок заключается в следующем: Тематические вопросы, при ссылке на столбец. В моем расширенный поиск, У меня есть столбцы, определенные как это:

<корень xmlns:xsi="HTTP://www.w3.org/2001/XMLSchema-instance">
<
Колонки>
<
Колонка Имя="GafTrainingInvoiceNumber" />
<
Колонка Имя="GafTrainingInvoiceLocation" />
<
Колонка Имя="WorkId"/>
<
Колонка Имя="Ранг"/>
<
Колонка Имя="Название"/>
<
Колонка Имя="Автор"/>
<
Колонка Имя="Размер"/>
<
Колонка Имя="Путь"/>
<
Колонка Имя="Описание"/>
<
Колонка Имя="Написать"/>
<
Колонка Имя="Имя_узла"/>
<
Колонка Имя="CollapsingStatus"/>
<
Колонка Имя="HitHighlightedSummary"/>
<
Колонка Имя="HitHighlightedProperties"/>
<
Колонка Имя="ContentClass"/>
<
Колонка Имя="IsDocument"/>
<
Колонка Имя="PictureThumbnailURL"/>
</
Колонки>
</
корень>

Был XLST, который отображает местоположение количество и счет фактуры:

<p>
Номер счета-фактуры обучение: <XSL:Стоимость от Выберите="GafTrainingInvoiceNumber"/>
<
br></br>
Учебные счета местоположение: <XSL:Стоимость от Выберите="GafTrainingInvoiceLocation"/>
</
p>

Однако, выбор есть для ссылки на свойство в нижний, как и в:

<p>
Номер счета-фактуры обучение: <XSL:Стоимость от Выберите="gaftraininginvoicenumber"/>
<
br></br>
Учебные счета местоположение: <XSL:Стоимость от Выберите="gaftraininginvoicelocation"/>
</
p>


До тех пор, пока я исправил, Результаты поиска, показал этикетки (т.е.. «Учебные счета номер») но нет данных.

МОСС: Пример функциональной – пользовательский тип данных

Бизнес-сценарий:

Осуществление в масштабах всего предприятия мха для производства компании с 30+ сайты и несколько десятков корпоративных отделов.

Бизнес-цель:

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

Техническая проблема:

Таксономия предприятия был реализован с использованием нескольких семейств сайтов. Мы хотели бы создать авторитетный список физических мест пользовательского списка WSS. Затем, когда нам необходимо иметь столбец в типе контента (или столбец добавлен в библиотеку или список doc) которая содержала корпоративных отделений, Мы хотели бы создать столбец с использованием «поиска" тип данных и указывают на этот мастер список.

К сожалению, типы данных поиска необходимо получить доступ к список Источник «локально" означает, что наш авторитетный список не могут охватывать семейств веб-сайтов.

Техническое решение:

Реализация нового пользовательского типа данных реализованы на основе SPField и представлено в виде DropDownList в пользовательском интерфейсе, чьи ListItems заполнения из главного списка WSS.

Мы создали новое семейство под названием "http://localhost/EnterpriseData". Там, Мы создали пользовательский список с именем «Корпоративных отделений». Этот список просто использует стандартный заголовок»" поле будет содержать список фактических корпоративных мест.

Один следует несколько дискретных шагов для создания пользовательского типа данных в WSS. Они являются:

  1. Определите класс, который наследует от класса SPField (один может наследовать от других полей, если требуется).

Вот код для этого:

государственные класс XYZZYCorporateLocationField : SPFieldText
{
государственные XYZZYCorporateLocationField
(SPFieldCollection поля, Строка typeName, Строка displayName)
: база(поля, typeName, displayName) { }

государственные XYZZYCorporateLocationField
(SPFieldCollection поля, Строка displayName)
: база(поля, displayName) { }

государственные Переопределение BaseFieldControl FieldRenderingControl
{
Получить
{
BaseFieldControl управления = Новые функции XYZZYCorporateLocationFieldControl();
управления. Имя_поля = Это.InternalName;
возвращение управления;
} //Получить
} // FieldRenderingControl

государственные Переопределение Строка GetValidatedString(объект значение)
{
Если (Это.Обязательно || значение. ToString().Равно(Строка.Пустой))
{
бросать Новые функции SPFieldValidationException («Департамент не назначается.");
}
возвращение база.GetValidatedString(значение);
} // GetValidatedString

} // XYZZYCorporateLocation

  1. Определить другой класс, наследуемый от базового поля элемента управления, как и в:

государственные класс XYZZYCorporateLocationFieldControl : BaseFieldControl
{
Защита DropDownList XYZZYCorporateLocationSelector;

Защита Переопределение Строка DefaultTemplateName
{
Получить
{
возвращение «XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

государственные Переопределение объект Значение
{
Получить
{
EnsureChildControls();
возвращение Это.XYZZYCorporateLocationSelector. SelectedValue;
} // Получить
набор
{
EnsureChildControls();
Это.XYZZYCorporateLocationSelector.SelectedValue = (Строка)Это.ItemFieldValue, при;
} // набор
} // переопределить объект значение

Защита Переопределение void CreateChildControls()
{

Если (Это.Поле == значение NULL || Это.ControlMode == SPControlMode.Дисплей)
возвращение;

база.CreateChildControls();

Это.XYZZYCorporateLocationSelector =
(DropDownList)FindControl TemplateContainer.(«XYZZYCorporateLocationSelector");

Если (Это.XYZZYCorporateLocationSelector == значение NULL)
бросать Новые функции Исключение(«ОШИБКА: Не удается загрузить. ASCX-файл!");

Если (!Это.IsPostBack страницы.)
{

использование (SPSite сайта = Новые функции SPSite(«http://localhost/enterprisedata"))
{
использование (SPWeb веб сайт =. OpenWeb())
{

SPList currentList = web. Списки[«Корпоративный места"];

по каждому элементу (SPItem XYZZYCorporateLocation в currentList.Items)
{
Если (XYZZYCorporateLocation["Название"] == значение NULL) продолжить;

Строка theTitle;
theTitle = XYZZYCorporateLocation["Название"].ToString();

Это.XYZZYCorporateLocationSelector.Items.Add
(Новые функции ListItem(theTitle, theTitle));

} // по каждому элементу

} // с помощью веб-spweb = site.openweb()
} // используя сайт spsite = новые spsite(«http://localhost/enterprisedata»)

} // Если не обратной передачи

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Приведенный выше код в основном реализует логику для заполнения DropDownList с ценностями из пользовательского списка WSS, расположен в http://localhost/enterprisedata и именем «Корпоративные отделы».

Я определил обоих классов в одном CS-файл, скомпилировал его и положил его в глобальный кэш сборок (сильный требуется, Конечно).

  1. Реализация шаблона элемента управления (.ASCX) как показано:

<%@ Управления Язык= "C#" Наследует="Microsoft.SharePoint.Portal.serveradmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Версия = 12.0.0.0, культура = neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode«Всегда =" %>
<%
@ Зарегистрироваться TagPrefix= «wssawc" Пространство имен="Microsoft.SharePoint.WebControls" Ассамблея="Microsoft.SharePoint, Версия = 12.0.0.0, Культура = нейтральных, PublicKeyToken = 71e9bce111e9429c" %> <%@ Зарегистрироваться TagPrefix= "SharePoint" Пространство имен="Microsoft.SharePoint.WebControls" Ассамблея="Microsoft.SharePoint, Версия = 12.0.0.0, Культура = нейтральных, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID= «XYZZYCorporateLocationFieldControl" runat= «сервер»>
<Шаблон>
<ASP:DropDownList ID= «XYZZYCorporateLocationSelector" runat= "сервер" />
</Шаблон>
</
SharePoint:RenderingTemplate>

Выше сохраняется в c:\Программа filescommon filesmicrosoft sharedweb сервера extensions12controltemplates.

  1. Наконец, Мы создаем XML-файл для сохранения в... 12XML каталог. Это CAML, который определяет наш пользовательский тип данных и для моего примера, как это выглядит:

<?XML Версия="1.0" кодирование="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
Поле Имя="TypeName">CorporateLocations</Поле>
<
Поле Имя="ParentType">Текст</Поле>
<
Поле Имя="TypeDisplayName">Корпоративные места</Поле>
<
Поле Имя="TypeShortDescription">Все XYZZY корпоративных отделений, включая производство или других объектов.</Поле>
<
Поле Имя="UserCreatable">ПРАВДА</Поле>
<
Поле Имя="ShowInListCreate">ПРАВДА</Поле>
<
Поле Имя="ShowInDocumentLibraryCreate">ПРАВДА</Поле>
<
Поле Имя="ShowInSurveyCreate">ПРАВДА</Поле>
<
Поле Имя="ShowInColumnTemplateCreate">ПРАВДА</Поле>
<
Поле Имя="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Версия = 1.0.0.0, Культура = нейтральных, PublicKeyToken = b0b19e85410990c4</Поле>
<
RenderPattern Имя="DisplayPattern">
<
Переключатель>
<
Expr>
<
Колонка />
</
Expr>

<Дело Значение=""/>

<По умолчанию>
<
HTML>
<![CDATA[
<Span style = "цвет:Красный»><b>]]>
</
HTML>

<
Колонка SubColumnNumber="0" HTMLEncode="ПРАВДА"/>

<HTML><![CDATA[</b></диапазон>]]></HTML>

</
По умолчанию>
</
Переключатель>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
Этот XML-файл добавляет тип пользовательских данных WSS «Библиотека" и матчи против ПКК был Ассамблеи.

После переезда все эти биты на место, IISRESET на сервере и это все должны начать работать красиво.

WSS: Техника для создания определения полей CAML.

Дополнительные категории: CAML

Здесь Великий размещения, парень по имени «Крейг" на технику для нахождения CAML определения для типов содержимого поля в зависимости от реальных определений с сайта.

Его размещение говорит, что все. В краткой:

  1. Создание типа контента.
  2. Связать его со списком.
  3. Откройте список с SharePoint Designer.
  4. Экспорт «личный веб-пакет».
  5. Переименовать на CAB.
  6. Извлекать манифест.
  7. Найдите свой тип содержимого и связанные CAML.

WSS: Краткие шаги, чтобы включить полезные функции/элементы/и т.д.. IntelliSense в VS 2005

Дополнительные категории: Visual Studio 2005

Чтобы включить полезные intellisense для функций, элементы, и т.д. в среде visual studio 2005:

  1. Доступ к серверу, WSS.
  2. Перейдите к «c:\Программа filescommon filesmicrosoft sharedweb сервера extensions12TEMPLATEXML"
  3. Открыть еще один проводник windows, указывая на: «C:\Программа Майкрософт Visual Studio 8XmlSchemas"
  4. Скопируйте следующие файлы из сервера WSS для вашего VS 2005 Справочник схем:
    1. WSS.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Перезапустите VS 2005
  6. Добавление нового файла XML в проект.
  7. Щелкните в тексте XML-файла.
  8. В панели Свойства, Нажмите на «схем" и выбрать «wss.xsd" из вариантов. (Не стоит выбирать другие xsd, так как они ссылается wss.xsd).

IntelliSense теперь включена для этого XML-документа.

См. Здесь более подробную информацию по этому вопросу и для получения инструкций о том, как связать WSS intellisense автоматически с любой XML-файл.

WSS экзамен 70-541, Службы Microsoft Windows SharePoint Services 3.0 – Разработка приложений

Я взял и прошел выше тест сегодня утром. Я нашел экзамен трудным и ярмарка.

Относительного недостатка информации на этот экзамен на веб-. Я не уверен почему.

Я явно не буду в подробности о экзамен, я взял, но я думаю, я могу благополучно сказать следующее:

  1. Доверять эту ссылку: http://www.microsoft.com/learning/exams/70-541.mspx.

    Он перечисляет, что вам нужно знать, чтобы пройти экзамен и это, ИМО, Очень Точная.

  2. По ссылке также рекомендует Внутри Microsoft Windows SharePoint Services 3.0 от Тед Пэттисон & Daniel Ларсон. Эта книга охватывает почти все предметы, которые тест адреса. Я нашел это здорово само по себе за рамки простой экзамен prep. Он предоставляет примеры великих и действительно заставило меня задуматься о некоторых новых и интересных вещей, чтобы попробовать. Если вы хотите пропустить несколько битов в книге, просто перекрестная ссылка оглавление книги с элементами в ссылке сверху.
  3. Ничто не сравнится с реальный практический опыт. Если у вас есть время и интерес, следовать вместе с примерами в книге и затем экспериментировать с ними. Вы будете иметь более легкое время на экзамен, а также действительно узнать программирования приложений WSS.

</конец>Подписаться на мой блог!

МОСС / Сервер форм InfoPath (InfoPath 2007) списком производительности

Дополнительные категории: InfoPath

Резюме: InfoPath 2007 формы, развернутого на сервере MOSS предоставляет раскрывающийся список поставщиков, привязаны к списку пользовательских Мосс. При выборе поставщика, правила назначить значения полей несколько текстовых полей, таких как имя продаж, адрес, город, государство, ZIP и phone. Производительность это ужасно. Мы замечаем, что производительность ухудшается (в нелинейных моды) для каждого дополнительного поля мы обновление таким образом. Т.е., Если мы просто обновить имя продаж, Он принимает [x] количество времени. Если мы обновление продаж, Адрес1, Адрес2, город, государство, Индекс, Он принимает 10 раз дольше.

Решение: Написать веб-службы (примеры кода можно найти Здесь) Это передается имя поставщика и возвращает обратно детали поставщика. Затем, назначить поля таким образом. Хотя это, кажется, слишком медленно, Существует нет заметной разницы в производительности, когда мы 1 поле против 8 поля. В качестве дополнительного бонуса, Пользователи получают прохладно «соединение с сервером" Сайлоны эффект, пока они ждут для вызова и потреблять службы результаты формы.

МОСС: Произошло исключение. (Исключение из HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

ОБНОВЛЕНИЕ: Мы никогда не определили основную причину этой проблемы, и он никогда не поверхности снова.

Мы заметили в ходе осуществления развития сайта, что внезапно, два пользователя не могут получать доступ к коллекции узлов. Эти счета могут проходить проверку подлинности на основной сайт, Однако при попытке доступа к определенного семейства сайтов, они просто получаю пустой экран. Ошибки не отображаются, Белая пустая страница.

Войдите в систему как администратор семейства сайтов и попробуйте добавить один из этих пользователей как администратор сайта и на этот раз, После нажатия «ОК», Мы получаем это сообщение:

Произошло исключение. (Исключение из HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

Мы провели некоторое время исследовать это и, к сожалению, не придумать что-нибудь полезное. Там были некоторые сообщения в журнале диагностики, но это было трудно точно соотносить их с этим вопросом.

В конце концов, Мы Удаление семейства сайтов и заново ее и что решить ее.

Если я выяснить, что это вызвало в будущем, Я буду обновлять этот пост.