martes, 4 de octubre de 2011

Dynamics AX: Modificar la companyinfo y arrancar el AOS

Hola de nuevo,

hoy vamos a hablar de una tabla dentro de Dynamics AX que puede darnos más de un quebradero de cabeza: la CompanyInfo.

En esta tabla se guardan datos de la empresa como el nombre, el CIF, la dirección, el teléfono, etc.
Es posible que queramos modificar esta tabla añadiendo más campos, por ejemplo, para marcar las empresas que cumplan cierta condición.
Como es una tabla más de Dynamics AX, para modificarla vamos al AOT y modificamos lo que necesitemos, sin embargo, puede ser que al modificarla no se pueda sincronizar con la base de datos, es decir, cambiamos la tabla en Dynamics AX pero en la base de datos (normalmente SQL Server) sigue estando la versión antigua sin los cambios que hemos hecho (por ejemplo, añadir un campo).

Esto suele pasar porque esta tabla se utiliza cada vez que abrimos Dynamics AX, y muchas veces queda bloqueada por alguna instancia, de tal manera que es imposible modificarla en la BBDD por estar bloqueada, pero sí nos deja modificarla en el AOT y por tanto queda una inconsistencia.

Si cometemos la torpeza de salir de Dynamics AX sin haber sincronizado la tabla, y reiniciar el AOS (servicio de Windows que provee la capa de servidor de Dynamics AX) lo que tendremos es que el AOS no consigue arrancar.. y ya no podemos entrar en Dynamics AX... ups!!!

¿Qué hacemos? Pues afortunadamente lo tenemos fácil, entramos en el SQL Server Management Studio, nos vamos a la instancia de BBDD que utiliza nuestro Dynamics AX, buscamos la tabla CompanyInfo y la modificamos en SQL Server a mano, que es algo que no se debe hacer pero que en este caso no tenemos más remedio. Si por ejemplo, hemos creado un campo nuevo que se llama "micampo" de tipo string, pues creamos ese mismo campo con ese nombre desde SQL Server, si nos acordamos de otra tabla de tenga ese mismo ExtendedDataType podemos mirarla para copiar todos los parámetros del campo y dejarlo igual (longitud, tipo de datos, etc.).

Y ya está, una vez hemos actualizado la tabla en SQL Server, iniciamos el AOS y, ahora sí, debería de funcionar sin problemas. No está de más, que una vez dentro de Dynamics AX, le demos a la tabla en el AOT con el botón derecho y sincronizar, por si acaso se nos ha olvidado poner algo en SQL Server.

Hasta otra.

No hay comentarios:

Publicar un comentario