Foutbericht wanneer u een aankooptegoednota plaatst die gebruikmaakt van dimensies in de Portugese versie van Microsoft Dynamics NAV: 'De transactie kan niet worden voltooid omdat deze inconsistenties veroorzaakt in de tabel G/L-invoer'

Van toepassing op
Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 5.0 Service Pack 1

Snel gepubliceerde artikelen bevatten rechtstreeks informatie vanuit de microsoft-ondersteuningsorganisatie. De informatie die hierin is opgenomen, wordt gemaakt als reactie op opkomende of unieke onderwerpen, of is bedoeld als aanvulling op andere Knowledge Base-informatie.
 Microsoft Business Solutions-Navision 4.0 en Microsoft Navision 4.0 maken nu deel uit van Microsoft Dynamics NAV 4.0. Alle verwijzingen naar Microsoft Business Solutions-Navision of Microsoft Navision 4.0 hebben betrekking op Microsoft Dynamics NAV.

Dit artikel is van toepassing op Microsoft Dynamics NAV voor de taalinstelling Portugees (pt).

Symptomen

Stel dat u de btw-waarde voor verlegging , de waarde D. % en de btw-waarde N.D.% instelt in de btw-boeking die is ingesteld in de Portugese versie van Microsoft Dynamics NAV. Wanneer u een aankooptegoednota plaatst die gebruikmaakt van dimensies, ontvangt u het volgende consistente foutbericht:

Opmerking

De transactie kan niet worden voltooid omdat deze inconsistenties veroorzaakt in de tabel G/L-vermelding.

Controleer waar en hoe de functie CONSISTENT wordt gebruikt in de transactie om de reden voor de fout te vinden.

Neem contact op met de systeembeheerder.

Tabellen kunnen als inconsistent worden gemarkeerd tijdens uitgebreide taken, zoals posten. Dit voorkomt dat gegevens onjuist worden bijgewerkt.

Dit probleem treedt op in de volgende producten:

  • De Portugese versie van Microsoft Dynamics NAV 2009 Service Pack 1
  • De Portugese versie van Microsoft Dynamics NAV 5.0 Service Pack 1
  • De Portugese versie van Microsoft Dynamics NAV 4.0 Service Pack 3

Oplossing

Hotfix-informatie

Er is nu een ondersteunde hotfix beschikbaar bij Microsoft. Het is echter alleen bedoeld om het probleem op te lossen dat in dit artikel wordt beschreven. Pas deze alleen toe op systemen die dit specifieke probleem ondervinden. Deze hotfix kan aanvullende tests ontvangen. Als u niet ernstig last hebt van dit probleem, raden we u daarom aan te wachten op het volgende Microsoft Dynamics NAV-servicepack of de volgende Microsoft Dynamics NAV-versie die deze hotfix bevat.

Opmerking In speciale gevallen kunnen kosten die gewoonlijk worden gemaakt voor ondersteuningsoproepen worden geannuleerd als een technische ondersteuningsmedewerker voor Microsoft Dynamics en gerelateerde producten vaststelt dat een specifieke update uw probleem oplost. De gebruikelijke ondersteuningskosten zijn van toepassing op aanvullende ondersteuningsvragen en problemen die niet in aanmerking komen voor de specifieke update in kwestie.

            
          

Installatie-informatie

Microsoft biedt programmeervoorbeelden uitsluitend ter illustratie, zonder uitdrukkelijke of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal die wordt gedemonstreerd en met de hulpprogramma's die worden gebruikt om procedures te maken en fouten op te sporen. Microsoft-ondersteuningstechnici kunnen helpen bij het uitleggen van de functionaliteit van een bepaalde procedure, maar ze zullen deze voorbeelden niet wijzigen om extra functionaliteit te bieden of procedures te maken die voldoen aan uw specifieke vereisten.

Opmerking Voordat u deze hotfix installeert, controleert u of alle Microsoft Navision-clientgebruikers zijn afgemeld bij het systeem. Dit geldt ook voor gebruikers van Microsoft Navision Application Services (NAS). U moet de enige clientgebruiker zijn die is aangemeld wanneer u deze hotfix implementeert.

Als u deze hotfix wilt implementeren, moet u een ontwikkelaarslicentie hebben.

We raden u aan om aan het gebruikersaccount in het venster Windows-aanmeldingen of in het venster Databaseaanmeldingen de rol-id 'SUPER' toe te wijzen. Als de rol-id 'SUPER' niet kan worden toegewezen aan het gebruikersaccount, moet u controleren of het gebruikersaccount de volgende machtigingen heeft:

  • De machtiging Wijzigen voor het object dat u gaat wijzigen.
  • De machtiging Uitvoeren voor het object Systeemobject-id 5210 en voor het object Systeemobject-id 9015.

                
