Den här artikeln gäller för Microsoft Dynamics AX för alla regioner.
Symptom
När du bokför en inköpsorder i Microsoft Dynamics AX 2009 visas följande felmeddelande:
Det går inte att skapa en post i inköpsorderrubriken - uppdatera register (PurchParmSubTable).
Det här problemet uppstår om någon av följande förutsättningar föreligger:
-
Du aktiverar inställningen ”Biovetenskap elektronisk signatur inställning av redovisningsspårning” för alla tabeller.
-
Du skapar en post för den vanliga tabellen.
-
Du kan ställa in registret PurchParmTable i databasloggen.
Det här problemet uppstår när du bokför en inköpsorder, en inleveranslista, en följesedel och en faktura. Det här problemet uppstår i följande produkter:
-
Microsoft Dynamics AX 2009 Service Pack 1
-
Microsoft Dynamics AX 2009
Lösning
Information om snabbkorrigeringen
En snabbkorrigering är nu tillgänglig från Microsoft. Den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack-versionen för Microsoft Dynamics AX 2009 eller nästa version som innehåller den här snabbkorrigeringen. Obs! I särskilda fall, de avgifter som är normalt för support vara avgiftsfri om en supporttekniker för Microsoft Dynamics och relaterade produkter som bestämmer att en särskild uppdatering kan lösa ditt problem. Normala supportavgifter tas ut för ytterligare supportfrågor och problem som inte gäller den aktuella uppdateringen.
Installationsinformation
Innan du installerar den här snabbkorrigeringen måste du kontrollera att Microsoft Dynamics AX-klientens användare loggas ut. Du ska endast klientanvändare som är inloggad när du implementerar den här snabbkorrigeringen. Om du vill genomföra den här snabbkorrigeringen måste du ha en utvecklarlicens.Obs! Vi rekommenderar att användarkontot i fönstret Windows-inloggningar eller i fönstret databasinloggningar är medlem i gruppen Administratörer i Microsoft Dynamics AX.
Kod ändras
Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan förklara hur en viss procedur fungerar, men de ändrar inte exemplen för att utöka funktionerna och konstruera procedurer som motsvarar dina behov. Alltid åtgärdas testa koden i en kontrollerad miljö innan du installerar korrigeringar för produktionsdatorer.Följ dessa stegen för att lösa problemet:
-
Skriva över koden i metoden Infoga i tabellen PurchParmSubTable på följande sätt:
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(); }}
-
Skriva över koden i metoden createFromPurchParmTable i tabellen PurchParmSubTable på följande sätt:
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;}
-
Skriva över koden i metoden Infoga i tabellen SalesParmSubTable på följande sätt:
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(); }}
Obs! Du måste koppla alla befintliga anpassningar i dessa metoder.
Förutsättningar
Det finns inga förutsättningar.
Krav på omstart
Du behöver inte starta om datorn när du har installerat den här snabbkorrigeringen.
Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”.