martes, 25 de agosto de 2009

Como cambiar dinámicamente un enlace de una página maestra en SharePoint

Hace poco tiempo un cliente me solicitó que cambiará el enlace de la página de inicio dependiendo de la dirección donde estaba ubicado el usuario. Si estaba en los sitios en Inglés o en Español.

Prerrequisitos para los lectores de este artículo:

  • Este familiarizados con la interface de SharePoint, por lo menos hallan subido documentos a librerías y alguna vez hayan cambiado la página maestra del portal o de algún sitio de SharePoint.
  • Este artículo asume que esta trabajando sobre una plantilla de colección de sitios Publishing Colaboration, que nos permite modificar las páginas maestras de los sub-sitios.
  • Utiliza como herramienta de desarrollo Visual Studio.
  • Tiene nociones básicas sobre Java Script y páginas maestras en ASP.Net 2.0.

Primero vamos a crear una función en javascript para reemplazar la dirección Web de una etiqueta de HTML <a hef> basado en la dirección Web donde esta navegando el usuario, como lo muestro abajo:

   1:  function VerificaUbicacion()


   2:  {


   3:  var x= document.getElementById('HomeLink');


   4:  var url = ""+document.location;


   5:  if (url.indexOf("Spanish") > -1)


   6:  {


   7:      var enlace = document.getElementById('HomeLink');


   8:      var url2 = ""+enlace.href;


   9:      enlace.href = url2.replace(/english/i,"Spanish");


  10:  }


  11:  };





  • HomeLink será el Id de la etiqueta <a href> que veremos luego.


  • document.location obtiene el url actual. Las comías “” son para indicarle a javascript que es el objeto que va a crear es de tipo string; el tipo string tiene un método indexOf() para buscar dentro de la cadena de caracteres el valor que nos interesa. –1 Indica que no lo encontró arriba de eso devuelve el índice donde inicia el primer carácter del valor encontrado.


  • Otro método de un objeto tipo string es replace, el primer valor debe de estar entre caracteres scape “/” y la i indica que no es sensible a las mayúsculas o minúsculas. Lo que estamos diciéndole es que reemplace el valor english por Spanish.



Ahora vamos a guardar este código en un archivo js que llamaremos VerificaUbicacion.js (Podemos utilizar algún programa como Javascript minimizer para compactar el archivo y hacerlo mas eficiente). Este lo podemos subir a una librería de estilos dentro de algún sitio de SharePoint para luego hacer referencia al mismo (este paso esta fuera del alcance del artículo, por ser una tarea tan sencilla de realizar).



Ahora vamos a modificar la página maestra para:




  1. Descargar una copia de la página maestra que vamos a utilizar para agregar este enlace de la página de inicio o Home. Para acceder directamente escriba la siguiente dirección: http://miservidor/_catalogs/masterpage . Esto nos llevará directamente a la librería de páginas maestras. Ahora seleccione la página maestra y en el menú que aparece sobre el nombre de la página seleccione la opción Send To:Download a Copy.


  2. Abra el archivo .master en Visual Studio o en Notepad.


  3. Agregar la referencia del archivo VerificaUbicacion.js dentro de las etiquetas <head> de la siguiente forma:



  4.    1:   <script type='text/javascript' 


       2:               src='/StyleLibrary/VerificaUbicacion.js' language="javascript">


       3:  </script>


       4:   




  5. Agregar el enlace de la página de inicio y la invocación del método VerificaUbicacion() en el método OnClick de la etiqueta <a href>. Comente el logo que SharePoint predeterminadamente coloca en las páginas maestras por el logo de home. Ud. puede ubicarlo de mejor forma como mejor le convenga.



  6.    1:  <td class="ms-globalTitleArea" >


       2:      <table width="100%" cellpadding="0" cellspacing="0" border="0">


       3:      <tr>


       4:      <td>


       5:      <a href="/English" id="HomeLink" onclick="VerificaUbicacion()">


       6:            <img src="/_layouts/images/home.gif" alt="Home" />


       7:       </a>


       8:       </td>


       9:           <!--


      10:          <td id="GlobalTitleAreaImage" class="ms-titleimagearea">


      11:          <sharepoint:sitelogoimage id="onetidHeadbnnr0" logoimageurl="/_layouts/images/titlegraphic.gif"


      12:          runat="server" />


      13:          </td>


      14:           -->


      15:          ..


      16:  </table>




  7. Subir la página maestra a la librería de páginas maestras del sitio de SharePoint. No se olvide de publicar la página maestra y luego de aprobar dicha publicación sino no podrá ver los cambios realizados.


  8. Seleccione la nueva página maestra como la página predeterminada de ese sitio. Para ello vaya a: Site Actions, Site Settings, Master Page.



Este ejemplo resuelve de una forma muy particular y sencilla la forma de cambiar la dirección web de un enlace basado en la dirección actual del usuario conectado dentro de la página maestra. No soy un experto en javascript pero me fue de mucha utilidad resolverlo de esta forma, combinando la disponibilidad de las páginas maestras en todos los sitios de SharePoint.



Eso es todo amigos, nos vemos hasta la próxima,



Manolo Herrera

martes, 11 de agosto de 2009

Conociendo la Arquitectura de SharePoint

Expositor: Manolo Herrera
Fecha: Miércoles, 19 de Agosto del 2009.
Lugar: Executrain (Edificio Sixtino Zona 10, Ciudad de Guatemala)
Hora: 18:30 – 20:30 hrs.

Contenido

  • Conoceremos las diferencias entre SharePoint Services y SharePoint Server.
  • Arquitectura de SharePoint a nivel de componentes y escalabilidad.
  • Por que será la próxima plataforma de desarrollo Web Masivo.
  • Hacia donde vamos (SharePoint 2010).

ms772323799deccc-038f-4a9e-82e7-91b15b7c2c42en-usoffice12

Nos vemos pronto!

Manolo Herrera

PerformancePoint Services for SharePoint

Es el nuevo titulo para PerformacePoint que ya no se vende como un producto por separado sino que vendrá como un servicio incluido para SharePoint Server 2010.  Una decisión inteligente y natural para que mas usuarios se beneficien de la aplicación de la inteligencia de negocios en sus empresas y como plataforma de publicación SharePoint.

Algo que muchos no han entendido del anuncio que hiciera Kurt DelBene sobre “Bring the BI to the masses with SharePoint”, es que este producto No viene por ahora dentro de ningún Service Pack de SharePoint. Ni el el 2.0 , ni creo que habrá otro SP para SharePoint hasta el lanzamiento de SharePoint 2010, ya que Microsoft ha indicado que para que preparar para la migración hacia SharePoint 2010 las instalaciones de SharePoint Server 2007 instaladas requieren la instalación del Service Pack 2.0

Lo que si anunció Microsoft para los usuarios que ya tiene PerformancePoint fue que para mediados del 2009 habrá un Service Pack 3.0 para PerformacePoint y no para SharePoint.

Actualmente PerformancePoint es un producto orientado a gente de negocios para construir los KPI’s de una forma mas amigable y construir los dashboards, scoreboards que pueden ser fácilmente instalados en SharePoint.  Contiene una parte Server y una Cliente.  Puede ser instalado por separado o en el mismo Server donde esta instalado SharePoint. 

Otra confusión es que la parte de Inteligencia de Negocios, Excel Sevices de SharePoint es el producto PerformancePoint.  No se puede estar mas equivocados comparar la infraestructura de SharePoint para publicar la información de BI, con la plataforma de PerformacePoint que empodera a la gente de negocios para desarrollar la minería de datos desde una interface de usuarios en sus escritorios, el desarrollo de Reportes, scorecards y dashboard para ser publicados en SharePoint con solo presionar el botón [Publish] e indicar la dirección del servidor de SharePoint.

Si desea probar este producto, puede empezar con las demos, luego con máquinas virtuales que ofrece Microsoft o Laboratorios, y si tiene una suscripción de MSDN o algo similar, aún podrá obtener la media para instalarla y probar el producto y la encontrará bajo el nombre PerformacePoint Server 2007.

Mas información sobre PerformacePoint en: http://www.microsoft.com/business/performancepoint/default.aspx

Hasta la próxima,

Manolo Herrera

martes, 4 de agosto de 2009

Cómo utilizar la autenticación del Portal de SharePoint para autenticarnos a Analisys Services en otro Servidor distinto al de SharePoint Server?

Algo que no es de dominio muy generalizado pero que es una necesidad latente en las empresas es Cómo puedo hacer para que mi cuenta con la que me autentico en el portal puedo utilizarla para conectarme al servidor de bases de datos donde tengo mis cubos de inteligencia de negocios?.  Cuando todo esta en una misma caja, no hay nada que hacer pero cuando esto se hace de forma separada que es la solución típica que se encuentra en el mundo de los negocios, allí es donde encontramos el reto, cómo hacerlo?.

Para esta pregunta hay dos respuestas Kerberos y Single Sign on de SharePoint Server.  La primera puede encontrar una buena referencia aquí: http://blogs.msdn.com/martinkearn/archive/2007/04/23/configuring-kerberos-for-sharepoint-2007-part-1-base-configuration-for-sharepoint.aspx

La segunda es el propósito de este artículo y es una solución efectiva para resolver el problema, y mas sencilla de implementar desde el punto de vista de un administrador de SharePoint que esta mas acostumbrado a interactuar con SharePoint y menos con los servicios de Servidor de Windows Server.

1) Debemos tener debidamente configurado el Proveedor de servicios compartidos de SharePoint o Shared Service Provider.  Puede revisar la versión formal de Microsoft en:

http://technet.microsoft.com/en-us/library/cc262914.aspx

o la información y práctica en:

http://odole.wordpress.com/2009/02/13/how-to-configure-shared-service-provider-and-mysite/

2) Debemos configurar adecuadamente el Single Sign On para ello puede consultar la guía detallada de  Robert Bogue en: http://thorprojects.com/blog/archive/2008/08/02/moss-single-sign-on-setup-step-by-step.aspx.

Algo que podemos pasar desapercibido en la guía y que es clave es al momento de configurar la Administración de “Single Sign On” debemos de autenticarnos en la Administración Central de WSS 3.0 con la cuenta que definimos para arrancar el servicio de Microsoft Single Sign On Service. De lo contrario nos dará un error de acceso denegado. image

3) Agregar las cuentas que se van autenticar para acceder los cubos de SSAS o SQL Server Analisys Services en [Central Administration], [Operations], [Security Configuration], [Manage Settings for single sign on] , [Manage account information for enterprise application definitions]:

image Escriba la aplicación que ya creó y la cuenta que tiene permisos en los cubos (Esta asociada a un Role dentro de  SSAS). Y Seleccione la opción "[Update account information], y presione el botón [Set].  Esto le permitirá actualizar el usuario y clave, como se muestra abajo:

image

En este caso como estamos utilizando autenticación por Windows y es la misma cuenta, escribimos de nuevo la cuenta y la clave. Con ello garantizamos que cuando se conecten a través de ODC o Object Data Connection lo harán con la misma cuenta con que se autenticaron.

4) Crear la infraestructura de Excel Services de SharePoint.  Favor lea el siguiente artículo: http://jmhogua.blogspot.com/2009/08/creando-la-infraestructura-para.html

5) Y por último crear los archivos ODC para conectar Analysis Services con SharePoint con el mismo usuario con que nos autenticamos en el portal.  Para ello revise el siguiente artículo:

http://jmhogua.blogspot.com/2009/08/como-crear-una-object-data-connection_04.html

No pase por alto los detalle y revise paso a paso cada configuración para obtener el éxito que desea y así publicar la información de los cubos en SharePoint, ya sea a través de KPI o Excel Documents.

Todos los ejemplo son pruebas realizadas con éxito en máquinas virtuales en mi portátil basadas en experiencias pasadas conectando servidores y servicios en ambientes productivos.  Así que puede estar seguro que sigue los pasos descritos y tiene una voluntad tenaz logrará comunicarlos servidores y autenticar con los mismos usuarios con que se autenticó SharePoint en SSAS.

Hasta la próxima,

Manolo Herrera

Creando la infraestructura para utilizar Excel Services dentro de SharePoint Server

Los servicios de Excel nos permitirán entre otras cosas conectar los cubos de Analysis Services desde un portal de SharePoint como “Pivot Tables”. Excel Services no soporta tables.

Cuando se crea una conexión de datos dentro de Excel que va hacer utilizado en una librería dentro de SharePoint cuidar deshabilitar la opción predeterminada “Always use connection file”. Ya que indicaremos que solo utilice las conexiones de datos de la librería de SharePoint.

image

Un repaso como crear una conexión dentro de Excel es la siguiente:

En el menú superior seleccione Data, From Other Sources, From Analysis Services 2005 y siga las siguientes imágenes:

Autentíquese con el servidor de SSAS:

image

Seleccione el cubo:

image

Indíquele que siempre va utilizar este archivo para actualizar la información y luego seleccione la configuración de autenticación y seleccione el nombre de la aplicación de Single sign on de SharePoint. Para más información revise el siguiente artículo:Como crear un archivo odc por medio de Excel para SharePoint .

image

CONFIGURANDO EXCEL SERVICES en SharePoint Server

Ahora vamos a crear la infraestructura de Excel Services de SharePoint que se utilizará en conjunto con “Single sign on” para conectar Analisys Services de SQL-Server y SharePoint.

En resumen debemos de:

a) Crear una librería de conexión de datos.

b) Definir la librería de conexión como confiable.

c) Definir la librería de documentos Excel como confiable.

d) Verificar que el proveedor de acceso a datos que utilizamos en Excel es la misma versión que esta en SharePoint Instalada.

e) Realizando la prueba con el elemento Web Excel Web Access.

En detalle debemos de:

Esta librería es útil para tener de una forma centralizada y controlada las conexiones hacia los datos para documentos Excel, elementos Web que utilizan archivos ODC u Object Data Connection.

a) Creando una librería de conexión de datos. Con una cuenta con permisos administrativos en SharePoint dentro de nuestro portal hagamos lo siguiente:

  1. Site Actions
  2. View all site content
  3. Create
  4. Data Connection Library
  5. Escriba el nombre, la descripción de la librería y presione el botón [Create].

image

b) Definiendo la librería de conexiones como segura:

Esta librería se utiliza como cualquier otra librería de SharePoint, solo lo único que debemos de indicar que esta librería es segura. Esto dentro del Proveedor de Servicios Compartidos de SharePoint o Shared Service Provider, [SharedService1], [Excel Services], [Excel Services Trusted Data Connection Libraries]. Como se muestra en la imagen de abajo:

image

c) Definiendo la librería de Excel como segura:

Una ejemplo de una librería de documentos para depositarlos documentos de Excel en SharePoint luce como la siguiente imagen:

image

Agregando la librería como una fuente segura:

Siempre en el proveedor de Servicios Compartidos de SharePoint: [SharedService1], [Excel Services], [Excel Services Trusted File Locations], seleccione [Add Trusted File Location].

Lo mas sobresaliente a definir esta la dirección o Address donde esta la librería de documentos (Importante debe de ser la dirección sin parámetros y sin el nombre de la página) donde depositará los documentos Excel.

Dirección válida: http://newserver/Reports/ReportsLibrary

Dirección inválida: http://newserver/Reports/ReportsLibrary/Forms/current.aspx

El campo Allow External Data debe de tener el siguiente valor: “Trusted data connection libraries only”. Esta opción solo permitirá conexiones a través de los archivos odc que enlazaremos con la librería de SharePoint.

image

d) Verificar que el proveedor de acceso a datos que utilizamos en Excel es la misma versión que esta en SharePoint Instalada.

Dentro de Excel 2007 podemos verificarlo en el menú: Data, Connections, Properties, como se muestra abajo:

image Si no sabe como crear una conexión de datos refiérase al siguiente artículo: Como crear un archivo odc por medio de Excel para SharePoint .

Para revisar la versión en SharePoint Server, vaya a: Central Administration, SharedService1, Trusted data providers.

image Ubíquelo si no es el mismo debe de modificar la connection string del archivo de Excel y colocar la versión instalada en SharePoint. Si ya lo publico, elimínelo de la librería de conexión de datos de SharePoint y vuélvalo a publicar. Si tiene duda como hacerlo revise el siguiente artículo:Como crear un archivo odc por medio de Excel para SharePoint .

e) Realizando la prueba con el elemento Web Excel Web Access:

Seleccione una página para editarla y agregar el elemento web, como lo muestra la siguiente página:

imageHaga clic sobre el elemento Web y presione el botón [Add]. Le dará como resultado la siguiente imagen:

image Haga clic sobre el enlace …tool pane. Haga clic sobre la columna [Workbook…]

image Seleccione la librería, luego el documento de Excel y por ultimo presione el botón [OK].

image Deje los valores predeterminados y presione el botón [OK] para finalizar.

Espere que termine de conectarse y obtener la información:

image

Si todo esta bien configurado deberá darle los resultados que espera como muestro el ejemplo de abajo:

image

Si no revise cada uno de los pasos que le indique en este artículo, y en las referencias que menciono abajo.

Esta infraestructura funciona en conjunto con la Configuración de Single Sign On de SharePoint, favor revise el artículo que escribí al respecto: Cómo utilizar la autenticación del Portal de SharePoint para autenticarnos a Analisys Services en otro Servidor distinto al de SharePoint Server?

