Udostępnij za pośrednictwem


Komunikat o błędzie podczas zapisywania informacji o utrzymaniu dostawcy w module Zarządzanie płatnościami przy użyciu programu Microsoft Dynamics GP: "Operacja zapisywania w tabeli 'PM_Vendor_MSTR' (45)."

Ten artykuł zawiera rozwiązanie błędu, który występuje podczas zapisywania informacji o kontrahencie w module Zarządzanie zobowiązaniami przy użyciu programu Microsoft Dynamics GP.

Dotyczy: Microsoft Dynamics GP
Oryginalny numer KB: 2564866

Objawy

Podczas zapisywania nowych informacji lub zmian na karcie Konserwacja dostawcy w usłudze Zarządzanie płatnymi przy użyciu programu Microsoft Dynamics GP zostanie wyświetlony następujący komunikat o błędzie, który uniemożliwia zapisanie zmian:

Operacja zapisywania w tabeli "PM_Vendor_MSTR" (45).

Błąd podczas konwertowania typu danych na wartość liczbową.

Przyczyna

Komunikat jest powodowany przez wyzwalacz w tabeli PM00200, która jest uszkodzona lub nieaktualna.

Wykonaj następujące kroki, aby określić, który wyzwalacz powoduje problem:

  1. Uruchom konsolę administratora pomocy technicznej, program Microsoft SQL Query Analyzer lub program SQL Server Management Studio. W tym celu użyj jednej z następujących metod w zależności od używanego programu.

    • Metoda 1. Dla aparatu pulpitu programu SQL Server

      Jeśli używasz Desktop Engine programu SQL Server (znanego również jako MSDE 2000), uruchom Konsolę Administratora Pomocy Technicznej. Aby to zrobić, kliknij przycisk Start, wskaż pozycję Wszystkie programy, wskaż konsolę administratora firmy Microsoft, a następnie kliknij pozycję Konsola administratora pomocy technicznej.

    • Metoda 2: dla programu SQL Server 2000

      Jeśli używasz programu SQL Server 2000, uruchom narzędzie SQL Query Analyzer. W tym celu kliknij przycisk Start, wskaż pozycję Wszystkie programy, wskaż pozycję Microsoft SQL Server, a następnie kliknij pozycję Analizator zapytań.

    • Metoda 3. Dla programu SQL Server 2005

      Jeśli używasz programu SQL Server 2005, uruchom program SQL Server Management Studio. Aby to zrobić, kliknij przycisk Start, wskaż pozycję Wszystkie programy, wskaż program Microsoft SQL Server 2005, a następnie kliknij pozycję SQL Server Management Studio.

    • Metoda 4. Dla programu SQL Server 2008

      Jeśli używasz programu SQL Server 2008, uruchom program SQL Server Management Studio. W tym celu kliknij przycisk Start, wskaż pozycję Wszystkie programy, wskaż program Microsoft SQL Server 2008, a następnie kliknij pozycję SQL Server Management Studio.

  2. Wykonaj następujący skrypt na bazie danych firmy, aby wyświetlić wyzwalacze w tabeli Głównego Rejestru Dostawców PM00200 PM.

    SP_Helptrigger PM00200
    
  3. Przejrzyj wszystkie wyzwalacze zwrócone przez powyższy skrypt. Oto kilka informacji na temat niektórych wyzwalaczy, które mogą zostać wyświetlone:

    • zDT_PM00200U — jest to domyślny wyzwalacz w tabeli i jest normalne, aby go mieć.
    • taVendorInsert — ten wyzwalacz jest tworzony w wyniku instalacji biblioteki usług Professional Tools Services. (Zobacz Rozwiązanie metody 1).
    • aagTR_PM00200Del, aagTR_PM00200Ins — te wyzwalacze usuwania/wstawiania pochodzą z księgowości analitycznej.
    • ep_Audit_I_PM00200, ep_Audit_U_PM00200, ep_Audit_D_PM00200 — te wyzwalacze wstawiania/aktualizowania/usuwania pochodzą z ścieżek audytu. (Zobacz Rozwiązanie metody 2).
    • Jeśli masz inne wyzwalacze, określ, skąd pochodzą. (Zobacz Rozwiązanie dla metody 3).
  4. Przejrzyj szczegółowy komunikat o błędzie, aby sprawdzić, czy odwołuje się do wyzwalacza powodującego problem. Jeśli nie, możesz użyć poniższych skryptów, aby wyłączyć wszystkie wyzwalacze, a następnie włączyć je z powrotem pojedynczo i przetestować między, aby określić, który z nich powoduje problem:

Aby wyłączyć każdy wyzwalacz, użyj następującego skryptu:

