Συναλλαγματικές ισοτιμίες νομισμάτων ενημερώνονται σωστά όταν μπορείτε να ενσωματώσετε το Microsoft Dynamics CRM με το Microsoft Dynamics NAV 2009 R2, χρησιμοποιώντας την υπηρεσία σύνδεσης για Microsoft Dynamics

Αυτό το άρθρο ισχύει για το Microsoft Dynamics NAV για όλες τις χώρες και για όλες τις τοπικές ρυθμίσεις γλώσσας.

Συμπτώματα

Ας υποθέσουμε ότι ενσωματώνουν Microsoft Dynamics CRM με το Microsoft Dynamics NAV 2009 R2, χρησιμοποιώντας την υπηρεσία σύνδεσης για Microsoft Dynamics πακέτου δυνατοτήτων 5. Σε ορισμένα σενάρια, συναλλαγματικές ισοτιμίες νομισμάτων ενημερώνονται σωστά στο Microsoft Dynamics CRM.
Όταν ενημερώσετε τις συναλλαγματικές ισοτιμίες στο Microsoft Dynamics NAV 2009 R2, λαμβάνετε το ακόλουθο μήνυμα λάθους:
[Συναλλαγματικές ισοτιμίες νομισμάτων νόμισμα] αντιμετώπισε ένα σφάλμα κατά την επεξεργασία του...
Νομισματική μονάδα συναλλαγής με Αναγνωριστικό = < GUID > δεν υπάρχει.
Σε αυτήν την περίπτωση, η πρώτη εγγραφή του συναλλαγματικές ισοτιμίες νομισμάτων συγχρονίζεται με το Microsoft Dynamics CRM. Όταν το σύστημα θα συγχρονίζει οι εγγραφές που έχουν καταχωρηθεί στον πίνακα Συν/γματικές Ισοτιμίες με μεταγενέστερη ημερομηνία έναρξης, προκύπτει το σφάλμα.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή η τελευταία αλλαγή Συν/γματικές Ισοτιμίες, αντί για την τρέχουσα συναλλαγματική ισοτιμία για το συγκεκριμένο νόμισμα, συγχρονίζεται με το Microsoft Dynamics CRM, χρησιμοποιώντας την υπηρεσία σύνδεσης για Microsoft Dynamics.

Προτεινόμενη αντιμετώπιση

Πληροφορίες άμεσης επιδιόρθωσης

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV 2009 ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.

Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ενδέχεται να να ακυρωθούν, εάν έναν επαγγελματία τεχνικής υποστήριξης για το Microsoft Dynamics και σχετικά προϊόντα προσδιορίζει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.

Πληροφορίες εγκατάστασης

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, είτε σιωπηρή είτε ρητή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία διαδικασιών και τον εντοπισμό σφαλμάτων σε αυτές. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.

Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, επιβεβαιώστε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Navision έχουν αποσυνδεθεί από το σύστημα. Σε αυτές περιλαμβάνονται οι χρήστες του προγράμματος-πελάτη Microsoft Navision εφαρμογής υπηρεσιών (NAS). Θα πρέπει να το πρόγραμμα-πελάτη μόνο χρήστη που είναι συνδεδεμένος κατά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης.

Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε μια άδεια χρήσης του προγραμματιστή.

Συνιστούμε ότι ο λογαριασμός χρήστη στο παράθυρο "Συνδέσεις Windows" ή στο παράθυρο συνδέσεις βάσης δεδομένων να αντιστοιχιστεί το "SUPER" αναγνωριστικό ρόλου. Εάν ο λογαριασμός χρήστη δεν μπορεί να αντιστοιχιστεί το Αναγνωριστικό ρόλου "SUPER", πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:
  • Το δικαίωμα "Τροποποίηση" για το αντικείμενο που θα αλλάξετε.
  • Τα δικαιώματα εκτέλεσης για το αντικείμενο 5210 Αναγνωριστικό αντικειμένου συστήματος και για το αντικείμενο 9015 Αναγνωριστικό αντικειμένου συστήματος .


Σημείωση Δεν πρέπει να έχετε δικαιώματα για τους χώρους αποθήκευσης δεδομένων, εκτός και αν έχετε να εκτελέσετε επιδιόρθωση δεδομένων.

Αλλαγές κώδικα

Σημείωση Πάντα δοκιμή κώδικα διορθώνει σε ελεγχόμενο περιβάλλον πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:
  1. Ισχύουν οι ακόλουθες αλλαγές κώδικα στο Microsoft Dynamics NAV 2009 R2:
    1. Δημιουργήστε μια νέα συνάρτηση GetCurrencyFactor στον πίνακα Συν/γματικές Ισοτιμίες (330) ως εξής:
      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. Δημιουργήστε μια νέα συνάρτηση SetCurrencyFactor στον πίνακα Συν/γματικές Ισοτιμίες (330) ως εξής:
      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. Προσθέστε μια νέα καθολική μεταβλητή με τη μορφή νομισμάτων (5) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: CurrencyFactor
      • Τύπος δεδομένων: δεκαδικών
    4. Προσθέστε το πεδίο Συντελεστής Νομίσματος (46) με τη μορφή νομισμάτων (5).
    5. Προσθέσετε μια νέα τοπική μεταβλητή του εναύσματος Συντελεστής νομίσματος - με την επικύρωση της φόρμας νομισμάτων (5) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: CurrencyExchangeRate
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: Συν/γματικές Ισοτιμίες
    6. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα Συντελεστής νομίσματος - με την επικύρωση της φόρμας νομισμάτων (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. Προσθέστε μια νέα τοπική μεταβλητή του εναύσματος OnAfterGetRecord με τη μορφή νομισμάτων (5), και στη συνέχεια καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: CurrencyExchangeRate
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: Συν/γματικές Ισοτιμίες
    8. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα OnAfterGetRecord με τη μορφή νομισμάτων (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. Προσθέστε μια νέα καθολική μεταβλητή στη σελίδα νομισμάτων (5) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: CurrencyFactor
      • Τύπος δεδομένων: δεκαδικών
    10. Προσθέστε το πεδίο Συντελεστής Νομίσματος στη σελίδα νομισμάτων (5), και στη συνέχεια καθορίστε το πεδίο ως εξής:
      • Όνομα: CurrencyFactor
      • Λεζάντα: Συντελεστής Νομίσματος
      • Τύπος: το πεδίο
      • SourceExpr: CurrencyFactor
    11. Προσθέσετε μια νέα τοπική μεταβλητή με το Συντελεστής νομίσματος - με την επικύρωση έναυσμα στη σελίδα νομισμάτων (5) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: CurrencyExchangeRate
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: Συν/γματικές Ισοτιμίες
    12. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα Συντελεστής νομίσματος - με την επικύρωση στη σελίδα νομισμάτων (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. Προσθέσετε μια νέα τοπική μεταβλητή του εναύσματος OnAfterGetRecord στη σελίδα νομισμάτων (5) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: CurrencyExchangeRate
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: Συν/γματικές Ισοτιμίες
    14. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα OnAfterGetRecord στη σελίδα νομισμάτων (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. Προσθέσετε μια νέα τοπική μεταβλητή στη συνάρτηση UpdateParentIntegrationRecord στη διαχείριση και ολοκλήρωση μονάδας κώδικα (5150) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: Νομισματική μονάδα
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: Νομισματική μονάδα
    16. Αλλάξτε τον κωδικό στη συνάρτηση UpdateParentIntegrationRecord στη διαχείριση και ολοκλήρωση μονάδας κώδικα (5150) ως εξής:
      Υπάρχοντα κώδικα
      ...  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;
      Αντικατάσταση κώδικα
      ... 
      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. Αλλάξτε τον κωδικό στη συνάρτηση EnableConnector στη διαχείριση και ολοκλήρωση μονάδας κώδικα (5150) ως εξής:
      Υπάρχοντα κώδικα
      ...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");
      ...
      Αντικατάσταση κώδικα
      ...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. Αλλάξτε τον κωδικό στη συνάρτηση SetupIntegrationTable στη διαχείριση και ολοκλήρωση μονάδας κώδικα (5150) ως εξής:
      Υπάρχοντα κώδικα
      ...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");
      ...
      Αντικατάσταση κώδικα
      ...InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. Αλλάξτε τον κωδικό στη συνάρτηση IsIntergrationRecord στη διαχείριση και ολοκλήρωση μονάδας κώδικα (5150) ως εξής:
      Υπάρχοντα κώδικα
      ...DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,

      //Delete the following line.
      DATABASE::"Currency Exchange Rate",

      DATABASE::"Customer Discount Group",
      ...
      Αντικατάσταση κώδικα
      ...DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. Αλλάξτε τον κωδικό στη συνάρτηση IsIntegrationRecordChild στη μονάδα κώδικα ενσωμάτωσης διαχειρίσεως (5150) ως εξής:
      Υπάρχοντα κώδικα
      ...IF TableID IN
      [DATABASE::"Sales Line",
      DATABASE::"Sales Invoice Line"]
      THEN
      EXIT(TRUE);
      EXIT(FALSE);
      ...
      Αντικατάσταση κώδικα
      ...IF TableID IN
      [DATABASE::"Sales Line",

      // Add the following line.
      DATABASE::"Currency Exchange Rate",

      DATABASE::"Sales Invoice Line"]
      THEN
      EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. Εγκαταστήσετε την υπηρεσία σύνδεσης για το πακέτο δυνατοτήτων του Microsoft Dynamics 6.
    Σημείωση Μετά την εγκατάσταση της υπηρεσίας σύνδεσης για το Microsoft Dynamics δυνατότητα Pack 6, θα πρέπει να απενεργοποιήσετε το χάρτη "NAV νόμισμα συναλλαγματικών ισοτιμιών για Currency" με τη σύνδεση εισαγάγετε το νέο χάρτη "NAV νομίσματα με Νόμισμα", εκτελέστε πάλι τη ρύθμιση παραμέτρων προσαρμογέα NAV και, στη συνέχεια, να ενεργοποιήσετε τη νέα αντιστοίχιση.

Προϋποθέσεις

Πρέπει να έχετε Microsoft Dynamics NAV 2009 R2 για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.

Πληροφορίες κατάργησης

Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Σημείωση Αυτό είναι ένα άρθρο "ΤΑΧΕΙΑΣ ΔΗΜΟΣΙΕΥΣΗΣ" που έχει δημιουργηθεί απευθείας από την εταιρεία υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν έγγραφο παρέχονται ως έχουν, ως απάντηση σε ζητήματα που προέκυψαν. Ως αποτέλεσμα της ταχύτητας διαθεσιμότητάς του, το υλικό ενδέχεται να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί οποιαδήποτε στιγμή, χωρίς προειδοποίηση. Για άλλα θέματα, ανατρέξτε στην ενότητα " Όροι χρήσης ".
Ιδιότητες

Αναγνωριστικό άρθρου: 2597312 - Τελευταία αναθεώρηση: 11 Ιαν 2017 - Αναθεώρηση: 2

Σχόλια