martedì 23 luglio 2013

SharePoint 2010 – Impossibile visualizzare WebPart dopo aggiornamento KB2844286 - Workaround e soluzione

In alcuni casi, la KB2844286 può causare il malfunzionamento delle XsltListViewWebPart, personalizzate attraverso SharePoint Designer; il risultato è il seguente messaggio d’errore al posto della web part:

“Impossibile visualizzare questa web part. Per risolvere il problema, aprire la pagina Web in un editor HTML compatibile con Microsoft SharePoint Foundation, ad esempio Microsoft SharePoint Designer. Se il problema persiste, contattare l’amministratore del server Web.” 

"Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator."



Il Correlation ID permette di recuperare la seguente informazione (non di grandissimo aiuto, però):
[…] System.NullReferenceException: Object reference not set to an instance of an object.     at System.Xml.Xsl.XslCompiledTransform.Load(MethodInfo executeMethod, Byte[] […]
Se visualizzata attraverso SharePoint Designer, invece, la web part non presenta anomalie di funzionamento.


Che fare quindi?

La soluzione è semplice: è sufficiente disintallare la KB incriminata attraverso il pannello di controllo e riavviare application e front end server.
Al termine del riavvio le web part interessate dal problema riprendono a funzionare correttamente.


Aggiornamento del 29/07/2013

Microsoft ha rilasciato una patch che risolve il problema: http://support.microsoft.com/kb/2872441
E' però necessario aver prima installato la KB incriminata (KB2844286), dal momento che l'aggiornamento non sostituisce la KB precedente, ma corregge solamente i problemi con le web part di SharePoint ed il framework 3.5.1.


lunedì 15 luglio 2013

SharePoint 2013 - Validare un form attraverso l’operatore XOR

Devo gestire un form (lista, ma si applica anche in caso di raccolta documenti) con due campi, in cui la compilazione è esclusiva: quando si compila uno non deve essere compilato l’altro, se si compilano entrambi è un errore, così come lasciarli vuoti entrambi.

Dal punto di vista dell’algebra booleana, questo comportamento è descritto dall’operatore XOR, in cui il campo vuoto rappresenta falso  ed il campo pieno vero.




Campo 1
Campo 2
Risultato XOR
Vuoto
Vuoto
Falso
Vuoto
Pieno
Vero
Pieno
Vuoto
Vero
Pieno
Pieno
Falso

Una situazione di questo tipo non si può modellare né gestendo l’opzione di campo obbligatorio, né con le validazioni di colonna, ma è necessario ricorrere alle formule di validazione dell’elemento.
Dalla pagina delle impostazioni della raccolta o lista, cliccando sulla voce “Impostazioni di convalida” è possibile impostare le formule di validazione per l’intero elemento che si va ad inserire o modificare.


Stano ma vero, sebbene presente in Excel 2013 , SharePoint non mette a disposizione l’operatore XOR, infatti, impostando la formula XOR([Campo1]<>"",[Campo2]<>"") si ottiene un errore di sintassi,



ed è quindi necessario provvedere alla sua creazione sfruttando gli altri operatori logici: AND, OR, NOT, utilizzando, ad esempio, il seguente schema:

(Condizione1 OR Condizione2 ) AND (NOT (Condizione1 AND Condizione2))

la cui formula, per SharePoint, è

  AND(OR([Campo1]<>"";[Campo2]<>"");(NOT(AND([Campo1]<>"";[Campo2]<>""))))  

Il test delle 4 combinazioni ci conferma il corretto funzionamento della formula. Gli elementi potranno essere quindi inseriti esclusivamente quando solo uno dei due campi è valorizzato.