Error 0x80040211 () en envío mails

1 Estrella2 Estrella3 Estrella4 Estrella5 Estrella (1 votos, promedio: 3,00 de 5)
Cargando…
Escrito por René Roca el . Posteado en Consultoria, Tecnica, X++

Cuando trabajamos con varios AOS en Dynamics AX 2012, y utilizamos el envío de mails, nos podemos encontrar en la situación que desde un AOS nos funcione el envío perfectamente, pero desde otro AOS nos muestre el siguiente mensaje de error:

error_mail

Este error se produce, porque Dynamics Ax guarda el password del usuario de correo electrónico por AOS, si  vemos el método password de la tabla SysEmailParameters podemos ver como para recuperar el password busca por ID de AOS en la tabla SysEmailSMTPPassword

static SMTPPassword password()
{
    CryptoBlob cryptoBlob = connull();
    SysEmailSMTPPassword SMTPPassword;
 
    AOSId AOSId;
    AOSInstanceId AOSInstanceId;
 
    ;
    [AOSId,AOSInstanceId] = SysEmailSMTPPassword::currentAOSInstance();
 
    SMTPPassword = SysEmailSMTPPassword::find(AOSId,AOSInstanceId);
 
    if (SMTPPassword.RecId != 0)
        cryptoBlob = SMTPPassword.Password;
 
    if (cryptoBlob != connull())
        return cryptoblob2str(WinapiServer::cryptUnProtectData(cryptoBlob));
    else
        return '';
}

Si examinamos la tabla SysEmailSMTPPassword, tendríamos que tener una entrada para cada AOS, para ello tendremos que informar la contraseña en los parámetros de correo electrónico conectandonos a cada uno de los AOS que tenga nuestra instalación.
Si tenéis alguna duda de como conectaros a un AOS concreto, podemos ver como se hace en el siguiente artículo.

AOS Crash, Análisis DUMP

1 Estrella2 Estrella3 Estrella4 Estrella5 Estrella (Sin calificar)
Cargando…
Escrito por René Roca el . Posteado en Consultoria, Programacion, Tecnica, X++

En algunas ocasiones nos encontramos que cuando estamos trabajando con Dynamics Ax 2012, nuestro sistema puede ser inestable con caídas de algún AOS de forma inexplicable.

Estas caídas pueden ser debidas a problemas de códigos o algún componente mal instalado que no esté afectando a nuestro sistema.

Para detectar estas caídas podemos utilizar las siguiente herramienta:

Primero de todo tendremos que descargar e instalar la aplicación, tenemos que seleccionar la opción de 64 Bits, a continuación se muestra el proceso de instalación.

Una vez instalado el programa, lo podremos encontrar en la siguiente en la entrada Debug Diagnostics Tool 2, en el menú de programas instalados.

Abrimos el programa y procedemos a la configuración de una nueva regla, para poder interceptar cuando se produzca una caída del AOS y guardar su información en un fichero DUMP.

  1. Creamos una nueva alerta de tipo Crash
  2. Seleccionamos la opción “A Specific process”
  3. Seleccionamos el proceso del AOS, AX32Serv.exe
  4. Indicamos el número dumps máximos que capturaremos.
  5. Especificamos el nombre de la alerta y la ubicación donde guardamos los DUMPS
  6. Activamos la alerta
  7. Dejamos la sesión abierta con Debug Diagnostics Tools funcionando para capturar los DUMPS.

A continuación se muestra pasa a paso como crear una regla.

En el último paso sino tenemos descargados los símbolos de Microsoft, nos propondrá configurarlos.

Una vez que tenemos el fichero Dump creado, haremos botón derecho sobre el y seleccionaremos Analyze Crash/Hang Issue
001

Con esto conseguiremos que se analice el fichero dump, esta acción puede tardar unos cuantos minutos en finalizar.
001

Una vez analizado el fichero DUMP, obtendremos un report donde veremos información sobre el AOS que ha caído y lo más importante de todo el último call stack ejecutado.
001

En la sección Analisys Summary en el apartado error, si hacemos click sobre el número de thread que ha dado error,en nuestro caso el 24 podremos ver la pila de llamada que provocó el error.
001

En nuestro caso esta teniendo un problema con el proceso de Programación de OF, visto que las últimas llamadas del Call Stack hacen referencencia a las clases

JobScheduling
ProdJournalCheckPost.Run

001

Nota Nota: Por parte de Microsoft se ha liberado en Life Cycle una funcionalidad también para el análisis de dumps, podeís obtener más información en el siguiente Link.

Errores falsos en Log al sincronizar base datos

1 Estrella2 Estrella3 Estrella4 Estrella5 Estrella (Sin calificar)
Cargando…
Escrito por René Roca el . Posteado en Programacion, SQL Server, X++

En ocasiones cuando sincronizamos la base de datos de Dynamics AX 2012, nos encontramos que nos muestra una serie de errores.

001

 

Es posible que estos errores ya los hayas arreglados y te estén apareciendo siempre, esto es debido a que Dynamics AX 2012 guarda en la tabla SqlSyncInfo los errores que se ha encontrado en la sincronización, y cada vez que encuentra un error nuevo, va aumentando esta tabla.

En algunas ocasiones al arreglar un error, este no se borra de la tabla y al sincronizar vuelve aparecer.

La manera de arreglar esto es borrando esta tabla antes de sincronizar, para ello podemos utilizar el siguiente Job:

 

static void DAX_Borrado_SyncLog(Args _args)
{
    deleteTable('SqlSyncInfo');
 
    info( 'Log de la sincronización borrado');
}

Informes SRSS en Dynamics Ax 2012

1 Estrella2 Estrella3 Estrella4 Estrella5 Estrella (Sin calificar)
Cargando…
Escrito por René Roca el . Posteado en X++

Con la llegada de Dynamics AX 2012, se pasa a tener como generador de informes Microsoft SSRS (Reporting Services) y Visual Studio, quedando obsoleto el generador de informes de MorphX y X++ que hasta ahora se venía utilizando en todas las versiones de AX.

Esto supone un cambio bastante grande para todas aquellas personas que hemos estado trabajando con Dynamics Ax hasta la fecha. En la versión DAX 2012, todavía tenemos el nodo de Reports, pero simplemente se mantiene para poder facilitar la migración de informes hacía SSRS

A continuación os dejo un video de como se trabaja y se crea un nuevo informe en SRSS en Dynamics Ax 2012

Roll up 6.0

1 Estrella2 Estrella3 Estrella4 Estrella5 Estrella (Sin calificar)
Cargando…
Escrito por René Roca el . Posteado en X++

Microsoft hace un par de semanas publicó el Rollup 6.0 para Microsoft Dynamics Ax, tanto para la versión RTM como para la versión con SP1.

El siguiente Rollup contiene los Rollup anteriores, siendo acumulativo, una vez instalado la versión de Dynamics será 5.0.1500.3761