arquivos mensuais: Maio 2011

PerformancePoint e erro 33494

Un dos meus clientes hoxe chamado cando o seu ámbito PerformancePoint (en SharePoint 2010) rompe.  Un dos servidores de aplicacións no farm estaba correndo pouco espazo en disco.  A pesar de afrontar este, cliente desinstalar "máis" e as cousas PP todo marcha detido.  Varias partes da web que mostran "Produciuse un erro inesperado. Erro 33494. Detalles adicionais foron rexistrados para o administrador ":

image

Mirei para o erro e non atopou nada específico para "Erro 33494", pero iso foros MSDN post foi útil: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

I ADOMD.NET aquí como un compoñente en SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(clic para ampliar)

Eu descargar e instalar iso e corrixido todo.

Creo que este é un tipo excéntrico moi de erro, pero se bater, ti, polo menos ten unha opción.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetListItems e carpetas

Eu estaba facendo unha investigación para alguén hoxe en todo o servizo web list.asmx seleccionado como parte do SharePoint 2010 (e máis cedo).  Ela foi capaz de obter os elementos da lista no cartafol raíz (incluíndo os nomes dos subcartafoles), pero non podía elementos en subcartafoles.  I did some looking around on the internets and it’s a surprisingly common question.  Aínda, I couldn’t get a good answer to the simple question, “if I know the folder, how do I get the items in the folder?"  To be honest, I didn’t try all that hard since I’ve wanted to figure this one out on my own for a while sorriso.

To set this up, I created a site named “Blogging Scenarios” and a custom list named “Custom List with Sub Folders”.  I then created folders named:

  • Year 2005
  • Year 2006
  • Year 2007

I added a few items to the folder “Year 2006”.  Isto é o que parece:

image

My friend isn’t writing C# code but rather using Java, so the SOAP envelope was what she really needed.  To get that, I wrote a bit of jQuery and then used fiddler to get the actual HTTP conversation.

Here’s the relevant jQuery (I copied the code down below if you want to copy/paste):

image

They first key is to include both a <queryOptions> e <QueryOptions> node.  The second key is that the <Folder> node is a URL to which the client has access.

There may be other ways to get this, but this worked well for me when using jQuery.

Here is the SOAP envelope for the above:

<soapenv:Envelope xmlns:soapenv=’http://schemas.xmlsoap.org / xabón / Sobre /’>                
  <soapenv:Corpo>
    <GetListItems xmlns=’
http://schemas.microsoft.com / SharePoint / xabón /’>
      <listName>Custom List with Sub Folders</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef Name=’Title’ />
          <FieldRef Name=’EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Scenarios/lists/Custom List with Sub Folders/Year 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Corpo>
</soapenv:Sobre>

A lot of examples and discussion around this led me to believe that all I need was <QueryOptions> and specify a folder name.  Para min, I need to both wrap it inside <queryOptions> as well as specify a fully qualified URL for the <Folder> node.

Here’s the jQuery AJAX setup:

$(documento).preparado(función() {
       var soapEnv =
           "<soapenv:Envelope xmlns:soapenv=’http://schemas.xmlsoap.org / xabón / Sobre /’> \
               <soapenv:Corpo> \
                    <GetListItems xmlns=’http://schemas.microsoft.com / SharePoint / xabón /’> \
                       <listName>Custom List with Sub Folders</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Name=’Title’ /> \
                              <FieldRef Name=’EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Scenarios/lists/Custom List with Sub Folders/Year 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Corpo> \
           </soapenv:Sobre>";

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Patróns de fluxo de traballo do SPD, Consellos e Truques

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

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList e "Valor non pode ser nulo”

Descubrín onte que o GetList() método lists.asmx servizo web ten que ser chamado con moito coidado ou é propenso a lanzar un misterioso "Valor non pode ser nulo" excepción (e iso supoñendo que pode pasar a mensaxe de erro aínda peor xenérico, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ foi lanzada. ")  Especificamente, Eu penso que non pode fornecer calquera tipo de prefixo do método GetList.  O tramo a continuación ilustra o punto jQuery:

image

Se fai iso, o servizo web responde con "Valor non pode ser nulo", segundo este violinista-indicado transcrición HTTP:

<?xml version="1.0" encoding="utf-8"?>
  <xabón:Sobre
     xmlns:xabón ="
http://schemas.xmlsoap.org / xabón / Sobre /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <xabón:Corpo>
    <xabón:Culpa>
      <FaultCode>xabón:Servidor</FaultCode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ foi lanzado.
      </faultstring>
      <detalle>
        <xmlns cadea de erro ="
http://schemas.microsoft.com / SharePoint / xabón /">
O valor non pode ser nulo.
        </errorString>
      </detalle>
    </xabón:Culpa>
  </xabón:Corpo>
</xabón:Sobre>

Por suposto, probablemente non quere engadir que o prefixo "S0" no seu propio país, pero algunhas ferramentas son propensos a facelo (como Eclipse).

Isto é aínda máis confuso / frustrante, porque outros métodos tolerar prefixos.  Por exemplo, o GetListCollection método non lle importa se foi precedido, mesmo con prefixos sen sentido como "xyzzy":

image

Este "valor non pode ser nulo" parece bastante común con lists.asmx polo que espera que isto vai axudar a alguén no futuro.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Endlessly Nesting <p> Etiquetas e jQuery

Este semella ser un excéntrico como tema, Eu non estou seguro se é realmente paga a pena blog sobre, pero iso nunca me impediu antes de, entón aquí imos nós sorriso

Eu estou a traballar nun proxecto onde estou tirando algúns datos dunha investigación, embalaxe-lo nunha mensaxe XML e logo, que o XML é finalmente transformada HTML vía XSLT.  Hai unha morea de jQuery implicados, un pouco do que aplica algunhas funcións tabulación.  Cando fai clic nunha guía (realmente, un <p>), jQuery invoca. ocultar() e. espectáculo() en varios divs (a cargar a páxina de inicio traslada todo o contido para que non haxa mensaxes neste caso).

Unha banda de horas, a lóxica de conmutación guía comezou a comportarse de forma irregular e que non ía amosar un dos meus guías.  Eu finalmente Rastrexar-lo para o feito de que a Internet Explorer (polo menos) pensado que o <p> tags noutras citas lonxe, moito máis profundo do que Developer Toolbar intended.The mostraría:

-<div id = "Tab1Content">
  -<p>
    -<p>
      -<div id = "Tab2Content">
        -<p>
           ..............................
                   </p>  <-Por último mostrando que estaba pechado todo o camiño ata aquí!

Así, se eu fixese un $("# Tab1Content").agochar(), Gustaríame tamén de ocultar Tab2 e eu nunca podería mostrar Tab2 se eu non mostran tamén Tab1.  Copiei e colei o código en Visual Studio e mostrou toda a mucosa da div-se ben, exactamente como se supón que deberían estar facendo, dese xeito:

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

Eu bati miña cabeza contra a parede por un tempo e notei que o código HTML real estaba xerando unha chea de baleiro <p> Tag, como:

<corpo>

  <div id = "Tab1Content">

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

  </p>

  <div id = "Tab2Content">

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

  </p>

</corpo>

(A descrición anterior é waaaaaaaaaaaay simplificado.  As etiquetas div baleiros son totalmente válido. Algúns dos meus <p> marcas estaban cheos de contido, pero moitos outros non eran.  Cheguei á conclusión de que a miña <XSL:a-cada> directivas emitían as etiquetas div de forma curta, cando o XSL:for-each non "atopa algunha datos.  Forcei un comentario HTML na saída, como se mostra:

image

 

Despois de que eu fixen, toda div está aliñado ben e meu guía cambio comezou a traballar.

Como sempre, Espero que isto axude alguén nunha pitada.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Quick Fix: "O nome do tipo de contido 'R $ recursos:ReportServerResources … non pode conter … caracteres especiais”

Teño pasado algún tempo a limpeza dun SharePoint 2010 local e un dos problemas de limpeza refírese a un corrupto / instalado incorrectamente problema Report Services do SQL Server.  A cuestión xurdiu cando un dos meus compañeiros intentaron salvar un sitio como un modelo e, a continuación, crear crear un novo sitio web baseado nese modelo.  A operación de salvamento funcionou ben, pero cando intentou crear o novo sitio web, SharePoint aparecerá a seguinte mensaxe de erro:

Erro

O nome do tipo de contido "$ Resources:ReportServerResources,DataSourceContentTypeName;'Non pode conter: \ / : * ? " # % < > { } | ~ & , dous períodos consecutivos (..), ou caracteres especiais, como unha guía.

Aquí está unha tapa de pantalla:

 

image

Eu tiña un ollar para os tipos de contido na web e atopei este:

image

Estes tipos de contidos son claramente insalubre.

Esta cuestión parece vir-se moito nas Internets e non parece ser un único consenso sobre como resolvelo.  Eu atopei unha táboa práctica que mapeou os nomes malas tipo de contido a un bo contido tipo nomes aquí: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Eu actualizar de xeito manual deste xeito:

image

(BrightStarr o nome é obviamente opcional, pero non pode ferir sorriso )

Tanto me permitiu crear un novo modelo e non romper nada en outros sitios, incluíndo algunhas cousas PerformancePoint Server que un grupo totalmente diferente de persoas estaban traballando.  Eu era entón capaz de crear un novo sitio web no modelo.  Éxito!

Non estou seguro de que este é un 100% solución, pero eu e todos os implicados pasado este erro irritante ten.  Se eu atopar nada novo, Vou publicar unha actualización.  O meu nerviosismo transcorre do feito de que eses nomes non debe estar mal, en primeiro lugar e pola fixación do nome de visualización, Non estou tocando o nome interno. 

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Un motivo para "O creador desta falla Non especificou a razón.”

Eu teño feito unha chea de traballo coa investigación do SharePoint recentemente e, especialmente, a clase KeywordQuery, propiedades e métodos.

Se desexa que o conxunto de resultados para voltar resultados enriba e alén dos sospeitosos do costume (vexa aquí), engadir lo á colección SelectedProperties, como no:

myKeywordQuery.SelectProperties.Add("xyzzy");

Moitas grazas e unha punta do sombreiro para Corey Roth e este moi útil blog (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

No meu caso, "Xyzzy" non é realmente unha propiedade xestionado.  Cando eu engade a SelectedProperties de calquera maneira, SharePoint xogou un dos meus favoritos de sempre excepcións de tempo de execución:

"O creador desta falla non especificou un motivo".

Gústame especialmente da capital "R" na razón.  Isto paréceme que o. Equivalente Net de "Eu non teño ningunha boca, e eu teño que berrar."

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Referencia Handy: Resultados por defecto de Investigación KeywordQuery

Cando chamar o Executar() método nun KeywordQuery, pode crear un ResultTable baseado ResultType.RelevantResults.  Este fragmento de código ilustra o que quero dicir:

ResultsTableCollection ResultTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable resultsTableCollection =[ResultType.RelevantResults];

A táboa resultante terá as seguintes columnas de información: 

WorkId
Posición
Título
Autor
Tamaño
Camiño
Descrición
Escribir
Nome_do_Site
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Eu derivado desta lista a partir dun SharePoint 2010 ambiente, Enterprise Edition.  Espero que sexa útil para alguén no futuro.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin

Unha razón para: "Non se puido extraer o arquivo taxi na solución”

Mentres traballaba nun proxecto do Visual Studio web parte hoxe, Eu fixen unha pequena re-org de algúns arquivos para ser colocadas na carpeta _layouts como parte do proceso de implantación. Especificamente, Eu renomeei un arquivo. Js de "TypeAhead.js" para "typeahead(vello).js "  Eu pretendo eliminar-lo así que o seu sucesor "TypeAhead.js" proba correcta.  Semella que este:

image

Este inmediatamente causou un problema co visual studio cando tente implantar o proxecto:

Error occurred in deployment step ‘Add Solution’: Non se puido extraer o arquivo Cab na solución.

Acontece que non debe poñer un paréntese en nomes de ficheiros.  Tirei as parénteses e que resolveu o problema.

</final>

Rexístrate para o meu blog.

Siga-me no Twitter http://www.twitter.com/pagalvin