SharePoint 2010: Creación de KPIs (I)

SharePoint 2010 es sin duda una plataforma perfecta sobre la que añadir elementos que faciliten la toma de decisiones empresariales. Entre estos elementos que simplifican esta toma de decisiones, tenemos los indicadores claves de rendimientos más conocidos como KPIs que nos permiten de un sólo vistazo como de bien o mal estamos en aspectos claves para una organización. A la hora de crear KPIs en SharePoint 2010 tenemos varias posibilidades:

  • Mediante la DataFormWebPart y un poco de XSLT, de forma similar a lo que ya teníamos para SharePoint 2007:
  • Mediante SSRS 2008 R2 integrado con SharePoint 2010.
  • Utilizando los KPIs que de forma nativa incorpora SharePoint Server 2010.
  • Creando KPIs con PerformancePoint, capacidad sólo disponible en SharePoint Server 2010.

De todas las opciones que os he comentado, las dos primeras están disponibles tanto para SharePoint Foundation como para SharePoint Server 2010. En este primer post vamos a ver como podemos crear un KPI con la DataFormWebPart y un poco de XSLT:

  • Creamos una lista de ejemplo que nos permita modelar los KPIs.
  • Nos vamos a SharePoint Designer 2010 (SPD 2010) y creamos una página de WebParts en el sitio. En una de las zonas de la página, insertamos una vista de datos a través de la opción correspondiente de la Ribbon. Si la vista de datos se basa en una lista (como es el caso) se genera una XsltListViewWebPart. La eliminamos.
image image image
  • A través del panel “Detalles del origen de datos”, insertamos en la página los campos de la lista que nos interesan de forma que ahora si se genera una DataFormWebPart.

image

  • Añadimos una nueva columna a la vista de datos utilizando los menús visuales disponibles. En la vista de código de la página, buscamos el código que se ha generado para la DataFormWebPart y localizamos la sección en la que tenemos las columnas correspondientes a la cabecera de la vista de datos (etiqueta <th>). Añadimos una nueva línea de cabecera correspondiente a la nueva columna añadida y que identifica el KPI.
   1: <tr valign="top">

   2:     <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">

   3:         <th class="ms-vh" width="1%" nowrap="nowrap"></th>

   4:     </xsl:if>

   5:     <th class="ms-vh" nowrap="nowrap" style="text-align: center">Título</th>

   6:     <th class="ms-vh" nowrap="nowrap" style="text-align: center">Valor</th>

   7:     <th class="ms-vh" nowrap="nowrap" style="text-align: center">Objetivo</th>

   8:     <th class="ms-vh" nowrap="nowrap" style="text-align: center">Evolucion</th>

   9: </tr>

  • Lo siguiente que tenemos que hacer es localizar dentro del código de la DataFormWebPart la parte correspondiente a la generación dinámica de las celdas de contenido en base al origen de datos. Esta parte la podremos encontrar en una porción de código XSL identificado por <xsl:template name=”dvt_1.rowview”>. Si inspeccionamos el código XSL, podremos localizar como se están añadiendo los valores de cada fila de datos de la vista.
  • Siguiendo la misma filosofía, añadimos en la celda que identifica a nuestro KPI el código XSL que nos permita simular el KPI. En este caso, utilizaremos la etiqueta <xsl:choose> que nos permite bajo una cierta condición especificar el valor o imagen (en este caso) a mostrar).
   1: <xsl:template name="dvt_1.rowview">

   2:     <tr>

   3:         <xsl:if test="position() mod 2 = 1">

   4:             <xsl:attribute name="class">ms-alternating</xsl:attribute>

   5:         </xsl:if>

   6:         <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">

   7:             <td class="ms-vb" width="1%" nowrap="nowrap">

   8:                 <span ddwrt:amkeyfield="" ddwrt:amkeyvalue="ddwrt:EscapeDelims(string(''))" ddwrt:ammode="view"></span>

   9:             </td>

  10:         </xsl:if>

  11:         <td align="center" class="ms-vb">

  12:             <xsl:value-of select="@Title"/>

  13:         </td>

  14:         <td align="center" class="ms-vb">

  15:             <xsl:value-of select="@Valor"/>

  16:         </td>

  17:         <td align="center" class="ms-vb">

  18:             <xsl:value-of select="@Objetivo"/>

  19:         </td>

  20:         <td align="center" class="ms-vb">                

  21:  

  22:       <xsl:choose>

  23: <xsl:when test="number(@Valor) &gt;= number(@Objetivo)"><img src="/_layouts/images/Green_icon.png" alt="Vamos bien"></img></xsl:when><xsl:otherwise ><img src="/_layouts/images/Red_icon.png"  alt="Vamos mal"></img></xsl:otherwise>                   

  24: </xsl:choose>

  25:  

  26:     

  27:         </td>

  28:  

  29:     </tr>

  30: </xsl:template>

  • Finalmente, guardamos los cambios realizados hasta el momento y comprobamos en la visualización de la página que el KPI se genera de forma correcta.

 

image image

Y hasta aquí llega este primer post sobre creación de KPIs en SharePoint 2010.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

5 comentarios en “SharePoint 2010: Creación de KPIs (I)”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *