Soluţie la problemă: “FileNotFoundException” Cu mea caracteristică receptor.

Am fost de lucru pe o caracteristică săptămâna trecută, care ar adăuga unele receptoare de eveniment la o anumită listă de instanţă. (I blogged un pic despre acest receptor lista aici).

Folosind linia de comanda, Am putut instala caracteristica cu nici o eroare (dar se vedea mai jos pentru eroare ascunse). Când am încercat să utilizeze caracteristica de pe site-ul, MOSS s-au plâns de "FileNotFoundException" eroare. Această intrare de blog descrie modul în care am rezolvat-o.

Aceasta este eroarea care MOSS mi-a arătat în browser-ul web:

Caracteristica ' b2cb42e3-4f0a-4380-otilia-1ef9cd526f20’ nu a fost instalat deoarece încărcarea de eveniment receptor montaj "xyzzyFeatureReceiver_0" nu a reușit: System.IO.FileNotFoundException: Nu a putut încărca fişierul sau asamblarea "xyzzyFeatureReceiver_0’ sau una dintre dependenţele sale. Sistemul nu poate găsi fişierul specificat.
Nume de fişier: "xyzzyFeatureReceiver_0’
la System.Reflection.Assembly.nLoad(AssemblyName fileName, Şir codeBase, Dovezi assemblySecurity, Adunarea locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
la System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Dovezi assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
la System.Reflection.Assembly.InternalLoad(Șir assemblyString, Dovezi assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
la System.Reflection.Assembly.Load(Șir assemblyString)
la Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Adunarea obligatoriu de logare este transformat OFF.
Pentru a permite Adunarea obligati eşec logare, setaţi valoarea de registru [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) pentru a 1.
Notă: Există unele penalizare de performanţă asociat cu Adunarea obligati eşec logare.
Pentru a dezactiva această caracteristică, eliminaţi valoarea registry [HKLMSoftwareMicrosoftFusion!EnableLog].

Depanarea problemelor cu Windows SharePoint Services.

Ştiu cum de a provoca în mod deliberat această eroare: nu Instalaţi ansamblul în GAC. dar, a fost în GAC. I a instala în mod normal, ansambluri în GAC trăgându-le în c:\windowsassembly folderul utilizând windows explorer. M-am simţit niciodată 100% confortabil face acest lucru pentru că am crezut întotdeauna că gacutil a existat un motiv … aşa că am încercat care. El a făcut nici o diferenţă.

Am cautat pe Internet şi a găsit acest post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Poster s-a întâmplat să fie utilizând aceeaşi rădăcină pic de cod (din cartea în interiorul AAC din această listă) aşa că a fost un semn de speranţă. Cu toate acestea, sugestia de decorare Adunarea cu un [asamblare: ] Directiva nu avea sens pentru mine. Am încercat-o oricum, şi am fost dreapta. El a făcut nici o diferenţă.

Apoi am observat că definiţia mea de clasă nu a fost publică. Am făcut-o publică şi că a făcut nici o diferenţă.

Următoarea, M-am dus la probleme de a permite "Adunarea obligati eşec jurnal" (urmând instrucţiunile utile şi precise oferite) şi acest lucru este în cazul în care lucrurile au început pentru a obţine interesant. Că log Arată-mi că runtime este în căutarea peste tot pe acel server pentru Adunarea mea. Chiar pare a fi căutaţi pentru el în meu medicament cabinet. dar … Acesta nu va căuta pentru el în GAC.

Am pus pe haina mea de iarnă şi du-te în căutare Internet din nou şi găsi că cineva a avut această problemă prea. Discuţie îndelungată în care postaţi badarau oprit în nimic şi nu pot găsi o soluţie.

Muta meu de asamblare într-unul dintre locurile de jurnal susţine că este în căutarea şi face un pic mai mult progres. Eu sunt recompensat cu o nouă eroare în browser-ul atunci când încerc să activaţi caracteristica:

Imposibil de creat caracteristică receptor obiect de asamblare "xyzzyFeatureReceiver_0", tip "Conchango.xyzzyFeatureReceiver" pentru caracteristica b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Valoarea nu poate fi nul.
Numele parametrului: tip
la System.Activator.CreateInstance(Tip tip, NonPublic booleene)
la System.Activator.CreateInstance(Tip tip)
la Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Depanarea problemelor cu Windows SharePoint Services.

Timp pentru o ultima călătorie la internet!

Acest timp am afla, destul de previzibil, că MOSS probleme această eroare pentru că adunarea nu este în GAC.

Vreau pentru a obţine ceva pozitiv de acest lucru şi să încerce să se simtă un pic de mândru că am creat Fugar MSIL ansamblurilor de, dar nu este de lucru. Eu sunt pur şi simplu supărat. Eu personal mormăind "pui sau ouă" sub respiraţia mea.

În cele din urmă decid să punt. Am crea un proiect nou şi copiaţi/lipiţi codul la incredible-cloaked-from-the-GAC-assembly non-de lucru de proiect peste la acest nou proiect. (Mă uit pentru un pavilion de construi numit ceva de genul "Ascundere la Adunarea obligatoriu dacă instalat în GAC" dar nu pot găsi unul).

Am caracteristică a instala şi a activa şi … funcţionează! Deci, după ce toate că, Trebuit să practic ' reboot’ proiectul meu. Acest lucru este un alt motiv de ce urasc calculatoare.

Am făcut-învăţa ceva util din aceasta. Am avut fost instalarea caracteristici folosind linia de comanda stsadm toată ziua şi fost folosind "-vigoare" opţiunea din obişnuinţă. Pentru unii motiv, Nu am folosit - opţiune vigoare atunci când am instalat noul proiect. de data aceasta, Am făcut de fapt, cu adevărat uitaţi să copiaţi acest nou proiect de asamblare în GAC. Ca rezultat al, Am primit "FielNotFoundException" eroare. de data aceasta, Am luat de la stsadm, nu atunci când am încercat pentru a activa caracteristica prin intermediul browser-ul web. Deci, -vigoare, de fapt, joacă două roluri. Vă permite să re-a instala o caracteristică existente. De asemenea, vă permite să instalaţi o caracteristică trăsură pentru două persoane, care nu poate lucra în timpul rulării prin suprimarea eroare. Se spune, probabil, la fel de mult în ajutorul undeva, dar nu am observat-o.

</scop>

Funny duminică: Top 10 Moduri de a deranja soţia ta

  1. Cumpara broccoli, atunci când ştii că există deja mai mult decât suficient în frigider.
  2. Du-te pentru o alerga. Răcoriţi-vă. Ia de pe curat de pernă şi înlocuiţi cu T-shirt. Se acoperă cu curate de pernă.
  3. Atunci când de conducere, întreb dacă ar trebui să mergem pe un drum greşit în jos o stradă cu sens unic.
  4. Pentru 15 ani, în fiecare duminică că soţia vă sugerează mergi la un muzeu, exprima surpriza ca muzeele sunt deschise duminica pe.
  5. Pentru 15 ani, ocazional sugerează merge la magazinul de carte locală duminică. Exprima surpriza ca nu ei sunt deschise duminica pe (mulţumesc mult Legile albastru!).
  6. Utilizarea 20 puncte pentru a face o 3 punct de viraj.
  7. Pe un loc răcoros toamna începutul după-amiezii, mers în camera şi porniţi A/C. Se plâng că este frig. Când soţia spune, "atunci de ce a făcut porniţi care, o prostie" şi ajunge la nap it off, apuca locul cald, ea a avut pe canapea. Puncte bonus dacă ea seama nu ai făcut-o până la mult mai târziu.
  8. Deschide un pot de ton alb delicioase şi mănâncă-l direct la poate, în pat, noaptea.
  9. Du-te în bucătărie, în timp ce soţia se mananca cina, deschide sertarul tacâmuri şi împinge ustensile în jurul până când soţia ţipetele, "ce cauti!"
  10. La primirea de noi cărţi de vizită, puneţi-le în secret toate în jurul casei: Sub pat, în perna, în interiorul ceşti de cafea, in poseta, în haină de buzunare, compartimente de manusa masina, cămară — oriunde vă puteţi gândi la.
  11. Scrie intrări de blog despre sotia ta.
  12. trezeşte-te.
  13. Când de mers pe jos străzile din New York City, fie în alertă pentru "iritabil" obiecte de pe sol. Ţinând cont de soţia lui temerile speciale, ajunge în jos ca şi cum să alegeţi unul până până şi de a pune, "hmm, Mă întreb ce care este?" (Fiţi pregătiţi pentru soţia organismului slam-vă ca în cazul în care ea este un agent secret service protejarea preşedintele de un lunetist sau vă veţi găsi te de stabilire pe spate pe trotuar).
  14. Unitate de două ori în jurul o parcare în căutarea spaţiu. Ştiţi că într-adevăr lovit murdărie plata cand fiul tău în bancheta din spate urla, "Oh nu! El o face din nou!"
  15. Scrie "top 10" liste care nu au 10 elemente.

===

Glumă de soţia bonus:

Două sex masculin co-lucrătorilor se duc la masa de prânz. Una dintre ele spune alte, "Să pierde un slip freudiene jenant de altă noapte."

"O freudiene alunecare? ce este acesta?"

"Ei bine, Când am terminat mâncând, chelnerita a venit şi a întrebat cum ne-a placut mesele noastre. Vroiam să spun, "Te-am iubit de piept de pui’ dar în schimb i-am spus "Am iubit sanii tai". Am fost atât de jenat."

"Ah," sa co-lucrător a răspuns:. "Am avut acelaşi lucru se întâmpla pentru mine acest weekend cu soţia mea. Am fost mananca micul dejun am vrut pentru a cere-o să treacă unt, dar in schimb am ţipat la ei, "Ai ruinat viaţa mea!’"

</scop>

Technorati Tags:

ID eveniment 1023: “Windows nu poate încărca extensible counter DLL MSSCNTRS”

ACTUALIZARE (04/08/08): I se pare că au rezolvat această problemă. Linia de comandă, Am fugit "c:\windowssystem32lodctr r" ca pe o intrare vorbesc despre InstallShield probleme şi care pare să au rezolvat-o pentru mine.

Am observat că în ultima vreme, fan meu pupitru/serverul se opreşte niciodată. Ştiu că este folosit pentru a dezactiva. Am luat un moment pentru a verifica it afară observat că un proces de VMware a fost difuzate o concordanţă 20% utilizare pe unul dintre CPU pe. Am verificat Jurnalul de evenimente şi am văzut aceste erori în jurnal aplicaţie întâmplă de zeci de ori pe minut:

Windows nu poate încărca extensible counter DLL UGatherer, DWORD prima în secţiunea de date este codul de eroare Windows.

Windows nu poate încărca extensible counter DLL UGTHRSVC, DWORD prima în secţiunea de date este codul de eroare Windows.

Windows nu poate încărca extensible counter DLL MSSCNTRS, DWORD prima în secţiunea de date este codul de eroare Windows.

Dacă I drill în detalii de unul dintre aceste mesaje, I a lua this:

Sursă: Perflib

Tip: Eroare

Categoria: Nici unul

ID eveniment 1023

Am făcut unele de cercetare şi acolo a fost un indiciu ar putea fi o problemă de permisiune în materie de acces la DLL-uri în cauză. Am jucat în jurul cu chestia asta, dar nu ar putea afecta lucrurile în mod pozitiv, aşa că am renunţat la care.

VMware a fost sâcâială-mi despre efectuarea o actualizare de ceva timp, Deci, am notat în jos versiunea am avut instalat (se pare că "1.0.1 construi 29996") şi a făcut update. Acest lucru mi-a actualizat la v1.04. Din păcate, aceasta nu rezolva problema.

Se poate opri nebun numărul de mesaje va meu jurnal aplicaţie dacă am închide un serviciu numit "Serviciu de autorizare VMware". Acest lucru mă împiedică să utilizaţi software-ul VMware, astfel încât … nu o astfel de mare opţiune.

Sistemul de operare gazdă este Windows XP 64 pic.

Nu cred că acest lucru sa întâmplat întotdeauna, dar nu-mi amintesc orice eveniment special care să fi condus la acesta.

Acesta este de ce-mi place computere.

</scop>

Technorati Tags:

Rapid & Uşor: Redenumiţi fişierul încărcat utilizând modelul de obiect SharePoint Via un receptor de eveniment

ACTUALIZARE: Acest lucru funcţionează, dar există limitări semnificative care sunt descrise în Comentarii. Acest lucru poate fi încă utilă în unele circumstanțele.

ACTUALIZARE 2: În proiectul meu curent, utilizatorii întotdeauna Încărcați documente. Ca rezultat al, Eu nu a alerga într-o problemă în cazul în care MS Word se execută şi crede că fişierul a fost redenumit pe ea. I a alerga într-o problemă, "fişierul a fost modificat de altcineva" şi acest lucru rezolvat prin intermediul unui pavilion de tip semafor simplu. Utilizatorii au nevoie pentru a schimba un câmp de date meta la valoarea sa implicită la altceva. Itemupdated() receptor caută o valoare validă de acolo înainte de a efectua de fapt Redenumire şi de atunci, Nu am avut probleme. Poate varia de kilometraj dumneavoastră.

Eu am o cerinţă de client de a schimba numele de fişiere încărcat la o bibliotecă de documente specifice pentru a se conforma cu o convenţie de denumire special. API nu furnizează o Redenumire"()" metoda. În schimb, vom folosi "MoveTo(…)". Aici este un pic minimă de cod pentru a realiza acest lucru:

 publice suprascrie nule ItemAdded(SPItemEventProperties proprietăţi)
        {
            SPFile f = proprietăţi.ListItem.File;

            f.MoveTo(proprietăţi.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Bit înşelător numai este "proprietăţile. ListItem.ParentList.RootFolder.Url". MoveTo() metoda necesită un URL. Care piure şir de puncte de mine la folderul rădăcină al meu curent bibliotecă de documente. Acest lucru permite-mi pentru a evita orice greu de codificare în receptor mea de eveniment.

Aceasta este o versiune mult mai util, care face acelaşi lucru, dar atribuie numele de fişier "Titlul":

 publice suprascrie nule ItemAdded(SPItemEventProperties proprietăţi)
        {
            DisableEventFiring();

            // Atribui titlul de acest element pentru numele fişierului în sine.
 // NOTĂ: Această misiune trebuie să aibă loc înainte de a ne modifica fişierul în sine.
 // Actualizare de asteptare() pe SPFile pare să invalideze proprietăţi în
 // unele sens.  Actualizărilor titlu"" nu a reuşit până la această schimbare (şi actualizare() apel)
 // au fost mutate în faţa schimbarea numele de fişier.
            proprietăţi.ListItem["Titlul"] = proprietăţi.ListItem.File.Name;

            proprietăţi.ListItem.Update();

            SPFile f = proprietăţi.ListItem.File;

            // Obţine extensia fişierului.  Am nevoie de asta mai târziu.
 şir spfileExt = noi AuthConfig(f.Name).Prelungire;

            // Redenumiţi fişierul ID element de listă şi de a folosi extensia de fişier pentru a menţine
 // că o parte din acesta intacte.
            f.MoveTo(proprietăţi.ListItem.ParentList.RootFolder.Url +
                "/" + proprietăţi.ListItem["ID"] + spfileExt);

            // Se muta.
            f.Update();

            EnableEventFiring();
        }

Forumul de discuţii: Cele mai bune practici respectare în mediul MOSS Non-triviale de garantare

Un coleg, "Marcaj", a început o discuţie de grup de știri potenţial interesantă concentrându-se pe "stabilirea excelent SharePoint guvernare de la începutul" pentru o 35,000 utilizatorul mediu.

Discuţia este aici: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop pe peste şi de a contribui!

</scop>

URL de acțiune particularizată nu va afişa pentru nou Feature

Eu sunt încă în obiceiul de crafting mea fişiere XML caracteristica de mână, deoarece este toate destul de nou pentru mine. Nu vreau să se bazeze pe un instrument de front-end că face lucruri nu înţeleg (El a spus ca el a scris o intrare de blog, folosind un instrument el nu înţelege).

Astăzi, Am fost încercarea de a adăuga o acțiune particularizată la setările de site-ul, dar este doar nu ar apărea. Am putea instala caracteristică şi a vedea în caracteristicile de site-ul, dar când am activat (fără erori) ea pur şi simplu nu ar apărea pe meniul drop-down.

În cele din urmă am dat seama că am greşit "SharePoint" în atributul de locaţie de <Acțiune particularizată din> nod. Acesta este fişierul de rău elements.xml:

<?XML versiunea="1.0" codificarea="UTF-8" ?>
<Elemente xmlns="http://schemas.Microsoft.com/SharePoint/">
  <Acțiune particularizată din
 ID-ul="SiteActionsToolbar"
 GroupId="SiteActions"
 Locaţie="Microsoft.Sharepoint.StandardMenu"
 Secvenţă="100"
 Titlul="bună!"
 Descriere="Acţiune de meniu particularizată adăugate prin intermediul o caracteristică."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL-ul="http://www.xyzzy.com"/>

  </Acțiune particularizată din>
</Elemente>

bun:

<?XML versiunea="1.0" codificarea="UTF-8" ?>
<Elemente xmlns="http://schemas.Microsoft.com/SharePoint/">
  <Acțiune particularizată din
 ID-ul="SiteActionsToolBar"
 GroupId="SiteActions"
 Locaţie="Microsoft.SharePoint.StandardMenu"
 Secvenţă="100"
 Titlul="bună!"
 Descriere="Acţiune de meniu particularizată adăugate prin intermediul o caracteristică."
    >
    <UrlAction URL-ul="http://www.xyzzy.com"/>
  </Acțiune particularizată din>
</Elemente>

That one took me a good two hours to figure out 🙂

Am lua consolare în faptul că unele zile în viitor, Voi fi în măsură să spun cu convingere, "înapoi în zi, Am avut la trei mile de mers pe jos de deal în zăpadă (desculţ!) pentru a implementa o caracteristică personalizat MOSS. Ai copii, nu ştii cât de uşor aveţi o! Cobor peluza mea!"

Nu pot să aştept.

</scop>

Technorati Tags: ,

Statistici blog

M-am gândit unii oameni ar putea fi interesate în statisticile de blog-ul meu. A mea puteţi folosi ca un etalon pentru a compara propriile.

I sînt running blog-ul meu Windows live spaces. Ei colecta statistici pentru mine şi nu ştiu nici un fel pentru a controla care. Este bine, în măsura în care merge, dar este destul de limitat în care nu poate face mult analiză reală cu ea. Mi-ar plăcea, de exemplu, pentru a fi capabil de a genera o listă de meu cel mai frecvent mesaje lovit, dar nu pot face asta fara un proces manual prohibitiv. Dacă cineva ştie mai bine, plz spune-mi.

Locuiesc spaţii statutul spune-mi: afisari totale pentru ziua, afisari totale pentru hit-uri pe săptămână şi totalul din ziua zero. Ea, de asemenea, spune-mi ceea ce oamenii au făcut pentru a ajunge la blog-ul meu (ex. Google, MSDN forum link-ul, etc).

În unele moduri, un hit"" este evident. Dacă sunteţi de lectură această frază chiar acum, v-aţi înregistrat aproape sigur ca un singur hit.

RSS este un pic confuz. Pe de o parte, Văd individuale hit-uri RSS toată ziua. dar, Văd, de asemenea, RSS "mătură". O matura este atunci când văd 20 sau 30 Hit-uri RSS la un unul sau doi a doua fereastră. Presupun că acestea sunt lucruri automate cum ar fi google check-in pe site-ul meu, poate că alte persoane browsere … nu sunt sigur. Acestea sunt cu siguranta un fel de proces automatizat. Nu pot spune, cu toate acestea, cât de multe hit-uri mea totală sunt automatizate şi cât de multe au un om real pe de altă parte. Presupun cel puţin 100 sunt automat de hit-uri pe zi.

La numerele!

Am scris primul meu blog intrare 27 iulie, 2007.

Am scris aproximativ 60 blog-ul intrările de atunci, mai mult 50 dintre care direct se referă la SharePoint.

Am început pentru a urmări meu hit-uri într-o foaie de calcul, pe o bază de zi cu zi la sfârşitul lunii septembrie.

Lunar începe:

Prima săptămână a: Total Hits
Octombrie 1,234
Noiembrie 2,162
Decembrie 3,071
Ianuarie 2008 4,253

Totală de lună

Lună Total Hits
Octombrie 6,620
Noiembrie 11,110
Decembrie 13,138

Mărcile de apă înaltă

Tip Total Hits
Cel mai bun zi 958
Cel mai bun săptămâna 4,253
Total Hits deoarece ziua Zero 42,438

Sunt interesat de alţii’ Statistici. Dacă aveţi grijă să împărtăşiţi dumneavoastră în Comentarii, vă rugăm să nu!

</scop>

Technorati Tags:

Duminica dimineata Funny: “da, da, da. Bla, bla, bla.”

Aproximativ şase ani în urmă, patru-an-vechi fiul meu şi am fost uitam la etaj un Discovery channel "atacuri de rechin" speciale (probabil asta). Era foarte tânăr la punct si am fost mereu îngrijorat, ceea ce el ar putea vedea pe un spectacol ca acest lucru şi cum el ar putea lua-o. Nu vreau să-l dezvolte, de exemplu, orice temerile speciale de apă sau divulga un secret ceva nepotrivit la prietenii lui şi, eventual, provoca reţea de prietenul lui copilul a venit crashing jos.

Descoperirea mânere foarte bine aceste tipuri de subiecte. Nu este despre crearea unui frica de ceva, dar mai degrabă de a arăta cum neobişnuit este pentru rechinii să atace oameni.

Deci, ne-am sunteţi-l uitam şi nu există acest atac unul deosebit de infricosator care implică o fetiţă. Ca descoperirea este construirea drama de atac, fiul meu (care a fost întotdeauna extrem de jumpy oricum), devine foarte excitat. Face unele zgomote despre cum neobişnuit este pentru rechinii să atace oameni, şi cât de rău trebuie să simt biata fată. Am încercat să explice că oamenii recupera de la aceste evenimente şi devin mai puternice pentru a. Cu toate acestea, Am avut de interpretat greşit bucurie. El nu a fost îngrijorat despre fata la toate. În schimb, în timp ce aplauze mâinile lui, El mi-a spus, "Rechinii place! Este grozav. Este minunat. Sale un vis devenit realitate!"

M-am gândit acest lucru a fost hilar, dar, de asemenea, foarte tulburătoare. Pe de o parte, Am fost bucuros — chiar şi un pic de mândru — că el ar putea avea puternice sentimente empatic, eco-specii deşi ele pot fi. Ca oameni, avem nevoie pentru a dezvolta "empatic muschii noastre" aşa vorbi sau veţi termina ca Acest tip 🙂 On the other hand, El a fost senzaţia de eco-specii empatie faţă de o specie care a fost expoziţional comportamentul ostile la propria. Am fost foarte luptă cu acest lucru atunci când naratorul folosit cuvântul "paradigma". Fiul meu luat pe asta şi mi-a cerut ceea ce a însemnat.

Asta nu este un astfel de cuvânt simplu pentru a descrie la un vechi de patru ani, dar I-am dat un try. Când mă gândesc la cuvântul "paradigma", Thomas Kuhn este niciodată departe de gândurile mele. Am citit Structura de revoluţii ştiinţifice înapoi la Lafayette şi pentru mai bine sau mai rău, cuvântul "paradigmă" este insarcinata cu sensul suplimentare pentru mine. (Ca un fel de cuvântul "contact" după ce a auzit o voce de telefon film să-mi spui unde am putut vedea Acest film [M-am gândit carte a fost mai bine]; Am spus mereu la mine, "CONTACT!" ori de câte ori am vedea sau auzi pe cineva spun "contact").

Oricum, Am încercat să-l explice o definiţie de Kuhnian, că este "un istoric mişcare de gândire" şi că este un "mod de gândire cu un număr de built-in ipoteze care sunt greu de evacuare pentru persoanele care trăiesc în acel moment." desigur, nu vorbesti ca cu un patru - ani, aşa că am încercat să-l definesc succesiv la mai mici piese şi senzaţie destul de mândru de mine ca să fac acest lucru. (Am doar ştiut ca cineva din afara colegiu ar grijă că am citit Kuhn!).

Eu sunt doar încălzirea la sarcina atunci când el a întrerupe-mă. Flutura mâna în direcţia mea generale şi niciodată a lua ochii de pe un alt atac brutal rechin, el doar spune, "da, da, da. Bla, bla, bla.".

So much for that 🙂

În acel moment, Am decis să fugi, retoric vorbind, Stai pe spate, şi bucuraţi-vă de vizionarea rechinii ataca oamenii cu fiul meu.

</scop>

Technorati Tags:

Comutare vizualizare vizualizare bazat pe ID utilizator într-un formular InfoPath

Am avut o dezvoltat un formular InfoPath cu mai multe vizualizări pentru a sprijini o locație nouă / procesul de pe-internat. Când compania angajeaza persoana noi, departamentul IT şi alte grupuri trebuie să ia măsuri (parametrizaţi salarizare, permite accesul la aplicaţii corespunzătoare, Localizaţi un birou, etc). Vom folosi pe forma, dar o opinie diferită de forma pentru fiecare dintre aceste funcţii.

La această societate, cele mai multe dintre persoanele implicate în procesul de afaceri eşti IT-savvy, asa ca atunci cand au acces la forma, vizualizarea lor implicită este un meniu"" Vezi cu butoane care le direct la funcţia lor specifice. Cu toate acestea, avem nevoie de a simplifica lucrurile pentru noi de inchiriat directe manager. Această persoană nu ar trebui să vedeţi orice de IT chestii legate de. de fapt, ea ar trebui să vedeţi doar o vizualizare a formularului şi nu au chiar o opţiune pentru a vedea alte vizualizări.

În cazul nostru, care directă a managerului de cont este direct legat de formă curtoazie de un selectorul de contact (care am sunt întotdeauna doresc să numim "oameni selectorul de" pentru un motiv oarecare).

Paşii sunt după cum urmează:

1. În modul proiectare, du-te la Tools-> Opţiuni formular-> Deschiderea şi salvarea.

2. Selectaţi "reguli".

3. Crearea unei reguli noi ale căror acţiune este "comutare pentru a vizualiza" şi ale căror condiţie pârghii numele de utilizator() funcţia.

userName() Întoarce "simplu" numele de utilizator fără domeniu. Dacă eu log în SharePoint cu acreditări de "domainpagalvin", userName() Întoarce "pagalvin".

Selectorul de contacte oferă trei biţi de informaţii pentru un contact. "AccountID" porţiune este cel mai util pentru acest scenariu. Singurul lucru care face acest lucru chiar şi un pic de provocare este că selectorul de contact (în mediul meu oricum) Întoarce Identificatorul de domeniu şi de utilizator, ca în "domainpagalvin". Aceasta ne împiedică de la a face un afecţiune egalitatea de drept-înainte de AccountID ("domainpagalvin") niciodată nu este echivalent cu nume de utilizator() ("pagalvin").

Putem obţine în jurul acest folosind "conţine" operatorul: AccountID conţine nume de utilizator().

Putem lua it suplimentare şi pre-Comitatul pend un domeniu greu codificate în faţa numele de utilizator() funcţia de a obţine noastre selectare egalitatea şi elimina riscul de fals pozitivă pe conţine operatorului.

Vom avea cu adevărat ca să comuta automat Vezi pentru alt users bază on lor membru al grupului de securitate AD. De exemplu, atunci când un membru al "IT Analytics" Grupa accesează formularul, comuta automat la vizualizarea de analiză IT. Nu am avut timp să pună în aplicare, dar primul meu gând este de a crea un serviciu web care ar avea o metodă ca "IsMemberOfActiveDirectorySecurityGroup", să-l daţi numele de utilizator() şi a reveni înapoi adevărat sau fals. Oricine are orice alte, idee geniala mai multe? Există orice funcţie de SharePoint noi puteţi pârghie de InfoPath să facă determinarea?

</scop>

Technorati Tags:

Accidental adăugarea de cod la un formular InfoPath; În mod deliberat eliminarea acesteia

Atunci când se lucrează cu butoane pe un formular, Noi adăugăm adesea reguli. Accesaţi editorul de reguli la proprietăţile de butonul.

Când faceţi clic în jurul rapid, este uşor să faceţi clic accidental pe "editare formular cod" în loc de "reguli …".

Prima dată am făcut acest lucru, Am anulat din editorul de cod. Cu toate acestea, Când am încercat să publice forma un pic în timp ce mai târziu, este necesar ca am publica ca un formular aprobat de Administrator şablon" (avansate)". Eu nu face de fapt orice programare şi am absolut nu a vrut să treacă printr-un proces de aprobare inutile. Am fost un pic de panică în timp din cauza constrângerilor de timp. Pentru a obţine trecut-o, Pur şi simplu am restaurat o copie de rezervă anterioară şi a continuat. Am vazut recent unele posturi de blog despre oameni intra în XML a formularului pentru a tweak lucruri şi mi-era teamă aş avea de a face ceva similar.

Astăzi, Am facut-o din nou. de data aceasta, Am avut un pic mai mult timp pe mâinile mele şi a constatat că pe care se poate anula aceasta.

du-te la:

Instrumente-> Opţiuni formular-> Programare: "Eliminaţi cod"

Ea nu a lua mult mai uşor decât cea.

</scop>

Technorati Tags: ,