Währungswechselkurse werden nicht korrekt aktualisiert, wenn Sie Microsoft Dynamics NAV 2009 R2 Microsoft Dynamics CRM integrieren, durch die Verwendung des Connectors für Microsoft Dynamics

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 2597312 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel bezieht sich auf Microsoft Dynamics NAV für alle Länder und alle Gebietsschemas.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Genommen Sie an, Sie über den Connector für Microsoft Dynamics Feature Pack 5 Microsoft Dynamics CRM mit Microsoft Dynamics NAV 2009 R2 integrieren. In bestimmten Szenarien werden Währungswechselkurse in Microsoft Dynamics CRM nicht ordnungsgemäß aktualisiert.
Wenn Sie die Wechselkurse in Microsoft Dynamics NAV 2009 R2 aktualisieren, die folgende Fehlermeldung angezeigt (sinngemäß):
[Währungswechselkurse Währung] Fehler beim Verarbeiten der ?
TransactionCurrency mit der ID = <guid>ist nicht vorhanden.</guid>
In diesem Fall wird nur der erste Datensatz der Währungswechselkurse mit Microsoft Dynamics CRM synchronisiert. Dieser Fehler tritt auf, wenn das System die nachfolgende Datensätze, die in der Tabelle Währungswechselkurs mit späteren Anfangstermin eingegeben werden synchronisiert.

Ursache

Dieses Problem tritt auf, weil der zuletzt geänderten Wechselkurs, anstatt den aktuellen Wechselkurs für die bestimmte Währung mit Microsoft Dynamics CRM synchronisiert werden, mithilfe des Connectors für Microsoft Dynamics.

Lösung

Hotfix-Informationen

Ein unterstützter Hotfix ist jetzt von Microsoft verfügbar. Es ist jedoch lediglich das Problem zu beheben, das in diesem Artikel beschrieben wird. Wenden Sie es nur auf Systemen, bei die dieses spezielle Problem auftritt. Dieser Hotfix möglicherweise weiteren Tests unterzogen. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten auf das nächste Servicepack für Microsoft Dynamics NAV 2009 oder die nächste Version von Microsoft Dynamics NAV, die diesen Hotfix enthält.

Hinweis In besonderen Fällen, die normalerweise für Support-Anrufe Wenn ein Support-Experte für Microsoft Dynamics und zugehörige Produkte storniert werden fallen Gebühren feststellt, dass ein bestimmtes Update Ihr Problem beheben kann. Die normalen Supportkosten gelten für zusätzliche Supportfragen und Probleme, die für das betreffende Update nicht qualifizieren.

Informationen zur Installation

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne Gewährleistung, ausdrücklich oder konkludent. Dies umfasst, aber ist nicht beschränkt auf KONKLUDENTEN GEWÄHRLEISTUNGEN der Tauglichkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der Programmiersprache, die von Beispielen verwendeten und vertraut mit den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können der Erläuterung der Funktionalität bestimmter Prozeduren helfen werden, jedoch nicht verändern sie diese Beispiele zur eine erweiterte Funktionalität und Programmierungsbeispiele für Ihre spezifischen Anforderungen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Navision-Clientbenutzer vom System abgemeldet sind. Dazu gehören Microsoft Navision Application Services (NAS) Client-Benutzer. Sie sollten den nur-Client-Benutzer sein, der angemeldet ist, wenn Sie diesen Hotfix installieren.

Sie müssen über eine Entwicklerlizenz verfügen, um diesen Hotfix zu installieren, können.

Es wird empfohlen, dass das Benutzerkonto im Fenster Windows Anmeldungen oder im Fenster Datenbankanmeldungen den Rollen-ID "SUPER" zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:
  • Änderungsberechtigung für das Objekt, das Sie ändern.
  • Die Execute-Berechtigung für die System Object ID 5210 Objekt und für die System Object ID 9015 -Objekt.


Hinweis Sie haben keine Rechte für die Datenspeicher verfügen, es sei denn, es sind Datenreparaturen durchzuführen.

Änderungen am Code

