Aucun message portant le libellé Dynamics AX Migration. Afficher tous les messages
Aucun message portant le libellé Dynamics AX Migration. Afficher tous les messages

Dynamics AX Migration : Echec de la synchronisation sur 4 table(s)

Lors de la Migration de Dynamics 4.0 SP2 vers Dynamics 2009, une erreur survient lors de la synchronisation de la base de données SQL.

Impossible d'exécuter une commande du language de définition de données sur (). La base de données SQL a émis une erreur

Echec de la synchronisation sur 4 table(s)


Sur le blog de Patrick Pelletier, on peut y trouver du code qui nous permet de connaître les quatres tables qui causent problème. Il suffit de créer et exécuter une job dans l'AOT avec le code suivant :

public static void manualSync(Args _args)
{
#define.unknown("UNKNOWN")
#define.tableIdMax(65536)
int i = 1;
;
while (i < #tableIdMax) { if (tableid2name(i) != #unknown) { print(tableid2name(i)); try { if (!appl.dbSynchronize(i, false, true)) throw Exception::Error; } catch { error(tableid2name(i)); } } i++; } }



Vous pouvez aussi trouver plus d'information si vous consultez le Event Viewer du serveur. Si vous effectuez une migration de Dynamics 4.0 SP2 vers 2009, il y a de fortes chances que les 4 tables soient :
  • DimensionCollection
  • DimensionHierarchyCombination
  • DimensionSetCombinationDuplicate
  • DimensionSetCombinationTemp
Pour corriger le problème, voici le script que Microsoft demande d'exécuter sur la base de données de Dynamics AX 4.0 SP2 :

--DIMENSIONCOLLECTION
UPDATE SQLDICTIONARY SET FIELDID=1 WHERE FIELDID=50002 AND TABLEID=2897;

UPDATE SQLDICTIONARY SET FIELDID=2 WHERE FIELDID=50005 AND TABLEID=2897;

UPDATE SQLDICTIONARY SET FIELDID=3 WHERE FIELDID=50007 AND TABLEID=2897;

UPDATE SQLDICTIONARY SET FIELDID=4 WHERE FIELDID=50008 AND TABLEID=2897;



--DIMENSIONHIERARCHYCOMBINATION
UPDATE SQLDICTIONARY SET FIELDID=1 WHERE FIELDID=50002 AND TABLEID=2898;

UPDATE SQLDICTIONARY SET FIELDID=2 WHERE FIELDID=50003 AND TABLEID=2898;

UPDATE SQLDICTIONARY SET FIELDID=3 WHERE FIELDID=50005 AND TABLEID=2898;

UPDATE SQLDICTIONARY SET FIELDID=4 WHERE FIELDID=50006 AND TABLEID=2898;

UPDATE SQLDICTIONARY SET FIELDID=5 WHERE FIELDID=50009 AND TABLEID=2898;



--DIMENSIONSETCOMBINATIONDUP2899
UPDATE SQLDICTIONARY SET FIELDID=1 WHERE FIELDID=50001 AND TABLEID=2899;

UPDATE SQLDICTIONARY SET FIELDID=2 WHERE FIELDID=50002 AND TABLEID=2899;

UPDATE SQLDICTIONARY SET FIELDID=3 WHERE FIELDID=50003 AND TABLEID=2899;



--DIMENSIONSETCOMBINATIONTEMP
UPDATE SQLDICTIONARY SET FIELDID=1 WHERE FIELDID=50001 AND TABLEID=2900;

UPDATE SQLDICTIONARY SET FIELDID=2 WHERE FIELDID=50002 AND TABLEID=2900;

UPDATE SQLDICTIONARY SET FIELDID=3 WHERE FIELDID=50003 AND TABLEID=2900;

UPDATE SQLDICTIONARY SET FIELDID=4 WHERE FIELDID=50004 AND TABLEID=2900;

UPDATE SQLDICTIONARY SET FIELDID=5 WHERE FIELDID=50005 AND TABLEID=2900;

UPDATE SQLDICTIONARY SET FIELDID=6 WHERE FIELDID=50006 AND TABLEID=2900;


--PROVISIONALHIERARCHY
UPDATE SQLDICTIONARY SET FIELDID=1 WHERE FIELDID=50001 AND TABLEID=2901;

UPDATE SQLDICTIONARY SET FIELDID=2 WHERE FIELDID=50002 AND TABLEID=2901;

UPDATE SQLDICTIONARY SET FIELDID=3 WHERE FIELDID=50007 AND TABLEID=2901;

Dynamics AX Migration : The version of the stored procedures in this database is different than that expected by the Application Object Server (AOS)

Object Server : SQL diagnostics: The version of the stored procedures in this database is different than that expected by the Application Object Server (AOS). You must set up a new instance of the AOS that points to this database to update the version of the stored procedure

Lors du passage de Dynamics AX 4.0 vers 2009, vous pouvez recevoir le message d’erreur mentionné si vous n’avez pas suivi correctement la procédure de migration. En effet, lors de la préparation à la migration de 4.0 vers 2009, il faut configurer l’AOS 2009 pour se connecter sur la base de données 4.0. À ce stade de l’installation, le "Setup" va mettre à jour les deux stored procedure de la base de données 4.0. Pour corriger le problème, deux solutions ont été fournies par Microsoft :

Première solution

Réinstaller l’AOS de Microsoft Dynamics AX 2009 et spécifier la base de données 4.0 lors de l’installation

Deuxième solution

Ouvrir Microsoft SQL Server Management Studio et copier les stored procedure sysserversessions et sysclientsessions d’une BD AX 2009 fonctionnel vers la BD AX 4.0 que vous voulez migrer

Ensuite, regarder la colonne value lorsque la colonne parm égale SYSSPVERSION dans la table SQLSYSTEMVARIABLES en utilisant la requête suivante :

SELECT *
FROM SQLSYSTEMVARIABLES
WHERE parm='SYSSPVERSION';

Si la colonne value n’est pas égale à "8", executer la requête suivante:

UPDATE SQLSYSTEMVARIABLES SET value=8
WHERE parm='SYSSPVERSION';