Monthly Archives: Abuztuaren 2007

MOSS bilaketa aurreratua pertsonalizazio — Kasu bilaketa aurreratua XSLT materia du

Ez dut aldatu bilaketa aurreratua XSLT askotan, dut, beraz, muino txiki bezalako eskalada aldi bakoitzean badirudi.

Nire berriena da ikasgai honetan: Kasu axola denean zutabe batean erreferentzia. Bilaketa aurreratua, Zutabeak dut hau gisa definitzen:

<erro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
Zutabeak>
<
Zutabea Izena="GafTrainingInvoiceNumber" />
<
Zutabea Izena="GafTrainingInvoiceLocation" />
<
Zutabea Izena="WorkId"/>
<
Zutabea Izena="Oharpenak"/>
<
Zutabea Izena="Izenburua"/>
<
Zutabea Izena="Egilea"/>
<
Zutabea Izena="Tamaina"/>
<
Zutabea Izena="Bidea"/>
<
Zutabea Izena="Deskribapena"/>
<
Zutabea Izena="Idatzi"/>
<
Zutabea Izena="SITENAME"/>
<
Zutabea Izena="CollapsingStatus"/>
<
Zutabea Izena="HitHighlightedSummary"/>
<
Zutabea Izena="HitHighlightedProperties"/>
<
Zutabea Izena="Contentclass"/>
<
Zutabea Izena="IsDocument"/>
<
Zutabea Izena="PictureThumbnailURL"/>
</
Zutabeak>
</
erro>

XLST onartzen duen faktura zenbakia eta faktura kokapena bistaratzen izan:

<p>
Training Invoice Number: <xsl:balio du hautatu="GafTrainingInvoiceNumber"/>
<
br></br>
Training Invoice Location: <xsl:balio du hautatu="GafTrainingInvoiceLocation"/>
</
p>

Hala eta guztiz ere, hautatu ditu jabetza erreferentzia egiteko guztiak minuskulaz hasi, bezala:

<p>
Training Invoice Number: <xsl:balio du hautatu="gaftraininginvoicenumber"/>
<
br></br>
Training Invoice Location: <xsl:balio du hautatu="gaftraininginvoicelocation"/>
</
p>


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

Moss: Adibidea funtzionala - pertsonalizatua Datu-mota

Mailako eszenatokia:

Enterprise-zabal MOSS ezartzeko fabrikazio enpresa batekin 30+ guneak eta pare bat dozena korporazio sail.

Helburua enpresa:

Enpresa-talde ugari izan arren (sailen, kokapenak, etc), zenbait datu maila globalean mantendu behar. Adibidez, bat enpresaren fisikoak toki guztietan maisu autoritario zerrenda (e.g. fabrikazio-instalazioak, biltegi kokapenak, salmenta-bulego) kokapen zentrala batean mantendu behar.

Arazo teknikoak:

Enpresa taxonomia ezarri zen anitz gune bildumak erabiliz. Dute gustuko genuke kokapenak fisiko zerrenda autoritario sortzeko bat WSS zerrenda pertsonalizatu batean. Gero, eduki mota bateko zutabe bat izan behar dugu (edo zutabe bat edo zerrenda bat pdf liburutegia gehitu) duten jasotako korporatiboa kokapenak, we would create a column using the "lookup" datatype eta puntu master zerrenda honetan.

Zoritxarrez, lookup datatypes must access a source list "locally" gure autoritario zerrenda hori ezin Hedatu gune Bildumak zentzua.

Irtenbide teknikoa:

Inplementatu pertsonalizatu berri bat datu-mota inplementatu SPField oinarritzen da, eta IU, zeinen ListItems maisuak WSS zerrendatik populatu batean DropDownList gisa irudikatzen.

Gune berri bat izeneko bilduma sortu genuen "http://localhost/EnterpriseData". Ez dago, we created a custom list named "Corporate Locations". This list just uses the standard "Title" Eremu korporatiboaren benetako kokalekuen zerrenda bat du.

Hainbat urrats diskretuak Ohiko datu-mota sortzeko WSS honakoa bat. Dira:

  1. Klase bat definitzen duen SPField tik inherits (eremu batzuetako daiteke oinordetzan behar bada).

