Applies ToMicrosoft Dynamics AX 2009 Dynamics AX 2009 Service Pack 1

Ten artykuł dotyczy systemu Microsoft Dynamics AX dla wszystkich regionów.

Objawy

Podczas księgowania zamówienia zakupu w systemie Microsoft Dynamics AX 2009, pojawi się następujący komunikat o błędzie:

Nie można utworzyć rekordu nagłówka zamówienia zakupu — Aktualizacja tabeli (PurchParmSubTable).

Ten problem występuje, jeśli spełniony jest jeden z następujących warunków:

  • Włącz ustawienie "Ustawienia dziennika inspekcji podpisu elektronicznego nauki przyrodnicze" dla wszystkich tabel.

  • Utwórz rekord dla tabeli wspólnej.

  • Możesz ustawić tabeli PurchParmTable w dzienniku bazy danych.

Ten problem występuje podczas księgowania zamówienia zakupu, listy przychodu, dokument dostawy i faktura. Ten problem występuje w następujących produktach:

  • Microsoft Dynamics AX 2009 z usługą dodatkiem Service Pack 1

  • Microsoft Dynamics AX 2009

Rozwiązanie

Informacje o poprawce

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak to jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następny dodatek service pack dla systemu Microsoft Dynamics AX 2009 lub następną wersję zawierającą tę poprawkę. Uwaga W wyjątkowych przypadkach opłaty, telefonujący do pomocy technicznej mogą zostać anulowane, jeśli pomocy technicznej dla systemu Microsoft Dynamics i produktów powiązanych Określa, że określonej aktualizacji, można rozwiązać swój problem. Normalne koszty pomocy technicznej będą dotyczyć dodatkowych pytań oraz problemów, których rozwiązanie nie jest objęte określoną aktualizacją.

Informacje dotyczące instalacji

Przed zainstalowaniem tej poprawki należy sprawdzić użytkownicy klienta systemu Microsoft Dynamics AX są wylogowani systemu. Powinny być użytkownika klienta, który jest zalogowany w momencie wdrożyć tę poprawkę. Aby wdrożyć tę poprawkę, musi mieć licencję deweloperską.Uwaga Zaleca się, że konto użytkownika w oknie identyfikatorów logowania systemu Windows lub w oknie identyfikatorów logowania bazy danych być członkiem grupy użytkowników Administratorzy w systemie Microsoft Dynamics AX.

Zmiany kodu

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy Pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu działania określonej procedury. Nie będą oni jednak modyfikować tych przykładów w celu dodania funkcji ani konstruować nowych procedur celem dostosowania ich do potrzeb użytkownika. Zawsze test poprawki kodu w kontrolowanym środowisku przed zastosowaniem poprawki na komputerach produkcyjnych.Aby rozwiązać ten problem, wykonaj następujące kroki:

  1. Zastąp kod w metodzie Wstaw w tabeli PurchParmSubTable w następujący sposób:

    public void insert(){    PurchParmSubTable tempPurchParmSubTable;    ;    select tempPurchParmSubTable where        tempPurchParmSubTable.ParmId == this.ParmId        && tempPurchParmSubTable.TableRefId == this.TableRefId        && tempPurchParmSubTable.OrigPurchId == this.OrigPurchId;    if(tempPurchParmSubTable.RecId == 0)    {        super();    }}
  2. Zastąp kod w metodzie createFromPurchParmTable w tabeli PurchParmSubTable w następujący sposób:

    static PurchParmSubTable createFromPurchParmTable(PurchParmTable _purchParmTable, boolean _insert = true){    PurchParmSubTable   purchParmSubTable;    systemSequence systemSequence;    ;    ttsbegin;    purchParmSubTable.clear();    purchParmSubTable.initValue();    purchParmSubTable.initFromPurchParmTable(_purchParmTable);    if (_insert)    {        systemSequence = new systemSequence();        purchParmSubTable.RecId = systemSequence.reserveValues(1, tablenum(PurchParmSubTable));        purchParmSubTable.insert();    }    ttscommit;    return purchParmSubTable;}
  3. Zastąp kod w metodzie Wstaw w tabeli SalesParmSubTable w następujący sposób:

    public void insert(){    SalesParmSubTable tempSalesParmSubTable;    ;    select tempSalesParmSubTable where        tempSalesParmSubTable.ParmId == this.ParmId        && tempSalesParmSubTable.TableRefId == this.TableRefId        && tempSalesParmSubTable.OrigSalesId == this.OrigSalesId        && tempSalesParmSubTable.subId == this.subId;    if(tempSalesParmSubTable.RecId == 0)    {        super();    }}

Uwaga Należy scalić istniejący dostosowań w tych metod.

Wymagania wstępne

Nie określono wymagań wstępnych.

Wymagania dotyczące ponownego uruchomienia

Nie musisz ponownie uruchomiać komputera po zastosowaniu tej poprawki.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.