Havi Archívum: Augusztus 2007

Speciális keresés-Testreszabás MOSS — Esetben számít, a speciális keresés XSLT

Ne módosítsa a speciális keresés XSLT nagyon gyakran, tehát úgy tűnik, mintha én mászni a kis dombok minden alkalommal.

Az én legújabb lecke ez: Esetben számít, amikor a hivatkozó oszlop. A speciális keresési, Nekem van a meghatározás szerint ez oszlopokat:

<gyökér xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
Oszlopok>
<
Oszlop név="GafTrainingInvoiceNumber" />
<
Oszlop név="GafTrainingInvoiceLocation" />
<
Oszlop név="Munkaazonosító"/>
<
Oszlop név="Rank"/>
<
Oszlop név="Cím"/>
<
Oszlop név="Szerző"/>
<
Oszlop név="Mérete"/>
<
Oszlop név="Elérési út"/>
<
Oszlop név="Leírás"/>
<
Oszlop név="Írás"/>
<
Oszlop név="SiteName"/>
<
Oszlop név="CollapsingStatus"/>
<
Oszlop név="HitHighlightedSummary"/>
<
Oszlop név="HitHighlightedProperties"/>
<
Oszlop név="ContentClass"/>
<
Oszlop név="IsDocument"/>
<
Oszlop név="PictureThumbnailURL"/>
</
Oszlopok>
</
gyökér>

Az XSLT jeleníti meg a számla számát és a számla hely volt.:

<p>
Képzési számla száma: <XSL:érték-ból Válassza ki="GafTrainingInvoiceNumber"/>
<
br></br>
Képzőhely számla: <XSL:érték-ból Válassza ki="GafTrainingInvoiceLocation"/>
</
p>

Azonban, Válassza ki, hogy hivatkozhat a tulajdonság minden esetben alacsonyabb, mint a:

<p>
Képzési számla száma: <XSL:érték-ból Válassza ki="gaftraininginvoicenumber"/>
<
br></br>
Képzőhely számla: <XSL:érték-ból Válassza ki="gaftraininginvoicelocation"/>
</
p>


Amíg én korrigálni, hogy, Keresés eredménye azt mutatta, a feliratok (i.e. "Számla szám képzés") de nincs adat.

MOSS: Funkcionális példa-egyéni adatok típusa

Üzleti forgatókönyv:

Vállalati szintű végrehajtására MOSS-gyártó cég 30+ oldalak és néhány tucat vállalati részlegek.

Üzleti cél:

Annak ellenére, hogy számos üzleti csoportok (szervezeti egységek, helyszínek, stb), fenn kell tartani bizonyos adatok globális szinten. Például, egy hiteles mester listája minden fizikai fekvések társaság (pl. gyártó létesítmények, raktárak, értékesítési irodák) fenn kell tartani egy központi helyen.

Technikai probléma:

A vállalati besorolás volt megvalósítva több webhelycsoportot fogjon. Szerettünk volna létrehozni a mérvadó a fizikai helyek WSS egyéni lista. Majd, Ha szükséges, hogy egy oszlop egy tartalomtípusban (vagy egy oszlopot hozzáadni egy listához vagy doc könyvtár) amely tartalmazza a vállalati helyek, mi jönne létre egy oszlop "címkeresés" adattípus és pont ez a fő lista.

Sajnos, Keresés adattípusok kell hozzáférnie a forráslista "helyileg" ami azt jelenti, hogy a hiteles listája nem span webhelycsoportok.

Műszaki megoldás:

Végre egy új egyéni adattípus alapján SPField végre, és képviselteti magát a DropDownList az UI-ban, amelynek elemei feltölti a mester WSS-listából.

Létrehoztunk egy új webhelycsoportot, úgynevezett "http://localhost/EnterpriseData". Ott, hoztuk létre a "Corporate Locations" nevű egyéni lista. Ez a lista csak használ a szabványos "cím" mezőt tartalmaznak, tényleges vállalati helyek listája.

Egyik következik a több diszkrét lépéseket, hogy létrehozzon egy egyedi adattípusú WSS. Ők:

  1. Egy osztály, amely a SPField örökli meghatározása (lehet örökölni más mezőket szükség esetén).

