Månedligt arkiv: Maj 2011

PerformancePoint- og fejl 33494

En af mine klienter kaldes i dag når deres PerformancePoint-miljø (i SharePoint 2010) brød.  En af app serverne i farmen kører lav diskplads på.  Mens adressering,, klienten afinstalleret "for meget" og PP stuff alle stoppet funktion.  Forskellige webdele ville vise "der opstod en uventet fejl. Fejl 33494. Yderligere detaljer har været logget til din administrator":

image

Jeg kiggede op fejlen og fandt noget specifikke "Fejl 33494" men denne MSDN-foraene bogføring var nyttige: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Jeg fandt ADOMD.NET her som en komponent i SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Klik for at forstørre)

Jeg henter og installeret, og det fastsættes alt.

Jeg tror, dette er en smuk oddball slags fejl, Men hvis du ramt det, du mindst du har en indstilling.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Lists.asmx, GetListItems og mapper

Jeg gjorde nogle forskning for nogen i dag omkring tjenesten list.asmx web leveres som del af SharePoint 2010 (og tidligere).  Hun kunne få listeelementerne på rodmappen (herunder navnene på undermapper), men kunne ikke få elementer i undermapper.  Jeg gjorde nogle ser på internets, og det er et overraskende fælles spørgsmål.  Endnu, Jeg kunne ikke hentes et godt svar på den enkle spørgsmål, "Hvis jeg kender mappen, Hvordan får jeg elementerne i mappen?”  At være ærlig, Jeg forsøge ikke alt, hårdt, da jeg har villet figur denne ene ud på min egen i et stykke tid Smil.

At definere dette, Jeg har oprettet et websted med navnet "Blogging scenarier" og en brugerdefineret liste med navnet "Brugerdefineret liste med Sub mapper".  Jeg derefter oprettes mapper med navnet:

  • År 2005
  • År 2006
  • År 2007

Jeg har tilføjet et par elementer i mappen "År 2006".  Dette er, hvad det ligner:

image

Min ven ikke skriver C# kode, men snarere ved hjælp af Java, SOAP-konvolutten var så hvad hun virkelig nødvendig.  At få, Jeg skrev et bit af jQuery og derefter bruges spillemand for at få den faktiske http-samtale.

Her er den relevante jQuery (Jeg kopieres koden ned nedenfor, hvis du vil kopiere/indsætte):

image

De første nøgle er at medtage både en <queryOptions> og <QueryOptions> node.  Den anden nøgle er den <Mappe> noden er en URL-adresse, som klienten har adgang.

Der kan være andre måder at få dette, Men dette arbejdede godt for mig, når du bruger jQuery.

Her er SOAP-konvolutten for ovenstående:

<soapenv:Konvolut xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Organ>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <Listenavn>Brugerdefineret liste med Sub mapper</Listenavn>
      <viewFields>  
        <ViewFields>
          <FieldRef navn =' titel’ />
          <FieldRef navn ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappe>
http://demoserver1/Blogging Scenarier/lister/brugerdefineret liste med Sub mapper/år 2006</Mappe>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Organ>
</soapenv:Konvolut>

En masse eksempler og diskussion omkring dette ført mig til at tro at all I need var <QueryOptions> og angive et mappenavn.  For mig, Jeg har brug for begge ombryde det inde <queryOptions> samt angive en fuldt kvalificeret URL-adressen til den <Mappe> node.

Her er opsætningen jQuery AJAX:

