viernes, 24 de diciembre de 2010

Feliz Navidad!

Os deseo a todos unas Dynamicas fiestas! :)


lunes, 20 de diciembre de 2010

Desarrollo colaborativo en Dynamics Nav. Parte I, los problemas

Todos los que trabajamos habitualmente en el desarrollo de Dynamics Nav sabemos lo pobre que es y las pocas posibilidades que proporciona su EDI para desarrollar en C/AL, sobre todo cuando también trabajamos con otros como Visual estudio, Eclipse o NetBeans.
No solo nos quejamos de un aspecto visual pobre o de la poquísima ayuda al desarrollo que pueda proporcionar. Lo peor de todo es la nula aportación que hace al desarrollo colaborativo, sin pensar mucho se me ocurren una serie de problemas que tarde o temprano a todos nos han acarreado perder trabajo o tiempo:

  • Olvidaros de programar dos personas sobre los mismos objetos en la misma base de datos, si no os ponéis de acuerdo os acabareis pisando el trabajo
  • Olvidaros de programar el mismo objeto en dos bases de datos distintas sin tener que emplear un buen rato después para integración de las modificaciones
  • Olvidaros de tener una mínima historia de las modificaciones sufridas por un objeto: quién lo ha modificado, cuándo, para que proyectos ha sido modificado..
  • Olvidaros de deshacer modificaciones en caso de un error como puede ser importar un objeto erróneo y no tuvierais copia de ese objeto
  • ...
Estos días hemos estado desarrollando un módulo que nos ayudará a trabajar varias personas en varios proyectos dentro de un mismo cliente. Los puntos que hemos querido cubrir:
  • Un programador podrá bloquear un objeto impidiendo a otros programadores modificarlo hasta que no lo libere. Los objetos se pueden bloquear de forma automática con solo abrirlo en el diseñador.
  • Cada objeto tendrá asociada una historia: cuándo fue modificado, para que proyecto, por qué programador, cuando se envió al cliente.
  • Manejaremos una base de datos de desarrollo principal y varias secundarias para cada proyecto.
  • Desde la base de datos principal tendremos visibilidad sobre todos los objetos que se modifican en las secundarias a través de su historia.
  • Antes de importar un objeto de un proyecto (base de datos secundaria) en la base de datos principal para poder mandárselo al cliente, podremos comparar sin salir de Dynamics Nav las diferencias de código que hay entre la versión de la base de datos principal y la versión del objeto que hay en la base de datos del proyecto.
  • Se podrán recuperar distintas versiones de un objeto desde su historia. Si perdemos modificaciones de un objeto siempre podremos comparar como está el objeto en la base de datos en este instante con una versión del objeto en un momento anterior.
  • Informe de riesgo. Antes de importar los objetos modificados de un proyecto podremos sacar un informe donde veamos para que otros proyectos se han modificado esos objetos-
Todas estas nuevas funciones estarán integradas en Dynamics Nav como un nuevo menú para no tener que salir del entorno que ya conocemos.

Con todo esto lo que buscamos es, desde una sola base de datos por cliente, controlar varias bases de datos en las que distintos desarrolladores lleven a cabo distintos proyectos e integrar todas las modificaciones de una forma sencilla y controlada para no perder modificaciones y mantener un historial de todas estas modificaciones para para poder recuperarlas en cualquier momento.

miércoles, 15 de diciembre de 2010

Ya está disponible Dynamics Nav 2009 R2

Llevo mucho tiempo sin escribir nada, demasiado trabajo, sobre todo un proyecto muy interesante que estoy realizando para poder hacer un entorno de desarrollo en Nav colaborativo con bloqueos entre usuarios, control de versiones por proyectos, repositorio de código... bueno bueno cuando lo tenga listo (qué ya queda poco) mostraré aquí el resultado (a mi entender bastante bueno :))

