arhive lunare: Mai 2011

PerformancePoint şi de eroare 33494

Unul dintre clienţii mei numit astăzi atunci când mediul lor PerformancePoint (în SharePoint 2010) stricat.  Unul dintre serverele app în fermă a fost terminate spațiu-disc.  În timp ce abordarea care, clientul uninstalled "prea mult" şi chestii PP toate oprit funcţionarea.  Diferitele părţi web ar arăta "eroare neașteptată. Eroare 33494. Detalii suplimentare au fost înregistrate pentru administrator":

image

Am uitat eroare şi nu au găsit nimic specific "eroare 33494" dar acest forum MSDN postarea a fost de ajutor: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Am găsit ADOMD.NET aici ca o componentă în SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(click pentru marire)

Descărca şi instala care şi a stabilit totul.

Cred că aceasta este un fel de aiurit destul de eroare, dar dacă te-a lovit, tu macar ai o opţiune.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Lists.asmx, GetListItems and Folders

Am făcut unele de cercetare pentru cineva astăzi în jurul web list.asmx serviciului furnizat ca parte din SharePoint 2010 (şi mai devreme).  Ea a fost în măsură pentru a obţine elementele de listă la folderul rădăcină (inclusiv numele subfolderelor), dar nu a putut obţine elemente în sub-pliant.  Am făcut unele privire around pe Internet şi este o chestiune de surprinzător de comune.  Încă, Nu am putut ajunge un răspuns bun la întrebarea simplă, "dacă ştiu folderul, cum a face I a lua elementele în folderul?”  Pentru a fi sincer, Nu încerc toate că greu deoarece mi-am dorit pentru a figura acest una pe propria mea pentru un timp Zâmbet.

Pentru a parametriza acest lucru, Am creat un site numit "Blogging-ul scenarii" şi o listă particularizată numit "Lista cu Sub foldere personalizate".  Apoi am creat foldere numit:

  • An 2005
  • An 2006
  • An 2007

Am adăugat câteva elemente în folderul "Anul 2006".  Aceasta este ceea ce pare ca:

image

Prietenul meu nu este scris în C# cod, dar mai degrabă folosire Java, Deci plicul SĂPUN a fost ceea ce ea într-adevăr nevoie.  Pentru a obţine că, Am scris un pic jQuery şi apoi folosite Scripcarul pentru a obţine conversaţie reale HTTP.

Aici este jQuery relevante (Am copiat codul în jos mai jos dacă doriţi să copiaţi/lipiţi):

image

Au prima cheie este de a include atât un <queryOptions> şi <QueryOptions> nod.  A doua cheie este că <Folder> nodul este un URL la care clientul are acces.

Pot exista alte modalităţi de a obţine acest lucru, dar aceasta a lucrat bine pentru mine când folosind jQuery.

Aici este plicul SĂPUN pentru cele de mai sus:

<soapenv:Plic xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Organism>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Lista particularizată cu subdosarele</listName>
      <viewFields>  
        <ViewFields>
          <Numele FieldRef =' titlu’ />
          <Numele FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/blogging-ul Scenarii/liste/particularizat lista cu Sub foldere/anul 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Organism>
</soapenv:Plic>

O mulţime de exemple şi discuţii în jurul acest lucru a condus-mi să cred că tot ce am nevoie a fost <QueryOptions> şi specificaţi un nume de folder.  Pentru mine, I nevoie atât wrap-o în interiorul <queryOptions> precum şi specificaţi un URL-ul complet pentru <Folder> nod.

Iată de configurare de AJAX jQuery:

$(document).gata(funcţia() {
       var soapEnv =
           "<soapenv:Plic xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Organism> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Lista particularizată cu subdosarele</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <Numele FieldRef =' titlu’ /> \
                              <Numele FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Scenarii/liste/particularizat lista cu Sub foldere/anul 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Organism> \
           </soapenv:Plic>";

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Lists.asmx, GetList şi "valoare nu poate fi nul”

Am descoperit astăzi că GetList() metoda în lists.asmx serviciu Web trebuie să fie numit foarte atent sau este predispus să arunce un misterios "Valoare nu poate fi null" excepţie (şi care este presupunând că puteţi obţine trecut chiar mai rău mesajul generic de eroare, "Excepţie de tip" Microsoft.SharePoint.SoapServer.SoapServerException’ a fost aruncat.")  În mod specific, Am constatat că nu pot oferi nici un fel de prefix pe metoda GetList.  Următorul fragment jQuery ilustrează punctul:

image

Dacă faci asta, serviciul web răspunde cu "Valoare nu poate fi null" ca pe acest lautar-furnizate HTTP transcriere:

<?XML version = "1.0" codificare = "utf-8"?>
  <săpun:Plic
     xmlns:săpun ="
http://schemas.xmlsoap.org/SOAP/envelope/"    
     xmlns:XSi = "
http://www.w3.org/ 2001/XMLSchema-exemplu
     xmlns:XSD ="
http://www.w3.org/ 2001/XMLSchema">

  <săpun:Organism>
    <săpun:Vina>
      <faultCode>săpun:Server</faultCode>
      <faultString>
        Excepţie de tip "Microsoft.SharePoint.SoapServer.SoapServerException’ a fost aruncat.
      </faultString>
      <detaliu>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Valoarea nu poate fi nul.
        </errorstring>
      </detaliu>
    </săpun:Vina>
  </săpun:Organism>
</săpun:Plic>

desigur, tu, probabil, nu ar adăuga că prefixul "s0" pe cont propriu, dar unele instrumente sunt predispuse să facă acest lucru (ca Eclipse).

Acest lucru este tot mai confuz / frustrant deoarece alte metode tolera prefixe.  De exemplu, The GetListCollection metoda nu minte dacă acesta este fost prefixate, chiar şi cu prostii prefixele ca "xyzzy":

image

Aceasta "valoare nu poate fi null" pare destul de comune cu lists.asmx deci sperăm că acest lucru va ajuta pe cineva afară în viitor.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Imbricarea la nesfârşit <div> Tag-uri şi jQuery

Acest lucru pare a fi un astfel de subiect de aiurit, Nu sunt sigur că merită cu adevărat blogging-ul despre, dar că niciodată nu a oprit mine înainte, Deci, aici vom merge Zâmbet

Am de lucru un proiect în cazul în care eu sunt trăgând unele date dintr-o căutare, ambalare-l într-un mesaj XML şi apoi că XML este transformat în cele din urmă în HTML prin intermediul XSLT.  Există o mulţime de jQuery implicate, un pic de care implementeaza anumite funcţionalităţi tabbing.  Când faceţi clic pe o filă (chiar, o <div>), jQuery invocă .hide() şi .show() pe diverse divs (pagină iniţială de încărcare descărcări toate conţinut, astfel încât nu există nici o postback în acest caz).

O grămadă de ore în urmă, fila logica de comutare a început să se comporte haotic şi aceasta nu s-ar arăta unul de meu file.  Am în cele din urmă urmărite l până la faptul că internet explorer (cel puțin) crezut că <div> Tag-uri imbricate departe, mult mai profunde decât destinate.Bara de instrumente producător ar arăta:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— în cele din urmă arătând că a fost închis tot drumul în jos aici!

Deci, dacă am făcut-o $("#Tab1Content").ascunde(), Am, de asemenea, s-ar ascunde Fila2 şi ar putea arăta niciodată Fila2 dacă nu arăt, de asemenea, Fila1.  Am copiat şi inserat codul în visual studio şi ea a arătat toate div garnitură până frumos, la fel ca ei ar fi trebuit să faci, în căutarea de genul asta:

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

Am batut capul meu de perete pentru un timp şi am observat că în real HTML codul a fost generatoare de o mulţime de gol <div> Tag-uri, ca:

<corpul>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "rînd2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "rînd2" />

  </div>

</corpul>

(De mai sus este waaaaaaaaaaaay simplificat.  Gol div Tag-uri sunt complet valide. Unele dintre meu <div> Tag-uri au fost plin de conţinut, dar mult mai multe nu au fost.  Am venit la realizarea că meu <XSL:pentru fiecare> Directivele au fost emit scurt-forma div Tag-uri atunci când xsl:nu pentru fiecare "găseşte orice date.  Am forţat un comentariu HTML în ieşire, ca:

image

 

După ce am făcut-o, div aliniat frumos şi fila mea de comutare a început să lucreze.

Ca întotdeauna, Sper că acest lucru ajută pe cineva într-o priză.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Iute Fix: "Numele de tipul de conţinut" resurse$:ReportServerResources … nu pot conţine … caractere speciale”

-Am fost de cheltuieli ceva timp curăţirea un SharePoint 2010 site-ul şi una dintre problemele Curăţire se referă la un corupt / incorect instalat SQL Server raport Services problemă.  Problema a apărut când unul dintre colegii mei au încercat să salvaţi un site ca un şablon şi apoi creaţi creaţi un nou site bazat pe acel şablon.  Salvare operațiunea worked fin, dar atunci când ea a încercat să creeze noul site, SharePoint afişează următorul mesaj de eroare:

Eroare

Numele tipului de conţinut "resurse $:ReportServerResources,DataSourceContentTypeName;' nu pot conţine: \ / : * ? “ # % < > { } | ~ & , două mandate consecutive (..), sau caractere speciale cum ar fi un tab.

Aici este un capac de ecran:

 

image

Am avut o privire la tipuri de conţinut în site-ul şi a întemeia this:

image

Aceste tipuri de conţinut sunt în mod clar nesănătoase.

Această problemă pare a veni sus o mulţime de pe Internet şi acolo nu pare a fi un consens unic on cum la spre solve it.  Am găsit un tabel la îndemână care mapat numele tipului de conţinut rău tip bun conţinut nume aici: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Am actualizat le manual thusly:

image

(BrightStarr în numele este, evident, opţional, dar nu doare Zâmbet )

Acest lucru allowed eu la spre a crea un nou şablon şi nu rupe nimic pe alte site-uri, inclusiv unele chestii PerformancePoint Server care un grup complet diferite de oameni au fost de lucru pe.  Am fost apoi capabil să creeze un site nou pe şablon.  Succesul!

Nu sunt sigur că aceasta este o 100% soluţie, dar el luat eu şi toţi cei implicaţi trecut acest lucru enervant eroare.  Dacă am găsi nimic nou, Voi posta o actualizare.  Nervozitate meu provine din faptul că aceste nume nu ar trebui să fi greşit în primul rând şi prin fixarea numele afişat, Eu nu sînt atingeţi numele intern. 

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

O cauză pentru "creatorul această anomalie a făcut nu specificaţi un motiv.”

Am făcut o mulţime de lucru cu SharePoint caută în ultima vreme şi în mod specific clasa KeywordQuery, Proprietăţi şi metode.

Dacă doriţi setul de rezultate în returna rezultate dincolo suspecţii de obicei (a se vedea aici), Adăugaţi la colecţia de SelectedProperties, ca şi în:

myKeywordQuery.SelectProperties.Add("xyzzy");

Multe mulţumiri şi un sfat de la pălărie la Corey Roth şi Acest post de blog-ul extrem de util (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

În cazul meu, "xyzzy" nu este de fapt o proprietate gestionată.  Când am adăugat la SelectedProperties oricum, SharePoint au aruncat unul de meu preferat vreodată runtime excepţii:

"Creatorul de acest defect nu specifica un motiv."

Îmi place mai ales capitala "R" în motiv.  Acest lucru sună la mine ca echivalentul .NET"Nu am nici o gura, şi eu trebuie să striga.”

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Referinţă la îndemână: Implicit rezultatele de căutare KeywordQuery

Când vă invoca Execute() metoda pe un KeywordQuery, Aveţi posibilitatea să creaţi un ResultTable bazat pe ResultType.RelevantResults.  Acest fragment de cod ilustrează ce vreau să spun:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Tabelul rezultată va avea următoarele coloane de informații: 

WorkId
Protopopiat
Titlul
Autor
Dimensiune
Calea
Descriere
Scrie
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Am derivat această listă la o SharePoint 2010 mediu, curaj a redacta.  Sperăm că acesta va fi util pentru cineva în viitor.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Un motiv pentru: "Nu a reuşit pentru a extrage fişierul cab în soluție”

În timp ce lucrează pe o parte web visual student proiect astăzi, Am făcut o re-org minoră de unele fişiere pentru a fi puse în folderul _layouts ca parte a procesului de implementare. În mod specific, Am redenumit un fişier .js la "TypeAhead.js" la "TypeAhead(vechi).JS"  Am de gând să scoateţi-l cât mai curând succesoarea sa "TypeAhead.js" se dovedeşte corectă.  Parea ca aceasta:

image

Acest lucru imediat cauzat o problemă cu visual studio, atunci când am încercat să disloce proiectului:

Eroare în implementare pas "Adauga soluţie": Imposibil de extras cab dosar în soluție.

Se pare că ar trebui să nu puneţi o paranteză în nume de fişier.  Am scos parens şi care a rezolvat problema.

</scop>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin