Mesaj de eroare când încercați să publicați contabilitate analitică tranzacții sau salva un Master înregistrări în Microsoft Dynamics GP: "Cannot insert cheie dublură în obiectul 'AAGXXXXX'"

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 897280
Simptome
Când încercați să publicați contabilitate analitică tranzacții în Microsoft Dynamics GP, este posibil să primiți următorul mesaj de eroare:

[Microsoft] [ODBC SQL Server Driver] [SQL Server] Violare de cheie primară contraint 'PKAAG30000', nu puteți insera cheie dublură în obiectul 'AAG30003'

Notă
din acest mesaj de eroare, AAG30000 este un substituent pentru tabel. Cuvântul "contraint" este o gramaticale de "restricție."

Mesajul de eroare care primiți poate conține unul dintre următoarele tabele:
  • 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
Cauză
Această problemă apare deoarece următoarea valoare disponibile (aaRowID), este indicat pentru acest tabel (aaTableID) în tabelul AAG00102 a fost deja utilizat în tabel aplicabile (sau o serie de tabele secundar).

De exemplu, tabelul '30000' în tabelul AAG00102 va priviți tabelele AAG30000, AAG30001, AAG30002 și AAG30003, așadar Aveți grijă să verificați toate tabelele în serie de tabel aplicabile.



Rezoluţie
Pentru a rezolva această problemă, utilizaţi una dintre următoarele metode de mai jos pentru a compara valoarea maximă utilizate în tabel AA (și tabele secundar) împotriva următoarea valoare disponibile stocate în tabelul AAG00102.

Notă Înainte să urmați instrucțiunile din acest articol, asigurați-vă că aveți o copiere de rezervă completă a bazei acoperire de date care se poate restabili dacă apare o problemă.

Metoda 1 - utilizare SQL Script pentru a actualiza valorile din AAG00102 pentru majoritatea AA tabele

Aveți posibilitatea să descărcați un script SQL folosind linkul de mai jos și se execută în SQL Server Management Studio pentru baza acoperire de date de companie pentru a actualiza automat numărul următor disponibile stocate în tabelul AAG00102 faţă de la ultima la utilizează valoarea din tabelul AA. Scriptul vor arăta la următoarele tabele: AAG10000, AAG20000, AAG30000, AAG00201, AAG00400, AAG00401, AAG00500, AAG00600, AAG00900 și AAG00903. Astfel se arată în cele mai multe dintre tabelele AA, dar nu toate, și nu sub-tabele pentru o serie. Pentru a obține script, vizitați următorul site Web Microsoft:

https://MBS.Microsoft.com/files/Customer/GP/Downloads/ServicePacks/AA_Update_AAG00102.SQL

Metoda 2 - Manual actualizarea și cercetare valoarea din AAG00102 pentru un tabel AA la un moment dat

  1. Deschide SQL Server Management Studio. Pentru aceasta, faceți clic pe Start, indicați spre programe, punctul de la versiunea de Microsoft SQL Serverși apoi faceți clic pe SQL Server Management Studio.
  2. În fereastra de Conectare la SQL Server , conectați-vă în SQL Server Management Studio utilizând parola sa.
  3. Faceți clic pe Interogare nouă pictogramă pentru a deschide o cadru fereastră interogare și copiați sau tastați următorul script în fereastra de interogare. Executare împotriva baza acoperire de date de companie.
    select MAX (aaGLHdrID) from AAG30000*/Insert in the appropriate column/table for the aaGLHdrID and AAG30000 placeholders in the script.
  4. Observați rezultatele de interogare care va arăta valoarea maximă utilizat ultima dată în tabel. (Dacă tabelul are secundare tabele, asigurați-vă pentru a verifica cea mai mare utilizat ultima valoare în aceste, precum).
  5. Tastați următorul script în perioadă de interogare și executa împotriva Dynamics bazei de date:
    select * from AAG00102 where CMPANYID = 'nnn'
    Notă În această interogare, înlocuiți nnn substituentul cu ID-ul companiei. Pentru a găsi ID-ul de companie, tastați următoarea interogare în fereastra de interogare.
    select * from SY01500
    Selectați DYNAMICS bazei acoperire de date în Listă tabel din partea de sus a ferestrei, și apoi apăsați F5.
  6. Verificați dacă valoarea din câmpul aaRowID pentru valoarea aaTableID30000 (sau corespunzător table) este egală sau mai mare decât valoarea pe care ați notat în Pasul 4.
  7. Utilizați următorul script pentru a actualiza valoarea. Pentru aceasta, tastați scriptul de mai jos în fereastra de interogare și apoi apăsați F5.
    update aag00102 set aaROWID = 'yyyy' where aaTableID = 30000 and CMPANYID = 'zzz'
    Notă În acest scenariu, înlocuiți aaaa substituentul cu valoarea pe care ați notat în Pasul 4. Înlocuiți zzz substituentul cu ID-ul companiei. De asemenea, înlocuiți aaTableID cu tabelul corespunzător.
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Avertisment: acest articol a fost tradus automat

Propriedades

ID do Artigo: 897280 - Última Revisão: 10/23/2015 06:09:00 - Revisão: 0.3

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

  • kberrmsg kbmbsmigrate kbbug kbmt KB897280 KbMtro
Comentários