Gudang entri tidak diperbarui dengan semua item pelacakan baris dalam jurnal pekerjaan ketika Anda posting item dalam jurnal pekerjaan untuk bin pada Microsoft Dynamics NAV 2009

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2487667 - 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 memiliki pekerjaan jurnal yang memiliki lebih dari satu item pelacakan baris untuk item dalam Microsoft Dynamics NAV 2009. Ketika Anda mengirim item di jurnal pekerjaan untuk bin, entri gudang hanya diperbarui dengan item terakhir pelacakan baris yang dimasukkan. Oleh karena itu, ada ketidakseimbangan untuk item antara gudang dan item ledger.
Masalah ini terjadi di produk-produk berikut:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Paket Layanan 1 (SP1)

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 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 berikut: membuat variabel lokal berikut:
  1. Menambahkan variabel global yang baru dalam pekerjaan Journal baris tabel (210), dan kemudian menetapkan variabel sebagai berikut:
    • Nama: WMSManagement
    • DataType: Codeunit
    • Subtipe: WMS manajemen (7302)
  2. Menghapus kode berikut dalam TableRelation properti Bin kode bidang (5403) dalam pekerjaan Journal baris tabel (210):
    Bin.Code WHERE (Location Code=FIELD(Location Code));
  3. Mengubah kode OnValidatememicu Bin kode lapangan (5403) dalam pekerjaan Journal baris tabel (210) sebagai berikut:
    Kode yang ada
    ...
    // Delete the following lines.
    TESTFIELD("Location Code");
    CheckItemAvailable;
    // End of the lines.
    ...
    Penggantian kode
    ...
    // Add the following lines.
    TESTFIELD("Location Code");
    IF "Bin Code" <> '' THEN BEGIN
    GetLocation("Location Code");
    Location.TESTFIELD("Bin Mandatory");
    END;
    TESTFIELD(Type,Type::Item);
    CheckItemAvailable;
    WMSManagement.FindBinContent("Location Code","Bin Code","No.","Variant Code",'')
    // End of the lines.
    ...
  4. Menambahkan variabel lokal baru di Bin kode- OnLookuptriggerin pekerjaan Journal baris tabel (210), dan kemudian menetapkan variabel sebagai berikut:
    • Nama: BinCode
    • DataType: Kode
    • Panjang: 20
  5. Tambahkan kode berikut dalam Bin kode- OnLookupmemicu dalam pekerjaan Journal baris tabel (210):
    TESTFIELD("Location Code");
    TESTFIELD(Type,Type::Item);
    BinCode := WMSManagement.BinContentLookUp("Location Code","No.","Variant Code",'',"Bin Code");
    IF BinCode <> '' THEN
    VALIDATE("Bin Code",BinCode);
  6. Mengubah nilai dalam OptionString properti Dokumen sumber bidang (25) di gudang Journal baris tabel (7311) dengan berikut:
    OptionString=Order S., S. faktur, S. kredit Memo, S. kembali urutan, P. Order, P. faktur, P. kredit Memo, P. kembali urutan, Inb. Transfer, Outb. Transfer, Prod. Konsumsi, Item Jnl., Phys. Invt. Jnl., Reclass. Jnl., konsumsi Jnl., Output Jnl., BOM Jnl., Serv Order, pekerjaan Jnl.
  7. Mengubah nilai dalam OptionString properti Dokumen referensi Field (60) di gudang Journal baris tabel (7311) dengan berikut:
    OptionString= Diposting Rcpt., P. Inv., dikirim Rtrn. Rcpt., dikirim P. Cr. Memo, dikirim pengiriman, dikirim S. Inv., dikirim Rtrn. pengiriman, dikirim S. Cr. Memo, dikirim T. menerima, dikirim T. pengiriman, dikirim Item Journal, Prod., Put-jauhnya, memilih, gerakan, BOM jurnal, jurnal pekerjaan
  8. Mengubah nilai dalam OptionString properti medan dokumen sumber (25) di gudang entri tabel (7312) dengan berikut:
    OptionString=Order S., S. faktur, S. kredit Memo, S. kembali urutan, P. Order, P. faktur, P. kredit Memo, P. kembali urutan, Inb. Transfer, Outb. Transfer, Prod. Konsumsi, Item Jnl., Phys. Invt. Jnl., Reclass. Jnl., konsumsi Jnl., Output Jnl., BOM Jnl., Serv. pesan, pekerjaan Jnl.
  9. Mengubah nilai dalam OptionString properti medan referensi dokumen (60) dalam gudang entri tabel (7312) dengan berikut:
    OptionString= Diposting Rcpt., P. Inv., dikirim Rtrn. Rcpt., dikirim P. Cr. Memo, dikirim pengiriman, dikirim S. Inv., dikirim Rtrn. pengiriman, dikirim S. Cr. Memo, dikirim T. menerima, dikirim T. pengiriman, dikirim Item Journal, Prod., Put-jauhnya, memilih, gerakan, BOM jurnal, jurnal pekerjaan
  10. Mengubah properti terlihat lokasi kode kontrol (60) dalam bentuk pekerjaan Journal (201) sebagai berikut:
    Kode yang ada
    Visible = Yes
    Penggantian kode
    Visible = No
  11. Tambahkan Bin kode lapangan antara Lokasi kode lapangan dan Pekerjaan jenis kode bidang dalam bentuk pekerjaan Journal (201), dan kemudian menetapkan bidang sebagai berikut:
    ...
    { 61 ;Label ;0 ;0 ;0 ;0 ;ParentControl=60;
    InColumnHeading=Yes }
    
    // Add the following lines.
    { 102 ;TextBox ;35507;1650 ;1700 ;440 ;ParentControl=1;
    InColumn=Yes;
    SourceExpr="Bin Code" }
    { 103 ;Label ;0 ;0 ;0 ;0 ;ParentControl=102;
    InColumnHeading=Yes }
    // End of the lines.
    
    { 48 ;TextBox ;11430;2530 ;1650 ;440 ;ParentControl=1;
    ...
  12. Menambahkan variabel global yang baru dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
    • Nama: Lokasi
    • DataType: Catatan
    • Subtipe: Lokasi (14)
  13. Buat baru GetLocationfungsi dalam pekerjaan Jnl.-baris posting codeunit (1012) sebagai berikut:
    LOCAL PROCEDURE GetLocation@25(LocationCode@1000 : Code[10]);
    
  14. Tambahkan kode berikut dalam GetLocationfungsi dalam pekerjaan Jnl.-codeunit posting Line (1012):
    IF LocationCode = '' THEN
    CLEAR(Location)
    ELSE
    IF Location.Code <> LocationCode THEN
    Location.GET(LocationCode);
  15. Buat baru PostWhseJnlLinefungsi dalam pekerjaan Jnl.-baris posting codeunit (1012) sebagai berikut:
    LOCAL PROCEDURE PostWhseJnlLine@24(ItemJnlLine@1000 : Record 83;OriginalQuantity@1001 : Decimal;OriginalQuantityBase@1002 : Decimal;VAR TempTrackingSpecification@1003 : TEMPORARY Record 336);
  16. Membuat variabel lokal berikut di PostWhseJnlLine fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012):
    1. Menambahkan variabel lokal di PostWhseJnlLine fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: WarehouseJournalLine
      • DataType: Catatan
      • Subtipe: Gudang Journal Line (7311)
    2. Menambahkan variabel lokal di PostWhseJnlLine fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: TempWarehouseJournalLine
      • DataType: SEMENTARA catatan
      • Subtipe: Gudang Journal Line (7311)
    3. Menambahkan variabel lokal di PostWhseJnlLine fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: ItemTrackingManagement
      • DataType: Codeunit
      • Subtipe: Jenis pelacakan manajemen (6500)
    4. Menambahkan variabel lokal di PostWhseJnlLine fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: WMSManagement
      • DataType: Codeunit
      • Subtipe: WMS manajemen (7302)
    5. Menambahkan variabel lokal di PostWhseJnlLine fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
      • Nama: WhseJnlRegisterLine
      • DataType: Codeunit
      • Subtipe: Whse. Jnl.-mendaftar Line (7301)
  17. Tambahkan kode berikut dalam PostWhseJnlLinefungsi dalam pekerjaan Jnl.-baris posting codeunit (1012) sebagai berikut:
    WITH ItemJnlLine DO BEGIN
    IF "Entry Type" IN ["Entry Type"::Consumption,"Entry Type"::Output] THEN
    EXIT;
    Quantity := OriginalQuantity;
    "Quantity (Base)" := OriginalQuantityBase;
    GetLocation("Location Code");
    IF Location."Bin Mandatory" THEN
    IF WMSManagement.CreateWhseJnlLine(ItemJnlLine,0,WarehouseJournalLine,FALSE,FALSE) THEN BEGIN
    TempTrackingSpecification.MODIFYALL("Source Type",DATABASE::"Job Journal Line");
    ItemTrackingManagement.SplitWhseJnlLine(WarehouseJournalLine,TempWarehouseJournalLine,TempTrackingSpecification,FALSE);
    IF TempWarehouseJournalLine.FIND('-') THEN
    REPEAT
    WMSManagement.CheckWhseJnlLine(TempWarehouseJournalLine,1,0,FALSE);
    WhseJnlRegisterLine.RUN(TempWarehouseJournalLine);
    UNTIL TempWarehouseJournalLine.NEXT = 0;
    END;
    END;
  18. Menambahkan variabel lokal baru di Kode fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
    • Nama: TempTrackingSpecification
    • DataType: SEMENTARA catatan
    • Subtipe: Pelacakan spesifikasi (336)
  19. Menambahkan variabel lokal baru di Kode fungsi dalam pekerjaan Jnl.-codeunit posting Line (1012), dan kemudian menetapkan variabel sebagai berikut:
    • Nama: ItemJnlLine2
    • DataType: Catatan
    • Subtipe: Item Journal Line (83)
  20. Mengubah kode Kode fungsi dalam pekerjaan Jnl.-baris posting codeunit (1012) sebagai berikut:
    Ada kode 1
    ...
    ItemJnlLine.INIT;
    ItemJnlLine."Item No." := JobJnlLine2."No.";
    ...
    
    Penggantian kode 1
    ...
    ItemJnlLine.INIT;
    
    // Add the following line.
    ItemJnlLine."Line No." := "Line No.";
    
    ItemJnlLine."Item No." := JobJnlLine2."No.";
    ...
    Kode yang sudah ada 2
    ...
    ItemLedgEntry.LOCKTABLE;
    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim);
    END;
    ...
    Penggantian kode 2
    ...
    ItemLedgEntry.LOCKTABLE;
    
    // Add the following line.
    ItemJnlLine2 := ItemJnlLine;
    
    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim);
    
    // Add the following lines.
    ItemJnlPostLine.CollectTrackingSpecification(TempTrackingSpecification);
    PostWhseJnlLine(ItemJnlLine2,ItemJnlLine2.Quantity,ItemJnlLine2."Quantity (Base)",TempTrackingSpecification);
    // End of the lines.
    ...
  21. Mengubah nilai dalam OptionString properti dokumen referensi parameter dalam GetSourceDocument fungsi dalam Whse. Manajemen codeunit (5775) dengan berikut:
    OptionString=Order S., S. faktur, S. kredit Memo, S. kembali urutan, P. Order, P. faktur, P. kredit Memo, P. kembali urutan, Inb. Transfer, Outb. Transfer, Prod. Konsumsi, Item Jnl., Phys. Invt. Jnl., Reclass. Jnl., konsumsi Jnl., Output Jnl., BOM Jnl., Serv. pesan, pekerjaan Jnl.
  22. Mengubah kode GetSourceDocument fungsi dalam Whse. Manajemen codeunit (5775) sebagai berikut:
    Kode yang ada
    ...
    EXIT;
    END;
    END;
    ERROR(Text000);
    ...
    Penggantian kode
    ...
    EXIT;
    END;
    
    // Add the following lines.
    DATABASE::"Job Journal Line":
    BEGIN 
    SourceDocument := SourceDocument::"Job Jnl.";
    EXIT;
    END;
    // End of the lines.
    
    END;
    ERROR(Text000);
    ...
  23. Mengubah kode CreateWhseJnlLine fungsi dalam codeunit WMS manajemen (7302) sebagai berikut:
    Kode yang ada
    ...
    WhseJnlLine."Source Line No." := "Line No.";
    END;
    WhseJnlLine."Source Code" := "Source Code";
    WhseJnlLine."Reason Code" := "Reason Code";
    WhseJnlLine."Registering No. Series" := "Posting No. Series";
    WhseJnlLine."Whse. Document Type" := WhseJnlLine."Whse. Document Type"::" ";
    
    // Delete the following line.
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Item Journal";
    
    WhseJnlLine."Reference No." := "Document No.";
    ...
    Penggantian kode
    ...
    WhseJnlLine."Source Line No." := "Line No.";
    
    // Add the following lines.
    END ELSE
    IF "Job No." <> '' THEN BEGIN
    WhseJnlLine."Source Type" := DATABASE::"Job Journal Line";
    WhseJnlLine."Source Subtype" := ItemJnlTemplateType;
    WhseMgt.GetSourceDocument(WhseJnlLine."Source Document",WhseJnlLine."Source Type",WhseJnlLine."Source Subtype");
    WhseJnlLine."Source No." := "Document No.";
    WhseJnlLine."Source Line No." := "Line No.";
    // End of the lines.
    END;WhseJnlLine."Source Code" := "Source Code";
    WhseJnlLine."Reason Code" := "Reason Code";
    WhseJnlLine."Registering No. Series" := "Posting No. Series";
    WhseJnlLine."Whse. Document Type" := WhseJnlLine."Whse. Document Type"::" ";
    
    // Add the following lines.
    IF "Job No." = '' THEN
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Item Journal"
    ELSE
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Job Journal";
    // End of the lines.
    
    WhseJnlLine."Reference No." := "Document No.";
    ...ine."Source Code" := "Source Code";
    WhseJnlLine."Reason Code" := "Reason Code";
    WhseJnlLine."Registering No. Series" := "Posting No. Series";
    WhseJnlLine."Whse. Document Type" := WhseJnlLine."Whse. Document Type"::" ";
    
    // Add the following lines.
    IF "Job No." = '' THEN
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Item Journal"
    ELSE
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Job Journal";
    // End of the lines.
    
    WhseJnlLine."Reference No." := "Document No.";
    ...

Prasyarat

Anda harus memiliki salah satu produk berikut yang terinstal untuk menggunakan perbaikan terbaru ini:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Paket Layanan 1 (SP1)

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: 2487667 - Kajian Terakhir: 07 September 2011 - Revisi: 1.0
Berlaku bagi:
  • Microsoft Dynamics NAV 2009
Kata kunci: 
kbqfe kbmbsmigrate kbsurveynew kbmbscodefix kbmt KB2487667 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:2487667

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