arhive lunare: Noiembrie 2007

Nu puteţi bate SharePoint pe Reach

În timpul ultimele două zile, Am participat la două reuniuni în care am prezentat rezultatele unui proiect SharePoint. CIO şi echipa sa au aderat prima întâlnire. Care este standard şi nu în special notabile. Departamentul IT este evident implicată într-un rollout de întreprindere orice proiect de tehnologie. A doua întâlnire extins pentru a include un vasile. la marketing, mai mulţi directori reprezentând HR, Logistica, De fabricaţie, Proiecte de capital, Calitate, De cumpărare, Dezvoltare corporativă şi alte departamente (Unii dintre ei nu au fost chiar direct implicat în faza actuală). Care este un puternic largă audienţă.

În viaţa mea anterioară, Am lucrat în primul rând pe proiecte ERP si CRM. Ambele au un domeniu destul de larg soluţie, dar nu aşa de larg ca SharePoint. Pentru a fi pe deplin înfăptuite, Proiecte SharePoint în mod legitim şi necesar ajunge în fiecare colţişor al unei organizatii. Cât de multe alte soluţii de Intreprindere au care ajunge la un fel de? Nu multe.

SharePoint reprezintă în mod clar o enormă oportunitate pentru cei dintre noi suficient de norocos pentru a fi în acest spaţiu. Acesta oferă o mare oportunitate de tehnică (care este transformat într-un fel pe cap aici sub "Tehnologii tu trebuie să stăpânească"). Dar chiar mai bine, SharePoint ne expune la o gamă largă şi largă a proceselor de afaceri prin aceste angajamente. Cât de mulţi specialişti CRM de lucru cu partea de producţie a companiei? Cât de multe ERP consultanţi lucrează cu resurse umane talentul achiziţie? SharePoint depăşeşte amândoi.

Ca orice, nu este perfect, dar este un loc al naibii de bine să fie.

Pentru dragostea de [completaţi cel mai iubit persoana/superior fiinţa ta], nu se schimba "titlul’ site-ul coloană.

Pe SharePoint forumuri, ocazional cineva întreabă despre "modificarea eticheta titlu" sau despre "eliminarea titlul din listele".

Linie de fund: Nu o fac!

Din păcate, interfaţa cu utilizatorul permite schimbarea one-way că eticheta de coloană, așa cum se arată:

imagine

Titlul este o coloană asociate cu elementul"" tipul de conţinut. Multe, multe, multe lui CT utilizaţi această coloană şi dacă aveţi o modificaţi aici, că valurile afară peste tot. Există o bună şansă de care nu ați intenționat pentru ca să se întâmple. Ai fost, probabil, de gândire pentru tine, "Am o listă de căutare personalizate şi" titlu’ doar nu are sens ca numele unei coloane, aşa că am de gând să-l să schimbe "codul de stare’ şi adăugaţi o coloană de descriere." Dar dacă urmaţi prin acest gând şi redenumiţi "titlul’ la "Cod de stare", fiecare lista titlu (inclusiv bibliotecile de documente) modificările aduse Codului de stare"" şi tu, probabil, nu a intenţionat pentru ca să se întâmple.

Problema reală este că aceasta este o schimbare de sens unic. UI "ştie" ca titlu"" este un cuvânt rezervat. Deci, Dacă încercaţi şi schimba codul de stare"" înapoi la "Titlul", Acesta vă va împiedica şi acum le-aţi pictat-te într-un colţ using paint that never dries 🙂

Deci ceea ce se întâmplă dacă aţi modificat deja se? Nu am vazut raspunsul ne dorim, care este o metodă simplă şi uşor de a schimba eticheta înapoi la 'Titlu'. chiar acum, cel mai bun sfat este de a schimba la ceva de genul "Doc/element Title". Care este o etichetă suficient de generice care nu poate fi prea puternic pentru utilizatorii dvs..

Am câteva alte idei care sunt pe lista mea de temă de lucruri de cercetare:

  • Contactaţi Microsoft.
  • Faceti ceva cu modelul de obiect, poate în legătură cu o caracteristică.
  • Dau seama schema bazei de date şi actualizaţi manual SQL. (Vă rugăm să contactaţi Microsoft înainte de a face acest lucru deşi; probabil se va anula contractul dumneavoastră de sprijin).

Dacă cineva ştie cum să rezolve această, vă rugăm să posta un comentariu.

Update după-amiaza târziu, 11/15: Am gasit acest link care descrie o metodă pentru a crea un tip de listă care nu are un titlu de coloană: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF şi prietenul tău, CDATA

Am observat unele ciudat şi inutile mână-codare de RdbCommandText în câteva exemple (inclusiv documentaţia MSDN).

