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.

Un poco de branding en SharePoint 2010

Ejemplos sencillos para cambiar el aspecto de nuestro sitio en SharePoint 2010. ¿Tunning? ¿Cirugía estética?

Lo que un administrador de SharePoint debería saber sobre Project Server

Los tópicos que un administrador de SharePoint debería saber que existen, antes de embarcarse en la instalación de Project Server 2010.

¿Report Builder 1.0 ó Report Builder 3.0?

Comparación de las versiones 1 y 3 de Report Builder.

¿Cómo manejar costos de proveedores en Project Server 2010?

Manejo de costos en proyectos con un presupuesto asignado y un plan de facturación asociados a las entregas de un proveedor.

viernes, 17 de mayo de 2013

Flujos de trabajo en SharePoint 2007 asociados a tipos de contenido


Requerimiento
Poder asociar flujos de trabajo a tipos de contenido.
  • Esto permitiría por ejemplo que el mismo flujo de trabajo se aplique en un conjunto de sitios.
  • Eso también permite que los cambios al flujo de trabajo sean centralizados, facilitando el mantenimiento.
¿Puedo asociar un flujo de trabajo a un tipo de contenido con SharePoint Designer 2007?
No, no es posible. En SharePoint Designer 2007, sólo se puede asociar el flujo de trabajo a librerías o listas. Esta definición puede encontrarse en: http://msdn.microsoft.com/es-es/library/ms414204(v=office.12).aspx
En SharePoint 2010, el enfoque cambia, porque se pueden crear flujos de trabajo re-usables y luego asociarlos a un tipo de contenido.
La solución con Visual Studio
Si creamos un flujo de trabajo con Visual Studio, tenemos tres posibles métodos de asociación:
  • A una lista o librería
  • A un tipo de contenido. Imaginemos por ejemplo asociarlo al tipo de contenido “documento” lo que haría que el flujo de trabajo se ejecute cada vez que se crea un documento en cualquier librería de documentos, de cualquier sitio de la colección de sitios
  • A un tipo de contenido, dentro de una lista: lo que nos permite que un flujo de trabajo se ejecute sólo para algunos tipos de contenido dentro de una lista.
La solución mediante Visual Studio es más costosa porque se hace a través de código, pero definitivamente más flexible cuando necesitamos que un flujo de trabajo se utilice en muchos sitios a la vez.

martes, 7 de mayo de 2013

The Enterprise global already contains a group named 'No Group'

Síntomas del problema

Existen dos síntomas para este problema, los cuales se dan bajo las siguientes condiciones:

  • El proyecto es creado desde PWA
  • El proyecto usa un EPT sin flujo de trabajo
  • El proyecto se abre luego desde Project Pro
Síntoma 1:

El proyecto se crea con un plantilla de plan sencilla con sólo dos tareas desde PWA.
Al abrir el proyecto desde Project Pro aparece el siguiente mensaje:

"The Enterprise global already contains a group named 'No Group'"

Este grupo no puede ser luego eliminado desde el Organizador.

Síntoma 2:

El proyecto se crea con o sin plantilla de plan desde PWA.
Luego de utilizar la funcionalidad de Build Team, los recursos no aparecen para ser seleccionados en las tareas, exceptuando que se salve el proyecto luego de haber creado el equipo.

Causa del problema

La causa es un posible error luego de la migración desde Project Server 2007 a Project Server 2010. Aparentemente no habría terminado en forma correcta la desactivación del modo de compatibilidad hacia atrás: BCM - Project 2007 Compatibility Mode.

¿Cómo se puede visualizar la causa?
  1. La opción de BCM se encuentra desactivada e inhabilitada en Adittional Server Settings
  2. Se crear un proyecto desde PWA usando el EPT default
  3. Se abre el proyecto desde Project Pro
En la parte superior de la pantalla se observa el mensaje "Compatibility Mode". Este mensaje no debería aparecer, porque el servidor no está corriendo en modo de compatibilidad.

Solución al problema

La solución consiste en abrir la Enterprise Global (que estaría corrupta) y hacer un cambio menor, para que Project Server note que hay un cambio y decida almacenar una nueva versión de la misma. Un cambio menor puede ser simplemente cambiar el ancho de una columna.

Luego de realizar el cambio, grabar la Enterprise Global.

A partir de ahí sucede lo siguiente:
  • Los proyectos nuevos ya no experimentan el problema
  • En los proyectos que posean el problema, se puede utilizar la opción "Replace" en el momento en que aparece el mensaje "The Enterprise global already contains a group named 'No Group'" y luego salvar el proyecto.
Los proyectos no deberían presentar ahora la leyenda "Compatibility Mode"

Tener en cuenta que en algunos casos puede ser necesario limpiar el caché para que se tome la nueva versión de la Enterprise Global. Esto no aplica a los creados desde PWA porque no usan caché.

lunes, 6 de mayo de 2013

Sharepoint Messenger

Les dejo este interesante proyecto para implementar chat o messenger en SharePoint 2010:

viernes, 19 de abril de 2013

Búsqueda en una lista en SharePoint Foundation 2010 (sin código)

En este video nos explican como implementar una búsqueda sencilla dentro de una lista con SharePoint Designer.

jueves, 18 de abril de 2013

IGNITE de Project 2013

Transcribo desde El Faro de Project Server:


Buenas,
En este post quería haceros llegar la información acerca las sesiones IGNITE de Project 2013 (sobre todo) y de Visio 2013 que nuestro colega y MVP, Vicente Rubio, ha estado impartiendo, en Madrid, Barcelona y Miami, para la comunidad hispano parlante de estas dos tecnologías. Dicha formación fue realizada en 9 sesiones, y vamos a tener la oportunidad de verlas en los vídeos que se van a ir publicando en esta Comunidad.
El vídeo de introducción se puede localizar en este enlace:
http://www.youtube.com/watch?v=iwSmIN2Pq9w&list=PLtn_9iuPsL0_W12yZuk7TjlfWWnZemGSt&index=1La agenda es la siguiente:
  • Introducción
  • Sesión 1 “Trabajando con Project Online”
  • Sesión 2 “Trabajando con Project 2013”
  • Sesión 3 “Trabajando con Visio 2013”
  • Sesión 4 “Arquitectura de Project Server 2013”
  • Sesión 5 “Seguridad en Project server 2013”
  • Sesión 6 “Administración de Project Server 2013”
  • Sesión 7 “Gestión de la demanda en Project 2013”
  • Sesión 8 “Business Intelligence en Project 2013”
  • Sesión 9 “Integración de Project y Visio en Office 365”
La serie estará compuesta de 18 videos (9 presentaciones y 9 videos)

Esperamos os resulte de interés, un saludo

lunes, 1 de abril de 2013

10 puntos para enamorarse de Project Server 2013

Este es un breve de resumen de las novedades de Project Server 2013. La lista incluye los 10 puntos que personalmente me resultaron más interesantes. Hay mucho más para profundizar, pero esta pequeña lista inicial, servirá para tentarse, para interesarse en la nueva versión y para comenzar a imaginar migraciones o nuevas instalaciones. ¡Qué lo disfruten!

Cada vez que Microsoft libera una nueva versión de Project Server, supera mis expectativas. La versión 2010 me había parecido el cambio más significativo de su historia. Y cuando pensaba que una versión 2013 no podría innovar demasiado, otra vez quedo sorprendido. De repente, aparece ahí todo lo que necesitábamos. ¡Bienvenidos a Project Server 2013!

1. Project Server online

No, no, no. No esperaba tener Project Server en la nube, pero ahí está. Y esto es más que importante. Para empezar, PS sigue en la carrera de los productos más consagrados de Microsoft, lo que es muy importante, porque lo hace alinearse a las tendencias y adaptarse a los estándares. Pero claro que lo más importante creo yo, es haber bajado la barrera de entrada. Montar una infraestructura de Project Server nunca es sencillo para una organización, hasta ahora, que tenemos una opción de entrada realmente viable. Bien por este cambio. Seguimos en las ligas mayores.

2. Los avances de la edición web

Desde la versión 2010 comenzamos a disfrutar de la posibilidad de crear y editar proyectos vía web, sí, desde PWA. Esto sigue avanzando con varias mejoras en la versión 2013, entre la que destaco:

-La vista de timeline, una de las hermosas novedades de Project 2010 ahora en Project Server 2013. Cool!

-No más necesidad de presionar calcular.

-Ahora podemos grabar líneas base.

-Campos de costos y materiales, deadlines, más tipos de tareas, cálculo automático de fórmulas y más!

3. SharePoint Designer para los flujos de trabajo

Sí, leyeron bien, los difíciles flujos de trabajo para gestionar la demanda que debían hacerse en Visual Studio, ahora se pueden hacer en SharePoint 2013, con limitaciones por supuesto. Tremendo cambio!Fundamental y necesario. No resolverá todos los problemas, pero simplifica la creación de flujos de trabajo poco complejos. Bienvenido sea. Esperemos que el próximo sea que Microsoft compre o desarrolle una súper potente herramienta de workflow. Marcaría la diferencia.

4. Arquitectura

Varios cambios en la arquitectura. Odata Service nos permite generar reportes en Project Server on line, donde no podemos acceder a la base de datos directamente. Las famosas 4 bases de datos fueron consolidadas en 1 para achicar costos a la hora de montar la infraestructura de Project Server. Hay muchos más, muchos de ellos relacionados con la nueva variante de PS on line.

5. Opciones pre Project Server

Podemos tener sitios de proyecto sin necesidad de usar Project Server. No manejan la conexión con PS, sí con Project. Si queremos comenzar con un proyecto de menor peso, SharePoint nos permite crear una lista de tareas de proyecto. Hasta ahí, algo normal, pero qué dirían si esa lista se puede integrar en la lista de proyectos de Project Server y sus asignaciones pudiesen ser tenidas en cuenta para el cálculo de la disponibilidad. Sí, en la versión 2013 se puede hacer, lo que supone un interesante camino para ir desde proyectos más livianos a más pesados. Punto a favor.

6. Acceso desde dispositivos móviles

Fundamentalmente para la funcionalidad de SharePoint, podremos acceder desde Windows Phone, Apple o Android con capacidades de touchscreen. Si utilizamos el cliente de Exchange, también será posible actualizar el estado de nuestras tareas. Suma!

7. Consolidación de Mis Tareas

Ahora es posible en un sólo lugar consultar tu tareas de Project Server, de SharePoint y de Outlook. Otro gran paso hacia la usabilidad, especialmente para los miembros de equipo, quienes creo apreciarán mucho este cambio. Este tipo de acciones pueden hacer a Project Server más popular.

8. Administración

Muchas de las configuraciones que anteriormente encontrábamos en Server Settings fueron movidas a la administración de SharePoint. Esto también era algo necesario, que antes lo resolvíamos con configuraciones a medida de seguridad. Apunta a separar las configuraciones más funcionales, propias de una PMO de las que corresponden más a una área de infraestructura. Administración de cola, backup, OLAP y algunas configuraciones de flujo de trabajo y políticas operacionales, ahora están en Central Administration.

9. Nuevo modelo de Seguridad

Ahora disponemos de dos modelos de seguridad, el clásico, complejo y conocido de Project Server y uno nuevo basado en SharePoint, más sencillo con ventajas y desventajas. Este nuevo modelo no maneja RBS ni categorías. A favor, está integrado con la seguridad de SharePoint y permite manejar mejor la herencia de permisos. Una mejora necesaria, que dependerá de cada caso y de acuerdos entre distintas áreas, la opción a elegir.

10. Otras cositas

Cuando configuren el fuera de oficina en Outlook, Project lo notará y lo tendrá en cuenta, así no es necesario duplicar los calendarios de vacaciones. También existe Project Pro para 365. En los sitios de proyecto, podemos ver las tareas del proyecto y abrir desde allí Project Pro. Y mucho más, pero escapa al alcance de este artículo.

Esto fue sólo una lista inicial para tentarlos y empezar a pensar en migraciones y nuevas instalaciones. Hasta la próxima!

Juan Pablo Pussacq Laborde
MVP SharePoint
jpussacq@gmail.com
@jpussacq
http://surpoint.blogspot.com/

Publicado originalmente en CompartiMOSS: http://www.compartimoss.com/revistas/numero-14/10-puntos-para-enamorarse-de-project-server-2013

Me entrevistaron para CompartiMOSS

He tenido el honor de que me entrevisten para la revista especializada en SharePoint: CompartiMOSS. Les dejo el enlace para leer la entrevista:

