mėnesio Archyvai: Rugpjūčio 2007

Išplėstinės paieškos customization MOSS — Atveju svarbu Išplėstinė paieška XSLT

I don't pakeisti išplėstinės paieškos XSLT labai dažnai, Todėl atrodo, kaip aš laipioti nedidelių kalvų kiekvieną kartą.

Mano naujausias pamoka yra tai: Teismų bylose, kai nuorodos stulpelis. Mano Išplėstinė paieška, Turiu stulpelių apibrėžiamas kaip tai:

<šaknis xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance">
<
Stulpeliai>
<
Stulpelio vardas, pavadinimas="GafTrainingInvoiceNumber" />
<
Stulpelio vardas, pavadinimas="GafTrainingInvoiceLocation" />
<
Stulpelio vardas, pavadinimas="WorkId"/>
<
Stulpelio vardas, pavadinimas="Rangas"/>
<
Stulpelio vardas, pavadinimas="Antraštinė dalis"/>
<
Stulpelio vardas, pavadinimas="Autorius"/>
<
Stulpelio vardas, pavadinimas="Dydis"/>
<
Stulpelio vardas, pavadinimas="Maršrutas"/>
<
Stulpelio vardas, pavadinimas="Aprašymas"/>
<
Stulpelio vardas, pavadinimas="Rašyti"/>
<
Stulpelio vardas, pavadinimas="SiteName"/>
<
Stulpelio vardas, pavadinimas="CollapsingStatus"/>
<
Stulpelio vardas, pavadinimas="HitHighlightedSummary"/>
<
Stulpelio vardas, pavadinimas="HitHighlightedProperties"/>
<
Stulpelio vardas, pavadinimas="ContentClass"/>
<
Stulpelio vardas, pavadinimas="IsDocument"/>
<
Stulpelio vardas, pavadinimas="PictureThumbnailURL"/>
</
Stulpeliai>
</
šaknis>

XLST, kuris parodo sąskaitos-faktūros numeris ir SF vietoje buvo:

<p>
Mokymo sąskaitos-faktūros numeris: <XSL:vertė Pasirinkite="GafTrainingInvoiceNumber"/>
<
br></br>
Mokymo SF vietą: <XSL:vertė Pasirinkite="GafTrainingInvoiceLocation"/>
</
p>

Tačiau, Pasirinkite turi nurodyti ypatybę visi mažosiomis raidėmis, kaip ir:

<p>
Mokymo sąskaitos-faktūros numeris: <XSL:vertė Pasirinkite="gaftraininginvoicenumber"/>
<
br></br>
Mokymo SF vietą: <XSL:vertė Pasirinkite="gaftraininginvoicelocation"/>
</
p>


Kol aš pataisyta, paieškos rezultatai parodė etiketes (ty. "Mokymo sąskaitos-faktūros numeris") Tačiau nėra duomenų.

SAMANŲ: Funkcinis pavyzdys-vartotojo duomenų tipas

Verslo scenarijus:

Visos įmonės įgyvendinimas MOSS gamybos įmonė 30+ svetaines ir keletą dešimčių įmonių padalinių.

Verslo tikslas:

Nepaisant daugybės verslo grupių (departamentai, vietose, ir tt), tam tikrus duomenis, turėtų būti išlaikytos pasauliniu mastu. Pvz., autoritetingų meistras sąrašas visų fizines vietoves bendrovės (pvz.. gamybiniai pajėgumai, sandėlių išsidėstymo vietose, pardavimo agentūrose) turėtų būti išlaikyta centre.

Techninių problemų:

Įmonės taksonomijos buvo įgyvendinama naudojant kelis svetainių rinkinius. Būtų norėję sukurti patikimą sąrašą fizines vietoves pasirinktinį WSS sąrašą. Tada, Kada mums reikia, kad stulpelio turinio tipe (ar stulpelį prie sąrašo ar doc biblioteka) kad esančių įmonių ir vietų, Mes būtų naudojant "peržvalgos stulpelio kūrimas" duomenų tipo ir taškas į šį pagrindinį sąrašą.

Deja, peržvalgos duomenų tipai turi pasiekti šaltinio sąrašą "vietoje" tai reiškia, kad mūsų autoritetingų sąrašas gali kirsti svetainių rinkiniai.

Techninis sprendimas:

Įgyvendinti naują pasirinktiniam duomenų tipui įgyvendinama remiantis SPField ir atstovavo DropDownList kurių ListItems užpildyti iš meistras WSS sąrašo vartotojo sąsaja.

