Mjesečni arhiv: Kolovoz 2007

MOSS napredno pretraživanje prilagodbu — Slučaj važno po napredno pretraživanje XSLT

Ne mijenjati napredno pretraživanje XSLT vrlo često, pa se čini kao da sam penjanje brežuljaka svaki put.

Moj najnoviji pouka je ovo: Slučaj pitanjima kada pozivom stupca. U mom napredno pretraživanje, Ja sam stupce definira kao ovo:

<korijen xmlns:Rebel="http://www.w3.org/2001/XMLSchema-instance">
<
Kolumne>
<
Kolona Ime="GafTrainingInvoiceNumber" />
<
Kolona Ime="GafTrainingInvoiceLocation" />
<
Kolona Ime="WorkId"/>
<
Kolona Ime="Poredak"/>
<
Kolona Ime="Naslov"/>
<
Kolona Ime="Autor"/>
<
Kolona Ime="Veličina"/>
<
Kolona Ime="Put"/>
<
Kolona Ime="Opis"/>
<
Kolona Ime="Pisati"/>
<
Kolona Ime="Sitename"/>
<
Kolona Ime="CollapsingStatus"/>
<
Kolona Ime="HitHighlightedSummary"/>
<
Kolona Ime="HitHighlightedProperties"/>
<
Kolona Ime="ContentClass"/>
<
Kolona Ime="IsDocument"/>
<
Kolona Ime="PictureThumbnailURL"/>
</
Kolumne>
</
korijen>

XLST koji prikazuje broj računa i računa položaj bio:

<p>
Training Invoice Number: <XSL:vrijednost od odabrati="GafTrainingInvoiceNumber"/>
<
br></br>
Training Invoice Location: <XSL:vrijednost od odabrati="GafTrainingInvoiceLocation"/>
</
p>

Međutim, the select has to reference the property in all lower case, kao u:

<p>
Training Invoice Number: <XSL:vrijednost od odabrati="gaftraininginvoicenumber"/>
<
br></br>
Training Invoice Location: <XSL:vrijednost od odabrati="gaftraininginvoicelocation"/>
</
p>


Until I corrected that, search results showed the labels (i.e. "Training Invoice Number") but no data.

MOSS: Funkcionalna Primjer - Custom Vrsta podataka

Poslovni Scenarij:

Enterprise-wide provedba Moss za proizvodne tvrtke s 30+ mjesta i nekoliko desetaka korporativni odjeli.

Poslovni cilj:

Unatoč mnoštvu poslovnih grupa (odjeli, mjesta, itd.), određene podatke treba održavati na globalnoj razini. Na primjer, autoritativni glavni popis svih fizičkih lokacija tvrtke (e.g. proizvodni pogoni, skladišnim mjestima, prodajnih ureda) treba održavati na središnjem mjestu.

Tehnički problem:

Poduzeće taksonomija je provedena pomoću više zbirki web-mjesta. Mi bismo voljeli stvarati autoritativni popis fizičkih lokacija u prilagođenom popisu WSS. Tada, kada smo trebali imati stupac u vrstu sadržaja (ili stupac dodali na popis ili biblioteku doc) koji je sadržavao korporativne mjestima, we would create a column using the "lookup" datatype i ukazuju na ovom glavnom popisu.

Nažalost, lookup datatypes must access a source list "locally" što znači da je naš autoritativni popis ne može obuhvatiti web zbirke.

Tehničko rješenje:

Provesti novu prilagođenu vrstu podataka odvijaju se na temelju SPField, a predstavljeni kao DropDownList u UI čiji ListItems popuniti s popisa master WSS.

Stvorili smo novu stranicu kolekciju pod nazivom "http://localhost/EnterpriseData". Tamo, we created a custom list named "Corporate Locations". This list just uses the standard "Title" Polje se nalazi i popis aktualnih korporativnih mjestima.

Jedan slijedi nekoliko diskretnih koraka za stvaranje prilagođeni vrstu podataka u WSS. Oni su:

  1. Definirajte klase koja nasljeđuje od SPField (jedan može naslijediti od drugih područja ako je potrebno).

Ovdje je broj za koji:

javni klasa XYZZYCorporateLocationField : SPFieldText
{
javni XYZZYCorporateLocationField
(SPFieldCollection Polja, niz typeName, niz displayName)
: baza(Polja, typeName, displayName) { }

javni XYZZYCorporateLocationField
(SPFieldCollection Polja, niz displayName)
: baza(Polja, displayName) { }

javni nadjačati BaseFieldControl FieldRenderingControl
{
dobiti
{
BaseFieldControl control = novi XYZZYCorporateLocationFieldControl();
control.FieldName = to.InternalName;
povratak control;
} //dobiti
} // fieldrenderingcontrol

javni nadjačati niz GetValidatedString(objekt vrijednost)
{
ako (to.Required || value.ToString().Jednako(Gudački.Prazan))
{
baciti novi SPFieldValidationException ("Department is not assigned.");
}
povratak baza.GetValidatedString(vrijednost);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Odredite drugu klasu koja nasljeđuje iz baze kontrole na terenu, kao u:

javni klasa XYZZYCorporateLocationFieldControl : BaseFieldControl
{
zaštićen DropDownList XYZZYCorporateLocationSelector;

zaštićen nadjačati niz DefaultTemplateName
{
dobiti
{
povratak "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

javni nadjačati objekt Vrijednost
{
dobiti
{
EnsureChildControls();
povratak to.XYZZYCorporateLocationSelector.SelectedValue;
} // dobiti
postaviti
{
EnsureChildControls();
to.XYZZYCorporateLocationSelector.SelectedValue = (niz)to.ItemFieldValue;
} // postaviti
} // override object Value

zaštićen nadjačati poništiti CreateChildControls()
{

ako (to.Field == nula || to.ControlMode == SPControlMode.Prikaz)
povratak;

baza.CreateChildControls();

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

ako (to.XYZZYCorporateLocationSelector == nula)
baciti novi Izuzetak("ERROR: Cannot load .ASCX file!");

ako (!to.Page.IsPostBack)
{

pomoću (SPSite site = novi SPSite("http://localhost / enterprisedata"))
{
pomoću (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists["Corporate Locations"];

foreach (SPItem XYZZYCorporateLocation u currentList.Items)
{
ako (XYZZYCorporateLocation["Title"] == nula) nastaviti;

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

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

} // foreach

} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/enterprisedata")

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Gore kod osnovi provodi logiku za naseljavanja DropDownList s vrijednostima iz WSS prilagođenom popisu se nalazi na http://localhost/enterprisedata and named "Corporate Departments".

Ja definirana obje klase u jednu datoteku. Cs, ga sastaviti i staviti ga u GAC (jaka required, naravno).

  1. Provesti predložak kontrole (.ascx) kao što je prikazano:

<%@ Kontrolirajte Jezik="C#" Nasljeđuje="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Inačica = 12.0.0.0, Culture = neutralan,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ Registar Tagprefix="wssawc" Prostor="Microsoft.SharePoint.WebControls" Montaža="Microsoft.SharePoint, Version=12.0.0.0, Kultura = neutralni, PublicKeyToken = 71e9bce111e9429c" %> <%@ Registar Tagprefix="SharePoint" Prostor="Microsoft.SharePoint.WebControls" Montaža="Microsoft.SharePoint, Version=12.0.0.0, Kultura = neutralni, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID="XYZZYCorporateLocationFieldControl" runat="server">
<Predložak>
<trepetljika:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Predložak>
</
SharePoint:RenderingTemplate>

Gore navedeni sprema u C:\Program Files Common Files Microsoft Shared web server ekstenzije 12 controltemplates.

  1. Konačno, možemo stvoriti XML datoteke za spremanje u ..... 12 XML imenik. Ovo je CAML koja definira naš običaj vrstu podataka i za moj primjer, izgleda ovako:

<?xml verzija="1.0" kodiranje="UTF-8" ?>
<
Fieldtypes>
<
FieldType>
<
Polje Ime="TypeName">CorporateLocations</Polje>
<
Polje Ime="ParentType">Tekst</Polje>
<
Polje Ime="TypeDisplayName">Corporate Locations</Polje>
<
Polje Ime="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Polje>
<
Polje Ime="UserCreatable">TRUE</Polje>
<
Polje Ime="ShowInListCreate">TRUE</Polje>
<
Polje Ime="ShowInDocumentLibraryCreate">TRUE</Polje>
<
Polje Ime="ShowInSurveyCreate">TRUE</Polje>
<
Polje Ime="ShowInColumnTemplateCreate">TRUE</Polje>
<
Polje Ime="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Verzija = 1.0.0.0, Kultura = neutralni, PublicKeyToken=b0b19e85410990c4</Polje>
<
RenderPattern Ime="DisplayPattern">
<
Prebaciti>
<
Expr>
<
Kolona />
</
Expr>

<Slučaj Vrijednost=""/>

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

<
Kolona SubColumnNumber="0" HTMLEncode="TRUE"/>

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

</
Default>
</
Prebaciti>

</
RenderPattern>
</
FieldType>
</
Fieldtypes>
This XML file adds the custom data type to the WSS "library" i utakmice se protiv GAC'd skupštine.

Nakon premještanja svih tih bitova u mjestu, iisreset na poslužitelju, a sve to treba početi raditi lijepo.

WSS: Tehnika za stvaranje CAML polja definicije.

Dodatna kategorija: CAML

Ovdje is a great posting by a fellow named "craig" na tehnike za pronalaženje CAML definicije za polja vrste sadržaja temelji off stvarnih živih definicijama iz stranice.

Njegovo postavljanje govori sve. Ukratko:

  1. Stvaranje vrste sadržaja.
  2. Povezati ga s popisa.
  3. Otvorite popis SharePoint Designer.
  4. Export to a "personal web package".
  5. Preimenujte u kabini..
  6. Ekstrakt očituje.
  7. Pronađite svoju vrstu sadržaja i pridružene CAML.

WSS: Sažetak korake kako bi se omogućilo korisne značajke / elementi / etc. INTELLISENSE u VS 2005

Dodatne kategorije: Visual Studio 2005

Da biste omogućili koristan INTELLISENSE za značajke, elementi, itd u Visual Studio 2005:

  1. Pristup je WSS poslužitelj.
  2. Navigate to "c:\program files Common Files Microsoft Shared web server ekstenzije 12 OBRAZAC XML"
  3. Otvaranje drugog Windows Explorer pokazuje na: "C:\Program Files Microsoft Visual Studio 8 xml shema"
  4. Kopirati sljedeće datoteke iz WSS poslužitelja na VS 2005 sheme katalog:
    1. Wss.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Restart VS 2005
  6. Dodaj novi XML datoteku za projekt.
  7. Kliknite u tijelu XML datoteke.
  8. U oknu svojstva, click on "Schemas" and pick "wss.xsd" od izbora. (Nije potrebno odabrati druge xsd-a jer su iz upućuje wss.xsd).

INTELLISENSE sada je omogućeno za taj XML dokument.

Vidjeti ovdje za više informacija o ovoj temi i za upute o tome kako se automatski povezati WSS INTELLISENSE s bilo koje XML datoteke.

WSS ispit 70-541, Microsoft Windows SharePoint Services 3.0 – Razvoj aplikacija

Uzeo sam i prošao navedenog testa jutros. Otkrio sam ispit će biti teško i pošteno.

Tu je relativna oskudica informacija o ovom ispitu na webu. Nisam siguran zašto.

Ja očito ne će doći u bilo koje detalje o ispitu sam uzeo, ali mislim da sa sigurnošću možemo reći sljedeće:

  1. Vjerujte ovaj link: http://www.microsoft.com/learning/exams/70-541.mspx.

    Ona navodi ono što trebate znati položiti ispit i to je, IMO, vrlo precizan.

  2. Vode također preporučuje Unutar Microsoft Windows SharePoint Services 3.0 by Ted Pattinson & Daniel Larson. Ova knjiga pokriva gotovo sve teme koje je test upućena. Otkrio sam da je to velika samo po sebi izvan jednostavnog ispit prep. Ona pruža velike primjere i stvarno mi je dobio razmišljanja o nekim novim i zanimljivim stvarima pokušati. Ako želite preskočiti nekoliko bitova u knjizi, samo prijeći-upućivanje knjige TOC sa stavkama u vezu odozgo.
  3. Ništa tući stvarni kazaljka-na iskustvo. Ako imate vremena i interes, slijediti zajedno s primjerima u knjizi, a zatim eksperimenta s njima. Imat ćete lakše na ispitu, kao i stvarno naučiti WSS za programiranje aplikacija.

</kraj>Pretplatite se na moj blog!

MOSS / InfoPath Forms Server (InfoPath 2007) Padajući popis performanse

Dodatna kategorija: InfoPath

Rezime: InfoPath 2007 formirati raspoređeni na poslužitelju Moss pruža padajući popis distributera vezanog za prilagođeni popis Moss. Nakon odabira dobavljača, pravila dodijeliti vrijednosti polja na nekoliko tekstualnih polja, kao što su prodajni predst ime, adresa, grad, država, zip i telefon. Predstava je strašno. Primjećujemo da se pogoršava performanse (u ne-linearno) za svaki dodatni području smo ažurirati na ovaj način. Odnosno,, ako mi samo ažurirati naziv prodajnog predstavnika, je potrebno [x] iznos od vrijeme. Ako ažurirati prodajnog predstavnika, address1, Adresa2, grad, država, zip, je potrebno 10 puta dulje.

Otopina: Napišite uslugu web (uzorak kod možete naći ovdje) koji je donesen u ime prodavatelja i vraća natrag dobavljača pojedinosti. Tada, dodijeliti polja na ovaj način. Iako je ovo previše izgleda sporo, nije bilo razaznati razlika u performansama kada dodjeljuje 1 polje u odnosu na 8 Polja. Kao bonus, users get a cool "contacting the server" Cylonski učinak, dok oni čekaju obliku pozvati i konzumirati usluge rezultate.

MOSS: Iznimka se dogodila. (Iznimka od HRESULT: 0x80020009 (DISP_E_EXCEPTION))

UPDATE: Mi nikada ne određuje uzrok ovog problema i nikada na površinu opet.

Uočavamo tijekom provedbe razvojne site koji iznenada, Dva su korisnici u mogućnosti pristupiti zbirke web-mjesta. Ti računi mogu ovjeriti na glavnu stranicu, ali kada pokušava pristupiti određenu zbirke web-mjesta, oni samo dobiti prazan ekran. Nema pogreške prikazane, samo bijela prazna stranica.

Mi se prijaviti kao administrator zbirke web-mjesta i pokušati dodati jedan od onih korisnika kao web-admin i ovaj put, upon pressing "OK", smo dobili ovu poruku:

Iznimka se dogodila. (Iznimka od HRESULT: 0x80020009 (DISP_E_EXCEPTION))

Proveli smo neko vrijeme istraživanja to i nažalost, nije došao gore sa ništa korisno. Postojale su neke poruke u log dijagnostičke, ali to je teško točno ih povezati s ovom problematikom.

Na kraju, smo brisanje zbirke web-mjesta i ponovno stvorio i to je riješeno.

Ako sam shvatiti što je uzrokovalo to u budućnosti, Ja ću ažurirati ovaj post.