Estoy inmerso en un proyecto de implantación de Microsoft Dynamics NAV 2009 R2 junto el vertical LS Retail y he tenido que tomar la decisión de si el cliente a utilizar en la instalación será el clásico o bien será el nuevo cliente basado en roles, también llamado Role Tailored Client.

Por supuesto, antes de tomar la decisión he realizado un pequeño estudio de las ventajas y de los posibles inconvenientes de cada uno de ellos y es precisamente ese estudio el que me gustaría compartir.

Sería un error pensar que solo se trata de comparar las interfaces de pantalla y listo… En realidad el cambio es mucho más substancial, detrás del cliente por roles hay un cambio de arquitectura realmente notable. De hecho Microsoft, en la versión 2009, no ha realizado mejoras importantes a nivel de funcionalidad del ERP sino que ha dedicado todos sus esfuerzos a la actualización de la plataforma tecnológica.

Vamos a dividir el tema en cuatro apartados importantes: la arquitectura, el impacto en el partner y su equipo de desarrollo, la usabilidad del cliente por roles y las repercusiones que puede tener en la inversión la decisión que tomemos.

Arquitectura

La arquitectura de un sistema está entre los elementos más importantes ya que va a determinar su rendimiento, sus niveles de escalabilidad, de seguridad y de integración con otros sistemas, al mismo tiempo que el nivel de complejidad técnica.

Hasta la versión 2009 también llamada NAV 6, Microsoft ha mantenido intacta una arquitectura de 2 capas Cliente/Servidor donde el cliente, además de la presentación, tiene toda la lógica de negocio (fat client) y donde el servidor se utiliza exclusivamente como servidor de base de datos. Sin entrar en muchos detalles podemos decir que este tipo de arquitectura tiene un problema de escalabilidad causado por un exceso de bloqueos en la base de datos y su consecuente cola de espera cuando trabajan varios usuarios de manera concurrente.

En la nueva arquitectura de 3 capas nos encontramos con una primera capa de presentación que ocupa el cliente por roles, con una segunda capa de lógica de negocio desempeñada por NAV Service Tier (NST) y, en común con la arquitectura de 2 capas, una tercera capa ocupada por la base de datos SQL Server.

En las siguientes imágenes podemos ver ambas configuraciones compartiendo la capa de base de datos y trabajando en paralelo sin ningún problema. De hecho, si nos decidimos por la arquitectura de 3 capas tendremos también que mantener en paralelo la arquitectura cliente / servidor para realizar tareas que todavía no han sido migradas al Role Tailored Client, como es el caso del entorno de desarrollo.

Arquitectura_3

Es muy importante hacer hincapié en que la inclusión de la capa central NAV Service Tier (NST) y en concreto el módulo de Web Services, supone la introducción del ERP dentro del mundo ubicuo de la arquitectura orientada a servicios (SOA) y brinda la posibilidad tanto de integrar aplicaciones externas como la posibilidad de extender la funcionalidad mediante un entorno de desarrollo distinto que C/SIDE.

Los Web Services exponen al mundo exterior los servicios de autenticación, la lógica de negocio de Dynamics NAV y el acceso a datos y su validación.

Creo que era de juzgado de guardia que SAP tuviera APIs preparadas para realizar desarrollos en la plataforma Microsoft .NET (sin duda la mejor de todo el mundo mundial) y que Navision estuviera totalmente cerrado a C/SIDE y C/AL.

Microsoft ha sabido, además, eliminar la complejidad que puede representar la publicación de Web Services ya que, por una parte, ha incorporado un servidor http desarrollado en Windows Comunication Foundation (WCF) que forma parte de la instalación y que nos aleja de la complejidad de Internet Information Server (IIS) y, por otra, ha ofrecido la posibilidad de que cualquier componente tipo Codeunit o Page diseñado en la aplicación pueda ser publicado como servicio web simplemente registrándolo como tal.

Comentar también que, por definición, la arquitectura de tres capas, si bien aumenta la complejidad de la instalación, asegura también un sistema altamente escalable.

En definitiva, una arquitectura abierta, escalable con un cliente muy rico como veremos más adelante, pero….. un poquito más compleja.

El Partner y su equipo de desarrollo

A pesar de los esfuerzos de Microsoft para evitar la complejidad que puede suponer el cambio, hay unos cuantos temas que pueden preocupar a los partners y a sus equipos de desarrollo.

En primer lugar el training de todo su equipo de trabajo, tanto desarrolladores como consultores.

En segundo lugar la mayor complejidad de las instalaciones de sus clientes ya que van a necesitar un nuevo servidor NST y que en muchos casos será difícil de justificar.

En tercer lugar un esfuerzo en la migración del código fuente. Resulta que lo que en versiones anteriores se programaba mediante objetos tipo Form y Dataport, en el Role Tailored Client hay que hacerlos en los nuevos objetos tipo Page y XMLPort y, a pesar de que existe una herramienta de transformación, hay que revisar y testear todo el código de nuevo.

En cuarto lugar un cambio sustancial en el sistema de reports que a partir de ahora utilizara la herramienta de diseño Visual Studio Report Designer.

Por último, la necesidad de mantener instalaciones y por tanto código fuente en ambos sistemas, en el clásico y en el RTC, ya que muchos clientes aceptarán la migración muchiiiiiisimo más tarde.

En resumen, es evidente que todos esto tiene unos costes y que estos son muy difíciles de repercutir sobre los clientes y si pensamos que estamos en época de crisis, todavía más.

Afortunadamente, a la hora de vender, el cliente RTC es extremadamente más atractivo que el cliente clásico y prueba de ello es que la mayoría de los partners utilizan sus imágenes en sus web sites o en sus documentos de marketing.

 

Usabilidad del cliente por roles

Dentro de la arquitectura de 3 capas, el Role Tailored Client, ocupa la capa de presentación que, sin duda alguna, es la más importante para los usuarios de Dynamics Nav. De hecho para un usuario la presentación es en si la aplicación.

Microsoft ha apostado por una interface de usuario muy novedosa y de cultivo propio. Está interface no ha salido simplemente de la genialidad de sus laboratorios, sino que para llegar a ella y más tarde para evaluarla han intervenido más de 2000 usuarios del mundo real.

En pocas palabras se podría definir como un cliente con muy buena y vistosa apariencia que está hecho a medida para cada uno de los roles de la compañía, exponiendo la información que es importante para los usuarios y facilitándoles el acceso a las tareas que deben ejecutar en su trabajo cotidiano.

Desde mi punto de vista, en el cliente clásico, el usuario se adaptaba a la aplicación y en el cliente RTC es la aplicación la que se va a adaptar al usuario.

Según Microsoft los objetivos perseguidos por el RTC han sido:

  • Construir una experiencia basada en roles.
  • Reducir la complejidad del sistema.
  • Ayudar a los usuarios a centrarse en sus tareas más importantes.
  • Permitir una vista rápida de las posibles acciones.
  • Aumentar la colaboración.
  • Crear un entorno de trabajo intuitivo y familiar.

Creo, sinceramente, que lo ha conseguido. Durante mi vida profesional he dedicado mucho, mucho tiempo al desarrollo de ERPs y os puedo asegurar que he invertido cientos de horas en el área de la ingeniería de la usabilidad y honestamente creo que el trabajo que se ha realizado en el nuevo cliente por roles es muy bueno.

A pesar de que es difícil sintetizar todas las ventajas que he encontrado en mi estudio en una sola entrada de blog, voy a intentarlo. Perdonadme si en algún momento soy poco explícito.

Mi intención es detallar un poco los siguientes temas referentes al nuevo cliente:

  • Primera impresión. La apariencia.
  • UI Intuitivo y de fácil aprendizaje.
  • Primera pantalla. El Role Center.
  • Sistema de navegación fácil y de acceso rápido.
  • FastTabs y FactBoxes un buen invento.
  • Alto nivel de personalización.
  • Nuevo sistema de informes.
  • Funcionamiento en WAN y soporte a la virtualización.
  • Extensibilidad de C/SIDE mediante add-ins.

Primera impresión. La apariencia

Dicen que sobre gustos no hay nada escrito y yo no lo voy a escribir. También dicen que una imagen vale más que mil palabras:

ListPage2

Desde mi punto de vista la apariencia es muy atractiva, nada que ver con la interface ruda del cliente clásico. Quizás me equivoque pero el look and feel que le han dado al cliente por roles lo hace muy integrable en el entorno Windows. De hecho comparte muchos elementos con otros componentes de Microsoft, por ejemplo la barra de direcciones con la de Internet Explorer, el panel de navegación con el de Outlook 2007, el panel de acciones con el ribbon de Office 2007.

UI Intuitivo y de fácil aprendizaje

A diferencia del cliente clásico, el cliente por roles es extremadamente intuitivo y fácil de utilizar. Cualquier usuario conocedor de su área funcional es capaz de introducir y consultar datos referentes a su trabajo sin necesidad de un training previo. Existe un estudio realizado por Microsoft donde invita a varios usuarios sin experiencia previa en Dynamics Nav a completar determinadas tareas en el ERP. Lo podéis encontrar en el siguiente link BenchmarkStudy

Primera pantalla. El Role Center.

La primera pantalla que se muestra después de arrancar la aplicación es el Role Center, en ella sin la necesidad de realizar un solo clic podemos ver una atractiva página con la información relevante sobre nuestra actividad diaria, tanto sobre el trabajo que hemos hecho como sobre el que tenemos pendiente de realizar. Esta página nos proporciona acceso rápido a la funcionalidad propia de nuestro role y nos da la sensación de que ha sido creada explícitamente para nosotros. Tiene además la ventaja de que es fácilmente personalizable, podemos añadir o quitar categorías y ventanas sin necesidad de programar.

RoleCenter2

Las actividades y las colas nos permiten tener una idea del trabajo hecho y del pendiente de hacer así como acceder de manera rápida a nuestro trabajo habitual.

Las listas nos ayudan a acceder de manera rápida a los productos, clientes y proveedores a los que queremos acceder de manera rápida o controlar.

Los gráficos nos dan información visual sobre medidas de rendimiento de nuestro negocio.

Las notificaciones actúan como un mini email interno. Las notas están enlazadas a documentos o registros de la aplicación como Pedidos de Venta, Clientes, Productos, etc. y con un doble clic el sistema nos lleva al registro relacionado con la nota. Al mismo tiempo estas notas son visibles desde el propio documento o registro mediante la utilización de un FactBox que veremos más adelante.

La integración con Outlook nos permite interactuar con el calendario, con el sistema de tareas pendientes y con el correo electrónico.

Sistema de navegación fácil y de acceso rápido.

Además de la estrella de la aplicación, que es el Role Center, el cliente por roles ofrece un panel de navegación parecido al del cliente clásico pero ampliamente mejorado. En la siguiente imagen podemos ver etiquetadas las cinco partes que nos ayudaran a la hora de localizar la tarea deseada:

NavigationPane

• El panel de navegación ofrece tres grupos, el de Inicio se usa para mostrar el Role Center que hemos descrito en el apartado anterior, el grupo de Documentos Históricos y el grupo de Departamentos. Al pulsar en este último aparecerá el área de contenido de departamentos tal como se muestra en la figura superior. Conforme vayamos seleccionando elementos, el área mostrará los elementos subordinados, permitiéndonos afinar cada vez más en la búsqueda. Es extremadamente ágil para localizar opciones de menú.

• La búsqueda de opciones nos ayudará a encontrar las tareas mediante la introducción de cualquier parte del texto que la describa:

SearchPane

• La barra de direcciones nos indicara donde estamos y de donde venimos. Funciona de manera similar a la barra de herramientas utilizada por el explorador de Windows vista. Podemos ver en la imagen que un clic sobre cualquiera de los triángulos que separan los elementos provoca que se muestre una ventana para poder seleccionar un grupo de menú diferente.

AddressBar

• El histórico de navegación, mediante los botones siguiente y anterior, nos permitirá navegar a través de la secuencia de las distintas páginas utilizadas. El pequeño botón de drop-down abrirá una ventana para acceder directamente a cualquiera de las páginas visitadas.

NavTraveling

Entrando ya en lo que serían las páginas de la aplicación podemos constatar que existe un sistema de navegación que desde mi punto de vista roza la perfección. Tanto en las páginas que muestran listas de elementos (list pages) como las que muestran la información en formato ficha (task pages) poseen en su parte superior un menú y un panel de acciones parecido al del ribbon de Office 2007.

También realizando un clic con el botón derecho del mouse en la fila deseada el cliente muestra un menú pop-up con las acciones referentes al sistema de edición.

En la siguiente imagen podemos ver estas tres partes que ayudan a la navegación

ListPage

En el menú de acciones encontramos tres botones desplegables, el primero, llamado Acciones, nos mostrará acciones típicas como Ver, Editar, Nuevo, Borrar, Notas, Refrescar, etc. El segundo, con el título de Información Relacionada, presentará todos los links dependientes del contexto en el que nos encontramos. El tercero, con el nombre de Informes mostrará las opciones que dan lugar a información impresa dentro del contexto actual.

Cualquiera de las opciones que podamos encontrar en el Menú de Acciones puede ser incluida de manera fácil en el Panel de Acciones. La intención de este panel es hacer que las opciones más usadas sean de muy rápido y fácil acceso.

FastTabs y FactBoxes un buen invento

La página en formato ficha contiene un número de FastTabs que se muestran de forma apilada una sobre otra, en contraposición del sistema de pestañas del cliente clásico donde se mostraban una al lado de otra.

FastTabs

Apilando los FastTabs de manera vertical y permitiendo que se expandan y contraigan podemos tener varias FastTabs abiertas de manera simultánea. Como se muestra en la imagen, podemos ver al mismo tiempo la información referente a Comunicación y la referente a Facturación de la ficha del cliente.

Cuando una FastTab se encuentra contraída la información que en la personalización hemos marcado como de “importancia aumentada” es todavía visible. Por otro lado, si hemos marcado algún campo como de “importancia adicional” solo será visible si pulsamos el botón “Mostrar más campos”.

En las páginas de tipo ficha, al igual que en las páginas de tipo lista se muestran, en la parte derecha, unas cajas de información llamadas FactBoxes. El objetivo principal del FactBox es el de mostrar información adicional al usuario.

Alto nivel de personalización

Existen dos niveles de personalización del cliente RTC, el primero que es el que puede hacer cualquier usuario de la aplicación y que afecta únicamente a la interface de su perfil de usuario y el segundo, el que puede realizar un super-usuario que podrá cambiar la interface de todos los usuarios pertenecientes a un role determinado.

Prácticamente todas las pantallas de Dynamics NAV disponen de un botón que despliega un conjunto de opciones relativas a la personalización, y cada una de ellas presenta un asistente que nos guía a través de los pasos necesarios.

Me gustaría remarcar el alto nivel de personalización que permite el sistema, la facilidad con la que se puede hacer y simplemente pasar enumerar algunas de las posibles personalizaciones que podemos realizar:

  •  En el panel de navegación del menú:
    •  Añadir y quitar grupos de navegación
    •  Añadir y quitar opciones dentro de cada grupo.
    • Cambiar las ordenaciones.
  •  En la página del Role Center:
    • Añadir o quitar partes referentes a colas, actividades, gráficos, notificaciones, Outlook, etc.
    • Personalizar cada una de las partes según el tipo al que correspondan.
    • Cambiar la disposición de cada parte en la pantalla.
  • En una página de lista de elementos.
    • Personalizar la lista desplegable de acciones e informes.
    • Elegir y ordenar las columnas a mostrar en la lista.
    • Personalizar el panel de acciones. Se pueden añadir, eliminar, agrupar y ordenar las acciones así como seleccionar su tamaño.
    • Elegir los Factboxes a mostrar.
  •  En una página en formato ficha.
    • Personalizar la lista desplegable de acciones e informes.
    • Elegir las fichas desplegables (fast tabs) a mostrar y su ordenación.
    • Dentro de cada ficha desplegable podemos categorizar la importancia de cada campo en estándar, aumentada o adicional. Los campos marcados como adicionales no serán visibles dentro de la ficha a no ser que pulsemos el botón “Mostrar más campos”. La información de los campos marcados con importancia aumentada será visible en la cabecera de la ficha desplegable cuando éste esté contraída.
    • Personalizar el panel de acciones. Se pueden añadir, eliminar, agrupar y ordenar las acciones así como seleccionar su tamaño.
    • Elegir los Factboxes a mostrar.

Nuevo sistema de informes

El nuevo cliente RTC muestra los informes mediante un visor con una funcionalidad similar a la de SQL Reporting Services. Incorpora ventajas funcionales como la de ordenar dinámicamente la información, contraer y expandir elementos, mostrar elementos gráficos y exportar los contenidos a Excel o en formato PDF.

Informe

Funcionamiento en WAN y soporte a la virtualización

Dynamics Nav R2 soporta el acceso directo desde el cliente RTC a través de Internet. Los usuarios remotos ya no necesitan utilizar otras aplicaciones como Terminal Server o Citrix para trabajar en Dynamics Nav.

Wan

La interfaz basada en roles puede ser implantada utilizando la tecnología de Microsoft Application Virtualization (App-V) proporcionando una mejor experiencia de usuario ya que todas las integraciones con aplicaciones locales se hacen en el escritorio, permitiendo además una reducción de costes de TI al poder realizar la gestión centralizada de las instalaciones del cliente.

Extensibilidad de C/SIDE mediante add-ins

Dynamics NAV 2009 R2 incluye una API para crear controles add-ins para el cliente basado en roles. El add-in no es más que un assembly .NET desarrollado en Microsoft Visual Studio y que cumple una determinada interface.

Una vez distribuido el assembly a los clientes y registrado en la aplicación, puede ser incluido y llamado desde cualquier flujo C/AL.

En el CD de instalación de Dynamics NAV, en el directorio llamado “Extras” podemos encontrar un par de add-ins listos para instalar junto con la documentación asociada. Uno de ellos, el TreeMap es uno de los elementos visuales más explicitos utilizados en el campo del Business Intelligence. Veamos una imagen de la pantalla después de haberlo integrado en una página del cliente por roles:

TreeMap

Protección de la inversión

Independientemente de las ventajas e inconvenientes del cliente RTC que hemos comentado, hay que tener en cuenta que Microsoft ha tomado un camino que no piensa abandonar y en este sentido la discontinuidad del cliente clásico en la siguiente versión del ERP, en la versión NAV 7, es un hecho. Esto significa que si queremos asegurar nuestra inversión no podemos adquirir un producto que a finales del 2011 o principios del 2012 se considere ya obsoleto.

NAV_Roadmap

Saludos a todos,

Albert Puigvert