Scrivere Query CAML per interrogare le liste di Sharepoint non è certo uno dei compiti più gradevoli per un programmatore.
La complessità della sintassi CAML, le particolari limitazioni nella
composizione della query e non ultimo il fatto che CAML è in realtà un
dialetto XML
rendono il compito non frà i più agevoli. Almeno per me
. Così, mi son deciso di costruire un oggetto che permette di creare query CAML anche molto
complesse senza vedere l'ombra di XML. L'oggetto fa parte di una namespace che ingloba tutto l'oggetto SPList ed il cui scopo finale è quello di
nascondere al programmatore le complessità (ed i bugs...) presenti nell'Object Model di MOSS/WSS.
Un assaggino della cosa:
Dim TestSPList As New TestSPList (questa è una lista Sharepoint)
Dim filter0 As New SharepointDAL.WhereFields
Dim filter1 As New SharepointDAL.WhereFields
Dim CAMLQuery As New SharepointDAL.CAMLQuery
Dim CAML As String = ""
TestSPList.Init("http://wss3", "site")
filter0.Add(TestSPList.Title, ComparisionOperator.Equals, "A", LogicOperator.None)
filter1.Add(TestSPList.MultipleLinesOfText, ComparisionOperator.Contains, "1", LogicOperator.OR)
filter1.Add(TestSPList.MultipleLinesOfText, ComparisionOperator.Contains, "2", LogicOperator.None)
CAMLQuery.WhereFieldsGroup.Add(filter0, LogicOperator.AND)
CAMLQuery.WhereFieldsGroup.Add(filter1, LogicOperator.None)
CAMLQuery.BuildCAMLQuery(CAML)
TestSPList.CAMLQuery = CAML
TestSPList.LoadAll()
Me.DataGridView1.DataSource = TestSPList.GetDataTable
Se la cosa vi interessa (ed intriga) tenetevi sintonizzati. L'intero progetto dello SharepointDAL che ho scritto verrà pubblicato a puntate su questo Blog.