Itt van a kód:

nyilvános osztály XYZZYCorporateLocationField : SPFieldText
{
nyilvános XYZZYCorporateLocationField
(SPFieldCollection mezők, karakterlánc typeName, karakterlánc a DisplayName attribútum)
: alap(mezők, typeName, a DisplayName attribútum) { }

nyilvános XYZZYCorporateLocationField
(SPFieldCollection mezők, karakterlánc a DisplayName attribútum)
: alap(mezők, a DisplayName attribútum) { }

nyilvános felülbírálása BaseFieldControl FieldRenderingControl
{
kap
{
BaseFieldControl vezérlés = új XYZZYCorporateLocationFieldControl();
vezérlő. Mezőnév = Ez.InternalName;
vissza ellenőrzés;
} //kap
} // fieldrenderingcontrol

nyilvános felülbírálása karakterlánc GetValidatedString(objektum érték)
{
Ha (Ez.Szükséges || érték. ToString().Egyenlő(Karakterlánc.Üres))
{
dobja új SPFieldValidationException ("Osztály nem rendelődik hozzá.");
}
vissza alap.GetValidatedString(érték);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Meghatározni egy olyan másik osztályt a viszonyítási mező vezérlőelem örökli, mint a:

nyilvános osztály XYZZYCorporateLocationFieldControl : BaseFieldControl
{
védett DropDownList XYZZYCorporateLocationSelector;

védett felülbírálása karakterlánc DefaultTemplateName
{
kap
{
vissza "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

nyilvános felülbírálása objektum Érték
{
kap
{
EnsureChildControls();
vissza Ez.XYZZYCorporateLocationSelector.SelectedValue;
} // kap
készlet
{
EnsureChildControls();
Ez.XYZZYCorporateLocationSelector.SelectedValue = (karakterlánc)Ez.ItemFieldValue;
} // készlet
} // felülírja az objektum értéke

védett felülbírálása Érvénytelen CreateChildControls()
{

Ha (Ez.Mező == NULL értékű || Ez.ControlMode tulajdonsága nincs == SPControlMode.Kijelző)
vissza;

alap.CreateChildControls();

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

Ha (Ez.XYZZYCorporateLocationSelector == NULL értékű)
dobja új Kivétel("HIBA: Nem tölthető be. ASCX fájl!");

Ha (!Ez.IsPostBack oldal.)
{

használatával (SPSite telek = új SPSite("http://localhost/enterprisedata"))
{
használatával (SPWeb Web = site. OpenWeb())
{

Meg az SPList.Update() currentList = webes. Listák["Vállalati helyek"];

foreach (SPItem XYZZYCorporateLocation a currentList.Items)
{
Ha (XYZZYCorporateLocation["A cím"] == NULL értékű) «««;

karakterlánc theTitle;
theTitle = XYZZYCorporateLocation["A cím"].ToString();

Ez.XYZZYCorporateLocationSelector.Items.Add
(új Listaelem(theTitle, theTitle));

} // foreach

} // spweb weben = site.openweb()
} // spsite webhely használatával új spsite =("http://localhost/enterprisedata")

} // Ha nem a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

A fenti kód alapvetően valósítja meg, hogy a logika megtölteni a DropDownList a WSS egyéni listán található értékeket http://localhost/enterprisedata és nevesített "vállalati részlegek".

Én mindkét osztály egy egységes .cs fájlban definiált, összeállított, és tedd be a GAC (erős szükséges, természetesen).

  1. Végre egy vezérlőelem-sablon (.ascx) Amint:

<%@ Ellenőrzés Nyelv= "C#" Örököl="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Változat = 12.0.0.0, kultúra = neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Mindig" %>
<%
@ Regisztráció TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Szerelvény="Microsoft.SharePoint, Változat = 12.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Regisztráció TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Szerelvény="Microsoft.SharePoint, Változat = 12.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate tulajdonságát AZONOSÍTÓ= "XYZZYCorporateLocationFieldControl" runat= "szerver">
<Sablon>
<ASP:DropDownList AZONOSÍTÓ= "XYZZYCorporateLocationSelector" runat= "szerver" />
</Sablon>
</
SharePoint:RenderingTemplate tulajdonságát>

A fenti van megtakarított-ba c:\program filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Végül, Mi teremt egy XML reszelő-hoz megment-ba az... 12XML könyvtár. Ez az CAML, amely meghatározza a mi egyéni adattípus és én például, úgy néz ki, mint ez:

<?XML változat="1.0" kódolás="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
A mező név="TypeName">CorporateLocations</A mező>
<
A mező név="Szülőtípusa">Szöveg</A mező>
<
A mező név="TypeDisplayName">Céges helyszínek</A mező>
<
A mező név="TypeShortDescription">Minden XYZZY vállalati helyek, beleértve a gyártási, illetve egyéb létesítmények.</A mező>
<
A mező név="UserCreatable">IGAZ</A mező>
<
A mező név="ShowInListCreate">IGAZ</A mező>
<
A mező név="ShowInDocumentLibraryCreate">IGAZ</A mező>
<
A mező név="ShowInSurveyCreate">IGAZ</A mező>
<
A mező név="ShowInColumnTemplateCreate">IGAZ</A mező>
<
A mező név="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Változat = 1.0.0.0, Culture = neutral, PublicKeyToken = b0b19e85410990c4</A mező>
<
RenderPattern név="DisplayPattern">
<
Kapcsoló>
<
A kifejezésben>
<
Oszlop />
</
A kifejezésben>

<Eset Érték=""/>

<Alapértelmezett>
<
HTML>
<![CDATA[
<span style = "color:Red"><b>]]>
</
HTML>

<
Oszlop SubColumnNumber="0" HTMLEncode="IGAZ"/>

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

</
Alapértelmezett>
</
Kapcsoló>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
Ez az XML fájl hozzáadja az egyéni adattípus a WSS "könyvtár" és egyezik a GAC ellen volt a közgyűlés.

Miután ezek a bitek a helyére, IISRESET parancsot a szerveren, és ez kell minden elkezd szépen dolgozik.

WSS: Technika CAML mező-definíciók létrehozásáról.

További kategória: CAML

itt van egy nagy kiküldetés egy fickó elnevezett "craig" a technika, a megállapítás CAML meghatározások alapján le a valódi élő meghatározás-ból egy telek mező-tartalomtípusok.

A kiküldetés azt mondja, minden. Röviden:

  1. Tartalomtípus létrehozása.
  2. Társult, hogy a lista.
  3. Nyisd ki a listában a SharePoint Designer programmal.
  4. Exportálása egy "személyes web csomag".
  5. Átnevez-hoz egy .cab.
  6. Kivonat a manifeszt.
  7. A tartalomtípus és a kapcsolódó CAML.

WSS: Összefoglaló lépéseket ahhoz, hogy hasznos funkciók / elemek / etc. IntelliSense vs 2005

További kategóriák: A Visual Studio 2005

Ahhoz, hogy hasznos intellisense funkciók, elemek, a visual studio stb 2005:

  1. Hozzáférés a WSS szerver.
  2. Keresse meg a "c:\program filescommon filesmicrosoft sharedweb server extensions12TEMPLATEXML"
  3. Egy másik windows Intéző mutatva-hoz: "C:\A program FilesMicrosoft Visual Studio 8XmlSchemas"
  4. Másolja a következő fájlokat a WSS szerver a VS 2005 sémák könyvtár:
    1. WSS.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Indítsa újra a VS 2005
  6. Egy új XML-fájl hozzáadása a projekthez.
  7. Kattintson az XML-fájl törzsében.
  8. A Tulajdonságok ablaktáblában, kattintson a "séma" és válassza ki a "wss.xsd" a döntéseket. (Nincs szükség más xsd kiválasztásához, hiszen Őrájuk a wss.xsd).

IntelliSense most engedélyezve van az adott XML-dokumentum.

Lásd: itt További információért ebben a témában, és utasításokat hogyan való automatikus társítást WSS intellisense bármely XML-fájl.

WSS vizsga 70-541, A Microsoft Windows SharePoint Services 3.0 – Application Development

Vette, és a fent említett vizsgát ma reggel. Találtam a vizsgán, hogy nehéz és tisztességes.

Van egy relatív az információ hiánya a ez a vizsga az interneten. Nem vagyok biztos miért.

Nyilvánvalóan nem fogok bejutni a vizsga vettem minden olyan részletesen, de azt hiszem, nyugodtan mondhatom, a következő:

  1. Hisz ez láncszem: http://www.microsoft.com/learning/exams/70-541.mspx.

    Mit kell tudni a vizsga, és átadni sorolja fel, IMO, nagyon pontos.

  2. A link is ajánlja Belül Microsoft Windows SharePoint Services 3.0 a Ted Pattison & Daniel Larson. Ez a könyv lefedi szinte valamennyi témában, hogy foglalkozik a vizsgálat. Azt találta, hogy jó, és önmagában túl egyszerű vizsga prep. Nagy példákat, és tényleg van rám gondolt a néhány új és érdekes dolgokat kipróbálni. Ha ki szeretné hagyni néhány bit a könyv, csak a kereszthivatkozás a könyv tartalomjegyzék elemeinek a fenti linkre.
  3. Semmi sem fogható a tényleges gyakorlati tapasztalatok. Ha van idő és a kamat, Kövesse együtt a példák a könyvben, és aztán kísérletezzen. Akkor lesz a vizsga, hogy könnyebb idő, valamint igazán megtanulni a WSS alkalmazásprogramozási.

</vége>Subscribe to my blog!

MOSS / InfoPath Forms Server (Az InfoPath 2007) legördülő lista teljesítmény

További kategória: Az InfoPath

Összefoglaló: Az InfoPath 2007 MOSS kiszolgálóra formában biztosítja a szállítók kötött egyéni MOSS lista legördülő listáját. Ha a szállító, szabályok mező értékek hozzárendelése egy maroknyi szöveges mezők, például az értékesítési munkatárs neve, Cím, város, állami, zip, és a telefon. Borzalmas a teljesítménye. Mi észre, hogy a teljesítmény rosszabb (a nem-lineáris) az egyes kiegészítő mezők frissítjük, így. Azaz, Ha most frissíteni az értékesítési munkatárs neve, tart [x] idő. Ha frissítjük értékesítési rep, cím 1, cím 2, város, állami, zip, tart 10 szer hosszabb.

Megoldás: Írjon egy webes szolgáltatás (minta kód megtalálható itt) hogy telt el, a szállító nevét és vissza vissza a eladó részlet. Majd, rendelje hozzá a mezőket ily módon. Bár ez túl lassú, nincs észrevehető különbség a teljesítmény volt, amikor már kiosztott 1 mező szemben 8 mezők. Mint egy hozzáadott bónusz, használók kap egy jó "felveszi a kapcsolatot a szerver" Cylon effektus, miközben várja a forma-hoz esdekel és fogyasztani a szolgáltatás.

MOSS: Kivétel történt. (Kivétel HRESULT: 0x-80020009 (DISP_E_EXCEPTION))

FRISSÍTÉS: Mi soha nem meghatározni, ezt a problémát, és ez soha nem felszíni gyökerét újra.

Mi észrevesz egy fejlesztési site végrehajtása során hogy hirtelen, két felhasználók nem férnek hozzá a webhelycsoport. E számlák hitelesítheti a fő webhely, de ha megpróbál hozzáférni egy adott webhelycsoportra, ők csak kap egy üres képernyő. Nem látható hibák, csak egy fehér üres oldal.

Mi jelentkezzen be webhely adminisztrátorrá és próbál hozzáadni egyik azoknak a felhasználóknak, ez az idő, valamint az a telek admin, után szorongató "OK", mi kap ez üzenet:

Kivétel történt. (Kivétel HRESULT: 0x-80020009 (DISP_E_EXCEPTION))

Mi töltött egy kis időt kutató, ez sajnos, és, nem jön fel semmit hasznos. A diagnosztikai naplófájl volt néhány üzenet, de volt nehéz pontosan korrelációba állításához a problémával.

A végén, Mi a helycsoport törlése, és ismét létrehozza azt, és hogy oldani, hogy.

Ha én kiszámít mi okozta ezt a jövőben, I update this post.