Hemen kodea da:

publikoak klasean XYZZYCorporateLocationField : SPFieldText
{
publikoak XYZZYCorporateLocationField
(SPFieldCollection eremu, katea typeName, katea displayName)
: oinarri(eremu, typeName, displayName) { }

publikoak XYZZYCorporateLocationField
(SPFieldCollection eremu, katea displayName)
: oinarri(eremu, displayName) { }

publikoak baliogabetzeko BaseFieldControl FieldRenderingControl
{
lortu
{
BaseFieldControl control = berria XYZZYCorporateLocationFieldControl();
control.FieldName = honetan.Barne-izena;
itzultzeko control;
} //lortu
} // fieldrenderingcontrol

publikoak baliogabetzeko katea GetValidatedString(objektu balioa)
{
bada (honetan.Required || value.ToString().Berdin(Katea.Hustu))
{
bota berria SPFieldValidationException ("Department is not assigned.");
}
itzultzeko oinarri.GetValidatedString(balioa);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Define klasea beste oinarri eremuan kontroletik inherits, bezala:

publikoak klasean XYZZYCorporateLocationFieldControl : BaseFieldControl
{
babesa DropDownList XYZZYCorporateLocationSelector;

babesa baliogabetzeko katea DefaultTemplateName
{
lortu
{
itzultzeko "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

publikoak baliogabetzeko objektu Balio
{
lortu
{
EnsureChildControls();
itzultzeko honetan.XYZZYCorporateLocationSelector.SelectedValue;
} // lortu
ezarri
{
EnsureChildControls();
honetan.XYZZYCorporateLocationSelector.SelectedValue = (katea)honetan.ItemFieldValue;
} // ezarri
} // override object Value

babesa baliogabetzeko gal CreateChildControls()
{

bada (honetan.Field == zero || honetan.ControlMode == SPControlMode.Erakutsi)
itzultzeko;

oinarri.CreateChildControls();

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

bada (honetan.XYZZYCorporateLocationSelector == zero)
bota berria Salbuespen("ERROR: Cannot load .ASCX file!");

bada (!honetan.Page.IsPostBack)
{

erabiliz (SPSite site = berria SPSite("http://localhost / enterprisedata"))
{
erabiliz (SPWeb web = site.OpenWeb())
{

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

foreach (Txu XYZZYCorporateLocation urtean currentList.Items)
{
bada (XYZZYCorporateLocation["Title"] == zero) jarraitu;

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

honetan.XYZZYCorporateLocationSelector.Items.Add
(berria Listitem(theTitle, theTitle));

} // foreach

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

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Goiko kodea da, funtsean, logika ezartzen du DropDownList populating pertsonalizatua WSS zerrenda dago at balioak dituzten http://localhost/enterprisedata and named "Corporate Departments".

Klaseak bai definitu dut bakar bat. Cs fitxategi batean, konpilatu da eta jarri GAC sartu (sendoa beharrezkoa, jakina).

  1. Ezartzea, kontrol-eredu bat (.ascx) ikus daitekeen bezala:

<%@ Kontrolatzeko Hizkuntza="C#" Inherits="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Bertsioa = 12.0.0.0, Kultura = neutrala,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ Izena eman Tagprefix="wssawc" Izen-tartea="Microsoft.SharePoint.WebControls" Batzar="Microsoft.SharePoint, Bertsioa = 12.0.0.0, Kultura = neutrala, PublicKeyToken = 71e9bce111e9429c" %> <%@ Izena eman Tagprefix="SharePoint" Izen-tartea="Microsoft.SharePoint.WebControls" Batzar="Microsoft.SharePoint, Bertsioa = 12.0.0.0, Kultura = neutrala, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:Txantiloi errendatzea ID="XYZZYCorporateLocationFieldControl" runat="server">
<Txantiloi>
<ASP:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Txantiloi>
</
SharePoint:Txantiloi errendatzea>

Gainetik dago, c gordetzen:\programa fitxategiak komun fitxategiak Microsoft Elkarbanatutako web zerbitzari hedapenak 12 controltemplates.

  1. Azkenik, XML fitxategi bat sortuko dugu ..... 12 XML direktorioan gorde. Hau da, hori da gure CAML Ohiko datu-mota definitzen du eta nire adibidez, itxura hau:

<?xml bertsioa="1.0" kodeketa="utf-8" ?>
<
FieldTypes>
<
FieldType>
<
Eremu Izena="TYPENAME">CorporateLocations</Eremu>
<
Eremu Izena="ParentType">Testua</Eremu>
<
Eremu Izena="TypeDisplayName">Corporate Locations</Eremu>
<
Eremu Izena="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Eremu>
<
Eremu Izena="UserCreatable">TRUE</Eremu>
<
Eremu Izena="ShowInListCreate">TRUE</Eremu>
<
Eremu Izena="ShowInDocumentLibraryCreate">TRUE</Eremu>
<
Eremu Izena="ShowInSurveyCreate">TRUE</Eremu>
<
Eremu Izena="ShowInColumnTemplateCreate">TRUE</Eremu>
<
Eremu Izena="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, 1.0.0.0 bertsioa =, Kultura = neutrala, PublicKeyToken=b0b19e85410990c4</Eremu>
<
RenderPattern Izena="DisplayPattern">
<
Aldatu>
<
Expr>
<
Zutabea />
</
Expr>

<Case Balio=""/>

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

<
Zutabea SubcolumnNumber="0" HTMLEncode="TRUE"/>

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

</
Lehenetsi>
</
Aldatu>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" eta datorrenean sortu GAC'd muntaia aurka.

Bit horiek guztiak mugitzen lugar sartu ondoren, zerbitzarian iisreset eta guztiak behar ditu lanean hasteko nicely.

WSS: CAML eremuan definizioak sortzeko teknika.

Kategoria osagarriak: CAML

Hemen is a great posting by a fellow named "craig" Eremu eduki moten definizioak CAML aurkitzeko oinarritzen gune batetik zuzeneko benetako definizioak off-teknika bat.

Bere posting dio guztiak. Laburra:

  1. Sortu eduki mota bat.
  2. Erlazionatuko da zerrenda bat.
  3. Ireki SharePoint Designer batera zerrenda.
  4. Export to a "personal web package".
  5. Egiteko. Kabina bati izena.
  6. Ateratzeko manifestua du.
  7. Aurkitu zure eduki mota eta lotutako CAML.

WSS: Laburpena urratsak erabilgarria Ezaugarriak / elementuak / etc gaitzeko. VS en Intellisense 2005

Osagarriak kategoria: Visual Studio 2005

Erabilgarria intellisense gaitzeko Features, elementuak, ikusmen estudioan etc 2005:

  1. Sartzeko WSS zerbitzari bat.
  2. Navigate to "c:\programa fitxategiak komun fitxategiak Microsoft Elkarbanatutako web zerbitzari hedapenak 12 PLANTILLA XML"
  3. Ireki seinalatuz Windows Explorer beste: "C:\Archivos de programa Microsoft Visual Studio 8 Xml eskemak"
  4. Kopiatu WSS zerbitzari batetik fitxategiak honako zure VS 2005 schemas direktorioa:
    1. Wss.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Berrabiarazi VS 2005
  6. Berri bat gehitu XML fitxategia proiektu bat.
  7. XML fitxategia gorputzean sakatu.
  8. Propietate panelean, click on "Schemas" and pick "wss.xsd" aukera batetik. (Ez da beharrezkoa beste xsd en aukeratu behar dira wss.xsd zenetik aipatzen).

Intellisense dago orain XML dokumentua gaituta.

Ikusi hemen gai honi buruzko informazio gehiago eta nola automatikoki erlazionatuko WSS intellisense edozein XML fitxategi buruzko argibideak.

WSS azterketa- 70-541, Microsoft Windows SharePoint Services 3.0 – Aplikazioen garapena

Eta hartu dut gainditu aipatutako proba gaur goizean. Azterketa zaila da, eta azoka izango da aurkitu dut.

Ez dago azterketa gainditu honetako informazio dearth web orrian erlatiboa da. Ez dakit zergatik.

Egingo dut, noski, ez du proba hartu nuen buruzko xehetasun edozein sartu, baina segurtasunez esan dezaket honako hau dela uste dut:

  1. Fidatzen lotura hau: http://www.microsoft.com/learning/exams/70-541.mspx.

    Zer azterketa gainditzeko jakin behar duzu zerrendatzen ditu eta bere, IMO, oso zehatzak.

  2. Lotura, halaber, gomendatzen du Microsoft Windows SharePoint Services barruan 3.0 Ted Pattison arabera & Daniel Larson. Liburu honetan, ia irakasgai test helbideak guztiak. Handia izan da, eta berez azterketa-simple PREP haratago aurkitu dut. Adibide handia ematen du, eta benetan lortu saiatu berria eta interesgarria gauzak buruz pentsatzen. Nahi duzu liburuan bit gutxira saltatzeko bada, besterik gabe, gurutze-erreferentzia liburuaren TOC lotura elementuak batera goitik.
  3. Ezer ez da esku-esperientzia benetako erritmoak. Duzu, denbora eta interesa izanez gero, jarraitu batera liburuan adibide eta, ondoren, haiekin batera, esperimentu. Azterketa denbora errazagoa baita beti benetan WSS aplikazio programazioa ikasiko dituzu.

</amaiera>Nire blog Harpidetu!

Moss / InfoPath Forms Server (InfoPath 2007) goitibeherako zerrendan performance

Kategoria osagarriak: InfoPath

Laburpena: InfoPath bat 2007 osatzeko MOSS zerbitzari bat zabaldu saltzaileen zerrenda goitibeherako pertsonalizatu baten MOSS lotuta zerrenda bat eskaintzen du. Saltzaile bat hautatu gainean, arau esleitzeko eremuan balioak testu, hala nola, salmenta FONDOA izena arlo eskukada bat, helbidea, hiria, egoera, zip eta telefono. Performance da izugarria. Errendimendua lortzen okerragoa nabarituko dugu (ez-lineala moda batean) gehigarri bakoitzeko eremuan modu hau eguneratu dugu. Hau da,, besterik ez dugu, bada, eguneratu salmenta FONDOA izena, hartzen [x] zenbat denbora. Eguneratu dugu salmenta FONDOA bada, address1, address2, hiria, egoera, zip, hartzen 10 aldiz gehiago.

Irtenbidea: Idatzi web zerbitzu bat (lagin-kodea aurki daitezke hemen) hori saltzaile baten izena igaro eta atzera itzultzen du saltzaileak xehetasunak. Gero, esleitzeko eremu Modu honetan. Hori ere, badirudi, nahiz eta geldoa, ez zen errendimendu diferentzia discernable ez dugunean esleitutako 1 Eremu versus 8 eremu. Bat gehitu bonus gisa, users get a cool "contacting the server" Cylon Efektu inprimakia bitartean itxaron eta deitu kontsumitzen zerbitzu emaitzak.

Moss: Salbuespena gertatu da. (HRESULT from Exception: 0x80020009 (DISP_E_EXCEPTION))

UPDATE: Zehazten ez dugu arazo honen arrazoia erro eta Azalera inoiz berriro.

Nabarituko garapen gune bat-batean hori ezartzeko zehar, Bi erabiltzaileak ez dira gune bilduma bat sartzeko. Kontu horiek ahal nagusira gune autentifikatu, baina jakin batean gune bilduma atzitzean, lortzeko besterik ez dute pantaila bat. Akatsik ez bistaratuko, zuri bat besterik ez da orri zuri.

Saioa bat gune bilduma admin jo dugu, eta saiatu erabiltzaile horietako bat gehitzeko admin gune gisa, eta denbora honetan, upon pressing "OK", Mezu hau lortuko dugu:

Salbuespena gertatu da. (HRESULT from Exception: 0x80020009 (DISP_E_EXCEPTION))

Denbora pixka bat igaro dugu hau eta, zoritxarrez, ikertzen, ez ziren etorri ezer erabilgarria. Baziren diagnostiko log mezuak batzuk, baina gogorra izan zen, zehazki, horiek erlazionatzeko gai horri.

Azkenean, ezabatzen gune bildumaren dugu, eta berriro sortu da, eta hori konpondu.

Irudikatu dut, bada, zer eragin hau etorkizunean, Post hau eguneratuko dut.