Aylıq Arxiv: Avqust 2007

MOSS Ətraflı axtarış özelleştirme — Case Ətraflı axtarış XSLT məsələni yoxdur

Mən çox tez-tez inkişaf etmiş axtarış XSLT dəyişdirmək yoxdur, Mən kiçik təpələr hər dəfə dırmaşma Ben kimi belə görünür.

Mənim yeni dərs bu: Bir sütun istinad halda məsələ. Mənim qabaqcıl axtarış, Mən bu kimi sütunları müəyyən etmişik:

<kök xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
Columns>
<
Sütun Ad="GafTrainingInvoiceNumber" />
<
Sütun Ad="GafTrainingInvoiceLocation" />
<
Sütun Ad="WorkId"/>
<
Sütun Ad="Dərəcə"/>
<
Sütun Ad="Title"/>
<
Sütun Ad="Müəllif"/>
<
Sütun Ad="Boy"/>
<
Sütun Ad="Yol"/>
<
Sütun Ad="Təsvir"/>
<
Sütun Ad="Yazmaq"/>
<
Sütun Ad="SiteName"/>
<
Sütun Ad="CollapsingStatus"/>
<
Sütun Ad="HitHighlightedSummary"/>
<
Sütun Ad="HitHighlightedProperties"/>
<
Sütun Ad="ContentClass"/>
<
Sütun Ad="IsDocument"/>
<
Sütun Ad="PictureThumbnailURL"/>
</
Columns>
</
kök>

Faktura sayı və faktura yeri göstərir ki XLST olmuşdur:

<p>
Training Invoice Number: <XSL:dəyər və seçmək="GafTrainingInvoiceNumber"/>
<
br></br>
Training Invoice Location: <XSL:dəyər və seçmək="GafTrainingInvoiceLocation"/>
</
p>

Lakin, Seç bütün aşağı halda əmlak istinad var, kimi:

<p>
Training Invoice Number: <XSL:dəyər və seçmək="gaftraininginvoicenumber"/>
<
br></br>
Training Invoice Location: <XSL:dəyər və seçmək="gaftraininginvoicelocation"/>
</
p>


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

MOSS: Funksional Example - Xüsusi Veri Tipi

Biznes Ssenari:

Istehsal şirkəti üçün mamır Enterprise-geniş həyata keçirilməsi ilə 30+ sites və bir neçə çox korporativ şöbələri.

Biznes məqsədi:

Biznes qruplarının bir çox baxmayaraq (şöbələri, locations, və s.), müəyyən məlumatların qlobal səviyyədə təmin olunmalıdır. Məsələn, şirkətin bütün fiziki yeri nüfuzlu master siyahısı (e.g. istehsal, anbar locations, satış ofisləri) bir mərkəzi yer saxlamalıdır.

Texniki Problem:

Müəssisə taksonomisi birdən çox site kolleksiyalar istifadə edərək həyata keçirilib. Biz xüsusi WSS siyahısına fiziki locations nüfuzlu siyahısını yaratmaq üçün xoşuma gəldi olardı. Sonra, biz bir içerik növü bir sütun üçün lazım zaman (və ya bir sütun siyahısı və ya doc kitabxana əlavə) ki, olan korporativ locations, we would create a column using the "lookup" Bu master siyahısına datatype və point.

Təəssüf ki,, lookup datatypes must access a source list "locally" bizim nüfuzlu siyahısı site kolleksiyaları əhatə edə bilməz, yəni.

Texniki Həll:

SPField əsaslanır və onun ListItems master WSS siyahıdan yaşayır UI bir DropDownList kimi təmsil həyata yeni bir xüsusi data type həyata keçirilməsi.

Biz adlı yeni bir site kolleksiyası yaradılmış "http://localhost/EnterpriseData". Orada, we created a custom list named "Corporate Locations". This list just uses the standard "Title" faktiki korporativ yerlərin siyahısı domain.

