Consideraciones para programar

0
448

Microsoft Dynamics GP dos mil trece ha sido liberado en el mes de diciembre para norteamérica y en el mes de abril se va a estar efectuando su lanzamiento en la zona. En las consideraciones que los desarrolladores deben tener en cuenta se halla el de el manejo multitenant que tiene la nueva versión. Puedes investigar las caractericsticas de esta nueva versión en http://www.tiiselam.com/. Qué es lo que significa eso? Esencialmente hasta la version precedente se podia instalar un Microsoft Dynamics GP por instancia de SQL Server, dado a que la base de datos master de la aplicación tiene por nombre DYNAMICS y no puede ser cambiada. La nueva arquitectura deja tener múltiples instalaciones del producto sobre una misma instancia debido a que ahora es posible la modificación del nombre de la base de datos master de la aplicación. Esto se efectúa en el instante de la instalación. Lo esencial de este detalle es que ya no es preciso instalar una nueva instancia de SQL Server para poder efectuar una nueva instalación.
Ahora la otra pregunta es: Qué consecuencias trae este modelo para los desarrolladores? En resumen los cambios no son grandes mas si se debe estimar que ahora la base de datos master de la aplicación no necesariamente se llamará DYNAMICS.

Las consideraciones a tomar en el instante de la instalación son:

Por defecto el nombre de la base de datos master prosigue siendo DYNAMICS, no obstante puede ser cambiado.
El nombre de la base de datos ha de ser de menos de diez caracteres.
El nombre escogido va a ser guardado en la propiedad del System DB Name del dex.ini de la instacia que se esté instalando.
Una vez establecido el nombre de la base de datos master, no puede ser cambiado.
Si decide instalar la base de datos de ejemplo Fabrikam y no cambia el nombre de la base de datos master, entonces por defecto se va a llamar TWO. Si TWO ya existe entonces se procurará el próximo libre en aumentos con la configuración TWOnn en donde nn es un número. Por poner un ejemplo, TWO01, TWO02, etc…
Los usuarios LessonUser1 y LessonUser2 será creados solamente para la base de datos TWO.
El owner predeterminado para cada base de datos prosigue siendo DYNSA.
Ahora entrando a la una parte del código… Qué cambios representa para los programadores?

Deben sustituir todas y cada una de las referencias de código duro a DYNAMICS (strings y incesantes) por la función GetSystemDatabaseName().
Sustituir toda referencia a la base de datos TWO (string y incesantes) por la función GetLessonDatabaseName().
Emplear la función GetSystemDatabaseName(false) si se precisa el nombre de la base de datos ya antes de la conexión (emplear con moderación).
Utilizar la función GetSystemDatabaseName(true) desde VSToolAddin (en Application.Dynamics.dll).
Como van a ver a la mayor parte de los programadores estos cambios no les deben afectar debido a que es extraño que se haga referencia de forma directa al nombre de la base de datos master o bien al de la compañía de ejemplo. Tampoco es frecuente el procurar conseguir el nombre de la base de datos ya antes de establecer la conexión (cuando menos en el planeta de los desarrollos Dynamics).GP2013-Named-db

Mas esto no es todo… Pero les cuento en la parte II…

Cómo incluir un campo de Extender en Report Writer

Hasta hace poco cuando se requería introducir un campo de Extender en Report Writer siempre y en toda circunstancia se recurría a VBA y accesaba la data con ADO. No obstante hay una vía más corta. En el diccionario Dynamics.dic hay una función llamada rw_TableHeaderString que puede extraer la información que se precisa de las tablas de Extender.

¿De qué manera usarlo?

La función contiene 5 parámetros: Product ID, Window ID, String Key Value, Numeric Value y Field Number.

Product ID: debemos poner el número de producto de Extender el que es tres mil ciento siete. Pueden contrastar el número de producto en el Dynamics.set. Este valor ha de ser de tipo Integer.

Window ID: se debe poner el nombre de la ventana de Extender como incesante. Este valor ha de ser de tipo String.

String Key Value: escoger el campo clave de la ventana de Extender.

Numeric Value: en el caso de las ventanas de Extender debe ir 0.

Field Number: se debe poner el número del campo de la ventana de Extender.

Con esta simple función se pueden poner campos de Extender en Report Writer.