Arxius per mes: Maig 2011

PerformancePoint i Error 33494

Un dels meus clients anomenats avui quan l'entorn de PerformancePoint (en SharePoint 2010) es va trencar.  Un dels servidors app a la finca estava funcionant baix en espai de disc.  Mentre que d'adreçament, el client ininstal·lava "massa" i la matèria PP tot parat de funcionar.  Diversos elements web mostraria "un error inesperat acudit. Error 33494. Detalls addicionals han estat registrat per l'administrador":

image

Vaig mirar cap amunt de l'error i no van trobar res específic a "Error 33494" però aquest fòrums MSDN publicar era útil: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

He trobat ADOMD.net des d'aquí com un component en l'SQL Server 2008 Grup de tret: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(feu clic per ampliar)

Puc descarregar i instal lat que i arreglava tot.

Jo crec que això és una mena de oddball bonica d'error, però si es colpeja, almenys teniu una opció.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetListItems i carpetes

Jo estava fent una investigació per algú avui al voltant de la list.asmx web servei proporcionat com part del SharePoint 2010 (i anteriors).  Ella va ser capaç d'obtenir els elements de la llista a la carpeta d'arrel (incloent-hi els noms de sub-carpetes), però no podria aconseguir elements en subcarpetes.  Vaig fer algunes mirant al voltant de la internets i és una pregunta sorprenentment comú.  No obstant això, No podria aconseguir una bona resposta a la pregunta simple, "si jo sé la carpeta, com puc obtenir els elements a la carpeta?”  Per ser honest, No intento dur tot el que ja he volgut aquest un terme figura en el meu propi una estona somriure.

Per configurar-ho, He creat un lloc anomenat "Blogging escenaris" i una llista personalitzada anomenat "Costum llista amb subcarpetes".  Llavors vaig crear carpetes anomenades:

  • L'any 2005
  • L'any 2006
  • L'any 2007

He afegit uns elements a la carpeta de "Any 2006".  Això és el que sembla:

image

El meu amic no és l'escriptura de codi de c# però més aviat utilitzant Java, Així, els sobres de sabó, va ser el que realment necessitava.  Per aconseguir que, Vaig escriure una mica de jQuery i llavors utilitzava el violinista a la conversa d'HTTP present.

Heus aquí la jQuery rellevant (He copiat el codi avall per sota si vol copiar/enganxar):

image

És de primera clau per incloure a banda un <queryOptions> i <QueryOptions> node.  La segona clau és que el <Carpeta> node és un URL al qual el client té accés.

Pot haver-hi altres maneres d'aconseguir això, però això funcionava bé per a mi quan utilitzant jQuery.

Aquí hi ha les sobres de sabó per a l'anterior:

<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Cos>
    <GetListItems xmlns =’
http://Schemas.Microsoft.com/SharePoint/SOAP/’>
      <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA>
      <viewFields>  
        <ViewFields>
          <FieldRef nom =' títol’ />
          <Nom de FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Carpeta>
http://demoserver1/blocs Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Cos>
</soapenv:Sobres>

Un munt d'exemples i discussió al voltant d'això em va portar a crec que tot el que necessito és la <QueryOptions> i especifiqueu un nom de carpeta.  Per a mi, Jo necessitar als dos embolicar dins <queryOptions> així com d'especificar una URL plenament qualificat per a la <Carpeta> Node.

Aquesta és la configuració d'AJAX jQuery:

