Kuantitas memo ini tidak dikonsumsi untuk item komponen yang menggunakan metode pembilasan mundur dalam Microsoft Dynamics NAV 2009

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2805411 - 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 mengatur Memo % nilai pada item orangtua dari bill of material (Good) di Microsoft Dynamics NAV. Jika item komponen BOM menggunakan metode pembilasan mundur, sistem mengkonsumsi jumlah memo untuk item komponen.

Masalah ini terjadi dalam produk-produk berikut:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Pemecahan masalah

Informasi hotfix

Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, itu hanya ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Gunakan hanya pada sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini mungkin menerima pengujian tambahan. Oleh karena itu, jika Anda sama sekali tidak dipengaruhi oleh masalah ini, kami sarankan Anda menunggu Service Pack 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.


Instalasi informasi

Microsoft menyediakan pemrograman contoh ilustrasi saja, tanpa jaminan, baik tersurat maupun tersirat. Ini termasuk, namun tidak terbatas pada, jaminan tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah familiar dengan bahasa pemrogram yang muncul dan dengan alat-alat yang digunakan untuk membuat dan debug prosedur. Microsoft support engineers dapat membantu menjelaskan fungsi dari prosedur tertentu, namun mereka tidak akan mengubah contoh-contoh ini untuk memberikan menambahkan fungsi atau membangun prosedur untuk memenuhi kebutuhan spesifik Anda.

Catatan Sebelum Anda menginstal perbaikan terbaru ini, pastikan bahwa semua Microsoft Navision klien pengguna login dari sistem. Ini termasuk Microsoft Navision aplikasi Layanan (NAS) klien pengguna. Anda harus menjadi pengguna hanya klien yang dicatat pada ketika Anda menerapkan perbaikan terbaru ini.

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

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


Catatan Anda tidak harus memiliki hak untuk data toko kecuali Anda harus 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:
  1. Mengubah kode dalam fungsi GetNeededQty di Prod. Memesan tabel atak komponen (5407) sebagai berikut:
    Kode yang ada 1
    ...
    VAR
    ProdOrderLine@1002 : Record 5406;
    ProdOrderRtngLine@1003 : Record 5409;
    CapLedgEntry@1004 : Record 5832;
    CostCalcMgt@1006 : Codeunit 5836;
    OutputQtyBase@1005 : Decimal;
    CompQtyBase@1008 : Decimal;
    BEGIN
    ...
    Penggantian kode 1
    ...
    VAR
    ProdOrderLine@1002 : Record 5406;
    ProdOrderRtngLine@1003 : Record 5409;
    CapLedgEntry@1004 : Record 5832;
    
    // Add the following line.
    RoutingLine@1009 : Record 99000764;
    
    CostCalcMgt@1006 : Codeunit 5836;
    OutputQtyBase@1005 : Decimal;
    CompQtyBase@1008 : Decimal;
    BEGIN
    ...
    Kode yang sudah ada 2
    ...
    OutputQtyBase := OutputQtyBase + CapLedgEntry."Output Quantity" + CapLedgEntry."Scrap Quantity";
    UNTIL CapLedgEntry.NEXT = 0;
    END;
    
    // Delete the following line.
    CompQtyBase := CostCalcMgt.CalcActNeededQtyBase(ProdOrderLine,Rec,OutputQtyBase);
    
    IF IncludePreviousPosting THEN BEGIN
    IF Status IN [Status::Released,Status::Finished] THEN
    CALCFIELDS("Act. Consumption (Qty)");
    ...
    Penggantian kode 2
    ...
    OutputQtyBase := OutputQtyBase + CapLedgEntry."Output Quantity" + CapLedgEntry."Scrap Quantity";
    UNTIL CapLedgEntry.NEXT = 0;
    END;
    
    // Add the following lines.
    IF ProdOrderRtngLine."Flushing Method" = ProdOrderRtngLine."Flushing Method"::Manual THEN
    OutputQtyBase := (OutputQtyBase - ProdOrderRtngLine."Fixed Scrap Qty. (Accum.)") /
    (1 + ProdOrderRtngLine."Scrap Factor % (Accumulated)");
    CompQtyBase := CostCalcMgt.CalcActNeededQtyBase(ProdOrderLine,Rec,OutputQtyBase);
    RoutingLine.SETRANGE("Routing No.",ProdOrderLine."Routing No.");
    RoutingLine.SETRANGE("Version Code",ProdOrderLine."Routing Version Code");
    IF RoutingLine.FINDFIRST THEN
    CompQtyBase := CompQtyBase * (1 + RoutingLine."Scrap Factor % (Accumulated)") + RoutingLine."Fixed Scrap Qty. (Accum.)";
    // End of the lines.
    
    IF IncludePreviousPosting THEN BEGIN
    IF Status IN [Status::Released,Status::Finished] THEN
    CALCFIELDS("Act. Consumption (Qty)");
    ...
  2. Mengubah kode dalam fungsi PostFlushedConsump dalam Item Jnl-Line posting codeunit (22) sebagai berikut:
    Kode yang ada 1
    LOCAL PROCEDURE PostFlushedConsump@32(ProdOrder@1000 : Record 5405;ProdOrderLine@1001 : Record 5406;ProdOrderComp@1002 : Record 5407;ActOutputQtyBase@1008 : Decimal;PostingDate@1006 : Date;DocumentNo@1003 : Code[20]);
    VAR
    CompItem@1004 : Record 27;
    OldTempTrackingSpecification@1009 : TEMPORARY Record 336;
    QtyToPost@1007 : Decimal;
    CalcBasedOn@1005 : 'Actual Output,Expected Output';
    PostItemJnlLine2@1013 : Boolean;
    DimsAreTaken@1010 : Boolean;
    ...
    Penggantian kode 1
    LOCAL PROCEDURE PostFlushedConsump@32(ProdOrder@1000 : Record 5405;ProdOrderLine@1001 : Record 5406;ProdOrderComp@1002 : Record 5407;ActOutputQtyBase@1008 : Decimal;PostingDate@1006 : Date;DocumentNo@1003 : Code[20]);
    VAR
    CompItem@1004 : Record 27;
    OldTempTrackingSpecification@1009 : TEMPORARY Record 336;
    
    // Add the following line.
    ProdOrderRtngLine@1011 : Record 5409;
    
    QtyToPost@1007 : Decimal;
    CalcBasedOn@1005 : 'Actual Output,Expected Output';
    PostItemJnlLine2@1013 : Boolean;
    DimsAreTaken@1010 : Boolean;
    ...
    Kode yang sudah ada 2
    ...
    CompItem.TESTFIELD("Rounding Precision");
    
    IF ProdOrderComp."Flushing Method" IN
    [ProdOrderComp."Flushing Method"::Backward,ProdOrderComp."Flushing Method"::"Pick + Backward"]
    
    // Delete the following lines.
    THEN
    QtyToPost :=
    CostCalcMgt.CalcActNeededQtyBase(ProdOrderLine,ProdOrderComp,ActOutputQtyBase)/ProdOrderComp."Qty. per Unit of Measure"
    ELSE
    QtyToPost := ProdOrderComp.GetNeededQty(CalcBasedOn::"Expected Output",TRUE);
    QtyToPost := ROUND(QtyToPost,CompItem."Rounding Precision",'>');
    // End of the lines.
    
    IF QtyToPost = 0 THEN
    EXIT;
    ...
    Penggantian kode 2
    ...
    CompItem.TESTFIELD("Rounding Precision");
    
    IF ProdOrderComp."Flushing Method" IN
    [ProdOrderComp."Flushing Method"::Backward,ProdOrderComp."Flushing Method"::"Pick + Backward"]
    
    // Add the following lines.
    THEN BEGIN
    QtyToPost :=
    ROUND(CostCalcMgt.CalcActNeededQtyBase(ProdOrderLine,ProdOrderComp,ActOutputQtyBase) /
    ProdOrderComp."Qty. per Unit of Measure",CompItem."Rounding Precision",'>');
    ProdOrderRtngLine.SETRANGE(Status,ProdOrderComp.Status);
    ProdOrderRtngLine.SETRANGE("Prod. Order No.",ProdOrderComp."Prod. Order No.");
    ProdOrderRtngLine.SETRANGE("Routing Reference No.",ProdOrderLine."Routing Reference No.");
    ProdOrderRtngLine.SETRANGE("Routing Link Code",ProdOrderComp."Routing Link Code");
    IF ProdOrderRtngLine.FINDFIRST THEN
    IF ProdOrderRtngLine."Flushing Method" <> ProdOrderRtngLine."Flushing Method"::Manual THEN
    QtyToPost := 
    ROUND(QtyToPost * (1 + ProdOrderRtngLine."Scrap Factor % (Accumulated)") +
    ProdOrderRtngLine."Fixed Scrap Qty. (Accum.)",CompItem."Rounding Precision",'>')
    END ELSE
    QtyToPost := ROUND(ProdOrderComp.GetNeededQty(CalcBasedOn::"Expected Output",TRUE),CompItem."Rounding Precision",'>');
    // End of the lines.
    
    IF QtyToPost = 0 THEN
    EXIT;
    ...
  3. Mengubah kode dalam fungsi CalcActNeededQtyBase di codeunit biaya perhitungan manajemen (5836) sebagai berikut:
    Kode yang ada
    ...
    VAR
    CompQtyBasePerMfgQtyBase@1002 : Decimal;
    BEGIN
    CompQtyBasePerMfgQtyBase := ProdOrderComp."Quantity (Base)" / ProdOrderLine."Qty. per Unit of Measure";
    
    // Delete the following line.
    EXIT(CalcQtyAdjdForBOMScrap(OutputQtyBase * CompQtyBasePerMfgQtyBase,ProdOrderComp."Scrap %"));
    
    END;
    
    PROCEDURE CalcActTimeAndQtyBase@25(ProdOrderLine@1007 : Record 5406;OperationNo@1000 : Code[10];VAR ActRunTime@1004 : Decimal;VAR ActSetupTime@1003 : Decimal;VAR ActOutputQty@1002 : Decimal;VAR ActScrapQty@1001 : Decimal);
    VAR
    ...
    Penggantian kode
    ...
    VAR
    CompQtyBasePerMfgQtyBase@1002 : Decimal;
    BEGIN
    CompQtyBasePerMfgQtyBase := ProdOrderComp."Quantity (Base)" / ProdOrderLine."Qty. per Unit of Measure";
    
    // Add the following lines.
    EXIT(
    CalcQtyAdjdForBOMScrap(CalcQtyAdjdForBOMScrap(OutputQtyBase * CompQtyBasePerMfgQtyBase,ProdOrderComp."Scrap %"),
    ProdOrderLine."Scrap %"));
    // End of the lines.
    
    END;
    
    PROCEDURE CalcActTimeAndQtyBase@25(ProdOrderLine@1007 : Record 5406;OperationNo@1000 : Code[10];VAR ActRunTime@1004 : Decimal;VAR ActSetupTime@1003 : Decimal;VAR ActOutputQty@1002 : Decimal;VAR ActScrapQty@1001 : Decimal);
    VAR
    ...

Prasyarat

Anda harus memiliki salah satu produk berikut diinstal untuk menerapkan perbaikan terbaru ini:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1

Informasi penghapusan

Anda tidak dapat menghapus perbaikan terbaru ini.

Status

Microsoft telah mengkonfirmasi bahwa ini adalah masalah di dalam produk Microsoft sebagaimana didaftar di bagian "Berlaku untuk".
Catatan Ini adalah "Cepat mempublikasikan" artikel yang dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang tercantum di sini yang 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 Ketentuan penggunaan untuk pertimbangan lain.

Properti

ID Artikel: 2805411 - Kajian Terakhir: 02 April 2013 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Dynamics NAV 2009
Kata kunci: 
kbqfe kbfix kbmbsmigrate kbsurveynew kbmbscodefix kbmt KB2805411 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: 2805411

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