arhive lunare: Februarie 2008

Anunţ Public minore: Setările de securitate vii Windows şi proprietarii de spaţiu de contactare

Primesc o mână de mesaje de la persoane fizice prin intermediul built-in "trimite un mesaj" funcţia Microsoft oferă spaţii vii (care găzduieşte, de asemenea, blog-ul meu) în fiecare lună.

Aproximativ o treime din momentul, utilizatorii au asigurat contul lor viu spatii, astfel încât nu poate răspunde. Aceasta este un fel de caracteristică de anti-spam presupun.

</scop>

Explicaţie simplă: “Valoarea nu se încadrează în intervalul de aşteptat.”

ACTUALIZARE: Un anonim poster a lăsat un comentariu mare despre numele de interne. Asiguraţi-vă că să-l citiţi.

Atunci când se lucrează cu receptoare de eveniment şi alt cod care face referire la elemente de listă SharePoint prin modelul de obiect, Fac frecvent greseli care generează această eroare la rulare:

Eroare de încărcare şi rulează eveniment receptorul Conchango.xyzzyEventReceiver în xyzzy, Versiunea = 1.0.0.0, Cultură = neutră, PublicKeyToken = 0dc50a750396c3ac. Informații suplimentare despre este de mai jos. : Valoarea nu se încadrează în intervalul de aşteptat.

Cred că aceasta este o destul de generic de eroare care este potenţial cauzat multe moduri diferite de. Cu toate acestea, o explicaţie simplă este că eu sunt corelarea un câmp incorect. Dacă numele de domeniu este "Scadenta", Eu trebuie să referinţă ca aceasta într-un receptor de eveniment:

proprietăţi.ListItem["Scadenta"]

Când am misspell sau de a folosi cazul greşit atunci când câmpul de referinţă, SharePoint generează mai sus menţionat eroare de execuţie. De exemplu, Acest lucru este greşit:

proprietăţi.ListItem["scadenta"]

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Sfat rapid de utilizatorul final: Sortare vizualizări într-o bibliotecă de documente, Lista, etc.

Putem, ar trebui să şi de a crea mai multe vizualizări în listele SharePoint (biblioteci de documente, liste particularizate, etc). SharePoint intotdeauna listele disponibile vederi în ordine alfabetică. Nu putem schimba acest lucru folosind din box funcţionalitate. Dacă se poate face prin personalizare (şi eu nu sunt sigur că se poate), este departe de a tehnice pentru dumneavoastră tipic utilizatorului final.

Dacă doriţi să controlaţi ordinea în care SharePoint listele disponibile views, adaugă pur şi simplu un număr sau o scrisoare cu numele de vedere, ca şi în:

1 – De tip de Material
2 – Toate documentele
3 – Data scadenţei

-sau-

ADRIAN – De tip de Material
B – Toate documentele
C – Data scadenţei

Am creat, de asemenea, vedere al căror scop este strict pentru a alimenta un KPI. Am fost următoarele această convenție de denumire:

Z_KPI_[Descriere]

Care sunt cauzele meu "KPI" vedere să apară în partea de jos a listei.

</scop>

Aboneaza-te la blog-ul meu.

Funny duminică: “Când am fost un băiat mic”

Ca un părinte, undeva-a lungul liniei am descoperit "când am fost un băiat mic" truc.

Fiul meu, probabil, patru sau cinci, în timp, jucam un balon şi place cel mai puţin băieţi care joaca cu baloane, El mi-a venit l. El a fost foarte supărat. Lumea a ajuns la final. I-am spus să-l, "când eram mic băiat, Am avut un balon şi ea mi-a venit si eventual, Am primit un balon de noi." Acesta părea pentru a ajuta-l să facă faţă cu pierderea lui şi a condus la o distracţie vorbesc despre ce a fost ca atunci când am fost un băiat mic.

Că a lucrat bine ca o tehnica de consolare şi am folosit-o o de mai multe ori în următoarea perioadă de timp. Am făcut a lua into păstrăv o dată când lui monstru fermier 3 creatură a murit. Am vorbit despre cum cainele meu, Prințul, a murit într-un accident de masina. de data aceasta, Răspunsul lui a fost, "Acum mă simt rău despre două lucruri!" Am shied departe folosind "atunci când am fost un băiat mic" tehnica pentru consolare după aceea.

Înainte de incidentul de câine mort, cu toate acestea, De asemenea, am început să folosească tehnica pentru a convinge-l pentru a face treburile. "Când am fost un băiat mic, Am avut de a ieşi şi de a lua ziarul", "camera curata", "get mami ei ceaşcă de cafea", etc.

Acest lucru a fost destul de succes pentru un timp, dar el a început să tot mai revolte împotriva tiraniei copilariei mele. Un eveniment, în special, marcat sfârșitul. I-am spus să aducă cutii de gunoi de la marginea trotuarului înapoi la garaj. El a susţinut şi am răspuns, "Când am fost un băiat mic, A trebuit să iau gunoi înapoi la garaj." El a răspuns, "Oh da! Ei bine, atunci când au fost un băieţel, Asta a fost prost!".

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Opinii şi coloane pe listele și bibliotecile de documente nu poate fi asigurat

ACTUALIZARE (02/29/08): Acest nou proiect de codeplex pare să ofere o metodă pentru asigurarea coloanele individuale: http://www.codeplex.com/SPListDisplaySetting. Dacă aveţi orice experienţă de lucru cu ea, vă rugăm să lăsaţi un comentariu.

Postere forum frecvent cere o întrebare ca aceasta: "Am o vedere de managerul şi şi vedere personal o listă. Cum pot securiza vizualizarea manager, astfel încât personalul nu pot folosi?"

De asemenea, frecvent cere o întrebare legate: "Vreau să asigure o coloană de metadate specifice, astfel încât numai managerii pot edita acea coloană în timp ce alţii nu pot vedea chiar ea."

Aceste răspunsuri se aplică atât AAC 3.0 şi MOSS:

  • SharePoint nu oferă suport de out-of--box pentru securizarea views.
  • SharePoint nu oferă suport de out-of--box pentru coloanele de securitate.

Există mai multe tehnici o puteţi urma pentru a îndeplini aceste tipuri de cerințele de securitate. Aici este ceea ce pot să cred că:

  • Utilizează securitatea la nivel de element de out-of--box. Vedere respecta întotdeauna configurare de securitatea la nivel de element. Eveniment receptoare şi/sau flux de lucru poate automatiza cesiune de securitate.
  • Utilizaţi vizualizări personale pentru "privilegiat" vizualizari. Acestea sunt destul de uşor de configurat. Cu toate acestea, din cauza lor personale"" natura, Acestea trebuie să fie configurat pentru fiecare utilizator. Utilizarea standard de securitate de configurare pentru a împiedica pe altcineva de la crearea o vizualizare personală.
  • Utilizaţi o parte de web date Vezi şi pune în aplicare un fel de soluţie de tundere AJAXy de securitate.
  • Roll propria funcţionalitate de afişare listă şi să includă tunderea de securitate la nivel de coloană.
  • Modifica date forme de intrare şi de a folosi JavaScript în legătură cu modelul de securitate să implementeze securitatea la nivel de coloană tunderea.
  • Utilizaţi un formular InfoPath pentru introducerea datelor. Punerea în aplicare a tăia securitatea la nivel de coloană prin intermediul web serviciu chemare la spre SharePoint şi condiţional ascunde câmpuri în funcţie de necesităţi.
  • Roll propria ASP.NET date intrare funcţia care implementează tunderea de securitatea la nivel de coloană.

Dintre aceste opţiuni niciunul nu într-adevăr mare, dar există cel puţin o cale de urmat în cazul în care aveţi nevoie pentru a, chiar dacă este greu.

NOTĂ: Dacă te duci în jos oricare dintre aceste căi, nu uitaţi despre "acţiuni-> Deschide cu Windows Explorer". Doriţi să vă asiguraţi că vă testaţi cu această caracteristică pentru a vă asigura că nu funcţionează ca un "back door" şi înfrângerea schema de securitate.

Dacă aveţi alte idei pentru sau experienţe cu asigurarea coloane sau views, vă rog e-mail-mă sau lăsaţi un comentariu şi voi actualiza această postare după caz.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Iute Vîrf: Numerele de versiune BDC ADF sunt prietenul tău

Daca tu esti parte de codificare ADF fişiere şi de a face o mulţime de cicluri de import un cod/test, utilizaţi numărul de versiune pentru a face viaţa mai uşoară.

Urasc sa recunosc, dar până la această săptămână, Am fost întotdeauna ştergerea ADF şi re-importul de l. Acest lucru ar sparge coloane de date mea de afaceri şi mă re-sârmă le face. Toate inutile.

Fişier aceasta sub "este evident o dată tu a vedea it".

Exemplu:

<LobSystem
xmlns:XSi="http://www.w3.org/ 2001/XMLSchema-exemplu" XSi:schemaLocation="http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Tip="WebService" Versiunea="1.2.0.0" nume="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalog">

Schimba acea versiune şi re-importul şi coloana de date de afaceri existente utilizează versiunea actualizată automat cu nici o configurare suplimentare necesare.

</scop>

Aboneaza-te la blog-ul meu.

Technorati Tags:

Soluție: Alegere BDC afişează numai o coloană rezultatelor