Hinweis Codefixes immer Test in einer kontrollierten Umgebung vor der Anwendung der auf Ihre Produktionsumgebung.
Um dieses Problem zu beheben, gehen Sie folgendermaßen vor:
  1. Gelten Sie die folgenden Codeänderungen in Microsoft Dynamics NAV 2009 R2:
    1. Erstellen Sie eine neue GetCurrencyFactor Funktion in der Tabelle Währungswechselkurs (330) wie folgt:
      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. Erstellen Sie eine neue SetCurrencyFactor Funktion in der Tabelle Währungswechselkurs (330) wie folgt:
      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. Fügen Sie eine neue globale Variable im Formular Währungen (5), und geben Sie die Variable wie folgt:
      • Name: CurrencyFactor
      • DataType: Decimal
    4. Fügen Sie die Währungsfaktor Feld (46) des Formulars "Währungen" (5).
    5. Fügen Sie eine neue lokale Variable in der Währungsfaktor - OnValidate Trigger im Formular Währungen (5), und geben Sie die Variable wie folgt:
      • Name: CurrencyExchangeRate
      • DataType: Datensatz
      • Untertyp: Wechselkurs
    6. Fügen Sie folgenden Code in den Währungsfaktor - OnValidate Trigger im Formular Währungen (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. Fügen Sie eine neue lokale Variable in der "OnAfterGetRecord" Trigger im Formular Währungen (5), und geben Sie die Variable wie folgt:
      • Name: CurrencyExchangeRate
      • DataType: Datensatz
      • Untertyp: Wechselkurs
    8. Fügen Sie folgenden Code in den "OnAfterGetRecord" Trigger im Formular Währungen (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. Fügen Sie eine neue globale Variable Seite Währungen (5), und geben Sie die Variable wie folgt:
      • Name: CurrencyFactor
      • DataType: Decimal
    10. Fügen Sie die Währungsfaktor Feld Seite Währungen (5), und geben Sie das Feld wie folgt:
      • Name: CurrencyFactor
      • Beschriftung: Währungsfaktor
      • Typ: Feld
      • SourceExpr: CurrencyFactor
    11. Fügen Sie eine neue lokale Variable in der Währungsfaktor - OnValidate Lösen Sie der Seite Währungen (5 aus), und geben Sie die Variable wie folgt:
      • Name: CurrencyExchangeRate
      • DataType: Datensatz
      • Untertyp: Wechselkurs
    12. Fügen Sie folgenden Code in den Währungsfaktor - OnValidate Auslösen der Seite Währungen (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. Fügen Sie eine neue lokale Variable in der "OnAfterGetRecord" Lösen Sie der Seite Währungen (5 aus), und geben Sie die Variable wie folgt:
      • Name: CurrencyExchangeRate
      • DataType: Datensatz
      • Untertyp: Wechselkurs
    14. Fügen Sie folgenden Code in den "OnAfterGetRecord" Auslösen der Seite Währungen (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. Fügen Sie eine neue lokale Variable in der UpdateParentIntegrationRecord Funktion in der Integration von Management-Codeunit (5150), und geben Sie die Variable wie folgt:
      • Name: Währung
      • DataType: Datensatz
      • Untertyp: Währung
    16. Ändern Sie den Code in die UpdateParentIntegrationRecord Funktion in der Integration von Management-Codeunit (5150) wie folgt:
      Vorhandener code
      ...
        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;
      Neuer code
      ...
       
        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. Ändern Sie den Code in die EnableConnector Funktion in der Integration von Management-Codeunit (5150) wie folgt:
      Vorhandener code
      ...
      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");
      ...
      Neuer code
      ...
      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. Ändern Sie den Code in die SetupIntegrationTable Funktion in der Integration von Management-Codeunit (5150) wie folgt:
      Vorhandener code
      ...
      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");
      ...
      Neuer code
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. Ändern Sie den Code in die IsIntergrationRecord Funktion in der Integration von Management-Codeunit (5150) wie folgt:
      Vorhandener code
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      
      //Delete the following line.
      DATABASE::"Currency Exchange Rate",
      
      DATABASE::"Customer Discount Group",
      ...
      Neuer code
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. Ändern Sie den Code in die IsIntegrationRecordChild Funktion in der Integration von Management-Codeunit (5150) wie folgt:
      Vorhandener code
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
      Neuer code
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
      
         // Add the following line.
         DATABASE::"Currency Exchange Rate",
      
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. Installieren Sie den Connector für Microsoft Dynamics FeaturePack 6.
    HinweisNach der Installation des Connectors für Microsoft Dynamics Feature Pack 6 müssen Sie deaktivieren die Karte "NAV Währung Wechselkurse zu Währung" im Anschluss und das neue "NAV Währungen auf Währung" Schema importieren, NAV Adapterkonfiguration erneut ausführen, und aktivieren Sie die neue Karte.

Voraussetzungen

Sie müssen Microsoft Dynamics NAV 2009 R2 für diesen Hotfix installiert haben.

Informationen zur Deinstallation

Sie können nicht diesen Hotfix entfernen.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten, die im Abschnitt "Gilt für" aufgeführt sind.
Hinweis Dies ist eine "Schnelle veröffentlichen" Artikel direkt in der Microsoft Support-Organisation erstellt. Die hierin enthaltenen Informationen als-ist die Antwort zu aufkommenden Problemen. Aufgrund der Geschwindigkeit in verfügbar zu machen die Materialien können typografische Fehler enthalten und können jederzeit ohne vorherige Ankündigung geändert werden. Finden Sie unter Nutzungsbedingungen für andere Überlegungen.

Eigenschaften

Artikel-ID: 2597312 - Geändert am: Dienstag, 30. August 2011 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Dynamics NAV 2009
Keywords: 
kbqfe kbmbsmigrate kbmbscodefix kberrmsg kbsurveynew kbmt KB2597312 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 2597312
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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