mesačné archívy: Augusta 2007

Rozšírené vyhľadávanie prispôsobenie MOSS — Prípade záleží v rozšírenom vyhľadávaní XSLT

Nechcem upraviť pokročilé vyhľadávanie XSLT veľmi často, Takže sa zdá, ako som lezenie malých kopcov zakaždým.

Je to môj najmladší Lekcia: Prípad veciach pri uvádzaní stĺpca. V mojom Rozšírené vyhľadávanie, Mám stĺpce definované ako to:

<koreň xmlns:XSI="http://www.w3.org/ 2001/XMLSchema-stupňa">
<
Stĺpce>
<
Stĺpec meno="GafTrainingInvoiceNumber" />
<
Stĺpec meno="GafTrainingInvoiceLocation" />
<
Stĺpec meno="Identifikácia"/>
<
Stĺpec meno="Hodnosť"/>
<
Stĺpec meno="Hlava"/>
<
Stĺpec meno="Autor"/>
<
Stĺpec meno="Veľkosť"/>
<
Stĺpec meno="Cesta"/>
<
Stĺpec meno="Popis"/>
<
Stĺpec meno="Písať"/>
<
Stĺpec meno="SiteName"/>
<
Stĺpec meno="CollapsingStatus"/>
<
Stĺpec meno="HitHighlightedSummary"/>
<
Stĺpec meno="HitHighlightedProperties"/>
<
Stĺpec meno="ContentClass"/>
<
Stĺpec meno="IsDocument"/>
<
Stĺpec meno="PictureThumbnailURL"/>
</
Stĺpce>
</
koreň>

XSL, ktorý zobrazuje faktúry číslo a fakturačná umiestnenie bolo:

<p>
Číslo faktúry školenia: <XSL:hodnoty z Vyberte="GafTrainingInvoiceNumber"/>
<
br></br>
Školenia faktúry umiestnenie: <XSL:hodnoty z Vyberte="GafTrainingInvoiceLocation"/>
</
p>

Avšak, Vyberte má odkaz na vlastnosť všetkých malými písmenami, rovnako ako v:

<p>
Číslo faktúry školenia: <XSL:hodnoty z Vyberte="gaftraininginvoicenumber"/>
<
br></br>
Školenia faktúry umiestnenie: <XSL:hodnoty z Vyberte="gaftraininginvoicelocation"/>
</
p>


Kým som to opravil, Hľadať Výsledky ukázali menovky (tj. "Číslo faktúry školenia") ale žiadne údaje.

MACHY: Funkčné príklad – vlastným typom údajov

Obchodné scenáre:

Podnik-široký plnenie Moss výrobná firma s 30+ stránky a pár desiatok firemné oddelenia.

Obchodný cieľ:

Napriek tomu veľké množstvo obchodných skupín (oddelenia, umiestnenie, atď), určité údaje zachovali na globálnej úrovni. Napríklad, autoritatívne hlavný zoznam všetky fyzické umiestnenie firmy (napr.. výrobné zariadenia, miesta skladu, predajných miest) treba zachovať v centre mesta.

Technický problém:

Podnik taxonómie bola vykonaná pomocou viacerých kolekcií lokalít. By sme si želali vytvoriť autoritatívnu zoznam fyzické umiestnenie vlastného zoznamu WSS. Potom, keď sme potrebovali mať stĺpec typu obsahu (alebo stĺpec pridať do knižnice, zoznam alebo doc) ktorý obsahoval firemné miesta, by sme vytvoriť stĺpec pomocou vyhľadávania"" údajový typ a prejdite na tento nadradený zoznam.

Bohužiaľ, dátové typy vyhľadávania musí pristupovať zdroj zoznamu "lokálne" čo znamená, že naše autoritatívne zoznamu nemôžu byť kolekcie lokalít.

Technické riešenie:

Implementovať nový vlastný typ údajov vykonávané na základe SPField a predstavoval ako DropDownList v UI ktorého ListItems naplnenie z hlavného zoznamu WSS.

Vytvorili sme novú kolekciu lokalít s názvom "http://localhost/EnterpriseData". Tam, sme vytvorili vlastný zoznam s názvom "Corporate umiestnenie". Tento zoznam len používa štandardný názov"" pole obsahuje zoznam skutočných miest, firemné.

