Η αναφορά DTA Suggest Vendor Payment (3010546) και η αναφορά LSV Suggest Collection (3010831) προτείνουν εσφαλμένες γραμμές στην ελβετική έκδοση του Microsoft Dynamics NAV

Ισχύει για
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Microsoft Dynamics NAV 5.0 Service Pack 1

Αυτό το άρθρο ισχύει για το Microsoft Dynamics NAV για τις ακόλουθες χώρες και τοπικές ρυθμίσεις γλώσσας.

  • Γαλλικά (Ελβετίας) (fr-ch)
  • Γερμανικά (Ελβετίας) (gr-ch)
  • Ιταλικά (Ελβετίας) (it-ch)

Συμπτώματα

Ας υποθέσουμε ότι καταχωρείτε ένα τιμολόγιο αγοράς ή ένα τιμολόγιο πωλήσεων στην ελβετική έκδοση του Microsoft Dynamics NAV. Όταν εκτελείτε την έκθεση DTA Suggest Vendor Payment (3010546) στις εγγραφές πληρωμών ή την αναφορά LSV Suggest Collection (3010831) στη λίστα εγγραφών LSV χρησιμοποιώντας μια ημερομηνία καταχώρησης που είναι παλαιότερη από την ημερομηνία καταχώρησης του τιμολογίου, προτείνονται εσφαλμένες γραμμές. Επομένως, η ημερομηνία καταχώρησης είναι εσφαλμένη στις λεπτομερείς καταχωρήσεις καθολικού πελάτη ή στις λεπτομερείς καταχωρήσεις leger προμηθευτή μετά την καταχώρηση των γραμμών. Μερικές φορές δεν μπορείτε καν να δημοσιεύσετε τις γραμμές και να λάβετε ένα συνεπές μήνυμα σφάλματος.
Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:

  • Η ελβετική έκδοση του Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Η ελβετική έκδοση του Microsoft Dynamics NAV 2009
  • Η ελβετική έκδοση του Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
  • Η ελβετική έκδοση του Microsoft Dynamics NAV 5.0

      

Αιτία

Αυτό το πρόβλημα παρουσιάζεται επειδή λείπει μια επιταγή στην αναφορά DTA Suggest Vendor Payment (3010546) και στην αναφορά LSV Suggest Collection (3010831). Ο έλεγχος εισάγεται για να αποφευχθεί η δημιουργία γραμμής πληρωμής που έχει ημερομηνία καταχώρισης νωρίτερα από την ημερομηνία καταχώρισης του τιμολογίου.

Επίλυση

Πληροφορίες επείγουσας επιδιόρθωσης

Μια υποστηριζόμενη επείγουσα επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η ενέργεια προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε το μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, συνιστάται να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.

Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που προκύπτουν κανονικά για κλήσεις υποστήριξης ενδέχεται να ακυρωθούν, εάν ένας επαγγελματίας τεχνικής υποστήριξης για το Microsoft Dynamics και τα σχετικά προϊόντα προσδιορίσει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση, θα ισχύσουν οι συνηθισμένες χρεώσεις υποστήριξης.

            
          

Πληροφορίες εγκατάστασης

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για απεικόνιση, χωρίς καμία εγγύηση, ρητή ή σιωπηρή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που επιδεικνύεται και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας βοηθήσουν να εξηγήσετε τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παρέχουν πρόσθετες λειτουργίες ούτε θα δημιουργήσουν διαδικασίες για να ικανοποιήσουν τις συγκεκριμένες απαιτήσεις σας.

Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, βεβαιωθείτε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Navision έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει χρήστες προγράμματος-πελάτη Microsoft Navision Application Services (NAS). Θα πρέπει να είστε ο μόνος χρήστης-πελάτης που είναι συνδεδεμένος όταν υλοποιείτε αυτήν την επείγουσα επιδιόρθωση.

Για να υλοποιήσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε άδεια προγραμματιστή.