$(dokument).klar til(funktion() {
       var soapEnv =
           "<soapenv:Konvolut xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Organ> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <Listenavn>Brugerdefineret liste med Sub mapper</Listenavn> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef navn =' titel’ /> \
                              <FieldRef navn ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappe>http://demoserver1/Blogging Scenarier/lister/brugerdefineret liste med Sub mapper/år 2006</Mappe> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Organ> \
           </soapenv:Konvolut>";

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Lists.asmx, GetList og "værdi kan ikke være null”

Jeg opdagede i dag, GetList() metode i lists.asmx webtjenesten har kaldt meget omhyggeligt, eller det er tilbøjelige til at smide en mystisk "Værdi kan ikke være null" undtagelse (og antages kan du få forbi den endnu værre generiske fejlmeddelelse, "Undtagelse af typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ der blev udløst.")  Specifikt, Jeg fandt, at du ikke kan give nogen form for præfiks på metoden GetList.  Den følgende jQuery snippet illustrerer punktet:

image

Hvis du gør det, Webtjenesten svarer med "Værdi kan ikke være null" som pr. dette spillemand-forudsat http-transcript:

<?XML version = "1.0" encoding = "utf-8"?>
  <SOAP:Konvolut
     xmlns:SOAP ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <SOAP:Organ>
    <SOAP:Fejl>
      <faultcode>SOAP:Server</faultcode>
      <faultString>
        Undtagelse af typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ der blev udløst.
      </faultString>
      <detaljer>
        <ErrorString xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Værdi må ikke være null.
        </ErrorString>
      </detaljer>
    </SOAP:Fejl>
  </SOAP:Organ>
</SOAP:Konvolut>

Selvfølgelig, du ville sandsynligvis tilføje denne "s0" præfiks på dine egne, men nogle værktøjer er tilbøjelige til at gøre det. (ligesom Eclipse).

Dette er så meget desto mere forvirrende / frustrerende fordi andre metoder tolerere præfikser.  For eksempel, den GetListCollection metode huske ikke, hvis det er blevet præfikset, selv med nonsens præfikser ligesom "xyzzy":

image

Dette "værdi ikke kan være null" forekommer temmelig fælles med lists.asmx så forhåbentlig dette vil hjælpe en anden person ud i fremtiden.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Uendelige indlejring <div> Mærker og jQuery

Dette synes at være sådan en oddball emne, Jeg er ikke sikker på, at det er virkelig værd at blogging om, men der er aldrig stoppet mig før, så her gå vi Smil

Jeg arbejder på et projekt, hvor jeg trækker nogle data fra en søgning, emballage det i en XML-besked og derefter at XML er i sidste ende omdannes til HTML via XSLT.  Der er en masse af jQuery involveret, en smule som implementerer nogle Tabber funktionalitet.  Når du klikker på en fane (Virkelig, en <div>), jQuery påberåber sig .hide() og .show() på forskellige divs (den første side belastning henter alt indholdet, så der er ingen postbacks i dette tilfælde).

En flok af timer siden, fanen skifte logik begyndte at opføre sig ustabilt og det ville ikke vise en af mine faner.  Jeg i sidste ende sporede det ned til faktum, at internet explorer (mindst) troede, at den <div> Tags indlejret langt, langt dybere end beregnet.Udvikler værktøj vil vise:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— Endelig viser det var lukket helt ned her!

Så, Hvis jeg gjorde en $("#Tab1Content").Skjul(), Jeg ville også skjule Fane2, og jeg kunne aldrig vise Fane2 hvis jeg ikke også vise Fane1.  Jeg har kopieret og indsat koden i visual studio og det viste alle div's foring op pænt, ligesom de skulle gøre, ser ud som dette:

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

Jeg slog mit hoved mod væggen for et stykke tid og bemærket, at i den faktiske HTML kode genererer en masse tomme <div> Tags, ligesom:

<kroppen>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</kroppen>

(Ovenstående er waaaaaaaaaaaay forsimplede.  Tom div tags er helt gyldigt. Nogle af mine <div> Tags var fuld af indhold, men mange flere blev ikke.  Jeg kom til erkendelsen at min <XSL:for hver> direktiverne udsender kort form div tags når xsl:for hver gjorde ikke ' finde data.  Jeg tvunget en HTML-kommentar til output, som vist:

image

 

Efter at jeg gjorde det, alle div foret pænt og min fane skifte begyndte at arbejde.

Som altid, Jeg håber dette hjælper en person i en knivspids.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Quick Fix: "Indholdstype navnet '$ ressourcer:ReportServerResources … må ikke indeholde … specialtegn”

Jeg har udgifter tid rengøring op et SharePoint 2010 websted og et af oprydning spørgsmålene vedrører en beskadiget / forkert installeret SQL Server betænkning Services problem.  Spørgsmålet opstod, da en af mine kolleger har forsøgt at gemme et websted som en skabelon og derefter oprette opretter et nyt websted baseret på denne skabelon.  Gem drift arbejdede fint, Men da hun forsøgte at oprette det nye websted, SharePoint vises følgende fejlmeddelelse:

Fejl

Navnet på indholdstypen '$ ressourcer:ReportServerResources,DataSourceContentTypeName;' må ikke indeholde: \ / : * ? “ # % < > { } | ~ & , to på hinanden følgende perioder (..), eller specialtegn såsom en fane.

Her er en skærm fælles landbrugspolitik:

 

image

Jeg havde et kig på de indholdstyper på webstedet og fundet dette:

image

Disse indholdstyper er klart usund.

Problemet lader til at komme en masse på Internets og der synes ikke at være en enkelt konsensus om, hvordan at løse det.  Jeg fandt en praktisk tabel som afbildet navnene i dårlig indholdstype til god indholdstype navne her: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Jeg opdateret manuelt dem thusly:

image

(BrightStarr i navnet er naturligvis valgfri, men det kan ikke skade Smil )

Dette tilladt mig at oprette en ny skabelon og bryde ikke noget på de andre websteder, herunder nogle PerformancePoint Server stuff, en helt anden gruppe mennesker arbejdede på.  Jeg kunne derefter oprette et nyt websted på skabelonen.  Succes!

Jeg er ikke sikker på, at dette er en 100% løsning, men det fik mig og alle involverede forbi denne irriterende fejl.  Hvis jeg finder noget nyt, Jeg vil bogføre en opdatering.  Min nervøsitet skyldes, at disse navne ikke bør være forkert i første omgang og ved fastsættelse af det viste navn, Jeg ikke rører det interne navn. 

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Én årsag til "opretteren af fejlen ikke angav en årsag.”

Jeg har gjort en masse arbejde med SharePoint søgning det seneste og specifikt klassen KeywordQuery, egenskaber og metoder.

Hvis du vil resultatsættet til returnere resultater ud over de sædvanlige mistænkte (Se her), Du føjer det til samlingen SelectedProperties, som i:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mange tak og en spids af hatten til Corey Roth og denne enormt nyttigt blog-indlæg (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

I mit tilfælde, "xyzzy" er ikke ligefrem en administreret egenskab.  Når jeg tilføjet det til SelectedProperties alligevel, SharePoint kastede en af mine yndlings nogensinde runtime undtagelser:

"Skaberen af fejlen angav ikke en årsag."

Jeg kan specielt godt lide kapital "R" i grunden.  Dette lyder for mig som .NET svarende til"Jeg har ingen munden, og jeg må skrige.”

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Nyttigt opslagsværk: Standard resultater fra KeywordQuery søgning

Når du aktiverer Execute() metode på en KeywordQuery, Du kan oprette en ResultTable baseret på ResultType.RelevantResults.  Dette kodestykke illustrerer, hvad jeg mener:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Den resulterende tabel vil have følgende kolonner af oplysninger: 

Arbejds-id'et
Rang
Titel
Forfatter
Størrelse
Sti
Beskrivelse
Skrive
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Jeg afledte denne liste fra et SharePoint 2010 miljø, Enterprise edition.  Forhåbentlig vil det være praktisk at en person i fremtiden.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Én grund til: "Mislykkedes at udpakke filen cab i løsningen”

Mens du arbejder på en visual studio webdel projekt i dag, Jeg gjorde en mindre re-org af nogle af filerne til bringes i mappen _layouts som led i implementeringsprocessen. Specifikt, Jeg omdøbt en .js fil fra "TypeAhead.js" til "TypeAhead(gamle).js"  Jeg planlægger at fjerne det så snart dens efterfølger "TypeAhead.js" godtgør korrekte.  Det lignede dette:

image

Dette umiddelbart forårsagede et problem med visual studio, da jeg prøvede at implementere projektet:

Der opstod fejl i installationen trin 'Tilføje løsning': Mislykkedes at udpakke filen cab i løsningen.

Det viser sig, at du ikke bør sætte en parentes i filnavne.  Jeg fjernet den parens og som løst problemet.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin