Après l’application de RU6, le formulaire fédéral de NF-e est vide

S’applique à : Microsoft Dynamics AX 2009

Symptômes


Après avoir appliqué le correctif cumulatif 6 (KB2405516), le formulaire fédéral de NF-e sera vide. Vous ne pourrez pas vérifier le statut liés aux factures fédérale NF-e précédemment validées et il n’est pas possible de savoir quelle action entreprendre.

Cause


Il existe une erreur de codage dans la méthode d’updateReferencesInEFDocument_BR de la classe RelaseUpdateDB60_Cust. Cette méthode met à jour la table EFDocument_BR afin qu’il fait toujours référence à la table FiscalDocJour_BR. Dans les versions précédentes, EFDocument_BR permet de conserver des références à la facture qui a pour origine le document fiscal brésilien, tels que CustInvoiceJour et VendInvoiceJour. Dès lors, la paire de champs RefTableId et RefRecId référencera toujours la table de documents fiscaux brésiliens : FiscalDocJour_BR. Lorsque cette méthode est exécutée dans un environnement de correctif cumulatif 5 de quel nouveaux NF-e's ont été créés, ces NF-e's (qui étaient déjà OK) perdrez maintenant leurs relations avec FiscalDocJour_BR, à l’origine de l’écran vide. Cette méthode doit uniquement être exécutée pour NF-e's référence à CustInvoiceJour et VendInvoiceJour.

Résolution


Nous vous recommandons fortement d’effectuer une sauvegarde complète de la base de données AX avant d’exécuter les étapes décrites dans cette article.1 Ko. Quand appliquer le fixAfter application du package RU6, lancer le client AX et le wil « Liste de contrôle de mise à niveau » s’affichent. Avant d’exécuter la présynchronisation « », vous devez appliquer cette fix.2. Ouvrez l’AOA et insérez l’instruction suivante « Où » dans la méthode d’updateReferencesInEFDocument_BR de la classe RelaseUpdateDB60_Cust. Avant : lors de la sélection forupdate eFDocument {fiscalDocJour = FiscalDocJour_BR::findRefRecId (eFDocument.RefTableId, eFDocument.RefRecId) ;        eFDocument.RefTableId = fiscalDocJour.TableId ;        eFDocument.RefRecId = fiscalDocJour.RecId ;        eFDocument.doUpdate() ;    } Après : lors de la sélection forupdate eFDocument où eFDocument.RefTableId ! = tablenum(FiscalDocJour_BR) {fiscalDocJour = FiscalDocJour_BR::findRefRecId (eFDocument.RefTableId, eFDocument.RefRecId) ;        eFDocument.RefTableId = fiscalDocJour.TableId ;        eFDocument.RefRecId = fiscalDocJour.RecId ;        eFDocument.doUpdate() ;    }