Pola dasar: CPR - Navision kode perbaikan Template

BUG #: 195033 (pemeliharaan konten)

Artikel ini berlaku untuk Microsoft Dynamics NAV untuk semua negara dan semua bahasa lokal.

Gejala

Setelah Anda menerapkan perbaikan terbaru 2292157 dan 2764340 untuk Microsoft Dynamics NAV 2009, bentuk Menerapkan pelanggan entri dan bentuk Menerapkan Vendor entri menampilkan nilai-nilai yang salah di kolom keseimbangan dan Pmt. cakram. Jumlah kolom.

Masalah ini terjadi di dalam produk berikut ini:

  • Microsoft Dynamics NAV 2009 Service Pack 1

  • Microsoft Dynamics NAV 2009 R2

Untuk informasi selengkapnya tentang hotfix 2292157 dan 2764340, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

2292157 kolom "Saldo" dan "Pmt. disk. Jumlah"kolom dalam bentuk menerapkan pelanggan entri dan dalam bentuk menerapkan Vendor entri menunjukkan nilai yang salah apabila Anda menerapkan pembayaran beberapa dokumen terbuka di Microsoft Dynamics NAV

2764340 vendor entri masih dipilih meskipun Anda Bersihkan entri vendor sebelumnya dalam bentuk "Menerapkan Vendor entri" di Microsoft Dynamics NAV 2009

Pemecahan masalah

Informasi Hotfix

Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, hanya ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini dapat menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami sarankan 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 berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.

Apabila hotfix ini tidak dikirimkan untuk unduhan publik (berarti URL publik untuk hotfix ini tidak disediakan dalam artikel ini), distribusi memerlukan arahan teknis, eskalasi anggota tim, atau persetujuan manajer dan informasi berikut ini berlaku:

  • Untuk menerima hotfix, pelanggan harus mengalami bug yang disebutkan di bagian "Gejala".

  • Anda harus melacak sendiri Pelanggan yang Anda kirimi dan memberikan paket layanan berikutnya kepada mereka setelah hotfix tersedia (setelah paket layanan diedarkan).

Hotfix ini tidak dijadwalkan untuk disertakan dengan paket layanan Microsoft Dynamics NAV.

Informasi penginstalan

Microsoft menyediakan contoh pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, garansi yang tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan terbiasa dengan alat-alat yang digunakan untuk membuat dan prosedur debug. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu. Namun, mereka tidak akan mengubah contoh tersebut untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda.

Catatan Sebelum Anda menginstal perbaikan terbaru ini, verifikasi bahwa semua pengguna klien Microsoft Dynamics NAV log off sistem. Ini termasuk layanan Microsoft Dynamics NAV aplikasi Server (NAS). Anda harus klien hanya pengguna yang masuk saat Anda menerapkan perbaikan terbaru ini.

Untuk menerapkan hotfix ini, Anda harus memiliki lisensi pengembang.

Kami menyarankan bahwa akun pengguna di jendela login Windows atau jendela login Database ditetapkan id peran "SUPER" Jika account pengguna tidak dapat ditetapkan ID peran "SUPER", Anda harus memverifikasi bahwa account pengguna yang memiliki izin berikut ini:

  • Ubah izin untuk objek yang Anda akan berubah.

  • Izin eksekusi untuk objek sistem objek ID 5210 dan sistem objek ID 9015

    objek.

Catatan Anda tidak harus memiliki hak untuk penyimpanan data kecuali jika Anda harus melakukan perbaikan data.

Perubahan kode

Catatan Selalu menguji kode perbaikan di lingkungan yang dikontrol sebelum menerapkan perbaikan untuk komputer produksi.

Untuk mengatasi masalah ini, ikuti langkah-langkah berikut:

  1. Ubah kode di fungsi HandlChosenEntries di theApply formulir masukan pelanggan (232) sebagai berikut:
    Kode yang ada 1

    ...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"))
    THEN BEGIN

    // Delete the following lines.
    PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtDisc;
    CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtDisc;
    PossiblePmtDisc := 0;
    // End of the deleted lines.

    AppliedAmount := AppliedAmount + CorrectionAmount;
    END ELSE IF (FromZeroGenJnl) THEN BEGIN
    PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    CurrentAmount := CurrentAmount +
    AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    ...

    Penggantian kode 1

    ...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"))
    THEN BEGIN

    // Add the following lines.
    PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    // End of the added lines.

    AppliedAmount := AppliedAmount + CorrectionAmount;
    END ELSE IF (FromZeroGenJnl) THEN BEGIN
    PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    CurrentAmount := CurrentAmount +
    AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    ...

    Kode yang ada 2

    ...END;
    CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END;
    END ELSE BEGIN

    // Delete the following lines.
    PossiblePmtDisc := AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    IF (((CurrentAmount - PossiblePmtDisc + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN BEGIN
    PmtDiscAmount := PmtDiscAmount + PossiblePmtDisc;
    CurrentAmount := CurrentAmount - PossiblePmtDisc;
    PossiblePmtDisc := 0;
    AppliedAmount := AppliedAmount + CorrectionAmount;
    END;
    // End of the deleted lines.

    CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply";
    END;
    END ELSE BEGIN
    AppliedCustLedgEntryTemp.SETRANGE(Positive);
    AppliedCustLedgEntryTemp.FINDFIRST;
    ...

    Penggantian kode 2

    ...END;
    CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
    AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END;
    END ELSE BEGIN

    // Add the following lines.
    IF (((CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN
    AppliedAmount := AppliedAmount + CorrectionAmount;
    // End of the added lines.

    CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply";
    END;
    END ELSE BEGIN
    AppliedCustLedgEntryTemp.SETRANGE(Positive);
    AppliedCustLedgEntryTemp.FINDFIRST;
    ...
  2. Ubah kode di fungsi HandlChosenEntries dalam bentuk menerapkan Vendor Entries (233) sebagai berikut:
    Kode yang ada 1

    ...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"))
    THEN BEGIN

    // Delete the following lines.
    PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtdisc;
    CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtdisc;
    PossiblePmtdisc := 0;
    // End of the deleted lines.

    AppliedAmount := AppliedAmount + CorrectionAmount;
    END ELSE IF FromZeroGenJnl THEN BEGIN
    PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    CurrentAmount := CurrentAmount +
    AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    ...

    Penggantian kode 1

    ...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"))
    THEN BEGIN

    // Add the following lines.
    PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    // End of the added lines.

    AppliedAmount := AppliedAmount + CorrectionAmount;
    END ELSE IF FromZeroGenJnl THEN BEGIN
    PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    CurrentAmount := CurrentAmount +
    AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    ...

    Kode yang ada 2

    ...END;
    CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END;
    END ELSE BEGIN

    // Delete the following lines.
    PossiblePmtdisc := AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    IF (((CurrentAmount - PossiblePmtdisc + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN BEGIN
    PmtDiscAmount := PmtDiscAmount + PossiblePmtdisc;
    CurrentAmount := CurrentAmount - PossiblePmtdisc;
    PossiblePmtdisc := 0;
    AppliedAmount := AppliedAmount + CorrectionAmount;
    END;
    // End of the deleted lines.

    CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply";
    END;
    END ELSE BEGIN
    AppliedVendLedgEntryTemp.SETRANGE(Positive);
    AppliedVendLedgEntryTemp.FINDFIRST;
    ...

    Penggantian kode 2

    ...END;
    CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
    AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";
    END;
    END ELSE BEGIN

    // Add the following lines.
    IF (((CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN
    AppliedAmount := AppliedAmount + CorrectionAmount;
    // End of the added lines.

    CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply";
    END;
    END ELSE BEGIN
    AppliedVendLedgEntryTemp.SETRANGE(Positive);
    AppliedVendLedgEntryTemp.FINDFIRST;
    ...


Prasyarat

Anda harus memiliki salah satu produk berikut ini diinstal untuk menerapkan perbaikan terbaru ini:

  • Microsoft Dynamics NAV 2009 Service Pack 1

  • Microsoft Dynamics NAV 2009 R2

Informasi penghapusan

Anda tidak dapat menghapus hotfix ini.

Status

Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Referensi

VSFT DynamicsNAVSE: 341702

Catatan Ini adalah artikel "Penerbitan cepat" dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang terkandung di dalamnya disediakan sebagai tanggapan masalah yang muncul. Sebagai akibat dari kecepatan untuk menjadikannya tersedia, materi dapat mengandung kesalahan ketik dan dapat direvisi setiap saat tanpa pemberitahuan. Lihat Ketentuanuntuk pertimbangan lainnya.

Penulis: v-angunt
Writer: v-six
Tech Reviewer:andregu
Editor:

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Seberapa puaskah Anda dengan kualitas terjemahannya?
Apa yang memengaruhi pengalaman Anda?

Terima kasih atas umpan balik Anda!

×