Si tenéis necesidad de trabajar con servicios de tipo Open Data y no tenéis a mano uno propio, no os preocupéis porque hay un repositorio de servicios públicos listos para ser usados en nuestras aplicaciones que podéis acceder desde la sección Producers del sitio de Open Data: http://www.odata.org/producers. Por ejemplo, para la BD Northwind la url del servicio que tenemos disponible es http://services.odata.org/Northwind/Northwind.svc/.
Mes: noviembre 2011
SharePoint Online: Como añadir una redirección en una página de mi sitio público!
Cuando parece que el “estándar” no da para más, en SharePoint Online dentro de Office 365 tienes que recurrir a truquillos para conseguir disponer de ciertas funcionalidades extra demandadas por tus usuarios…una de las últimas que salió en los foros de Office 365 era relativa a como conseguir hacer una redirección desde páginas del sitio publico de SharePoint Online a un sitio privado. Lógicamente, en seguida me vino a la mente que esto con JavaScript seguro que se podía conseguir…la cuestión es como añadir ese JavaScript que haga la redirección:
-
Lo primero que intenté utilizar es la interfaz de usuario del sitio público e intente añadir el código JavaScript necesario mediante alguno de los gadget disponibles, y en concreto el de HTML…pero no hubo forma.
-
Esto me llevó sin remedio a ver si con SharePoint Designer 2010 (SPD 2010) se podía conseguir…y aquí si tuve más suerte. Nos vamos a la sección “All Files” y buscamos la biblioteca “Pages”.
-
Hacemos clic sobre la página en la que queremos introducir la redirección.
-
A continuación aparece la correspondiente página de resumen que nos permite editar la página.
-
Al pulsar el enlace de editar la página, nos aparece un mensaje de warning indicando que para poder personalizar la página es necesario editarla en modo avanzado.
-
Una vez que hemos editado la página, añadimos el código JavaScript necesario para hacer la redirección.
- El código JavaScript a añadir es el siguiente (lo colocaremos bajo <asp:Content…>
1: <asp:Content ID="content1" runat="server" ContentPlaceHolderID="IWS_WH_CPH_Content" xmlns:asp="asp">
2: <script type="text/javascript" language="javascript">
3: window.location = 'http://www.ciin.es';
4: </script>
Tras guardar, simplemente comprobamos que al acceder a la página se hace la redirección como esperábamos.
SharePoint 2010: ¿Cómo saber la versión instalada?
Cuando se habla de la versión instalada de SharePoint 2010, tenemos que diferenciar entre la versión de producto que tenemos instalada (Foundation, Server Standard o Server Enterprise) y la versión de producto relativa a las build numbers o actualizaciones sucesivas que Microsoft va sacando y que vamos aplicando a nuestros despliegues de forma paulatina, y especialmente en el caso de los service packs (SPs). Por lo tanto:
-
Si queremos saber que versión de producto tenemos instalada, os recomiendo esta referencia (http://www.jcubica.com.mx/?p=27) en la que se indica como a partir de la información de registro o utilizando PowerShell podemos sacar la versión de producto instalada. Por supuesto, la administración central de SharePoint 2010 nos dará también información al respecto.
-
En cambio, si queremos saber la build number aplicada y compararla con los listados de build numbers disponibles en la red os recomiendo este otro enlace: http://geeks.ms/blogs/ciin/archive/2011/08/23/sharepoint-2010-listado-de-build-numbers.aspx. Por supuesto, el valor actual de Build Number lo podemos conocer fácilmente a través de la administración central.
SharePoint 2010: Integración con SSRS, con PPS, Servicios de Visio, …¿cuándo uso cada cuál?
Como sabéis, uno de los pilares de la plataforma SharePoint es el denominado “Insights o perspectivas” y que tiene que ver con como poder integrar, analizar y publicar información de negocio de una organización en la forma de KPIs (Key Performance Indicators), Informes, cuadros de mando, gráficos de distintos tipos, etc. Por lo tanto, estamos hablando de Business Intelligence (BI) siendo las capacidades disponibles en SharePoint 2010 las siguientes:
Capacidades de BI disponibles en SharePoint Foundation y SharePoint Server 2010
Si nos centramos en el núcleo de la plataforma y en el producto grande, presentan en común las siguientes capacidades de BI:
-
Integración con SQL Server Reporting Services (SSRS, os recomiendo visitar el último artículo de la serie a este respecto), que permite diseñar mediante Report Builder o el BI Management Studio informes de distintos tipos: tabular, matricial, gráfico, tipo mapa. Con SSRS 2008 R2 se incorpora además la posibilidad de definir KPIs, usar líneas de tendencias y barras de datos, además de los informes de tipo mapa comentado.
-
Simulación de KPIs mediante la XsltListViewWebPart o la Data Form WebPart como se comentó en este post: http://geeks.ms/blogs/ciin/archive/2011/01/12/sharepoint-2010-creaci-243-n-de-kpis-i.aspx
-
Aprovechar que los .NET Chart Controls están integrados de serie para construir nuestras propias soluciones de gráficos.
-
Por supuesto, la integración nativa de Silverlight da mucho juego y podemos conseguir resultados bastante espectaculares con el Silverlight Toolkit tal y como podéis ver en los ejemplos disponibles en este enlace:
-
Por supuesto, cualquier otro elemento de BI que desarrollemos…no nos olvidemos que SharePoint es plenamente extensible.
Capacidades de BI disponibles en SharePoint Server únicamente
Si nos centramos en SharePoint Server 2010, añade a las capacidades de BI anteriores las siguientes:
-
Diseñar e implementar KPIs a partir de información almacenada en listas de SharePoint, hojas Excel, Bases de Datos (BDs),…
-
Crear gráficos interactivos y dinámicos utilizando la Chart WebPart que es precisamente se aprovecha de la integración nativa de los .NET Chart Controls comentada anteriormente.
-
La integración de PerformancePoint como una aplicación de servicio más en SharePoint 2010 facilitando la creación de elementos como KPIs, cuadros de mando, informes analíticos, … utilizando para ello el Dashboard Designer. Algunas de las capacidades de PerformancePoint las podéis ver aquí: http://geeks.ms/blogs/ciin/archive/2010/07/29/sharepoint-2010-creaci-243-n-de-informes-de-performancepoint-ii.aspx
-
Los servicios de Excel que facilitan la publicación de libros Excel de forma segura (podemos elegir que partes del libro publicar) de forma que podemos disponer de toda la potencia de Excel para modelar KPIs, gráficos de distintos tipos, uso de los slicers, … directamente en el navegador. La experiencia de usuario desde el punto de vista de interactividad con la información es casi idéntica a la que tiene con el cliente de Excel.
-
Los servicios de Visio para publicar diagramas Visio ricos y conectados a datos que permitan mostrar de una forma muy visual datos de negocio de una organización pintados sobre un diagrama Visio. Más información sobre los servicios de Visio: http://geeks.ms/blogs/ciin/archive/2011/06/16/sharepoint-2010-configuraci-243-n-y-uso-de-los-servicios-de-visio-iv.aspx
-
Los servicios de Access y los informes que se creen a nivel de aplicación departamental modelada con Access 2010. Más información sobre los servicios de Access aquí: http://geeks.ms/blogs/ciin/archive/2010/06/16/sharepoint-2010-configuraci-243-n-y-uso-de-los-servicios-de-access-iii.aspx
¿Y cuándo uso cada cuál?
Esa es una buena pregunta, sobre todo si disponemos de SharePoint Server y aparentemente parece que con SSRS, PPS o los Servicios de Excel puedo hacer lo mismo…aparentemente porque hay diferencias entre ellos que debemos tener en cuenta a la hora de decantarnos por una u otra opción:
- SSRS:
-
A la hora de diseñar informes de tipo matricial y tabular de forma rápida es una opción muy adecuada.
-
Cuenta con la capacidad de modelar suscripciones, es decir, generar un cierto informe en un cierto formato de acuerdo a una planificación y una forma de entrega (en una biblioteca de documentos, por correo electrónico).
-
-
PPS:
-
El modelado de KPIs y cuadros de mando con el diseñador de paneles es muy productivo y espectacular.
-
La facilidad con la que definir informes analíticos es sin duda su capacidad muy potente, además del Decomposition Tree para analizar la información mostrada en los mismos.
-
-
Servicios de Excel:
-
Cuenta con la gran ventaja de que permite publicar la información de libros Excel de forma segura.
-
Excel es una herramienta de BI muy usada en la actualidad.
-
Una pequeña tabla que nos puede ayudar a elegir es la siguiente:
Y hasta aquí este largo post sobre capacidades de BI en SharePoint 2010 y alguna pauta para elegir que capacidad utilizar en cada caso.
Evento: ALM y SharePoint ¿Es posible?
Pues eso, desde SUGES mañana 29 de noviembre sobre las 19:30 horas de la mano de David Martos tendremos la oportunidad de poder contestar a tan peregrina cuestión. Los detalles del WebCast son los siguientes:
Los grupos de usuarios de SharePoint de España (SUGES) y de Catalunya (SUG.CAT) organizan un nuevo WebCast en el que tendremos la oportunidad de hablar sobre un terreno un tanto “tabú” en el desarrollo de soluciones para SharePoint 2010: ¿Es posible gestionar el cíclico de vida o ALM en proyectos en los que el componente clave sea SharePoint. En esta sesión os enseñaremos como podéis gestionar el ciclo de vida de las aplicaciones (ALM) en proyectos que involucren SharePoint 2010 para conseguir así aumentar su calidad y su mantenibilidad. Veremos algunos de los problemas más habituales en el desarrollo de este tipo de proyectos así como algunas soluciones que podéis aplicar para minimizar su impacto.
Datos de Interés
-
Requisitios Previos: Conocimientos de las plataformas SharePoint 2007 y SharePoint 2010.
-
Fecha: Martes 29 de noviembre a las 19:30
-
Duración: 90 minutos.
-
Ponente: David Martos González – MVP de SharePoint Server y Arquitecto de software en Spenta Consulting. Miembro fundador de SUG.CAT, escribe habitualmente en su blog http://david-martos.blogspot.com.
-
Enlace de inscripción: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032497978&Culture=es-ES
SharePoint 2010: Creación de HTTP Handlers!
Como sabéis, SharePoint está construido sobre la base de ASP.NET 3.5 SP1 lo que implica que mucho de los conceptos y elementos propios de este último son aplicables en la plataforma. Precisamente, esto es lo que sucede con los denominados HTTP Handlers que como sabéis son componentes que nos permiten proporcionar a nuestras soluciones ASP.NET y SharePoint de un mecanismo eficiente y flexible para procesar peticiones en las que no tenemos implicadas páginas HTML estándar como por ejemplo devolver texto plano, XML, datos binarios o datos de usuario. En el mundo SharePoint, los HTTP Handlers son una técnica muy habitual cuando queremos redirigir al usuario a una cierta página en situaciones en las que tenemos por ejemplo páginas de login personalizadas o simplemente porque queremos evitar que usuarios no autorizados accedan a nuestros sitios. La base de creación de un HTTP Handler es la interfaz IHttpHandler de la que deben heredar nuestras implementaciones. Finalmente os dejo una serie de enlaces relativos a HTTP Handlers:
- SharePoint 2010:
- SharePoint 2007:
SharePoint 2010: Cuidado con los IDs de campos y al referenciarlos en tipos de contenido!
No soy un gran fan de utilizar la aproximación declarativa a la hora de definir “artefactos” típicos de SharePoint como pueden ser columnas o tipos de contenido de SharePoint 2010, pero como se suele decir hay que saber de todo y a veces esta aproximación puede resultar ventajosa frente a trabajar exclusivamente en el mundo de los objetos. El caso es que la aproximación declarativa implica que tienes que tener cierto cuidado cuando defines los atributos que conforman un cierto artefacto, y de ahí el título de este post, ya que por ejemplo no es lo mismo especificar el ID de una columna de sitio de SharePoint 2010 de la forma ID=“ 59491385-A088-4CEA-AEC9-B6BE51276C0F” que hacerlo como ID=“{59491385-A088-4CEA-AEC9-B6BE51276C0F}”…la sutil diferencia viene dada por las llaves de inicio y cierre del ID ya que si no las indicamos provocamos que a la hora de usar esas columnas en la definición de un tipo de contenido éste no se dé por enterado y no las incorpore, amén de problemas en re-despliegue de los artefactos y otras situaciones curios…moraleja: define y referencia los atributos como los espera SharePoint:
-
Definición de una columna de sitio:
1: <?xml version="1.0" encoding="utf-8"?>
2: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3: <Field ID="{59491385-A088-4CEA-AEC9-B6BE51276C0F}"
4: Name="SubmittedBy"
5: DisplayName="$Resources:SubmittedBy"
6: Type="User" List="UserInfo" ShowField="NameWithPicture"
7: UserSelectionScope="0" UserSelectionMode="0"
8: Required="TRUE" Group="Custom Columns"></Field>
9: </Elements>
- Referencia a la columna de sitio en la definición de un tipo de contenido:
1: <?xml version="1.0" encoding="utf-8"?>
2: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3: <!-- Parent ContentType: Item (0x01) -->
4: <ContentType ID="0x0100c660015c779343cd8a24648d752b6778"
5: Name="$Resources:WeeklyStatusReportCT"
6: Group="Custom Content Types"
7: Description="$Resources:WeeklyStatusReportCTDesc"
8: Inherits="TRUE"
9: Version="0">
10: <FieldRefs>
11: <FieldRef ID="{FA564E0F-0C70-4AB9-B863-0177E6DDD247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
12: <FieldRef ID="{59491385-A088-4CEA-AEC9-B6BE51276C0F}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
13: </FieldRefs>
14: </ContentType>
15: </Elements>
SharePoint Online: Soporte de correo entrante en listas!
Una cuestión que empieza a ser un tanto recurrente cuando hablamos sobre las capacidades disponibles en SharePoint Online en Office 365 es respecto al soporte de correo entrante en listas de SharePoint que permita que sea suficiente con especificar la dirección de correo electrónico asociada a la lista para que todo correo enviado a la misma sea archivado en la lista en cuestión. Esta capacidad, disponible en instalaciones On-Premise, de momento no está disponible en SharePoint Online y a día de hoy Microsoft no ha comentado cuando estará o si ve factible que esta funcionalidad se encuentre como parte del offering de la plataforma de colaboración en la nube…los motivos, pues varios como: cuestiones de escalabilidad, rendimiento, configuración de políticas, etc. Os recomiendo leer este post en el que se trata bastante en profundidad este tema.
SharePoint 2010: Integración con SSRS 2008 y SSRS 2008 R2 (VIII)!
Siguiendo con la serie de artículos en torno a la integración entre SharePoint 2010 y SQL Server Reporting Services (SSRS) en esta ocasión quería tratar un tema que necesitaremos por ejemplo para poder crear suscripciones: crear una cuenta de ejecución de informes que resida en SQL Server. Antes de empezar, os remito al último post de la serie que a su vez tiene un enlace a todos los artículos relativos a esta integración que se han publicado hasta ahora: SharePoint 2010: Integración con SSRS 2008 y SSRS 2008 R2 (VII)!
Para crear una cuenta de ejecución de informes a nivel de BD:
-
En primer lugar, es necesario crear a nivel de BD un login con los privilegios mínimos que nos permita definir orígenes de datos de SQL Server usando dicho login. Para añadir el login, tenemos dos posibilidades:
-
A través del SQL Server Management Studio.
-
Creando dicho login a través de T-SQL de acuerdo al siguiente script:
-
1: --Añadimos el usuario en la master
2: use master
3: exec sp_droplogin @loginame='ReportExecution'
4: exec sp_addlogin @loginame='ReportExecution', @passwd='pass@word1'
5:
6: --En AdventureWorksDW
7: use AdventureWorks2008
8: if exists(select * from sysusers where name='ReportExecution')
9: exec sp_dropuser @name_in_db='ReportExecution'
10: exec sp_adduser @loginame='ReportExecution', @grpname='db_datareader'
11:
12: --En msdb
13: use msdb
14: if exists(select * from sysusers where name='ReportExecution')
15: exec sp_dropuser @name_in_db='ReportExecution'
16: --add the users to the databases and give them permissions
17: exec sp_adduser @loginame='ReportExecution', @grpname='db_datareader'
18:
19: --En ReportServer
20: use ReportServer
21: if exists(select * from sysusers where name='ReportExecution')
22: exec sp_dropuser @name_in_db='ReportExecution'
23: --add the users to the databases and give them permissions
24: exec sp_adduser @loginame='ReportExecution', @grpname='db_datareader'
Nota: Si la ejecución del T-SQL da algún tipo de error, se recomienda ejecutar los bloques relativos a cada BD en la que se está añadiendo el login de forma independiente.
-
Una vez que hemos creado el origen de datos, nos aseguramos que nuestro servidor de SQL Server permite autenticación Windows y SQL Server ya que por defecto puede ser que esté configurado para utilizar únicamente autenticación Windows.
-
Para realizar esta configuración nos conectamos al servidor de BD dónde está configurado SSRS (y también dónde estén las BDs fuente de los informes) con SQL Server Management Studio, hacemos clic con el botón derecho del ratón sobre el nombre del servidor y pulsamos la opción Propiedades o Properties.
-
En la ventana que se abre, nos vamos a la sección “Seguridad” o “Security” y marcamos la opción relativa al uso de autenticación Windows y SQL.
-
Pulsamos OK, de manera que se mostrará un mensaje informativo indicando que para que los cambios tenga lugar será necesario reiniciar el servicio de SQL Server.
-
Para reiniciar el servicio de SQL Server, nos vamos a la herramienta de configuración de SQL Server y simplemente re-iniciamos el servicio correspondiente.
-
Comprobamos a través de SQL Server Management Studio que accedemos a BD mediante autenticación SQL y especificando las credenciales del login de BD creado.
-
Creamos un origen de datos usando el login de BD creado. Por ejemplo, en Report Builder 3.0.
-
Comprobamos que la conectividad a la BD es correcta y generamos un primer informe de ejemplo.
- Por ejemplo, un informe creado con esta forma de autenticación y plenamente operativo es el siguiente.
- El mismo informe vemos que se visualiza en un sitio de SharePoint de forma correcta.sdf
Y hasta aquí llega este nuevo artículo en torno a la integración de SSRS y SharePoint 2010.
SharePoint 2010: Videos de la SharePoint Conference en Youtube!
Esta mañana me he encontrado un canal de YouTube específico de la SharePoint Conference en la que se han colgado nada más y nada menos que 193 vídeos de sesiones impartidas allí. Podéis acceder a los videos desde este enlace: http://www.youtube.com/user/sharepointconference