ყოველთვიური არქივი: აგვისტო 2007

Craig სიას კარგად მუშაობდა ჩემთვის

მე განთავსებული განცხადებები გაყიდვის ჩემი მანქანა ბერგენის ქვეყანა, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.

თითქმის ძალიან კარგი უნდა იყოს ნამდვილი …

MOSS გაფართოებული ძიება დაკონფიგურირება — საქმეს არ საკითხის გაფართოებული ძიება XSLT

მე არ შეცვალოს გაფართოებული ძიება XSLT ძალიან ხშირად, ასე რომ, როგორც ჩანს, როგორიც მე ვარ ასვლა მცირე მთებში ყოველ ჯერზე.

ჩემი უახლესი გაკვეთილი არის ამ: საქმე მნიშვნელოვანია, როდესაც მითითება სვეტი. ჩემი გაფართოებული ძიება, მე სვეტების განისაზღვრება, როგორც ეს:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<
Columns>
<
სვეტი სახელი="GafTrainingInvoiceNumber" />
<
სვეტი სახელი="GafTrainingInvoiceLocation" />
<
სვეტი სახელი="WorkId"/>
<
სვეტი სახელი="რანგის"/>
<
სვეტი სახელი="სათაური"/>
<
სვეტი სახელი="ავტორი"/>
<
სვეტი სახელი="ზომა"/>
<
სვეტი სახელი="გზა"/>
<
სვეტი სახელი="აღწერა"/>
<
სვეტი სახელი="დაწერეთ"/>
<
სვეტი სახელი="SiteName"/>
<
სვეტი სახელი="CollapsingStatus"/>
<
სვეტი სახელი="HitHighlightedSummary"/>
<
სვეტი სახელი="HitHighlightedProperties"/>
<
სვეტი სახელი="Contentclass"/>
<
სვეტი სახელი="IsDocument"/>
<
სვეტი სახელი="PictureThumbnailURL"/>
</
Columns>
</
root>

XLST რომ აჩვენებს ფაქტურის ნომერი და ფაქტურის საიდან იყო:

<P>
Training Invoice Number: <XSL:ღირებულების შესახებ შერჩევა="GafTrainingInvoiceNumber"/>
<
br></br>
Training Invoice Location: <XSL:ღირებულების შესახებ შერჩევა="GafTrainingInvoiceLocation"/>
</
P>

თუმცა, აირჩიეთ გააჩნია მითითებას ქონება ყველა ქვედა შემთხვევაში, , როგორც in:

<P>
Training Invoice Number: <XSL:ღირებულების შესახებ შერჩევა="gaftraininginvoicenumber"/>
<
br></br>
Training Invoice Location: <XSL:ღირებულების შესახებ შერჩევა="gaftraininginvoicelocation"/>
</
P>


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

Moss: ფუნქციური მაგალითი - საბაჟო მონაცემთა გაცნობის

ბიზნეს სცენარი:

საწარმო მასშტაბით განხორციელებას MOSS წარმოების კომპანიას 30+ ადგილები და რამდენიმე ათეული კორპორატიული დეპარტამენტები.

ბიზნეს მიზანი:

მიუხედავად უამრავი ბიზნეს ჯგუფები (დეპარტამენტები, ადგილას, და ა.შ.), გარკვეული მონაცემები უნდა ინახებოდას გლობალურ დონეზე. მაგალითად, ავტორიტეტული სამაგისტრო სიაში ყველა ფიზიკური ადგილმდებარეობა კომპანია (e.g. საწარმოო ობიექტების, საწყობი ადგილას, გაყიდვების ოფისები) უნდა დარჩეს ცენტრალურ ადგილას.

ტექნიკური პრობლემა:

საწარმოს ტაქსონომიის განხორციელდა გამოყენებით მრავლობითი საიტი კოლექციების. ჩვენ არ მომეწონა, რომ შეიქმნას ავტორიტეტული ჩამონათვალი ფიზიკური ადგილებში საბაჟო WSS სია. მაშინ, როცა ჩვენ გვჭირდებოდა სვეტი ინფორმაციის ტიპი (ან სვეტი დაემატა სიას ან doc ბიბლიოთეკა) რომელიც შეიცავდა კორპორატიული ადგილას, we would create a column using the "lookup" თემები და წერტილი ამ სამაგისტრო სია.

სამწუხაროდ, lookup datatypes must access a source list "locally" რაც იმას ნიშნავს, რომ ჩვენი ავტორიტეტული სიაში ვერ საქმე საიტი კოლექციების.

ტექნიკური გადაწყვეტა:

განახორციელოს ახალი საბაჟო მონაცემთა ტიპის განხორციელებული საფუძველზე SPField და წარმოდგენილია როგორც DropDownList in UI რომლის ListItems populate ეხლა სამაგისტრო WSS სია.

ჩვენ შევქმენით ახალი საიტი კოლექციის მოუწოდა "http://localhost/EnterpriseData". არსებობს, we created a custom list named "Corporate Locations". This list just uses the standard "Title" სფეროში შეიცავს სიაში ფაქტობრივი კორპორატიული ადგილას.

