Ακόμα και όταν δεν έχετε το δικαίωμα να εργαστείτε με Cartera στην ισπανική έκδοση του Microsoft Dynamics NAV 2009, μπορείτε να συσχετίσετε μια πληρωμή και τεχνική από εγγραφές καθολικού πελατών ή προμηθευτών. Το πρόβλημα είναι ότι αν "χωρίς δικαιώματα Cartera" εφαρμογή αυτών των εγγράφων (πληρωμής και τιμολόγησης) του εκκαθαριστικού παραμένει "Άνοιγμα" στα έγγραφα Cartera απαίτησης ή πρέπει να πληρωθούν. Αυτό προκαλεί ασυνέπειες στη βάση δεδομένων. Αυτό το ζήτημα παρουσιάζεται στο ακόλουθο προϊόν:
-
Για την ισπανική έκδοση του Microsoft Dynamics NAV 2009 R2
-
Την ισπανική έκδοση του Microsoft Dynamics NAV 2009 SP1
Προτεινόμενη αντιμετώπιση
Πληροφορίες άμεσης επιδιόρθωσης
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV 2009 ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.
Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ενδέχεται να να ακυρωθούν, εάν έναν επαγγελματία τεχνικής υποστήριξης για το Microsoft Dynamics και σχετικά προϊόντα προσδιορίζει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.
Πληροφορίες εγκατάστασης
Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, είτε σιωπηρή είτε ρητή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία διαδικασιών και τον εντοπισμό σφαλμάτων σε αυτές. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας. Ωστόσο, δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.
Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, επιβεβαιώστε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Dynamics NAV έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει υπηρεσίες Microsoft Dynamics NAV εφαρμογών διακομιστή (NAS). Θα πρέπει να το πρόγραμμα-πελάτη μόνο χρήστη που είναι συνδεδεμένος κατά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης.
Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε μια άδεια χρήσης του προγραμματιστή.
Συνιστούμε ότι ο λογαριασμός χρήστη στο παράθυρο "Συνδέσεις Windows" ή στο παράθυρο συνδέσεις βάσης δεδομένων να αντιστοιχιστεί το "SUPER" αναγνωριστικό ρόλου. Εάν ο λογαριασμός χρήστη δεν μπορεί να αντιστοιχιστεί το Αναγνωριστικό ρόλου "SUPER", πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:
-
Το δικαίωμα "Τροποποίηση" για το αντικείμενο που θα αλλάξετε.
-
Τα δικαιώματα εκτέλεσης για το αντικείμενο 5210 Αναγνωριστικό αντικειμένου συστήματος και για την 9015 Αναγνωριστικό αντικειμένου συστήματος
το αντικείμενο.
Σημείωση Δεν πρέπει να έχετε δικαιώματα για τους χώρους αποθήκευσης δεδομένων, εκτός και αν έχετε να εκτελέσετε επιδιόρθωση δεδομένων.
Αλλαγές κώδικα
Σημείωση πάντα δοκιμή κώδικα διορθώνει σε ελεγχόμενο περιβάλλον πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής. Πριν από την εφαρμογή της αλλαγής, εισαγάγετε όλες τις ενημερωμένες εκδόσεις SEPA.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:
-
Για να αλλάξετε τον κωδικό σε το καθολικό Variablesin το Mερισμός Εγγραφών Λογιστικής-μονάδα κώδικα γραμμή καταχώρησης (12) ως εξής:
Υπάρχοντα κώδικα...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;
...Αντικατάσταση κώδικα
...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;
... -
Να αλλάξετε τον κωδικό σε το ApplyCustLedgEntryσυνάρτηση στο το Mερισμός Εγγραφών Λογιστικής-μονάδα κώδικα γραμμή καταχώρησης (12) ως εξής:
Υπάρχοντα κωδικό 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");
...Αντικατάσταση κώδικα 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");
...Υπάρχοντα κώδικα 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
...Αντικατάσταση κώδικα 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... -
Να αλλάξετε τον κωδικό στη συνάρτηση UnapplyCustLedgEntry στο το Mερισμός Εγγραφών Λογιστικής-μονάδα κώδικα γραμμή καταχώρησης (12) ως εξής:
Υπάρχοντα κώδικα...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
...Αντικατάσταση κώδικα
...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
... -
Να αλλάξετε τον κωδικό στη συνάρτηση ApplyVendLedgEntry στο το Mερισμός Εγγραφών Λογιστικής-μονάδα κώδικα γραμμή καταχώρησης (12) ως εξής:
Υπάρχοντα κωδικό 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");
...Αντικατάσταση κώδικα 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");
...Υπάρχοντα κώδικα 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)
...Αντικατάσταση κώδικα 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)
... -
Να αλλάξετε τον κωδικό στη συνάρτηση UnapplyVendLedgEntry στο το Mερισμός Εγγραφών Λογιστικής-μονάδα κώδικα γραμμή καταχώρησης (12) ως εξής:
Υπάρχοντα κώδικα...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)")
...Αντικατάσταση κώδικα
...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)")
... -
Να αλλάξετε τον κωδικό στη συνάρτηση CheckCarteraAccessPermissions στο το Mερισμός Εγγραφών Λογιστικής-μονάδα κώδικα γραμμή καταχώρησης (12) ως εξής:
Υπάρχοντα κώδικα...CLEAR(GenJnlLine2);
EXIT(IsOK);
END;
BEGIN
END.
}
}
...Αντικατάσταση κώδικα
...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.
}
}
...
Προϋποθέσεις
Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα, για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:
-
Για την ισπανική έκδοση του Microsoft Dynamics NAV 2009 R2
-
Την ισπανική έκδοση του Microsoft Dynamics NAV 2009 SP1
Πληροφορίες κατάργησης
Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Σημείωση Αυτό είναι ένα άρθρο "ΤΑΧΕΙΑΣ ΔΗΜΟΣΙΕΥΣΗΣ" που έχει δημιουργηθεί απευθείας από την εταιρεία υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν έγγραφο παρέχονται ως έχουν, ως απάντηση σε ζητήματα που προέκυψαν. Ως αποτέλεσμα της ταχύτητας διαθεσιμότητάς του, το υλικό ενδέχεται να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί οποιαδήποτε στιγμή, χωρίς προειδοποίηση. Για άλλα θέματα, ανατρέξτε στην ενότητα " Όροι χρήσης".