viernes, agosto 21, 2015

Integrando código en Dynamics NAV

Supongo que muchos conocéis las AMU (Application Merge Utilities) que son geniales para las migraciones de código estándar modificado.

A partir de la versión actual sin modificar (ORIGINAL) comparado con esta misma modificada (MODIFIED) se obtienen los archivos diferenciales (DELTA) que se aplican a la nueva versión estándar (TARGET) y finalmente se obtiene la nueva versión modificada (RESULT).

Más en: https://www.linkedin.com/pulse/integrando-c%C3%B3digo-en-dynamics-nav-josep-pages

lunes, agosto 10, 2015

Controlando código en Dynamics NAV

Como probablemente sabréis, Dynamics NAV no dispone de ningún componente para control ni versionado de código, ni lo va a tener de momento. Hay que hacerlo manualmente a base de exportar los objetos, depositarlos en algún repositorio donde los programadores del proyecto tengan acceso controlado, y posteriormente si se desea restaurar a un punto anterior, o incorporar alguna nueva funcionalidad, trabajar con el “version list”, la fecha y hora de modificación, y utilizar una buena herramienta de comparación de ficheros.

Está claro que en este escenario el propietario del código del proyecto tiene serias dificultades para controlar las ramas, puntos de restauración, copias y saber cuál es la última versión buena conocida (Master). Además, estas dificultades se trasladan a los distintos programadores que tampoco saben con exactitud si el código con el que están trabajando es el adecuado y cuál es el bueno.

Más en https://www.linkedin.com/pulse/controlando-c%C3%B3digo-en-dynamics-nav-josep-pages

sábado, agosto 01, 2015

¿Cómo acceder directamente a SQL Server desde Dynamics NAV?

En ocasiones se necesita acceder desde Navision a alguna base de datos de SQL Server. Vamos a ver cómo hacerlo.

Hay que tener en cuenta las siguientes consideraciones:
- Este codigo utiliza .NET Interoperability para interfasar con componentes propios de Windows.
- Estos componentes se ejecutan en el NST, es decir, en el servidor de NAV, por lo tanto, es éste el que debe tener acceso a SQL Server.
- El control de transacciones va totalmente a parte del propio control de transacciones de NAV.

Declaración de variables:
SqlConnection : DotNet "System.Data.SqlClient.SqlConnection"
SqlCommand : DotNet "System.Data.SqlClient.SqlCommand"
SqlDataReader : DotNet "System.Data.SqlClient.SqlDataReader";

Codigo para abrir una conexión:
connString := 'Data Source=TheSQLsrv\AndInstance;Initial Catalog=TheBBDD;Integrated Security=false;User ID=TheUsername;Password=ThePassword';
SqlConnection := SqlConnection.SqlConnection(connString);
SqlConnection.Open();

Código para ejecutar un comando:
SQLstring := 'SELECT * FROM TheTableOrView ORDER BY TheOrderField';
SqlCommand := SqlConnection.CreateCommand();
SqlCommand.CommandText := SQLstring;
SqlDataReader := SqlCommand.ExecuteReader();

Codigo para leer un DataReader:
WHILE SqlDataReader.Read() DO BEGIN 
      myVar := SqlDataReader.Item(SomeField);
END;

Cerrar la conexión:
SqlConnection.Close();