Месечни архиви: Август 2007

Листа Крег работел добро за мене

Јас испратени класифицирани реклама за продажба на мојот автомобил во Берген округот, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.

Речиси премногу добра за да биде вистина …

Мос напредно пребарување прилагодување — Случај не е важно во напредно пребарување XSLT

Јас не ја менувате напредно пребарување XSLT многу често, па се чини како да сум качување мали ридови во секое време.

Моите најнови лекција е ова: Случај е важно кога референцирање колона. Во мојот напредно пребарување, Имам колумни дефинира како оваа:

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

На XLST кој го прикажува на фактурата број и фактура локација биле:

<стр>
Training Invoice Number: <XSL:вредност на изберете="GafTrainingInvoiceNumber"/>
<
BR></BR>
Training Invoice Location: <XSL:вредност на изберете="GafTrainingInvoiceLocation"/>
</
стр>

Сепак, изберете мора да повикување на имотот во сите мали букви, како и во:

<стр>
Training Invoice Number: <XSL:вредност на изберете="gaftraininginvoicenumber"/>
<
BR></BR>
Training Invoice Location: <XSL:вредност на изберете="gaftraininginvoicelocation"/>
</
стр>


Until I corrected that, search results showed the labels (i.e. "Training Invoice Number") but no data.

Мос: Функционални Пример - сопствени податоци Тип

Бизнис сценарио:

Претпријатие-широк имплементација на Мос за производство на компанијата со 30+ сајтови и неколку десетици корпоративни сектори.

Бизнис Цел:

И покрај мноштво на бизнис-групи (одделенија, локации, итн), одредени податоци треба да се одржува на глобално ниво. На пример, авторитетен господар листа на сите физички локации на компанијата (e.g. производствени капацитети, складиште локации, продажбата на канцеларии) треба да се одржува во една централна локација.

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

На претпријатието таксономија беше имплементиран со користење на повеќе сајт колекции. Ние би сакал да се создаде авторитетен листа на физички локации во сопствен WSS листа. Потоа, кога ни е потребно да имаме колона во типот на содржина (или колона додадена на листа или doc библиотека) кои се содржани корпоративни локации, we would create a column using the "lookup" тип на податоци и точка за овој господар листа.

За жал, lookup datatypes must access a source list "locally" што значи дека нашите авторитетен листа не може да span сајт колекции.

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

Спроведе нова сопствен тип на податок спроведува врз основа на SPField и претставен како DropDownList во корисничкиот интерфејс, чии ListItems доверат од WSS господар листа.

Ние направивме нов сајт колекција наречена "http://localhost/EnterpriseData". Има, we created a custom list named "Corporate Locations". This list just uses the standard "Title" поле ги содржи листа на вистинските корпоративниот локации.

Се следат неколку дискретни чекори за да креирате сопствени тип на податоци во WSS. Тие се:

  1. Се дефинира класа која наследува од SPField (може да се наследат од други области ако е потребно).

Еве го кодот за тоа:

јавноста класа XYZZYCorporateLocationField : SPFieldText
{
јавноста XYZZYCorporateLocationField
(SPFieldCollection полиња, низа typeName, низа displayName)
: база(полиња, typeName, displayName) { }

јавноста XYZZYCorporateLocationField
(SPFieldCollection полиња, низа displayName)
: база(полиња, displayName) { }

јавноста избегне BaseFieldControl FieldRenderingControl
{
добие
{
BaseFieldControl control = нови XYZZYCorporateLocationFieldControl();
control.FieldName = овој.Внатрешна Име;
се врати control;
} //добие
} // fieldrenderingcontrol

јавноста избегне низа GetValidatedString(објект вредност)
{
ако (овој.Required || value.ToString().Еднакво(Стринг.Празни))
{
фрли нови SPFieldValidationException ("Department is not assigned.");
}
се врати база.GetValidatedString(вредност);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Дефинираат друга класа која наследува од база теренска контрола, како и во:

јавноста класа XYZZYCorporateLocationFieldControl : BaseFieldControl
{
заштитени DropDownList XYZZYCorporateLocationSelector;

заштитени избегне низа DefaultTemplateName
{
добие
{
се врати "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

јавноста избегне објект Вредност
{
добие
{
EnsureChildControls();
се врати овој.XYZZYCorporateLocationSelector.SelectedValue;
} // добие
постави
{
EnsureChildControls();
овој.XYZZYCorporateLocationSelector.SelectedValue = (низа)овој.ItemFieldValue;
} // постави
} // override object Value

заштитени избегне поништат CreateChildControls()
{

ако (овој.Field == нула || овој.ControlMode == SPControlMode.Прикажување)
се врати;

база.CreateChildControls();

овој.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");

ако (овој.XYZZYCorporateLocationSelector == нула)
фрли нови Исклучок("ERROR: Cannot load .ASCX file!");

ако (!овој.Page.IsPostBack)
{

користење на (SPSite site = нови SPSite("http://localhost / enterprisedata"))
{
користење на (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists["Corporate Locations"];

foreach (Плукаат XYZZYCorporateLocation во currentList.Items)
{
ако (XYZZYCorporateLocation["Title"] == нула) продолжи;

низа theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();

овој.XYZZYCorporateLocationSelector.Items.Add
(нови ListItem(theTitle, theTitle));

} // foreach

} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/enterprisedata")

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Горенаведените кодот во основа спроведува логика за населувањето на DropDownList со вредности од WSS обичај листа наоѓа на http://localhost/enterprisedata and named "Corporate Departments".

Јас дефинирани двете паралелки во сингл. Cs датотека, Составувач го и ставете го во GAC (силна потребните, се разбира).

  1. Спроведување на контрола дефиниција (.ascx) како што е прикажано:

<%@ Контрола Јазик="C#" Наследува="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Верзија = 12.0.0.0, култура = неутрален,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ Регистрирај се 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:Рендерирање Шаблон Проект="XYZZYCorporateLocationFieldControl" runat="server">
<Дефиниција>
<asp:DropDownList Проект="XYZZYCorporateLocationSelector" runat="server" />
</Дефиниција>
</
SharePoint:Рендерирање Шаблон>

На погоре е зачувана во в:\Program Files заеднички додадени фајлови Мајкрософт Муабет веб сервер екстензии 12 controltemplates.

  1. Конечно, ние создаваме XML датотека за да ја зачувате во ..... 12 XML директориумот. Ова е CAML што ги дефинира нашите сопствени тип на податок и за мојот пример, изгледа вака:

<?XML верзија="1.0" кодирање="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
Поле Името="TypeName">CorporateLocations</Поле>
<
Поле Името="ParentType">Текст</Поле>
<
Поле Името="TypeDisplayName">Corporate Locations</Поле>
<
Поле Името="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Поле>
<
Поле Името="UserCreatable">ТОЧНО</Поле>
<
Поле Името="ShowInListCreate">ТОЧНО</Поле>
<
Поле Името="ShowInDocumentLibraryCreate">ТОЧНО</Поле>
<
Поле Името="ShowInSurveyCreate">ТОЧНО</Поле>
<
Поле Името="ShowInColumnTemplateCreate">ТОЧНО</Поле>
<
Поле Името="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Верзија = 1.0.0.0, Култура = неутрален, PublicKeyToken=b0b19e85410990c4</Поле>
<
RenderPattern Името="DisplayPattern">
<
Префрлате>
<
Expr>
<
Колона />
</
Expr>

<Случај Вредност=""/>

<Стандардно>
<
HTML>
<![CDATA[
<span style="color:Red"><б>]]>
</
HTML>

<
Колона SubcolumnNumber="0" HTMLEncode="ТОЧНО"/>

<HTML><![CDATA[</б></век>]]></HTML>

</
Стандардно>
</
Префрлате>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" и натпревари до против GAC'd собранието.

По преселувањето сите овие битови во место, iisreset на серверот и сето тоа треба да почне да работи убаво.

WSS: Техника за создавање на CAML поле дефиниции.

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

Тука is a great posting by a fellow named "craig" на техника за наоѓање CAML дефиниции за теренска типови содржини базирана вистински живи дефиниции од сајт.

Неговата објавувате вели дека сето тоа. Во кратки црти:

  1. Креирај типот на содржина.
  2. Асоцираат листа.
  3. Отвори список со SharePoint Designer.
  4. Export to a "personal web package".
  5. Преименување на. Кабина.
  6. Екстракт од манифестот.
  7. Најди вашиот типот на содржина и поврзаните CAML.

WSS: Резиме чекори за да се овозможи корисни функции / елементи / etc. IntelliSense во VS 2005

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

Да им се овозможи корисни IntelliSense за функции, елементи, итн во Visual Studio 2005:

  1. Пристап до WSS сервер.
  2. Navigate to "c:\Program Files заеднички додадени фајлови Мајкрософт Муабет веб сервер екстензии 12 ОБРАЗЕЦ XML"
  3. Отвори уште една Windows Explorer покажува кон: "C:\Program Files Microsoft Visual Studio 8 Xml Шемите"
  4. Копирате следните датотеки од WSS серверот на вашиот VS 2005 шеми директориум:
    1. Wss.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Рестартирајте VS 2005
  6. Додадете нова XML датотека за проект.
  7. Кликнете во телото на XML-датотеката.
  8. Во својства панелот, click on "Schemas" and pick "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 од страна на Тед Pattison & Даниел Ларсон. Оваа книга ги опфаќа речиси сите субјекти дека тестот обраќа. Го најдов тоа да биде голема во себе и за себе надвор од едноставна испит првично. Таа обезбедува голем примери и навистина ме натера да размислувам за некои нови и интересни работи за да се обиде. Ако сакате да ја прескокнете неколку битови во книгата, само крос-референтноста TOC на книгата со елементи во линк од погоре.
  3. Ништо не удира вистинските раце на искуство. Ако имате време и интерес, следат заедно со примери во книгата а потоа експеримент со нив. Ќе имаат полесен пат на испит, како и навистина научат WSS апликација програмирање.

</крајот>Да се ​​претплатите на мојот блог!

Мос / InfoPath формуларите Сервер (InfoPath 2007) паѓачката листа перформанси

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

Резиме: На InfoPath 2007 формираат распоредени на сервер Мос обезбедува паѓачката листа на продавачите врзани за сопствени Мос листа. По изборот на продавачот, правила додели полето вредности на неколку текст полиња, како што се трговски претставник име, адреса, градот, држава, zip и телефон. Перформанси е грозно. Ќе забележиме дека перформансите се влошува (во не-линеарен начин) за секоја дополнителна поле ние ажурирање на овој начин. Односно, ако ние само се ажурира на трговски претставник име, што е потребно [x] износ на времето. Ако ние ажурирање трговски претставник, address1, address2, градот, држава, zip, што е потребно 10 пати подолго.

Решение: Напиши веб сервис (примерок код може да се најде тука) кој е донесен во името на продавачот и се враќа назад на продавачот детали. Потоа, додели на полиња овој начин. Иако тоа исто така чини бавен, немало видлива разлика во перформанси кога ние доделен 1 поле наспроти 8 полиња. Како дополнителен бонус, users get a cool "contacting the server" Cylon ефект додека тие чекаат за формата да се повика и консумираат услугата резултати.

Мос: Исклучок се случи. (Исклучок од HRESULT: 0x80020009 (DISP_E_EXCEPTION))

Ажурирање: Ние никогаш не се утврди коренот на овој проблем и тоа никогаш површината повторно.

Ќе забележиме за време на спроведувањето на развој сајт дека одеднаш, две корисниците се во можност да имаат пристап до сајт за собирање. Тие сметки може да се идентификувате на главната страница, но кога се обидуваат да пристапите одреден сајт збирка, тие само се добие празен екран. Нема грешки прикажани, само бело празна страница.

Ние се најавите како сајт за собирање админ и да се обидат да го додадете една од оние корисници, како место администраторот и овој пат, upon pressing "OK", ние се добие оваа порака:

Исклучок се случи. (Исклучок од HRESULT: 0x80020009 (DISP_E_EXCEPTION))

Ние поминав некое време проучувајќи ова и за жал, не излезе со нешто корисно. Имаше некои пораки во дијагностички најавите, но тоа е тешко да се точно да ги поврзе со ова прашање.

На крајот, ние бришење на сајт за собирање и тоа повторно креиран и тоа е тоа решено.

Ако јас дознаам што го предизвика ова во иднина, Јас ќе се ажурира овој пост.