Sharepoint users roles

Caml Query Generator

In Sharepoint è possibile utilizzare il  Collaborative Application Markup Language (CAML) per effettuare operazioni CRUD sulle liste. Le query scritte in CAML sono scritte in XML e utilizzando una serie di Tag per la generazione dell’interrogazione. L’elemento radice di una query è rappresentato dal tag <Query>, anche se in molti casi può essere omesso.

Di seguito la struttura di una Caml Query:

La condizione viene racchiusa all’interno del tag Where. All’interno del tag viene definita la condizione attraverso il tag Eq (operatore che accetta al massimo due elementi).

Elenco dei principali operatori utilizzabili

Eq Equivalente a uguale
GtEquivalente a maggiore
LtEquivalente a minore
GeqEquivalente a maggiore o uguale
Leq Equivalente a minore o uguale
ContainsEquivalente all’operazione like di SQL
IsNullEquivalente a verificare se un valore è null
IsNotNullEquivalente a verificare se un valore è non null
BeginsWithEquivalente a verificare se una stringa inizia con una stringa
DateRangeOverlap Utilizzato con campi Date, serve a verificare se una data coincide o meno con quella indicata

Nella creazione di query complesse è facile ad over utilizzare combinazione dei tag precedenti.

Si può notare che il tag And accetta come elementi figli soltanto due elementi. Ecco perché la generazione di Caml query con più parametri può generare alcuni problemi. Nella pratica è necessario creare sempre due elementi a partire da quelli più’ interni. Per la scrittura di Caml Query si possono utilizzare diversi tools presenti in rete, anche se il risultato ottenuto non sempre è ottimizzato.

E’ spesso utile a qualche procedura custom per la generazione in maniera pseudo-automatica delle query.

Ho condiviso su Github una piccola demo (scritta in Typescript), per la generazione di Caml query. A partire da un array di elementi bidimensionali (composti da una proprietà Name e da una proprietà Value), viene generata la relativa Caml query. Il codice della demo è scaricabile a questo link.

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.