Alter table PM00200 disable trigger XXXX

Uwaga

XXXX jest symbolem zastępczym nazwy wyzwalacza.

Aby włączyć każdy wyzwalacz, użyj następującego skryptu:

Alter table PM00200 enable trigger XXXX

Uwaga

XXXX jest symbolem zastępczym nazwy wyzwalacza.

Rozwiązanie

Użyj odpowiedniej metody poniżej, w zależności od tego, który wyzwalacz powoduje problem:

  • Metoda 1. Jeśli wyzwalacz taVendorInsert powoduje problem, wykonaj następujące kroki, aby odświeżyć ten wyzwalacz:

    1. W programie Microsoft Dynamics GP kliknij skrót, aby otworzyć bibliotekę Narzędzi usług profesjonalnych (PSTL).

    2. Kliknij przycisk Zarejestruj w lewym dolnym rogu okna.

    3. Zostanie wyświetlone okno z monitem o wprowadzenie kodu rejestracji. Wystarczy kliknąć przycisk **OK, ponieważ nie trzeba zmieniać kluczy.

    4. Spowoduje to wyzwolenie pliku PSTL w celu odtworzenia procedur.

    5. Po zakończeniu przetestuj ponownie problem, aby sprawdzić, czy komunikat o błędzie nadal występuje.

      Uwaga

      Jeśli problem będzie się powtarzać, powtórz powyższe kroki, aby odświeżyć plik PSTL po raz drugi. Czasami działa to po raz drugi. Jeśli problem nadal występuje, warto rozważyć ponowną instalację nowszej wersji PSTL.

  • Metoda 2. Jeśli którykolwiek z wyzwalaczy ep_Audit powoduje problem, wykonaj następujące kroki, aby ponownie utworzyć te wyzwalacze:

    1. Przed wykonaniem tych kroków utwórz bieżącą kopię zapasową bazy danych dynamics, firmowej bazy danych, a także bazy danych inspekcji.

    2. W programie Microsoft Dynamics GP kliknij pozycję Microsoft Dynamics GP, wskaż Narzędzia, wskaż Konfiguracja, wskaż Firma, wskaż Dzienniki inspekcji, a następnie kliknij pozycję Konserwacja dzienników inspekcji.

    3. W oknie Konserwacja dziennika inspekcji, w sekcji Tabele inspekcji w prawym dolnym rogu, przejrzyj, czy są jakieś inspekcje dla tabeli PM00200 i kliknij, aby ją wybrać.

    4. Kliknij Zatrzymaj inspekcję.

    5. Jeśli jest to jedyna baza danych firmy, która zapisuje do Ścieżki Audytu dla tej tabeli PM00200, kliknij przycisk Usuń, aby usunąć zestawienie audytowe, a wyzwalacz zostanie usunięty z tabeli.

      Uwaga

      Kliknięcie Usuń spowoduje również całkowite usunięcie tabeli PM00200_Audit w bazie danych Audit, więc cała historia śledzona do tej pory również zostanie usunięta. Dlatego przed wykonaniem tego kroku upewnij się, że masz bieżącą kopię zapasową bazy danych inspekcji.

    6. Przetestuj, aby upewnić się, że komunikat o błędzie już nie występuje.

    7. Teraz wróć do okna Konserwacja dziennika inspekcji i ponownie skonfiguruj inspekcję w tabeli PM00200 w razie potrzeby.

  • Metoda 3. Jeśli masz wyzwalacz niestandardowy, możesz użyć tych kroków, aby utworzyć skrypt szczegółów wyzwalacza, aby można było przejrzeć następujące elementy:

    1. Otwórz SQL Server Management Studio.

    2. W sekcji Eksplorator obiektów na marginesie po lewej stronie kliknij, aby rozwinąć wystąpienie SQL.

    3. Kliknij, aby rozwinąć Bazy danych.

    4. Kliknij, aby rozwinąć odpowiednią firmową bazę danych.

    5. Kliknij, aby rozwinąć tabele.

    6. Kliknij, aby rozwinąć bazę danych. PM00200 tabeli.

    7. Kliknij, aby rozwinąć Wyzwalacze.

    8. Kliknij prawym przyciskiem myszy wyzwalacz niestandardowy i wybierz pozycję Skryptuj wyzwalacz jako i Utwórz w i Nowe okno edytora zapytań (lub Plik).

    9. Przejrzyj szczegóły wyzwalacza. Musisz skonsultować się z tym, kto utworzył wyzwalacz, aby zaktualizował go zgodnie z potrzebami. pomoc techniczna firmy Microsoft nie może obsługiwać żadnych wyzwalaczy niestandardowych.