maandelikse Argiewe: Mei 2011

PerformancePoint en Fout 33494

Een van my kliënte het vandag gebel toe hul PerformancePoint omgewing (in SharePoint 2010) gebreek het.  Een van die app bedieners in die plaas loop laag op skyfspasie.  Terwyl die aanspreek van daardie, die kliënt verwyder "te veel" en die PP die stuff alle gestop funksionering.  Verskeie web dele sou wys "'n Onverwagse fout het voorgekom. Fout 33494. Verdere besonderhede is aangemeld vir jou administrateur ":

image

Ek kyk op die fout en het niks vind nie spesifiek "Fout 33.494", maar hierdie MSDN forums gepos was behulpsaam: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Ek het gevind ADOMD.NET hier as 'n komponent in die SQL Server 2008 Funksie Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(kliek om te vergroot)

Aflaai en geïnstalleer word dat dit vasgestel alles.

Ek dink dit is 'n mooi oddball soort van fout, Maar as jy dit getref het, jy ten minste jy het 'n opsie.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetListItems en dopgehou

Ek was 'n bietjie navorsing te doen vir iemand vandag rondom die list.asmx-web-diens verskaf as deel van SharePoint 2010 (en vroeër).  Sy was in staat om die lys items te kry om by die wortel gids (insluitend die name van die sub-gidse), maar kon dit nie kry items in die sub-gidse.  Ek het 'n paar kyk rond op die Inter en dit is 'n verbasend algemene vraag.  Tog, Ek kon nie 'n goeie antwoord op die eenvoudige vraag, "As ek weet die gids, Hoe kry ek die items in die gids?"  Om eerlik te wees, Ek het nie probeer om al die harde omdat ek wou hierdie een op my eie vir 'n rukkie om uit te vind Smile.

Om dit te kan opstel, Ek het 'n webwerf met die naam "Blogging scenario's" en 'n persoonlike lys met die naam "Custom Lys met sub dopgehou".  Ek het toe 'dopgehou:

  • Jaar 2005
  • Jaar 2006
  • Jaar 2007

Ek het ook 'n paar items tot die gids "Jaar 2006".  Dit is hoe dit lyk:

image

My vriend is nie 'n C # kode te skryf, maar eerder met behulp van Java, sodat die seep koevert was wat sy werklik nodig is.  Om dit te kry, Ek het 'n bietjie van jQuery en dan gebruik Fiddler die werklike HTTP gesprek te kry.

Hier is die betrokke jQuery (Ek kopieer die kode hieronder neer as jy wil kopieer / plak):

image

Hulle eerste sleutel is om in te sluit beide 'n <queryOptions> en <QueryOptions> knoop.  Die tweede sleutel is dat die <Folder> node is 'n URL wat die kliënt het toegang.

Daar mag dalk ander maniere om dit te kry, maar dit het goed gewerk vir my as die gebruik van jQuery.

Hier is die seep koevert vir die bogenoemde:

<soapenv:Koevert xmlns:soapenv =’http://schemas.xmlsoap.org / seep / koevert /’>                
  <soapenv:Liggaam>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / seep /’>
      <list name>Custom Lys met Sub dopgehou</list name>
      <viewFields>  
        <ViewFields>
          <FieldRef name = "Titel’ />
          <FieldRef Naam = "EncodedAbsUrl-’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Scenarios / lyste / Custom Lys met sub dopgehou / Jaar 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Liggaam>
</soapenv:Envelope>

Daar is baie voorbeelde en bespreking rondom hierdie het my gelei om te glo dat alles wat ek nodig het, was <QueryOptions> en 'n gids spesifiseer.  Vir my, Ek moet aan beide wrap dit binne <queryOptions> sowel as 'n ten volle gekwalifiseerde URL vir die spesifiseer <Folder> node.

Hier is die jQuery AJAX setup:

$(dokument).gereed(funksie() {
       soapEnv =
           "<soapenv:Koevert xmlns:soapenv =’http://schemas.xmlsoap.org / seep / koevert /’> \
               <soapenv:Liggaam> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / seep /’> \
                       <list name>Custom Lys met Sub dopgehou</list name> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef name = "Titel’ /> \
                              <FieldRef Naam = "EncodedAbsUrl-’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Scenarios / lyste / Custom Lys met sub dopgehou / Jaar 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Liggaam> \
           </soapenv:Envelope>";

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList en "Waarde kan nie nul wees”

Ek ontdek vandag dat die GetList() metode in lists.asmx Web diens het baie versigtig genoem word, of is dit geneig om 'n geheimsinnige "Waarde te gooi kan nie nul" uitsondering (en dit is die veronderstelling wat jy kan kry verby die nog erger algemene fout boodskap, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ gegooi is. ")  Spesifiek, Ek het gevind dat jy nie kan enige soort van voorvoegsel op die GetList metode.  Die volgende jQuery uit illustreer die punt:

image

As jy dit doen, die web diens reageer met "Waarde kan nie null" soos vervat in hierdie Fiddler-met dien verstande HTTP transkripsie:

<?die xml weergawe = "1,0" encoding = utf-8 "?>
  <seep:Envelope
     xmlns:seep ="
http://schemas.xmlsoap.org / seep / koevert /"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <seep:Liggaam>
    <seep:Fout>
      <faultcode>seep:Server</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ gegooi.
      </faultstring>
      <detail>
        <String xmlns ="
http://schemas.microsoft.com / SharePoint / seep /">
Waarde kan nie nul wees.
        </String>
      </detail>
    </seep:Fout>
  </seep:Liggaam>
</seep:Envelope>

Natuurlik, jy sal waarskynlik nie byvoeg dat "s0" voorvoegsel op jou eie, maar 'n paar tools is geneig om dit te doen (soos Eclipse).

Dit is al hoe meer verwarrend / frustreer omdat ander metodes duld voorvoegsels.  Byvoorbeeld, die GetListCollection metode nie omgee as dit is voorafgegaan, selfs met nonsens voorvoegsels soos "Xyzzy":

image

Hierdie waarde kan nie null "lyk redelik gemeen met lists.asmx so hopelik sal dit help om iemand in die toekoms.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Eindeloos nes <Div> Etikette en jQuery

Dit lyk soos 'n oddball onderwerp, Ek is nie seker dit is regtig die moeite werd blog oor, maar dit was nog nooit my gestop voor, so hier gaan ons Smile

Ek werk op 'n projek waar ek trek sommige data van 'n soektog, verpakking dit in 'n XML-boodskap en dan dat die XML is uiteindelik verander in HTML via XSLT.  Daar is 'n baie jQuery betrokke, n bietjie waarvan implemente tabbing funksionaliteit.  Wanneer jy op 'n blad (werklik, 1 <Div>), jQuery beroept. verberg() en show() op verskeie divs (die eerste bladsy vrag afgelaai Al die inhoud, sodat daar is geen postbacks in hierdie geval).

'N klomp ure gelede, die blad te skakel logika begin om ongereeld te tree en dit sou nie wys een van my tabs.  Ek het uiteindelik opgespoor het dit aan die feit dat Internet Explorer (ten minste) gedink het dat die <Div> tags genes ver, veel dieper as intended.The ontwikkelaar toolbar sal wys:

-<div id = "Tab1Content">
  -<Div>
    -<Div>
      -<div id = "Tab2Content">
        -<Div>
           ..............................
                   </Div>  <-Finaal deur is gesluit al die pad hier!

So, As ek dit het 'n $("# Tab1Content").verberg(), Ek wil ook wegsteek Tab2 en ek kon nooit wys Tab2 as ek het ook nie Tab1 wys.  Ek die kode gekopieer en geplak in Visual Studio en dit het gewys al die DIV se voering mooi, net soos hulle veronderstel was om te doen, soek soos hierdie:

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

Ek het my kop teen die muur vir 'n rukkie en het opgemerk dat in die HTML-kode is 'n baie leë genereer <Div> tags, soos:

<liggaam>

  <div id = "Tab1Content">

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

  </Div>

  <div id = "Tab2Content">

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

  </Div>

</liggaam>

(The above is waaaaaaaaaaaay oversimplified.  Die leë div tags is heeltemal geldig. Sommige van my <Div> tags was vol van die inhoud, maar baie meer was nie.  Ek het tot die besef gekom dat my <xsl:vir-elke> riglyne is die afgee van die kort vorm div tags toe die XSL:vir elkeen het 'nie enige data te vind nie.  Ek gedwing om 'n HTML-kommentaar in die uitset, soos aangedui:

image

 

Nadat ek dit gedoen het, al die div mooi is lined up en my blad skakeling begin werk.

Soos altyd, Ek hoop dit help iemand in 'n knippie.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Quick fix: "Die inhoud tik naam '$ Hulpbronne:ReportServerResources … kan U nie bevat … spesiale karakters”

Ek het al geruime tyd spandeer die skoonmaak van 'n SharePoint 2010 terrein en een van die probleme met die opruim betrekking het op 'n korrupte / verkeerd geïnstalleer SQL Server Verslag Dienste kwessie.  Die probleem het ontstaan ​​toe een van my kollegas het probeer om 'n webwerf as 'n sjabloon te red en dan maak die skep van 'n nuwe webwerf wat gebaseer is op daardie sjabloon.  Die save werking werk goed, Maar toe sy probeer het om die nuwe webwerf te skep, SharePoint vertoon die volgende foutboodskap:

Fout

Die inhoud tik naam '$ Resources:ReportServerResources,DataSourceContentTypeName;"Kan nie bevat: \ / : * ? " # % < > { } | ~ & , twee agtereenvolgende periodes (..), of spesiale karakters soos 'n blad.

Hier is 'n screen cap:

 

image

Ek het 'n blik op die inhoud in die werf en het gevind dat hierdie:

image

Diegene inhoud tipes is duidelik ongesonde.

Hierdie kwessie blyk om te kom tot 'n baie op die Inter en is daar nie 'n konsensus oor hoe om dit op te los.  Ek het 'n handige tabel wat gekarteer die slegte inhoud tipe name goeie inhoud tipe name hier: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Ek het hand opgedateer hulle thusly:

image

(BrightStarr in die naam is natuurlik opsionele, maar dit kan nie kwaad doen nie Smile )

Dit het my toegelaat om 'n nuwe sjabloon te skep en het nie breek nie iets op die ander terreine, insluitend sommige PerformancePoint Server dinge wat 'n heeltemal ander groep mense gewerk het.  Ek was in staat om 'n nuwe tuiste op die sjabloon te skep.  Sukses!

Ek is nie seker dit is 'n 100% oplossing, maar dit het vir my en almal wat betrokke is verby hierdie irriterende fout.  As ek iets nuuts, Ek sal na 'n update.  My senuweeagtigheid spruit uit die feit dat hierdie name nie verkeerd wees in die eerste plek en deur die vaststelling van die vertoning naam, Ek raak nie aan die interne naam. 

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Een rede vir "Die skepper van hierdie fout het nie 'n rede.”

Ek is besig met 'n baie werk met SharePoint soek die afgelope tyd en spesifiek die KeywordQuery klas, eienskappe en metodes.

As jy wil die resultaat stel om terug te keer bo en behalwe die gewone verdagtes (Kyk hier), jy dit by die SelectedProperties versameling, soos in:

myKeywordQuery.SelectProperties.Add("Xyzzy");

Baie dankie en 'n wenk van die hoed Corey Roth en hierdie baie nuttig blog boodskap (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

In my geval, "Xyzzy" is nie eintlik 'n bestuurde eiendom.  Toe ek dit in elk geval aan SelectedProperties, SharePoint gooi een van my gunsteling runtime uitsonderings:

"Die skepper van hierdie skuld het nie 'n rede."

Ek wil veral die hoofstad "R" in die rede.  Dit klink vir my soos die NET ekwivalent. "Ek het geen mond, en ek moet skree."

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Nuttige verwysing: Die standaard Resultate van KeywordQuery Soek

Wanneer jy roep vir uitvoer() metode op 1 KeywordQuery, jy skep 'n ResultTable gebaseer op ResultType.RelevantResults.  Hierdie kode uit illustreer wat ek bedoel:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Die tabel sal die volgende kolomme van inligting: 

WorkId
Rangskik
Titel
Skrywer
Grootte
Pad
Description
Skryf
Site Naam
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Ek afgelei hierdie lys van 'n SharePoint 2010 omgewing, Enterprise Edition.  Hopelik sal dit handig wees vir iemand in die toekoms.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Een van die redes vir: "Kon nie die taxi-lêer in die oplossing te onttrek”

Terwyl jy werk op 'n visuele ateljee web deel projek vandag, Ek het 'n klein re-org van 'n paar lêers word in die gids _layouts as deel van die ontplooiing. Spesifiek, Ek herdoop die JS lêer van "TypeAhead.js" na "TypeAhead(ou).js "  Ek is van plan om dit so gou as sy opvolger "TypeAhead.js" bewys korrek te verwyder.  Dit het gelyk soos hierdie:

image

Dit het onmiddellik veroorsaak 'n probleem met Visual Studio toe ek probeer het om die projek te sit:

Error occurred in deployment step ‘Add Solution’: Versuim het om die taxi-lêer te onttrek in die oplossing.

Dit blyk dat jy nie moet 'n hakies in lêername nie.  Ek verwyder die parens en dat die probleem opgelos.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin