AX Retail 2012 R2: Herramienta de comprobación de la sincronización de datos Offline

17 12 2013

A menudo tras instalar el sistema Offline en un POS de Microsoft Dynamics AX for Retail 2012 R2 nos surge la duda de saber si se han sincronizado los datos por primera vez a la base de datos Offline del POS. En otras ocasiones, tras haber activado el sistema Offline durante un tiempo, queremos comprobar si los datos generados en el estado Offline se han sincronizado a la base de datos de tienda. Para ello, tan solo disponemos de la tabla RETAILOFFLINESYNCLOG y de los logs (si los hemos activado) del servicio Offline. En Prodware hemos creado una herramienta que nos permite comprobar si los datos de la base de datos Offline de un POS están correctamente sincronizados con la base de datos Offline.

La herramienta Offline Database Comparer, realiza una comprobación de todas las tablas de los distintos ámbitos de un perfil Offline mediante la recuperación del campo clave de cada una de las tablas. A partir de la clave primaria de cada tabla, se compara el contenido de cada tabla en la base de datos Offline con su homóloga en la base de datos de tienda dependiendo de la dirección de sincronización definida en el ámbito del perfil.

La herramienta recupera la información de conexión a la base de datos de tienda y a la base de datos Offline desde el archivo de configuración POS.exe.config. A partir de esta información nos muestra en primer lugar las últimas sincronizaciones de cada uno de los POS de la tienda en la pantalla principal.

Una vez aceptadas las cadenas de conexión, la aplicación ejecuta una comprobación por cada una de las tablas de cada ámbito del perfil Offline asociado al POS, mostrándonos como resultado una tabla en la que, para cada tabla nos indica si todos los registros de una misma tabla del ámbito están en ambas tablas según la dirección de sincronización determinada en el ámbito.

Offline Database Comparer es una aplicación Windows Forms desarrollada en C# que se instala fácilmente mediante XCOPY en el directorio de la aplicación POS.





The Microsoft Dynamics Most Influential People for 2012

15 04 2012