Jeden nadväzuje niekoľko samostatných krokov vytvoriť vlastný typ údajov v WSS. Sú:

  1. Definovať trieda, ktorá dedí od SPField (jeden môže zdediť od iných oblastiach v prípade potreby).

Tu je kód, ktorý:

verejné trieda XYZZYCorporateLocationField : SPFieldText
{
verejné XYZZYCorporateLocationField
(SPFieldCollection polia, reťazec atribút typeName, reťazec displayName)
: base(polia, atribút typeName, displayName) { }

verejné XYZZYCorporateLocationField
(SPFieldCollection polia, reťazec displayName)
: base(polia, displayName) { }

verejné override BaseFieldControl FieldRenderingControl
{
get
{
BaseFieldControl Kontrola = nové XYZZYCorporateLocationFieldControl();
Ovládací prvok. NázovPoľa = this.InternalName;
return ovládanie;
} //get
} // fieldrenderingcontrol

verejné override reťazec GetValidatedString(object hodnota)
{
Ak (this.Požadované || hodnota. ToString().Equals(String.Empty))
{
throw nové SPFieldValidationException ("Oddelenie nie je priradený.");
}
return base.GetValidatedString(hodnota);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Define another class that inherits from the base field control, rovnako ako v:

verejné trieda XYZZYCorporateLocationFieldControl : BaseFieldControl
{
protected DropDownList XYZZYCorporateLocationSelector;

protected override reťazec DefaultTemplateName
{
get
{
return "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

verejné override object Hodnota
{
get
{
EnsureChildControls();
return this.XYZZYCorporateLocationSelector.SelectedValue;
} // get
set
{
EnsureChildControls();
this.XYZZYCorporateLocationSelector.SelectedValue = (reťazec)this.ItemFieldValue;
} // set
} // prepísať hodnotu objektu

protected override neplatné CreateChildControls()
{

Ak (this.Pole == null || this.ControlMode == SPControlMode.Display)
return;

base.CreateChildControls();

this.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");

Ak (this.XYZZYCorporateLocationSelector == null)
throw nové Exception("ERROR: Nedá sa načítať. Súbore ASCX!");

Ak (!this.Page.IsPostBack)
{

pomocou (SPSite stránky = nové SPSite("http://localhost/enterprisedata"))
{
pomocou (SPWeb webové stránky =. OpenWeb())
{

SPList currentList = web. Zoznamy["Firemné miesta"];

foreach (SPItem XYZZYCorporateLocation v currentList.Items)
{
Ak (XYZZYCorporateLocation[„Hlava"] == null) pokračovať;

reťazec theTitle;
theTitle = XYZZYCorporateLocation[„Hlava"].ToString();

this.XYZZYCorporateLocationSelector.Items.Add
(nové ListItem(theTitle, theTitle));

} // foreach

} // pomocou spweb web = site.openweb()
} // pomocou spsite stránky = nové spsite("http://localhost/enterprisedata")

} // Ak nie spätného odosielania

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Vyššie uvedený kód podstate implementuje logika pre naplnenie DropDownList s hodnotami zo zoznamu vlastných WSS nachádza v http://localhost/enterprisedata a s názvom "firemné oddelenia".

I definovaný oboch tried v súbore .cs jednotného, zostavené a dať ju do GAC (silné požadované, samozrejme).

  1. Vykonávať kontrolu šablóny (.ascx) ako je uvedené:

<%@ Ovládanie Jazyk= "C#" Dedí="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Verzia = 12.0.0.0, kultúra = neutrálny,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Vždy" %>
<%
@ Zaregistrovať sa TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Montáž="Microsoft.SharePoint, Verzia = 12.0.0.0, Kultúra = neutrálne, PublicKeyToken = 71e9bce111e9429c" %> <%@ Zaregistrovať sa TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Montáž="Microsoft.SharePoint, Verzia = 12.0.0.0, Kultúra = neutrálne, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:Šablónu vykresľovania ID= "XYZZYCorporateLocationFieldControl" HTML runat= "server">
<Šablóny>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" HTML runat= "server" />
</Šablóny>
</
SharePoint:Šablónu vykresľovania>

Vyššie uvedené je uložený do c:\Program filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Nakoniec, sme vytvoriť XML súbor uložiť do... 12XML adresár. Toto je CAML, ktorá definuje naše vlastné údaje typu a pre môj príklad, Vyzerá to:

<?XML verzia="1.0" kódovanie="UTF-8" ?>
<
Typy polí>
<
FieldType>
<
Pole meno="Atribút TypeName">CorporateLocations</Pole>
<
Pole meno="Nadradený typ">Text</Pole>
<
Pole meno="TypeDisplayName">Firemné miesta</Pole>
<
Pole meno="TypeShortDescription">Všetky firemné xyzzy MINOVÉHO miestach vrátane výrobných a iných zariadení.</Pole>
<
Pole meno="UserCreatable">PRAVDA</Pole>
<
Pole meno="ShowInListCreate">PRAVDA</Pole>
<
Pole meno="ShowInDocumentLibraryCreate">PRAVDA</Pole>
<
Pole meno="ShowInSurveyCreate">PRAVDA</Pole>
<
Pole meno="ShowInColumnTemplateCreate">PRAVDA</Pole>
<
Pole meno="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Verzia = 1.0.0.0, Kultúra = neutrálne, PublicKeyToken = b0b19e85410990c4</Pole>
<
RenderPattern meno="DisplayPattern">
<
Prepínač>
<
Expr>
<
Stĺpec />
</
Expr>

<Prípad Hodnota=""/>

<Predvolené>
<
HTML>
<![CDATA[
<rozpätie štýl = "Farba:Red"><b>]]>
</
HTML>

<
Stĺpec SubColumnNumber="0" HTMLEncode="PRAVDA"/>

<HTML><![CDATA[</b></span>]]></HTML>

</
Predvolené>
</
Prepínač>

</
RenderPattern>
</
FieldType>
</
Typy polí>
Tento XML súbor pridá aktuálny typ údajov WSS "Knižnica" a to sa zápasy proti GAC mal zhromaždenia.

Po presťahovaní všetky tieto kúsky na miesto, iisreset na serveri a to mali všetci začať práca pekne.

WSS: Techniky pre vytváranie CAML definície polí.

Ďalšie kategórie: CAML

tu je skvelé vysielania chlapík menom "craig" na techniku pre nájdenie CAML definície typov obsahu poľa vychádza z živú definície lokality.

Jeho vysielania hovorí za všetko. V kocke:

  1. Vytvorenie typu obsahu.
  2. Spájať so zoznamom.
  3. Otvoriť zoznam lokality SharePoint Designer.
  4. Exportovať "osobné webové balík".
  5. Premenovať .cab.
  6. Výpis zoznamu lodného nákladu.
  7. Nájdite si svoj typu obsahu a súvisiacich CAML.

WSS: Predbežné kroky, aby umožnili užitočné funkcie/prvky atď. IntelliSense vs 2005

Ďalšie kategórie: Visual Studio 2005

Povoliť užitočná intellisense pre funkcie, prvky, atď vo visual studio 2005:

  1. Prístup k serveru WSS.
  2. Prejdite na "c:\Program filescommon filesmicrosoft sharedweb server extensions12TEMPLATEXML"
  3. Otvorte ďalší program Prieskumník poukazom na: "C:\Program FilesMicrosoft Visual Studio 8XmlSchemas"
  4. Skopírujte nasledujúce súbory z WSS servera na váš VS 2005 adresár schém:
    1. WSS.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Reštartujte VS 2005
  6. Pridanie nového súboru XML do projektu.
  7. Kliknite v tele súboru XML.
  8. V podokně vlastnosti, kliknite na "schémy" a vybrať "wss.xsd" z možností. (Nie je potrebné vybrať iné xsd, pretože oni sú odvolával sa z wss.xsd).

IntelliSense je teraz povolené pre daný dokument XML.

Pozrite si tu pre viac informácií o tejto téme a pokyny ako WSS intellisense automaticky priradiť ľubovoľný súbor XML.

WSS skúšku 70-541, Microsoft Windows SharePoint Services 3.0 – Vývoj aplikácií

Vzal a prešiel vyššie uvedených test dnes ráno. Našiel som skúšku bolo ťažké a spravodlivé.

Tam je relatívny nedostatok informácií na túto skúšku na webe. Nie som si istý prečo.

Samozrejme nebudem sa dostať do detailov o skúšku som si vzal, ale myslím, že môžem povedať, tieto:

  1. Trust tento odkaz: http://www.microsoft.com/learning/exams/70-541.mspx.

    Obsahuje to, čo potrebujete vedieť prejsť skúškou a je to, IMO, veľmi presné.

  2. Odkaz tiež odporúča Vnútri Microsoft Windows SharePoint Services 3.0 podľa Ted Pattison & Daniel Larson. Táto kniha pokrýva takmer všetky témy, ktoré test rieši. Našiel som to veľký sám o sebe za jednoduchú skúšku prep. Poskytuje skvelé príklady a naozaj ma premýšľať o niektoré nové a zaujímavé veci vyskúšať. Ak chcete preskočiť niekoľko bitov v knihe, Stačí vytvoriť krížový odkaz kniha je TOC s položkami v odkaze vyššie.
  3. Nič neprekoná skutočný hands-on skúsenosti. Ak máte čas a záujem, Riaďte sa príklady v knihe a potom experimentovať s nimi. Budete mať väčšiu šancu na skúšku, rovnako ako naozaj naučiť WSS aplikačné programy.

</koniec>Vyberajte môj blog!

MACHY / Program InfoPath Forms Server (Program InfoPath 2007) Rozbaľovací zoznam výkon

Ďalšie kategórie: Program InfoPath

Zhrnutie: Programu InfoPath 2007 forme nasadených MOSS server poskytuje rozbaľovací zoznam dodávateľov viazaná na vlastný zoznam MOSS. Pri výbere dodávateľa, pravidlá priradenie hodnoty poľa hrsť textové polia ako obchodný zástupca meno, adresa, mesto, štát, ZIP a telefón. Výkon je hrozné. Môžeme všimnúť, že výkon ešte horšie (v non-lineárne) pre každé ďalšie pole sme aktualizácie týmto spôsobom. T. j., keby sme jednoducho aktualizovať názov obchodný zástupca, to trvá [x] množstvo času. Ak sme aktualizácie obchodný zástupca, IKT1, address2, mesto, štát, ZIP, to trvá 10 krát dlhšie.

Roztok: Napíšte webovú službu (Ukážkový kód možno nájsť tu) prelietajúce meno dodávateľa a vracia údaje dodávateľa. Potom, priradiť polia týmto spôsobom. Hoci sa to zdá príliš pomalé, tam bol žiadne rozpoznateľné rozdiel vo výkone, keď sme priradili 1 pole verzus 8 polia. Ako pridaný bonus, Užívatelia si v pohode "kontaktovať server" Cylon efekt, kým čakajú na formulár na vyvolanie a konzumovať služby výsledky.

MACHY: Vyskytla sa výnimka. (S výnimkou HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

AKTUALIZÁCIA: Nikdy sme zistili príčinu tohto problému a to nikdy povrch znova.

Môžeme všimnúť počas realizácie vývoja webu, že zrazu, dvaja užívatelia sú schopní prístup ku kolekcii lokalít. Tieto účty môžu overiť na hlavnej stránke, ale pri pokuse o prístup k konkrétnu kolekciu lokalít, dostanú len prázdna obrazovka. Žiadne chyby zobrazí, len biele prázdna stránka.

Prihláste sa ako správca kolekcie lokalít a skúste pridať jeden z týchto užívateľov ako admin stránky a tentoraz, po stlačení "OK", sme si túto správu:

Vyskytla sa výnimka. (S výnimkou HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

Sme strávili nejaký čas skúmaním tohto a bohužiaľ, nemala prísť s niečím užitočným. Tam boli niektoré správy do denníka diagnostiky, ale bolo to ťažké presne korelovať s touto otázkou.

V závere, sme Odstránenie kolekcie lokalít a re-vytvoril a že to vyriešil.

Ak som sa zistiť, čo spôsobilo to v budúcnosti, Budem aktualizovať tento príspevok.