$(document).preparat(funció() {
       var soapEnv =
           "<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Cos> \
                    <GetListItems xmlns =’http://Schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef nom =' títol’ /> \
                              <Nom de FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Carpeta>http://demoserver1/Blogging Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Cos> \
           </soapenv:Sobres>";

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Patrons de flux de treball de el SPD, Consells i trucs

Em va donar la meva presentació avui al SharePoint Fest a Denver. Heus aquí la presentació del PowerPoint: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList i "valor no pot ser nul”

Avui he descobert que la GetList() mètode en lists.asmx servei web ha de ser anomenat amb molta cura, o és propens a llançar un misteriós "Valor no pot ser nul·la" excepció (i que està suposant que pot aconseguir per davant del missatge d'error genèric fins i tot pitjor, "Una excepció del tipus ' Microsoft.SharePoint.SoapServer.SoapServerException’ s'ha llançat.")  Específicament, He trobat que vostè no pot facilitar cap tipus de prefix en el mètode GetList.  El següent fragment de jQuery il·lustra el punt:

image

Si fas això, el servei web respon amb "Valor no pot ser nul" segons aquest Fiddler-proporcionat expedient HTTP:

<?versió XML = "1.0" codificació = "utf-8"?>
  <sabó:Sobres
     xmlns:sabó ="
http://Schemas.xmlsoap.org/SOAP/envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema
     xmlns:XSD ="
http://www.w3.org/ 2001/XMLSchema">

  <sabó:Cos>
    <sabó:Culpa>
      <faultcode>sabó:Servidor</faultcode>
      <faultstring>
        Excepció del tipus ' Microsoft.SharePoint.SoapServer.SoapServerException’ va ser llançat.
      </faultstring>
      <detall>
        <errorstring xmlns ="
http://Schemas.Microsoft.com/SharePoint/SOAP/">
Valor no poden ser nul·les.
        </errorstring>
      </detall>
    </sabó:Culpa>
  </sabó:Cos>
</sabó:Sobres>

Clar, vostè probablement no afegir aquest prefix "s0" en el seu propi, però algunes eines són propensos a fer-ho (com eclipsi).

Això és el més confús / frustrant perquè altres mètodes tolerar prefixos.  Per exemple, el GetListCollection mètode no li importa si això és estat prefixat, fins i tot amb prefixos tonteries com "xyzzy":

image

Aquest "valor no pot ser nul·la" sembla bastant comú amb lists.asmx així que espero que això ajudarà algú fora en el futur.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Sense parar nidificació <Div> Etiquetes i jQuery

Això sembla com un tema tan oddball, No estic segur que realment val la pena blogging sobre, però que mai no ha deixat m abans de, Així que aquí anem somriure

Estic treballant en un projecte on m'estic tirant algunes dades d'una cerca, embalatge a un missatge XML i llavors aquella XML en última instància, es transforma en HTML mitjançant XSLT.  Hi ha un munt de jQuery implicats, una mica de que implementa alguna funcionalitat tabulació.  Quan fa clic a una fitxa (realment, un <Div>), jQuery invoca .hide() i .show() en diversos divs (càrrega de la pàgina inicial descarrega tot el contingut, així que hi ha cap devolucions en aquest cas).

Un grapat d'hores fa, la pestanya commutació lògica començar a comportar-se de manera erràtica i no Mostra un dels meus tabuladors.  Jo finalment segueixi fins el fet que Explorador d'internet (com a mínim) pensar que la <Div> Etiquetes niuades lluny, molt més profund que pretén.El toolbar de desenvolupador mostraria:

-<div id = "Tab1Content">
  -<Div>
    -<Div>
      -<div id = "Tab2Content">
        -<Div>
           …………………………
                   </Div>  <— Finalment demostrant que fou clausurada completament aquí!

Així, si feia un $("#Tab1Content").Amaga(), També em vaig amagar els Tab2 i jo podria mai no mostrar Tab2 si no mostrar també Tab1.  Copiava i enganxava el codi a visual studio i va mostrar tots convenint el div manera bonica, igual que suposava estar fent, mirant com aquest:

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

Vaig batre el meu cap contra la paret per una estona i notat que en el present codi HTML codi es genera una gran quantitat de buit <Div> Etiquetes, com:

<cos>

  <div id = "Tab1Content">

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

  </Div>

  <div id = "Tab2Content">

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

  </Div>

</cos>

(Això és waaaaaaaaaaaay simplista.  Les etiquetes div buides són totalment vàlids. Alguns dels meus <Div> Etiquetes estaven plenes de contingut, però no eren molts més.  Vaig arribar a la conclusió que el meu <XSL:per a cada> directives estaven emetent la forma curta etiquetes div quan el xsl:no per-tots "trobar cap dada.  Jo forçat un comentari HTML a la sortida, com es Mostra:

image

 

Després que fes allò, tots el div alineats molt bé i meu tabulador de commutació va començar a treballar.

Com sempre, Espero que això ajudi a algú en un pessic.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Solució ràpida: "El nom de tipus de contingut '$ recursos:ReportServerResources … no pot contenir … caràcters especials”

He estat gastant temps neteja de SharePoint 2010 lloc i una de les qüestions de neteja es refereix a un corrupte / incorrectament instal lat assumpte SQL Server Report Services.  El problema sorgeix quan un dels meus companys van intentar salvar un lloc com a una plantilla i llavors creï crear un lloc nou basat en aquesta plantilla.  L'estalviar operació treballat bé, però quan va intentar crear el nou lloc, SharePoint apareix el següent missatge d'error:

Error

El nom de tipus de contingut ' $Resources:ReportServerResources,DataSourceContentTypeName;"no pot contenir: \ / : * ? “ # % < > { } | ~ & , dos períodes consecutius (..), o caràcters especials com ara una tabulació.

Heus aquí una gorra de pantalla:

 

image

Jo tenia un aspecte en els tipus de contingut en el lloc i trobava això:

image

Els tipus de contingut són clarament saludables.

Aquest assumpte sembla sortit molt sobre la Internets i no sembla per ser un únic consens sobre com solucionar-lo.  He trobat una taula manejable que assignen els noms de tipus de contingut mal als noms de tipus de contingut bo aquí: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Puc actualitzar manualment-los així:

image

(BrightStarr el nom és òbviament opcional, però això no pot fer mal somriure )

Això va permetre a mi per crear una plantilla nova i no trencar res en els altres llocs, incloent-hi algunes coses PerformancePoint servidor que estaven treballant un grup de persones completament diferent.  Jo llavors era capaç de crear un lloc nou en la plantilla.  Èxit!

No estic segur que això és un 100% solució, però em va fer i tots els involucrats davant d'això molestant error.  Si trobo res nou, Enviaré una actualització.  Meu nerviosisme deriva del fet que aquests noms no ha estar equivocats en primer lloc i corregint el nom de visualització, Jo no estic tocant el nom intern. 

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Causa per a "el creador d'aquest error no especificat una raó.”

He estat fent molta feina amb SharePoint cerca últimament i específicament la classe KeywordQuery, propietats i mètodes.

Si voleu el resultat per retornar resultats més enllà de sospitosos habituals (veure aquí), Afegiu a la col·lecció SelectedProperties, com a:

myKeywordQuery.SelectProperties.Add("xyzzy");

Moltes gràcies i una punta del barret per Corey Roth i Aquest bloc enormement útil (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

En el meu cas, "xyzzy" no és en realitat una propietat administrada.  Quan afegia al SelectedProperties de tota manera, SharePoint va llançar un dels meus favorits mai runtime excepcions:

"El creador d'aquesta culpa no heu especificat una raó."

M'agrada especialment la capital "R" en la raó.  Això em sona a l'equivalent .NET"No tinc cap boca, i em cal cridar.”

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Referència pràctica: Per defecte els resultats de cerca de KeywordQuery

Quan vostè invoca l'executar() mètode en un KeywordQuery, Podeu crear un ResultTable basat en ResultType.RelevantResults.  Aquest fragment de codi il·lustra el que vull dir:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

La taula resultant tindrà les següents columnes d'informació: 

WorkId
Rang
Títol
Autor
Mida
Camí
Descripció
Escriure
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Jo deriva aquesta llista de SharePoint 2010 medi ambient, edició d'empresa.  Esperançadorament serà útil a algú en el futur.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Una de les raons per a: "Fracassat extreure l'arxiu de cabina a la solució”

Mentre treballava en un element web de estudi visual del projecte avui, Vaig fer un re menor-org d'alguns arxius que es posarà en la carpeta layouts com a part del procés de desplegament. Específicament, Jo el nom d'un arxiu. js des de "TypeAhead.js" a "TypeAhead(vell).JS"  Penso treure-ho tan aviat com el seu successor "TypeAhead.js" és correcta.  S'assemblava a això:

image

Això immediatament causat un problema amb visual studio quan vaig intentar desplegar el projecte:

Occured d'error en el pas de desplegament "Afegir una solució": No ha pogut extreure l'arxiu de cabina a la solució.

Resulta que no ha posat un parèntesi en els noms de fitxer.  Treia el parens i que resolia el problema.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin