Questo articolo si applica a Microsoft Dynamics NAV per le impostazioni locali della lingua portoghese (pt).
Sintomi
Si consideri lo scenario seguente nella versione portoghese di Microsoft Dynamics NAV 2009 R2 e di Microsoft Dynamics NAV 2009 Service Pack 1 (SP1):
- È disponibile una serie di numeri che abilita l'impostazione Ordine data .
- È disponibile una fattura di vendita o una fattura di acquisto che applica la serie di numeri.
- Il sistema assegna un numero di registrazione alla fattura di vendita o alla fattura di acquisto.
- Eseguire la funzione Post Batch per questa fattura e sostituire la data di post nella scheda Opzione della finestra di dialogo Crea fattura post-vendita o nella finestra di dialogo Crea fattura post acquisto .
In questo scenario, il sistema aggiorna in modo imprevisto la data di registrazione di questa fattura e non controlla l'ordine di data. Tuttavia, il sistema controlla l'ordine di data se si sostituisce il valore nel campo Data registrazione della scheda Generale della fattura.
Risoluzione
Informazioni sull'aggiornamento rapido
È ora disponibile un hotfix supportato da Microsoft. Tuttavia, è destinato solo a correggere il problema descritto in questo articolo. Applicala solo ai sistemi che stanno riscontrando questo problema specifico. Questo hotfix potrebbe ricevere ulteriori test. Pertanto, se non sei gravemente interessato da questo problema, ti consigliamo di attendere il prossimo Service Pack di Microsoft Dynamics NAV 2009 o la prossima versione di Microsoft Dynamics NAV che contiene questo hotfix.
Nota In casi speciali, gli addebiti normalmente sostenuti per le chiamate al supporto tecnico possono essere annullati se un professionista del supporto tecnico per Microsoft Dynamics e i prodotti correlati determinano che un aggiornamento specifico risolverà il problema. I soliti costi del supporto verranno applicati a domande e problemi di supporto aggiuntivi che non sono idonei per l'aggiornamento specifico in questione.
Informazioni sull'installazione
Microsoft fornisce esempi di programmazione a titolo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, a titolo esemplificativo e non esaustivo, le garanzie implicite di commerciabilità o idoneità a uno scopo particolare. Questo articolo presuppone che si abbia familiarità con il linguaggio di programmazione oggetto della dimostrazione e con gli strumenti utilizzati per la creazione e il debug delle procedure. I tecnici dell'assistenza Microsoft possono aiutare a spiegare la funzionalità di una particolare procedura. Tuttavia, non modificheranno questi esempi per fornire funzionalità aggiuntive o costruire procedure che soddisfino i vostri requisiti specifici.
Nota Prima di installare questo hotfix, verificare che tutti gli utenti client di Microsoft Navision siano disconnessi dal sistema. Sono inclusi gli utenti client di Microsoft Navision Application Services (NAS). Dovresti essere l'unico utente client connesso quando implementi questo hotfix.
Per implementare questo hotfix, è necessario disporre di una licenza per sviluppatori.
È consigliabile assegnare l'ID ruolo "SUPER" all'account utente nella finestra Accessi di Windows o nella finestra Accessi database. Se all'account utente non è possibile assegnare l'ID ruolo "SUPER", è necessario verificare che l'account utente disponga delle autorizzazioni seguenti:
- Autorizzazione modifica per l'oggetto che si desidera modificare.
- Autorizzazione Execute per l'oggetto System Object ID 5210 e per l'oggetto System Object ID 9015.
Nota: non è necessario disporre dei diritti per gli archivi dati a meno che non sia necessario eseguire il ripristino dei dati.
Modifiche al codice
Nota Verifica sempre le correzioni del codice in un ambiente controllato prima di applicare le correzioni ai computer di produzione.
Per risolvere il problema, attenersi alla procedura seguente:
Modificare il codice nella tabella Intestazione vendite (36). A questo scopo, procedere come segue:
Modificare il codice nei campi nel modo seguente:
Codice esistente... END; CaptionML=[ENU=Order Date; PTG=Data Encomenda] } { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN // Delete the following lines. TestNoSeriesDate( "Posting No.","Posting No. Series", FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series")); TestNoSeriesDate( "Prepayment No.","Prepayment No. Series", FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series")); TestNoSeriesDate( "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series", FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series")); VALIDATE("Document Date","Posting Date"); IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND NOT ("Posting Date" = xRec."Posting Date") THEN PriceMessageIfSalesLinesExist(FIELDCAPTION("Posting Date")); IF "Currency Code" <> '' THEN BEGIN UpdateCurrencyFactor; IF "Currency Factor" <> xRec."Currency Factor" THEN ConfirmUpdateCurrencyFactor; END; // End of the deleted lines. END; CaptionML=[ENU=Posting Date; PTG=Data Registo] } { 21 ; ;Shipment Date ;Date ;OnValidate=BEGIN ...Codice sostitutivo
... END; CaptionML=[ENU=Order Date; PTG=Data Encomenda] } { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN // Add the following lines. IF "Posting Date" <> xRec."Posting Date" THEN BEGIN TestNoSeriesDate( "Posting No.","Posting No. Series", FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series")); TestNoSeriesDate( "Prepayment No.","Prepayment No. Series", FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series")); TestNoSeriesDate( "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series", FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series")); VALIDATE("Document Date","Posting Date"); IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND NOT ("Posting Date" = xRec."Posting Date") THEN PriceMessageIfSalesLinesExist(FIELDCAPTION("Posting Date")); IF "Currency Code" <> '' THEN BEGIN UpdateCurrencyFactor; IF "Currency Factor" <> xRec."Currency Factor" THEN ConfirmUpdateCurrencyFactor; END; END; // End of the added lines. END; CaptionML=[ENU=Posting Date; PTG=Data Registo] } { 21 ; ;Shipment Date ;Date ;OnValidate=BEGIN ...Modificare il codice nella funzione UpdatePmtDiscDate nel modo seguente:
Codice esistente... IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN "Pmt. Discount Date" := "Due Date"; END; BEGIN END. } } ...Codice sostitutivo
... IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN "Pmt. Discount Date" := "Due Date"; END; BEGIN // Add the following lines. { <changelog> <change id="VSTF300295" dev="v-mokuma" feature="VSTF300295" date="2012-01-20" area="Sales" baseversion="PT6.00.01" releaseversion="PT6.00.02"> Problem with number series with date order setting and batch posting </change> </changelog> } // End of the added lines. END. } } ...
Modificare il codice nella tabella Intestazione acquisto (38). A tale scopo, procedere come segue:
Modificare il codice nei campi nel modo seguente:
Codice esistente... END; CaptionML=[ENU=Order Date; PTG=Data Encomenda] } { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN // Delete the following lines. TestNoSeriesDate( "Posting No.","Posting No. Series", FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series")); TestNoSeriesDate( "Prepayment No.","Prepayment No. Series", FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series")); TestNoSeriesDate( "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series", FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series")); VALIDATE("Document Date","Posting Date"); IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND NOT ("Posting Date" = xRec."Posting Date") THEN PriceMessageIfPurchLinesExist(FIELDCAPTION("Posting Date")); IF "Currency Code" <> '' THEN BEGIN UpdateCurrencyFactor; IF "Currency Factor" <> xRec."Currency Factor" THEN ConfirmUpdateCurrencyFactor; END; IF PurchLinesExist THEN JobUpdatePurchLines; // End of the deleted lines. END; CaptionML=[ENU=Posting Date; PTG=Data Registo] } { 21 ; ;Expected Receipt Date;Date ;OnValidate=BEGIN ...Codice sostitutivo
... END; CaptionML=[ENU=Order Date; PTG=Data Encomenda] } { 20 ; ;Posting Date ;Date ;OnValidate=BEGIN // Add the following lines. IF "Posting Date" <> xRec."Posting Date" THEN BEGIN TestNoSeriesDate( "Posting No.","Posting No. Series", FIELDCAPTION("Posting No."),FIELDCAPTION("Posting No. Series")); TestNoSeriesDate( "Prepayment No.","Prepayment No. Series", FIELDCAPTION("Prepayment No."),FIELDCAPTION("Prepayment No. Series")); TestNoSeriesDate( "Prepmt. Cr. Memo No.","Prepmt. Cr. Memo No. Series", FIELDCAPTION("Prepmt. Cr. Memo No."),FIELDCAPTION("Prepmt. Cr. Memo No. Series")); VALIDATE("Document Date","Posting Date"); IF ("Document Type" IN ["Document Type"::Invoice,"Document Type"::"Credit Memo"]) AND NOT ("Posting Date" = xRec."Posting Date") THEN PriceMessageIfPurchLinesExist(FIELDCAPTION("Posting Date")); IF "Currency Code" <> '' THEN BEGIN UpdateCurrencyFactor; IF "Currency Factor" <> xRec."Currency Factor" THEN ConfirmUpdateCurrencyFactor; END; IF PurchLinesExist THEN JobUpdatePurchLines; END; // End of the added lines. END; CaptionML=[ENU=Posting Date; PTG=Data Registo] } { 21 ; ;Expected Receipt Date;Date ;OnValidate=BEGIN ...Modificare il codice nella funzione UpdatePmtDiscDate nel modo seguente:
Codice esistente... IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN "Pmt. Discount Date" := "Due Date"; END; BEGIN END. } } ...Codice sostitutivo
... IF NOT("Document Type" IN ["Document Type"::"Credit Memo", "Document Type"::"Return Order"]) THEN "Pmt. Discount Date" := "Due Date"; END; BEGIN // Add the following lines. { <changelog> <change id="VSTF300295" dev="v-mokuma" feature="VSTF300295" date="2012-01-20" area="Sales" baseversion="PT6.00.01" releaseversion="PT6.00.02"> Problem with number series with date order setting and batch posting </change> </changelog> } // End of the added lines. END. } } ...
Modificare il codice nella codeunit di Sales-Post (80). A questo scopo, procedere come segue:
Modificare il codice di Properties come segue:
Codice esistente... DocType@1022 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,Shipment'; TempJnlLineDim2@1023 : TEMPORARY Record 356; TempPrePmtAmtToDeduct@1003 : Decimal; BEGIN IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN // Delete the following line. "Posting Date" := PostingDate; VALIDATE("Currency Code"); END; IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN VALIDATE("Document Date",PostingDate); ...Codice sostitutivo
... DocType@1022 : ' ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund,Shipment'; TempJnlLineDim2@1023 : TEMPORARY Record 356; TempPrePmtAmtToDeduct@1003 : Decimal; BEGIN IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN // Add the following line. VALIDATE("Posting Date",PostingDate); VALIDATE("Currency Code"); END; IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN VALIDATE("Document Date",PostingDate); ...Modificare il codice nella funzione ItemLedgerEntryExist nel modo seguente:
Codice esistente... EXIT(HasItemLedgerEntry); END; BEGIN END. } } ...Codice sostitutivo
... EXIT(HasItemLedgerEntry); END; BEGIN // Add the following lines. { <changelog> <change id="VSTF300295" dev="v-mokuma" feature="VSTF300295" date="2012-01-20" area="Sales" baseversion="PT6.00.01" releaseversion="PT6.00.02"> Problem with number series with date order setting and batch posting </change> </changelog> } // End of the added lines. END. } } ...
Modificare il codice di Properties in Purch.-Post codeunit (90) come segue:
Codice esistente... TrackingSpecificationExists@1010 : Boolean; EndLoop@1009 : Boolean; TempPrePmtAmtToDeduct@1004 : Decimal; BEGIN IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN // Delete the following line. "Posting Date" := PostingDate; VALIDATE("Currency Code"); END; IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN VALIDATE("Document Date",PostingDate); ...Codice sostitutivo
... TrackingSpecificationExists@1010 : Boolean; EndLoop@1009 : Boolean; TempPrePmtAmtToDeduct@1004 : Decimal; BEGIN IF PostingDateExists AND (ReplacePostingDate OR ("Posting Date" = 0D)) THEN BEGIN // Add the following line. VALIDATE("Posting Date",PostingDate); VALIDATE("Currency Code"); END; IF PostingDateExists AND (ReplaceDocumentDate OR ("Document Date" = 0D)) THEN VALIDATE("Document Date",PostingDate); ...
Prerequisiti
Per applicare questo hotfix, è necessario che sia installato uno dei prodotti seguenti:
- Versione portoghese di Microsoft Dynamics NAV 2009 R2
- Versione portoghese di Microsoft Dynamics NAV 2009 Service Pack 1
Informazioni sulla rimozione
Non è possibile rimuovere questo hotfix.
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".
Nota Questo è un articolo "FAST PUBLISH" creato direttamente dall'organizzazione di supporto Microsoft. Le informazioni contenute nel presente documento vengono fornite così come sono in risposta ai problemi emergenti. A causa della velocità di reso disponibile, i materiali possono includere errori tipografici e possono essere modificati in qualsiasi momento senza preavviso. Per altre considerazioni, vedere Condizioni per l'utilizzo .