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();
}