Auch wenn Sie nicht die Berechtigung zum Arbeiten mit Cartera in der spanischen Version von Microsoft Dynamics NAV 2009 verfügen, können Sie eine Zahlung und eine Zahlung vom Debitor oder Kreditor Posten anwenden. Das Problem ist noch beim "ohne Cartera Berechtigungen" diese Dokumente (Zahlung und Stückliste) anwenden die Stückliste "Öffnen" in der Cartera Debitoren oder Kreditoren. Dadurch werden Inkonsistenzen in der Datenbank. Dieses Problem tritt in den folgenden Produkten:
-
Die spanische Version von Microsoft Dynamics NAV 2009 R2
-
Die spanische Version von Microsoft Dynamics NAV 2009 SP1
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 2009 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-Supporttechniker helfen der Erläuterung der Funktionalität bestimmter Prozeduren. Allerdings werden sie diese Beispiele nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren erstellen, die Ihren spezifischen Bedürfnisse erfüllen.
Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Dynamics NAV-Clientbenutzer vom System abgemeldet werden. Hierzu gehören Dienste Microsoft Dynamics NAV Application Server (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 keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.
Ändern von Code
Hinweis testen Code-Updates immer in einer kontrollierten Umgebung, bevor Sie Updates auf Ihrem Computer anwenden. Importieren Sie bevor Sie die Änderung anwenden alle SEPA-Updates.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:-
Ändern Sie den Code in der globalen Variablesin gen.-Post Line Codeunit (12) wie folgt:
Vorhandener code...Text1100010@1100016 : TextConst 'ENU=Remove it from its payment order and try again.;ESP=B¢rrelo de la orden de pago e int‚ntelo de nuevo.';
Text1100011@1100021 : TextConst 'ENU=Document Type is " " in Line %1. This posting will not realize the VAT, do you want to proceed?;ESP=El tipo de documento es " " en la l¡nea %1. Esta contabilizaci¢n no tendr en cuenta el IVA, ¨desea continuar?'; Text1100012@1100022 : TextConst 'ENU=The posting process has been cancelled by the user.;ESP=El proceso de registro ha sido cancelado por el usuario.'; AppliedAmountLCY2@1100053 : Decimal; AppliesToDocType@1100023 : Integer; PROCEDURE GetGLReg@10(VAR NewGLReg@1000 : Record 45); BEGIN NewGLReg := GLReg; END; ...Neuer code
...Text1100010@1100016 : TextConst 'ENU=Remove it from its payment order and try again.;ESP=B¢rrelo de la orden de pago e int‚ntelo de nuevo.';
Text1100011@1100021 : TextConst 'ENU=Document Type is " " in Line %1. This posting will not realize the VAT, do you want to proceed?;ESP=El tipo de documento es " " en la l¡nea %1. Esta contabilizaci¢n no tendr en cuenta el IVA, ¨desea continuar?'; Text1100012@1100022 : TextConst 'ENU=The posting process has been cancelled by the user.;ESP=El proceso de registro ha sido cancelado por el usuario.'; AppliedAmountLCY2@1100053 : Decimal; AppliesToDocType@1100023 : Integer; // Add the following line. Text1100013@1100026 : TextConst 'ENU=You do not have permissions to apply or unapply documents in the Cartera Module.'; // End of the added line. PROCEDURE GetGLReg@10(VAR NewGLReg@1000 : Record 45); BEGIN NewGLReg := GLReg; END; ... -
Ändern Sie den Code in der ApplyCustLedgEntryFunktion im Fibu Buch.-Post Line Codeunit (12) wie folgt:
Vorhandener Code 1...OldCustLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No.");
OldCustLedgEntry.SETRANGE("Customer No.",NewCVLedgEntryBuf."CV No."); OldCustLedgEntry.SETRANGE(Open,TRUE); OldCustLedgEntry.FINDFIRST; OldCustLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF AppManagement.AccessToCartera THEN DocPost.CheckAppliedReceivableDoc( OldCustLedgEntry,GenJnlLine."System-Created Entry"); ...Neuer Code 1
...OldCustLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No.");
OldCustLedgEntry.SETRANGE("Customer No.",NewCVLedgEntryBuf."CV No."); OldCustLedgEntry.SETRANGE(Open,TRUE); OldCustLedgEntry.FINDFIRST; // Add the following line. CheckCarteraAccessPermissions(OldCustLedgEntry."Document Situation"); // End of the added line. OldCustLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF AppManagement.AccessToCartera THEN DocPost.CheckAppliedReceivableDoc( OldCustLedgEntry,GenJnlLine."System-Created Entry"); ...Vorhandener Code 2
...// Check Cust Ledger Entry and add to Temp.
IF SalesSetup."Appln. between Currencies" = SalesSetup."Appln. between Currencies"::None THEN OldCustLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldCustLedgEntry.FINDSET(FALSE,FALSE) THEN // Delete the following lines. REPEAT IF GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldCustLedgEntry."Currency Code", GenJnlLine."Account Type"::Customer, FALSE) THEN BEGIN IF (OldCustLedgEntry."Posting Date" > ApplyingDate) AND (OldCustLedgEntry."Applies-to ID" <> '') THEN ApplyingDate := OldCustLedgEntry."Posting Date"; TempOldCustLedgEntry := OldCustLedgEntry; TempOldCustLedgEntry.INSERT; END; UNTIL OldCustLedgEntry.NEXT=0; // End of the deleted lines. TempOldCustLedgEntry.SETRANGE(Positive,NewCVLedgEntryBuf."Remaining Amount" > 0); IF TempOldCustLedgEntry.FIND('-') THEN BEGIN ...Neuer Code 2
...// Check Cust Ledger Entry and add to Temp.
IF SalesSetup."Appln. between Currencies" = SalesSetup."Appln. between Currencies"::None THEN OldCustLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldCustLedgEntry.FINDSET(FALSE,FALSE) THEN // Add the following lines. REPEAT CheckCarteraAccessPermissions(OldCustLedgEntry."Document Situation"); IF GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldCustLedgEntry."Currency Code", GenJnlLine."Account Type"::Customer, FALSE) THEN BEGIN IF (OldCustLedgEntry."Posting Date" > ApplyingDate) AND (OldCustLedgEntry."Applies-to ID" <> '') THEN ApplyingDate := OldCustLedgEntry."Posting Date"; TempOldCustLedgEntry := OldCustLedgEntry; TempOldCustLedgEntry.INSERT; END; UNTIL OldCustLedgEntry.NEXT=0; // End of the added lines. TempOldCustLedgEntry.SETRANGE(Positive,NewCVLedgEntryBuf."Remaining Amount" > 0); IF TempOldCustLedgEntry.FIND('-') THEN BEGIN... -
Ändern Sie den Code in der Funktion UnapplyCustLedgEntry im Fibu Buch.-Post Line Codeunit (12) wie folgt:
Vorhandener code...DtldCustLedgEntry2.SETRANGE("Customer No.",DtldCustLedgEntry."Customer No.");
DtldCustLedgEntry2.SETFILTER("Entry Type",'>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry"); UnapplyVATEntries := FALSE; DtldCustLedgEntry2.FINDSET; REPEAT DtldCustLedgEntry2.TESTFIELD(Unapplied,FALSE); IF (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)") THEN ...Neuer code
...DtldCustLedgEntry2.SETRANGE("Customer No.",DtldCustLedgEntry."Customer No.");
DtldCustLedgEntry2.SETFILTER("Entry Type",'>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry"); UnapplyVATEntries := FALSE; DtldCustLedgEntry2.FINDSET; REPEAT // Add the following line. CheckCarteraAccessPermissions(DtldCustLedgEntry2."Document Situation"); // End of the added line. DtldCustLedgEntry2.TESTFIELD(Unapplied,FALSE); IF (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR (DtldCustLedgEntry2."Entry Type" = DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)") THEN ... -
Ändern Sie den Code in der Funktion ApplyVendLedgEntry in der Fibu Buch.-Post Line Codeunit (12) wie folgt:
Vorhandener Code 1...OldVendLedgEntry.SETRANGE("Document Type",GenJnlLine."Applies-to Doc. Type");
OldVendLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No."); OldVendLedgEntry.SETRANGE("Vendor No.",NewCVLedgEntryBuf."CV No."); OldVendLedgEntry.SETRANGE(Open,TRUE); OldVendLedgEntry.FINDFIRST; OldVendLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF AppManagement.AccessToCartera THEN DocPost.CheckAppliedPayableDoc( OldVendLedgEntry,GenJnlLine."System-Created Entry"); ...Neuer Code 1
...OldVendLedgEntry.SETRANGE("Document Type",GenJnlLine."Applies-to Doc. Type");
OldVendLedgEntry.SETRANGE("Bill No.",NewCVLedgEntryBuf."Applies-to Bill No."); OldVendLedgEntry.SETRANGE("Vendor No.",NewCVLedgEntryBuf."CV No."); OldVendLedgEntry.SETRANGE(Open,TRUE); OldVendLedgEntry.FINDFIRST; // Add the following line. CheckCarteraAccessPermissions(OldVendLedgEntry."Document Situation"); // End of the added line. OldVendLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF AppManagement.AccessToCartera THEN DocPost.CheckAppliedPayableDoc( OldVendLedgEntry,GenJnlLine."System-Created Entry"); ...Vorhandener Code 2
...//Check and Move Ledger Entries to Temp
IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN REPEAT IF GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldVendLedgEntry."Currency Code", GenJnlLine."Account Type"::Vendor, FALSE) ...Neuer Code 2
...//Check and Move Ledger Entries to Temp
IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN REPEAT // Add the following line. CheckCarteraAccessPermissions(OldVendLedgEntry."Document Situation"); // End of the added line. IF GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldVendLedgEntry."Currency Code", GenJnlLine."Account Type"::Vendor, FALSE) ... -
Ändern Sie den Code in der Funktion UnapplyVendLedgEntry im Fibu Buch.-Post Line Codeunit (12) wie folgt:
Vorhandener code...DtldVendLedgEntry2.SETCURRENTKEY("Transaction No.","Vendor No.","Entry Type");
DtldVendLedgEntry2.SETRANGE("Transaction No.",DtldVendLedgEntry."Transaction No."); DtldVendLedgEntry2.SETRANGE("Vendor No.",DtldVendLedgEntry."Vendor No."); DtldVendLedgEntry2.SETFILTER("Entry Type",'>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry"); DtldVendLedgEntry2.FINDSET; UnapplyVATEntries := FALSE; REPEAT IF (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)") ...Neuer code
...DtldVendLedgEntry2.SETCURRENTKEY("Transaction No.","Vendor No.","Entry Type");
DtldVendLedgEntry2.SETRANGE("Transaction No.",DtldVendLedgEntry."Transaction No."); DtldVendLedgEntry2.SETRANGE("Vendor No.",DtldVendLedgEntry."Vendor No."); DtldVendLedgEntry2.SETFILTER("Entry Type",'>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry"); DtldVendLedgEntry2.FINDSET; // Add the following line. CheckCarteraAccessPermissions(DtldVendLedgEntry2."Document Situation"); // End of the added line. UnapplyVATEntries := FALSE; REPEAT IF (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Adjustment)") OR (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Adjustment)") OR (DtldVendLedgEntry2."Entry Type" = DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Adjustment)") ... -
Ändern Sie den Code in der Funktion CheckCarteraAccessPermissions in der Fibu Buch.-Post Line Codeunit (12) wie folgt:
Vorhandener code...CLEAR(GenJnlLine2);
EXIT(IsOK); END; BEGIN END. } } ...Neuer code
...CLEAR(GenJnlLine2);
EXIT(IsOK); END; // Add the following lines. LOCAL PROCEDURE CheckCarteraAccessPermissions@1100024(DocumentSituation@1170001 : ' ,Posted BG/PO,Closed BG/PO,BG/PO,Cartera,Closed Documents'); BEGIN IF (DocumentSituation <> DocumentSituation::" ") AND (NOT AppManagement.AccessToCartera) THEN ERROR(Text1100013); END; // End of the added lines. BEGIN END. } } ...
Voraussetzungen
Sie müssen eines der folgenden Produkte verfügen, um diesen Hotfix installieren:
-
Die spanische Version von Microsoft Dynamics NAV 2009 R2
-
Die spanische Version von Microsoft Dynamics NAV 2009 SP1
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.