ყოველთვიური არქივი: მაისი 2011

PerformancePoint და შეცდომა 33494

ერთი ჩემი კლიენტებს მოუწოდა დღეს, როდესაც მათი PerformancePoint გარემოს (ამ SharePoint 2010) ჩაშალეს.  ერთი ოთახი სერვერებზე ფერმა გაშვებული დაბალია დისკზე.  გამოსვლისას, რომ, კლიენტს წაშლა "ძალიან ბევრი" და PP პერსონალის ყველა შეწყვიტა ფუნქციონირება.  სხვადასხვა ვებგვერდი ნაწილების აჩვენებს "იარსებებს მოულოდნელი შეცდომა. შეცდომა 33494. დამატებითი დეტალები გახდა ხართ ადმინისტრატორისადმი ":

image

მე ვუყურებ up შეცდომა და ჩამიტარეს სპეციფიკური "შეცდომა 33494" მაგრამ ეს MSDN ფორუმებში განთავსებას იყო გამოსადეგი: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

აღმოვაჩინე ADOMD.NET აქ შემადგენელ SQL Server 2008 მხატვრული პაკეტი: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(მთავარზე)

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

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

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

Lists.asmx, GetListItems და დასტების

მე აკეთებდა ზოგიერთი კვლევის ვინმე დღეს დაახლოებით list.asmx ვებ სერვისი, როგორც ნაწილი SharePoint 2010 (და უფრო ადრე).  ის იყო შეუძლია მიიღოს სია ნივთები ძირეული საქაღალდე (მათ შორის სახელების საქვეუწყებო ფოლდერები), მაგრამ ვერ მოახერხა ნივთები ქვეპუნქტით საქაღალდეები.  მე რაღაც ეძებს გარშემო internets და ეს გასაკვირი საერთო კითხვაზე.  თუმცა, მე ვერ კარგი პასუხი მარტივი კითხვა, "თუ ვიცი, ფოლდერში, როგორ მივიღებ ნივთები ფოლდერი?"  მართალი გითხრათ, მე არ ცდილობენ ყველა რომ მძიმე წლიდან მე მინდოდა ტექსტური ამ ერთი ჩემს ხნით Smile.

იმისათვის ეს ყველაფერი, მე შეიქმნა საიტი სახელწოდებით "Blogging სცენარი" და საბაჟო სიაში დასახელებული "მორგებული სია Sub ტიპი".  მე მაშინ შექმნილი საქაღალდეები დაასახელა:

  • წელი 2005
  • წელი 2006
  • წელი 2007

მე დასძინა რამდენიმე საკითხი უნდა დირექტორია "2006 წელი".  ეს არის რას ჰგავს:

image

ჩემი მეგობარი არ არის წერა C # კოდი არამედ გამოყენებით ჯავის, ასე საპონი კონვერტში იყო ის, რაც მან ნამდვილად საჭიროა.  იმისათვის რომ, რომ, დავწერე ცოტა jQuery და შემდეგ გამოიყენება fiddler მიიღოს ფაქტობრივი HTTP საუბარი.

აი შესაბამისი jQuery (მე გადაწერა კოდი ქვემოთ ქვემოთ, თუ გინდათ ასლი / პასტა):

image

ისინი უპირველეს უნდა შეიცავდეს ორივე <queryOptions> და <QueryOptions> კვანძის.  მეორე გასაღები იმაში მდგომარეობს, რომ <Folder> კვანძის არის URL, კლიენტს ხელი მიუწვდება.

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

აქ არის საპონი კონვერტში ზემოთ:

<soapenv:კონვერტი xmlns:soapenv =’http://schemas.xmlsoap.org / საპნის / კონვერტში /’>                
  <soapenv:Body>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / საპნის /’>
      <ფოთლოვანი>საბაჟო სიაში Sub საქაღალდეები</ფოთლოვანი>
      <viewFields>  
        <ViewFields>
          <FieldRef სახელი = 'სათაური’ />
          <FieldRef სახელი = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging სცენარი / სიებში / საბაჟო სიაში Sub საქაღალდეები / 2006 წელი</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Body>
</soapenv:კონვერტი>

უამრავი მაგალითი და დისკუსია გარშემო გამიყვანა, რომ ყველა მე უნდა იყო <QueryOptions> და დააკონკრეტა საქაღალდე სახელი.  ჩემთვის, მე უნდა ორივე გადატანა შიგნით <queryOptions> ისევე როგორც დააკონკრეტა მთლიანად კვალიფიციური URL for <Folder> კვანძის.

აი jQuery AJAX კონფიგურაცია:

$(დოკუმენტი).მზად(ფუნქცია() {
       იყო soapEnv =
           "<soapenv:კონვერტი xmlns:soapenv =’http://schemas.xmlsoap.org / საპნის / კონვერტში /’> \
               <soapenv:Body> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / საპნის /’> \
                       <ფოთლოვანი>საბაჟო სიაში Sub საქაღალდეები</ფოთლოვანი> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef სახელი = 'სათაური’ /> \
                              <FieldRef სახელი = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging სცენარი / სიებში / საბაჟო სიაში Sub საქაღალდეები / 2006 წელი</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Body> \
           </soapenv:კონვერტი>";

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

SPD სიმბოლო მოდელის, რჩევები და ხრიკები

I gave my presentation today at SharePoint Fest in Denver. Here’s the PowerPoint presentation itself: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

Lists.asmx, GetList და "მნიშვნელობა არ შეიძლება იყოს null”

აღმოვაჩინე, რომ GetList() მეთოდი lists.asmx ვებ სერვისი უნდა ეწოდოს ძალიან ფრთხილად ან ეს მიდრეკილება იმისათვის, რომ ფარული "ღირებულების არ შეიძლება იყოს null" გამონაკლისი (და ეს ვთქვათ, თქვენ შეგიძლიათ მიიღოთ წარსული უარესი generic შეცდომა, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ ესროლეს ".)  კერძოდ, მივხვდი, რომ ვერ უზრუნველყოფს რაიმე სახის პრეფიქსი on GetList მეთოდით.  შემდეგ jQuery snippet ასახავს წერტილი:

image

თუ თქვენ, რომ, ვებ სერვისი ეხმაურება და "ღირებულების არ შეიძლება იყოს null" როგორც პოსტი ამ fiddler-უზრუნველყოფილი HTTP სტენოგრამა:

<?xml version="1.0" encoding="utf-8"?>
  <საპნის:კონვერტი
     xmlns:საპნის ="
http://schemas.xmlsoap.org / საპნის / კონვერტში /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <საპნის:Body>
    <საპნის:ბრალია>
      <faultcode>საპნის:სერვერი</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ ესროლეს.
      </faultstring>
      <დეტალურად>
        <errorstring xmlns ="
http://schemas.microsoft.com / SharePoint / საპნის /">
ღირებულება არ შეიძლება იყოს null.
        </errorstring>
      </დეტალურად>
    </საპნის:ბრალია>
  </საპნის:Body>
</საპნის:კონვერტი>

რა თქმა უნდა, თქვენ ალბათ არ დავამატებთ, რომ "s0" პრეფიქსი საკუთარ, მაგრამ ზოგიერთი ინსტრუმენტი არის მიდრეკილება რომ ამის გაკეთება (ისევე როგორც Eclipse).

ეს მით უფრო გაუგებარია / სამწუხარო იმიტომ, რომ სხვა მეთოდები მოითმენს პრეფიქსი.  მაგალითად, the GetListCollection მეთოდი არ იბადება, თუ მას უკვე prefixed, თუნდაც სისულელე ინდექსები როგორიცაა "xyzzy":

image

ეს "ღირებულება არ შეიძლება იყოს null", როგორც ჩანს საკმაოდ საერთო lists.asmx ისე იმედია ეს ხელს შეუწყობს ვინმე out მომავალში.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

უსასრულოდ Nesting <div> Tags და jQuery

ეს ჩანს, ასეთი oddball თემას, მე არ ვარ დარწმუნებული, რომ ეს ნამდვილად ღირს ბლოგინგის შესახებ, მაგრამ ეს არ შეუწყვეტია მე წინაშე, ასე რომ აქ ჩვენ Smile

მე შემუშავების პროექტზე, სადაც მე უბიძგებენ გარკვეული მონაცემების ძებნის, შეფუთვის იგი დაყოფილია XML გაგზავნა და შემდეგ რომ XML საბოლოოდ გადაკეთდა HTML მეშვეობით XSLT.  აქ არის ბევრი jQuery ჩართული, ერთი ცოტა რომელიც ახორციელებს რამდენიმე tabbing ფუნქცია.  როდესაც თქვენ დააჭირეთ tab (ნამდვილად, a <div>), jQuery აღვიძებს. დამალვა() და. შოუ() სხვადასხვა divs (საწყის გვერდზე დატვირთვის იწერს ყველა შინაარსი ასე რომ არ არსებობს postbacks ამ შემთხვევაში).

რამოდენიმე საათის წინ, tab გადართვის ლოგიკა დაიწყო მოიქცევა erratically და ეს არ აჩვენებს ერთი ჩემი ჩანართი.  მე საბოლოოდ დააფიქსირა, მას იმ ფაქტს, რომ ინტერნეტ explorer (სულ მცირე) ეგონა, რომ <div> tags წყობილი შორს, რამდენადაც უფრო ღრმა, ვიდრე intended.The დეველოპერი პანელი იმას აჩვენებენ:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-საბოლოოდ აჩვენებს დაიხურა ყველა გზა ქვემოთ აქ!

ასე რომ,, თუ წავიდოდი $("# Tab1Content").დამალვა(), მინდა ასევე მალავს Tab2 და ვერც კი ნახოთ Tab2 თუ არ ასევე აჩვენებს Tab1.  მე გადაწერა და გაკრული კოდი დაყოფილია ვიზუალური სტუდია და ეს აჩვენა ყველა div-ს უგულებელყოფა up ლამაზად, ისევე, როგორც ისინი უნდა აკეთებს, ეძებს როგორც ამ:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

მე სცემეს ჩემი უფროსი წინააღმდეგ კედელზე ხნით და შენიშნა, რომ ფაქტობრივი HTML კოდი იყო მომტანი ბევრი ცარიელი <div> tags, მოსწონს:

<სხეულის>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</სხეულის>

(აღნიშნული waaaaaaaaaaaay oversimplified.  ცარიელი div tags აბსოლუტურად ძალაშია. ზოგიერთი ჩემი <div> tags იყო სავსე შინაარსი, მაგრამ კიდევ ბევრი რამ არ იყო.  ჩამოვედი რეალიზაციის, რომ ჩემი <XSL:for-თითოეული> დირექტივა ასხივებენ მოკლე ფორმა div tags როდესაც XSL:for-თითოეული არ "აღმოაჩინა მონაცემები.  მე იძულებული HTML კომენტარის შევიდა გამომავალი, როგორც ნაჩვენებია:

image

 

მას შემდეგ, რაც გავაკეთე, რომ, ყველა div ის გაფორმებულია ლამაზად და ჩემი tab ჩართვის მუშაობა დაიწყო.

როგორც ყოველთვის, ვიმედოვნებ, რომ ეს ეხმარება ვინმე pinch.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

გადავწყვიტოთ: "ინფორმაციის ტიპი სახელი '$ რესურსების:ReportServerResources … არ უნდა შეიცავდეს … სპეციალური სიმბოლოების”

მე ხარჯავს გარკვეული დროის გაწმენდის SharePoint 2010 საიტი და ერთი წმენდა საკითხები ეხება კორუფციულ / არასწორად დამონტაჟებული SQL Server Report მომსახურება საკითხი.  საკითხი გაჩნდა, როდესაც ერთი ჩემი კოლეგების შეეცადა გადარჩენა საიტზე როგორც template და შემდეგ შევქმნათ შექმნა ახალი საიტი დაყრდნობით თარგი.  Save ოპერაცია მუშაობდა ჯარიმა, მაგრამ როდესაც იგი ცდილობდა, რომ შეიქმნას ახალი საიტი, SharePoint ნაჩვენები შემდეგ შეცდომა:

შეცდომა

შინაარსი ტიპის სახელი '$ რესურსების:ReportServerResources,DataSourceContentTypeName;"არ შეიძლება შეიცავდეს: \ / : * ? " # % < > { } | ~ & , ზედიზედ პერიოდები (..), ან სპეციალური სიმბოლოები, როგორიცაა tab.

აქ ეკრანზე ქუდი:

 

image

მე მქონდა შევხედოთ შინაარსი ტიპის საიტი და ეს:

image

იმ შინაარსის სახის აშკარად არაჯანსაღი.

ეს საკითხი როგორც ჩანს ამუშავება ბევრი Internets და იქ არ ჩანს, ერთ კონსენსუსი როგორ უნდა გადაწყდეს იგი.  მივხვდი, მოსახერხებელი მაგიდასთან რომ mapped ცუდი შინაარსის ტიპის სახელები კარგი შინაარსის ტიპის სახელები აქ: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  მე ხელით განახლება მათ thusly:

image

(BrightStarr სახელზე აშკარად სურვილისამებრ, მაგრამ მას არ შეუძლია ზიანი მიაყენა Smile )

ეს საშუალება მომცა შექმნა ახალი შაბლონი და არ დაარღვიოს არაფერი სხვა საიტები, მათ შორის PerformancePoint Server პერსონალი, რომ სრულიად განსხვავებული ადამიანების ჯგუფს მუშაობდნენ.  მე მაშინ შეუძლია შექმნას ახალი საიტი თარგი.  წარმატება!

არ ვარ დარწმუნებული, რომ ეს არის 100% გადაწყვეტა, მაგრამ მას ჩემთვის და ყველას ჩართული წარსულში შემაშფოთებელი შეცდომა.  თუ მე ახალი არაფერი, მე პოსტი განახლება.  ჩემი ნერვული იყვნენ იმისა, რომ ეს სახელები არ უნდა იყოს არასწორი პირველი ადგილით და აფიქსირებს ჩვენება სახელი, მე არ ეხება შიდა სახელი. 

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ერთი მიზეზი, "შემოქმედი ამ მიზეზით არ დააკონკრეტა მიზეზი.”

მე აკეთებდა ბევრი მუშაობა SharePoint ძიება ბოლო დროს და კონკრეტულად KeywordQuery კლასი, თვისებები და მეთოდები.

თუ გსურთ შედეგი ნაკრები დაბრუნების შედეგების ზემოთ და მის ფარგლებს გარეთ ეჭვმიტანილები (აქ), თქვენ დაამატოთ ეს SelectedProperties კრებული, , როგორც in:

myKeywordQuery.SelectProperties.Add("xyzzy");

დიდი მადლობა და წვერი ქუდი კორი Roth და ამ დიდად გამოსადეგი დღიურში (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

ჩემს შემთხვევაში, "Xyzzy" არ არის რეალურად მოახერხა ქონება.  როცა დასძინა, რომ ეს SelectedProperties მაინც, SharePoint ესროლა ერთი ჩემი საყვარელი ოდესმე runtime გამონაკლისი:

"შემოქმედი ამ ბრალი არ დააკონკრეტა მიზეზი."

განსაკუთრებით მინდა კაპიტალის "რ" მიზეზი.  ეს ჟღერს ჩემთვის მოსწონს. NET ეკვივალენტს "მე არ მაქვს პირში, და უნდა ყვირილი."

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

გართობის Reference: Default შედეგები KeywordQuery ძებნა

როდესაც თქვენ იძახებთ სიკვდილი() მეთოდის KeywordQuery, შეგიძლიათ შექმნათ ResultTable საფუძველზე ResultType.RelevantResults.  ეს კოდი snippet ასახავს რას ვგულისხმობ:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

შედეგად მაგიდაზე ექნება შემდეგი გრაფა ინფორმაცია: 

WorkId
რანგის
სათაური
ავტორი
ზომა
გზა
აღწერა
დაწერეთ
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

მე მიღებული ამ სიის SharePoint 2010 გარემოს, საწარმოს გამოცემა.  იმედია ეს იქნება მოსახერხებელი ვინმე მომავალში.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ერთი მიზეზი: "ვერ განხორციელდა კაბინა ფაილი გამოსავალი”

მუშაობისას ვიზუალური სტუდიის ვებ ნაწილი პროექტი დღეს, მე არასრულწლოვანი ხელახალი ორგ ზოგიერთი ფაილი ამოქმედებული _layouts საქაღალდის ნაწილი განლაგების პროცესი. კერძოდ, I ეწოდა. Js ფაილი "TypeAhead.js", რათა "TypeAhead(ძველი).სს "  ვაპირებ ამოიღონ მას როგორც კი მისი მემკვიდრე "TypeAhead.js" კიდევ ერთხელ ადასტურებს, სწორი.  ისე ჩანდა, რომ ეს:

image

ეს მაშინვე გამოიწვია პრობლემა ვიზუალური სტუდიაში, როდესაც მე შევეცადე განათავსოს პროექტის:

Error occurred in deployment step ‘Add Solution’: ვერ განხორციელდა კაბინა ფაილი გადაწყვეტა.

გამოდის, რომ თქვენ არ უნდა დააყენოს ფრჩხილებში ფაილის სახელები.  მე ამოღებულ parens და რომ გადაჭრა პრობლემა.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin