Mesečni arhiv: Avgusta 2007

MAH, napredno iskanje customization — Primeru važno v napredno iskanje XSLT

Ne prilagajajte napredno iskanje XSLT zelo pogosto, tako se zdi, kot sem plezanje manjših hribih vsakič.

Moj najnovejši nauk je to: Primeru zadeve pri sklicevanju na stolpec. V mojem napredno iskanje, Imam stolpci opredeljeni kot to:

<koren xmlns:XSi="http://www.w3.org/ 2001/XMLSchema-primer">
<
Stolpci>
<
Stolpec ime="GafTrainingInvoiceNumber" />
<
Stolpec ime="GafTrainingInvoiceLocation" />
<
Stolpec ime="WorkId"/>
<
Stolpec ime="Rank"/>
<
Stolpec ime="Naslov"/>
<
Stolpec ime="Avtor"/>
<
Stolpec ime="Velikost"/>
<
Stolpec ime="Pot"/>
<
Stolpec ime="Opis"/>
<
Stolpec ime="Napisati"/>
<
Stolpec ime="Imemesta"/>
<
Stolpec ime="CollapsingStatus"/>
<
Stolpec ime="HitHighlightedSummary"/>
<
Stolpec ime="HitHighlightedProperties"/>
<
Stolpec ime="ContentClass"/>
<
Stolpec ime="IsDocument"/>
<
Stolpec ime="PictureThumbnailURL"/>
</
Stolpci>
</
koren>

XLST, ki prikazuje lokacijo številko in račun račun je bil:

<p>
Številka računa za usposabljanje: <XSL:vrednost za Izberite="GafTrainingInvoiceNumber"/>
<
br></br>
Mesto izobraževanja računa: <XSL:vrednost za Izberite="GafTrainingInvoiceLocation"/>
</
p>

Vendar, Izberi je sklicevanje lastnost v vse male črke, kot v:

<p>
Številka računa za usposabljanje: <XSL:vrednost za Izberite="gaftraininginvoicenumber"/>
<
br></br>
Mesto izobraževanja računa: <XSL:vrednost za Izberite="gaftraininginvoicelocation"/>
</
p>


Dokler sem popravil, ki, Rezultati iskanja, je pokazala, nalepke (i.e. "Usposabljanje račun števnik") vendar ni podatkov.

MOSS: Funkcionalno primer-podatkovnim tipom po meri

Poslovni scenarij:

Izvajanje poslovnega MOSS za proizvodno podjetje z 30+ mesta in nekaj deset podjetij oddelkov.

Poslovni cilj:

Kljub množico poslovnih skupin (oddelki, lokacijah, itd), nekatere podatke je treba ohraniti na svetovni ravni. Na primer, avtoritativni glavni seznam vseh fizičnih lokacijah podjetja (npr.. proizvodni objekti, skladiščnih lokacijah, prodajnih mestih) je treba ohraniti v osrednjem mestu.

Tehnične težave:

Podjetje taksonomije je bilo izvedeno z uporabo več različnih zbirk mesta. Mi bi rad, da ustvarite avtoritativno seznam fizičnih lokacijah v WSS seznam po meri. Nato, ko smo potrebovali, da so v stolpcu v vrsto vsebine (ali stolpec dodati seznam ali doc knjižnica) ki vsebuje skupen lokacijah, bomo ustvarili stolpec z uporabo "iskanje" podatkovni tip in točko glavnega seznama.

Na žalost, iskanje podatkovni tipi morajo imeti dostop do vira seznam "lokalno" kar pomeni, da ne more naša avtoritativni seznam span zbirke mest.

Tehnično rešitev:

Izvajati nova vrsta podatkov po meri izvajajo na podlagi SPField in zastopali DropDownList v UI, katerih ListItems zapolnijo od glavnega seznama WSS.

Ustvarili smo novo zbirko mest, imenuje "http://localhost/EnterpriseData". Tam, ustvarili smo poimenovali "Corporate lokacijah" seznam po meri. Ta seznam uporablja samo standardne "naslov" polje vsebuje seznam dejanskih lokacijah podjetja.

Eden sledi več nepovezanih korakov ustvariti s podatkovnim tipom po meri v WSS. So:

  1. Določite razred, ki deduje od SPField (Eden lahko podedujejo od drugih področjih, če zahtevati).

Tukaj je koda za to:

javnih razred XYZZYCorporateLocationField : SPFieldText
{
javnih XYZZYCorporateLocationField
(SPFieldCollection polja, niz typeName, niz displayName)
: osnove(polja, typeName, displayName) { }

javnih XYZZYCorporateLocationField
(SPFieldCollection polja, niz displayName)
: osnove(polja, displayName) { }

javnih Preglasitev BaseFieldControl FieldRenderingControl
{
dobili
{
BaseFieldControl nadzor = nove XYZZYCorporateLocationFieldControl();
nadzor. Imepolja = to.InternalName;
vrnitev nadzor;
} //dobili
} // fieldrenderingcontrol

javnih Preglasitev niz GetValidatedString(predmet vrednost)
{
Če (to.Zahteva || vrednost. ToString().Je enako(Niz.Prazna))
{
vrzi nove SPFieldValidationException ("Oddelek ni dodeljena.");
}
vrnitev osnove.GetValidatedString(vrednost);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Določite drug razred, ki deduje od osnovno polje kontrolnika, kot v:

javnih razred XYZZYCorporateLocationFieldControl : BaseFieldControl
{
zaščiteni DropDownList XYZZYCorporateLocationSelector;

zaščiteni Preglasitev niz DefaultTemplateName
{
dobili
{
vrnitev "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

javnih Preglasitev predmet Vrednost
{
dobili
{
EnsureChildControls();
vrnitev to.SelectedValue XYZZYCorporateLocationSelector.;
} // dobili
Set
{
EnsureChildControls();
to.XYZZYCorporateLocationSelector.SelectedValue = (niz)to.ItemFieldValue;
} // Set
} // Preglasitev predmeta vrednost

zaščiteni Preglasitev nična CreateChildControls()
{

Če (to.Področju == NULL || to.ControlMode == SPControlMode.Prikaz)
vrnitev;

osnove.CreateChildControls();

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

Če (to.XYZZYCorporateLocationSelector == NULL)
vrzi nove Izjema("NAPAKA: Ni mogoče naložiti. Datoteki ASCX!");

Če (!to.IsPostBack strani.)
{

z uporabo (»SPSite « stran = nove »SPSite «("http://localhost/enterprisedata"))
{
z uporabo (SPWeb Spletna stran =. OpenWeb())
{

SPList.Update() currentList = spletni. Seznami["Podjetja lokacijah"];

foreach (SPItem XYZZYCorporateLocation v currentList.Items)
{
Če (XYZZYCorporateLocation["Naslov"] == NULL) «««;

niz theTitle;
theTitle = XYZZYCorporateLocation["Naslov"].ToString();

to.XYZZYCorporateLocationSelector.Items.Add
(nove ListItem(theTitle, theTitle));

} // foreach

} // z uporabo spweb web = site.openweb()
} // z uporabo strani »SPSite« = nov spsite("http://localhost/enterprisedata")

} // Če ne a povratno objavo

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Zgornjo kodo v bistvu izvaja logika za populating DropDownList z vrednostmi iz seznama WSS po meri, ki se nahaja na http://localhost/enterprisedata in imenovan "oddelki podjetij".

I opredeljene obeh razredov v enotni .cs datoteko, skupljevati to ter ga v predpomnilniku GAC (močno potrebnih, seveda).

  1. Izvajanje predloga kontrolnika (.ascx) kot je prikazano:

<%@ Nadzor Jezik= "C#" Podeduje="Microsoft.SharePoint.portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.portal,Prevod = 12.0.0.0, kultura = neutral,ŽetonJavnegaKljuča = 71e9bce111e9429c" compilationMode= "Vedno" %>
<%
@ Registracija TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Skupščina="Microsoft.SharePoint, Različica = 12.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = 71e9bce111e9429c" %> <%@ Registracija TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Skupščina="Microsoft.SharePoint, Različica = 12.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = 71e9bce111e9429c" %>
<SharePoint:Predlogo upodabljanja ID= "XYZZYCorporateLocationFieldControl" potepuh= "strežnik">
<Predloga>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" potepuh= "strežnik" />
</Predloga>
</
SharePoint:Predlogo upodabljanja>

Zgoraj je shranjena v c:\program filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Končno, Ustvarjamo XML datoteko shraniti v je... 12XML imenik. To je CAML, ki določa naše podatkovnim tipom po meri in za moj primer, izgleda takole:

<?XML različica="1.0" kodiranje="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
Polje ime="TypeName">CorporateLocations</Polje>
<
Polje ime="ParentType">Besedilo</Polje>
<
Polje ime="TypeDisplayName">Podjetja lokacijah</Polje>
<
Polje ime="TypeShortDescription">Povsod XYZZY podjetij, vključno z zmogljivostmi za proizvodnjo ali druge.</Polje>
<
Polje ime="UserCreatable">RES</Polje>
<
Polje ime="ShowInListCreate">RES</Polje>
<
Polje ime="ShowInDocumentLibraryCreate">RES</Polje>
<
Polje ime="ShowInSurveyCreate">RES</Polje>
<
Polje ime="ShowInColumnTemplateCreate">RES</Polje>
<
Polje ime="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Različica = 1.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = b0b19e85410990c4</Polje>
<
RenderPattern ime="DisplayPattern">
<
Stikalo>
<
Izraz>
<
Stolpec />
</
Izraz>

<Primeru Vrednost=""/>

<Privzeto>
<
HTML>
<![CDATA[
<span style = "barva:Red"><b>]]>
</
HTML>

<
Stolpec SubColumnNumber="0" HTMLEncode="RES"/>

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

</
Privzeto>
</
Stikalo>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
Ta XML datoteka doda s podatkovnim tipom po meri WSS "knjižnica" in tekme gor v primerjavi z GAC je skupščina.

Po vseh teh bitov gibljejo na mesto, iisreset na strežniku in jo morajo vsi začeli delati lepo.

WSS: Tehnika za ustvarjanje CAML področju opredelitve.

Dodatno kategorijo: CAML

tukaj je veliko objavljate s kolegi imenovan "craig" na tehniko za iskanje CAML opredelitve za vrste vsebine polja, ki temelji off resnično živeti opredelitve iz mesta.

Njegov knjižni pove vse. Na kratko:

  1. Ustvarite vrsto vsebine.
  2. Povezujejo z seznam.
  3. Odprite seznam SharePoint Designer.
  4. Izvoz v »osebni spletni paket«.
  5. Preimenovati v a .cab.
  6. Citat manifest.
  7. Našli vrsto vsebine in povezana CAML.

WSS: Povzetek korakov omogočiti koristne funkcije/elementi/etc. IntelliSense v VS 2005

Dodatne kategorije: Visual Studio 2005

Omogočiti koristne intellisense za funkcije, elementi, itd v visual studio 2005:

  1. Dostop do strežnika WSS.
  2. Pluti v "c:\program filescommon filesmicrosoft sharedweb server extensions12TEMPLATEXML"
  3. Odpre drugo okno raziskovalec, kaže: "C:\Program FilesMicrosoft Visual Studio 8XmlSchemas"
  4. Kopirajte naslednje datoteke iz strežnika WSS vaš VS 2005 Imenik sheme:
    1. WSS.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Znova zaženite VS 2005
  6. Dodati novo datoteko XML za projekt.
  7. Kliknite telo XML datoteke.
  8. V podoknu lastnosti, kliknite na "sheme" in pick "wss.xsd" od izbire. (Ni treba izbrati druge xsd, saj so navedeni iz wss.xsd).

IntelliSense je zdaj omogočen za XML dokumenta.

Glej tukaj za več informacij o tej temi in navodila o tem, kako povezati samodejno WSS intellisense z nobeno datoteko XML.

WSS izpit 70-541, Microsoft Windows SharePoint Services 3.0 – Razvoj aplikacij

Vzel in opravili zgoraj navedene test danes zjutraj. Našel sem izpit za težko in pravični.

Obstaja relativno pomanjkanje informacij na ta izpit na spletu. Ne vem zakaj.

Očitno ne bom dobil v vse podrobnosti o izpit, sem vzel, ampak mislim, da sem lahko varno reči naslednje:

  1. Zaupaj to povezavo: http://www.microsoft.com/learning/exams/70-541.mspx.

    Našteva, kaj morate vedeti prenesti izpit in to je, IMO, zelo natančen.

  2. Povezava tudi priporoča Znotraj Microsoft Windows SharePoint Services 3.0 z Ted Pattison & Daniel Larson. Ta knjiga zajema skoraj vse teme, ki obravnava test. Sem našel to super in sama preko enostavno izpit prep. To zagotavlja veliko primerov in res sem razmišljal o nekaj novih in zanimivih stvari, da poskusite. Če želite preskočiti nekaj bitov v knjigi, samo reference v knjigi TOC z elementi v link od zgoraj.
  3. Nič utripov dejanski praktične izkušnje. Če imate čas in obresti, sledite skupaj z primeri v knjige in nato eksperimentirati z njimi. Vi boste imeli čas lažje na izpit, kot tudi res učijo WSS programiranjem.

</namen>Naročite se na moj blog!

MOSS / InfoPath Forms Server (InfoPath 2007) spustni seznam uspešnosti

Dodatno kategorijo: InfoPath

Povzetek: InfoPathov 2007 obliki razporejeno MOSS strežnik zagotavlja spustni seznam prodajalcev, ki so vezane na seznam po meri MOSS. Ob izbiri dobavitelja, pravila dodelite vrednosti polja peščica polj z besedilom kot prodajni zastopnik ime, naslov, mesto, država, zip in telefon. Predstava je grozno. Opazimo, da se poslabša učinkovitost (v ne-linearno) za posamezno dodatno polje posodobimo tako. Tj, Če smo samo posodobiti ime rep prodaje, je potrebno [x] čas. Če smo posodobili prodajni zastopnik, address1, Naslov2, mesto, država, zip, je potrebno 10 krat dlje.

Raztopina: Pisanje spletne storitve (vzorčno kodo najdete tukaj) ki je opravil v imenu prodajalca in vrne nazaj podrobnosti o prodajalcu. Nato, dodelite polja ta način. Čeprav se zdi preveč počasi, ni bilo opaznimi razlike v uspešnosti, ko smo 1 področju v primerjavi z 8 polja. Kot doda bonus, Uporabniki dobili kul "vzpostavljanje povezave s strežnikom" Cylon učinek, medtem ko so čakati za obrazec sklicevala in uživajo rezultate storitev.

MOSS: Prišlo je do izjeme. (Izjema od HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

POSODOBITEV: Smo nikoli ugotovili vzrok za težavo in jo nikoli površinske spet.

Smo opazili med izvajanjem razvoj mesta, kar nenadoma, dve uporabniki ne morejo dostopati do zbirke mest. Te račune lahko prijavljajo v glavno mesto, vendar pri poskusu dostopa do posebno spletno stran zbirka, šele zaslužiti obrazec zaslon. Brez napak, prikazana, samo belo prazno stran.

Smo se prijavite kot skrbnik zbirke mest in poskusite dodati enega od teh uporabnikov kot mesto admin in tokrat, ko pritisnete "OK", smo dobili to sporočilo:

Prišlo je do izjeme. (Izjema od HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

Smo preživeli nekaj časa raziskujejo to in na žalost, nisem prišel z nič uporabnega. Bilo je nekaj sporočil v diagnostični dnevnik, vendar je bilo težko povezati točno jih s težavo.

Na koncu, Brisanje zbirke mest in ponovno ustvarjena in da rešili to.

Če sem ugotoviti, kaj je povzročilo to v prihodnosti, Bom posodobiti to post.