Sunday, September 17, 2023

Nach der Anwendung von RU6 ist das NF-e-Bundesformular leer – Microsoft-Support

Symptome

Nach der Anwendung von Rollup 6 (KB2405516) ist das NF-e-Bundesformular leer. Sie können den Status der zuvor veröffentlichten NF-e-Bundesrechnungen nicht überprüfen und es ist nicht möglich zu wissen, welche Maßnahmen ergriffen werden sollten.

Ursache

Es liegt ein Codierungsfehler in der Klasse RelaseUpdateDB60_Cust und der Methode updateReferencesInEFDocument_BR vor.

Diese Methode aktualisiert die Tabelle EFDocument_BR, sodass sie immer auf die Tabelle FiscalDocJour_BR verweist. In früheren Versionen wurden in EFDocument_BR Verweise auf die Rechnung gespeichert, aus der das brasilianische Steuerdokument stammt, z. B. CustInvoiceJour und VendInvoiceJour. Von nun an verweist das Feldpaar RefTableId und RefRecId immer auf die Tabelle der brasilianischen Steuerdokumente: FiscalDocJour_BR.

Wenn diese Methode in einer Rollup 5-Umgebung ausgeführt wird, aus der neue NF-e erstellt wurden, verlieren diese NF-e (die bereits in Ordnung waren) nun ihre Beziehungen zu FiscalDocJour_BR, was zu einem leeren Formular führt. Diese Methode sollte nur für die Referenzierung von NF-e auf CustInvoiceJour und VendInvoiceJour ausgeführt werden.

Auflösung

Wir empfehlen dringend, eine vollständige Sicherung der AX-Datenbank durchzuführen, bevor Sie die in diesem KB-Artikel beschriebenen Schritte ausführen.

1. Wann der Fix angewendet werden soll
Nachdem Sie das RU6-Paket angewendet haben, starten Sie den AX-Client und die „Upgrade-Checkliste" wird angezeigt. Bevor Sie „Vorsynchronisieren" ausführen, müssen Sie diesen Fix anwenden.

2. Öffnen Sie das AOT und fügen Sie die folgende „WHERE"-Anweisung in die Klasse „RelaseUpdateDB60_Cust" und die Methode „updateReferencesInEFDocument_BR" ein.

Vor:
während Sie „forupdate eFDocument" auswählen
{
fiscalDocJour = FiscalDocJour_BR::findRefRecId(eFDocument.RefTableId, eFDocument.RefRecId);
eFDocument.RefTableId = FiscalDocJour.TableId;
eFDocument.RefRecId = FiscalDocJour.RecId;

eFDocument.doUpdate();
}

Nach:
während Sie „forupdate eFDocument" auswählen
wobei eFDocument.RefTableId != tablenum(FiscalDocJour_BR)
{
fiscalDocJour = FiscalDocJour_BR::findRefRecId(eFDocument.RefTableId, eFDocument.RefRecId);
eFDocument.RefTableId = FiscalDocJour.TableId;
eFDocument.RefRecId = FiscalDocJour.RecId;

eFDocument.doUpdate();
}

No comments:

Post a Comment