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

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

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

Скоро превише добро да би било истинито …

МОСС напредна претрага прилагођавање — Случај битно у напредно претраживање КССЛТ

Не мењати напредну претрагу КССЛТ често, тако да се чини као да се пење малих брда сваки пут.

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

<корен КСМЛнс:кси="хттп://ввв.в3.орг/2001/КСМЛСцхема-инстанце">
<
Колоне>
<
Column Име="GafTrainingInvoiceNumber" />
<
Column Име="GafTrainingInvoiceLocation" />
<
Column Име="ВоркИд"/>
<
Column Име="Бр"/>
<
Column Име="Наслов"/>
<
Column Име="Аутор"/>
<
Column Име="Величина"/>
<
Column Име="Путања"/>
<
Column Име="Опис"/>
<
Column Име="Написати"/>
<
Column Име="Ситенаме"/>
<
Column Име="ЦоллапсингСтатус"/>
<
Column Име="ХитХигхлигхтедСуммари"/>
<
Column Име="ХитХигхлигхтедПропертиес"/>
<
Column Име="Цонтентцласс"/>
<
Column Име="IsDocument"/>
<
Column Име="ПицтуреТхумбнаилУРЛ"/>
</
Колоне>
</
корен>

КСЛСТ који приказује број фактуре и фактуре локација била:

<п>
Training Invoice Number: <клс:вредности од изабрати="GafTrainingInvoiceNumber"/>
<
БР></БР>
Training Invoice Location: <клс:вредности од изабрати="GafTrainingInvoiceLocation"/>
</
п>

Међутим, the select has to reference the property in all lower case, као у:

<п>
Training Invoice Number: <клс:вредности од изабрати="gaftraininginvoicenumber"/>
<
БР></БР>
Training Invoice Location: <клс:вредности од изабрати="gaftraininginvoicelocation"/>
</
п>


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

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

Пословни сценарио:

Целом предузећу имплементација маховина за производне компаније са 30+ сајтови и неколико одељења корпоративне десетина.

Пословни циљ:

Упркос мноштву пословних група (одељења, Локације, итд), одређени подаци треба да се одржава на глобалном нивоу. На пример, ауторитативан господар списак свих физичких локација предузећа (e.g. производни објекти, warehouse locations, sales offices) should be maintained in a central location.

Technical Problem:

The enterprise taxonomy was implemented using multiple site collections. We would have liked to create the authoritative list of physical locations in a custom WSS list. Онда, when we needed to have a column in a content type (or a column added to a list or doc library) that contained corporate locations, we would create a column using the "lookup" datatype and point to this master list.

Unfortunately, lookup datatypes must access a source list "locally" meaning that our authoritative list cannot span site collections.

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

Implement a new custom data type implemented based on SPField and represented as a DropDownList in the UI whose ListItems populate from the master WSS list.

We created a new site collection called "http://localhost/EnterpriseData". There, we created a custom list named "Corporate Locations". This list just uses the standard "Title" field to contain the list of actual corporate locations.

One follows several discrete steps to create a custom data type in WSS. They are:

  1. Define a class which inherits from SPField (one may inherit from other fields if required).

Here is the code for that:

јавност класа XYZZYCorporateLocationField : SPFieldText
{
јавност XYZZYCorporateLocationField
(SPFieldCollection fields, ниска typeName, ниска displayName)
: base(fields, typeName, displayName) { }

јавност XYZZYCorporateLocationField
(SPFieldCollection fields, ниска displayName)
: base(fields, displayName) { }

јавност заменити BaseFieldControl FieldRenderingControl
{
get
{
BaseFieldControl control = нови XYZZYCorporateLocationFieldControl();
control.FieldName = ово.InternalName;
повратак control;
} //get
} // fieldrenderingcontrol

јавност заменити ниска GetValidatedString(објекат вредност)
{
ако (ово.Required || value.ToString().Једнако(String.Empty))
{
бацити нови SPFieldValidationException ("Department is not assigned.");
}
повратак base.GetValidatedString(вредност);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Define another class that inherits from the base field control, као у:

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

заштићен заменити ниска DefaultTemplateName
{
get
{
повратак "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

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

заштићен заменити воид CreateChildControls()
{

ако (ово.Field == null || ово.ControlMode == SPControlMode.Display)
повратак;

base.CreateChildControls();

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

ако (ово.XYZZYCorporateLocationSelector == null)
бацити нови Изузетак("ERROR: Cannot load .ASCX file!");

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

коришћење (СПСите site = нови СПСите("http://localhost/enterprisedata"))
{
коришћење (СПВеб web = site.OpenWeb())
{

СПЛист currentList = web.Lists["Corporate Locations"];

фореацх (Пљунути XYZZYCorporateLocation у currentList.Items)
{
ако (XYZZYCorporateLocation["Title"] == null) наставити;

ниска theTitle;
theTitle = XYZZYCorporateLocation["Title"].ТоСтринг();

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

} // фореацх

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

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

The above code basically implements the logic for populating the DropDownList with values from the WSS custom list located at http://localhost/enterprisedata and named "Corporate Departments".

I defined both classes in a single .cs file, compiled it and put it into the GAC (strong required, наравно).

  1. Implement a control template (.ascx) као што је приказано:

<%@ Control Language="C#" Inherits="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version=12.0.0.0,Culture=neutral,ПублицКеиТокен = 71е9бце111е9429ц" compilationMode="Always" %>
<%
@ Регистар Tagprefix="wssawc" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Верзија = 12.0.0.0, Култура = неутрална, ПублицКеиТокен = 71е9бце111е9429ц" %> <%@ Регистар Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Верзија = 12.0.0.0, Култура = неутрална, ПублицКеиТокен = 71е9бце111е9429ц" %>
<СхареПоинт:RenderingTemplate ИД="XYZZYCorporateLocationFieldControl" runat="server">
<Шаблон>
<аспида:DropDownList ИД="XYZZYCorporateLocationSelector" runat="server" />
</Шаблон>
</
СхареПоинт:RenderingTemplate>

The above is saved into c:\program files\common files\microsoft shared\web server extensions\12\controltemplates.

  1. Коначно, we create an XML file to save into the …..\12\XML directory. This is CAML that defines our custom data type and for my example, looks like this:

<?КСМЛ верзија="1.0" кодирање="УТФ-8" ?>
<
FieldTypes>
<
FieldType>
<
Field Име="ТипеНаме">CorporateLocations</Field>
<
Field Име="ParentType">Текст</Field>
<
Field Име="TypeDisplayName">Corporate Locations</Field>
<
Field Име="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Field>
<
Field Име="UserCreatable">TRUE</Field>
<
Field Име="ShowInListCreate">TRUE</Field>
<
Field Име="ShowInDocumentLibraryCreate">TRUE</Field>
<
Field Име="ShowInSurveyCreate">TRUE</Field>
<
Field Име="ShowInColumnTemplateCreate">TRUE</Field>
<
Field Име="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Версион = 1.0.0.0, Култура = неутрална, PublicKeyToken=b0b19e85410990c4</Field>
<
RenderPattern Име="DisplayPattern">
<
Switch>
<
Expr>
<
Column />
</
Expr>

<Case Вредност=""/>

<Уобичајено>
<
HTML>
<![ЦДАТА[
<span style="color:Red"><Б>]]>
</
HTML>

<
Column SubColumnNumber="0" HTMLEncode="TRUE"/>

<HTML><![ЦДАТА[</Б></распон>]]></HTML>

</
Уобичајено>
</
Switch>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" and matches it up against the GAC’d assembly.

After moving all these bits into place, iisreset on the server and it should all start working nicely.

ВСС: Техника за креирање ЦАМЛ поља дефиниција.

Додатна категорија: ЦАМЛ

Here is a great posting by a fellow named "craig" на технике за проналажење ЦАМЛ дефиниције за типове садржаја на терену ван реалног живог дефиниција са сајта.

Његово постављање говори све. Укратко:

  1. Креирање типа садржаја.
  2. Повежите га са листом.
  3. Отворите листу са СхареПоинт Десигнер.
  4. Export to a "personal web package".
  5. Rename to a .cab.
  6. Extract the manifest.
  7. Find your content type and associated CAML.

ВСС: Резиме кораке да омогући корисних функција / елементи / етц. ИНТЕЛЛИСЕНСЕ у ВС 2005

Додатни категорије: Висуал Студио 2005

Да бисте омогућили корисне Интеллисенсе за функције, елементи, итд у Висуал Студио 2005:

  1. Приступите ВСС сервер.
  2. Navigate to "c:\програм филес Цоммон Филес Мицрософт Схаред веб сервер екстензије 12 темплате КСМЛ"
  3. Отворите други виндоуз претраживач упућује на: "C:\Програм Филес Мицрософт Висуал Студио 8 Ксмл Шеме"
  4. Копирајте следеће датотеке са сервера на ваш ВСС ВС 2005 шеме каталог:
    1. Всс.ксд
    2. ЦамлКуери.ксд
    3. ЦамлВиев.ксд
    4. ЦореДефинтионс.ксд
  5. Рестарт ВС 2005
  6. Add a new XML file to a project.
  7. Click in the body of the XML file.
  8. In the properties pane, click on "Schemas" and pick "wss.xsd" from the choices. (It’s not necessary to select other xsd’s since they are referenced from wss.xsd).

Intellisense is now enabled for that XML document.

Видети овде for more information on this subject and for instructions on how to automatically associate WSS intellisense with any XML file.

ВСС испит 70-541, Мицрософт Виндовс СхареПоинт Сервицес 3.0 – Развој апликација

Узео сам и прошао горе поменути тест јутрос. Нашао сам испит да буде тежак и фер.

Постоји релативна недостатак информација о овом испиту на Интернету. Нисам сигуран зашто.

Ја очигледно добити у детаље о испит и, али мислим да са сигурношћу могу да кажем следеће:

  1. Trust this link: http://www.microsoft.com/learning/exams/70-541.mspx.

    It lists what you need to know to pass the exam and it’s, IMO, very accurate.

  2. The link also recommends Inside Microsoft Windows SharePoint Services 3.0 by Ted Pattison & Daniel Larson. This book covers nearly all the subjects that the test addresses. I found it to be great in and of itself beyond simple exam prep. It provides great examples and really got me thinking about some new and interesting things to try. If you want to skip a few bits in the book, just cross-reference the book’s TOC with the items in the link from above.
  3. Nothing beats actual hands-on experience. If you have time and interest, follow along with the examples in the book and then experiment with them. You’ll have an easier time on the exam as well as really learn WSS application programming.

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

МОСС / ИнфоПатх Формс Сервер (ИнфоПатх 2007) падајућа листа перформансе

Додатна категорија: ИнфоПатх

Резиме: ИнфоПатх 2007 формирају распоредио на МОСС сервер обезбеђује падајућу листу продаваца везан за прилагођеној МОСС листи. По избору добављача, Правила доделити вредности поља на неколико текстуалних поља као што су представник продаје име, адреса, град, држава, зип и телефон. Перформансе је страшно. We notice that performance gets worse (in a non-linear fashion) for each additional field we update this way. I.e., if we just update the sales rep name, it takes [к] amount of time. If we update sales rep, address1, address2, град, држава, zip, it takes 10 times longer.

Решење: Write a web service (sample code can be found овде) that is passed in the name of a vendor and it returns back the vendor details. Онда, assign the fields this way. Although this too seems slow, there was no discernable difference in performance when we assigned 1 field versus 8 fields. As an added bonus, users get a cool "contacting the server" Cylon effect while they wait for the form to invoke and consume the service results.

МОСС: Изузетак десило. (Изузетак од ХРЕСУЛТ: 0к80020009 (ДИСП_Е_ЕКСЦЕПТИОН))

УПДАТЕ: Ми никада утврдио узрок овог проблема и никада поново површину.

Ми смо приметили током спровођења развојне сајта који изненада, два корисника нису у могућности да приступе колекцију сајт. Ови рачуни могу да потврдимо на главном сајту, али када покушавате да приступите одређену колекцију сајт, they just get a blank screen. No errors displayed, just a white blank page.

We log in as a site collection admin and try to add one of those users as a site admin and this time, upon pressing "OK", we get this message:

Изузетак десило. (Изузетак од ХРЕСУЛТ: 0к80020009 (ДИСП_Е_ЕКСЦЕПТИОН))

We spent some time researching this and unfortunately, didn’t come up with anything useful. There were some messages in the diagnostic log, but it was hard to exactly correlate them with this issue.

На крају, we deleting the site collection and re-created it and that solved it.

If I figure out what caused this in future, Ја ћу ажурирати овај пост.