Message d'erreur lorsque vous essayez de valider les transactions de comptabilité analytique ou enregistrer une forme de base d'enregistrement dans Microsoft Dynamics GP: « Impossible d'insérer une clé en double dans l'objet « ...

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 897280
Symptômes
Lorsque vous essayez de valider les transactions de comptabilité analytique de Microsoft Dynamics GP, le message d'erreur suivant s'affiche :

[Microsoft] [Pilote de ODBC SQL Server] [SQL Server] Violation de contrainte de clé primaire 'PKAAG30000', ne peut pas insérer de clé en double dans l'objet 'AAG30003'

Remarque
dans ce message d'erreur AAG30000 est un espace réservé pour la table. Le terme « contrainte » est une faute d'orthographe de « contrainte ».

Message d'erreur que vous recevez peut contenir une des tables suivantes :
  • AAG00103
  • AAG00500
  • AAG00600
  • AAG00601
  • AAG00602
  • AAG00603
  • AAG00400
  • AAG00401
  • AAG00201
  • AAG00310
  • AAG00900
  • AAG00901
  • AAG00902
  • AAG00903
  • AAG10000
  • AAG10001
  • AAG10002
  • AAG10003
  • AAG20000
  • AAG20001
  • AAG20002
  • AAG20003
  • AAG30000
  • AAG30001
  • AAG30002
  • AAG30003
Cause
Ce problème se produit car la valeur disponible suivante (aaRowID) indiquée pour cette table (aaTableID) dans la table AAG00102 a déjà été utilisée dans le tableau applicable (ou une série de tables secondaires).

Par exemple, la table « 30000 » dans la table AAG00102 sera recherche dans les tables AAG30000, AAG30001, AAG30002 et AAG30003, veillez à vérifier toutes les tables de la série de la table applicable.



Résolution
Pour contourner ce problème, utilisez une des méthodes suivantes ci-dessous pour comparer la valeur utilisée le plus élevée dans la table de AA (et les tables secondaires) par rapport à la valeur disponible suivante dans la table AAG00102.

Remarque Avant de suivre les instructions fournies dans cet article, assurez-vous que vous disposez d'une copie de sauvegarde complète de la base de données que vous pouvez restaurer si un problème survient.

Méthode 1: utiliser un Script SQL pour mettre à jour les valeurs dans le AAG00102 pour la plupart des tables de AA

Vous pouvez télécharger un script SQL à l'aide du lien ci-dessous et exécutez-le dans SQL Server Management Studio sur la base de données de la société utilisé pour mettre à jour automatiquement le numéro disponible suivant dans la table AAG00102 par rapport à la dernière valeur dans la table AA. Le script de recherche dans les tables suivantes : AAG10000, AAG20000, AAG30000, AAG00201, AAG00400, AAG00401, AAG00500, AAG00600, AAG00900 et AAG00903. Pour qu'il ressemble à la plupart des tables AA, mais pas tous et pas des tables pour une série. Pour obtenir le script, visitez le site Web de Microsoft à l'adresse suivante :

https://mbs.Microsoft.com/files/Customer/GP/downloads/servicepacks/AA_Update_AAG00102.SQL

Méthode 2: méthode manuelle de valeur de recherche et de mise à jour de AAG00102 pour une table de AA à la fois

  1. Ouvrez SQL Server Management Studio. Pour ce faire, cliquez sur Démarrer, pointez sur programmes, pointez sur la version de Microsoft SQL Server, puis cliquez sur SQL Server Management Studio.
  2. Dans la fenêtre de connexion à SQL Server , connectez-vous à SQL Server Management Studio à l'aide de votre mot de passe sa.
  3. Cliquez sur le Nouvelle requête icône pour ouvrir une fenêtre de requête et une copie, ou tapez le script suivant dans la fenêtre de requête. Exécuter par rapport à la base de données de la société.
    select MAX (aaGLHdrID) from AAG30000*/Insert in the appropriate column/table for the aaGLHdrID and AAG30000 placeholders in the script.
  4. Notez les résultats de la requête, qui affiche la valeur la plus élevée utilisée en dernier dans la table. (Si la table possède des sous-tables, veillez à vérifier la plus élevée dernier utilisé valeur dans ces ainsi.)
  5. Tapez le script suivant dans la fenêtre de requête et l'exécuter sur la base de données Dynamics :
    select * from AAG00102 where CMPANYID = 'nnn'
    Remarque Dans cette requête, remplacez le nnn espace réservé avec le code de la société. Pour rechercher l'ID de la société, tapez la requête suivante dans la fenêtre de requête.
    select * from SY01500
    Sélectionnez la base de données DYNAMICS dans la liste en haut de la fenêtre et appuyez sur la touche F5.
  6. Vérifiez que la valeur dans le champ aaRowID de la valeur de aaTableID de 30000 (ou de table approprié) est égale ou supérieure à la valeur que vous avez noté à l'étape 4.
  7. Utilisez le script suivant pour mettre à jour la valeur. Pour ce faire, tapez le script ci-dessous dans la fenêtre de requête et appuyez sur la touche F5.
    update aag00102 set aaROWID = 'yyyy' where aaTableID = 30000 and CMPANYID = 'zzz'
    Remarque Dans ce script, remplacez le aaaa espace réservé pour la valeur que vous avez noté à l'étape 4. Remplacer le zzz espace réservé avec le code de la société. Également remplacer l'aaTableID par la table appropriée.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Avertissement : Cet article a été traduit automatiquement.

गुण

आलेख ID: 897280 - पिछली समीक्षा: 10/22/2015 22:34:00 - संशोधन: 1.4

Microsoft Dynamics GP 2015, Microsoft Dynamics GP 2013, Microsoft Dynamics GP 2010, Microsoft Dynamics GP 10.0

  • kberrmsg kbmbsmigrate kbbug kbmt KB897280 KbMtfr
प्रतिक्रिया