Dynamics AX 2009 : Unable to allocate sequence numbers

Lors de la duplication d’une compagnie dans AX, j’obtenais cette erreur :

Unable to allocate sequence numbers
An error occurred while obtaining new RecID value for the table



Les numéros de séquence sont stockés dans la table SystemSequences. Pour commencer, j’effectue une requête pour vérifier si la valeur NEXTVAL est égale ou très proche à MAXVAL pour les tables de la compagnie dont je veux dupliquer. Si c’est le cas, le système d’allocation de numéro de séquence échouerait :

SELECT *  
FROM systemsequences
WHERE dataareaid = 'dat'
ORDER BY
nextval DESC



Effectivement, il semble y avoir un problème avec les tables 9, 165, 356, 494, 714 et 768. La relation entre le nom d’une table et le TabID est située dans la table SQLDICTIONARY. La requête suivante me donne le nom de la table avec le TabID 9

SELECT *
FROM sqldictionary
WHERE fieldid = 0 and tableid = 9



Je regarde le dernier RECID attribué dans la table BANKCHEQUELAYOUT avec cette requête :

SELECT MAX (RECID)
FROM bankchequelayout
WHERE
dataareaid = 'dat'


Finalement, il suffit de modifier le champ NEXTVAL dans la table systemsequence pour que la valeur soit supérieure à la valeur du dernier RECID attribué pour la table en question.

UPDATE systemsequences
SET nextval = 5637144830
WHERE
dataareaid = 'dat' and tabid = 9
Previous
« Prev Post