Αυτό το άρθρο ισχύει για το Microsoft Dynamics NAV για όλες τις τοπικές ρυθμίσεις γλώσσας.
Συμπτώματα
Όταν εκτελείτε την αναφορά αποτίμησης αποθέματος στο Microsoft Dynamics NAV, παρατηρείτε ότι μια ποσότητα στοιχείου είναι μηδέν, ενώ το ποσό αξίας του στοιχείου δεν είναι μηδέν στο αποτέλεσμα. Αναμένετε ότι η τιμή του στοιχείου θα είναι μηδέν. Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV 5.0 Service Pack 1
Επίλυση
Πληροφορίες επείγουσας επιδιόρθωσης
Μια υποστηριζόμενη επείγουσα επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η ενέργεια προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε το μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, συνιστάται να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV 2009 ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.
Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που προκύπτουν κανονικά για κλήσεις υποστήριξης ενδέχεται να ακυρωθούν, εάν ένας επαγγελματίας τεχνικής υποστήριξης για το Microsoft Dynamics και τα σχετικά προϊόντα προσδιορίσει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση, θα ισχύσουν οι συνηθισμένες χρεώσεις υποστήριξης.
Πληροφορίες εγκατάστασης
Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για απεικόνιση, χωρίς καμία εγγύηση, ρητή ή σιωπηρή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που επιδεικνύεται και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας βοηθήσουν να εξηγήσετε τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παρέχουν πρόσθετες λειτουργίες ούτε θα δημιουργήσουν διαδικασίες για να ικανοποιήσουν τις συγκεκριμένες απαιτήσεις σας.
Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, βεβαιωθείτε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Navision έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει χρήστες προγράμματος-πελάτη Microsoft Navision Application Services (NAS). Θα πρέπει να είστε ο μόνος χρήστης-πελάτης που είναι συνδεδεμένος όταν υλοποιείτε αυτήν την επείγουσα επιδιόρθωση.
Για να υλοποιήσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε άδεια προγραμματιστή.
Συνιστούμε ο λογαριασμός χρήστη στο παράθυρο Συνδέσεις των Windows ή στο παράθυρο Συνδέσεις βάσης δεδομένων να έχει το αναγνωριστικό ρόλου "SUPER". Εάν δεν είναι δυνατή η εκχώρηση του αναγνωριστικού ρόλου "SUPER" στο λογαριασμό χρήστη, πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:
- Το δικαίωμα τροποποίησης για το αντικείμενο που θα αλλάξετε.
- Το δικαίωμα εκτέλεσης για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 5210 και για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 9015.
Σημείωση Δεν χρειάζεται να έχετε δικαιώματα στους χώρους αποθήκευσης δεδομένων, εκτός εάν πρέπει να εκτελέσετε επιδιόρθωση δεδομένων.
Αλλαγές κώδικα
Σημείωση Ελέγχετε πάντα τις επιδιορθώσεις κώδικα σε ελεγχόμενο περιβάλλον, πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής σας.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:
Προσθέστε τις ακόλουθες τοπικές μεταβλητές στη συνάρτηση IsAvgCostException στον πίνακα (5802):
- ItemLedgEntry@1002 : Εγγραφή 32
- xItemLedgEntry@1003 : Εγγραφή 32
- TempItemLedgEntry@1004 : ΠΡΟΣΩΡΙΝΗ εγγραφή 32
Αλλάξτε τον κωδικό στη συνάρτηση IsAvgCostException στον πίνακα (5802) ως εξής:
Υπάρχων κώδικας... IF ItemApplnEntry.AppliedInbndEntryExists("Item Ledger Entry No.",TRUE) THEN EXIT(TRUE); EXIT(FALSE); ...Κωδικός αντικατάστασης
... IF ItemApplnEntry.AppliedInbndEntryExists("Item Ledger Entry No.",TRUE) THEN EXIT(TRUE); // Add the following lines. IF "Item Ledger Entry Type" = "Item Ledger Entry Type"::Consumption THEN IF ItemApplnEntry.AppliedFromEntryExists("Item Ledger Entry No.") THEN REPEAT ItemLedgEntry.GET(ItemApplnEntry."Outbound Item Entry No."); IF ItemLedgEntry."Entry No." <> xItemLedgEntry."Entry No." THEN BEGIN xItemLedgEntry := ItemLedgEntry; ItemApplnEntry.GetVisitedEntries(ItemLedgEntry,TempItemLedgEntry); TempItemLedgEntry.SETCURRENTKEY("Item No.",Positive,"Location Code","Variant Code"); TempItemLedgEntry.SETRANGE("Item No.","Item No."); TempItemLedgEntry.SETRANGE(Positive,TRUE); TempItemLedgEntry.SETRANGE("Location Code","Location Code"); TempItemLedgEntry.SETRANGE("Variant Code","Variant Code"); IF NOT TempItemLedgEntry.ISEMPTY THEN EXIT(TRUE); END; UNTIL ItemApplnEntry.NEXT = 0; // End of the added lines. EXIT(FALSE); ...Προσθέστε τις ακόλουθες τοπικές μεταβλητές στη συνάρτηση AvgValueEntriesToAdjustExist στη μονάδα κώδικα (5895):
- CurrIsException@1009 : Δυαδική τιμή
- NextIsException@1010 : Boolean
Αλλάξτε τον κωδικό στη συνάρτηση AvgValueEntriesToAdjustExist στη μονάδα κώδικα (5895) ως εξής:
Υπάρχων κώδικας... IF "Valued By Average Cost" AND NOT Adjustment AND ("Valued Quantity" < 0) THEN BEGIN OutbndValueEntry := ValueEntry; OutbndValueEntry.INSERT; FindNextRange := FALSE; END; // Delete the following lines. IF IsAvgCostException THEN BEGIN AvgCostExceptionBuf.Number := "Entry No."; AvgCostExceptionBuf.INSERT; END; // End of the deleted lines. IF ("Entry Type" = "Entry Type"::Revaluation) OR ...Κωδικός αντικατάστασης
... IF "Valued By Average Cost" AND NOT Adjustment AND ("Valued Quantity" <0) THEN BEGIN OutbndValueEntry := ValueEntry; OutbndValueEntry.INSERT; FindNextRange := FALSE; END; // Add the following lines. IF NOT Adjustment THEN BEGIN CurrIsException := NextIsException; NextIsException := IsAvgCostException; IF NextIsException OR CurrIsException THEN BEGIN AvgCostExceptionBuf.Number := "Entry No."; AvgCostExceptionBuf.INSERT; END; END; // End of the added lines. IF ("Entry Type" = "Entry Type"::Revaluation) OR ...Αλλάξτε τον κωδικό στη μονάδα κώδικα προσαρμογής αποθέματος (5895) ως εξής:
Υπάρχων κώδικας... CODE ... LOCAL PROCEDURE AvgValueEntriesToAdjustExist@79(VAR OutbndValueEntry@1003 : Record 5802;VAR ExcludedValueEntry@1000 : Record 5802;VAR AvgCostAdjmtEntryPoint@1001 : Record 5804) : Boolean; ... IF FindNextRange THEN BEGIN AvgCostAdjmtEntryPoint."Valuation Date" := GetNextDate(AvgCostAdjmtEntryPoint."Valuation Date"); AvgValueEntriesToAdjustExist(OutbndValueEntry,ExcludedValueEntry,AvgCostAdjmtEntryPoint); END; ... LOCAL PROCEDURE IsExcludeEntryFromAvgCostCalc@36(ValueEntry@1000 : Record 5802;OutbndValueEntry@1001 : Record 5802;VAR ItemLedgEntryInChain@1003 : Record 32) : Boolean; ... IF NOT "Valued By Average Cost" THEN EXIT(FALSE); ItemLedgEntry.GET("Item Ledger Entry No."); IF ItemLedgEntry.Positive THEN EXIT(FALSE); // Delete the following line. EXIT(TRUE); // End of the deleted line. ...Κωδικός αντικατάστασης
... CODE ... LOCAL PROCEDURE AvgValueEntriesToAdjustExist@79(VAR OutbndValueEntry@1003 : Record 5802;VAR ExcludedValueEntry@1000 : Record 5802;VAR AvgCostAdjmtEntryPoint@1001 : Record 5804) : Boolean; ... IF FindNextRange THEN BEGIN AvgCostAdjmtEntryPoint."Valuation Date" := GetNextDate(AvgCostAdjmtEntryPoint."Valuation Date"); AvgValueEntriesToAdjustExist(OutbndValueEntry,ExcludedValueEntry,AvgCostAdjmtEntryPoint); END; // Add the following line. OutbndValueEntry.SETCURRENTKEY("Item Ledger Entry No."); // End of the added line. ... LOCAL PROCEDURE IsExcludeEntryFromAvgCostCalc@36(ValueEntry@1000 : Record 5802;OutbndValueEntry@1001 : Record 5802;VAR ItemLedgEntryInChain@1003 : Record 32) : Boolean; ... IF NOT "Valued By Average Cost" THEN EXIT(FALSE); ItemLedgEntry.GET("Item Ledger Entry No."); IF ItemLedgEntry.Positive THEN EXIT(FALSE); // Add the following line. EXIT("Item Ledger Entry No." > OutbndValueEntry."Item Ledger Entry No."); // End of the added line. ...
Προαπαιτούμενα
Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
Πληροφορίες κατάργησης
Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Παραπομπές
Σφάλμα VSTF: 235179
Σημείωση Αυτό είναι ένα άρθρο "FAST PUBLISH" που δημιουργήθηκε απευθείας μέσα από τον οργανισμό υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν παρέχονται ως έχουν ως απάντηση σε αναδυόμενα ζητήματα. Ως αποτέλεσμα της ταχύτητας διάθεσής του, το υλικό μπορεί να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί ανά πάσα στιγμή χωρίς προειδοποίηση. Ανατρέξτε στους Όρους χρήσης για άλλα ζητήματα.