Tassi di cambio vengono aggiornati in modo non corretto durante l'integrazione di Microsoft Dynamics CRM con Microsoft Dynamics NAV 2009 R2 utilizzando il connettore per Microsoft Dynamics

Traduzione articoli Traduzione articoli
Identificativo articolo: 2597312 - Visualizza i prodotti a cui si riferisce l?articolo.
In questo articolo si applica a Microsoft Dynamics NAV per tutti i paesi e tutte le lingue.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Si supponga di integrazione con Microsoft Dynamics NAV 2009 R2 Microsoft Dynamics CRM utilizzando il connettore per Microsoft Dynamics Feature Pack 5. In alcuni scenari, tassi di cambio vengono aggiornati in modo errato in Microsoft Dynamics CRM.
Quando si aggiornano i tassi di cambio valuta in Microsoft Dynamics NAV 2009 R2, Ŕ possibile che venga visualizzato il seguente messaggio di errore:
[Tassi di cambio valuta] si Ŕ verificato un errore durante l'elaborazione di ?
TransactionCurrency con ID = <guid>non esiste.</guid>
In questo caso, solo il primo record dei tassi di cambio valuta viene sincronizzato con Microsoft Dynamics CRM. Questo errore si verifica quando il sistema consente di sincronizzare i record successivi che vengono immessi nella tabella Tassi di cambio valute con le date di inizio successive.

Cause

Questo problema si verifica perchÚ l'ultimo tasso di cambio valuta modificati, anzichÚ il tasso di cambio corrente per la valuta in particolare, viene sincronizzato con Microsoft Dynamics CRM utilizzando il connettore per Microsoft Dynamics.

Risoluzione

Informazioni sull'aggiornamento rapido

Un hotfix supportato Ŕ 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 venga eseguite ulteriori verifiche. Se il problema non causa gravi difficoltÓ, si consiglia di attendere il prossimo service pack di Microsoft Dynamics NAV 2009 o la prossima versione di Microsoft Dynamics NAV contenente tale hotfix.

Nota In casi particolari, le spese normalmente addebitate per le chiamate potrebbero essere annullate qualora un addetto del supporto tecnico di Microsoft Dynamics e prodotti correlati di supporto determinare che uno specifico aggiornamento risolverÓ il problema. I costi di supporto usuali verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico aggiornamento in questione.

Informazioni sull'installazione

Microsoft fornisce esempi di programmazione solo scopo illustrativo e senza alcuna garanzia espressa o implicita. Ci˛ include, ma non Ŕ tra l'altro, le garanzie implicite di commerciabilitÓ o idoneitÓ per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Gli esperti Microsoft possono spiegare la funzionalitÓ di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalitÓ aggiuntive o creare procedure atte a soddisfare specifiche esigenze.

Nota Prima di installare questo hotfix, verificare che tutti gli utenti del client Microsoft Navision siano disconnessi dal sistema. Microsoft Navision Application Services (NAS) sono inclusi gli utenti dei client. Dovrebbe essere il solo utente del client Ŕ connesso quando si implementa questa correzione rapida.

Per implementare questo hotfix, Ŕ necessario disporre di una licenza di sviluppatore.

╚ consigliabile che l'account utente nella finestra Login Windows o Login Database assegnare l'ID di ruolo "SUPER". Se l'account utente non pu˛ essere assegnato l'ID di ruolo "SUPER", Ŕ necessario verificare che l'account utente disponga delle autorizzazioni seguenti:
  • L'autorizzazione alla modifica dell'oggetto che verranno modificati.
  • L'autorizzazione Execute per la ID dell'oggetto sistema 5210 oggetto e per la ID dell'oggetto sistema 9015 oggetto.


Nota Non Ŕ necessario disporre dei diritti per gli archivi dati a meno che non Ŕ necessario eseguire il ripristino dei dati.

Modifiche del codice

Nota Viene sempre codice di test risolto in un ambiente controllato prima di applicare le correzioni per i computer di produzione.
Per risolvere il problema, attenersi alla seguente procedura:
  1. Applicare le modifiche di codice riportato di seguito in Microsoft Dynamics NAV 2009 R2:
    1. Creare un nuovo GetCurrencyFactor il funzionamento della tabella Tassi di cambio valute (330) come segue:
      PROCEDURE GetCurrentCurrencyFactor@14(CurrencyCode@1000 : Code[10]) : Decimal;
          BEGIN
            SETRANGE("Currency Code",CurrencyCode);
            IF FINDLAST THEN
              EXIT("Exchange Rate Amount" / "Relational Exch. Rate Amount")
          END;
    2. Creare un nuovo SetCurrencyFactor il funzionamento della tabella Tassi di cambio valute (330) come segue:
      PROCEDURE SetCurrentCurrencyFactor@15(CurrencyCode@1000 : Code[10];CurrencyFactor@1001 : Decimal);
          VAR
            RateForTodayExists@1002 : Boolean;
          BEGIN
            "Currency Code" := CurrencyCode;
            TESTFIELD("Currency Code");
            RateForTodayExists := GET(CurrencyCode,TODAY);
            "Exchange Rate Amount" := 1;
            "Relational Exch. Rate Amount" := 1 / CurrencyFactor;
            "Adjustment Exch. Rate Amount" := "Exchange Rate Amount";
            "Relational Adjmt Exch Rate Amt" := "Relational Exch. Rate Amount";
           IF RateForTodayExists THEN BEGIN
             "Relational Currency Code" := '';
             MODIFY;
           END ELSE BEGIN
             "Starting Date" := TODAY;
             INSERT;
           END;
          END;
    3. Aggiungere una nuova variabile globale nel modulo valute (5) e quindi specificare la variabile come indicato di seguito:
      • Nome: CurrencyFactor
      • Il tipo di dati: Decimale
    4. Aggiungere il Fattore valuta campo (46) sotto forma di monete (5).
    5. Aggiungere una nuova variabile locale nel Fattore valuta - OnValidate Attiva sotto forma di monete (5) e quindi la variabile come indicato di seguito:
      • Nome: CurrencyExchangeRate
      • Il tipo di dati: Record
      • Sottotipo: Tasso di cambio valuta
    6. Aggiungere il codice seguente nel Fattore valuta - OnValidate attivare il modulo di valute (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. Aggiungere una nuova variabile locale nel Trigger OnAfterGetRecord Attiva sotto forma di monete (5) e quindi la variabile come indicato di seguito:
      • Nome: CurrencyExchangeRate
      • Il tipo di dati: Record
      • Sottotipo: Tasso di cambio valuta
    8. Aggiungere il codice seguente nel Trigger OnAfterGetRecord attivare il modulo di valute (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. Aggiungere una nuova variabile globale nella pagina delle valute (5) e quindi specificare la variabile come indicato di seguito:
      • Nome: CurrencyFactor
      • Il tipo di dati: Decimale
    10. Aggiungere il Fattore valuta campo nella pagina delle valute (5) e quindi specificare il campo come segue:
      • Nome: CurrencyFactor
      • Didascalia: Fattore valuta
      • Tipo: Campo
      • SourceExpr: CurrencyFactor
    11. Aggiungere una nuova variabile locale nel Fattore valuta - OnValidate attivare nella pagina delle valute (5) e quindi la variabile come indicato di seguito:
      • Nome: CurrencyExchangeRate
      • Il tipo di dati: Record
      • Sottotipo: Tasso di cambio valuta
    12. Aggiungere il codice seguente nel Fattore valuta - OnValidate attivare nella pagina delle valute (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. Aggiungere una nuova variabile locale nel Trigger OnAfterGetRecord attivare nella pagina delle valute (5) e quindi la variabile come indicato di seguito:
      • Nome: CurrencyExchangeRate
      • Il tipo di dati: Record
      • Sottotipo: Tasso di cambio valuta
    14. Aggiungere il codice seguente nel Trigger OnAfterGetRecord attivare nella pagina delle valute (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. Aggiungere una nuova variabile locale nel UpdateParentIntegrationRecord funzionamento della codeunit di gestione dell'integrazione (5150) e quindi la variabile come indicato di seguito:
      • Nome: Valuta
      • Il tipo di dati: Record
      • Sottotipo: Valuta
    16. Modificare il codice del UpdateParentIntegrationRecord il funzionamento della codeunit di gestione dell'integrazione (5150) come segue:
      Codice esistente
      ...
        DATABASE::"Ship-to Address":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Customer No."
            IF Customer.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Customer);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      END;
      Codice di sostituzione
      ...
       
        DATABASE::"Ship-to Address":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Customer No."
            IF Customer.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Customer);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      
      // Add the following lines.
        DATABASE::"Currency Exchange Rate":
          BEGIN
            FieldRef1 := RecRef.FIELD(1); // "Currency Code"
            IF Currency.GET(FieldRef1.VALUE) THEN BEGIN
              ParentRecRef.GETTABLE(Currency);
              InsertUpdateIntegrationRecord(ParentRecRef,TimeStamp);
            END;
          END;
      // End of the lines.
      
      END;
    17. Modificare il codice del EnableConnector il funzionamento della codeunit di gestione dell'integrazione (5150) come segue:
      Codice esistente
      ...
      SetupWebServicePages(FORM::"Ship-to Address",DATABASE::"Ship-to Address");
      SetupWebServicePages(FORM::"Contact Card",DATABASE::Contact);
      
      //Delete the following line.
      SetupWebServicePages(FORM::"Currency Exchange Rates",DATABASE::"Currency Exchange Rate");
      
      SetupWebServicePages(FORM::"Customer Disc. Groups",DATABASE::"Customer Discount Group");
      SetupWebServicePages(FORM::"Item Disc. Groups",DATABASE::"Item Discount Group");
      ...
      Codice di sostituzione
      ...
      SetupWebServicePages(FORM::"Ship-to Address",DATABASE::"Ship-to Address");
      SetupWebServicePages(FORM::"Contact Card",DATABASE::Contact);
      SetupWebServicePages(FORM::"Customer Disc. Groups",DATABASE::"Customer Discount Group");
      SetupWebServicePages(FORM::"Item Disc. Groups",DATABASE::"Item Discount Group");
      ...
    18. Modificare il codice del SetupIntegrationTable il funzionamento della codeunit di gestione dell'integrazione (5150) come segue:
      Codice esistente
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      
      //Delete the following line.
      InitializeIntegrationRecords(DATABASE::"Currency Exchange Rate");
      
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
      Codice di sostituzione
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. Modificare il codice del IsIntergrationRecord il funzionamento della codeunit di gestione dell'integrazione (5150) come segue:
      Codice esistente
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      
      //Delete the following line.
      DATABASE::"Currency Exchange Rate",
      
      DATABASE::"Customer Discount Group",
      ...
      Codice di sostituzione
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. Modificare il codice del IsIntegrationRecordChild il funzionamento della codeunit di gestione dell'integrazione (5150) come segue:
      Codice esistente
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
      Codice di sostituzione
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
      
         // Add the following line.
         DATABASE::"Currency Exchange Rate",
      
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. Installare il connettore per Microsoft Dynamics Feature Pack 6.
    NotaDopo aver installato il connettore per Microsoft Dynamics Feature Pack 6, deve disattivare la mappa "Tassi di cambio valuta NAV per valuta" nel connettore importare la nuova mappa "NAV valute per valuta", eseguire nuovamente la configurazione della scheda barra di spostamento e quindi attivare la nuova mappa.

Prerequisiti

╚ necessario disporre di Microsoft Dynamics NAV 2009 R2 per applicare questo hotfix.

Informazioni sulla rimozione

Non Ŕ possibile rimuovere questo hotfix.

Status

Microsoft ha confermato che si tratta di un problema con i prodotti elencati nella sezione "Si applica a".
Nota Si tratta di un articolo "FAST pubblica" creato direttamente da all'interno dell'organizzazione di supporto tecnico Microsoft. Le informazioni contenute nel presente documento viene fornite come-Ŕ in risposta ai problemi emergenti. Di conseguenza la velocitÓ nel rendendoli disponibili, i materiali possono includere errori di battitura e possono essere modificati in qualsiasi momento senza preavviso. Vedere Termini di utilizzo per altre considerazioni.

ProprietÓ

Identificativo articolo: 2597312 - Ultima modifica: martedý 30 agosto 2011 - Revisione: 3.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Dynamics NAV 2009
Chiavi:á
kbqfe kbmbsmigrate kbmbscodefix kberrmsg kbsurveynew kbmt KB2597312 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 2597312
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com