Combinando Excel Services y Query String Filters

Recientemente un cliente presentó un requerimiento interesante a ser aplicado sobre SharePoint 2007. El reto en este cliente es que no se permite usar código que extienda la solución, por lo tanto me las tuve que ingeniar para utilizar la funcionalidad Out of the box de MOSS 2007 y explotar sus beneficios.

El requerimiento básicamente consistía en mostrar reportes gráficos en la web, que mostraban los resultados de evaluaciones realizadas a los empleados de la organización. Los resultados de las evaluaciones residen en una base de datos de SQL y se actualizan anulamente.

Inmediatamente pense en emplear Excel para generar reportes avanzados en base a la data almacenada en SQL. Posteriormente este reporte debería ser publicado en SharePoint y mediante Excel Services, visualizarlo a través de un site. Finalmente, se debería poder consultar en base a el código del empleado el gráfico correspondiente.

Aquí se empezaron a presentar los retos:

1. En base a una serie de combinaciones de VLOOKUP y empleando una Celda para especificar el código del empleado, logré generar el grafico dinámico, sin embargo al publicarlo se mostró el error de Query Table, not supported. Para resolverlo empleé la herramienta presentada en este blog:  http://blogs.msdn.com/b/cumgranosalis/archive/2006/11/27/another-tool-for-working-around-excel-services-not-supporting-querytable.aspx.

2. Lo siguiente fue, ver la manera de poder filtrar por código de empleado y mostrar el gráfico correspondiente. Como lo resolví? lo veremos en este post.

El resultado final es el siguiente:

a) Se muestra el gráfico. 

 

b) En la url empleo el parámetro de filtro y especifico el valor a ver.

c) Automáticamente se muestra el gráfico correspondiente al filtro.

PASOS DE CONFIGURACIÓN:

1. Primero debemos establecer la conexión con la BD de SQL y guardar esta conexión en una Biblioteca de conexiones.

2. A continuación crear nuestra tabla en base a la conexión previamente creada.

3. Dar doble clic sobre la macro que descargamos del enlace especificado al inicio del post.

 4. Habilitar la macro.

5. Convertir la tabla a un modo soportado por Excel Services.

6. Especificar una Celda donde ingresaremos el valor del código del empleado. Armar nuestra tabla en base a fórmulas VLOOKUP y construir nuestro gráfico.

7. Publicar el Excel.

8. Especificar el parametro que será empleado. Esta deberá ser la celda donde especificaremos el valor de búsqueda (Esta celda debe tener un nombre).

9. Seleccionar el gráfico que deseamos publicar.

10. Insertar el Excel Web Access WebPart y un Query string Filter WebPart. En el Query string filter WebPart especificar como nombre de parámetro el nombre de la celda empleada en el Excel Services.

11. Conectar los 2 WebParts.

 

12. Especificar el parámetro filtrado. 

Y listo!!! Ahora solo deben crear la cadena (url) especificando el parámetro que deseen y en base a esto lograremos el efecto de filtro.

Instalando mi nuevo ambiente con Windows Server 2012, SQL 2012 y SharePoint 2013 – Parte 3

En este tercer post mostraré finalmente como instalar SharePoint Server 2013 Preview sobre nuestro ambiente virtual.

El procedimiento de instalación es bastante similar a el empleado en SharePoint 2010, básicamente varían los prerequisitos a ser instalados.

Primero debemos ejecutar el Prerequisite Installer que se encargará de instalar los roles necesarios y descargar de internet el software requerido antes de poder instalar SharePoint 2013 Preview.

1. Se muestra la lista de Prerequisitos, dar clic en Next.

2. Aceptar los términos de licencia.

3. Se inicia la instalación de prerequisitos. 

 4. Los primeros prerequisitos son instalados y se debe reiniciar el servidor.

5. Al inciar nuevamente el servidor se ejecuta automáticamente el instalador de prerequisitos.

6. Continua el proceso de descarga e instalación.

7. Instalación completa.

8. Ejecutar ahora el instalador de SharePoint 2013 Preview.

9. Ingresar el Key de instalación.

10. Aceptar los términos de licencia.

11. Especificar las rutas de instalación de SharePoint.

12. El proceso de instalación incia.

13. Se termina la instalación y marcar el check para ejecutar SharePoint Products Configuration Wizard.

14. Se ejecuta el Wizard, dar clic en Next.

15. Se reiniciarán los servicios listados, dar clic en Next.

16. Seleccionar Create a new server farm.

17. Especificar el nombre del servidor, el nombre de la base de datos de configuración, especificar el usuario y password.

18. Especificar el Passphase.

19. Especificar el puerto que empleará el Central Administration Web Application.

20. Confirmar la configuración previa y Next.

21. Se inciará el proceso de configuración.

22. Configuración finalizada!!!

23. La primera pantalla de SharePoint 2013 Preview, inciar el Wizard de configuración de aplicaciones de servicio.

24. Configurar los primeros servicios y a probar SharePoint 2013!!!

Instalando mi nuevo ambiente con Windows Server 2012, SQL 2012 y SharePoint 2013 – Parte 2

En esta segunda parte mostraré los pasos parar instalar SQL Server 2012 sobre el mismo ambiente virtual en donde instale Windows Server 2012.

Así como en el caso de Windows Server 2012, la instalación de SQL 2012 resulta muy similar a la instalación de SQL 2008 R2, por lo que los que ya conocían la solución anterior les será muy sencillo instalar esta versión.

1. Primero debemos ejecutar el instalador para descargue los archivos necesarios.

 2. Cuando levante el SQL Server Installation Center debemos dar clic en System Configuration Checker para verificar que tengamos todos los prerrequisitos.

3. Si esta todo correcto dar clic en OK.

4. Al lado izquierdo seleccionar Installation y en la parte central dar clic en New SQL Server stand-alone installation.

5. Verificará prerrequisitos y dar clic en OK.

 6. Proporcionar Key.

7. Aceptar los términos de licencia.

8. Next.

9. Seleccionar SQL Server Feature Installation.

 10. Seleccionar las características requeridas y la ubicación donde se almacenarán los archivos de instalación.

11. Next.

12. Crear una nueva instancia o seleccionar la instancia por default y Next.

13. Disk space requirement, dar clic en Next.

14. Especificar las cuentas para configurar los servicios de SQL y Next.

15. Especificar el modo de autenticación y el administrador de SQL.

16. Clic en Next.

17. Next.

18. Iniciar la instalación.

19. Finalizo la instalación.

20. Ahora si podremos acceder al SQL Management Studio.

Instalando mi nuevo ambiente con Windows Server 2012, SQL 2012 y SharePoint 2013 – Parte 1

 

Siempre interesado en conocer lo último de las tecnologías Microsoft y ya teniendo disponible versiones previas para descarga, no espere mas y me puse a armar mis ambientes virtuales.

En este primer post les mostraré como instalar Windows Server 2012 y AD para habilitar nuestro ambiente para SharePoint 2013. Los pasos son muy parecidos a como lo haciamos en Windows Server 2008 R2.

1. Seleccionar idioma y opciones de configuración del teclado.

2. Seleccionar edición a instalar.

3. Aceptar los términos.

 4. Iniciar una instalación personalizada.

 5. Seleccionar el disco donde se instalará el SO.

6. Se inicia el proceso de instalación.

 7. Proporcionar el password para el administrador.

8. Se personalizan las configuraciones.

9. Iniciar sesión.

10. Proporcionar las credenciales del Admin.

11. Se abrirá el Server Manager de inmediato.

12. En este paso agregaremos el Rol de AD.

13. Next.

14. Seleccionar el servidor por defecto y Next. 

.

15. Seleccionar Active Directory Domain Services.

16. Agregar los features necesarios.

17. Next.

18. Next.

19. Instalar!!!!

 20. Finalizo! congratulations!!!

 21. Añadir un nuevo Forest. Especificar el nombre del forest. (Ej. contoso.local)

22. Seleccionar agregar DNS y especificar el password del Administrador del forest.

23. NETBIOS, NEXT.

24. Especificar la ruta donde se guardar la BD del AD, Logs, etc.

25. Next.

26. Y por fin, agregamos las cuentas que utilizaremos para la instalación y configuración de nuestra granja de SharePoint 2013!!!

No se crean los IIS Web Sites en los WFE cuando extiendo una aplicación web!

En un cliente con una Infraestructura de SharePoint 2010 con múltiples WFE, se me presentó un escenario curioso.

Tuve que extender una aplicación web para proveer acceso vía SSL a un grupo de usuarios mediante una URL y un modo de autenticación distinto al de la aplicación web original.

Es decir:

1. Mi aplicación web utiliza autenticación por Windows y accedían mediante el puerto 80.

2. Necesitaba proveer acceso a la misma aplicación desde un red externa mediante el puerto 443 (https://miportal.mycompany.com) mediante autenticación basada en claims.

Al extender mi aplicación web, note que casi todos mis WFE se creaba el sitio de IIS como debería ser, sin embargo uno de los WFE no creo el IIS web site.

Note en este WFE que el servicio SPTimer estaba caido e inmediatamente lo inicie. Sin embargo el problema de replicación continuaba.

Finalmente encontré la solución: “Reiniciar el servicio SharePoint Foundation Web Application” y éxito!!!! se replicó el sitio correspondiente.

Espero les sea útil!!!!

 

Migrando aplicaciones web de modo clásico de autenticación a modo basados en claims

Recientemente estuve en un pase a producción donde un cliente necesitaba migrar su aplicación web de SharePoint de el modo clásico de autenticación al modo de autenticación basado en claims.

Esta necesidad surgió debido a que era necesario federar la aplicación web para que usuarios de otros dominios sin relación de confianza (Proveedores) puedan acceder a información relevante de la empresa proporcionando las mismas credenciales con las que inician sesión en sus equipos.

Implementar una infraestructura de federación es un tema aparte que tocaré en otros posts.

Y bien, para lograr migrar hacia la autenticación por claims me base en el siguiente artículo: http://technet.microsoft.com/en-us/library/gg251985.aspx 

Básicamente debemos ejecutar estos comandos:

$WebAppName = http://miportal.company.com
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()

Con esto abremos pasado al modo claims, hasta aquí todo muy sencillo. Sin embargo al intentar iniciar sesión sobre la aplicación se darán cuenta que el acceso es denegado y ningún usuario registrado previamente podrá autenticarse. Esto debido a que al convertir la aplicación al modo claims esta identifica a los usuarios de dominio, federados y de FBA mediante una sintáxis específica. Es decir, si mi usuario estaba registrado como contosojperez ahora tendrá un identificador del tipo i:0#,w|contosojperez. Esta sintaxis tiene una lógica que explicaré en otro momento.

Pues para migrar a los usuarios existentes a la nueva sintaxis deberemos ejecutar los siguientes comandos:

1. Primero debemos dar control total a nuestra cuenta que será el site collection administrator:

$account = “Midominiosp_install”
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies(“Default”)
$p = $zp.Add($account,”PSPolicy”)
$fc=$wa.PolicyRoles.GetSpecialRole(“FullControl”)
$p.PolicyRoleBindings.Add($fc)
$wa.Update()

2. Y finalmente a migrar a los usuarios!

$wa.MigrateUsers($true)

$wa.ProvisionGlobally()

Y listo! espero les sea de utilidad.

Restaurar el Servicio de Metadatos en una Infraestructura con Cluster de SQL

En un artículo anterior publiqué la manera en que podemos restaurar un servicio de metadatos mediante el comando Export-SPMetadataWebServicePartitionData.

Pues si han intentado ejecutar este comando en una Infraestructura de SharePoint con un Cluster de SQL deberán tener en consideración lo siguiente:

El backup del MMS debe estar copiado en una de las LUN de la SAN empleada para el Cluster, No debemos copiar el backup en una unidad local (Disco para el SO) de alguno de los nodos del cluster, esto debido a que estas LUN son compartidas por los servidores de la SAN pero el Disco local del nodo no es compartido por lo que el comando no comprende como obtener acceso al backup.

Es decir, al ejecutar el comando Export-SPMetadataWebServicePartitionData este identifica al Cluster de SQL como un solo equipo y por lo tanto las unidades de disco deben ser una sola para todos.

Tengan en consideración esto!

Configurando vistas en listas de grupos de SharePoint

Cuando en nuestro portal de SharePoint manejamos distintos grupos de usuarios y dentro de ellos una gran cantidad de usuarios registrados, resulta a veces tedioso el mantenimiento de estos grupos. Nos resulta complicado ubicar a un usuario para verificar su existencia en el grupo o darle de baja.

Una alternativa muy útil es la de clasificar a nuestros usuarios por algún atributo en particular, y para esto es posible crear nuestras vistas de usuarios.

Para crear las vistas de usuarios dirigirse hacia un grupo de SharePoint y dar clic en Configuración > Configuración de la lista.

En la siguiente página dirigirse hacia la sección de vistas disponibles y dar clic en Crear vista.

Personalizar la vista a nuestro gusto. Por ejemplo yo decidí crear una vista para agrupar a los usuarios por departamentos.

Podremos ver nuestros usuarios en el orden, agrupación o filtro que hayamos configurado en nuestra lista.

Moviendo site collections entre bases de datos

Generalmente la necesidad de mover colecciones de sitios entre bases de datos se da cuando una BD que aloja más de un site collection es muy grande y por consiguiente dificil de mantener (Hay ciertos limites en tamaño de BDs que recomienda Microsoft).

Pues a mi me surgió una necesidad distinta. Al momento de restaurar un site collection este se almacenó sobre una base de datos existente y no sobre una BD independiente como yo lo quería.

Pues el proceso para cambiar esto es muy sencillo y lo obtuve del siguiente link: http://technet.microsoft.com/en-us/library/cc825328.aspx

Simplemente debemos ejecutar el siguiente comando:

Move-SPSite http://miportal.mycompany.com/sites/misupersite -DestinationDatabase WSS_Content_MiSuperSite

Finalmente tendremos que reiniciar el IIS en todos los servidores para que apliquen los cambios y Listo!!!!