SSD: el síndrome de la Sharepoint dependencia

Sharepoint me proporciona seguridad y me hace sentir más fuerte. Las 10 cosas que más me gustan de Sharepoint.

10 puntos para entender a Project Server 2010

Microsoft Project es quizá la herramienta de gestión de proyectos más conocida y utilizada por los líderes de proyectos...

Diseño Gráfico en SharePoint

Serie de artìculos que nos ayudan a incorporar diseño gráfico en las implementaciones de SharePoint...

Revista CompartiMOSS

Artículos publicados en la revista especializada en SharePoint: CompartiMOSS.

Contacto

Enviame un correo :-)

jueves, 31 de enero de 2013

Pruebas de correo electrónico con formato HTML en Outlook

Si te ha tocado trabajar dándole formato a los correos electrónicos enviados por ejemplo desde un flujo de trabajo de SharePoint, habrás notado que Outlook tiene muchas diferencias con otros clientes de correo. Incluso, lo que se ve bien en OWA no se verá igual en Outlook.

Es por eso que a continuación te dejo algunos recursos que me han sido muy útiles en este tipo de pruebas. Espero te sean útiles y desde ya te agradezco que compartas los que conozcas:


Hasta las próxima!

lunes, 28 de enero de 2013

Workflow en Project Server 2010 ¿Valores predeterminados en campos de empresa en una PDP?

Cuando trabajamos con PDPs en Project Server 2010, no es sencillo establecer un valor predeterminado para un campo de empresa de tipo obligatorio. Si bien la configuración de campos de empresa permite establecer valores predeterminados, estos funcionan en forma correcta en Project Pro, pero no en la forma esperada dentro de PWA.
Es por ello que en este breve artículo vamos a explicar como manejar los valores predeterminados utilizando un poco de JavaScript. El enfoque de trabajo es el siguiente:
  • Utilizar JavaScript para configurar el valor predeterminado de los campos, sólo si se trata de la PDP usada en una creación de proyecto.
  • Utilizar JavaScript para ocultar dichos campos.
Separaremos el código en dos archivos:
  • Un archivo con el contenido de la CEWP que se insertará en la PDP, debajo de los campos de empresa. .
  • Un archivo de constantes con los guids y demás valores de cada campo.

El código del archivo de contantes

/* Valor predeterminado para el campo Stage en la PDP Request */

STAGE_ID = "ctl00_m_g_80e4b936_45c6_442d_b8de_a93ac30efea1_ctl00_pfp_Repeater_ctl06_idCF_976b5670-7e3b-407d-ad53-1d0343fc3f0c";
STAGE_GUID = "966707bd-8f55-4f0e-97d1-8c94256c55a3";
STAGE_TEXTO = "Planned";

/* Valor predeterminado para el campo Program en la PDP Request */

PROGRAM_ID = "ctl00_m_g_80e4b936_45c6_442d_b8de_a93ac30efea1_ctl00_pfp_Repeater_ctl08_idCF_38852eb9-5126-4fb2-b1ef-45e6edfeb116";
PROGRAM_GUID = "d74da6ee-48ce-491a-ad6e-416da8c99ab2";
PROGRAM_TEXTO = "Yes";

El código de la CEWP 

<script src="/PWA/Internal/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/PWA/Internal/constantes_workflow.js" type="text/javascript"></script>

<script type="text/javascript">

 $(document).ready(function() { 

     predeterminar_campo (STAGE_ID, STAGE_GUID, STAGE_TEXTO);
     predeterminar_campo (PROGRAM_ID, PROGRAM_GUID, PROGRAM_TEXTO);

   });


function predeterminar_campo ( id_campo, guid_valor, texto_valor ) {

     if ( workflow_url_param ( "NewProject" ) == "yes" ) {
    
         // Valor del campo
         $('#'+id_campo).attr("value",texto_valor);

         // ID del valor del campo
        $('#'+id_campo).attr("LTValue",guid_valor);
     
         }

     // Oculto la fila de la tabla que contiene el campo
    $('#'+id_campo).parent().parent().parent().parent().parent().parent().css("display","none");

}

function workflow_url_param ( name ){  
 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
 var regexS = "[\\?&]"+name+"=([^&#]*)"; 
 var regex = new RegExp( regexS ); 
 var results = regex.exec( window.location.href ); 
 if( results == null ) 
   return "";
  else 
   return results[1];
}

</script>

Opción 2

Una segunda opción que he probado y me ha dado buenos (mejores) resultados consiste en buscar el atributo title en lugar del id. Los cambios con:

En el archivo de constantes:


STAGE_ID = "Stage";


En la CEWP:


$('input[title="'+id_campo+'"]').attr("value",texto_valor);
$('input[title="'+id_campo+'"]').attr("LTValue",guid_valor);
$('input[title="'+id_campo+'"]').parent().parent().parent().parent().parent().parent().css("display","none");


Conclusión

Esta ha sido una forma de resolver el inconveniente de los valores predeterminados en las PDPs de flujos de trabajo en Project Server 2010, utilizando código de cliente JavaScript. Espero les haya resultado útil.

martes, 22 de enero de 2013

Recursos para saber cuánto cuesta SharePoint 2010

Les dejo algunos recursos que tenemos en la web y nos pueden ayudar con este tema:

Espero les resulte útil. Si conocen algún recurso adicional, será bienvenido!

lunes, 21 de enero de 2013

jueves, 17 de enero de 2013

Workflow en Project Server 2010 - Seguridad

Este breve artículo pretende describir algunos temas acerca de los permisos necesarios para trabajar con flujos de trabajo en Project Server 2010.

Los permisos estándar

Los permisos específicos para manejo de flujos de trabajos son:

Permisos globales

  • Change Workflow: le permite a un usuario cambiar el EPT (enterprise project type) de un proyecto.
    • Este permiso engloba:
      • La opción de cambiar un EPT
      • La opción de reiniciar un flujo de trabajo (restart workflow)
  • Manage Workflow and Project Details Pages: permiso para administrar flujos de trabajo y PDPs.
    • Este permiso hablita o inhabilita todas las opciones de flujo de trabajo disponibles en Server Settings en la sección "Workflow and Project Detail Pages":

image

Estos permisos están asignados en forma predeterminada al grupo de Administradores únicamente.
 
 
Permisos de categorías
 
No existen permisos exclusivos de flujos de flujos de trabajo en categorías.
 
 
Permisos en SharePoint

Existen en SharePoint los siguientes grupos relacionados con flujos de trabajo:
  • Workflow and Project Detail Pages Administrators Group (Microsoft Project Server)
  • Project Managers Group  (Microsoft Project Server)
  • Team Members Group (Microsoft Project Server)
  • Web Administrators Group (Microsoft Project Server)
Estos grupos tienen algún tipo de acceso a las siguientes listas:
  • Project Details Pages
  • Project Server Workflow History
  • Project Server Workflow Tasks
En particular, los projects managers y los team members tienen permisos de team members (colaboración básicamente) en la lista de tareas del flujo de trabajo (Project Server Workflow Tasks) y en la de historial (Project Server Workflow History). También tienen permiso de lectura en la librería de PDPs (Project Details Pages).
 
Esto nos permite entender que usuarios pueden modificar tareas de flujo de trabajo.
 
El grupo de administradores de PDPs tiene permiso de administrador web en las tres listas.
 

Lo no estándar

Es posible que tengamos algunos requerimientos de seguridad específicos, que hagan necesario crear permisos especiales. A continuación veremos algunos ejemplos. De todas maneras, en la medida de lo posible, siempre es conveniente utilizar los permisos predeterminados.
 

Requerimiento 1: iniciadores de flujo de trabajo

 
Requerimiento

Se necesita que el grupo de personas que inicie los flujos de trabajo pueda:
  • Iniciar un flujo, lo que implica crear un proyecto
  • No pueda modificar flujos de trabajo en donde no es el Owner, sólo los suyos
  • Puede reiniciar un flujo de trabajo
 
Enfoque propuesto
  • Se trabajará con un grupo y una categoría especial que no se solape con otros existentes que puedan haber surgido en base a necesidades específicas
  • Se requiere asignar el permiso "Change Workflow" sólo disponible en Administradores.
  • Se requiere una categoría parecida a My Projects, que sólo permita modificar los proyectos en donde el iniciador es el owner
Nueva categoría: mis flujos de trabajo
 
Las reglas dinámicas de la categoría se configuran de la siguiente forma:
image
 
Nuevo grupo: iniciadores de flujos de trabajo
 
A este nuevo grupo se le asignarán los siguientes permisos para la categoría “mis flujos de trabajo”:
  • Build Team on Project
  • Create New Task Asignment
  • Creat Object Links
  • Delete Project
  • Edit Project Summary Fields
  • Manage Basic Project Security
  • Open Project
  • Publish Project
  • Save Project to Project Server
  • View Project Schedule in Project Web App
  • View Project Site
  • View Project Summary in Project Center
  • Asign Resource
  • View Enterprise Resource Data
  • View Resource Assignments in Assignment Views
Y los siguientes permisos globales:
  • Change Workflow
  • Change Password
  • Log On
  • Manage Personal Notifications
  • Build Team on Project
  • New Project
  • Open Project Template
  • Vie Resource Plan
  • View Project Center
  • View Project Schedule Views
  • View Task Center
  • View Team Builder
Nuevo grupo de SharePoint: Workflows Initiators (Project Server)
 
Es grupo necesita permiso de Team Members en las siguientes librerías de PWA:
  • Project Server Workflow History
  • Project Server Workflow Tasks

Y permiso de Lectura en:

  • Project Details Pages

Es posible que hallamos creado alguna lista para cargar datos en forma de tabla durante alguna de las etapas del flujo de trabajo. Si es así, no debemos olvidar darle permiso al iniciador o a los aprobadores de tareas sobre ese lista. Eso dependerá de nuestras reglas de negocios. Una posible alternativa sería:

  • Colaboración para el iniciador
  • Lectura para el resto

Nota: es posible que necesitemos quebrar la herencia de permisos en esta nueva lista.

 

Requerimiento 2: los aprobadores de tareas


Requerimiento

Se necesita que el grupo de personas a las que se les asignan tareas de flujo de trabajo pueda:
  • Editar y completar las tareas
  • Ver los detalles del proyecto
Enfoque propuesto
  • Se trabajará con un grupo y una categoría especial que no se solape con otros existentes que puedan haber surgido en base a necesidades específicas
Nueva categoría: mis aprobaciones de flujos de trabajo
 
Se crea una categoría llamada “mis aprobaciones de flujos de trabajo” con la siguiente configuración:
image
 
Nuevo grupo: aprobadores de flujos de trabajo
 
A este nuevo grupo se le asignarán los siguientes permisos para la categoría “mis flujos de trabajo”:
  • Open Project
  • View Project Schedule in Project Web App
  • View Project Site
  • View Project Summary in Project Center
  • View Enterprise Resource Data
  • View Resource Assignments in Assignment Views
Y los siguientes permisos globales:
  • Change Password
  • Log On
  • Manage Personal Notifications
 
Nuevo grupo de SharePoint: Workflows Aprobers (Project Server)
Es grupo necesita permiso de Team Members en las siguientes librerías de PWA:
  • Project Server Workflow History
  • Project Server Workflow Tasks

Y permiso de Lectura en:

  • Project Details Pages
 

Conclusión

La funcionalidad de gestión de la demanda de Project Server es flexible, lo cual hace que podamos implementar procesos de negocio complejos y diferentes entre sí. Esa puede ser una razón por la cual necesitemos modificar la seguridad estándar de flujos de trabajo. En este breve artículo, hemos explicado que es lo que viene fuera de la caja y dimos ejemplo de personalizaciones.

Cualquier duda me consultan.

 

Bibliografía

lunes, 14 de enero de 2013

10 puntos para entender la Gestión estratégica del portfolio de proyectos en Project Server 2010