Una vez configurado estas dos infraestructuras Excel Services y Single sign on. Solo queda crear los archivos ODC para conectar todo desde SharePoint. Para ello revise el artículo con la siguiente descripción: http://jmhogua.blogspot.com/2009/08/como-crear-una-object-data-connection_04.html

Espero tenga éxito en la configuración de los servicios de Excel y disfrute realizando Dashboards en SharePoint, que es la parte mas divertida al final de toda la configuración.

Hasta al próxima,

Manolo Herrera

Cómo crear una Object Data Connection desde Excel para ser utilizado en un Portal de SharePoint?

Los objetos de conexión de datos creados desde o para Excel son muy utilizados para Análisis de Cubos de información pero la variación de este artículo es como hacemos para asociarlo al Servicio de Single Sign on the SharePoint de tal suerte que nos permita utilizar el mismo usuario con que nos conectamos al Portal sea con el que nos conectamos al Analysis Services de SQL Server.

El procedimiento es el siguiente:

1) Dentro de una hoja de Excel seleccionamos la opción [Data], [From Other Sources], [From Analisys Services]. Nos mostrará una venta que debemos de ingresar el nombre del server y la cuenta que utilizaremos para conectarnos a Analysis Services:

image

2) Seleccionamos el Cubo al que nos deseamos conectar:

image

3) Le indicamos que no guarde la clave, que siempre intente utilizar el archivo para actualizar los datos y presionamos clic sobre [Authentication Settings].

image

4) Coloque el nombre de la aplicación que debe de ser el mismo nombre que escribió en la configuración de “Single sign on” en SharePoint como lo muestro abajo:

image

image

Presione el botón [Ok] y luego el botón [Finish].

5) Ahora seleccione en Excel [Data],[Connections]. Le mostrará una ventana, haga clic sobre el botón [Properties…],Haga clic sobre la pestaña [Definition] y haga clic sobre el botón [Export Connection File..]

image

6) Le mostrará una ventana escriba la dirección URL del servidor de SharePoint, le solicitará que se autentique. Hágalo con una cuenta que tiene acceso a la librería de archivos odc en SharePoint .

image

7) Haga clic sobre la librería para seleccionarla:

image

8) Si se logró conectar le mostrará la siguiente página:

image

Escriba una descripción amigable como el titulo, una palabra clave, Seleccione la conexión que nuestro ejemplo es Database y luego el propósito por estándar es [ReadOnly]. Haga clic sobre el botón [OK] y luego le mostrará una ventana de progreso:

image

Si todo terminó con éxito, vuelva a la librería de SharePoint y debería de encontrar el archivo exportado. Como lo muestra la siguiente imagen:

image

9) Ahora vamos a probar su funcionamiento. Para ello vamos utilizar un KPI List. (Si no tiene uno en su portal haga lo siguiente: Site Actions, View All Site content, Create, KPI List, Escriba un nombre y una descripción y presione el botón [OK]).

Seleccione la lista dentro del portal de SharePoint y sobre la flecha hacia abajo del botón [New] haga clic para que le muestra la siguiente imagen:

image Y seleccione la opción [Indicator using data in SQL Server 2005 Analysis Services].

Luego seleccione el archivo odc que recientemente publicamos y si esta utilizando un usuario que no ha registrado en la configuración de la definición de la aplicación de Single sign on. Muy probablemente le mostrará el siguiente error:

image

Vaya al Central Administration WSS 3.0 y en Operations, Single sign on Settings, registre el usuario con el cual tiene permisos en SharePoint para crear la lista KPI y desea configurarla. Que para nuestro ejemplo es newserver\administrator.

image (Escriba la cuenta, presione el botón [Set] y vuelva a escribir la misma cuenta solo que incluyendo la clave.

Luego vuelva al portal seleccione de nuevo la Data Connection y le mostrará los kpis creados en Analysis Services, como lo muestra la imagen de abajo:

image

Seleccione el KPI de su elección. Escribe el nombre del KPI, y presione el botón de [OK].

Y debería mostrarle lo siguiente:

image

Eso es todo ya puede continuar conectado kpis e información de los cubos a través de los archivos odc y el servicio de Single Sign on de SharePoint.

Para saber como configurar el servicio de Single Sign on en SharePoint revise el siguiente artículo en mi blog: Cómo utilizar la autenticación del Portal de SharePoint para autenticarnos a Analisys Services en otro Servidor distinto al de SharePoint Server?

Hasta la próxima,

Manolo Herrera