Συνιστούμε ο λογαριασμός χρήστη στο παράθυρο Συνδέσεις των Windows ή στο παράθυρο Συνδέσεις βάσης δεδομένων να έχει το αναγνωριστικό ρόλου "SUPER". Εάν δεν είναι δυνατή η εκχώρηση του αναγνωριστικού ρόλου "SUPER" στο λογαριασμό χρήστη, πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:

  • Το δικαίωμα τροποποίησης για το αντικείμενο που θα αλλάξετε.
  • Το δικαίωμα εκτέλεσης για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 5210 και για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 9015.

                
Σημείωση Δεν χρειάζεται να έχετε δικαιώματα στους χώρους αποθήκευσης δεδομένων, εκτός εάν πρέπει να εκτελέσετε επιδιόρθωση δεδομένων.

Αλλαγές κώδικα

Σημείωση Ελέγχετε πάντα τις επιδιορθώσεις κώδικα σε ελεγχόμενο περιβάλλον, πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής σας.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:

  1. Προσθέστε μια νέα καθολική μεταβλητή στην έκθεση DTA Suggest Vendor Payment (3010546) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:

    • Όνομα: VendorLedgEntryTemp@1150058
    • Τύπος δεδομένων: Εγγραφή
    • Δευτερεύων τύπος: Καταχώρηση καθολικού προμηθευτή
    • Προσωρινή: Ναι
  2. Προσθέστε μια νέα σταθερά κειμένου στην έκθεση DTA Suggest Vendor Payment (3010546) και, στη συνέχεια, καθορίστε τη σταθερά ως εξής:

    • Όνομα: Text50000@1150064
    • Σταθερή τιμή: ENU=Υπάρχουν μία ή περισσότερες καταχωρήσεις για τις οποίες δεν έχουν γίνει προτάσεις πληρωμής, επειδή οι ημερομηνίες αποστολής των καταχωρήσεων είναι μεταγενέστερες από την ημερομηνία καταχώρησης στο παράθυρο αιτήματος ομαδικής εργασίας DTA Suggest Πληρωμές Vendor. Θέλετε να δείτε τις καταχωρήσεις;
  3. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα OnPreReport στην αναφορά DTA Suggest Vendor Payment (3010546):

    VendorLedgEntryTemp.DELETEALL;
    
  4. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα OnPostReport στην αναφορά DTA Suggest Vendor Payment (3010546):

    COMMIT;
    IF NOT VendorLedgEntryTemp.ISEMPTY THEN
      IF CONFIRM(Text50000) THEN
        FORM.RUNMODAL(0,VendorLedgEntryTemp);
    
  5. Αλλάξτε τον κωδικό στο έναυσμα Προμηθευτής - OnPostDataItem στην αναφορά DTA Πρόταση πληρωμής προμηθευτή (3010546) ως εξής:
    Υπάρχων κώδικας

    d.CLOSE;
    IF NoOfLinesInserted > 0 THEN BEGIN
      WriteBalAccountLine(ToGlLine);
      MESSAGE(Text011,NoOfLinesInserted,GlSetup."LCY Code",TotalAmtLCY);
      IF NoOfVendorsWithCM > 0 THEN
        MESSAGE(Text013 + Text014 + Text017,NoOfVendorsWithCM,VendWithCmTxt)
    END ELSE
      MESSAGE(Text018,FromDueDate,ToDueDate);
    

    Κωδικός αντικατάστασης

    d.CLOSE;
    IF VendorLedgEntryTemp.ISEMPTY THEN BEGIN
      IF NoOfLinesInserted > 0 THEN BEGIN
        WriteBalAccountLine(ToGlLine);
        MESSAGE(Text011,NoOfLinesInserted,GlSetup."LCY Code",TotalAmtLCY);
        IF NoOfVendorsWithCM > 0 THEN
          MESSAGE(Text013 + Text014 + Text017,NoOfVendorsWithCM,VendWithCmTxt)
      END ELSE
        MESSAGE(Text018,FromDueDate,ToDueDate);
    END;
    
  6. Αλλάξτε τον κωδικό στη συνάρτηση WritePmtSuggestLines στην αναφορά DTA Πρόταση πληρωμής προμηθευτή (3010546) ως εξής:
    Υπάρχων κωδικός 1

    // CH2316.begin
     VendorLedgerEntryNo := VendEntry."Entry No.";
    // CH2316.end
    WITH ToGlLine DO BEGIN
      INIT;
    ...
    

    Κωδικός αντικατάστασης 1

    IF VendEntry."Posting Date" <= PostDate THEN BEGIN // CH0001
      // CH2316.begin
      VendorLedgerEntryNo := VendEntry."Entry No.";
      // CH2316.end
      WITH ToGlLine DO BEGIN
        INIT;
    ...
    

    Υπάρχων κωδικός 2

    ...
    VendorLedgerEntry2.GET(VendorLedgerEntryNo);
    VendorLedgerEntry2."On Hold" := 'DTA';
    VendorLedgerEntry2."Accepted Payment Tolerance" := 0;
    VendorLedgerEntry2.MODIFY;
    // CH2316.END
    

    Κωδικός αντικατάστασης 2

    ...
      VendorLedgerEntry2.GET(VendorLedgerEntryNo);
      VendorLedgerEntry2."On Hold" := 'DTA';
      VendorLedgerEntry2."Accepted Payment Tolerance" := 0;
      VendorLedgerEntry2.MODIFY;
    // CH2316.END
    END ELSE BEGIN
      VendorLedgEntryTemp := VendEntry;
      VendorLedgEntryTemp.INSERT;
    END;
    
  7. Προσθέστε μια νέα καθολική μεταβλητή στην αναφορά LSV Suggest Collection (3010831) και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:

    • Όνομα: TempCustLedgEntry@1150042
    • Τύπος δεδομένων: Εγγραφή
    • Δευτερεύων τύπος: Καταχώρηση καθολικού πελάτη
    • Προσωρινή: Ναι
  8. Προσθέστε μια νέα σταθερά κειμένου στην αναφορά LSV Suggest Collection (3010831) και, στη συνέχεια, καθορίστε τη σταθερά ως εξής:

    • Όνομα: Text50000@1150064
    • Σταθερή τιμή: ENU=Υπάρχουν μία ή περισσότερες καταχωρήσεις για τις οποίες δεν έχουν γίνει προτάσεις συλλογής, επειδή οι ημερομηνίες δημοσίευσης των καταχωρήσεων είναι μεταγενέστερες από την ημερομηνία συλλογής στο παράθυρο αίτησης εργασίας παρτίδας συλλογής προτάσεων LSV. Θέλετε να δείτε τις καταχωρήσεις;
  9. Αλλάξτε τον κώδικα στο έναυσμα OnPreReport στην αναφορά LSV Suggest Collection (3010831) ως εξής:
    Υπάρχων κώδικας

    IF LsvJournal."LSV Bank Code" = '' THEN
      ERROR(Text020);
    

    Κωδικός αντικατάστασης

    IF LsvJournal."LSV Bank Code" = '' THEN
      ERROR(Text020);
    TempCustLedgEntry.DELETEALL;
    
  10. Προσθέστε τον ακόλουθο κώδικα στο έναυσμα OnPostReport στην αναφορά LSV Suggest Collection (3010831):

    COMMIT;
    IF NOT TempCustLedgEntry.ISEMPTY THEN
      IF CONFIRM(Text50000) THEN
        FORM.RUNMODAL(0,TempCustLedgEntry);
    
  11. Αλλάξτε τον κωδικό στο έναυσμα Customer - OnPostDataItem στην αναφορά LSV Suggest Collection (3010831) ως εξής:
    Υπάρχων κώδικας

    d.CLOSE;
    IF NoOfLinesInserted > 0 THEN BEGIN
      MESSAGE(Text007,NoOfLinesInserted,LsvSetup."LSV Currency Code",TotalAmt);
      IF LsvJournal."LSV Journal Description" = '' THEN BEGIN
        LsvJournal."LSV Journal Description" :=
          FORMAT(STRSUBSTNO(Text021,LsvSetup."LSV Currency Code",FromDueDate,ToDueDate,Customer.GETFILTERS)
            ,-MAXSTRLEN(LsvJournal."LSV Journal Description"));
      END;
      LsvJournal."Credit Date" := CollectionDate;
      LsvJournal.MODIFY;
      // CH2813.BEGIN
      IF NoOfCustWithCreditMemo > 0 THEN
        IF NOT CONFIRM(Text009 + Text010 + Text012 + Text013,TRUE,NoOfCustWithCreditMemo,CustCreditMemoTxt) THEN
          ERROR(Text014);
      // CH2813.END
    END ELSE
      MESSAGE(Text015,FromDueDate,ToDueDate);
    

    Κωδικός αντικατάστασης

    d.CLOSE;
    IF TempCustLedgEntry.ISEMPTY THEN BEGIN // CH0001
      IF NoOfLinesInserted > 0 THEN BEGIN
        MESSAGE(Text007,NoOfLinesInserted,LsvSetup."LSV Currency Code",TotalAmt);
        IF LsvJournal."LSV Journal Description" = '' THEN BEGIN
          LsvJournal."LSV Journal Description" :=
            FORMAT(STRSUBSTNO(Text021,LsvSetup."LSV Currency Code",FromDueDate,ToDueDate,Customer.GETFILTERS)
              ,-MAXSTRLEN(LsvJournal."LSV Journal Description"));
        END;
        LsvJournal."Credit Date" := CollectionDate;
        LsvJournal.MODIFY;
        // CH2813.BEGIN
        IF NoOfCustWithCreditMemo > 0 THEN
          IF NOT CONFIRM(Text009 + Text010 + Text012 + Text013,TRUE,NoOfCustWithCreditMemo,CustCreditMemoTxt) THEN
            ERROR(Text014);
        // CH2813.END
      END ELSE
        MESSAGE(Text015,FromDueDate,ToDueDate);
    END;
    
  12. Αλλάξτε τον κώδικα στη συνάρτηση WritePmtSuggestLines στην αναφορά LSV Suggest Collection (3010831) ως εξής:
    Υπάρχων κωδικός 1

    // Collection amt: Cust. Entry amount - Cash disc. possible
    WITH ToLSVJourLine DO BEGIN
      // Ensure, that the Entry is only once in the LSV Journal Line
      LSVJourLineCheck.SETCURRENTKEY("Applies-to Doc. No.");
      LSVJourLineCheck.SETRANGE("Applies-to Doc. No.",ActCustLedgEntry."Document No.");
    ...
    

    Κωδικός αντικατάστασης 1

    // Collection amt: Cust. Entry amount - Cash disc. possible
    WITH ToLSVJourLine DO BEGIN
      IF CustLedgEntry."Posting Date" <= CollectionDate THEN BEGIN
        // Ensure, that the Entry is only once in the LSV Journal Line
        LSVJourLineCheck.SETCURRENTKEY("Applies-to Doc. No.");
        LSVJourLineCheck.SETRANGE("Applies-to Doc. No.",ActCustLedgEntry."Document No.");
    ...
    

    Υπάρχων κωδικός 2

    ...
      TotalAmt := TotalAmt + "Collection Amount";
      d.UPDATE(3,TotalAmt);
      // CH2813.BEGIN
      EntriesPerCust := EntriesPerCust + 1;
      // CH2813.END
    END;
    

    Κωδικός αντικατάστασης 2

    ...
        TotalAmt := TotalAmt + "Collection Amount";
        d.UPDATE(3,TotalAmt);
        // CH2813.BEGIN
        EntriesPerCust := EntriesPerCust + 1;
        // CH2813.END
    
    //Add the follong lines.
      END ELSE BEGIN
        TempCustLedgEntry := CustLedgEntry;
        TempCustLedgEntry.INSERT;
      END;
    //End of the lines.
    
    END;
    

            
          

Προαπαιτούμενα

Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:

  • Η ελβετική έκδοση του Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Η ελβετική έκδοση του Microsoft Dynamics NAV 2009
  • Η ελβετική έκδοση του Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
  • Η ελβετική έκδοση του Microsoft Dynamics NAV 5.0

              

Πληροφορίες κατάργησης

Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Σημείωση Αυτό είναι ένα άρθρο "FAST PUBLISH" που δημιουργήθηκε απευθείας μέσα από τον οργανισμό υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν παρέχονται ως έχουν ως απάντηση σε αναδυόμενα ζητήματα. Ως αποτέλεσμα της ταχύτητας διάθεσής του, το υλικό μπορεί να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί ανά πάσα στιγμή χωρίς προειδοποίηση. Ανατρέξτε στους Όρους χρήσης για άλλα ζητήματα.