lunes, 6 de junio de 2011

Dynamics se mueve a la nube


Microsoft anuncia que el ERP Dynamics estará disponible en la nube. Esta nueva versión que saldrá en 2012 se podrá utilizar usando la tecnología Windows Azure.
Entre los beneficios generales Microsoft anuncia:
  • Reducción de los costes de implantación
  • Nuevas funcionalidades
  • Pago por uso

Entre las nuevas funcionalidades extendidas:
  • Conexión y acceso a servicios como formación o soporte online
  • Servicios de pago, conexión con pasarelas de pago, front-ends para tiendas online...
  • Exponer catálogos online
  • Sitios web personalizados (?¿)
Estos servicios estarán disponibles para todos los clientes con licenciamiento Business Ready

lunes, 7 de marzo de 2011

Separar el nombre del fichero del resto de la ruta

Esta es una función muy útil y que siempre viene bien tener a mano. Sirve para partir el path completo de un fichero en ruta hasta la carpeta y nombre de fichero.

Var Name DataType Subtype Length
No FileName Text          250
Path Text          250
Name Text          250




Path := '';
Name := '';
FileName := DELCHR(FileName,'<>');
IF (FileName = '') THEN
  EXIT;


Pos := STRLEN(FileName);
REPEAT
  Found := (COPYSTR(FileName,Pos,1) = '\');
  IF NOT Found THEN
    Pos := Pos - 1;
UNTIL (Pos = 0) OR Found;


IF Found THEN BEGIN
  Path := COPYSTR(FileName,1,Pos);
  Name := COPYSTR(FileName,Pos+1);
END ELSE BEGIN
  Path := '';
  Name := FileName;
END;

domingo, 16 de enero de 2011

JoliCloud: por qué no tenerlo?


Realmente no tengo un netbook, en casa tengo un portátil de 11'' muy potente, pero estaba buscando un SO ligero y que arrancara rápido para esas veces que simplemente quieres encender el ordenador para escribir un correo, actualizar facebook o simplemente ver un vídeo... la verdad que en casa la mayoría de las veces que enciendo el portátil es para abrir Chrome y de ahí no me muevo. 
Había probado Moblin y no me convenció, pero ayer instale joliCloud y me ha encantado. Súper sencillo de manejar, arranca en cuestión de segundos y lo mejor de todo, lo fácil que se instala! 
Si eres usuario de Windows tienes que descargarte el ejecutable de aquí una vez descargado dos clicks y listo! Cuando termina de instalarse te pide reiniciar el ordenador y en el reboot ya puedes elegir si arrancar Windows o JoliCloud.
Una vez dentro de JoliCloud nos encontramos con una parrilla de aplicaciones con esta apariencia (a qué me recuerda :D?)

Como veis todas las aplicaciones están orientadas a usarse en la nube. Se pueden descargar más aplicaciones de una especie de "store" de aplicaciones, yo he descargado evernote y dropbox que son los servicios que uso habitualmente y que no venía preinstalados en joliCloud.
Otra cosa que igual me ha gustado es que desde JoliCloud podemos tener acceso al sistema de fichero de Windows leer y escribir en el.
Y por último lo que me terminó de enamorar de JoliCloud es que después de la instalación y a la primera me ha reconocido el modem 3G y venía preconfigurado mi conexión de banda ancha móvil 3G de Vodafone,  eso para mí que no tengo ADSL en casa me ha conquistado! :D

Pues eso, que si queréis tener un SO para esas ocasiones que queréis arrancar el ordenador para asomaros al correo y poco más, que sea rápido, fácil de instalar y ocupe el mínimo espacio os recomiendo JoliCloud.

viernes, 7 de enero de 2011

Desarrollo colaborativo en Dynamics Nav. Parte III, integrar SVN en Nav

El módulo de control de versiones para Nav que hemos desarrollo nace de la necesidad de controlar que objetos y en qué proyectos, paralelos en el tiempo y de una duración considerable, se están modificando.
Lo que se pretende es desde una sola base de datos central (“desarrollo primaria”) controlar todos los objetos que se están modificando aunque estos estén en otros proyectos que se están realizando en otras bases de datos (“desarrollo secundaria”). Además nos proporcionará información sobre cuando un objeto debe ser importado en la bbdd de “desarrollo primaria”, nos permitirá ver las diferencias en el código entre objetos de distintas bases de datos o recuperar versiones antiguas de un objeto.
Para conseguir esto lo que hacemos es usar un conjunto de repositorios gestionados por Subversion (no se guardan objetos, solo las diferencias entre una versión y la anterior) de forma que la comunicación se realiza desde las bases de datos secundarias hacia la primaria a través del repositorio. Este sistema se integra en Navision a través de una interfaz desarrollada en .NET.



En el diagrama se ve cómo funciona la comunicación de objetos en el sistema. Cada BD secundaria tiene su propio repositorio, donde envía revisiones de sus objetos y de donde puede extraer revisiones anteriores de sus objetos desde Nav.
La BD primaria por su parte tiene su propio repositorio donde puede enviar revisiones de sus objetos y extraer revisiones anteriores. Además la BD primaria tiene acceso para extraer objetos de los repositorios secundarios de esta forma podemos obtener las modificaciones que se están realizando en las BD secundarias para integrarlas en la primaria.
Los objetos que se envían a las BD del cliente siempre pasarán por la BD primaria y se integraran en esta para evitar la pérdida de modificaciones realizadas en BD secundarias o en la misma BD primaria.


martes, 28 de diciembre de 2010

Cómo saber los permisos que tienes sobre un objeto

Muchas veces no sabemos que objetos podemos modificar con una licencia. Os dejo un truco para saber que permisos tenemos para determinados rangos de objetos en una base de datos de Dynamics Nav.
Esta información se guarda en la tabla virtual "Permission Range", en versiones anteriores a la 2009 no podemos ver el contenido de esa tabla directamente, para ello lo que vamos a hacer es crear un formulario nuevo usando el asistente, en el campo "Table" escribimos "Permission Range"
Seleccionamos Tabular-Type Form y le damos a aceptar
Elegimos mostrar todos los campos. Podemos guardar el formulario dando a Finish o bien si solo queremos hacer una consulta de algún objeto específico damos a Preview

Vemos los permisos por objetos y rango de objetos que tiene nuestra licencia.

Esta truco sirve para mostrar el contenido de cualquier tabla virtual, por ejemplo las tablas "Object" o "Session"

lunes, 27 de diciembre de 2010

Desarrollo colaborativo en Dynamics Nav. Parte II, el repositorio


Cualquier proyecto en el que intervengan varias personas usando los mismos ficheros, no tienen porque ser código fuente, requiere de un sistema de control de versiones que gestione unos repositorios donde se almacenarán las copias comunes de esos ficheros.
Una versión, revisión o edición de un fichero, es el estado en el que se encuentra dicho fichero en un momento dado de su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para algún cliente específico).

