Nilai tukar mata uang diperbarui salah ketika Anda mengintegrasikan Microsoft Dynamics CRM dengan Microsoft Dynamics NAV 2009 R2 dengan menggunakan konektor untuk Microsoft Dynamics

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2597312 - Melihat produk di mana artikel ini berlaku.
Artikel ini berlaku untuk Microsoft Dynamics NAV untuk semua negara dan semua bahasa lokal.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Asumsikan bahwa Anda mengintegrasikan Microsoft Dynamics CRM dengan Microsoft Dynamics NAV 2009 R2 dengan menggunakan konektor untuk Microsoft Dynamics fitur paket 5. Dalam skenario tertentu, nilai tukar mata uang diperbarui salah dalam Microsoft Dynamics CRM.
Ketika Anda memperbarui nilai tukar mata uang di Microsoft Dynamics NAV 2009 R2, Anda menerima pesan galat berikut:
[Nilai tukar mata uang ke mata uang] mengalami kesalahan saat memproses...
TransactionCurrency dengan ID = <guid>tidak ada.</guid>
Dalam situasi ini, hanya catatan pertama nilai tukar mata uang yang disinkronisasi dengan Microsoft Dynamics CRM. Ketika sistem mensinkronisasi Catatan berikutnya yang dimasukkan ke dalam nilai tukar mata uang tabel dengan kemudian mulai tanggal, galat ini terjadi.

PENYEBAB

Masalah ini terjadi karena terakhir berubah mata uang kurs, bukan nilai tukar saat ini untuk mata uang tertentu, disinkronisasi dengan Microsoft Dynamics CRM dengan menggunakan konektor untuk Microsoft Dynamics.

PEMECAHAN MASALAH

Informasi hotfix

Saat ini tersedia hotfix yang didukung dari Microsoft. Namun, hanya ditujukan untuk memperbaiki masalah yang dijelaskan pada artikel ini. Gunakan hanya pada sistem yang mengalami masalah khusus ini. Hotfix ini akan menerima pengujian tambahan. Oleh karena itu, jika Anda sama sekali tidak dipengaruhi oleh masalah ini, kami menganjurkan Anda menunggu paket layanan Microsoft Dynamics NAV 2009 atau versi Microsoft Dynamics NAV berikutnya yang berisi perbaikan terbaru ini.

Catatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan mungkin dibatalkan apabila profesional dukungan teknis untuk Microsoft Dynamics dan produk-produk terkait dukungan menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan dikenakan untuk pertanyaan dan masalah dukungan tambahan yang tidak termasuk pada pemutakhiran tertentu yang dimaksud.

Informasi penginstalan

Microsoft menyediakan contoh pemrograman hanya sebagai ilustrasi, tanpa jaminan apa pun baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, jaminan tersirat mengenai keadaan yang dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda telah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan mendebug prosedur. Teknisi Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh tersebut untuk menyediakan fungsionalitas tambahan atau membuat prosedur untuk memenuhi kebutuhan spesifik Anda.

Catatan Sebelum Anda menginstal perbaikan terbaru ini, pastikan bahwa semua Microsoft Navision klien pengguna log dari sistem. Ini termasuk Microsoft Navision aplikasi layanan (NAS) klien pengguna. Anda harus klien hanya pengguna yang logon saat Anda menerapkan perbaikan terbaru ini.

Untuk menerapkan perbaikan terbaru ini, Anda harus memiliki lisensi pengembang.

Kami merekomendasikan bahwa account pengguna di jendela Windows login atau di jendela login Database ditetapkan peran ID yang "SUPER". Jika account pengguna tidak dapat ditugaskan "SUPER" peran ID, Anda harus memastikan bahwa account pengguna memiliki izin yang berikut:
  • Ubah izin untuk objek yang Anda akan berubah.
  • Izin mengeksekusi untuk Sistem objek ID 5210 objek dan untuk Sistem objek ID 9015 objek.


Catatan Anda tidak harus memiliki hak untuk data toko kecuali Anda telah melakukan perbaikan data.

Perubahan kode

Catatan Selalu menguji kode perbaikan dalam lingkungan yang terkendali sebelum Anda menerapkan perbaikan untuk komputer produksi.
Untuk mengatasi masalah ini, ikuti langkah-langkah berikut:
  1. Menerapkan perubahan kode berikut dalam Microsoft Dynamics NAV 2009 R2:
    1. Buat baru GetCurrencyFactor fungsi dalam nilai tukar mata uang tabel (330) sebagai berikut:
      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. Buat baru SetCurrencyFactor fungsi dalam nilai tukar mata uang tabel (330) sebagai berikut:
      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. Menambahkan variabel global yang baru dalam bentuk mata uang (5), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: CurrencyFactor
      • Datatype: Desimal
    4. Tambahkan Faktor mata uang bidang (46) dalam bentuk mata uang (5).
    5. Menambahkan variabel lokal baru di Mata uang faktor - OnValidate memicu dalam bentuk mata uang (5), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: CurrencyExchangeRate
      • DataType: Catatan
      • Subtipe: Nilai tukar mata uang
    6. Tambahkan kode berikut dalam Mata uang faktor - OnValidate memicu dalam bentuk mata uang (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    7. Menambahkan variabel lokal baru di OnAfterGetRecord memicu dalam bentuk mata uang (5), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: CurrencyExchangeRate
      • DataType: Catatan
      • Subtipe: Nilai tukar mata uang
    8. Tambahkan kode berikut dalam OnAfterGetRecord memicu dalam bentuk mata uang (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    9. Menambahkan variabel global yang baru di halaman mata uang (5), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: CurrencyFactor
      • Datatype: Desimal
    10. Tambahkan Faktor mata uang bidang dalam mata uang halaman (5), dan kemudian menetapkan bidang sebagai berikut:
      • Nama: CurrencyFactor
      • Keterangan: Faktor mata uang
      • Jenis: Lapangan
      • SourceExpr: CurrencyFactor
    11. Menambahkan variabel lokal baru di Mata uang faktor - OnValidate memicu dalam mata uang halaman (5), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: CurrencyExchangeRate
      • DataType: Catatan
      • Subtipe: Nilai tukar mata uang
    12. Tambahkan kode berikut dalam Mata uang faktor - OnValidate memicu dalam mata uang halaman (5):
      CurrencyExchangeRate.SetCurrentCurrencyFactor(Code,CurrencyFactor);
    13. Menambahkan variabel lokal baru di OnAfterGetRecord memicu dalam mata uang halaman (5), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: CurrencyExchangeRate
      • DataType: Catatan
      • Subtipe: Nilai tukar mata uang
    14. Tambahkan kode berikut dalam OnAfterGetRecord memicu dalam mata uang halaman (5):
      CurrencyFactor := CurrencyExchangeRate.GetCurrentCurrencyFactor(Code);
    15. Menambahkan variabel lokal baru di UpdateParentIntegrationRecord fungsi dalam codeunit integrasi manajemen (5150), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: Mata uang
      • DataType: Catatan
      • Subtipe: Mata uang
    16. Mengubah kode UpdateParentIntegrationRecord fungsi dalam codeunit integrasi manajemen (5150) sebagai berikut:
      Kode yang ada
      ...
        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;
      Penggantian kode
      ...
       
        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. Mengubah kode EnableConnector fungsi dalam codeunit integrasi manajemen (5150) sebagai berikut:
      Kode yang ada
      ...
      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");
      ...
      Penggantian kode
      ...
      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. Mengubah kode SetupIntegrationTable fungsi dalam codeunit integrasi manajemen (5150) sebagai berikut:
      Kode yang ada
      ...
      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");
      ...
      Penggantian kode
      ...
      InitializeIntegrationRecords(DATABASE::"Unit of Measure");
      InitializeIntegrationRecords(DATABASE::"Ship-to Address");
      InitializeIntegrationRecords(DATABASE::Contact);
      InitializeIntegrationRecords(DATABASE::"Customer Discount Group");
      ...
    19. Mengubah kode IsIntergrationRecord fungsi dalam codeunit integrasi manajemen (5150) sebagai berikut:
      Kode yang ada
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      
      //Delete the following line.
      DATABASE::"Currency Exchange Rate",
      
      DATABASE::"Customer Discount Group",
      ...
      Penggantian kode
      ...
      DATABASE::"Unit of Measure",
      DATABASE::"Ship-to Address",
      DATABASE::Contact,
      DATABASE::"Customer Discount Group",
      ...
    20. Mengubah kode IsIntegrationRecordChild fungsi dalam codeunit integrasi Mangement (5150) sebagai berikut:
      Kode yang ada
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
      Penggantian kode
      ...
      IF TableID IN
        [DATABASE::"Sales Line",
      
         // Add the following line.
         DATABASE::"Currency Exchange Rate",
      
         DATABASE::"Sales Invoice Line"]
      THEN
        EXIT(TRUE);
      EXIT(FALSE);
      ...
  2. Pasang konektor untuk Microsoft Dynamics Feature Pack 6.
    CatatanSetelah Anda menginstal konektor untuk Microsoft Dynamics fitur Pack 6, Anda harus menonaktifkan "NAV mata uang kurs mata untuk uang" peta konektor dan impor peta "NAV mata uang mata untuk uang" baru, jalankan kembali konfigurasi NAV Adapter, dan kemudian mengaktifkan peta baru.

Prasyarat

Anda harus memiliki Microsoft Dynamics NAV 2009 R2 terinstal untuk menggunakan perbaikan terbaru ini.

Informasi penghapusan

Anda tidak dapat menghapus perbaikan terbaru ini.

STATUS

Microsoft telah mengkonfirmasi bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana didaftar di dalam bagian "Berlaku untuk".
Catatan Ini adalah "Cepat MEMPUBLIKASIKAN" artikel yang dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang tercantum di sini disediakan sebagai-dalam menanggapi masalah muncul. Sebagai hasil dari kecepatan membuatnya tersedia, bahan-bahan yang mungkin termasuk kesalahan ketik dan dapat direvisi setiap saat tanpa pemberitahuan. Lihat Persyaratan penggunaan untuk pertimbangan lain.

Properti

ID Artikel: 2597312 - Kajian Terakhir: 30 Agustus 2011 - Revisi: 3.0
Berlaku bagi:
  • Microsoft Dynamics NAV 2009
Kata kunci: 
kbqfe kbmbsmigrate kbmbscodefix kberrmsg kbsurveynew kbmt KB2597312 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:2597312

Berikan Masukan

 

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