Jeg sendt en klassificeret annonce til at sælge min bil i Bergen county, NJ søndag aften. Jeg fik flere henvendelser via e-mail kort tid derefter og lukket aftalen med nogen tirsdag aften.
Næsten for godt til at være sandt …
Jeg sendt en klassificeret annonce til at sælge min bil i Bergen county, NJ søndag aften. Jeg fik flere henvendelser via e-mail kort tid derefter og lukket aftalen med nogen tirsdag aften.
Næsten for godt til at være sandt …
Jeg ændre ikke avanceret søgning XSLT meget ofte, så det ser ud som jeg klatring små bakker hver gang.
Min nyeste lektion er dette: Sagen om når refererer til en kolonne. I min avanceret søgning, Jeg har kolonner defineres som dette:
<roden xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance">
<Kolonner>
<Kolonne Navn="GafTrainingInvoiceNumber" />
<Kolonne Navn="GafTrainingInvoiceLocation" />
<Kolonne Navn="Arbejds-id'et"/>
<Kolonne Navn="Rang"/>
<Kolonne Navn="Titel"/>
<Kolonne Navn="Forfatter"/>
<Kolonne Navn="Størrelse"/>
<Kolonne Navn="Sti"/>
<Kolonne Navn="Beskrivelse"/>
<Kolonne Navn="Skrive"/>
<Kolonne Navn="SiteName"/>
<Kolonne Navn="CollapsingStatus"/>
<Kolonne Navn="HitHighlightedSummary"/>
<Kolonne Navn="HitHighlightedProperties"/>
<Kolonne Navn="ContentClass"/>
<Kolonne Navn="IsDocument"/>
<Kolonne Navn="PictureThumbnailURL"/>
</Kolonner>
</roden>
Den XSLT, der viser faktura nummer og faktura placeringen havde været:
<p>
Uddannelse fakturanummer: <XSL:værdi af Vælg="GafTrainingInvoiceNumber"/>
<br></br>
Uddannelse faktura placering: <XSL:værdi af Vælg="GafTrainingInvoiceLocation"/>
</p>
Dog, Vælg har referere til egenskaben i alle små bogstaver, som i:
<p>
Uddannelse fakturanummer: <XSL:værdi af Vælg="gaftraininginvoicenumber"/>
<br></br>
Uddannelse faktura placering: <XSL:værdi af Vælg="gaftraininginvoicelocation"/>
</p>
Indtil jeg korrigeret, Søg blandt resultater viste etiketter (dvs. "Uddannelse fakturanummer") men ingen data.
Forretningsscenario:
Enterprise-wide gennemførelsen af mos for produktionsvirksomhed med 30+ websteder og et par dusin corporate afdelinger.
Business mål:
Trods et væld af erhvervslivet grupper (afdelinger, Steder, osv), visse data bør bevares på globalt plan. For eksempel, en autoritativ master liste over alle fysiske placeringer af virksomheden (strømsparetilstand. produktionsfaciliteter, lagerlokationer, salgskontorer) bør fastholdes i en central beliggenhed.
Teknisk Problem:
Enterprise taksonomien blev gennemført ved hjælp af flere grupper af websteder. Vi ville gerne oprette den autoritative liste over fysiske lokationer i en brugerdefineret WSS liste. Derefter, Når vi skulle have en kolonne i en indholdstype (eller en kolonne føjes til en liste eller doc bibliotek) der indeholdt corporate steder, Vi ville skabe en kolonne ved hjælp af "opslag" datatype og pege på denne hovedliste.
Desværre, opslag datatyper skal have adgang til en kildeliste "lokalt" hvilket betyder at vores autoritative liste ikke kan span websteder.
Tekniske løsning:
Implementer en ny brugerdefineret datatype implementeret baseret på SPField og repræsenteret som en DropDownList i UI hvis ListItems udfylde WSS-listen master.
Vi skabt en ny gruppe af websteder kaldes "http://localhost/EnterpriseData". Der, Vi har oprettet en brugerdefineret liste navngivne "Corporate placeringer". Denne liste bruger bare den standard "titel" Feltet indeholder en liste over faktiske corporate placeringer.
Man følger flere diskrete trin for at oprette en brugerdefineret datatype i WSS. De er:
Her er koden for at:
offentlige klasse XYZZYCorporateLocationField : SPFieldText
{
offentlige XYZZYCorporateLocationField
(Af SPFieldCollection felter, streng typeName, streng displayName)
: Base(felter, typeName, displayName) { }
offentlige XYZZYCorporateLocationField
(Af SPFieldCollection felter, streng displayName)
: Base(felter, displayName) { }
offentlige tilsidesætte BaseFieldControl FieldRenderingControl
{
få
{
BaseFieldControl kontrol = nye XYZZYCorporateLocationFieldControl();
kontrol. FieldName = Dette.InternalName;
tilbagevenden kontrol;
} //få
} // fieldrenderingcontrol
offentlige tilsidesætte streng GetValidatedString(objekt værdi)
{
Hvis (Dette.Kræves || værdi. ToString().Er lig med(Streng.Tom))
{
kaste nye SPFieldValidationException ("Afdeling er ikke tildelt.");
}
tilbagevenden Base.GetValidatedString(værdi);
} // getvalidatedstring
} // XYZZYCorporateLocation
offentlige klasse XYZZYCorporateLocationFieldControl : BaseFieldControl
{
beskyttet DropDownList XYZZYCorporateLocationSelector;
beskyttet tilsidesætte streng DefaultTemplateName
{
få
{
tilbagevenden "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
offentlige tilsidesætte objekt Værdi
{
få
{
EnsureChildControls();
tilbagevenden Dette.XYZZYCorporateLocationSelector. SelectedValue;
} // få
sæt
{
EnsureChildControls();
Dette.XYZZYCorporateLocationSelector.SelectedValue = (streng)Dette.ItemFieldValue;
} // sæt
} // tilsidesætte objekt værdi
beskyttet tilsidesætte void CreateChildControls()
{
Hvis (Dette.Feltet == Null || Dette.ControlMode == SPControlMode.Display)
tilbagevenden;
Base.CreateChildControls();
Dette.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer. FindControl("XYZZYCorporateLocationSelector");
Hvis (Dette.XYZZYCorporateLocationSelector == Null)
kaste nye Undtagelse("FEJL: Kan ikke indlæse. ASCX fil!");
Hvis (!Dette.IsPostBack side.)
{
ved hjælp af (SPSite site = nye SPSite("http://localhost/enterprisedata"))
{
ved hjælp af (SPWeb Web = site. OpenWeb())
{
SPList.Update() currentList = web. Lister["Corporate steder"];
foreach (SPItem XYZZYCorporateLocation i currentList.Items)
{
Hvis (XYZZYCorporateLocation["Titel"] == Null) «««;
streng theTitle;
theTitle = XYZZYCorporateLocation["Titel"].ToString();
Dette.XYZZYCorporateLocationSelector.Items.Add
(nye ListItem(theTitle, theTitle));
} // foreach
} // ved hjælp af spweb web = site.openweb()
} // ved hjælp af spsite site = ny spsite("http://localhost/enterprisedata")
} // Hvis ikke en tilbagesendelse
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Ovenstående kode dybest set implementerer logik til udfyldning af DropDownList med værdier fra den WSS brugerdefinerede liste findes på http://localhost/enterprisedata og navngivet "Corporate afdelinger".
Jeg defineret begge klasser i en enkelt .cs fil, kompileret det og sætte det ind i GAC (stærk kræves, Selvfølgelig).
<%@ Kontrol Sprog= "C#" Arver="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version = 12.0.0.0, kultur = neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Altid" %>
<%@ Registrer TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.webControls" Forsamling="Microsoft.SharePoint, Version = 12.0.0.0, Kultur = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Registrer TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.webControls" Forsamling="Microsoft.SharePoint, Version = 12.0.0.0, Kultur = neutral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID= "XYZZYCorporateLocationFieldControl" RUNAT= "server">
<Skabelon>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" RUNAT= "serveren" />
</Skabelon>
</SharePoint:RenderingTemplate>
Ovenstående er gemt i c:\programmet fælles filer filesmicrosoft sharedweb server extensions12controltemplates.
<?XML version="1.0" kodning="UTF-8" ?>
<Felttyper>
<FieldType>
<Felt Navn="TypeName">CorporateLocations</Felt>
<Felt Navn="Felttypen">Tekst</Felt>
<Felt Navn="TypeDisplayName">Corporate steder</Felt>
<Felt Navn="TypeShortDescription">Alle XYZZY Corporate steder herunder fremstillings- eller andre faciliteter.</Felt>
<Felt Navn="UserCreatable">SANDT</Felt>
<Felt Navn="ShowInListCreate">SANDT</Felt>
<Felt Navn="ShowInDocumentLibraryCreate">SANDT</Felt>
<Felt Navn="ShowInSurveyCreate">SANDT</Felt>
<Felt Navn="ShowInColumnTemplateCreate">SANDT</Felt>
<Felt Navn="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = b0b19e85410990c4</Felt>
<RenderPattern Navn="DisplayPattern">
<Switch>
<Udtryk>
<Kolonne />
</Udtryk>
<Sag Værdi=""/>
<Standard>
<HTML>
<![CDATA[<span style = "color:Rød"><b>]]>
</HTML>
<Kolonne SubColumnNumber="0" HTMLEncode="SANDT"/>
<HTML><![CDATA[</b></span>]]></HTML>
</Standard>
</Switch>
</RenderPattern>
</FieldType>
</Felttyper>
Denne XML-fil, tilføjer den brugerdefinerede datatype til WSS "bibliotek" og passer det ind i GAC havde forsamling.
Når du har flyttet alle disse bits på plads, iisreset på serveren, og det bør alle start arbejder pænt.
Ekstra kategori: CAML
Her er en stor udstationering af en fyr ved navn "craig" på en teknik til at finde CAML definitioner for feltet indholdstyper baseret off rigtig levende definitioner fra et websted.
Hans udstationering siger det hele. I korte træk:
Yderligere kategorier: Visual Studio 2005
At aktivere nyttige intellisense til funktioner, elementer, etc i visual studio 2005:
IntelliSense er nu aktiveret for denne XML-dokument.
Se Her for mere information om dette emne og instruktioner om, hvordan du automatisk knytte WSS intellisense med alle XML-filer.
Jeg tog og bestået den ovennævnte test her til morgen. Jeg fandt eksamenen skal være vanskeligt og fair.
Der er en relativ mangel på information om denne eksamen på nettet. Jeg er ikke sikker på hvorfor.
Jeg ikke vil naturligvis få nogen detaljer om eksamen jeg tog, men jeg tror, jeg kan sikkert sige følgende::
Det viser, hvad du behøver at vide for at bestå eksamen og det er, IMO, meget præcis.
</slutningen>Abonner på min blog!
Ekstra kategori: InfoPath
Resumé: En InfoPath 2007 form indsat til en server, MOSS giver en drop-down listen af leverandører er bundet til en brugerdefineret liste, der mos. Ved valg af leverandør, regler tildeler feltværdier til en håndfuld tekstfelter som salgsrep navn, adresse, City, staten, zip og telefon. Performance er forfærdeligt. Vi bemærker, at ydeevnen bliver værre (i en ikke-lineær mode) for hver yderligere felt opdatere vi denne måde. Dvs., Hvis vi bare opdatere navnet salg rep, det tager [x] mængden af tid. Hvis vi opdatere salg rep, Address1, Adresse2, City, staten, zip, det tager 10 gange længere.
Løsning: Skrive en webservice (eksempelkode kan findes Her) der er gået i en kreditor og det returnerer tilbage kreditor detaljer. Derefter, knytte felterne på denne måde. Selv om dette også virker langsom, der var ingen mærkbar forskel i ydelse, når vi tildelt 1 feltet versus 8 felter. Som en ekstra bonus, brugere får en cool "kontakter serveren" Cylon effekt, mens de venter på formen at påberåbe sig og forbruge service resultater.
OPDATERING: Vi fastslået aldrig årsag til dette problem, og det aldrig overflade igen.
Vi bemærker under gennemførelsen af et udvikling websted så pludselig, to brugere kan ikke få adgang en webstedssamling. Disse konti kan godkende til det vigtigste websted, Men når du forsøger at få adgang til en bestemt gruppe af websteder, de får bare en blank skærm. Nogen fejl, vises, bare en hvid tom side.
Vi log på som et websted samling admin og forsøge at tilføje en af disse brugere som et websted admin og denne gang, ved at trykke på "OK", Vi får denne meddelelse:
Der opstod en undtagelse. (Undtagelse fra HRESULT: 0x 80020009 (DISP_E_EXCEPTION))
Vi brugt tid på at forske dette og desværre, ikke komme med noget nyttigt. Der var nogle meddelelser i den diagnosticeringslogfil, men det var svært at nøjagtigt korrelere dem med dette problem.
I sidste ende, Vi gruppen af websteder slettes og genoprettes og at løst det.
Hvis jeg regne ud, skyldes hvad dette i fremtiden, Jeg opdaterer denne post.