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 :-)

lunes, 17 de diciembre de 2012

Project Server: protected baselines vs unprotected baselines

"Protected Baselines" son los que van desde el 0 a 5.

"Unprotected baselines" son los que van desde el 6 al 10.

No existe mucha documentación al respecto. Por lo que siempre entendí, es un nivel de seguridad pensado para separar permisos sobre las líneas base entre una oficina de proyectos y un líder de proyecto. Si una persona no tiene asignado el permiso "Save Unprotected Baseline", entonces no podrá usar las líneas bases de 6 a 10.

Transcribo la definición de Microsoft para más información:

Save Protected Baseline: allows a user to save a protected baseline or clear a protected baseline associated with an enterprise project published to the Project Server database. Grant this permission to project managers who need to save baselines in their projects. Baselines are saved using the Tools menu in Project Professional. On the Tools menu, point to Tracking, and then select Save Baseline or Clear Baseline. Protected Baselines are in the range of Baseline 0-5 inclusive. Only users with Save Unprotected Baseline, Open Project and Save Project Category permissions are able to save Baselines in Baseline 6-10.

Save Unprotected Baseline: Allows a user to save a non-protected baseline or clear a non-protected baseline associated with an enterprise project published to the Project Server database. Baselines are saved using the Tools menu in Project Professional. On the Tools menu, point to Tracking, and then select Save Baseline or Clear Baseline. Unprotected Baselines are in the range of Baseline 6-10 inclusive. In Project Server 2003 any user with Open Project and Save Project Category permissions were able to save Baselines.

Más información en:

miércoles, 12 de diciembre de 2012

Workflow en Project Server 2010 ¿Cómo crear información de maestro detalle en una PDP?

Anteriormente vimos como crear una PDP para flujos de trabajo de Project Server 2010. Las PDPs nos permiten capturar información que se almacenan en campos personalizados de Project Server. Sin embargo, un requerimiento muy común es que se necesiten cargar datos repetitivos asociados a un proyecto, como por ejemplo:

  • Productos afectados
  • Lista de stakeholders
  • Documentos
  • Etc…

A continuación les presento una solución basada en un excelente artículo de Andrew Lavinsky, el cual les recomiendo que lean, más un complemento de Naveen Kumar.

El enfoque de la solución es sencillo:

  1. Se crear una lista en SharePoint que almacene la información de detalle.
  2. Se modifica la pantalla de alta de esa lista con InfoPath para ocultar el campo de relación con el maestro: Project UID
  3. Se agregan tres elementos web en la PDP
    1. Un filtro por URL
    2. La pantalla de alta en InfoPath
    3. La pantalla con la información de detalle de la lista
  4. Mediante conexiones, el filtro por URL provee el dato de ID del proyecto a los otros dos elementos web
  5. Se agrega algo de código en jQuery para solucionar un pequeño comportamiento  no deseado

El resultado es una pantalla como la que vemos aquí:

imageimage

 

La lista a crear en SharePoint

Es una lista de tipo “custom” con la única salvedad de contener un campo para el ID del proyecto de tipo texto de una línea:

image

 

La modificación de la pantalla de alta de la lista

Simplemente hacemos clic en el botón “customize form”, recuerden que en SharePoint 2010, podemos modificar estas pantallas con InfoPath:

image

Luego, eliminamos la fila que contiene el campo ProjectUID, lo que hará que no esté visible:

image

Y agregamos un botón debajo, al que le modificaremos las propiedades para que sea de tipo “Submit”:

image

Luego, publicamos nuestro formulario:

image

image

 

Agregando los elementos web a la PDP…

1) Primero agregamos un elemento web para filtro de URL:

image

Con esta configuración:

image

2) Luego agregamos el elemento web de nuestra lista de SharePoint

Este es un elemento estándar, el punto importante es que quede conectado al elemento web de filtro por URL

3) Finalmente agregamos un elemento web de Infopath

Elegimos nuestro formulario y verificamos que la propiedad “Submit behavior” quede configurada en: “Close the form”

image

Este elemento hay que conectarlo al de filtro por URL para que el dato ProjectUID de la URL sirva para completar en forma automática el de nuestro formulario alta. Aquí es donde efectivamente estaremos estableciendo el vínculo!

 

Un último detalle

En el paso anterior usamos la opción “Close the form” en lugar de “Open a new form” que hubiese sido la opción lógica. La razón es que la opción “Open a new form” no funciona luego del primer submit, los filtros dejan de aplicarse. Por lo cual nuestra segunda alta quedará con un Project UID nulo!!!

Es por ello que usamos “Close the form”, que tiene un problema bastante feo. Luego de dar un alta, desaparece la pantalla de alta con un cartel que dice que el formulario se ha cerrado. El usuario sólo puede volver a hacer aparecer esta pantalla si refresca la página.

Como este comportamiento es bastante anti natural, la solución poco convencional es:

  • Agregar una CEWP
  • Que busque el mensaje que dice que el formulario se ha cerrado
  • Y que si lo encuentra, recargue la página.

Sí, es feo y lo peor es que genera un doble postback, pero es una alternativa interesante. El código de la CEWP es:

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

<script type="text/javascript">

$(document).ready(function() {

     if( $('#DialogFinalMessage').children().length>0 ) {
       window.location.href = window.location.href;
       }

   });

</script>

 

Conclusión

Esta es una forma sencilla de implementar maestro detalle en las PDPs de Project Server 2010 usando herramientas conocidas. Y lo más importante es que nos brinda un potencial enorme al poder incorporar información muchos más rica en nuestros flujos de trabajo.

Espero les resulte útil!