Riccardo

Office e SharePoint Conference 2010

La notizia è ormai “on-line” da molti giorni, tuttavia non ne avevo ancora parlato. Il prossimo 9-10-11 Marzo si terrà a Milano l’attesissima Office e SharePoint Conference 2010, e questo lo sapete tutti. Quello che forse non tutti sanno è che anche io sarò impegnato come speaker; presenterò tre sessioni: la prima, “I mille volti del search” con Barbara, la seconda “Powershell: Administration e development” con Claudio e la terza, “Protezione e disponibilità dei dati in SharePoint 2010”, da solo!!! (qui trovate l’agenda completa)

Riprendo la notizia già data da Igor e Claudio tempo fa per ricordare a tutti la presenza come guess star oriunda, oltre a Jan Tielsen e Wouter van Vugt, Mike Fitzmaurice. Mike non penso abbia grande bisogno di un introduzione, ma mi piace condividere l’impressione che mi ha fatto quando l’ho conosciuto lo scorso anno a Berlino a Tech-Ed. 

Da qualche tempo Mikef (come l’utente di milioni di VM che tutti noi abbiamo usato :D) lavora per Nintex, società di cui Green Team è partner. Così in un buco libero tra una sessione e l’altra sono andato a visitare il loro booth. Mike è stato grande! Oltre ad essere estremamente socievole si è prodigato in demo e spiegazioni tecniche su Nintex Workflow 2010 (fantastico! prima o poi ne parlo!) in qualsiasi condizione, anche durante la sera del party con birra ovunque :D

Allora? Ci vediamo li??

– Riccardo

ps. Grazie a Roberto per la foto :)

Posted by Riccardo in The (in)utility post series, 0 comments

Controlli di validazione in custom list form

Cari site builder in ascolto, vi è mai capitato di ricevere richieste di poter inserire controlli per la validazione dei dati inseriti in una lista SharePoint? Forse la domanda giusta sarebbe stata “quante volte”…

Inserire controlli di validazione è molto più semplice di quanto possiate immaginare, anche se bisogna tenere in considerazione un paio di aspetti. Ma andiamo per ordine, nelle prossime righe andremo a creare una custom list form nella quale verificheremo la correttezza (formale) di un indirizzo e-mail inserito dall’utente. Tralascio le azioni preliminari di creazione e configurazione della lista, che chiamerò ValidationControls, sapete come si fa vero? :)

Da SharePoint Designer apro il file NewItem.aspx relativo alla mia lista (in un progetto reale difficilmente aprirei e apporterei modifiche direttamente a questo file, chiudete un occhio se potete). Una volta nascosta la form originale (selezionando “Hidden” dalle proprietà della web part), inserisco una nuova custom list form selezionando la lista, il content type e il tipo di azione da supportare (in questo esempio non mi preoccuperò della magagna Attachment, chiudete l’altro occhio, ok?). Dal menù “Task Panes” di SPD seleziono “Toolbox” che mi farà apparire la lista di tutti i controlli disponibili per il mio sito, tra cui anche i controlli di validazione. Tra quelli disponibili aggiungerò alla mia custom list form un controllo di tipo “RegularExpressionValidator” che mi permetterà di sfruttare la grande flessibilità delle regular expressions.

 

A questo punto possiamo fare una prima prova (che fallirà tanto quanto la traversata del Titanic), inserire un controllo di validazione e legarlo manualmente ad un form field esistente. Nel tag <asp:regularexpressionvalidator … /> aggiungo manualmente la proprietà ControlToValidate ed inserisco come valore l’id del form field relativo alla colonna CustomerEmail. Riusltato: un errore che a seconda della configurazione del vostro web.config potrebbe apparire circa così:

Per fare in modo che il controllo di validazione non causi danni dovrò modificare il tipo di campo di input a cui lo voglio legare, trasformando il form field in Text Field. Per fare questo espando il menù “Common FormField Actions” e seleziono da “Format as” > “Text Box”.

A questo punto riconfiguro il controllo di validazione in modo che sia legato al nuovo campo di testo. Alcuni dei parametri più importanti sono ControlToValidate (permette di specificare quale campo di input debba essere validato), ErrorMessage (permette di specificare il messaggio di errore) e a mio parere anche Display (permette di specificare l’ingombro del controllo quando non visualizzato). Abbiamo inoltre la possibilità di impostare svariati parametri legati all’aspetto del messaggio che al momento tralascio.

Faccio un discorso a parte per il parametro “ValidationExpression”. Questa impostazione servirà per specificare il tipo di controllo da effettuare e nello specifico la regual expression che deve essere verificata. SPD ci viene incontro fornendoci un limitato numero di controlli preconfigurati, tra i quali (ma guarda un po’) anche il controllo sul formato dell’indirizzo e-mail.

Una volta salvata la pagina, provando ad inserire un dato diverso da un indirizzo e-mail otterremo il messaggio di errore configurato.

In questo esempio ho utilizzato un controllo di tipo RegularExpressionValidator in quanto abbiamo già a disposizione un pattern di verifica accettabile. Nel caso di controlli personalizzati (ad esempio lunghezza minima e massima di una stringa) all’interno di una custom list form non potremo usare una RegEx, a causa di caratteri “speciali” riservati ad XSL come ad esempio le parentesi graffe. Un modo per aggirare l’ostacolo può essere quello di utilizzare il controllo CustomValidator che ci permette di specificare una funzione JS che si occupi per noi di tutte le verifiche necessarie e, in questo caso, il solo limite è la fantasia di chi ci commissiona i progetti :D

– Riccardo

Posted by Riccardo in moss, SharePoint Designer, wss 3, 0 comments

Politiche di supporto per farm WSS pre SP2 e CU Dicembre 2009

Oggi mi è capitato sotto mano un post molto interessante di Stefan Goβner che parla delle politiche di supporto per farm WSS v3 pre SP2. Vi rimando al suo post per leggere anche le risposte ai commenti che sono stati inseriti, anche queste molto interessanti.

Riassumendo: al rilascio di WSS sp1 è stato annunciato (http://support.microsoft.com/lifecycle/#ServicePackSupport) che il prodotto sarebbe uscito dal supporto un’anno dopo il rilascio del prossimo service pack. L’SP2 è stato rilasciato ad Aprile 2009, quindi siamo quasi alla fatidica data.

Cosa dite? Ci sarà un “decreto mille proroghe” anche per il supporto a SharePoint sp1? :)

Intanto che si parla di updates, da pochi giorni sono disponibili i pacchetti Cumulative Updates di Dicembre 2009. Trovate maggiori informazioni a questi indirizzi:

WSS
http://support.microsoft.com/default.aspx?scid=kb;EN-US;977027

MOSS
http://support.microsoft.com/default.aspx?scid=kb;EN-US;977026

Mi raccomando, prudenza ;)

– Riccardo

Posted by Riccardo in Amministrazione, updates, wss 3, 0 comments

Troubleshooting Content Deployment Warnings

Non tutti, ovviamente :) In questo momento mi soffermo sul messaggio “A web part or web form control type could not be found, or is not registered as safe. The web part will still be exported.” seguito da un chiarissimo messaggio “[Unknown: {GUID}]”.

Content Deployment Warning

Pur non essendo un problema bloccante, e di fatto nemmeno un errore, mi disturba “quanto basta” trovare questi messaggi nei report dei content deployment e soprattutto mi disturba il fatto che questi warning, lato event viewer generino invece dei messaggi di errore.

Da dove cominciare quindi per arrivare alla fonte del problema? Immagino conosciate la teoria del content deployment (se siete arrivati a leggere fino a qui direi proprio di si :), in caso contrario vi suggerisco la serie di post di Stefan Großner, semplicemente fantastica). Sapete quindi che nella farm sorgente e in quella di destinazione viene impostato un percorso per i files temporanei creati dal processo di import / export.  In questo path, per ogni job viene creata una sottocartella con indovinate un po’ quale nome? Ovviamente un GUID! Ora… l’unico modo che ho trovato per risalire alla cartella corretta è quella di individuare l’orario di modifica della cartella stessa, non ho trovato alcun riferimento tra il GUID e il job o il path di deployment.

All’interno di ciascuna di queste cartelle sono presenti n file .cab (dove n dipende dalla mole del contenuto da “spostare” e dalle dimensioni per file impostate lato CA).

Content Deployment Temp Folder

Quello che ci interessa in questo momento è il file manifest che si trova all’interno di uno di questi archivi. A seconda della quantità di dati trasferiti potreste avere più file manifest (manifest.xml, manifest1.xml, manifest2.xml, ecc), in questo caso ci serviranno tutti. Nella mia esperienza ho trovato questi file sempre negli ultimi archivi generati.

Content Deployment CAB files

I file manifest contengono la descrizione di tutto il contenuto oggetto del deployment in una struttura del genere:

<SPObject …>
<File …>
<WebParts …>
<WebPart …></WebPart>
</WebParts>
</File>
</SPObject>

Il contenuto di SPObject varia a seconda dell’oggetto descritto, potrete quindi trovare  <ContentType …>…</ContentType> o <ListItem …></ListItem> (in poche parole tutti gli oggetti trasferiti).

La cosa estremamente utile è che tra le informazioni riportate in questi file possiamo trovare anche il GUID riportato nel report del job di deploy. Una volta individuato questo, risalendo alle informazioni del rispettivo nodo SPObject possiamo trovare tutte le indicazioni per individuare con precisione quale sia la risorsa che dobbiamo correggere. Nel mio caso ho scoperto che il problema era dovuto a 4 web parts inserite in un vecchio page layout, web part dipendenti da una feature rimossa e rimaste “orfane”. Una volta corretto il page layout (eliminato a dire la verità :)) i messaggi di warning non sono più comparsi.

– Riccardo

Posted by Riccardo in Amministrazione, Content Deployment, 0 comments

Nuova casa per il progetto Faceted Search 3.0

Riporto una comunicazione del team del progetto Faceted Search su Codeplex (http://facetedsearch.codeplex.com/Thread/View.aspx?ThreadId=16945 ultimo post). Il file di setup dell’ultima build della diffusa estensione per MOSS 2007 (al momento 3.0. 111709.0) ha cambiato casa, è stato spostato sul sito http://code.msdn.microsoft.com/XSearch. Al vecchio indirizzo http://facetedsearch.codeplex.com è ancora disponibile la build 2.5, completa di codice sorgente.

 Le differenze tra le due versioni sono molte, lascio a voi il “compito” di entrare nei dettagli, vi segnalo giusto due note. La prima è la differente versione delle Enterprise Libraries utilizzate nelle due build. La versione 2.5 utilizza le EntLib 3.1 mentre Faceted Search 3.0 utilizza le EntLib 4.1. La seconda nota riguarda la procedura di setup: “one click install” per quanto riguarda l’ultima build, più articolata quella della versione 2.5.

In fine segnalo una cosa che mi ha fatto penare in molte occasioni prima di avere una risposta “ufficiale” (http://facetedsearch.codeplex.com/WorkItem/View.aspx?WorkItemId=9171). Per utilizzare le “faccette” eseguendo una ricerca dalla web part di ricerca avanzata il Search Center deve essere creato con language pack inglese. Al momento non è garantito il funzionamento su qualunque altra localizzazione.

– Riccardo

Posted by Riccardo in 3rd parties, 0 comments