Thông báo lỗi khi bạn cố gắng gửi kế toán phân tích giao dịch hoặc lưu một ghi lại trong Microsoft Dynamics GP: "Không thể chèn khoá trùng lặp trong đối tượng 'AAGXXXXX'"

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 897280
Triệu chứng
Khi bạn cố gắng gửi kế toán phân tích giao dịch trong Microsoft Dynamics GP, bạn có thể nhận được thông báo lỗi sau:

[Microsoft] [Trình điều khiển máy chủ ODBC SQL] [SQL Server] Vi phạm khoá chính contraint 'PKAAG30000', không thể chèn khoá trùng lặp trong đối tượng 'AAG30003'

Chú ý
trong thông báo lỗi này, AAG30000 là trình giữ chỗ cho bảng. Từ "contraint" là một lỗi chính tả "hạn chế."

Thực tế lỗi mà bạn nhận được có thể chứa một trong các bảng sau:
  • 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
Nguyên nhân
Sự cố này xảy ra do tiếp theo có giá trị (aaRowID) chỉ định bảng này (aaTableID) trong bảng AAG00102 đã được sử dụng trong bảng phù hợp (hoặc nhóm phụ bảng).

Ví dụ: bảng '30000' trong bảng AAG00102 sẽ xem bảng AAG30000, AAG30001, AAG30002 và AAG30003, vì vậy hãy cẩn thận để kiểm tra tất cả các bảng trong bảng phù hợp.



Giải pháp
Để khắc phục sự cố này, sử dụng một trong các phương pháp sau đây để so sánh các giá trị cao nhất được sử dụng trong AA bảng (bảng phụ) chống lại giá trị có lưu trữ trong bảng AAG00102.

Lưu ý Trước khi làm theo các hướng dẫn trong bài viết này, đảm bảo rằng bạn có đồng gửi lưu đầy đủ của bộ máy cơ sở dữ liệu mà bạn có thể khôi phục nếu sự cố xảy ra.

Phương pháp 1 - sử dụng SQL tập lệnh để cập nhật các giá trị trong AAG00102 cho hầu hết AA bảng

Bạn có thể tải xuống một tập lệnh SQL sử dụng liên kết dưới đây bật lên và chạy trong SQL Server Management Studio với bộ máy cơ sở dữ liệu công ty tự động Cập Nhật tiếp theo có số được lưu trữ trong bảng AAG00102 so cuối sử dụng giá trị trong bảng AA. Tập lệnh sẽ xem xét các bảng sau: AAG10000, AAG20000, AAG30000, AAG00201, AAG00400, AAG00401, AAG00500, AAG00600, AAG00900 và AAG00903. Để xem hầu hết các bảng AA, nhưng không phải tất cả và không phụ bảng cho một nhóm. Tải tập lệnh, hãy ghé thăm Web site sau của Microsoft:

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

Phương pháp 2 - phương pháp thủ công để nghiên cứu và Cập Nhật giá trị AAG00102 cho một AA bảng lần

  1. Mở SQL Server Management Studio. Để thực hiện việc này, bấm Bắt đầu, điểm đến chương trình, điểm đến Phiên bản Microsoft SQL Servervà bấm SQL Server Management Studio.
  2. Trong cửa sổ kết nối với SQL Server , kí nhập vào SQL Server Management Studio bằng cách sử dụng mật khẩu sa.
  3. Bấm vào các Truy vấn mới biểu tượng để mở một cửa sổ query và sao chép hoặc nhập lệnh sau trong Cửa sổ Query. Thực hiện đối với bộ máy cơ sở dữ liệu công ty.
    select MAX (aaGLHdrID) from AAG30000*/Insert in the appropriate column/table for the aaGLHdrID and AAG30000 placeholders in the script.
  4. Lưu ý các kết quả truy vấn sẽ hiển thị giá trị cao cuối sử dụng trong bảng. (Nếu bảng phụ bảng, đảm bảo kiểm tra cao cuối sử dụng giá trị trong những cũng.)
  5. Gõ lệnh sau trong Cửa sổ Query và thực hiện đối với bộ máy cơ sở dữ liệu động:
    select * from AAG00102 where CMPANYID = 'nnn'
    Lưu ý Truy vấn này, thay thế các NNN chỗ dành sẵn với công ty của bạn. Để tìm công ty ID, nhập truy vấn sau đây trong Cửa sổ Query.
    select * from SY01500
    Chọn bộ máy cơ sở dữ liệu động trong danh sách ở trên cùng của cửa sổ, và sau đó nhấn F5.
  6. Xác minh rằng giá trị trong trường aaRowID giá trị aaTableID30000 (hoặc phù hợp với bảng) bằng hoặc lớn hơn giá trị mà bạn đã ghi lại trong bước 4.
  7. Sử dụng lệnh sau để cập nhật các giá trị. Để thực hiện việc này, gõ lệnh bên dưới Cửa sổ Query và sau đó bấm F5.
    update aag00102 set aaROWID = 'yyyy' where aaTableID = 30000 and CMPANYID = 'zzz'
    Lưu ý Trong kịch bản này, thay thế các YYYY chỗ dành sẵn có giá trị mà bạn đã ghi lại trong bước 4. Thay thế các zzz chỗ dành sẵn với công ty của bạn. Cũng thay thế aaTableID với bảng phù hợp.
Tình trạng
Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 897280 - Xem lại Lần cuối: 10/23/2015 06:11:00 - Bản sửa đổi: 0.3

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

  • kberrmsg kbmbsmigrate kbbug kbmt KB897280 KbMtvi
Phản hồi