Bir WSS xüsusi bir veri növü yaratmaq üçün bir neçə diskret addımlar aşağıdakı. Onlar:

  1. SPField olan vərəsəlik bir sinif müəyyən (əgər tələb olunarsa başqa bir yataqlarından varis ola bilər).

Burada üçün kod:

ictimai sinfi XYZZYCorporateLocationField : SPFieldText
{
ictimai XYZZYCorporateLocationField
(SPFieldCollection sahələri, sim typeName, sim displayName)
: baza(sahələri, typeName, displayName) { }

ictimai XYZZYCorporateLocationField
(SPFieldCollection sahələri, sim displayName)
: baza(sahələri, displayName) { }

ictimai alıqlamaq BaseFieldControl FieldRenderingControl
{
almaq
{
BaseFieldControl control = yeni XYZZYCorporateLocationFieldControl();
control.FieldName = bu.InternalName;
qayıtmaq control;
} //almaq
} // fieldrenderingcontrol

ictimai alıqlamaq sim GetValidatedString(obyekt dəyər)
{
əgər (bu.Required || value.ToString().Bərabər(Sim.Boş))
{
atmaq yeni SPFieldValidationException ("Department is not assigned.");
}
qayıtmaq baza.GetValidatedString(dəyər);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Baza sahəsində nəzarət vərəsəlik başqa bir sinif müəyyən, kimi:

ictimai sinfi XYZZYCorporateLocationFieldControl : BaseFieldControl
{
müdafiə DropDownList XYZZYCorporateLocationSelector;

müdafiə alıqlamaq sim DefaultTemplateName
{
almaq
{
qayıtmaq "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

ictimai alıqlamaq obyekt Dəyər
{
almaq
{
EnsureChildControls();
qayıtmaq bu.XYZZYCorporateLocationSelector.SelectedValue;
} // almaq
təyin etmək
{
EnsureChildControls();
bu.XYZZYCorporateLocationSelector.SelectedValue = (sim)bu.ItemFieldValue;
} // təyin etmək
} // override object Value

müdafiə alıqlamaq ləğv CreateChildControls()
{

əgər (bu.Field == null || bu.ControlMode == SPControlMode.Göstərmək)
qayıtmaq;

baza.CreateChildControls();

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

əgər (bu.XYZZYCorporateLocationSelector == null)
atmaq yeni Istisna("ERROR: Cannot load .ASCX file!");

əgər (!bu.Page.IsPostBack)
{

istifadə (SPSite site = yeni SPSite("http://localhost / enterprisedata"))
{
istifadə (SPWeb web = site.OpenWeb())
{

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

foreach (Tüpürmək XYZZYCorporateLocation ilə currentList.Items)
{
əgər (XYZZYCorporateLocation["Title"] == null) davam etdirmək;

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

bu.XYZZYCorporateLocationSelector.Items.Add
(yeni ListItem(theTitle, theTitle));

} // foreach

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

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Yuxarıda kodu əsasən yerləşən WSS xüsusi siyahısından dəyərləri ilə DropDownList məskunlaşdırılması üçün məntiq həyata keçirir http://localhost/enterprisedata and named "Corporate Departments".

Mən bir tək. Cs fayl həm də dərsləri müəyyən, bu tərtib və GAC onu qoymaq (tələb olunan güclü, əlbəttə).

  1. Nəzarət şablon həyata keçirilməsi (.ascx) kimi:

<%@ Nəzarət Dil="C#" Vərəsəlik="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version = 12.0.0.0, Mədəniyyət = neytral,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ Qeydiyyat Tagprefix="wssawc" Adlar fəzası="Microsoft.SharePoint.WebControls" Yığma="Microsoft.SharePoint, Version = 12.0.0.0, Mədəniyyət = neytral, PublicKeyToken = 71e9bce111e9429c" %> <%@ Qeydiyyat Tagprefix="SharePoint" Adlar fəzası="Microsoft.SharePoint.WebControls" Yığma="Microsoft.SharePoint, Version = 12.0.0.0, Mədəniyyət = neytral, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID="XYZZYCorporateLocationFieldControl" runat="server">
<Şablon>
<asp:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Şablon>
</
SharePoint:RenderingTemplate>

Yuxarıda c daxil qeyd olunur:\Program Files Common Files Microsoft paylaşılan web server uzantıları 12 controltemplates.

  1. Nəhayət, biz ..... 12 XML qovluğuna saxlamaq üçün XML fayl yaratmaq. Bu, bizim xüsusi data type müəyyən CAML və mənim məsələn, bu kimi:

<?xml variant="1.0" encoding="utf-8" ?>
<
FieldTypes>
<
FieldType>
<
Sahə Ad="TypeName">CorporateLocations</Sahə>
<
Sahə Ad="ParentType">Mətn</Sahə>
<
Sahə Ad="TypeDisplayName">Corporate Locations</Sahə>
<
Sahə Ad="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Sahə>
<
Sahə Ad="UserCreatable">TRUE</Sahə>
<
Sahə Ad="ShowInListCreate">TRUE</Sahə>
<
Sahə Ad="ShowInDocumentLibraryCreate">TRUE</Sahə>
<
Sahə Ad="ShowInSurveyCreate">TRUE</Sahə>
<
Sahə Ad="ShowInColumnTemplateCreate">TRUE</Sahə>
<
Sahə Ad="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Version = 1.0.0.0, Mədəniyyət = neytral, PublicKeyToken=b0b19e85410990c4</Sahə>
<
RenderPattern Ad="DisplayPattern">
<
Switch>
<
Expr>
<
Sütun />
</
Expr>

<Hal Dəyər=""/>

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

<
Sütun SubColumnNumber="0" HTMLEncode="TRUE"/>

<HTML><![CDATA[</b></aşırım>]]></HTML>

</
Default>
</
Switch>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" və GAC'd toplaşmaq qarşı bu qədər oyunları.

Yer daxil bütün bu bit hərəkət sonra, server iisreset və bütün gözəl iş başlamaq lazımdır.

WSS: CAML sahəsində anlayışlar yaratmaq üçün Technique.

Əlavə kateqoriya: CAML

Burada is a great posting by a fellow named "craig" bir saytdan real canlı təriflər off əsaslanır sahəsində məzmun növləri üçün CAML təriflər tapmaq üçün bir texnika üzrə.

Onun poçt bütün deyir. Əlqərəz:

  1. Içerik növü yaratmaq.
  2. Siyahısı ilə şərik.
  3. SharePoint Designer ilə siyahıda açmaq.
  4. Export to a "personal web package".
  5. A. Kabin üçün Rename.
  6. Açıq-aşkar çıxarış.
  7. Content növü və əlaqədar CAML tap.

WSS: Xülasə faydalı xüsusiyyətləri / Element / etc imkan addımlar. VS IntelliSense 2005

Additional categories: Visual Studio 2005

To enable useful intellisense for Features, elements, etc in visual studio 2005:

  1. Access a WSS server.
  2. Navigate to "c:\program files\common files\microsoft shared\web server extensions\12\TEMPLATE\XML"
  3. Open another windows explorer pointing to: "C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas"
  4. Copy the following files from the WSS server to your VS 2005 schemas directory:
    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.

Görmək burada for more information on this subject and for instructions on how to automatically associate WSS intellisense with any XML file.

WSS imtahan 70-541, Microsoft Windows SharePoint Services 3.0 – Application Development

Mən bu səhər yuxarıda göstərilən test etdi və qəbul. Mən imtahan çətin və ədalətli hesab.

Web bu imtahan haqqında məlumat nisbi çatışmazlığı var. Mən nə emin değilim.

Mən açıqcası etdi imtahan haqqında heç bir ətraflı daxil deyil, lakin mən təhlükəsiz aşağıdakı deyə bilərəm:

  1. Bu linki etibar: http://www.microsoft.com/learning/exams/70-541.mspx.

    Bu imtahanı bilmək lazım siyahıları və onun, IMO, çox doğru.

  2. Bu keçid də tövsiyə Microsoft Windows SharePoint Services Inside 3.0 Ted Pattison tərəfindən & Daniel Larson. Bu kitab təxminən test müraciət edən bütün fənlər əhatə edir. Mən bu sadə imtahan hazırlayıcı kənarda özü və böyük hesab. Bu, böyük nümunələr verir və məni həqiqətən cəhd bir sıra yeni və maraqlı şeylər haqqında düşünən oldu. Kitab bir neçə bit keçmək istəyirsinizsə,, yalnız yuxarıdan keçid maddələri ilə kitab TOC cross-reference.
  3. Heç faktiki praktiki təcrübə beats. Zaman və maraq varsa,, sonra kitabda nümunələr və onlarla təcrübə ilə yanaşı edin. Siz asan imtahan vaxtı, habelə həqiqətən WSS tətbiq proqramlaşdırma öyrənmək lazımdır.

</son>Blog abunə!

MOSS / InfoPath Formaları Server (InfoPath 2007) açılan siyahıdan performance

Əlavə kateqoriya: InfoPath

Xülasə: Bir InfoPath 2007 bir MOSS server üçün səfərbər yaratmaq xüsusi bir MOSS siyahısına bağlı satıcılar bir açılan siyahısını verir. Satıcı seçilməsi sonra, qaydaları belə satış rep adı kimi mətn sahələrində bir neçə səhra dəyərlər təyin, ünvan, şəhər, dövlət, zip və telefon. Performans dəhşətli. Biz performans pis olur ki, görürsünüz (in a non-linear fashion) hər sahə üçün biz bu yolla yeniləmək. İ.E., Biz yalnız satış temsilcisi adını güncellemek əgər, bu alır [x] vaxt məbləği. Biz satış rep güncellerseniz, Address1, address2, şəhər, dövlət, zip, bu alır 10 dəfə artıq.

Həll: Bir web service yaz (örnek kod bilər burada) satıcı adına keçdi və geri satıcı ətraflı qaytarır ki,. Sonra, sahələrdə bu şəkildə təyin. Bu çox yavaş görünür baxmayaraq,, biz təyin zaman performans heç discernable fərq var idi 1 sahəsində qarşı 8 sahələri. Əlavə bonus kimi, users get a cool "contacting the server" Cylon Onlar xidmət nəticələri ibadət və istehlak forması üçün beklerken təsiri.

MOSS: Istisna baş. (HRESULT xüsusi durumu: 0x80020009 (DISP_E_EXCEPTION))

UPDATE: Biz bu problemin kökü səbəb müəyyən heç vaxt və yenidən Yüzey heç vaxt.

Biz inkişaf saytından birdən-birə həyata keçirilməsi zamanı qeyd, iki istifadəçilər site kolleksiya ulaşamıyorsanız. Bu hesabları əsas site authenticate edə bilərsiniz, lakin müəyyən bir site kolleksiya daxil olmaq üçün çalışırken, onlar yalnız boş ekran almaq. Nümayiş No səhvlər, yalnız ağ bir boş səhifə.

Biz site kolleksiya admin kimi daxil olun və bir site admin kimi bu istifadəçilərin bir əlavə etmək üçün cəhd edin və bu zaman, upon pressing "OK", bu mesajı almaq:

Istisna baş. (HRESULT xüsusi durumu: 0x80020009 (DISP_E_EXCEPTION))

Biz bu və təəssüf ki, tədqiq bəzi vaxt sərf, faydalı bir şey ilə gəlmədi. Tanı günlük bir mesaj var idi, lakin o, məhz bu məsələ ilə onlara əlaqədar çətin idi.

Sonda, Biz site toplanması silinməsi və yenidən yaradılmış və həll.

Mən gələcəkdə bu səbəb nə anlamaq edin, Bu güncelleme lazımdır.