Arkivat mujore: Gusht 2007

MOSS customization Kërkim i Avancuar — Rasti ka rëndësi në të përparuar e kërkimit XSLT

Unë nuk modifikoj përparuar e kërkimit XSLT shumë shpesh, kështu që ajo duket si unë jam ngjitje kodrat e vogla çdo kohë.

Mësimi im më i ri është ky: Rasti ka rëndësi kur referenca një kolonë. Në kërkimin tim avancuar, Unë kam kolona përkufizohet si kjo:

<rrënjë xmlns:XSi="http://www.w3.org/2001/XMLSchema-instance">
<
Kolumne>
<
Column Emër="GafTrainingInvoiceNumber" />
<
Column Emër="GafTrainingInvoiceLocation" />
<
Column Emër="WorkId"/>
<
Column Emër="Rank"/>
<
Column Emër="Titull"/>
<
Column Emër="Autor"/>
<
Column Emër="Madhësi"/>
<
Column Emër="Rrugë"/>
<
Column Emër="Përshkrim"/>
<
Column Emër="Shkruaj"/>
<
Column Emër="SITENAME"/>
<
Column Emër="CollapsingStatus"/>
<
Column Emër="HitHighlightedSummary"/>
<
Column Emër="HitHighlightedProperties"/>
<
Column Emër="Contentclass"/>
<
Column Emër="IsDocument"/>
<
Column Emër="PictureThumbnailURL"/>
</
Kolumne>
</
rrënjë>

XLST që tregon numrin e faturës dhe vendndodhjen faturë kishte qenë:

<p>
Training Invoice Number: <XSL:vlera-e zgjedh="GafTrainingInvoiceNumber"/>
<
br></br>
Training Invoice Location: <XSL:vlera-e zgjedh="GafTrainingInvoiceLocation"/>
</
p>

Megjithatë, the select has to reference the property in all lower case, si në:

<p>
Training Invoice Number: <XSL:vlera-e zgjedh="gaftraininginvoicenumber"/>
<
br></br>
Training Invoice Location: <XSL:vlera-e zgjedh="gaftraininginvoicelocation"/>
</
p>


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

Moss: Shembull funksionale - Custom Dhënave Lloji

Skenari Biznes:

Ndërmarrjeve të gjerë zbatimi i MOSS për kompaninë prodhuese me 30+ faqet dhe një duzinë disa departamenteve të korporatave.

Objektivi Biznes:

Pavarësisht nga një numër të grupeve të biznesit (departamentet, Lokacionet, etj), të dhëna të caktuara duhet të mbahet në një nivel global. Për shembull, një listë autoritativ mjeshtër i të gjitha lokacionet fizike të kompanisë (e.g. Objektet e prodhimit, warehouse locations, sales offices) should be maintained in a central location.

Technical Problem:

The enterprise taxonomy was implemented using multiple site collections. We would have liked to create the authoritative list of physical locations in a custom WSS list. Pastaj, when we needed to have a column in a content type (or a column added to a list or doc library) that contained corporate locations, we would create a column using the "lookup" datatype and point to this master list.

Unfortunately, lookup datatypes must access a source list "locally" meaning that our authoritative list cannot span site collections.

Zgjidhja teknike:

Implement a new custom data type implemented based on SPField and represented as a DropDownList in the UI whose ListItems populate from the master WSS list.

We created a new site collection called "http://localhost/EnterpriseData". There, we created a custom list named "Corporate Locations". This list just uses the standard "Title" field to contain the list of actual corporate locations.

One follows several discrete steps to create a custom data type in WSS. They are:

  1. Define a class which inherits from SPField (one may inherit from other fields if required).

Here is the code for that:

publik klasë XYZZYCorporateLocationField : SPFieldText
{
publik XYZZYCorporateLocationField
(SPFieldCollection Fushat, varg typeName, varg displayName)
: base(Fushat, typeName, displayName) { }

publik XYZZYCorporateLocationField
(SPFieldCollection Fushat, varg displayName)
: base(Fushat, displayName) { }

publik shkel BaseFieldControl FieldRenderingControl
{
get
{
BaseFieldControl control = i ri XYZZYCorporateLocationFieldControl();
control.FieldName = kjo.InternalName;
kthehem control;
} //get
} // fieldrenderingcontrol

publik shkel varg GetValidatedString(object vlerë)
{
nëse (kjo.Required || value.ToString().Është e barabartë me(String.Empty))
{
hedh i ri SPFieldValidationException ("Department is not assigned.");
}
kthehem base.GetValidatedString(vlerë);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Define another class that inherits from the base field control, si në:

publik klasë XYZZYCorporateLocationFieldControl : BaseFieldControl
{
mbrojtur DropDownList XYZZYCorporateLocationSelector;

mbrojtur shkel varg DefaultTemplateName
{
get
{
kthehem "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

publik shkel object Vlerë
{
get
{
EnsureChildControls();
kthehem kjo.XYZZYCorporateLocationSelector.SelectedValue;
} // get
i vendosur
{
EnsureChildControls();
kjo.XYZZYCorporateLocationSelector.SelectedValue = (varg)kjo.ItemFieldValue;
} // i vendosur
} // override object Value

mbrojtur shkel pavlefshme CreateChildControls()
{

nëse (kjo.Field == zero || kjo.ControlMode == SPControlMode.Display)
kthehem;

base.CreateChildControls();

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

nëse (kjo.XYZZYCorporateLocationSelector == zero)
hedh i ri Exception("ERROR: Cannot load .ASCX file!");

nëse (!kjo.Page.IsPostBack)
{

përdorim (SPSite site = i ri SPSite("http://localhost/enterprisedata"))
{
përdorim (SPWeb web = site.OpenWeb())
{

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

foreach (Pështyj XYZZYCorporateLocation currentList.Items)
{
nëse (XYZZYCorporateLocation["Title"] == zero) vazhdoj;

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

kjo.XYZZYCorporateLocationSelector.Items.Add
(i ri ListItem(theTitle, theTitle));

} // foreach

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

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

The above code basically implements the logic for populating the DropDownList with values from the WSS custom list located at http://localhost/enterprisedata and named "Corporate Departments".

I defined both classes in a single .cs file, compiled it and put it into the GAC (strong required, sigurisht).

  1. Implement a control template (.ascx) siç tregohet:

<%@ Control Language="C#" Inherits="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version=12.0.0.0,Culture=neutral,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ Regjistrohem Tagprefix="wssawc" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version = 12.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Regjistrohem Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version = 12.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID="XYZZYCorporateLocationFieldControl" runat="server">
<Shabllon>
<nëpërkë:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Shabllon>
</
SharePoint:RenderingTemplate>

The above is saved into c:\program files\common files\microsoft shared\web server extensions\12\controltemplates.

  1. Më në fund, we create an XML file to save into the …..\12\XML directory. This is CAML that defines our custom data type and for my example, looks like this:

<?xml version="1.0" encoding="utf-8" ?>
<
FieldTypes>
<
FieldType>
<
Field Emër="TypeName">CorporateLocations</Field>
<
Field Emër="ParentType">Tekst</Field>
<
Field Emër="TypeDisplayName">Corporate Locations</Field>
<
Field Emër="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Field>
<
Field Emër="UserCreatable">TRUE</Field>
<
Field Emër="ShowInListCreate">TRUE</Field>
<
Field Emër="ShowInDocumentLibraryCreate">TRUE</Field>
<
Field Emër="ShowInSurveyCreate">TRUE</Field>
<
Field Emër="ShowInColumnTemplateCreate">TRUE</Field>
<
Field Emër="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Version = 1.0.0.0, Culture = neutral, PublicKeyToken=b0b19e85410990c4</Field>
<
RenderPattern Emër="DisplayPattern">
<
Switch>
<
Expr>
<
Column />
</
Expr>

<Case Vlerë=""/>

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

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

<HTML><![CDATA[</b></hapësirë>]]></HTML>

</
Default>
</
Switch>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" and matches it up against the GAC’d assembly.

After moving all these bits into place, iisreset on the server and it should all start working nicely.

WSS: Teknika për krijimin përkufizimet CAML terren.

Kategoria shtesë: CAML

Këtu is a great posting by a fellow named "craig" në një teknikë për gjetjen përkufizime CAML për llojet e përmbajtjes në terren i bazuar jashtë përcaktimeve të vërtetë të jetojnë nga një vend.

Postimi i tij thotë se të gjithë. Shkurt:

  1. Krijo një lloj përmbajtje.
  2. Lidhin atë me një listë.
  3. Hapur deri listën me SharePoint Designer.
  4. Export to a "personal web package".
  5. Riemërtoj te nje kabinën..
  6. Ekstrakt manifestin.
  7. Gjeni llojin tuaj përmbajtjen dhe lidhur CAML.

WSS: Permbledhja hapa për të mundësuar funksione të dobishme / Elemente / etj. Intellisense në VS 2005

Kategori të tjera: Visual Studio 2005

Për të mundësuar Intellisense dobishme për Features, Elementet, etj në studio vizuale 2005:

  1. Hyrë në një server WSS.
  2. Navigate to "c:\Program Files Common Files microsoft shared extensions web server 12 MOSTRA XML"
  3. Hap një tjetër Windows Explorer duke treguar: "C:\Program Files Microsoft Visual Studio 8 xml Skemat"
  4. Kopjoni skedarët e mëposhtëm nga serveri UK për VS tuaj 2005 Drejtoria schemas:
    1. Wss.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Restart VS 2005
  6. Add a new XML file to a project.
  7. Click in the body of the XML file.
  8. In the properties pane, click on "Schemas" and pick "wss.xsd" from the choices. (It’s not necessary to select other xsd’s since they are referenced from wss.xsd).

Intellisense is now enabled for that XML document.

Shoh këtu for more information on this subject and for instructions on how to automatically associate WSS intellisense with any XML file.

Provimi WSS 70-541, Microsoft Windows SharePoint Services 3.0 – Aplikimi për Zhvillim

I mori dhe e kaloi testin e përmendur më lart këtë mëngjes. Kam gjetur provimi të jetë e vështirë dhe të ndershme.

Ka një mungesë relative e informacionit në këtë provim në web. Unë nuk jam i sigurt pse.

Unë natyrisht që nuk do të merrni në çdo detaj në lidhje me provimin e mora, por unë mendoj se unë mund të thoshim vijim:

  1. Besimi këtë link: http://www.microsoft.com/learning/exams/70-541.mspx.

    Ai rreshton çfarë ju duhet të dini për të kaluar provimin dhe kjo është, IMO, shumë të sakta.

  2. Lidhje gjithashtu rekomandon Brenda Microsoft Windows SharePoint Services 3.0 nga Ted Pattison & Daniel Larson. Ky libër mbulon pothuajse të gjitha subjekteve që testi adreson. Kam gjetur atë të jetë i madh në vetvete përtej prep provimit të thjeshtë. Ai jep shembuj të mëdha dhe me të vërtetë mori mua duke menduar në lidhje me disa gjëra të reja dhe interesante të përpiqen. Nëse ju doni të kaloni një bit pak në libër, vetëm ndër-referencë Toc e librit me artikuj në linkun nga lart.
  3. Asgjë nuk rreh aktuale përvojë duart-në. Nëse keni kohë dhe interes, ndjekin së bashku me shembujt në libër dhe pastaj të eksperimentojnë me ta. Ju do të keni një kohë më të lehtë në provim, si dhe të vërtetë të mësojnë programimin WSS aplikimit.

</fund>Abonohen në blogun tim!

Moss / InfoPath Format Server (InfoPath 2007) drop-down list performancës

Kategoria shtesë: InfoPath

Përmbledhje: Një InfoPath 2007 formojnë të vendoset në një server MOSS ofron një drop-down list e shitësit të lidhura me një listë me porosi MOSS. Me zgjedhjen e një shitës, Rregullat caktojë vlerat në terren për një pjesë të vogël të fushave të tekstit të tilla si emri shitjes rep, adresë, qytet, shtet, zip dhe telefoni. Performanca është e tmerrshme. Vërejmë se performanca merr keq (në një mënyrë jo-lineare) për çdo fushë shtesë ne update këtë mënyrë. Dmth, nëse ne vetëm update emrin shitjes rep, ajo merr [x] Sasinë e kohës. Nëse ne update shitjes rep, address1, address2, qytet, shtet, zip, ajo merr 10 herë më të gjatë.

Zgjidhje: Shkruani një shërbim web (Kodi mostër mund të gjenden këtu) që është kaluar në emër të një shitës dhe ajo kthehet prapa detajet shitësi. Pastaj, caktojë fushat në këtë mënyrë. Edhe pse kjo duket shumë e ngadaltë, nuk kishte asnjë dallim dukshme në performancën kur kemi caktuar 1 fushë kundrejt 8 Fushat. Si një bonus shtuar, users get a cool "contacting the server" Cylon Efekti ndërsa ata presin për formën të thirret dhe të konsumojnë rezultatet shërbimit.

Moss: Përjashtim ndodhur. (Përjashtim nga HRESULT: 0x80020009 (DISP_E_EXCEPTION))

UPDATE: Ne kurrë nuk përcaktohet shkaku rrënja e këtij problemi dhe ajo kurrë nuk shfaqen përsëri.

Ne njoftim gjatë zbatimit të një faqe të zhvillimit që papritmas, dy përdoruesit janë në gjendje për të hyrë në një koleksion faqe. Ato llogaritë mund të vërtetoj në faqen kryesore, por kur u përpjekur për të hyrë në një koleksion të veçantë faqe, ata vetëm të marrë një ekran bosh. Nuk ka gabime shfaqet, vetëm një faqe bosh të bardhë.

Ne hyni në si një admin site collection dhe të përpiqemi për të shtuar një nga ata përdorues admin si një vend dhe këtë herë, upon pressing "OK", ne kemi marrë këtë mesazh:

Përjashtim ndodhur. (Përjashtim nga HRESULT: 0x80020009 (DISP_E_EXCEPTION))

Ne kaloi disa kohë kërkime dhe kjo për fat të keq, nuk ka dalë me ndonjë gjë të dobishme. Ka pasur disa mesazhe në log diagnostik, por ajo ishte e vështirë për të pikërisht ato lidhen me këtë çështje.

Në fund, Ne fshirjes site collection dhe ri-krijuar atë dhe zgjidhur atë që.

Nëse unë kuptoj se çfarë e shkaktoi këtë në të ardhmen, Unë do update këtë post.