"Cust. Artikelposten Lfd. Nr. "[Entry_No.]" ist bereits vorhanden"Fehlermeldung beim Buchen eines Verkaufsauftrags, das der nächste Buchstabe im Europäischen verwendeten Version von Microsoft Dynamics NAV 5.0 SP1 mit Feature Pack 1 installiert


Dieser Artikel bezieht sich auf Microsoft Dynamics NAV für die Regionen Osteuropa (EE).

Problembeschreibung


Das folgende Szenario in Europäischen von Microsoft Dynamics NAV 5.0 SP1 mit Feature Pack 1 Version:
  • Sie haben einen Verkaufsauftrag, der eine Vorauszahlung voraus Buchstaben verwendet.
  • Buchen der Zahlung und dem verknüpften voraus Buchstaben für den Auftrag. Anschließend versuchen Sie den Auftrag buchen.


In diesem Szenario wird die folgende Fehlermeldung angezeigt:
Cust. Artikelposten Lfd. Nr. "Entry_No." ist bereits vorhanden.

Problemlösung


Hotfix-Informationen

Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Allerdings ist es lediglich zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten auf das nächste Servicepack für Microsoft Dynamics NAV 5.0 oder die nächste Microsoft Dynamics NAV-Version, die diesen Hotfix enthält.

Hinweis In besonderen Fällen bestimmt Gebühren fallen normalerweise Support aufrufen Wenn Experte Support für Microsoft Dynamics und zugehörige Produkte storniert werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update qualifizieren.



Informationen zur Installation

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Navision-Clientbenutzer vom System abgemeldet werden. Dies gilt auch für Clientbenutzer der Microsoft Navision Application Services (NAS). Sie sollte nur-Client-Benutzers, der angemeldet ist, wenn Sie diesen Hotfix installieren.

Muss eine Entwicklerlizenz verfügen, um diesen Hotfix installieren können.

Es wird empfohlen, das Benutzerkonto im Fenster Windows-Benutzernamen oder im Fenster Datenbank-Anmeldenamen "SUPER" Rollen-ID zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" nicht zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:
  • Änderungsberechtigung für das Objekt, das Sie ändern.
  • Ausführungsberechtigung für System Object ID 5210 und System Object ID 9015 -Objekt.


Hinweis Sie müssen keinen Datenspeicher Rechte nur Daten zu reparieren.

Ändern von Code

Hinweis Testen Sie Programmcodeverbesserungen generell erst in einem Testsytem, bevor Sie sie im Produktionssystem verwenden.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
  1. Fügen Sie eine neue lokale Variable in die Funktion OnRun Sales-PostCodeunit (80):
    AmountInvoiced: Dezimal
  2. Ändern Sie den Code in der Funktion OnRun Sales-PostCodeunit (80) wie folgt:

    Vorhandener Code 1

    ...DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim);
    IF (GenJnlLine.Amount <>0) THEN
    GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim);

    // Balancing account
    IF "Bal. Account No."<>'' THEN BEGIN
    Window.UPDATE(5,1);
    ...

    Neuer Code 1

    ...  DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim);
    IF (GenJnlLine.Amount <> 0) THEN
    GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim);

    // Add the following lines.
    IF Invoice AND ("Document Type" = "Document Type"::Order) AND
    ("Prepayment Type" = "Prepayment Type"::Advance)
    THEN
    SalesPostAdvances.PostInvoiceCorrection(SalesHeader,SalesInvHeader,GenJnlPostLine,TempJnlLineDim,AmountInvoiced);
    // End of the added lines.

    // Balancing account
    IF "Bal. Account No." <>'' THEN BEGIN
    Window.UPDATE(5,1);
    ...

    Vorhandener Code 2

    ...  GenJnlLine."Bal. Account No." := "Bal. Account No.";
    GenJnlLine."Currency Code" := "Currency Code";
    GenJnlLine.Amount :=

    // Delete the following line.
    TotalSalesLine."Amount Including VAT" + CustLedgEntry."Remaining Pmt. Disc. Possible";
    // End of the deleted line.

    GenJnlLine."Source Currency Code" := "Currency Code";
    GenJnlLine."Source Currency Amount" := GenJnlLine.Amount;
    GenJnlLine.Correction := Correction;
    ...

    Neuer Code 2

    ...  GenJnlLine."Bal. Account No." := "Bal. Account No.";  GenJnlLine."Currency Code" := "Currency Code";
    GenJnlLine.Amount :=

    // Add the following line.
    TotalSalesLine."Amount Including VAT" + CustLedgEntry."Remaining Pmt. Disc. Possible" + AmountInvoiced;
    // End of the added line.

    GenJnlLine."Source Currency Code" := "Currency Code";
    GenJnlLine."Source Currency Amount" := GenJnlLine.Amount;
    GenJnlLine.Correction := Correction;
    ...

    Vorhandenen Code 3

    ...   IF ICGenJnlLineNo > 0 THEN
    PostICGenJnl;

    // Delete the following lines.
    IF Invoice AND ("Document Type" = "Document Type"::Order) AND
    ("Prepayment Type" = "Prepayment Type"::Advance)
    THEN
    SalesPostAdvances.PostInvoiceCorrection(SalesHeader,SalesInvHeader,GenJnlPostLine,TempJnlLineDim);
    // End of the deleted lines.

    InvtSetup.GET;
    IF InvtSetup."Automatic Cost Adjustment" <>
    InvtSetup."Automatic Cost Adjustment"::Never
    ...

    Neuer Code 3

    ...  IF ICGenJnlLineNo > 0 THEN
    PostICGenJnl;

    InvtSetup.GET;
    IF InvtSetup."Automatic Cost Adjustment" <>
    InvtSetup."Automatic Cost Adjustment"::Never
    ...

  3. Fügen Sie eine neue lokale Variable in die Funktion OnRun in die Purch.-Post, Codeunit (90) wie folgt:
    AmountInvoiced: Dezimal
  4. Ändern Sie den Code in der Funktion OnRun der Purch.-Post, Codeunit (90) wie folgt:

    Vorhandener Code 1

    ...  TempDocDim.SETRANGE("Table ID",DATABASE::"Purchase Header");
    DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim);
    GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim);

    // Balancing account
    IF "Bal. Account No." <>'' THEN BEGIN
    IF GUIALLOWED THEN
    ...

    Neuer Code 1

    ...  TempDocDim.SETRANGE("Table ID",DATABASE::"Purchase Header");
    DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim);
    GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim);

    // Add the following lines.
    IF Invoice AND ("Document Type" = "Document Type"::Order) AND
    ("Prepayment Type" = "Prepayment Type"::Advance)
    THEN
    PurchPostAdvances.PostInvoiceCorrection(PurchHeader,PurchInvHeader,GenJnlPostLine,TempJnlLineDim,AmountInvoiced);
    //End of the added lines.

    // Balancing account
    IF "Bal. Account No." <>'' THEN BEGIN
    IF GUIALLOWED THEN
    ...

    Vorhandener Code 2

    ...  GenJnlLine."Bal. Account No." := "Bal. Account No.";
    GenJnlLine."Currency Code" := "Currency Code";
    GenJnlLine.Amount := TotalPurchLine."Amount Including VAT" +

    // Delete the following line.
    VendLedgEntry."Remaining Pmt. Disc. Possible";
    // End of the deleted line.

    GenJnlLine.Correction := Correction;
    GenJnlLine."Source Currency Code" := "Currency Code";
    GenJnlLine."Source Currency Amount" := GenJnlLine.Amount;
    ...

    Neuer Code 2

    ...  GenJnlLine."Bal. Account No." := "Bal. Account No.";
    GenJnlLine."Currency Code" := "Currency Code";
    GenJnlLine.Amount := TotalPurchLine."Amount Including VAT" +

    // Add the following line.
    VendLedgEntry."Remaining Pmt. Disc. Possible" -
    AmountInvoiced;
    //End of the added line.

    GenJnlLine.Correction := Correction;
    GenJnlLine."Source Currency Code" := "Currency Code";
    GenJnlLine."Source Currency Amount" := GenJnlLine.Amount;
    ...

    Vorhandenen Code 3

    ...   IF ICGenJnlLineNo > 0 THEN
    PostICGenJnl;

    // Delete the following lines.
    IF Invoice AND ("Document Type" = "Document Type"::Order) AND
    ("Prepayment Type" = "Prepayment Type"::Advance)
    THEN
    PurchPostAdvances.PostInvoiceCorrection(PurchHeader,PurchInvHeader,GenJnlPostLine,TempJnlLineDim);
    // End of the deleted lines.

    InvtSetup.GET;
    IF InvtSetup."Automatic Cost Adjustment" <>
    InvtSetup."Automatic Cost Adjustment"::Never
    ...

    Neuer Code 3

    ... IF ICGenJnlLineNo > 0 THEN
    PostICGenJnl;

    InvtSetup.GET;
    IF InvtSetup."Automatic Cost Adjustment" <>
    InvtSetup."Automatic Cost Adjustment"::Never
    ...

  5. Fügen Sie eine neue lokale Variable in der Funktion PostInvoiceCorrection in den Vertrieb-Beitrag erhöht, Codeunit (26585) wie folgt:
    AmountInvoiced: Dezimal
  6. Ändern Sie den Code in der Funktion PostInvoiceCorrection in den Vertrieb-Beitrag erhöht, Codeunit (26585) wie folgt:

    Vorhandener code

    ...  LineRelation."Deducted Amount" := LineRelation."Deducted Amount" + AmountToDeduct;
    LineRelation.MODIFY;

    CalcLinkedPmtAmountToApply(LetterLine,AmountToDeduct,LinkedAdvanceEntry);
    IF LetterLine."VAT Amount" <>0 THEN // NO VAT handling
    PostVATCorrection(
    ...

    Neuer code

    ...  LineRelation."Deducted Amount" := LineRelation."Deducted Amount" + AmountToDeduct;
    LineRelation.MODIFY;

    // Add the following line.
    AmountInvoiced += AmountToDeduct;
    //End of the added line.

    CalcLinkedPmtAmountToApply(LetterLine,AmountToDeduct,LinkedAdvanceEntry);
    IF LetterLine."VAT Amount" <>0 THEN // NO VAT handling
    PostVATCorrection(
    ...

  7. Fügen Sie eine neue lokale Variable in der Funktion PostInvoiceCorrection in der Bestellung buchen erhöht, Codeunit (26586) wie folgt:
    AmountInvoiced: Dezimal
  8. Ändern Sie den Code in der Funktion PostInvoiceCorrection in der Bestellung buchen erhöht, Codeunit (26586) wie folgt:

    Vorhandener code

    ...  LineRelation."Deducted Amount" := LineRelation."Deducted Amount" + AmountToDeduct;
    LineRelation.MODIFY;

    CalcLinkedPmtAmountToApply(LetterLine,AmountToDeduct,LinkedAdvanceEntry);
    IF LetterLine."VAT Amount" <>0 THEN // NO VAT handling
    PostVATCorrection(
    ...

    Neuer code

    ...  LineRelation."Deducted Amount" := LineRelation."Deducted Amount" + AmountToDeduct;
    LineRelation.MODIFY;

    // Add the following line.
    AmountInvoiced += AmountToDeduct;
    //End of the added line.

    CalcLinkedPmtAmountToApply(LetterLine,AmountToDeduct,LinkedAdvanceEntry);
    IF LetterLine."VAT Amount" <>0 THEN // NO VAT handling
    PostVATCorrection(
    ...


Voraussetzungen

Eastern Europäische Version von Microsoft Dynamics NAV 5.0 SP1 mit Feature Pack 1 verfügen, um diesen Hotfix installieren müssen.

Informationen zur Deinstallation

Dieser Hotfix kann nicht entfernt werden.

Status


Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.
Hinweis Dies ist ein im Schnellverfahren veröffentlichter Artikel, der direkt in der Microsoft Support-Organisation erstellt wurde. Die hierin enthaltenen Informationen werden ohne Mängelgewähr in Reaktion auf neue Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung kann das Material möglicherweise typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Weitere Hinweise finden Sie unter Geschäftsbedingungen .