Setelah menerapkan RU6, formulir NF-e Federal akan kosong

Berlaku Untuk
Microsoft Dynamics AX 2009

Gejala

Setelah menerapkan Rollup 6 (KB2405516), formulir NF-e Federal akan kosong. Anda tidak akan dapat memverifikasi status yang terkait dengan faktur NF-e Federal yang sebelumnya diposting dan tidak dimungkinkan untuk mengetahui tindakan apa yang harus diambil.

Penyebab

Ada cacat pengodean di kelas RelaseUpdateDB60_Cust, metode updateReferencesInEFDocument_BR. 

Metode ini memperbarui tabel EFDocument_BR sehingga selalu mereferensikan tabel FiscalDocJour_BR. Dalam versi sebelumnya, EFDocument_BR digunakan untuk menyimpan referensi ke faktur yang berasal dari dokumen fiskal Brasil, seperti CustInvoiceJour dan VendInvoiceJour. Mulai sekarang, pasangan bidang RefTableId dan RefRecId akan selalu mereferensikan tabel dokumen fiskal Brasil: FiscalDocJour_BR.

Ketika metode ini dijalankan dalam lingkungan Rollup 5 tempat NF-e baru dibuat, NF-e ini (yang sudah ok) sekarang akan kehilangan hubungan mereka dengan FiscalDocJour_BR, menyebabkan formulir kosong. Metode ini hanya boleh dijalankan untuk referensi NF-e ke CustInvoiceJour dan VendInvoiceJour. 

Resolusi

Kami sangat menyarankan untuk melakukan pencadangan penuh database AX sebelum menjalankan langkah-langkah yang dijelaskan dalam artikel KB ini.

1. Kapan menerapkan perbaikan
Setelah menerapkan paket RU6, luncurkan klien AX dan "Daftar periksa pemutakhiran" akan muncul. Sebelum menjalankan "Presynchronize", Anda harus menerapkan perbaikan ini.

2. Buka AOT dan sisipkan pernyataan "WHERE" berikut dalam kelas RelaseUpdateDB60_Cust, metode updateReferencesInEFDocument_BR.

Sebelum:
    saat memilih eFDocument forupdate
    {
        fiscalDocJour = FiscalDocJour_BR::findRefRecId(eFDocument.RefTableId, eFDocument.RefRecId);
        eFDocument.RefTableId = fiscalDocJour.TableId;
        eFDocument.RefRecId = fiscalDocJour.RecId;

        eFDocument.doUpdate();
    }

Setelah:
    saat memilih eFDocument forupdate
        where eFDocument.RefTableId != tablenum(FiscalDocJour_BR)
    {
        fiscalDocJour = FiscalDocJour_BR::findRefRecId(eFDocument.RefTableId, eFDocument.RefRecId);
        eFDocument.RefTableId = fiscalDocJour.TableId;
        eFDocument.RefRecId = fiscalDocJour.RecId;

        eFDocument.doUpdate();
    }