În încercările mele pe-merge la furnizarea de un coloană de căutare mai util utilizează BDC, Am lovit un perete cu selectorul de BDC. Dacă nu aţi vedea it, selectorul BDC este similar cu o alegere de oameni, cu excepţia faptului că funcţionează cu coloane de tip "date de afaceri".

Accesaţi selectorul făcând clic pe pictograma carte deschisă de o coloană de date de afaceri ca:

imagine

Imaginea de mai sus arată o coloană de date de afaceri numit "Master Document Id". Acea coloană este conectat, Via BDC, la un serviciu web. Serviciul web întoarce două coloane de informaţii: Document ID şi titlul. Afaceri scopul aici este de a oferi o "acest document este bazat pe" funcţia. Utilizatorii selectați un maestru"" document şi salvaţi-le atunci când, un receptor de eveniment copiază meta câmpurile de date la care se face referire maestru.

În mod implicit, selectorul BDC arata acest lucru atunci când am de căutare pentru un document al cărui ID = "38":

clip_image002

Care este util, dar nu suficient de bun. Oamenii nu gândesc în termeni de ID-uri, ei cred în titluri sau alte date meta. Târnăcop vă permite să căutaţi pe alte coloane (ex. Titlul) dar nu va afişa lista reale de titluri a găsit, doar lor DocId's așa cum se arată aici:

clip_image002[1]

(Ecran shot nu este atât de mare, pentru că am nu alegeţi o căutare care returnează niciun rezultat valid, dar puteţi vedea că dacă acesta a găsit unele rezultate, Acesta ar fi arătat numai DocId lui, nu titluri).

Am căutat de înaltă şi joasă pentru răspunsul la acest lucru şi nu a reuşit. Colegul meu, Venerabilul Jonathan Bradshaw, a cu care se confruntă şi a rezolvat această problemă. Când am ajuns la el pentru ajutor, El a subliniat mine în direcţia cea bună.

Configuraţi selectorul pentru a afişa mai multe coloane via "ShowInPicker" proprietate în ADF:

<Proprietate nume="ShowInPicker" Tip="System.boolean">adevărat</Proprietate>

În mai multe detalii:

  <!-- Titlul -->
  <TypeDescriptor TypeName="System.string" nume="Titlul" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Titlul</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Proprietăţi>
      <Proprietate nume="DisplayByDefault" Tip="System.boolean">adevărat</Proprietate>
      <Proprietate nume="ShowInPicker" Tip="System.boolean">adevărat</Proprietate>
    </Proprietăţi>
  </TypeDescriptor>

Setarea acestei proprietăți să introducă o problemă minoră. De îndată ce aţi stabilit-o o dată, ai nevoie să-l setaţi pentru fiecare coloană pe care doriţi să arate. În cazul meu, Selector de BDC a arătat DocId implicit. Cu toate acestea, după ce am adăugat "ShowInPicker" titlu, DocId nu mai este afişată. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Aici este rezultatul:

imagine

(Sa-ti explic ciudat "168 – CamlSchema.xsd" construction in a future blog post. În scurt, Acesta este un şir concatenat care permite o puţin mai bună experienţă de utilizator).

desigur, având în scris această intrare în blog, Tocmai am făcut o căutare pentru "ShowInPicker" şi a găsit numeroase hit-uri, inclusiv: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</scop>

Aboneaza-te la blog-ul meu!

Technorati Tags:

Rapid & Uşor: Creaţi un Folder şi asociaţi un tip de conţinut (Sau, Au KPI dumneavoastră şi le mănâncă prea)

Pentru a rezolva o problemă de KPI Am scris despre aici, Am făcut unele teste şi a descoperit că KPI lui de lucru împotriva dosare cu meta-date în acelaşi mod ca lucra împotriva documente sau lista de elemente. Mi s-a dovedit prin crearea unui nou tip de conţinut bazate pe tipul de conținut folder şi apoi adaugă câteva câmpuri. Am creat unele indicatori şi s-au dovedit că KPI-uri funcţionează conform aşteptărilor. Acest lucru a fost binevenit de ştiri. Nu este perfect, deoarece detaliaþi-jos veţi obţine de la KPI-ul împotriva folderele nu este exact ceea ce vrei. Acest lucru nu este prea mult un dezavantaj în cazul meu, pentru că 1) utilizatorii finali nu ştiu mai bine şi 2) masina de gaurit-jos se duce la un folder. Fac clic pe numele folderului şi sunt la elementul. Acesta este de două clicuri în loc de una, care nu este sfârşitul lumii.

Acest lucru frumos curgea cu munca făceam. Creez un folder pentru fiecare document care devine încărcat. Acest lucru se face printr-un receptor de eveniment. Ca rezultat al, este o bucată de tort să păstreze folderul părinte meta-date în sincronizare cu KPI-condus meta-date din fişierul în sine, deoarece sanitare este deja în locul. This allows me to have my KPI’s and eat them too 🙂

Am modificat la receptor de eveniment pentru a adăuga folderul şi apoi setaţi acest nou dosar pe tipul de conţinut pentru meu personalizat tip de conținut KPI-prietenesc. Acest bit de cod a făcut truc:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Documente").Subfolderele;
  SPFolder addedFolder = srcFolders.Add(proprietăţi.ListItem.ID.ToString());
  SPContentTypeId kpiCT = noi SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Conținut de tip ID"] = kpiCT;
  addedFolder.Item.Update();

Pentru a localiza real ID-ul tipului de conținut, Am accesat acel tip de conținut prin intermediul site-ul setări şi copie/lipit-o la URL-ul ca:

imagine

</scop>

Aboneaza-te la blog-ul meu!

Technorati Tags: ,

Rapid şi uşor: Obţine SPFolder de un SPListItem într-un receptor de eveniment

Urasc sa recunosc, dar m-am luptat cu acest unul toate zi. Receptorul meu eveniment trebuie să actualizeze un câmp din folderul său părinte. Acest lucru pic Arată cum se face:

privat nule UpdateParentFolder(SPItemEventProperties proprietăţi)
{

SPFolder thisItemFolder = proprietati.ListItem.File.ParentFolder;
thisItemFolder.Item["Starea de aprobare ZZ"] = "O veste bună, toată lumea!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

În acest caz, Am de lucru cu o bibliotecă de documente şi proprietăţile sunt provenind de la un eveniment ItemAdded.

Truc este că nu pot obţine SPFolder elementului direct de la elementul în sine (adică. proprietăţi.ListItem.Folder este null). În schimb, Du-te la elementul din listă fişierul asociat şi de a lua dosar pliant.

</scop>

Aboneaza-te la blog-ul meu!

Technorati Tags:

Încă un alt eveniment receptor depanare truc

Sunt sigur că nu sunt prima persoana care a venit cu acest lucru. Cu toate acestea, Nu am observat cineva publica un truc ca acest lucru, deoarece am început acordând o atenţie aproape de comunitatea ultima iulie. Deci, M-am gândit aş post it this vîrf rapid şi uşor de depanare.

Sunt de lucru pe un receptor de eveniment, care a început pentru a genera această eroare în 12 stup:

Eroare de încărcare şi rulează eveniment receptorul Conchango.xyzzyEventReceiver în xyzzy, Versiunea = 1.0.0.0, Cultură = neutră, PublicKeyToken = blahbalhbalh. Informații suplimentare despre este de mai jos. : Obiectul de referinţă nu setat la o instanţă a unui obiect.

Nu ştiam unde am avut introdus acest bug pentru că am făcut prea multe lucruri într-unul de meu cicluri de cod/implementat/testat.

Am încercat această soluţie pentru a obţine meu pdb acolo cu speranţa că SharePoint 12 stup ar arăta stivei, dar nu luck. Nu ştiu dacă este posibil şi dacă cineva nu, vă rugăm să-mi spuneţi 🙂

Ştiu că este posibil să scrie propriile mesaje de jurnal pentru a 12 stup. Sincer, Am vrut ceva un pic mai puţin înfricoşător şi mai rapid să pună în aplicare.

Aceasta a avut loc la mine că aş putea obţine cel puţin câteva informaţii de bază urme de capturare şi re-throwing generice excepţii ca aceasta:

  încercaţi {
    UpdateEditionDate(proprietăţi);
  }
  prinde (Excepţie e)
  {
    arunca noi Excepţie("Dispecer, UpdateEditionDate(): Excepţie: [" + e.ToString() + "].");
  }

Acest lucru a arătat până în 12 Stupul astfel:

Eroare de încărcare şi rulează eveniment receptorul Conchango.xyzzyEventReceiver în xyzzy, Versiunea = 1.0.0.0, Cultură = neutră, PublicKeyToken = gina. Informații suplimentare despre este de mai jos. : Dispecer, UpdateEditionDate(): Excepţie: [System.NullReferenceException: Obiectul de referinţă nu setat la o instanţă a unui obiect. la Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(Proprietăți SPItemEventProperties) la Conchango.xyzzyManagementEventReceiver.Dispatcher(Proprietăți SPItemEventProperties, Șir eventDescription)].

Care mi-a dat toate detaliile de care am nevoie pentru a urmări în jos această problemă specială şi mă aştept să o folosească mult merge înainte.

</scop>

Aboneaza-te la blog-ul meu!