Mostrando entradas con la etiqueta Sharepoint. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sharepoint. Mostrar todas las entradas

25 de marzo de 2010

CAML.net para Sharepoint: Haciendo consultas a campos fecha


CAML.Net nos permite realizar consultas contra las listas de Sharepoint. Pero los campos de fecha siempre son un problema si no sabes manejar las fechas adecuadamente. La clásica consulta de un campo fecha tiene el siguiente formato:
<Query>
   <Where>
      <Eq>
         <FieldRef Name='FechaInicio' />
         <Value Type='DateTime'>2010-03-24T00:00:00Z</Value>
      </Eq>
   </Where>
</Query>

El truco está en las posibilidades que hay para jugar con la fecha. El formato de la fecha, para quienes no lo sepan, está establecido por la norma ISO8601. Así que la forma más sencilla de pasar una fecha cualquiera (como por ejemplo el valor de DateTime.Now) a ese formato, es utilizando una de las funciones de las utilidades de Sharepoint, para lo cual al inicio de nuestra clase declaramos (en C#) using Microsoft.SharePoint.Utilities;

string strFechaHoy = SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Now);


Con esto, podemos tener una toda la query en un string para poder jugar con las fechas, quedándonos la Query  de la siguiente forma (en C#):

string tmpQuery = "";
tmpQuery +="<Query>";
tmpQuery +="<Where>";
tmpQuery +="<Eq>";
tmpQuery +="<FieldRef Name='FechaInicio' />";
tmpQuery +="<Value Type='DateTime'>" + strFechaHoy + "</Value>";
tmpQuery +="</Eq>";
tmpQuery +="</Where>";
tmpQuery +="</Query>";

Otra opción es utilizar las funciones nativas con las que podemos sumar o restar dias, meses o años desde la fecha actual. La más clásica es Today, que con su atributo OffsetDays nos permite sumar (y restar, si sumamos dias negativos) días. En este caso, la consulta quedaría asi:

<Query>
  <Where>
    <Eq>
      <FieldRef Name='FechaInicio' />
        <Value Type='DateTime'><Today OffsetDays='0'/></Value>
    </Eq>
  </Where>
</Query>

17 de febrero de 2010

Sharepoint: Consultas CAML .NET en campos Lookup

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>

23 de diciembre de 2009

Sharepoint: Consultas en CAML para Páginas de Publicación

En Sharepoint, hay unas páginas que se pueden crear para la publicación de contenidos de forma especial. Se crean con la feature de Publicación de Páginas y funcionan genial!! De forma automática, Sharepoint se encarga de realizar el filtrado de las páginas que se pueden ver según la fecha de inicio programada ("Scheduling Start Date") y fecha fin programada ("Scheduling End Date"). La dificultad surge cuando quieres hacer consulta a la librería de páginas para consultar cuales se encuentran vigentes: en este caso, debes filtrar del listado de páginas las que se encuentren vigentes, para lo cual debes incluir explicitamente los filtros correspondientes, como ocurre cuando realizar una consulta y obtienes los datos vía listadoPaginas.GetItems(consulta).

Para realizar la consulta, sin duda alguna, lo mejor es utilizar CAML.Net, que te permite realizar las consultas que necesites en las listas de Sharepoint (recordad que las páginas, pertenecen a la lista de páginas de un Sitio). Pero hay que tener en cuenta, que estas columnas son de un tipo particular de datos: PublishingScheduleEndDateFieldType y que hay que cuidar los nulos, porque tienen 2 características importantes: Inmediatamente y Nunca. El SDK dice que se utilizan los valores de fecha especial, pero no se comporta, en la realidad, exactamente de esta manera.

<Where>

   <And>
      <Or>
         <Leq><FieldRef Name='PublishingStartDate' /><Value Type='DateTime'><Today /></Value></Leq>
         <IsNull><FieldRef Name='PublishingStartDate' /></IsNull>
      </Or>
      <Or>
         <Geq><FieldRef Name='PublishingExpirationDate' /><Value Type='DateTime'><Today /></Value></Geq>
         <IsNull><FieldRef Name='PublishingExpirationDate' /></IsNull>
      </Or>
   </And>
</Where>

Hay que tener cuidado con el Content Query Web Part, porque no funciona correctamente con este tipo de dato. ¿El motivo? A saber, la cosa es que no funcionan correctamente.

15 de diciembre de 2009

SEACEX presenta su nueva Web

Tal como se están haciendo eco algunas páginas Web dedicadas al arte, como http://www.revistadearte.com, de una noticia publicada por Europa Press, la Sociedad Estatal para la Acción Cultural Exterior -SEACEX- tiene nueva página Web:

Una página Web para que "el arte español sea el protagonista". En su dirección web www.seacex.es, se puede ver las distintas actividades que realiza SEACEX, y los distintos recursos que ha puesto a disposición de todos: publicaciones (algunas en formato electrónico), recursos multimedia de audio y vídeos de las actividades relacionadas, gran cantidad de imágenes y fotos, etc.La página está disponible en su totalidad en castellano e inglés y en su sección corporativa también en catalán, gallego y euskera. Sus buscadores en las distintas secciones, nos permite encontrar los recursos que muestran en su Web. Los iconos que redirigen a los recursos permiten acceder de forma más sencilla a funcionalidades muy avanzadas.

Tecnológicamente, es unaWeb desarrollada con la tecnología de Microsoft Sharepoint 2007, lo que nos demuestra que es una Web puntera teconológicamente. Tal como mencionan en  revistadearte.com, Las tareas de análisis, diseño técnico,  arquitectura de la información, maquetación, programación e implantación han sido llevadas a cabo por Indra Sistemas.

25 de octubre de 2009

Sharepoint: URL de acceso rápido a listas

Portal y WSS

Función
Añadir a la dirección
Notas
Administrar lista de plantillas de la Galería
/_catalogs/lt/Forms/AllItems.aspx
Administrar la colección de sitios de usuarios
/_layouts/1033/siteusrs.aspx
Para tener acceso debe ser un administrador en el servidor o un administrador de colección de sitios para el sitio.
Administrar grupos de sitio
/_layouts/1033/role.aspx
Administrar usuarios
/_layouts/1033/user.aspx
Administrar Galería WebParts
/_catalogs/wp/Forms/AllItems.aspx
Informe de uso de la web
/_layouts/1033/UsageDetails.aspx
Resumen de uso de la web
/_layouts/1033/Usage.aspx
Información para el usuario
/_layouts/1033/userinfo.aspx
Mantenimiento de WebParts
?contents=1
Añadir al final de la URL de la página

Sólo Portal

Función
Añadir a la dirección
Notas
Crear
[area]/_layouts/1033/spscreate.aspx
Crear una lista en una zona de portal diferente
/_layouts/1033/new.aspx?
NewPageFilename=
YourTemplateName.stp&
ListTemplate=100&ListBaseType=0
Cuando se guarda una plantilla en una zona de portal y se trata de crear una nueva lista en una zona de portal diferente, la plantilla no se mostrará en la página Crear.
Administrar audiencias
/_layouts/1033/Audience_Main.aspx
Administrar sitio Galería de plantillas
/_catalogs/wt/Forms/AllItems.aspx
Administrar alertas de usuario
/_layouts/1033/AlertsAdmin.aspx
Configuración del sitio
/_layouts/1033/default.aspx
Sites Registry
/SiteDirectory/Lists/Sites/
Summary.aspx

Sólo WSS

Función
Añadir a la dirección
Notas
Add Web Parts Pane
?ToolPaneView=2
Añadir al final de la URL de la página * No soportado por MSFT en páginas de Formulario
Crear
/_layouts/1033/create.aspx
Documentos y listas
/_layouts/1033/viewlsts.aspx
Manage Cross Site Groups
/_layouts/1033/mygrps.aspx
Administrar Mis Alertas
/_layouts/1033/MySubs.aspx
Administrar sitio Galería de plantillas
/_catalogs/wt/Forms/Common.aspx
Administrar alertas de usuario
/_layouts/1033/SiteSubs.aspx
Configuración del sitio
/_layouts/1033/settings.aspx
Top-level Site Administration
/_layouts/1033/webadmin.aspx