Publicaciones etiquetadas ‘AOT’

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

Como borrar un objeto del AOT por código

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

Cuando trabajamos con Axapta en ciertas circunstancias podemos encontramos con la necesidad de borrar un objeto del AOT, ya sea por temas de programación o porque este objeto este corrupto y nos da error.

Si nos encontramos con que el objeto está corrupto, no podremos borrarlo de forma manual y lo tendremos que realizar por código, para hacer esto podemos utilizar el siguiente código, en el cual se muestra como borrar una tabla del AOT.

static void DAXBorradoObjeto(Args _args)
{
	UtilIdElements utilElement;
	UtilElementName tableName;
	UtilEntryLevel Layer;
	;
 
	tableName = 'Nombre del tabla';
	Layer = utilEntryLevel::usr;
 
	ttsbegin;
 
	select utilElement where utilElement.name == tableName
		&& utilElement.utilLevel == Layer
		&& utilElement.recordType == utilElementType::Table;
 
	if (utilElement)
	{
		utilElement.delete();
		ttscommit;
		info(strFmt('El objeto %1 en la capa %2 ha sido borrado!', tableName, Layer));
	}
	else
	{
		ttsAbort;
		warning(strFmt('El objeto %1 en la capa %2 no se ha encontrado!', tableName, Layer));
	}
}