Mostrando entradas con la etiqueta Navision. Mostrar todas las entradas
Mostrando entradas con la etiqueta Navision. Mostrar todas las entradas

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;

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


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

sábado, 30 de octubre de 2010

Usar Google Maps desde Dynamics Nav

Os pongo un vídeo de un desarrollo que he realizado esta semana para conectar Dynamics Nav con Google Maps.

De momento es muy simple, permite localizar direcciones de clientes con Google Maps e interaccionar con el conocido gestor de mapas desde la misma ficha del cliente.
También tiene la opción para calcular la ruta desde la dirección de nuestra empresa hasta la dirección del cliente.






La API de Google Maps es muy potente, en estos días ampliaré la función con parámetros como el tipo de ruta (coche, a pie, evitar peajes...). También prepararé un módulo completo de rutas donde podamos indicar distintos tramos de ruta (por ejemplo para un reparto a varios clientes) donde se pueda analizar toda la ruta completa o bien tramo a tramo y poder salvar las indicaciones de las rutas dentro de la bbdd de Dynamics Nav.

jueves, 28 de octubre de 2010

Integración .NET en Dynamics Nav

La plataforma de desarrollo más grande del mundo, con el mayor conjunto de bibliotecas funcionales, tipos, métodos y propiedades se un a Microsoft Dynamics NAV en la versión 2009 R2.
Ahora desde el código NAV 2009 R2 se podrá referenciar y hacer uso de todos los tipos y funciones de .NET Framework y de librerías de terceros.
Hacía mucho tiempo que esto se veía venir, pero no terminaba de llegar, ahora por fin ha llegado la integración de .NET en CAL. Esto supone, para los que estamos dentro del mundo de Dynamics NAV, una gran revolución, nos permitirá crear soluciones con un alcance mucho mayor al que podíamos conseguir con el código nativo de Dynamics NAV.
Hacer referencia a un componente externo de .NET será similar a como hasta ahora se están llamando a las variables de tipo "automation", solo que ahora serán variables de tipo "DotNet".
En esta pantalla se muestra como sería su definición en el cuadro de variables y un ejemplo de código con su uso:



Si miramos el menú de variables, vemos que la variable "DotNet" declarada, además de los métodos y propiedades como un "automation", tiene los constructores necesario en toda clase hecha .NET:


Sinceramente creo que esto será un gran paso ya que se une la robustez y fibilidad de Dynamics Nav y la flexibilidad y potencial de desarrollo de .NET, abriendo muchas nuevas opciones, más de las que puedo imaginar.

Ahora más que nunca podremos hacer todo lo que imaginemos. ;)



viernes, 22 de octubre de 2010

Dynamics Nav: Seleccionar la ruta de una carpeta

En Dynamics Nav existe la code unit Common Dialog Management donde ya están implementadas una serie de funciones para poder seleccionar ficheros del equipo y capturar su ruta pero no existe nada que nos permita hacer lo mismo pero con carpetas.
Para hacer esto mismo podemos usar está función:




//------ Params
WindowTitle : Text[50]
HighestFolder : Text[500]

//------- Return Type
Text[1024]

//------- Variants
ShellControl Automation 'Microsoft Shell Controls And Automation'.Shell
Folder Automation 'Microsoft Shell Controls And Automation'.Folder3
FolderText Text 1024

IF ISCLEAR(ShellControl) THEN
CREATE(ShellControl);
Folder := ShellControl.BrowseForFolder(0,WindowTitle,0,HighestFolder);
IF NOT ISCLEAR(Folder) THEN
FolderText := Folder.Items().Item.Path;
CLEAR(ShellControl);
EXIT(FolderText);

jueves, 21 de octubre de 2010

Cómo importar más de 1000 caracteres de una Excel con Dynamics Nav

La forma que tiene Dynamics Nav de importar datos de una excel es a través de una tabla llamada Excel Buffer y de la librería Microsoft Excel 12.0 Object Library.
Va cargando en cada entrada de la tabla el valor de cada celda de la hoja de Excel y una serie de propiedades (tipo de letra, fórmula, etc..). El problema que me ha surgido es que la librería tiene un string buffer de 1000 caracteres, si una celda de la hoja tiene más de 1000 caracteres al usar el método Value para obtener el contenido de la celda y grabarlo en la tabla Excel Buffer da error de desbordamiento en el buffer de la librería. Obviamente el tamaño del buffer no se puede modificar en la dll.
Para solucionarlo he hecho lo siguiente:


XlWrkSht.Range('IV3').Formula := '=EXTRAE('+xlColID + xlRowID+';1;1000)';
XlWrkSht.Range('IV4').Formula := '=EXTRAE('+xlColID + xlRowID+';1001;1000)';
XlWrkSht.Range('IV5').Formula := '=EXTRAE('+xlColID + xlRowID+';2001;1000)';

locTextLargo1 := FORMAT(XlWrkSht.Range('IV3').Value);
locTextLargo2 := FORMAT(XlWrkSht.Range('IV4').Value);
locTextLargo3 := FORMAT(XlWrkSht.Range('IV5').Value);

Lo que hago es usar la fórmula de Excel EXTRAER para grabar bloques de mil en mil caracteres, de la celda que estoy importando (xlColID + xlRowID), en otras celdas, en este caso he usado las celdas IV3 IV4 IV5 que al ser las últimas columnas asumo estarán vacías. Después ya podemos obtener los valores de esas tres celdas por separado.

sábado, 16 de octubre de 2010

Test drive de Dynamics Nav

Si queréis hacer una prueba online de Dynamics Nav y descubrir la velocidad, sencillez y funcionalidad de la nueva interfaz ROLES en esta dirección hay un estupendo test drive

http://www.dynamicsnavtestdrive.com/

Disfrutad de la prueba guiada!

jueves, 14 de octubre de 2010

Microsoft ataca directamente a OpenOffice

En este vídeo Microsoft compara usar software libre (en concreto OpenOffice, ahora LibreOffice) con ir en moto o jugar a la ruleta rusa.
Creo que esta jugada de Microsoft es muy mala e innecesaria por falta de elegancia, me explico, aunque sus argumentos sean ciertos una campaña tan agresiva los desacredita por completo, y es innecesaria porque no creo que Office compita con OpenOffice, creo que Microsoft ahora mismo tiene un mercado que difícilmente le será arrebatado.


Conectar Dynamics Nav con BBDD externas

Muchas veces necesitamos conectar Dynamics Nav con bbdd externas para extraer o modificar datos. Podemos usar librerías externas o webservices. Pero si es algo sencillo podemos ejecutar directamente el código desde Dynamics Nav e interactuar con cualquier base de datos externa.

Con ADO.NET, un programa puede leer, insertar, editar, o borrar, la información contenida en diferentes tablas dentro de la base de datos. Además, se puede manipular la propia base de datos para crear nuevas tablas, como también alterar o eliminar las ya existentes, entre otras cosas.

En el siguiente link está la documentación oficial de ADO.NET:

También os pongo un ejemplo de código CAL de como conectarse a una bbdd externa:

ADOConn@1100240000 : Automation Microsoft ActiveX Data Objects 2.8 Library'.Connection";
ADOrs@1100240001 : Automation 'Microsoft ActiveX Data Objects 2.8 Library'.Recordset";
ConnStr@1100240002 : Text[200];
AnzCount@1100240003 : Text[30];
OpenMethod@1100240004 : Integer;
LockMethod@1100240005 : Integer;
Name@1100240006 : Text[200];
Str@1100240007 : Text[200];


// ODBC-Connector
CLEAR(ADOConn);
CLEAR(ADOrs);

OpenMethod := 3; // 1=adOpenKeyset; 2=adOpenDynamic; 3= adOpenStatic
LockMethod := 2; // 1=dLockreadonly; 2=adLockPessimistic; 3=adLockOptimistic; 4=adLockBatchOptimistic
CREATE(ADOConn);
ConnStr := 'PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source= c:\pruebas.mdb';

ADOConn.Open(ConnStr);
CREATE(ADOrs);

ADOrs.Open('Select * from Tabla_Prueba WHERE ID = "Id_prueba"',ADOConn,OpenMethod,LockMethod); //ejecuta la sentencia

IF NOT ADOrs.EOF THEN BEGIN //Sí no es vacío
ADOrs.MoveFirst; //Se queda apuntado al primer registro de la tabla
Name := ADOrs.Fields.Item('Referencia').Value;
Message(Name);
END;

// Close odbc connector
ADOrs.Close;
ADOConn.Close;

CLEAR(ADOrs);
CLEAR(ADOConn);



miércoles, 13 de octubre de 2010

From Navision To Microsoft

Como continuación al post anterior una presentación del museo danés de informática sobre la evolución de Navision a Microsoft