Monthly Archives: Օգոստոս 2007

Craig ցուցակում աշխատել լավ է ինձ համար

Ես տեղադրել եմ դասակարգվում գովազդ վաճառելու իմ մեքենան Bergen կոմսություն, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.

Գրեթե չափազանց լավ, որ ճշմարիտ է …

MOSS ընդլայնված որոնում Customization — Case չի հարցը Ընդլայնված որոնում XSLT

Ես չեմ փոփոխել Ընդլայնված որոնում XSLT շատ հաճախ, ուստի կարծես ես բարձրանում փոքր HILLS ամեն անգամ.

Իմ նորագույն դասը սա: Case կարեւոր է, երբ հիշատակում սյունակում. Իմ ընդլայնված որոնում, Ես սյունյակները սահմանել, քանի որ այս:

<արմատ xmlns:xsi="http :/://www.w3.org/2001/XMLSchema-instance">
<
Columns>
<
Սյունակ Անուն="GafTrainingInvoiceNumber" />
<
Սյունակ Անուն="GafTrainingInvoiceLocation" />
<
Սյունակ Անուն="WorkId"/>
<
Սյունակ Անուն="Դաս"/>
<
Սյունակ Անուն="Վերնագիր"/>
<
Սյունակ Անուն="Հեղինակ"/>
<
Սյունակ Անուն="Չափ"/>
<
Սյունակ Անուն="Ճանապարհ"/>
<
Սյունակ Անուն="Նկարագրություն"/>
<
Սյունակ Անուն="Գրել"/>
<
Սյունակ Անուն="SiteName"/>
<
Սյունակ Անուն="CollapsingStatus"/>
<
Սյունակ Անուն="HitHighlightedSummary"/>
<
Սյունակ Անուն="HitHighlightedProperties"/>
<
Սյունակ Անուն="Contentclass"/>
<
Սյունակ Անուն="IsDocument"/>
<
Սյունակ Անուն="PictureThumbnailURL"/>
</
Columns>
</
արմատ>

The XLST որը ցուցադրում հաշիվը համարը եւ հաշիվ - ապրանքագրերի գտնվելու վայրը եղել:

<Սայլակ>
Training Invoice Number: <xsl:արժեք է ընտրել="GafTrainingInvoiceNumber"/>
<
BR></BR>
Training Invoice Location: <xsl:արժեք է ընտրել="GafTrainingInvoiceLocation"/>
</
Սայլակ>

Սակայն, Ընտրել է հղում գույքը բոլոր ստորին դեպքը, ինչպես:

<Սայլակ>
Training Invoice Number: <xsl:արժեք է ընտրել="gaftraininginvoicenumber"/>
<
BR></BR>
Training Invoice Location: <xsl:արժեք է ընտրել="gaftraininginvoicelocation"/>
</
Սայլակ>


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

MOSS: Ֆունկցիոնալ Օրինակ - Custom Data Type

Բիզնես Սցենար:

Enterprise - լայն կիրառումը MOSS արտադրական ընկերության հետ 30+ կայքեր եւ մի քանի տասնյակ կորպորատիվ վարչություններ.

Բիզնես Նպատակ:

Չնայած բազմաթիվ բիզնես խմբերի (ԲԱԺԻՆՆԵՐ, տեղերը, եւ այլն:), որոշ տվյալները պետք է պահպանվեն մի գլոբալ մակարդակով. Օրինակ,, հեղինակավոր վարպետ ցանկը բոլոր ֆիզիկական տեղաբաշխման ընկերության (e.g. արտադրական միջոցներ, պահեստային տեղերը, վաճառքի գրասենյակները) պետք է պահպանվի նաեւ կենտրոնական վայրում.

Տեխնիկական Problem:

Ձեռնարկությունը taxonomy իրականացվել, օգտագործելով մի քանի կայքի հավաքածուներ. Մենք սիրում է ստեղծել հեղինակավոր ցանկը ֆիզիկական վայրերում մաքսային WSS ցուցակում. Ապա, երբ մենք պետք է ունենանք սյունը մի բովանդակության տեսակի (կամ սյունակ է, որը ցուցակում կամ doc գրադարան) որ պարունակում կորպորատիվ վայրերը, we would create a column using the "lookup" datatype եւ կետն այս վարպետության ցուցակում.

