Saran gerakan gudang yang salah dibuat ketika ada satuan konversi pengukuran dalam pergerakan di Microsoft Dynamics NAV 5.0

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

Pertimbangkan skenario berikut di Microsoft Dynamics NAV 5.0:

  • Anda memiliki biner di mana ada item yang menggunakan satuan pengukuran berbeda (UoM).
  • Ada konversi antara dua UoM.
  • Anda memindahkan item dari biner ke biner lain.
  • Konversi UoM diperlukan dalam gerakan.
  • Anda menjalankan fungsi gerakan gudang dalam kotak dialog Lembar Kerja Gerakan untuk item tersebut.

Dalam skenario ini, baris konversi UoM dibuat secara tidak benar dalam saran gerakan gudang.

Gejala

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 2009 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.

Resolusi

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, ikuti langkah-langkah ini:

  1. Ubah kode dalam fungsi CreateTempLine2 di Create Pick codeunit (7312) sebagai berikut:
    Kode yang sudah ada 1

         ...
    
               IF QtytoPick > 0 THEN BEGIN
    
                 QtytoPick :=
    
                   QtytoPick -
    
                   ROUND(
    
                     CalcPickQtyAssigned(
    
    //Delete the following line.
                      LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine) 
    
    
         ...
    

    Kode pengganti 1

         ...
    
               IF QtytoPick > 0 THEN BEGIN
    
                 QtytoPick :=
    
                   QtytoPick -
    
                   ROUND(
    
                     CalcPickQtyAssigned(
    
    //Add the following line.
                      LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine) 
    
         ...
    

    Kode yang sudah ada 2

         ...
    
             IF QtytoPick > 0 THEN BEGIN
    
               QtytoPick :=
    
                 QtytoPick -
    
                 ROUND(
    
                   CalcPickQtyAssigned(
    
    //Delete the following line.
                    LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine) 
    
    
         ...
    

    Kode pengganti 2

         ...
    
             IF QtytoPick > 0 THEN BEGIN
    
               QtytoPick :=
    
                 QtytoPick -
    
                 ROUND(
    
                   CalcPickQtyAssigned(
    
    //Add the following line.
                    LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine) 
    
         ...
    

    Kode yang sudah ada 3

         ...
    
                     QtyPerUnitofMeasure,0.00001);
    
               QtytoPickBase := QtytoPickBase -
    
                 CalcPickQtyAssigned(
    
    //Delete the following line.
                  LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine);
    
    
         ...
    

    Kode pengganti 3

         ...
    
                     QtyPerUnitofMeasure,0.00001);
    
               QtytoPickBase := QtytoPickBase -
    
                 CalcPickQtyAssigned(
    
    //Add the following line.
                  LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine);
    
         ...
    
  2. Ubah kode dalam fungsi InsertTmpActLnFromMovWkshLine dalam fungsi Create Pick codeunit (7312) sebagai berikut:
    Kode yang sudah ada

         ...
    
               LocationCode,FromBinCode,ItemNo,VariantCode,WhseWkshLine."From Unit of Measure Code");
    
             FromBinContent.CALCFIELDS(Quantity,"Pick Qty.","Neg. Adjmt. Qty.");
    
             PickQtyAssigned :=
    
               ROUND(
    
                 CalcPickQtyAssigned(
    
    //Delete the following line.
                  LocationCode,ItemNo,VariantCode,WhseWkshLine."From Bin Code",TempWhseItemTrkgLine) 
    
         ...
    

    Kode pengganti

         ...
    
               LocationCode,FromBinCode,ItemNo,VariantCode,WhseWkshLine."From Unit of Measure Code");
    
             FromBinContent.CALCFIELDS(Quantity,"Pick Qty.","Neg. Adjmt. Qty.");
    
             PickQtyAssigned :=
    
               ROUND(
    
                 CalcPickQtyAssigned(
    
    //Add the following lines.
                  LocationCode,ItemNo,VariantCode,
    
                  WhseWkshLine."From Unit of Measure Code",
    
                  WhseWkshLine."From Bin Code",TempWhseItemTrkgLine) 
    //End of the lines.
         ...
    
  3. Ubah kode dalam fungsi FindBWPickBin dalam create pick codeunit (7312) sebagai berikut:
    Kode yang sudah ada

         ...
    
                 IF QtyToPickBase > 0 THEN BEGIN
    
                   QtyToPickBase :=
    
                     QtyToPickBase -
    
                     ROUND(
    
                       CalcPickQtyAssigned(
    
    //Delete the following line.
                        LocationCode,ItemNo,VariantCode,"Bin Code",TempWhseItemTrkgLine) 
    
         ...
    

    Kode pengganti

         ...
    
                 IF QtyToPickBase > 0 THEN BEGIN
    
                   QtyToPickBase :=
    
                     QtyToPickBase -
    
                     ROUND(
    
                       CalcPickQtyAssigned(
    
    //Add the following lines.
                        LocationCode,ItemNo,VariantCode,"Bin Code","Unit of Measure Code",
    
                        TempWhseItemTrkgLine) 
    //End of the lines.
         ...
    
  4. Tambahkan variabel lokal baru dalam fungsi CalcPickQtyAssigned dalam Create Pick codeunit (7312), dan tentukan variabel sebagai berikut:

    • Nama: UOMCode@1004
    • TipeData: Kode
    • Panjangnya: 10
  5. Ubah kode dalam fungsi CalcPickQtyAssigned di Create Pick codeunit (7312) menjadi yang berikut:

         ...
    
             END ELSE BEGIN
    
               SETRANGE("Action Type","Action Type"::" ");
    
               SETRANGE("Bin Code",'');
    
             END;
    
             SETRANGE("Variant Code",VariantCode);
    
    //Add the following lines.
            IF UOMCode <> '' THEN
    
              SETRANGE("Unit of Measure Code",UOMCode);
    //End of the lines.
         ...
    
  6. Ubah kode dalam fungsi CalcTotalAvailQtyToPick dalam fungsi Create Pick codeunit (7312) sebagai berikut:
    Kode yang sudah ada

         ...
    
           QtyAssignedPick :=
    
    //Delete the following line.
            CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine2);
    
    
    

    Kode pengganti

         ...
    
           QtyAssignedPick :=
    
    //Add the following line.
            CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'','',TempWhseItemTrkgLine2);
    

Prasyarat

Anda harus menginstal Microsoft Dynamics NAV 5.0 untuk menerapkan hotfix ini.

Informasi penghapusan

Anda tidak dapat menghapus hotfix ini.

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

Status

Catatan Ini adalah artikel "FAST PUBLISH" yang dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang dimuat di sini disediakan sebagaimana adanya sebagai respons terhadap masalah yang muncul. Sebagai akibat dari kecepatan dalam membuatnya tersedia, materi mungkin menyertakan kesalahan pengetikan dan dapat direvisi kapan saja tanpa pemberitahuan. Lihat Ketentuan Penggunaan untuk pertimbangan lain.