http://www.compartimoss.com/revistas/numero-15/entrevista-a-juan-pablo-pussacq

Hasta la próxima!

cm

lunes, 18 de marzo de 2013

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

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…
En un artículo previo, explicamos como generar información de tipo maestro-detalle en Project Server utilizando InfoPath. Este enfoque funciona bien, exceptuando en los ambientes en donde el separador entre el apellido y el nombre del usuario es un ";". En esto caso, se produce un error al editar el formulario en InfoPath. Para resolverlo hay que utilizar otro separador, lo cual puede ser complicado en entornos que utilicen sincronización con AD.

Es por ello que estuve trabajando en una alternativa que no utilize InfoPath. Descarté también el uso de Client Object Model para armar una pantalla de alta, principalmente porque me obligaría a cambiar ese desarrollo cada vez que se haga un cambio en las columnas de las litas

El enfoque propuesto
  • Usar las pantallas estándar de SharePoint.
  • Alta
    • Crear un link para llamar a la pantalla de alta en forma modal
    • Pasarle como parámetro el ID del proyecto
    • Completar el campo de ID con el dato recibido en la URL
    • Ocultar el campo
    • Refrescar la pantalla en caso de alta
  • Modificación / Baja
    • Usar la pantalla de Display para arrancar estas operaciones. Porque si se arranca del Edit, al eliminar el registro, no se vuelve a la PDP original
    • Código para ocultar la clave del maestro
  • Código
    • Formado por cuatro CEWP, una para la PDP y las otras tres para las pantallas dispForm, EditForm y NewForm
A continuación, trasncribo el código utilizado:

El código para la PDP

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

<script type="text/javascript">

 $("td:contains('There are no items to show in this view of the'):last").empty();

 function Callback (result, target) {
     if (result == SP.UI.DialogResult.OK) {
         window.location.reload();
     }

 }

 function AbrirVentanaModal( pUrl ) {  
   SP.UI.ModalDialog.showModalDialog(   
     {  
       url: pUrl,
       //width: 700,  
       //height: 600,
       dialogReturnValueCallback: Callback  
       //title: pTitulo  
     }  
   );  
 }

 function 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>

 <table><tr><td class="ms-addnew" style="padding-bottom: 3px"><span style="height:10px;width:10px;position:relative;display:inline-block;overflow:hidden;" class="s4-clust"><img src="/_layouts/images/fgimg.png" alt="" style="left:-0px !important;top:-128px !important;position:absolute;" /></span>&nbsp;<a class="ms-addnew" id="NewFinancialData" href="javascript: var PU=url_param('projuid'); AbrirVentanaModal('/PWA/Lists/Financial%20Data/NewForm.aspx?ProjUid='+PU)" target="_self">Add financial data</a></td></tr><tr><td><img src="/_layouts/images/blank.gif" width="1" height="5" alt="" /></td></tr></table>

El código para NewForm.aspx


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

<script type="text/javascript">

 // Esto lo hago porque el Editar estándar desde la PDP vuelve a cualquier lado luego de eliminar, incluso cambiando el source
 $('input[title="Title"]').attr("value","Edit");
 $('input[title="Title"]').parent().parent().parent().css("display","none");
 
// Cargo el dato de clave del Maestro
 PU = url_param ('ProjUid');
 $('input[title="ProjUID"]').attr("value",PU);
 $('input[title="ProjUID"]').parent().parent().parent().css("display","none");

 function 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>

El código para EditForm.aspx
<script src="/PWA/Internal/jquery-1.4.2.min.js" type="text/javascript"></script>

<script type="text/javascript">

 $('input[title="Title"]').parent().parent().parent().css("display","none");
 $('input[title="ProjUID"]').parent().parent().parent().css("display","none");

</script>

El código para DispForm.aspx

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

<script type="text/javascript">

 $('a[name="SPBookmark_Title"]').parent().parent().parent().css("display","none");
 $('a[name="SPBookmark_ProjUID"]').parent().parent().parent().css("display","none");

</script>

Enlaces relacionados



Hasta la próxima!

jueves, 14 de marzo de 2013

REST en SharePoint

Si quieren aprender algo de REST en SharePoint, les recomiendo que vean el artículo de Mario C. Flores:
SharePoint: Consumir servicio REST