Mes sukūrėme naują svetainę kolekcija "http://localhost/EnterpriseData". Ten, Mes sukūrėme pasirinktinį sąrašą pavadino "Verslo vietos". Šis sąrašas tik naudoja standartinę "pavadinimas" srityje turi būti tikrasis įmonių vietų sąrašą ir.

Vienas toks kelių atskirų veiksmų sukurti vartotojo duomenų tipo WSS. Jie yra:

  1. Nustatyti klasės, kuri paveldi iš SPField (vienas gali paveldėti iš kitose srityse, jei reikia).

Čia yra kodas, kad:

visuomenės klasės XYZZYCorporateLocationField : SPFieldText
{
visuomenės XYZZYCorporateLocationField
(SPFieldCollection, esantį laukai, eilutė typeName, eilutė displayName)
: bazė(laukai, typeName, displayName) { }

visuomenės XYZZYCorporateLocationField
(SPFieldCollection, esantį laukai, eilutė displayName)
: bazė(laukai, displayName) { }

visuomenės Nepaisyti BaseFieldControl FieldRenderingControl
{
gauti
{
BaseFieldControl kontrolės = naujas XYZZYCorporateLocationFieldControl();
kontrolės. Lauko pavadinimas = tai.InternalName;
grįžti kontrolės;
} //gauti
} // fieldrenderingcontrol

visuomenės Nepaisyti eilutė GetValidatedString(objekto vertė)
{
Jei (tai.Reikia || vertė. ToString().Yra lygi(Eilutė.Tuščias))
{
mesti naujas SPFieldValidationException ("Departamentas nėra priskirtas.");
}
grįžti bazė.GetValidatedString(vertė);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Apibrėžti kita klasė, kuri paveldi iš pagrindinio lauko valdiklis, kaip ir:

visuomenės klasės XYZZYCorporateLocationFieldControl : BaseFieldControl
{
apsaugoti DropDownList XYZZYCorporateLocationSelector;

apsaugoti Nepaisyti eilutė DefaultTemplateName
{
gauti
{
grįžti "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

visuomenės Nepaisyti objekto Vertė
{
gauti
{
EnsureChildControls();
grįžti tai.XYZZYCorporateLocationSelector. SelectedValue;
} // gauti
rinkinys
{
EnsureChildControls();
tai.XYZZYCorporateLocationSelector.SelectedValue = (eilutė)tai.ItemFieldValue;
} // rinkinys
} // Nepaisyti objekto vertės

apsaugoti Nepaisyti negalioja CreateChildControls()
{

Jei (tai.Lauko == neapibrėžtas || tai.ControlMode == SPControlMode.Ekranas)
grįžti;

bazė.CreateChildControls();

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

Jei (tai.XYZZYCorporateLocationSelector == neapibrėžtas)
mesti naujas Išimtis("KLAIDA: Negalima įkelti. ASCX failą!");

Jei (!tai.IsPostBIsPostBackırmalıyız puslapis.)
{

naudojant (SPSite svetainės = naujas SPSite("http://localhost/enterprisedata"))
{
naudojant (SPWeb interneto = svetainėje. OpenWeb())
{

SPList currentList = interneto. Sąrašai["Įmonių ir vietų"];

foreach (SPItem XYZZYCorporateLocation į currentList.Items)
{
Jei (XYZZYCorporateLocation["Pavadinimas"] == neapibrėžtas) toliau;

eilutė theTitle;
theTitle = XYZZYCorporateLocation["Pavadinimas"].ToString();

tai.XYZZYCorporateLocationSelector.Items.Add
(naujas ListItem(theTitle, theTitle));

} // foreach

} // naudojant spweb interneto = site.openweb()
} // naudojant spsite svetainės = naujas spsite("http://localhost/enterprisedata")

} // Jei ne visiškai nenaudingai

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Šį kodą iš esmės įgyvendina logika galima įvesti DropDownList su WSS pasirinktinio sąrašo esančių reikšmių http://localhost/enterprisedata ir pavadintas "įmonių padalinių".

Aš apibrėžta abiem klasėms vieną .cs failą, rengiami jį ir įdėti jį į GAC (stiprus reikia, žinoma).

  1. Įgyvendinti kontrolės šabloną (.ascx) kaip parodyta:

<%@ Kontrolės Kalba= "#" Kad paveldi= "Microsoft SharePoint Portal ServerAdmin..., CreateSiteCollectionPanel1 Microsoft.SharePoint.Portal,Versija 12.0.0.0, kultūros = neutral =,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Visada" %>
<%
@ Užsiregistruok TagPrefix= "wssawc" Namespace= "Microsoft.SharePoint.WebControls" Asamblėja="Microsoft.SharePoint, Versija = 12.0.0.0, Kultūros = neutrali, PublicKeyToken = 71e9bce111e9429c" %> <%@ Užsiregistruok TagPrefix= "SharePoint" Namespace= "Microsoft.SharePoint.WebControls" Asamblėja="Microsoft.SharePoint, Versija = 12.0.0.0, Kultūros = neutrali, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID= "XYZZYCorporateLocationFieldControl" būti runat= "serveris">
<Šablonas>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" būti runat= "serveris" />
</Šablonas>
</
SharePoint:RenderingTemplate>

Pirmiau įrašomas į c:\programa filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Pagaliau, mes sukurti XML failą išsaugoti į į... 12XML katalogas. Tai CAML, kuris apibrėžia mūsų pasirinktiniam duomenų tipui ir mano pvz., atrodo taip::

<?XML versija="1.0" kodavimas="UTF-8" ?>
<
Lauko>
<
Lauko tipas>
<
Lauko vardas, pavadinimas="TypeName">CorporateLocations</Lauko>
<
Lauko vardas, pavadinimas="ParentType">Tekstas</Lauko>
<
Lauko vardas, pavadinimas="TypeDisplayName">Įmonių ir vietų</Lauko>
<
Lauko vardas, pavadinimas="TypeShortDescription">Visos XYZZY įmonės vietos gamybos arba kiti įrengimai.</Lauko>
<
Lauko vardas, pavadinimas="UserCreatable">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInListCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInDocumentLibraryCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInSurveyCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInColumnTemplateCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Versija = 1.0.0.0, Kultūros = neutrali, PublicKeyToken = b0b19e85410990c4</Lauko>
<
RenderPattern vardas, pavadinimas="DisplayPattern">
<
Jungiklis>
<
Išraiška>
<
Stulpelio />
</
Išraiška>

<Atveju Vertė=""/>

<Numatytasis>
<
HTML>
<![CDATA[
<span style = "color:Raudona"><b>]]>
</
HTML>

<
Stulpelio SubColumnNumber="0" HTMLEncode="TIESA"/>

<HTML><![CDATA[</b></tarpą>]]></HTML>

</
Numatytasis>
</
Jungiklis>

</
RenderPattern>
</
Lauko tipas>
</
Lauko>
Šio XML failo prideda pasirinktinių duomenų tipo WSS "biblioteka" ir dera jame prieš GAC turėjo Asamblėja.

Perkėlę visus šiuos bitus į vietą, iisreset serveris ir jis turėtų pradėti darbo gražiai.

WSS: Technika sukurti CAML lauko apibrėžimai.

Papildoma kategorija: CAML

čia yra daug skelbimu iš savo bičiuliui pavadintas "craig" apie technika ieškant CAML apibrėžimai lauko turinio tipų pagrįstas ne gyvo apibrėžimai iš svetainės.

Jo registravimo pasako viską. Trumpai tariant:

  1. Kurti turinio tipą.
  2. Asocijuojasi su sąrašas.
  3. Atidarykite sąrašą su SharePoint Designer.
  4. Eksportuoti į "eninio žiniatinklio paketas".
  5. Pervardykite į a .cab.
  6. Ekstraktas manifesto.
  7. Rasti jūsų turinio tipo ir susijusios CAML.

WSS: Suvestinės žingsnių, kad sudarytų naudingų funkcijų/elementai/t. IntelliSense vs 2005

Papildomų kategorijų: Visual Studio 2005

Jei norite įgalinti naudinga intellisense funkcijos, elementai, kt visual Studio 2005:

  1. WSS serveris.
  2. Eikite į "c:\programa filescommon filesmicrosoft sharedweb server extensions12TEMPLATEXML"
  3. Atidaryti kitą windows explorer nukreipta į: "C:\Programa Microsoft Visual Studio 8XmlSchemas"
  4. Nukopijuokite šiuos failus iš WSS serverio į jūsų VS 2005 schemų katalogas:
    1. WSS.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Iš naujo paleiskite VS 2005
  6. Pridėti naują XML failą su projektu.
  7. Spustelėkite toje XML failo.
  8. Srityje ypatybės, Spauskite ant "Schemas" ir pasirinkti "wss.xsd" iš pasirinkimų. (Tai nėra būtina pasirinkti kitų xsd nes jie remiasi wss.xsd).

IntelliSense yra dabar įjungtas XML dokumento.

Žr. čia Daugiau informacijos šiuo klausimu ir instrukcijas, kaip automatiškai susieti WSS intellisense su bet XML failą.

WSS egzaminą 70-541, Microsoft Windows SharePoint tarnybos 3.0 – Programų kūrimas

Aš paėmė ir pirmiau minėtas bandymas šį rytą. Radau egzaminą, kad sunku ir teisingą.

Yra santykinis trūksta informacijos apie šį egzaminą internete. Nežinau kodėl.

Aš akivaizdžiai ne patekti į jokias detales apie egzaminą, aš paėmė, bet manau, kad galiu saugiai pasakyti taip:

  1. Pasitikėti šią nuorodą: http://www.microsoft.com/learning/exams/70-541.mspx.

    Nepriklausomosios darbo grupės ko jums reikia žinoti, kad praeiti egzaminą ir tai, TJO, labai tiksliai.

  2. Nuoroda taip pat rekomenduoja Viduje Microsoft Windows SharePoint tarnybos 3.0 iš Ted Pattison & Daniel Larson. Ši knyga apima beveik visų dalykų, kad bandymas adresai. Man atrodė, kad puikus ir pats nei paprastas egzaminas prep. Tai suteikia puikus pavyzdys ir tikrai surado mane galvoti apie kai kurių naujų ir įdomių dalykų išbandyti. Jei norite praleisti keletą bitai knygoje, tiesiog kryžminę nuorodą, knygos turinį su elementais, nuorodą iš viršaus.
  3. Nieko pranoksta faktines praktinės patirties. Jei turite laiko ir interesus, Sekite kartu su pavyzdžiais knygoje ir bandykite eksperimentuoti su jais. Jums bus lengviau laiko egzaminą taip pat tikrai išmokti WSS taikomojo.

</pabaigos>Prenumeruoti savo dienoraštį!

SAMANŲ / InfoPath formų serveris (Programa InfoPath 2007) Išplečiamajame sąraše veiklos

Papildoma kategorija: Programa InfoPath

Santrauka: Programos InfoPath 2007 formos į MOSS serverio suteikia išplečiamajame sąraše tiekėjų susieta su pasirinktinį MOSS sąrašą. Pasirenkant tiekėjas, taisykles laukų reikšmės priskirti sauja teksto srityse pvz., pardavimo atstovo vardas, Adresas, miesto, valstybės, pašto ir telefono. Efektyvumas yra siaubinga. Pastebime, kad rezultatus bus dar blogiau (ne linijiniu būdu) už kiekvieną papildomą lauką mes atnaujiname tokiu būdu. T. y., Jei mes tik atnaujinti pardavimo atstovo vardas, reikia [x] kiek laiko. Jei mes atnaujinti pardavimo atstovas, address1, Adresas2, miesto, valstybės, zip, reikia 10 kartus ilgiau.

Tirpalas: Rašyti interneto paslauga (mėginio kodą gali būti nustatyta čia) kad perduodama vardu tiekėjas ir jis grįžta atgal tiekėjo informacija. Tada, priskirti laukus tokiu būdu. Nors tai atrodo, pernelyg lėtai, ten buvo ne visuomet būdavo pastebimas skirtumo charakteristikų, kai mes priskirtas 1 srityje palyginti su 8 laukai. Kaip papildoma priemoka, vartotojams gauti cool "susisiekti su serverio" Cylon o jie laukia formą remtis ir vartoti paslaugų rezultatų poveikis.

SAMANŲ: Įvyko išimtis. (Išimtis iš HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

NAUJINIMAS: Mes niekada nustatomas pagrindinλ problema ir ji niekada paviršiaus dar kartą.

Mes pranešimas įgyvendinant vystymosi svetainę, kad staiga, du vartotojai negalite prieiti prie svetainių rinkinio. Tų sąskaitų gali autentifikuoti į pagrindinę svetainę, Tačiau kai bandote prieiti ypač svetainių rinkinio, jie tiesiog tuščias ekranas. Rodomas klaidų, tik baltojo tuščią puslapį.

Mes prisijungti kaip svetainių rinkinio administratorius ir bandykite pridėti vienas iš šių vartotojų svetainės administratoriaus ir šiuo metu, po paspaudus "OK", mes gauti šį pranešimą:

Įvyko išimtis. (Išimtis iš HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

Mes praleido šiek tiek laiko tai tiria ir Deja, ne sugalvoti nieko naudingo. Ten buvo keletas pranešimų diagnostikos žurnale, bet tai buvo sunku tiksliai koreliuoja su šia problema.

Galiausiai, Mes naikinti svetainių rinkinio ir sukuriamas iš naujo ir kad išspręsti.

Jeigu aš suprasti, ką padarė tai ateityje, I atnaujinti šį pranešimą.