Am vrut să subliniez a nou-veniţi la BDC că comenzi poate fi înfăşurat în interiorul o etichetă CDATA în naturală"" forma. Deci, această construcţie incomode:

<Proprietate nume="RdbCommandText" Tip="System.string">
Selectaţi dbo.MCRS_SETTLEMENT.id, DBO.MCRS_SETTLEMENT.settlement la dbo.MCRS_SETTLEMENT
ÎN CAZUL ÎN CARE (ID-ul &gt;= @MinId) ŞI (ID-ul &lt;= @MaxId)
</Proprietate>

pot fi reprezentate mai bine în acest fel:

<Proprietate nume="RdbCommandText" Tip="System.string">
<![CDATA[
Selectaţi dbo.MCRS_SETTLEMENT.id, DBO.MCRS_SETTLEMENT.settlement la dbo.MCRS_SETTLEMENT
ÎN CAZUL ÎN CARE (ID-ul >= @MinId) ŞI (ID-ul <= @MaxId)
]]>
</Proprietate>

</scop>

BDC grund

Intro la BDC

Exemplu funcţionale: ADF BDC care se conectează la baza de date SQL cu embedded user identitate şi password

Am nevoie pentru a firului de până MOSS o bază de date SQL prin intermediul BDC. În scopuri de testare/POC, Am vrut să încorpora SQL cont utilizator ID-ul şi parola în Alimentatorul automat de documente. Incepand cu Acest şablon (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Am creat un ADF care se conectează la o anumită instanţă de SQL server şi se conectează cu un anumit utilizator ID-ul şi parola şi indicat în acest fragment:

  <LobSystemInstances>
    <LobSystemInstance nume="ClaimsInstance">
      <Proprietăţi>
        <Proprietate nume="AuthenticationMode" Tip="System.string">PassThrough</Proprietate>
        <Proprietate nume="DatabaseAccessProvider" Tip="System.string">SqlServer</Proprietate>
        <Proprietate nume="Sursa de date RdbConnection" Tip="System.string">exemplu de real serveractual</Proprietate>
        <Proprietate nume="RdbConnection iniţial Catalog" Tip="System.string">real catalog inițială</Proprietate>
        <Proprietate nume="RdbConnection integrate de securitate" Tip="System.string">SSPI</Proprietate>
        <Proprietate nume="Gruparea de RdbConnection" Tip="System.string">fals</Proprietate>

        <!-- Acestea sunt valori cheie: -->
        <Proprietate nume="ID-ul RdbConnection" Tip="System.string">oefecti ID utilizator</Proprietate>
        <Proprietate nume="RdbConnection parola" Tip="System.string">real Password</Proprietate>
        <Proprietate nume="RdbConnection Trusted_Connection" Tip="System.string">fals</Proprietate>

      </Proprietăţi>
    </LobSystemInstance>
  </LobSystemInstances>

Nu este o bună practică, dar este util pentru o configurare simplă şi rapidă de testare. Acest lucru a fost surprinzător de greu să dau seama. N-am mai găsit un exemplu funcţionale cu cuvinte cheie de căutare:

  • ADF încorporat userid şi password
  • Încorporaţi id de utilizator şi parola în Alimentatorul automat de documente
  • Încorporaţi id de utilizator şi parola în adf bdc
  • Grund de bdc SharePoint
  • SharePoint încorporaţi id de utilizator şi parola în Alimentatorul automat de documente

</scop>

Aboneaza-te la blog-ul meu.

Acțiuni de flux de lucru particularizate SPD — accesorii de manipulare şir

Despre o săptămână în urmă, Am început un proiect de codeplex, care oferă o metodă simplă şi rezonabil generice pentru adăugarea funcţii de acțiune particularizată de flux de lucru SharePoit Designer. Este descris aici: http://www.codeplex.com/spdwfextensions. Dincolo de doar oferind un cadru, de asemenea, îşi propune să furnizeze un set de funcţii utile care va face mai util/flexibile/puternic SPD.

Aici sunt caracteristici curent planificate pentru versiunea 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Dacă cineva are nici un interes în acest proiect, vă rugăm să lăsaţi un comentariu sau start/adăuga la o discuţie aici: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Aici sunt actualul set de funcţii, care au fost codificate (Deşi nu pe deplin testat ca de 11/08/07):

Funcţia Descriere (Dacă nu de aceeaşi ca funcţia de .net)
Intrările de num() Returnează numărul de intrări"" într-un şir ca pe un separator specificate.

De exemplu: Num-intrări într-un şir "a,b,c" cu delimitatorul"," = 3.

Intrare() Returnează n-token-ul într-un şir ca pe un separator specificate.
Lungime String.Length
Înlocui() String.Replace()
Conţine() String.Contains()
Returnează cuvântul "adevărat" sau cuvântul "false".
Subşir(începe) String.Substring(începe)
Subşir(începe,scop) String.Substring(începe,scop)
ToUpper() String.ToUpper()
String.tolower() String.ToLower()
StartsWith() String.StartsWith()
Returnează cuvântul "adevărat" sau cuvântul "false".
EndsWith() String.EndsWith()
Returnează cuvântul "adevărat" sau cuvântul "false".

Rapid & URL-ul uşor codarea utilitar desktop

Am fost a fi nevoie să url-encode unele siruri de caractere în această săptămână şi pălmuit împreună un un mic utilitar care m-am gândit mi-ar pune SkyDrive pentru comunitatea.

Obţine binare aici: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Obţineţi soluţia visual student aici: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Aici este un ecran shot:

imagine

Rapid şi uşor: Încorporaţi un hyperlink în partea de web vizualizare de date XSLT

ACTUALIZARE (01/17/08): Acest blog intrare vorbeşte despre mai multe hyperlink XSL bunătatea: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Privire de ansamblu şi obiectivul: Am creat un simplu bar diagramă pentru a servi drept componentă pe un tablou de bord. Voi salva detaliile pe construirea grafice pentru un alt post, dar eu nu a inventat această tehnică (nici semnul de întrebare, pentru care contează). Sa dovedit a existat un bug în diagramă, şi în timp ce am stabilit că, Am avut posibilitatea de a converti unele etichete în hyperlink-uri, care a arătat la lista de bază în spatele grafic. De exemplu, Există o etichetă cu valoarea "Hold". Am vrut să transforme etichetă într-un hyperlink, astfel încât utilizator putea faceţi clic pe ea şi detalia la intrările specifice din lista a căror valoare de stare este "Hold".

Paşi:

  1. Utilizarea visual studio pentru intellisense SharePoint-conştient.
  2. Copiaţi DVWP XSLT în visual studio (crea un proiect necompletat, Adauga un fișier XSL la proiect).
  3. Copiaţi link-ul pe care doriţi să utilizaţi în clipboard.
  4. Lipiţi-l în locul potrivit în XSL.
  5. Conversia URL argumentul separatoare pe şirul de interogare la"&" la"&amp;"
  6. Argumente individuale URL-encode.
  7. Wrap interior că o <a href…> </o>

Exemplu:

Eu am un URL:

http://[server de]/[site-ul]/Lists/Open Positions/AllItems.aspx?Vezi ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold

Conversia în:

     <o href="Lists/Open Positions/AllItems.aspx?Vezi = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 %7 d&amp;FilterField1 = Recruiter&amp;FilterValue1 = Hold"> Ţineţi: </o>

Am manual au transformat primul argument din:

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

pentru a:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d

(În acest, transformă acolada de deschidere a % 7b și închiderea bretele transformă %7 d)

Al doilea şi al treilea argumentele’ parametrii ("FilterField1 =Recruiter" şi "FilterValue1 =Ţineţi" respectiv) nu trebuie să fie codificate în URL-ul pentru că ele nu conțin nici caractere nesigure.

Note:

Aceasta tehnica, în general, ar trebui să funcţioneze oriunde doriţi să încorporaţi un hyperlink în XSLT unde hyperlink-ul include parametrii pe URL-ul cum ar fi:

http://[server de]/[site-ul]/Lists/Open Positions/AllItems.aspx?Vezi ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold

Am luat URL-ul în sine prin accesarea listă particularizată şi manual de filtrare pe coloana stare (etichetate "recrutorului" de mai sus).

Simplă şi rapidă: Permite fluxul de lucru SharePoint Designer pentru a actualiza un formular InfoPath

Scenariu: Eu am un formular InfoPath care interfeţele un proces de flux de lucru implementate utilizând SharePoint Designer. La un moment dat, un manager trebuie să aprobe forma. Din moment ce eu nu pot conta pe istoricul de flux de lucru pentru a satisface cerinţele mele audit, I decide pentru a stoca mesajul audit direct pe formularul de sine.

Privire de ansamblu:

Proiectare formular și publicați-l ca un tipul de conţinut şi forma în sine la o bibliotecă de documente. Mark dorit câmpurile de formular ca fiind poate actualiza din MOSS. Forma este legată de tipul de conţinut şi de tipul de conţinut este "ataşat" într-o bibliotecă de formulare (sau mai multe, dacă vrei). Scrie un flux de lucru care actualizează câmpul.

Măsuri specifice:

  1. Creați o bibliotecă de documente. Acest lucru va organiza șablonul InfoPath.
  2. Creați o bibliotecă de formulare.
  3. Creaţi formularul InfoPath. Includ un câmp de text, "Auditul mesaj".
  4. Publicare formular ca un tip de conținut (NU un document).
  5. În timp ce completarea dialogurile publicare:
    o) Salvaţi fişierul .xsn la biblioteca de documente (pas #1).
    b) Publica mesajul"Audit" de câmp şi marca adevărat: "Permite utilizatorilor să editeze datele din acest câmp utilizând o foaie de date sau proprietăţi pagină".
    c) Creaţi un nou tip de conţinut, şi dă-un nume potrivit.
  6. Acces la bibliotecă de formulare.
    o) Du-te la setările avansate şi activarea bibliotecii de formulare pentru a gestiona tipuri de conținut.
    b) Selectați tipul de conținut nou create (5c de mai sus). Acesta va fi grupate sub "Microsoft InfoPath" (sau similare).
    c) Eliminarea implicit "forma" tip de conținut din bibliotecă.
    d) Mark Biblioteca pentru a "Arată ca pagină web" astfel încât forma va lansa la SharePoint şi nu InfoPath staţie de lucru client.
  7. Du-te înapoi la biblioteca de formulare corespunzătoare şi faceţi clic pe "nou" pentru a verifica pur şi simplu că formularul este postat corect şi care acţionează ca vrei.
  8. Foc până SharePoint Designer şi navigaţi la site-ul care găzduieşte al tău bibliotecă de formulare (la pas 2).
  9. Creaţi un flux de lucru nou ataşat la bibliotecă de formulare.
  10. Adauga o singură acţiune "Setat câmpul curent element în". Ar trebui să aşteptaţi SharePoint Designer pentru a lista esti domeniul tau, "Auditul mesaj". Asociaţi o valoare.
  11. Faceţi clic pe Terminare şi du-te înapoi la biblioteca de formulare.
  12. Crea o nouă formă şi a pus unele valoare de testare în mesajul"Audit" câmp.
  13. Salvaţi-l şi du-te înapoi la biblioteca de formulare.
  14. Faceţi clic dreapta pe, Selectaţi "flux de lucru" şi începe fluxul de lucru.
  15. Acesta ar trebui să ruleze aproape imediat. Trageţi în sus forma (la pas 12) şi dacă tot a plecat la planul de, "Mesaj de audit" a fost alocat orice valoare le-aţi furnizat în pas 10.

Note:

Nu toate controalele pot configurate pentru această comunicare bidirectionala. De exemplu, nu pare să pună în aplicare un flux de lucru SPD care modifică câmpuri text înfăşurat în interiorul Secţiunile repetabile.

Unul dintre cheie ia-departe pe aici este că am creat într-adevăr un tip de conținut cu un şablon asociate. Acest lucru permite, de asemenea, noi pentru a stoca mai multe șabloane formular InfoPath în aceeași bibliotecă de formulare.

Acest lucru necesită forme server. Mai mult ca sigur nu o să lucreze într-un AAC 3.0 mediu şi probabil chiar şi necesită un mediu de întreprindere SharePoint.

Beagle a aterizat (Octombrie 2007 problema)

(Aceasta este de fapt un pic vechi de ştiri, dar ca motto-ul meu preferat pompieri proclamă, "Mai târziu decât niciodată").

Check it out aici: http://www.sharepointbeagle.com/

Dacă aveţi deja, Asiguraţi-vă că pentru a înscrie-te.

desigur, Asiguraţi-vă că pentru a citi articolul meu despre un proiect de real-lume de SharePoint (inclusiv cerinţele definiţie, KPI, tipuri de conținut, tablouri de bord şi mai mult) precum şi colegul meu articol despre partea web de interogare conținut.

Există mulţime de alte lucruri bune prea.

Cum de a elimina “Vezi toate conţinutul site-ului” link-ul

Am întrebat această întrebare aproape în fiecare săptămână, în mod normal, în contextul de o discuţie de securitate. Un creator de administratorul/site-ul a asigurat accesul unui site, configurat de securitate, aranjate web piese şi personalizate Lansarea rapidă pentru a oferi că oh-aşa-parfum de set de opţiuni pentru utilizatorul final. dar, afară de la cutie, Imposibil de eliminat "Vezi toate conţinutul site-ului" link-ul.

Mark Wagner oferă răspunsul aici (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Este grozav sa scrie-up pe două niveluri. Acesta oferă un răspuns la întrebarea, "Cum se elimină Vezi toate site-ul conţinutului" link-ul? Apoi, l răspunde la întrebarea imediată a: Cum pot activa cu uşurinţă Vezi toate conţinutul site-ului link-ul pe bază de site-de-site-ul?

Ca un bonus: Abordarea sa de lucrări pentru AAC, nu doar MOSS.

</scop>

Aboneaza-te la blog-ul meu!