Beberapa jumlah dibuat untuk entri buku besar item di Microsoft Dynamics NAV

Berlaku Untuk
Dynamics NAV 2009

Artikel yang diterbitkan dengan cepat menyediakan informasi langsung dari dalam organisasi dukungan Microsoft. Informasi yang dimuat di sini dibuat sebagai respons terhadap topik yang muncul atau unik, atau dimaksudkan untuk melengkapi informasi Basis Pengetahuan lainnya.
 Microsoft Business Solutions-Navision 4.0 dan Microsoft Navision 4.0 kini menjadi bagian dari Microsoft Dynamics NAV 4.0. Semua referensi ke Microsoft Business Solutions-Navision atau microsoft Navision 4.0 terkait dengan Microsoft Dynamics NAV.

Artikel ini berlaku untuk Microsoft Dynamics NAV untuk semua kawasan.

Gejala

Pertimbangkan skenario berikut:

  • Anda membuat dua baris pelacakan item yang memiliki nomor seri yang ditentukan untuk item SNALL dalam kotak dialog Baris Pelacakan Item .
  • Ubah nomor seri dalam baris agar sama dengan nomor seri di baris lain.
  • Anda menutup kotak dialog Baris Pelacakan Item tanpa meninggalkan bidang SeriAl No.

Dalam skenario ini, Microsoft Dynamics NAV menerima nomor seri duplikat dan kuantitas untuk nomor seri diubah menjadi dua. Oleh karena itu, beberapa kuantitas dibuat untuk entri buku besar item.

Masalah ini terjadi pada produk berikut ini:

  • Microsoft Dynamics NAV 2009 Paket Layanan 1 (SP1)
  • Microsoft Dynamics NAV 5.0 Paket Layanan 1 (SP1)
  • Microsoft Dynamics NAV 4.0 Paket Layanan 3 (SP3)

Resolusi

Informasi hotfix

Hotfix yang didukung kini tersedia dari Microsoft. Namun, hanya dimaksudkan untuk memperbaiki masalah yang dijelaskan dalam artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Hotfix ini mungkin menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terpengaruh oleh masalah ini, kami menyarankan agar Anda menunggu paket layanan Microsoft Dynamics NAV berikutnya atau versi Microsoft Dynamics NAV berikutnya yang berisi hotfix ini.

Catatan Dalam kasus khusus, biaya yang biasanya ditimbulkan untuk panggilan dukungan mungkin dibatalkan jika Profesional Dukungan Teknis untuk Microsoft Dynamics dan produk terkait menentukan bahwa pembaruan tertentu akan mengatasi masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah dukungan tambahan yang tidak memenuhi syarat untuk pembaruan tertentu yang dimaksud.

            
          

Informasi penginstalan

Microsoft menyediakan contoh pemrograman untuk ilustrasi saja, tanpa jaminan baik tersurat maupun tersirat. Ini termasuk, tetapi tidak terbatas pada, jaminan tersirat dari kelayakan jual atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan men-debug prosedur. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh ini untuk menyediakan fungsionalitas tambahan atau prosedur konstruksi untuk memenuhi persyaratan tertentu Anda.

Catatan Sebelum Anda menginstal hotfix ini, verifikasi bahwa semua pengguna klien Microsoft Navision telah keluar dari sistem. Ini termasuk pengguna klien Microsoft Navision Application Services (NAS). Anda harus menjadi satu-satunya pengguna klien yang masuk ketika Anda menerapkan hotfix ini.

Untuk menerapkan hotfix ini, Anda harus memiliki lisensi pengembang.

Kami menyarankan agar akun pengguna di jendela Windows Logins atau di jendela Login Database diberi ID peran "SUPER". Jika akun pengguna tidak dapat ditetapkan sebagai ID peran "SUPER", Anda harus memverifikasi bahwa akun pengguna memiliki izin berikut:

  • Izin Ubah untuk objek yang akan Anda ubah.
  • Izin Jalankan untuk objek System Object ID 5210 dan untuk objek System Object ID 9015.

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

Perubahan kode

Catatan Selalu uji perbaikan kode di lingkungan terkontrol sebelum Anda menerapkan perbaikan pada komputer produksi Anda.
Untuk mengatasi masalah ini di Microsoft Dynamics NAV 2009 SP1, ubah kode di pemicu OnModifyRecord dalam formulir Baris Pelacakan Item (6510) dan di halaman Baris Pelacakan Item (6510) sebagai berikut:

Kode yang sudah ada

...
// Delete the following line.
                     IF NOT TestTempSpecificationExists THEN

                       MODIFY;

                     IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                       xTempTrackingSpec := xRec;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                     END;

                     IF TempItemTrackLineModify.GET("Entry No.") THEN
                       TempItemTrackLineModify.DELETE;
                     IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                       TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                       TempItemTrackLineInsert.MODIFY;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END ELSE BEGIN
                       TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                       TempItemTrackLineModify.INSERT;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END;
                     CalculateSums;
...

Kode pengganti

...
// Add the following line.
                     IF NOT TestTempSpecificationExists THEN BEGIN          

                       MODIFY;

                       IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                         xTempTrackingSpec := xRec;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                       END;

                       IF TempItemTrackLineModify.GET("Entry No.") THEN
                         TempItemTrackLineModify.DELETE;
                       IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                         TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                         TempItemTrackLineInsert.MODIFY;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END ELSE BEGIN
                         TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                         TempItemTrackLineModify.INSERT;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END;

// Add the following line.
                     END;                                                                                                 

// Tab over two space to the left for the following line.
                     CalculateSums; 
...

Untuk mengatasi masalah ini di Microsoft Dynamics NAV 5.0 SP1, ubah kode di pemicu OnModifyRecord dalam formulir Baris Pelacakan Item (6510) sebagai berikut:

Kode yang sudah ada

...
// Delete the following line.
                     IF NOT TestTempSpecificationExists THEN

                       MODIFY;

                     IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                       xTempTrackingSpec := xRec;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                     END;

                     IF TempItemTrackLineModify.GET("Entry No.") THEN
                       TempItemTrackLineModify.DELETE;
                     IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                       TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                       TempItemTrackLineInsert.MODIFY;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END ELSE BEGIN
                       TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                       TempItemTrackLineModify.INSERT;
                       ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                         TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                     END;
                     CalculateSums;
...

Kode pengganti

...
// Add the following line.
                     IF NOT TestTempSpecificationExists THEN BEGIN          

                       MODIFY;

                       IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
                         xTempTrackingSpec := xRec;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
                       END;

                       IF TempItemTrackLineModify.GET("Entry No.") THEN
                         TempItemTrackLineModify.DELETE;
                       IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
                         TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
                         TempItemTrackLineInsert.MODIFY;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END ELSE BEGIN
                         TempItemTrackLineModify.TRANSFERFIELDS(Rec);
                         TempItemTrackLineModify.INSERT;
                         ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
                           TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
                       END;

// Add the following line.
                     END;                                                                                                 

// Tab over two space to the left for the following line.
                     CalculateSums;    
...

Untuk mengatasi masalah ini di Microsoft Dynamics NAV 4.0 SP3, ubah kode di pemicu OnModifyRecord dalam formulir Baris Pelacakan Item (6510) sebagai berikut:

Kode yang sudah ada

...
// Delete the following line.
IF NOT TestTempSpecificationExists THEN

    TempTrackingSpec.MODIFY;

IF TempItemTrackLineModify.GET(TempTrackingSpec."Entry No.") THEN
  TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET(TempTrackingSpec."Entry No.") THEN BEGIN
  TempItemTrackLineInsert.TRANSFERFIELDS(TempTrackingSpec);
  TempItemTrackLineInsert.MODIFY;
END ELSE BEGIN
  TempItemTrackLineModify.TRANSFERFIELDS(TempTrackingSpec);
  TempItemTrackLineModify.INSERT;
END;

CalculateSums;
...

Kode pengganti

...
// Add the following line.
IF NOT TestTempSpecificationExists THEN BEGIN

    TempTrackingSpec.MODIFY;

// Tab over two spaces for the following lines.
  IF TempItemTrackLineModify.GET(TempTrackingSpec."Entry No.") THEN
    TempItemTrackLineModify.DELETE;
  IF TempItemTrackLineInsert.GET(TempTrackingSpec."Entry No.") THEN BEGIN
    TempItemTrackLineInsert.TRANSFERFIELDS(TempTrackingSpec);
    TempItemTrackLineInsert.MODIFY;
  END ELSE BEGIN
    TempItemTrackLineModify.TRANSFERFIELDS(TempTrackingSpec);
    TempItemTrackLineModify.INSERT;
  END;
// End of the lines.

// Add the following line.
END;

CalculateSums;
...

Prasyarat

Anda harus memiliki salah satu produk berikut yang terinstal untuk menerapkan hotfix ini:

  • Microsoft Dynamics NAV 2009 Paket Layanan 1
  • Microsoft Dynamics NAV 5.0 Paket Layanan 1
  • Microsoft Dynamics NAV 4.0 Paket Layanan 3

              

Informasi penghapusan

Anda tidak dapat menghapus hotfix ini.

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

MICROSOFT DAN/ATAU PEMASOKNYA TIDAK MEMBUAT PERNYATAAN ATAU JAMINAN TENTANG KESESUAIAN, KEANDALAN, ATAU KEAKURATAN INFORMASI YANG TERDAPAT DALAM DOKUMEN DAN GRAFIK TERKAIT YANG DITERBITKAN DI SITUS WEB INI ("MATERI") UNTUK TUJUAN APA PUN.

MATERI DAPAT MENCAKUP KETIDAKAKURATAN TEKNIS ATAU KESALAHAN TIPOGRAFI DAN DAPAT DIREVISI KAPAN SAJA TANPA PEMBERITAHUAN. SEJAUH DIIZINKAN OLEH HUKUM YANG BERLAKU, MICROSOFT DAN/ATAU PEMASOKNYA MENYANGKAL DAN MENGECUALIKAN SEMUA PERNYATAAN, JAMINAN, DAN KETENTUAN BAIK TERSURAT, TERSIRAT MAUPUN WAJIB, TERMASUK NAMUN TIDAK TERBATAS PADA REPRESENTASI, JAMINAN, ATAU KETENTUAN JABATAN, NON-PELANGGARAN, KONDISI ATAU KUALITAS YANG MEMUASKAN, KELAYAKAN UNTUK DIPERDAGANGKAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU, SEHUBUNGAN DENGAN MATERI.