Ցավոք,, lookup datatypes must access a source list "locally" նշանակում է, որ մեր հեղինակավոր ցանկը կարող span Տեղում հավաքածու.

Տեխնիկական Solution:

Իրականացնել նոր գործարկողի տվյալների տեսակն իրականացվում հիման վրա SPField եւ ներկայացված է որպես DropDownList է UI, որի ListItems բնակեցնել այդ վարպետի WSS ցուցակում.

Մենք ստեղծել ենք նոր կայքը հավաքածու կոչված "http://localhost/EnterpriseData". Կան, we created a custom list named "Corporate Locations". This list just uses the standard "Title" դաշտը պարունակում ցուցակը փաստացի կորպորատիվ վայրերում.

One հետեւում է դիսկրետ քայլերի ստեղծել գործարկողի տվյալների մուտքագրել WSS. Նրանք:

  1. Սահմանում դաս, որը ժառանգում են SPField (կարելի ժառանգել է այլ ոլորտներում, եթե անհրաժեշտ է).

Ահա կոդը համար:

հասարակություն դաս XYZZYCorporateLocationField : SPFieldText
{
հասարակություն XYZZYCorporateLocationField
(SPFieldCollection fields, լարային typeName, լարային displayName)
: բազա(fields, typeName, displayName) { }

հասարակություն XYZZYCorporateLocationField
(SPFieldCollection fields, լարային displayName)
: բազա(fields, displayName) { }

հասարակություն ոտնատակ տալ BaseFieldControl FieldRenderingControl
{
ստանալ
{
BaseFieldControl control = նոր XYZZYCorporateLocationFieldControl();
control.FieldName = սա.Ներքին Անունը;
վերադարձ control;
} //ստանալ
} // fieldrenderingcontrol

հասարակություն ոտնատակ տալ լարային GetValidatedString(օբյեկտ արժեք)
{
եթե (սա.Required || value.ToString().Հավասար(Լար.Դատարկ))
{
նետում նոր SPFieldValidationException ("Department is not assigned.");
}
վերադարձ բազա.GetValidatedString(արժեք);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Սահմանել մեկ այլ խավի, որ ժառանգում են բազային դաշտային վերահսկողության, ինչպես:

հասարակություն դաս XYZZYCorporateLocationFieldControl : BaseFieldControl
{
պաշտպանված DropDownList XYZZYCorporateLocationSelector;

պաշտպանված ոտնատակ տալ լարային DefaultTemplateName
{
ստանալ
{
վերադարձ "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

հասարակություն ոտնատակ տալ օբյեկտ Արժեք
{
ստանալ
{
EnsureChildControls();
վերադարձ սա.XYZZYCorporateLocationSelector.SelectedValue;
} // ստանալ
սահմանել
{
EnsureChildControls();
սա.XYZZYCorporateLocationSelector.SelectedValue = (լարային)սա.ItemFieldValue;
} // սահմանել
} // override object Value

պաշտպանված ոտնատակ տալ անվավեր CreateChildControls()
{

եթե (սա.Field == զրո || սա.ControlMode == SPControlMode.Ցուցադրել)
վերադարձ;

բազա.CreateChildControls();

սա.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");

եթե (սա.XYZZYCorporateLocationSelector == զրո)
նետում նոր Բացառություն("ERROR: Cannot load .ASCX file!");

եթե (!սա.Page.IsPostBack)
{

օգտագործելով (SPSite site = նոր SPSite("Http :/://localhost / enterprisedata"))
{
օգտագործելով (SPWeb web = site.OpenWeb())
{

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

ԲՀԿ (Թքել XYZZYCorporateLocation մեջ currentList.Items)
{
եթե (XYZZYCorporateLocation["Title"] == զրո) շարունակել;

լարային theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();

սա.XYZZYCorporateLocationSelector.Items.Add
(նոր ListItem(theTitle, theTitle));

} // ԲՀԿ

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

} // if not a postback

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Վերը նշված կոդը հիմնականում իրականացնում է տրամաբանությունը եւ բնակեցնելու DropDownList հետ արժեքներով են WSS մաքսային ցուցակում գտնվում է http://localhost/enterprisedata and named "Corporate Departments".

Ես սահմանված երկու դասընթացներ է մեկ. Cs ֆայլ, կազմվում է այն եւ դրեց այն GAC (ուժեղ պահանջվող, Իհարկե).

  1. Իրականացնել Կառավարման ձեւանմուշ (.ascx) ինչպես ցուցադրված է:

<%@ Վերահսկել Լեզու="C#" Ժառանգում="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version = 12.0.0.0, մշակույթի = չեզոք,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%
@ Գրանցում Tagprefix="wssawc" Անվանատարածք="Microsoft.SharePoint.WebControls" Ժողով="Microsoft.SharePoint, Տարբերակ = 12.0.0.0, Մշակույթ = չեզոք, PublicKeyToken = 71e9bce111e9429c" %> <%@ Գրանցում Tagprefix="SharePoint" Անվանատարածք="Microsoft.SharePoint.WebControls" Ժողով="Microsoft.SharePoint, Տարբերակ = 12.0.0.0, Մշակույթ = չեզոք, PublicKeyToken = 71e9bce111e9429c" %>
<Sharepoint:Մատուցումը Կաղապար ID="XYZZYCorporateLocationFieldControl" runat="server">
<Կաղապար>
<իժ:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Կաղապար>
</
Sharepoint:Մատուցումը Կաղապար>

Վերը պահպանվում է գ:\ծրագրային ֆայլերը ընդհանուր ֆայլերը Microsoft համօգտագործել Վեբսերվերի ընդարձակման 12 controltemplates.

  1. Վերջապես, մենք ստեղծել XML ֆայլ է փրկել են ..... 12 XML գրացուցակը. Սա CAML է, որ սահմանում է մեր մաքսային տվյալների տեսակը եւ իմ օրինակ, կարծես սա:

<?XML Նամակ տարբերակ="1.0" կոդավորում="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
Դաշտ Անուն="TypeName">CorporateLocations</Դաշտ>
<
Դաշտ Անուն="ParentType">Տեքստ</Դաշտ>
<
Դաշտ Անուն="TypeDisplayName">Corporate Locations</Դաշտ>
<
Դաշտ Անուն="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Դաշտ>
<
Դաշտ Անուն="UserCreatable">TRUE</Դաշտ>
<
Դաշտ Անուն="ShowInListCreate">TRUE</Դաշտ>
<
Դաշտ Անուն="ShowInDocumentLibraryCreate">TRUE</Դաշտ>
<
Դաշտ Անուն="ShowInSurveyCreate">TRUE</Դաշտ>
<
Դաշտ Անուն="ShowInColumnTemplateCreate">TRUE</Դաշտ>
<
Դաշտ Անուն="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Տարբերակ = 1.0.0.0, Մշակույթ = չեզոք, PublicKeyToken=b0b19e85410990c4</Դաշտ>
<
RenderPattern Անուն="DisplayPattern">
<
Անջատիչ>
<
Expr>
<
Սյունակ />
</
Expr>

<Դեպք Արժեք=""/>

<Անհոգություն>
<
HTML>
<![CDATA[
<span style="color:Red"><բ>]]>
</
HTML>

<
Սյունակ SubcolumnNumber="0" HTMLEncode="TRUE"/>

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

</
Անհոգություն>
</
Անջատիչ>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
This XML file adds the custom data type to the WSS "library" եւ համապատասխանում այն ​​դեմ GAC'd հավաքների.

Հետո գնում այդ բոլոր bits իր տեղը, iisreset է սերվերի եւ այն պետք է բոլորս լավ կաշխատի.

WSS: Տեխնիկա ստեղծման CAML դաշտային սահմանումներ.

Լրացուցիչ աստիճան: CAML

Այստեղ is a great posting by a fellow named "craig" է տեխնիկան գտնելու համար CAML սահմանումները դաշտային բովանդակության տեսակների վրա off իրական կենդանի հասկացություններն մի կայքում.

Նրա համար ասում է, որ բոլոր. Հակիրճ:

  1. Ստեղծել բովանդակության տեսակը.
  2. Կապել այն ցուցակից.
  3. Բացել ցուցակը SharePoint Designer.
  4. Export to a "personal web package".
  5. Վերանվանել է. Քաբ.
  6. Բացել են դրսեւորվում.
  7. Գտիր քո բովանդակության տեսակ եւ նմանատիպ CAML.

WSS: Ամփոփում քայլեր, որպեսզի օգտակար հատկանիշներ / տարրերի / etc. Intellisense է VS 2005

Լրացուցիչ բաժիններ: Visual Studio 2005

Որպեսզի օգտակար intellisense համար Features, տարրեր, եւ այլն եւ Visual Studio 2005:

  1. Մուտք գործեք WSS սերվեր.
  2. Navigate to "c:\ծրագիրը ֆայլեր ընդհանուր ֆայլ Microsoft ընդհանուր Վեբսերվերի Ստուգման 12 template XML"
  3. Բացել են Windows Explorer-մատնացույց անելով: "C:\Ծրագրի Ֆայլեր Microsoft Visual Studio 8 XML Schemas"
  4. Պատճենեք հետեւյալ ֆայլերը են WSS սերվերի ձեր Vs 2005 schemas ցուցակում:
    1. Wss.xsd
    2. CamlQuery.xsd
    3. CamlView.xsd
    4. CoreDefintions.xsd
  5. Վերագործարկեք VS 2005
  6. Ավելացնել նոր XML ֆայլ ծրագրի.
  7. Սեղմեք այս մարմնի XML ֆայլի.
  8. Ի գույքի թրաշ, click on "Schemas" and pick "wss.xsd" սկսած ընտրությունների. (Դա անհրաժեշտ է ընտրել այլ xsd է, քանի որ նրանք են Ուղեկցող wss.xsd).

Intellisense այժմ հնարավորություն այդ XML փաստաթուղթը.

Տեսնել այստեղ Լրացուցիչ տեղեկությունների համար այս թեմային եւ հրահանգներ, թե ինչպես պետք է ավտոմատ կերպով կապել WSS intellisense ցանկացած XML ֆայլը.

WSS քննություն 70-541, Microsoft Windows Sharepoint Ծառայություններ 3.0 – Application Development

Ես վերցրել եւ հանձնել նշված քննությունը այս առավոտ. Ես գտա, որ քննություն է դժվար եւ արդար.

Կա մի պակասություն հարաբերական տեղեկատվության այս քննության ոստայնում. Վստահ չեմ, թե ինչու.

Ես ակնհայտորեն չի դառնում որեւէ մանրամասն քննության եմ մասնակցել, բայց ես կարծում եմ, կարող եք ապահով է ասել հետեւյալը.:

  1. Վստահեք այս հղումը: http://www.microsoft.com/learning/exams/70-541.mspx.

    Այն թվարկում, թե ինչ Ձեզ անհրաժեշտ է իմանալ, որպեսզի անցնեն քննությունը, եւ դա, IMO, շատ ճիշտ.

  2. Հղումը նաեւ խորհուրդ Inside Microsoft Windows SharePoint ծառայություններ 3.0 Ըստ Ted Pattison & Daniel Larson. Այս գիրքը ընդգրկում է գրեթե բոլոր առարկաները, որ թեստը հասցեները. Ես գտա, որ պետք է մեծ եւ ինքնին դուրս պարզ քննության նախապատրաստական ​​դպրոց. Այն ապահովում է մեծ օրինակներ եւ, իրոք, ստացել եմ մտածում, որ նոր ու հետաքրքիր բաներ ենք. Եթե ​​ցանկանում եք թողնել մի քանի bits գրքում, պարզապես խաչաձեւ հղում գրքի TOC հետ տարրերի հղումը վերէն.
  3. Ոչինչ ծեծում փաստացի ձեռքերը-on փորձը. Եթե ​​դուք ունեք ժամանակ եւ հետաքրքրությունը, հետեւեք հետ օրինակներից է գրքի եւ ապա փորձ է նրանց. Դուք ունեք ավելի հեշտ ժամանակ քննության, ինչպես նաեւ շատ սովորելու WSS դիմումի ծրագրավորման.

</վերջ>Անդամագրվել իմ բլոգում!

MOSS / InfoPath Forms Server (InfoPath 2007) բացվող ցուցակ կատարումը

Լրացուցիչ աստիճան: InfoPath

Ամփոփում: An InfoPath 2007 ձեւավորել տեղակայվել է MOSS սերվերի տրամադրում է բացվող ցուցակում վաճառողներին կապված են մաքսային MOSS ցուցակում. Հետո ընտրելով մատակարարին, կանոնները նշանակում դաշտային արժեքները մի բուռ տեքստ բնագավառներում, ինչպիսիք են վաճառքի rep անունը, հասցե, քաղաք, պետական, ZIP եւ հեռախոսը. Performance է սարսափելի. Մենք, որ կատարում է վատ (է ոչ գծային նորաձեւության) յուրաքանչյուր լրացուցիչ դաշտ, մենք է այս ճանապարհը. Այսինքն,, եթե մենք պարզապես թարմացնել վաճառքի սերտում անունը, այն տեւում է [x] գումարը ժամանակ. Եթե ​​մենք նորացնել վաճառքի Գրառումներ, address1, address2, քաղաք, պետական, աշխուժություն, այն տեւում է 10 անգամ ավելի երկար.

Լուծում: Գրել վեբ ծառայություն (Նմուշի համար կարելի է գտնել այստեղ) որը անցել անունով մի վաճառողի եւ վերադարձնում ետ վաճառողի մանրամասները. Ապա, հատկացնել ոլորտներում այս ձեւով. Թեեւ սա եւս կարծես դանդաղ, չկար discernable տարբերություն կատարման, երբ մենք նշանակվում 1 դաշտը versus 8 fields. Որպես ավելացված պարգեւավճար, users get a cool "contacting the server" Cylon ազդեցություն երբ նրանք սպասել ձեւով վկայակոչել եւ սպառում է ծառայողական արդյունքները.

MOSS: Բացառություն է տեղի ունեցել. (Բացառություն HRESULT: 0x80020009 (DISP_E_EXCEPTION))

ԹԱՐՄԱՑՆԵԼ: Մենք երբեք չենք որոշել արմատային պատճառը այս խնդրին եւ այն երբեք չի վերգետնյա կրկին.

Մենք նկատում ընթացքում իրականացման զարգացման կայքում, որը հանկարծակի, երկու օգտվողները չեն կարողանում մուտք գործել կայքը հավաքածու. Այդ հաշիվները կարող իսկությունը հիմնական կայքում, բայց երբ փորձում եք մուտք գործել որոշակի կայքը հավաքածու, նրանք պարզապես դատարկ էկրան. Ոչ սխալները դրսեւորվում, մի սպիտակ դատարկ էջ.

Մենք մուտք որպես կայքի հավաքածուի ադմինիստրատորի եւ փորձում է ավելացնել այն օգտվողների, որպես կայքի ադմինիստրատորի կողմից եւ այս անգամ, upon pressing "OK", ենք ստանում այս հաղորդագրության մասին:

Բացառություն է տեղի ունեցել. (Բացառություն HRESULT: 0x80020009 (DISP_E_EXCEPTION))

Մենք անցկացրել որոշ ժամանակ ուսումնասիրում է այս եւ, ցավոք, չի գալիս հետ, որեւէ բան օգտակար. Կային մի քանի հաղորդագրություններ դիագնոստիկ log, բայց դա դժվար թե առնչություն նրանց հետ այդ հարցով.

Վերջում, Մենք վերացման կայքը հավաքածուն եւ կրկին ստեղծվել է այն, որ լուծվում է այն.

Եթե ​​ես պարզել, թե ինչ պատճառով դա ապագայում, Ես նորացնել Այս գրառումը.