In questo articolo si applica a Microsoft Dynamics AX per tutte le regioni.

Sintomi

Quando si registra un ordine di acquisto in Microsoft Dynamics AX 2009, viene visualizzato il seguente messaggio di errore:

Impossibile creare un record nell'intestazione ordine fornitore - Aggiornamento tabella (PurchParmSubTable).

Questo problema si verifica se una delle seguenti condizioni è vera:

  • Attivare l'impostazione "impostazione scienze firma elettronica audit trail" per tutte le tabelle.

  • Si crea un record per la tabella comune.

  • Si imposta la tabella PurchParmTable nel registro del database.

Questo problema si verifica quando si registra un ordine di acquisto, un elenco entrate, un documento di trasporto e fattura. Questo problema si verifica nei seguenti prodotti:

  • Microsoft Dynamics AX 2009 con Service Pack 1

  • Microsoft Dynamics AX 2009

Risoluzione

Informazioni sull'hotfix

Un hotfix supportato è ora disponibile da Microsoft. Tuttavia, è destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Applicarlo solo ai sistemi in cui si verificano questo problema specifico. Questo hotfix potrebbe essere sottoposto ad ulteriori test. Pertanto, se il problema non causa gravi difficoltà, consiglia di attendere il prossimo service pack di Microsoft Dynamics AX 2009 o versione successiva contenente questo hotfix. Nota In casi particolari, le spese normalmente addebitate per le chiamate potrebbero essere annullate qualora un aggiornamento del supporto tecnico di Microsoft Dynamics e prodotti correlati di supporto determina che uno specifico aggiornamento risolverà il problema. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.

Informazioni sull'installazione

Prima di installare questo hotfix, verificare che gli utenti del client Microsoft Dynamics AX sono disconnessi dal sistema. Dovrebbe essere il solo l'utente client connesso quando si implementa questo hotfix. Per implementare questo hotfix, è necessario disporre di una licenza di sviluppatore.Nota È consigliabile che l'account utente nella finestra Login Windows o Login Database sia un membro del gruppo Administrators utente in Microsoft Dynamics AX.

Modifiche al codice

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, ma non limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire la procedura di debug. Tecnici del supporto Microsoft consentono di spiegare la funzionalità di una particolare procedura. Tuttavia, essi non modificherà questi esempi per fornire funzionalità aggiuntive o creare procedure atte a soddisfare specifiche esigenze.Sempre il codice di test consente di correggere in un ambiente controllato prima di applicare le correzioni per i computer di produzione.Per risolvere questo problema, attenersi alla seguente procedura:

  1. Sovrascrivere il codice nel metodo di inserimento nella tabella PurchParmSubTable nel modo seguente:

    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. Sovrascrivere il codice nel metodo createFromPurchParmTable nella tabella PurchParmSubTable nel modo seguente:

    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. Sovrascrivere il codice nel metodo di inserimento nella tabella SalesParmSubTable nel modo seguente:

    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();    }}

Nota È necessario unire tutte le personalizzazioni esistenti di questi metodi.

Requisiti

Non è richiesto alcun prerequisito.

Richiesta di riavvio

Non è necessario riavviare il computer dopo avere applicato questo hotfix.

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.