ერთი შემდეგნაირად რამდენიმე დისკრეტული ნაბიჯები, რათა შეიქმნას საბაჟო მონაცემთა ტიპის WSS. ისინი:

  1. განსაზღვრავს კლასს, რომელიც მემკვიდრეობით ეხლა SPField (შეიძლება მემკვიდრეობის, სხვა სფეროებში საჭიროების შემთხვევაში).

აქ არის კოდი, რომელიც:

საჯარო კლასი XYZZYCorporateLocationField : SPFieldText
{
საჯარო XYZZYCorporateLocationField
(SPFieldCollection სფეროები, სიმებიანი typeName, სიმებიანი displayName)
: ბაზა(სფეროები, typeName, displayName) { }

საჯარო XYZZYCorporateLocationField
(SPFieldCollection სფეროები, სიმებიანი displayName)
: ბაზა(სფეროები, displayName) { }

საჯარო override BaseFieldControl FieldRenderingControl
{
მიიღეთ
{
BaseFieldControl control = ახალი XYZZYCorporateLocationFieldControl();
control.FieldName = ამ.შინაგან სახელი;
დაბრუნდნენ control;
} //მიიღეთ
} // fieldrenderingcontrol

საჯარო override სიმებიანი GetValidatedString(ობიექტი ღირებულება)
{
თუ (ამ.Required || value.ToString().შეადგენს(სიმებიანი.ცარიელი))
{
სახიფათოა ახალი SPFieldValidationException ("Department is not assigned.");
}
დაბრუნდნენ ბაზა.GetValidatedString(ღირებულება);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. განსაზღვრა კიდევ ერთი კლასი, რომელიც მემკვიდრეობით ბაზიდან სფეროში კონტროლი, , როგორც in:

საჯარო კლასი XYZZYCorporateLocationFieldControl : BaseFieldControl
{
დაცული DropDownList XYZZYCorporateLocationSelector;

დაცული override სიმებიანი DefaultTemplateName
{
მიიღეთ
{
დაბრუნდნენ "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

საჯარო override ობიექტი ფასი
{
მიიღეთ
{
EnsureChildControls();
დაბრუნდნენ ამ.XYZZYCorporateLocationSelector.SelectedValue;
} // მიიღეთ
მითითებული
{
EnsureChildControls();
ამ.XYZZYCorporateLocationSelector.SelectedValue = (სიმებიანი)ამ.ItemFieldValue;
} // მითითებული
} // override object Value

დაცული override ცნოს 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"];

foreach (Spit XYZZYCorporateLocation in currentList.Items)
{
თუ (XYZZYCorporateLocation["Title"] == ნულოვანი) გაგრძელდება;

სიმებიანი theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();

ამ.XYZZYCorporateLocationSelector.Items.Add
(ახალი ListItem(theTitle, theTitle));

} // foreach

} // 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. განახორციელოს კონტროლი template (.ascx) როგორც ნაჩვენებია:

<%@ კონტროლი ენა="C#" მემკვიდრეობით="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,მობილური = 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. და ბოლოს, ჩვენ ვქმნით ფაილში გადარჩენა შევიდა ..... 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

Here is a great posting by a fellow named "craig" on a technique for finding CAML definitions for field content types based off real live definitions from a site.

His posting says it all. In brief:

  1. შექმნა ინფორმაციის ტიპი.
  2. Associate it with a list.
  3. Open up the list with SharePoint Designer.
  4. Export to a "personal web package".
  5. Rename to a .cab.
  6. ამონაწერი მანიფესტს.
  7. მოძებნა თქვენი შინაარსის ტიპის და მასთან დაკავშირებული CAML.

WSS: რეზიუმე ნაბიჯები, რომელიც საშუალებას მისცემს სასარგებლო თვისებები / ელემენტები / და ა.შ.. Intellisense in წინააღმდეგ 2005

Additional categories: ვიზუალური სტუდია 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.

აგრეთვე აქ დამატებითი ინფორმაცია ამ საკითხზე და ინსტრუქციები, თუ როგორ უნდა ავტომატურად ასოცირდება WSS Intellisense ნებისმიერ ფაილში.

WSS გამოცდა 70-541, Microsoft Windows SharePoint Services 3.0 – განაცხადის განვითარების

მე და მიიღო ზემოაღნიშნული გამოცდა დღეს დილით. აღმოვაჩინე გამოცდა გაუჭირდება და სამართლიანი.

არსებობს ნათესავი dearth შესახებ ინფორმაციის ეს გამოცდა ინტერნეტში. მე არ ვარ დარწმუნებული, თუ რატომ.

მე აშკარად ვერ მიიღებენ ნებისმიერ დეტალურად გამოცდა მე, მაგრამ ვფიქრობ, შეგიძლიათ უსაფრთხოდ ითქვას შემდეგი:

  1. ენდობა ამ ბმულს: http://www.microsoft.com/learning/exams/70-541.mspx.

    ეს სიები, რა საჭიროა იცოდეთ გამოცდაზე და ეს, IMO, ძალიან ზუსტი.

  2. ბმული აგრეთვე რეკომენდაციას Inside Microsoft Windows SharePoint Services 3.0 by ტედ Pattison & დანიელ Larson. ეს წიგნი მოიცავს თითქმის ყველა სუბიექტს, რომ ტესტი მიმართავს. მივხვდი, რომ ეს დიდი და თავისთავად სცილდება უბრალო გამოცდა მოსამზადებელი. იგი იძლევა დიდი მაგალითები და მართლაც მიიღო მე ფიქრი რამდენიმე ახალი და საინტერესო რამ ცდილობენ. თუ გსურთ გამოტოვება რამდენიმე bits წიგნში, უბრალოდ გადაკვეთა მითითება წიგნის TOC ერთად ნივთებს რგოლი ზემოდან.
  3. არაფერი სცემს ფაქტობრივი პრაქტიკული გამოცდილება. თუ თქვენ გაქვთ დრო და ინტერესი, დაიცვას ერთად მაგალითები წიგნი და მერე ექსპერიმენტი მათ. თქვენ უფრო ადვილად დროს გამოცდა, ასევე ნამდვილად ისწავლოს WSS განაცხადის პროგრამირების.

</ბოლო>გამოწერა ჩემი დღიური!

Moss / InfoPath ფორმები სერვერი (InfoPath 2007) ჩამოსაშლელი სია შესრულება

დამატებითი გარეშე: InfoPath

რეზიუმე: InfoPath 2007 შექმნან შეიყვანეს MOSS სერვერზე უზრუნველყოფს ჩამოშლადი სია, მოვაჭრეებს უკავშირდება საბაჟო MOSS სია. საფუძველზე შერჩევის მოვაჭრე, წესები დაავალოს სფეროში ღირებულებების მუჭა ტექსტი სფეროებში გაყიდვების rep სახელი, მისამართი, ქალაქის, სახელმწიფო, zip და ტელეფონის. სპექტაკლი საშინელებაა. ჩვენ შეამჩნია, რომ შესრულების იღებს უარესი (in a non-linear fashion) თითოეული დამატებითი სფეროში ჩვენ განახლება ამ გზით. ანუ, თუ ჩვენ მხოლოდ განაახლებს გაყიდვების rep სახელი, სჭირდება [x] დროის. თუ ჩვენ განახლება გაყიდვების rep, address1, address2, ქალაქის, სახელმწიფო, zip, სჭირდება 10 ჯერ აღარ.

Solution: დაწერეთ ვებ სერვისი (ნიმუში კოდი შეიძლება ი აქ) რომ ჩაიარა სახელი გამყიდველი და ის დააბრუნებს უკან გამყიდველი ვრცლად. მაშინ, დაავალოს სფეროებში ამ გზით. მიუხედავად იმისა, რომ ეს ძალიან, როგორც ჩანს, ნელი, იყო შესამჩნევ განსხვავებას შესრულება, როდესაც ჩვენ დაავალა 1 საველე წინააღმდეგ 8 სფეროები. როგორც დამატებითი ბონუსი, users get a cool "contacting the server" Cylon ეფექტი, როდესაც ისინი დაელოდებიან ფორმა ახსენებდნენ და მოიხმარენ მომსახურება შედეგები.

Moss: გამონაკლისი მოხდა. (გამონაკლისი საწყისი HRESULT: 0x80020009 (DISP_E_EXCEPTION))

განახლების: ჩვენ არასდროს განისაზღვრება ძირეული მიზეზი ამ პრობლემის კი არასდროს ზედაპირზე ერთხელ.

ჩვენ შეამჩნია განხორციელებისას განვითარების საიტი, რომელიც მოულოდნელად, ორი წევრებს ვერ შედიხართ საიტზე კოლექციაში. იმ ანგარიშების ნახვა შეიძლება შესასვლელად საიტის მთავარი, მაგრამ, როდესაც ცდილობს წვდომის კონკრეტული საიტი კოლექციაში, ისინი უბრალოდ ცარიელი ეკრანის. არ შეცდომები ნაჩვენები, მხოლოდ თეთრი ცარიელი გვერდი.

ჩვენ დარეგისტრირდეთ, როგორც საიტი კოლექციის admin და ცდილობენ დავამატებთ ერთ იმ წევრებს, როგორც მაწანწალა და ამ დროს, upon pressing "OK", მივიღებთ ამ გაგზავნა:

გამონაკლისი მოხდა. (გამონაკლისი საწყისი HRESULT: 0x80020009 (DISP_E_EXCEPTION))

გავატარეთ გარკვეული დროის იკვლევს ამ და სამწუხაროდ, არ ამუშავება არაფერი სასარგებლო. იყო გარკვეული შეტყობინებები სადიაგნოსტიკო ჟურნალი, მაგრამ რთული იყო ზუსტად შეესაბამება მათ ამ საკითხის.

და ბოლოს, ჩვენ წაშლის საიტი შეგროვება და ხელახლა შექმნილი და რომ მოგვარდეს ეს.

თუ მე გაერკვნენ, თუ რა გამოიწვია ამ მომავალში, მე განაახლებს ჩანაწერი.