CAML ó CAML.NET, que es su nombre correcto, es la tecnología que los desarrollares en .NET pueden utilizar para hacer consultas a las librerías de Sharepoint.
Cuando se crea en Sharepoint un campo de tipo búsqueda (en inglés lookup), Sharepoint almacena la información en dicho campo de la siguiente forma: ID;#Valor Relacionado .
Podría parecernos que una consulta típica sobre este campo debería ser de la siguiente forma:
<Query>
<Where>
<Eq>
<FieldRef Name='Nombre del Campo' />
<Value Type='Lookup'>Valor a buscar</Value>
</Eq>
</Where>
</Query>
El problema de esta consulta, es que tiene unos resultados extraños, ya que si hay más de un registro con el valor a buscar, sólo nos devuelve uno de los registros. O si hemos elegido un campo de búsqueda con multiples opciones, la consulta anterior nos puede dar resultados erroneos.
Para que funcione adecuadamente, lo mejor sería buscar todos los registros que contienen el ID que identifica el valor a buscar. Para poder hacer esto, habrá que indicar en la consulta que estamos buscando por ID y no por Valor, que es la búsqueda que realiza por defecto. Esto se indica con el atributo LookupId, poniéndolo a TRUE, en la etiqueta FieldRef. En ese caso, la consulta quedaría de la siguiente forma:
<Query>
<Where>
<Eq>
<FieldRef Name=”Nombre del Campo” LookupId=”TRUE” />
<Value Type=”Lookup”>ID</Value>
</Eq>
</Where>
</Query>
No hay comentarios:
Publicar un comentario