Después de la disculpa, esta pequeña entrada es solo para comentar que ya se ha lanzado la versión 2009R2. Ya había comentado anteriormente sobre ella. Se puede descargar de la partner source desde el siguiente link:
https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/microsoftdynamicsnav2009r2.htm

Disfrutarla!

miércoles, 17 de noviembre de 2010

Instalación de Navision Developer Toolkit

Descargar e instalar la última versión de Navision Developer Toolkit:
https://mbs.microsoft.com/partnersource/downloads/releases/NDTAll


NOTA: La versión actual de Developer funciona con  la versión 2009 SP1 de Dynamicas Nav.


Durante la instalación nos preguntará que licencia queremos usar y nos da la opción de elegir nuestra licencia de desarrollo y el proceso de instalación la copia en la carpeta donde se instale Navision Developer Toolkit con el nombre fin.flf


Una vez descargada e instalada es necesario copiar los ficheros
nc_netb.dll
nc_tcp.dll
nc_tcps-dll
slave.exe
dbm.dll


Desde la carpeta del cliente Classic de Dynamics Nav 2009 a la carpeta donde se esté instalado Navision Developer Toolkit.


Una vez realizado esto es necesario crear una bbdd nativa con el cliente de la versión 2009 y restaurar en ella el fbk que hay en la carpeta donde se ha instalado Navision Developer Toolkit (DevTool.fbk). Este fbk contiene una importación en Navision Developer Toolkit de la versión estándar de Nav 2009


Ahora podemos abrir esta bbdd con el ejecutable DevTool.exe.





Para importar una bbdd nueva en Navision Developer Toolkit lo que hacemos es ir a File?Import y aparece el siguiente dialogo:






En esta pestaña damos el nombre que queramos a la versión



En la pestaña import decidimos si vamos a importar los objetos a Navision Developer Toolkit a través de un fichero de texto con los objetos, o lo que es más cómodo desde un cliente que tengamos abierto con la bbdd que queramos importar a Navision Developer Toolkit, para ello marcamos el tic Import from Microsoft Dynamics NAV Client.
También podemos indicar si queremos importar solo los objetos que cambien en relación con una versión que ya tengamos importada para ello marcamos el tic Only different Objetcs y elegimos la versión sobre la que queremos que compare en el desplegable Base Version Code


En la pestaña Filter podemos elegir qué tipo de objetos importar o rango de objetos.


Al dar a importar aparece un cuadro con los clientes Navision que tengamos abiertos

Elegimos desde cual queremos importar y damos a OK. Aquí creo que da igual la versión del cliente, por lo menos para la versión 500 o 501


Cuando termine el proceso tendremos la bbdd que hayamos elegido importada en Navision Developer Toolkit

domingo, 14 de noviembre de 2010

Integrar firma digital en Dynamics Nav

Hace unos meses realicé un proyecto para la universidad sobre firmado digital de documentos. En concreto los documentos eran actas de nacimiento para una posible automatización de neonatos en el registros civil. Tenía que presentar una pequeña maqueta funcional para exponer el ciclo del proceso.
Para crear una PKI totalmente funcional usé EJBCA (http://www.ejbca.org/), para la generación de documentos y como base de datos, Dynamics Nav y para la firma digital una aplicación de la universidad Jaume I de Valencia llamada Cryptoapplet (http://projectestic.uji.es/pr/cryptoapplet/).
Cryptoapplet es una aplicación Java que permite la firma digital en múltiples formatos (incluidos e-factura) la gestión de certificados es transparente al usuario ya que se conecta directamente al repositorio de Internet Explorer o Firefox.
Permite la verificación de certificados mediante OCSP y aunque es fácilmente configurable para cualquier PKI con la que trabajemos viene preconfigurado para las principales autoridades de certificación (FNMT, DNI-e)
También permite realizar firmas en paralelo, verificación de certificados por CRL, múltiples formatos de salida... es una herramienta de firma digital muy potente y muy sencilla, os recomiendo que la tengáis en cuenta para proyectos que requieran cualquier tipo de firma digital, ya sean facturas digitales o simplemente firma de documentos internos de una empresa.
En el vídeo podéis ver como se integra Cryptoapplet con Dynamics Nav, como se genera el fichero xml y el resultado después de firmarlo.
Por cierto el formato de la firma es XADES-X-L



martes, 9 de noviembre de 2010

Herramientas para analizar el rendimiento de Dynamics Nav

El equipo de MS Dynamics ha creado una serie de herramientas para analizar y solucionar posibles problemas en sus soluciones de negocio Dynamics. Están centradas en el rendimiento del motor SQL y se basan sobre todo en el DMV de SQL Server.

Las he probado y son muy útiles para problemas de bloqueo ó uso de claves activas, lo podéis descargar del siguiente enlace:

PD: Evidentemente no funciona con bbdd nativas, solo SQL en sus versiones 2005 a 2008


domingo, 7 de noviembre de 2010

5 maneras de evitar errores al implantar Microsoft Dynamics Nav

Es común escuchar a menudo lo complejo que es realizar una implantación de un ERP o los fallos que se producen durante esta.
La clave para una buena implantación de un ERP es tener un buen plan o guía sobre como afrontar el proyecto. No hay nada más frustrante que llegar al final de una implantación y descubrir que se ha perdido un punto clave del proceso. Existen algunos pasos simples para evitar la mayoría de los reveses causados por procesos no documentados o mal documentados.
Los siguientes son algunos de los puntos clave que asegurarán el éxito en una implantación de Microsoft Dynamics Nav o cualquier otro ERP.

1) Decida de antemano los objetivos del proyecto. Esto le ayudará a mantener el enfoque en lo importante del proyecto, sirviendo de guía. Es importante fijar estos primeros objetivos. Si a lo largo de la implantación surgen otros, podrán ser abordados en una segunda fase.

2) El siguiente punto es documentar los requisitos para la aplicación de Microsoft Dynamics Nav. Es normal que aparezcan muchos requisitos, por lo que es fácil pasar por alto algo vital. Documentar todos los requisitos y procesos reducirá la posibilidad de pasar algo por alto. Una vez más, recuerde que debe mantener la concentración en los objetivos iniciales del proyecto. Es importante diseñar el proceso para ver como estos requisitos encajan en el.

3) Una fuerte organización interna para la gestión del proyecto es una de las partes más importantes de una implantación exitosa. Incluso la mejor solución puede fallar si no tiene todo el apoyo de los miembros del equipo interno del proyecto.Un sólido equipo de gestión debe tener la capacidad de gestionar de forma eficaz y centralizar las necesidades del proyecto. Las partes interesadas suelen aumentar el alcance de un proyecto sin incrementar el presupuesto o el tiempo de ejecución. Es una navaja de doble filo ya que puede hacer avanzar la implantación o retrasarlo incluso hacerla fracasar. Es de vital importancia involucrar a los miembros del equipo del proyecto que puedan manejar el alcance del proyecto y tomar decisiones claras sobre lo que debe hacerse en la primera fase frente a lo que puede esperara a fases posteriores.

4) Las pruebas son imprescindibles para el éxito de la aplicación Dynamics Nav. Comenzar las pruebas a principios de la instalación, y poniendo el sistema a prueba frecuentemente. Un buen símil sería que las pruebas son como cepillarse los dientes. Para mantener el sistema limpio debe cepillarse a menudo. La mejor manera de probar es poner a los key users a probar, ellos establecerán expectativas y podrán encontrar lagunas y/o fallos.

5) Por último, pero no menos importante, es la importancia de la formación. Me parece que una única formación no es suficiente. En la mayoría de situaciones, el usuario deberá practicar y después volver para reciclar. Es importante volver dentro de seis meses o un año para formar a los usuarios de nuevo. La experiencia adquirida en el uso del sistema generará dudas mas concretas, y podrán proponer mejoras en la aplicación

A menudo solo vemos la foto general del proyecto olvidándonos de los detalles que hay en esta