Opmerking U hoeft geen rechten te hebben voor de gegevensarchieven, tenzij u gegevensherstel moet uitvoeren.

Codewijzigingen

Opmerking Test altijd codecorrecties in een beheerde omgeving voordat u de correcties toepast op uw productiecomputers.
Volg deze stappen om deze hotfix toe te passen:

  1. Wijzig de code van de globale variabelen in de gen. Jnl.-Post Line codeunit (12) als volgt:
    Bestaande code

    ...
            LastTempTransNo@1110089 : Integer;
            NextEntryNo2@1110152 : Integer;
            PROCEDURE GetGLReg@10(VAR NewGLReg@1000 : Record 45);
    ...
    
    

    Vervangende code

    ...
            LastTempTransNo@1110089 : Integer;
            NextEntryNo2@1110152 : Integer;
    
            // Add the following line.
            TempVATAmount@1110024 : Decimal;
            // End of the added line.
    
          PROCEDURE GetGLReg@10(VAR NewGLReg@1000 : Record 45);
    ...
    
    
  2. Wijzig de code in de functie InitVat in de gen. Jnl.-Post Line codeunit (12) als volgt:
    Bestaande code 1

            PROCEDURE InitVat@33();
          BEGIN
            WITH GenJnlLine DO
    ...
    
    

    Vervangende code 1

         PROCEDURE InitVat@33();
    
          // Add the following line.
          VAR
            TempVATDAmount@1110025 : Decimal;
          // End of the added line.
    
          BEGIN
            WITH GenJnlLine DO
    ...
    
    

    Bestaande code 2

    ...
            //--PT----
                                  GLEntry."VAT Amount" := ROUND(GLEntry.Amount * VATPostingSetup."VAT D. %" / 100);
                                  AddCurrGLEntryVATAmt :=
                                    ROUND(
    ...
    
    

    Vervangende code 2

    ...
            //--PT----
                                  GLEntry."VAT Amount" := ROUND(GLEntry.Amount * VATPostingSetup."VAT D. %" / 100);
    
                                  // Add the following lines.
                                  TempVATAmount := ROUND(GLEntry.Amount * VATPostingSetup."VAT %" / 100);
                                  TempVATDAmount := GLEntry."VAT Amount";
                                  // End of the added lines.
    
                                  AddCurrGLEntryVATAmt :=
                                    ROUND(
    ...
    
    

    Bestaande code 3

    ...
                                      AddCurrency."Amount Rounding Precision");
    
                                  // Delete the following lines.
                                  GLEntry.Amount :=
                                    ROUND(
                                      GLEntry.Amount * (1 + VATPostingSetup."VAT N.D. %" / 100));
                                  // End of the deleted lines.
    
                                  GLEntry."Additional-Currency Amount" :=
                                    ROUND(
    ...
    
    

    Vervangende code 3

    ...
                                      AddCurrency."Amount Rounding Precision");
    
                                  // Add the following lines.
                                  GLEntry.Amount := ROUND(GLEntry.Amount + TempVATAmount - TempVATDAmount);
                                  // End of the added lines.
    
                                  GLEntry."Additional-Currency Amount" :=
                                    ROUND(
    ...
    
    

    Bestaande code 4

    ...
            //--PT----
                        // Delete the following lines.
                        IF VATPostingSetup."VAT %" <> 0 THEN BEGIN
                            GLEntry.Amount := GLEntry.Amount +
                              (GLEntry."VAT Amount" - ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")) +
                              "ND Difference";
                        // End of the deleted lines.
    
                          // Delete the following lines.
                          IF VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" THEN BEGIN
                            IF "ND Difference" > 0 THEN BEGIN
                              IF VATPostingSetup."VAT D. %" > 0 THEN
                                GLEntry."VAT Amount" :=
                                  ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %") - "ND Difference"
                              ELSE BEGIN
                                GLEntry."VAT Amount" :=
                                  ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %") - "ND Difference";
                                "UE Aquisition Not Accep." := TRUE;
                              END;
                            END ELSE BEGIN
                              IF VATPostingSetup."VAT D. %" > 0 THEN
                                GLEntry."VAT Amount" :=
                                  ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")
                              ELSE BEGIN
                                GLEntry."VAT Amount" :=
                                  ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %");
                                "UE Aquisition Not Accep." := TRUE;
                              END;
                            END;
                          // End of the deleted lines.
    
                          END ELSE BEGIN
                            IF "ND Difference" > 0 THEN
    ...
    
    

    Vervangende code 4

    ...
                        // Add the following lines.
                        TempVATAmount := GLEntry."VAT Amount";
                        IF VATPostingSetup."VAT %" <> 0 THEN BEGIN
                        TempVATDAmount := ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %");
                          GLEntry.Amount := GLEntry.Amount + GLEntry."VAT Amount" - TempVATDAmount + "ND Difference";
                          IF VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" THEN BEGIN
                            IF VATPostingSetup."VAT D. %" > 0 THEN
                              GLEntry."VAT Amount" := TempVATDAmount
                            ELSE
                              "UE Aquisition Not Accep." := TRUE;
                             IF "ND Difference" > 0 THEN
                               GLEntry."VAT Amount" := GLEntry."VAT Amount" - "ND Difference";
                        // End of the added lines.
    
                          END ELSE BEGIN
                            IF "ND Difference" > 0 THEN
    ...
    
    

    Bestaande code 5

    GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")
    ELSE
    
    // Delete the following lines.
    GLEntry."VAT Amount" :=
    GLEntry."VAT Amount" - ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %")
    + "VAT Difference";
    // End of the deleted lines.
    
    END;
    END;
    ...
    
    

    Vervangende code 5

    GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")
    ELSE
    
    // Add the following line.
    GLEntry."VAT Amount" := TempVATDAmount + "VAT Difference";
    // End of the added line.
    
    END;
    END;
    ...
    
    
  3. Wijzig de code in de functie InsertVAT in de gen. Jnl.-Post Line codeunit (12) als volgt:
    Bestaande code 1

    ...
                                    VATPostingSetup."Return VAT account (Sales)",
            //                        -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,
    
                                    // Delete the following line.
                                    ROUND(-GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100),
                                    // End of the deleted line.
    
            //                        -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,
                                    ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),
    ...
    
    

    Vervangende code 1

    ...
                                    VATPostingSetup."Return VAT account (Sales)",
            //                        -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,
    
                                      // Add the following line.
                                      -TempVATAmount,
                                      // End of the added line.
    
            //                        -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,
                                    ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),
    ...
    
    

    Bestaande code 2

    ...
            //                    -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,
            //                    ROUND(-GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100),
    
                                  // Delete the following line.
                                  ROUND((- VATBase * VATPostingSetup."VAT D. %" / 100) - (VATBase * VATPostingSetup."VAT N.D. %" / 100)),
                                  // End of the deleted line.
    
            //                    -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,
                                ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),
    ...
    
    

    Vervangende code 2

    ...
            //                    -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,
            //                    ROUND(-GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100),
    
                                  // Add the following line.
                                  -TempVATAmount,
                                  // End of the added line.
    
            //                    -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,
                                ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),
    ...
    
    