El propósito de este breve artículo es introducir al usuario en la potente herramienta de gestión estratégica de portfolio de proyectos en Project Server. Esta herramienta no ha sido tan conocida en la versión 2007 por se una utilidad separada de Project Server. Si embargo, en la versión 2010, su integración total y natural la convierte en una importante solución para el circuito previo a la ejecución de los proyectos: la elección de los proyectos a ejecutar.

(Publicado originalmente en http://www.compartimoss.com/)

1 ¿En qué consiste la gestión estratégica de proyectos en Project Server?

La mejor explicación a mi gusto es que, así como la gestión de proyectos busca lograr una ejecución exitosa de los mismos, la gestión estratégica del portfolio de proyectos, busca seleccionar los proyectos a ejecutar, detectando cuáles le aportan mayor valor al negocio. Si lo piensan 5 minutos, ¿no es esto demasiado importante cómo para no considerarlo?

Muchas organizaciones manejan este proceso de esta forma (muy resumido). A principio de un ejercicio fiscal, determinan los objetivos de negocio. Identifican un conjunto de iniciativas y evalúan cómo pueden ayudar a cumplir esos objetivos de negocio. Estiman un costo de alto nivel de esas iniciativas y un beneficio esperado. En algunos casos planifican la necesidad de recursos. Con todos esos datos seleccionan los proyectos que pueden ejecutar de acuerdo a un presupuesto siempre restringido. Una vez que se aprueba esa selección comienzan los proyectos uno a uno, pero eso ya es terreno conocido.

2 ¿Qué son los drivers del negocio?

El primer paso en este proceso es identificar los objetivos de negocio que perseguimos. Para ello, Project Server mantiene una librería de drivers la cual debemos priorizar a través de un método manual o de un interesante algoritmo que nos hace comparar a todos los drivers entre sí y luego le asigna un peso calculado a cada uno. Más adelante en el proceso, buscaremos aquellos proyectos que mejor estén alineados a nuestros drivers.

3 ¿Cómo se priorizan los proyectos?

El proceso  es sencillo. El primer paso es crear un escenario de análisis en el  que debemos elegir:

  • ¿Qué proyectos vamos a analizar?

  • ¿Qué priorización de drivers utilizaremos?

  • ¿En qué campo almacenamos el costo estimado del proyecto?

  • Y algunos datos más si queremos analizar la disponibilidad de recursos.

Luego, contrastamos la alineación de cada uno de los proyectos contra cada driver y Project Server asigna una prioridad a cada proyecto, teniendo en cuenta la alineación de los mismos, pero también el peso de cada driver.

Lo interesante es que esto lo puede hacer el rol a cargo de la selección de proyectos, pero también puede ser pedido en el workflow de creación de la iniciativa, en donde el dueño de la misma puede crear una primera alineación de su proyecto con los drivers.

El resultado de este paso es una lista priorizada de proyectos.

image

4 ¿Cómo es el proceso de selección de proyectos?

Una vez priorizados los proyectos, Project Server compara los costos con un presupuesto general y selecciona los proyectos que generen mayor valor a nuestro negocio y que puedan ejecutarse con nuestro presupuesto actual. Nos brinda la posibilidad de generar varios escenarios con distintas variantes de presupuesto y salvar cada uno de ellos.

Algo muy interesante es que previo a este análisis pudimos haber establecido dependencias como por ejemplo que un proyecto sólo pueda ser elegido si otro también es  elegido. También exclusiones para manejar alternativas entre varios proyectos. Si elijo A, no puedo elegir B o C.

Finalmente no debemos olvidar que siempre podremos sobre-escribir lo que Project selecciona en forma automática, por ejemplo obligando a que un proyecto sea elegido porque es un cambio regulatorio.

Una vez seleccionados los proyectos podemos confirmarlos. Esto, además de registrar ciertos datos en la BD, podría disparar una acción de workflow como la aprobación para efectivamente dar inicio a un proyecto en particular.

image

5 ¿Es posible hacer un análisis de disponibilidad de recursos?

Si. Se trata de un paso opcional. Si he definido planes de recursos para los proyectos, puedo hacer análisis, también utilizando varios escenarios, para saber si mi disponibilidad de recursos es suficiente. Incluso puedo hacer variar datos cómo la contratación de recursos para determinar si un proyecto es seleccionado o no.

Como resultado obtengo una segunda selección de proyectos, que depende de los escenarios de análisis de costos. Esta selección también puede ser confirmada y disparar acciones dentro de un flujo de trabajo.

6 ¿Puedo incluir un flujo de trabajo para gestionar la lógica del proceso?

Claro y esta es una de las novedades más interesantes de Project Server 2010. Cada iniciativa puede arrancar con un flujo de trabajo para ir capturando información o realizando aprobaciones parciales. Lo interesante es que una iniciativa que no puede avanzar más en forma individual, puede quedar a la espera del proceso de selección de proyectos. Si la alternativa es seleccionada, la misma puede volver a su flujo individual que puede contener pasos como el inicio formal del proyecto, su ejecución y su cierre, es decir, el circuito completo de gestión de proyectos en la misma herramienta.

Es importante entender que nuestro flujo de trabajo puede no existir, ser simple o tan complejo como lo necesitemos.

7 ¿Cómo construyo los flujos de trabajo?

Los flujos de trabajo en Project Server 2010 deben ser construidos con Visual Studio. Desde el punto de vista de la arquitectura, constituyen una capa por encima de los flujos de trabajo de SharePoint. SharePoint Designer no tiene lugar aquí. Algunas herramientas de terceros como Nintex soportan Project Server. A favor (si la contra es el desarrollo es obligado) es que hay mucho que se resuelve con parametrización: los campos custom, las fases y etapas del flujo, las PDPs que nos permiten agrupar la información y la obligatoriedad de los campos. Todo, menos la lógica del negocio que le queda a nuestro amigo, el Visual Studio.

8 ¿Qué son los Enterprise Project Types?

Cuando creo una iniciativa, lo hago desde Project Web Application, seleccionado un tipo de proyecto (EPT). Un EPT está caracterizado por un flujo de trabajo, una plantilla de sitio, una plantilla de Gantt y un departamento entre otros datos. Los EPTs le dan una enorme flexibilidad a Project Server, que antes no existía.

9 ¿Tengo que crear un Gant?

La creación del Gant no es obligatoria. Lo normal es que ni aparezca la opción en las primeras etapas de nuestro flujo de trabajo. Sin embargo, no es necesario esperar hasta el inicio del proyecto. Podríamos estar capturando algunos hitos principales incluso antes de la aprobación de una iniciativa. Está naturalmente  integrada al flujo de trabajo.

10 ¿Por qué está totalmente integrado con la gestión de proyectos?

Porque en la misma herramienta soporto desde el nacimiento de una idea hasta el cierre del proyecto que la implementa, pasando por un proceso transversal como la selección del conjunto de proyectos que mejor valor le aporten a mi negocio.

Conclusión

Comenzar a trabajar con gestión estratégica del portfolio de proyectos no es una tarea tan complicada en Project Server ya que ha sido uno de sus 4 pilares de mejora en su versión 2010. 

Por supuesto, detrás de una implementación de este tipo, las organizaciones necesitan definir un proceso, si aún no lo tienen. 

De todas maneras, existen diferentes niveles de complejidad para comenzar, no es necesario iniciar con toda la funcionalidad completa.

Los animo a intentarlo. ¡Hasta la próxima!

 

Juan Pablo Pussacq Laborde
SharePoint MVP
Blog: http://surpoint.blogspot.com/
Facebook: http://facebook.com/surpointblog/
Twitter: http://twitter.com/jpussacq/

miércoles, 9 de enero de 2013

SharePoint 2007 lento (solucionado)

Si están experimentando un problema de lentitud de SharePoint, por ejemplo: uno o dos minutos al cargar la página principal, es posible que estos artículos cambien su vida:

Espero les resulte útiles!