Ru6:n käyttöönoton jälkeen NF-e Federal -lomake on tyhjä

Käytetään kohteeseen
Microsoft Dynamics AX 2009

Ongelman ilmenemistapa

Koontiversion 6 (KB2405516) käyttöönoton jälkeen NF-e Federal -lomake on tyhjä. Et voi vahvistaa aiemmin julkaistuihin NF-e Federal -laskuihin liittyvää tilaa, eikä ole mahdollista tietää, mitä toimia pitäisi tehdä.

Syy

RelaseUpdateDB60_Cust luokassa on koodausvirhe, updateReferencesInEFDocument_BR menetelmä. 

Tämä menetelmä päivittää taulukon EFDocument_BR niin, että se viittaa aina FiscalDocJour_BR taulukkoon. Aiemmissa versioissa EFDocument_BR käytetty viittauksia Brasilian veroasiakirjan, kuten CustInvoiceJour ja VendInvoiceJour, alkuperälaskuun. Tästä lähtien kenttien RefTableId ja RefRecId pari viittaa aina Brasilian tiliotsikkotaulukkoon: FiscalDocJour_BR.

Kun tämä menetelmä suoritetaan koontiversio 5 -ympäristössä, josta on luotu uusia NF-e-menetelmiä, nämä NF-e:t (jotka olivat jo kunnossa) menettävät nyt suhteensa FiscalDocJour_BR, mikä aiheuttaa tyhjän lomakkeen. Tämä menetelmä tulee suorittaa vain silloin, kun NF-e viittaa CustInvoiceJouriin ja VendInvoiceJouriin. 

Ratkaisu

On erittäin suositeltavaa varmuuskopioida AX-tietokanta kokonaan ennen tässä KB-artikkelissa kuvattujen vaiheiden suorittamista.

1. Korjauksen ottaminen käyttöön
Kun olet käyttänyt RU6-pakettia, käynnistä AX-asiakasohjelma ja päivitä tarkistusluettelo tulee näkyviin. Ennen kuin suoritat Presynkronize-toiminnon, sinun on otettava tämä korjaus käyttöön.

Kaksi. Avaa AOT ja lisää seuraava WHERE-lauseke RelaseUpdateDB60_Cust-luokkaan updateReferencesInEFDocument_BR menetelmää.

Ennen
    kun valitset forupdate eFDocument
    {
        fiscalDocJour = FiscalDocJour_BR::findRefRecId(eFDocument.RefTableId, eFDocument.RefRecId);
        eFDocument.RefTableId = fiscalDocJour.TableId;
        eFDocument.RefRecId = fiscalDocJour.RecId;

        eFDocument.doUpdate();
    }

Jälkeen
    kun valitset forupdate eFDocument
        jossa eFDocument.RefTableId != tablenum(FiscalDocJour_BR)
    {
        fiscalDocJour = FiscalDocJour_BR::findRefRecId(eFDocument.RefTableId, eFDocument.RefRecId);
        eFDocument.RefTableId = fiscalDocJour.TableId;
        eFDocument.RefRecId = fiscalDocJour.RecId;

        eFDocument.doUpdate();
    }