Ya se han abierto las votaciones a The Microsoft Dynamics Most Influential People for 2012 (http://www.dynamicsworld.co.uk/top-100-voting-starts-now/). Espero contar con vuestro voto!!! ;-)

No hace falta decir que, a parte de las menciones profesionales que uno pueda conseguir, mi mayor placer es el de poder ser útil a todos aquellos que depositáis vuestra confianza en mi y por consiguiente, en Qurius Prodware, para vuestras necesidades en el ámbito Microsoft Dynamics. Muchas gracias.

Por último, recordaros que entre los nominados se encuentran también varios compañeros de Qurius Prodware España así como otros colegas de Qurius Prodware a nivel internacional.





AX Retail POS: Modificar los textos de los tickets de fondo y de recogida

12 02 2012

En el articulo que encontrareis aquí titulado AX for Retail: Modifying POS Labels and Strings se explica como personalizar algunos de los label y textos del POS de Microsoft Dynamics AX Retail. Si bien en ese artículo se describe como podemos mostrar aquellas etiquetas que podemos traducir mediante el parámetro –tr, este parámetro no muestra los códigos de algunas etiquetas que se utilizan en la impresión de algunos tipos de ticket.

En concreto, si por ejemplo queremos cambiar los textos de los tickets de las operaciones de Fondo (Float Entry) y Recogida (Bank Drop), deberemos recuperar el identificador del texto que utiliza en la traducción. Para ello podemos utilizar una herramienta de Reflector para obtener los resources del archivo de recursos que encontrareis en C:Program Files (x86)Microsoft Dynamics AX50Retail POSServices<código idioma>POSResources.resources.dll o en C:Program Files (x86)Microsoft Dynamics AX50Retail POSServicesPOSResources.dll para obtener lor textos en el idioma base. En estos recursos obtendremos los textos originales:

En el ejemplo que comentamos, los textos usados en los ticket de Fondo y Recogida son los siguientes:

Ticket de Fondo (Float Entry)

10061 Recibo de entrada flotante (Float entry receipt)
10062 Importe de entrada flotante (Float entry amount)

Ticket de recogida (Bank Drop)

10063 Quitar recibo forma de pago (Remove tender receipt)
10064 Quitar informe forma de pago (Remove tender amount)

Como observaremos esas traducciones son bastante poco entendibles. Para poder traducirlas deberemos, con esos códigos utilizar el método descrito en el artículo mencionado al inicio y crear las siguientes entradas en la tabla POSISLANGUAGETEXT de la base de datos del POS:

Tras crear estos registros, probamos de imprimir los tickets de fondo y recogido y observaremos que se han traducido los textos:

Fondo

Recogida





WIN8: Instalación de máquina virtual Windows 8 Developer

18 12 2011

Tras descargarme la versión beta de Windows 8 Developer en http://msdn.microsoft.com/en-us/windows/apps/br229516 he creado una nueva máquina virtual en Oracle VM VirtualBox (disponible para descargar en http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html), que por cierto, ya está preparado para hospedar el sistema operativo Windows 8. Para crear la máquina virtual he seguido los pasos descritos en el artículo http://www.pcworld.com/article/240117/how_to_download_and_install_windows_8_into_a_virtual_machine.html.

Tras una rápida instalación, ya tengo disponible la máquina virtual de Windows 8 Developer lista para ejecutarse!!! En esta máquina se dispone de Microsoft Visual Studio 11 Express, Microsoft Expression Blend 5, Windows App Cert Kit y muchas más herramientas listas para empezar a desarrollar nuestras primeras aplicaciones para el entorno Metro (nuevo entorno visual de Windows).

La primera impresión es muy buena si bien, como era de esperar la MV para 64bits requiere de 2Gb de RAM lo que, en mi portátil (un poco justito ya…), hace que todo vaya un poco lento. En cualquier caso, espero en breve poder ir comentando nuestras impresiones respecto al nuevo Windows y, sobretodo, su implicación en las herramientas Dynamics como CRM 2011.

Os animo a que os descargueis e instaleis esta versión de Windows 8 pues, desde mi punto de vista, dará mucho que hablar!!!





CRM 2011: Añadir fechas a los diálogos

6 09 2011

Uno de los principales inconvenientes de la nueva funcionalidad de procesos de diálogo de CRM 2011 es que las respuestas a las preguntas de las páginas tan sólo admiten los siguientes tipos de campo:

· Línea de texto simple (text, integer o float)
· Selección con radio button (text o integer a partir de una selección)
· Selección con combobox (text o integer a partir de una selección)
· Líneas múltiples (text)

Por tanto, eso implica que no podemos incluir en los diálogos ninguna pregunta cuya respuesta sea una fecha o un bit o un lookup… Pero, eso es muy necesario en muchas ocasiones. Por ejemplo, recientemente nos han solicitado en un proyecto crear un diálogo que, entre muchos otros datos, se solicitara una fecha al usuario con el fin de rellenar la fecha de vencimiento de una tarea que se creaba desde el proceso de diálogo.

Para resolver esta situación hemos desarrollado una actividad personalizada de workflow (que se puede usar para procesos de workflow o para procesos de diálogo pues se ha desarrollado con NET Framework 4.0, recordemos que para que se pueda usar en procesos de diálogos debe estar desarrollado en NET Framework 4.0 y no en 3.5 que solo sirven para procesos de workflow). Esta actividad permite introducir como parámetro una texto y nos devuelve dos variables:

· Fecha: contiene el texto convertido introducido en formato de fecha en configuración regional es-ES en una variable de tipo DateTime
· Error: Contiene un valor boolean que indica si se ha producido un error al intentar convertir el texto a fecha

A continuación os describo como hemos usado esta nueva actividad de workflow para crear un proceso de diálogo muy simple que nos permite crear, desde una oportunidad una tarea con vencimiento en una fecha concreta. Para utilizar esta nueva actividad de workflow procedemos del siguiente modo:

1. Creamos un nuevo proceso de dialogo que contenga en primer lugar una página con una pregunta/respuesta de tipo Text en la que solicitamos la fecha de vencimiento de la tarea en un formato concreto (recordad que no podemos validar lo que introduce el usuario)

2. A continuación añadimos una nueva acción personalizada de workflow que nos permite convertir el texto en fecha:

3. Configuramos el parámetro de entrada de la acción como el texto de la pregunta/respuesta creada en el paso 1

4. A continuación creamos una nueva actividad de creación de Tarea. En los campos de la nueva tarea usamos el valor retornado por la acción de conversión de string a fecha devuelto en el paso anterior para indicar la fecha de vencimiento de la tarea (en ese atributo NO podemos introducir el texto introducido por el usuario ya que no se corresponde con el tipo DateTime del atributo, de ahí la necesidad de crear la actividad personalizada de workflow!!!)

5. El proceso de diálogo queda finalmente configurado como se muestra en la imagen siguiente tras activarlo:

6. Para ejecutar el proceso y comprobar su funcionamiento, abrimos una oportunidad y ejecutamos el proceso que hemos creado sobre la oportunidad:

7. Seleccionamos el proceso Crear visita que hemos creado en los pasos anteriores:

8. Introducimos una fecha en el formato correcto en la pregunta del primer cuadro de diálogo y pulsamos Next:

9. Comprobamos que se genera una nueva tarea asociada a la oportunidad cuyo vencimiento se corresponde con la fecha que hemos introducido como texto en el diálogo:

La creación de actividades personalizadas de workflow abre un montón de posibilidades para ampliar o suplir cosas que la nueva funcionalidad de procesos de diálogo de CRM 2011 no incluyen. En otro artículo comentaremos sobre algunas otras actividades de workflow que hemos creado recientemente en un proyecto de un cliente.





NET: e-Books gratuitos

18 05 2011

En el site de MSDN podéis encontrar e-Books gratuitos (en formato PDF) que son muy interesantes. Entre otros me gustaría destacar los siguientes ya que están muy relacionados con el mundo CRM (aunque no sea específicamente de CRM si que pueden ayudarnos a nuestras tareas de desarrollo de extensiones):

· Programming Windows Phone 7
· Moving to Microsoft Visual Studio 2010
· Introducing Microsoft SQL Server 2008 R2
· Introducing Windows Server 2008 R2
· First Look Microsoft Office 2010

Podéis encontrar los links de descarga en:

 http://blogs.msdn.com/b/microsoft_press/archive/2011/03/03/ebooks-list-of-our-free-books.aspx.





NET: Editar cadenas de conexión en 64bit para drivers de 32bit

30 03 2011

A menudo para saber si disponemos de un driver de acceso a datos concreto utilizamos el método ‘manual’ más rápido que existe. El proceso que describimos a continuación lo utilizamos tanto para saber si disponemos de un driver como para crear cadenas de conexión:

1. Creamos un archivo de texto con la extensión .udl (en el mismo escritorio)

2. Accedemos al editor de propiedades de vínculo de datos haciendo doble click en el icono

3. Si queremos ver la cadena de conexión configurada mediante el editor, podemos hacer click en el botón derecho y editar el archivo .udl con el NotePad o cualquier otro editor de texto

La cadena de conexión la podremos usar en connectionstrings de programas…

El problema nos surge cuando estamos en un sistema operativo de 64bit (Windows 2008, Windows 7…) y queremos editar o visualizar los drivers de 32 bits. Como estemos en una plataforma de 64bit, al editar el archivo .udl se nos abrirà el editor de conexiones a datos de 64bit y tan sólo nos mostrará los drivers de 64bits.

Para poder ver los drivers de 32 bits en este entorno podemos usar el comando siguiente:

C:\Windows\syswow64\rundll32.exe “C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll”,OpenDSLFile C:\test.udl

(en este ejemplo estamos editando un archivo test.udl creado en la raíz de la unidad C:).

De este modo podremos probar y visualizar los drivers de acceso a datos de 32bits desde una plataforma de 64bits.