Vereisten

U moet een van de volgende producten hebben geïnstalleerd om deze hotfix toe te passen:

  • De Portugese versie van Microsoft Dynamics NAV 2009 Service Pack 1
  • De Portugese versie van Microsoft Dynamics NAV 5.0 Service Pack 1
  • De Portugese versie van Microsoft Dynamics NAV 4.0 Service Pack 3

              

Verwijderingsgegevens

U kunt deze hotfix niet verwijderen.

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.

MICROSOFT EN/OF HAAR LEVERANCIERS GEVEN GEEN VERKLARINGEN OF GARANTIES MET BETREKKING TOT DE GESCHIKTHEID, DE BETROUWBAARHEID OF DE NAUWKEURIGHEID VAN DE INFORMATIE DIE IS OPGENOMEN IN DE DOCUMENTEN EN DE GERELATEERDE AFBEELDINGEN DIE OP DEZE WEBSITE ZIJN GEPUBLICEERD (DE "MATERIALEN") VOOR ENIG DOEL.

HET MATERIAAL KAN TECHNISCHE ONNAUWKEURIGHEDEN OF TYPOGRAFISCHE FOUTEN BEVATTEN EN KAN TE ALLEN TIJDE ZONDER KENNISGEVING WORDEN HERZIEN. VOOR ZOVER MAXIMAAL IS TOEGESTAAN DOOR TOEPASSELIJK RECHT, WIJZEN MICROSOFT EN/OF HAAR LEVERANCIERS ALLE VERKLARINGEN, GARANTIES EN VOORWAARDEN AF, ONGEACHT OF DIT EXPLICIET, IMPLICIET OF WETTELIJK IS TOEGESTAAN, MET INBEGRIP VAN MAAR NIET BEPERKT TOT VERKLARINGEN, GARANTIES OF EIGENDOMSVOORWAARDEN, NIET-INBREUKMAKENDE, BEVREDIGENDE VOORWAARDE OF KWALITEIT, VERKOOPBAARHEID EN GESCHIKTHEID VOOR EEN BEPAALD DOEL, MET BETREKKING TOT DE MATERIALEN.