Existen varios sistemas de control de versiones:
  • Team foundation server de Microsoft
  • CVS
  • Source Safe de Microsoft
  • Subversion ó SVN
Para este proyecto hemos decidido usar Subversion e integrarlo con Dynamics Nav para controlarlo dentro del mismo entorno de desarrollo al que estamos tan acostumbrados.

Subversion es un sistema de control de versiones con la política copiar-modificar-mezclar con gran proyección en la actualidad. Por ejemplo, SourceForge utiliza Subversion como control de versiones, también Google Code se basa en Subversion. Gran parte del éxito de Subversion es su agilidad cuando intervienen varias personas, debido a su política, y a su flexibilidad que no lo limita a desarrollos software: es posible almacenar planos, imágenes, libros…

A la hora de instalar Subversion hay que tener en cuenta de van a estar los repositorios y como vamos a acceder a ellos. Se puede acceder  a los repositorios de Subversion a través de muchos métodos diferentes --en un disco local, o a través de varios protocolos de red. Una ubicación dentro del repositorio, sin embargo, es siempre una URL. La tabla describe cómo se corresponden diferentes esquemas de URL con los métodos de acceso disponibles. Métodos de acceso

EsquemaMétodo de acceso
file://acceso directo al repositorio (en disco local)
http://Acceso a través del protocolo WebDAV a un servidor web Apache2 con Subversion incluido
https://Igual que http://, pero con cifrado SSL
svn://Acceso al servidor svnserve mediante el protocolo predeterminado
svn+ssh://Igual que svn://, pero a través de un túnel SSH

En nuestro caso, hemos optado por acceso mediante el protocolo http. Para en lugar de instalar el paquete básico de Subversión hemos instalado Visual SVNServer que incluye el servidor web Apache.
Se puede obtener gratuitamente desde aquí http://www.visualsvn.com

No voy a meterme más en lo que es Subversion ya que se haría interminable el post, y además existe infinita documentación sobre este sistema de control de versiones.


Ya había cerrado el post, pero si quería comentar una cosa más. Subversion permite crear la estructura de repositorio que queramos, es cierto que se recomienda como mínimo tener las carpetas Trunk, Branches y Tags pero solo es una recomendación.
A la hora de decidir como queríamos gestionar el repositorio dudamos si esta recomendación, para la naturaleza de Dynamics Nav y como se afrontan los proyectos en un cliente Dynamics Nav sería adecuada, es más dudamos si no sería conveniente disponer de un repositorio para cada proyecto en lugar de una carpeta para cada proyecto dentro del mismo repositorio.
Al final, dado que nuestro interés radica en poder versionar los cambios en los objetos de Nav por proyectos, en que no necesitamos mantener una rama común, que podría nacer de los objetos estándar de Nav sin modificaciones, si no que nuestra rama común será tratada como un proyecto en sí y en que no necesitaremos mantener componentes externos (librerías de terceros por ejemplo) en los distintos proyectos hemos optado por la opción de tener un repositorio distinto para cada proyecto en lugar de todos los proyectos dentro del mismo repositorio.

Ahora si cierro el post ;)