Fehler "Der Unterschied muss null sein, bevor Sie dieses Checkbook abgleichen können" beim Abgleichen des Checkbooks unter Banktransaktionen auswählen

Dieser Artikel bietet eine Lösung für das Problem, dass die Differenz als null angezeigt wird, wenn Sie das Checkbook in Select Bank Transactions in Microsoft Dynamics GP (Banktransaktionen in Microsoft Dynamics GP auswählen) abgleichen.

Gilt für: Microsoft Dynamics GP, Microsoft Dynamics SL Bank Reconciliation
Ursprüngliche KB-Nummer: 851301

Symptome

Wenn Sie das Checkbook unter Banktransaktionen in Microsoft Dynamics GP auswählen abgleichen, wird der Unterschied als 0 (null) angezeigt, aber Sie erhalten die folgende Fehlermeldung:

Die Differenz muss 0 (null) sein, bevor Sie dieses Checkbook abgleichen können.

Ursache

Dies wird durch eine Bruchdifferenz verursacht. Im Fenster Banktransaktionen auswählen werden nur so viele Dezimalstellen angezeigt, wie für die Währungs-ID eingerichtet sind, die dem jeweiligen Checkbook zugewiesen ist. Wenn Ihrem Checkbook beispielsweise eine Währungs-ID mit zwei Dezimalstellen zugewiesen ist, werden im Fenster Banktransaktionen auswählen nur zwei Dezimalstellen angezeigt. Die Datensätze in der SQL-Tabelle speichern jedoch bis zu fünf Dezimalstellen für ein Betragsfeld, sodass dieses Problem auftreten kann, wenn Sie Beträge in den verbleibenden Dezimalstellen für einen Datensatz in den SQL-Tabellen haben und zu einer Bruchdifferenz führen können. Dies geschieht in der Regel, wenn die Datensätze in Microsoft Dynamics GP mit Beträgen importiert wurden, die mehr Dezimalstellen aufweisen als die Währungs-ID eingerichtet ist.

Wichtig

Das Importieren von Daten auf diese Weise wird nicht unterstützt. Dieser Artikel dient als Leitfaden zur Behebung der Daten, da wir keine Datenkorrekturen für nicht unterstützte Bedingungen in einem Supportfall bereitstellen können.

Lösung

Führen Sie die folgenden Schritte aus, um nach Datensätzen mit Dezimalstellen zu suchen, und verwenden Sie die folgenden Skripts, um sie aufzulösen:

  1. Starten Sie Microsoft SQL Server Management Studio, und wählen Sie die Schaltfläche Neue Abfrage aus, um ein Abfragefenster zu öffnen.

  2. Führen Sie das folgende Skript für die Unternehmensdatenbank aus, um zu ermitteln, ob Datensätze mit Beträgen mit einem dritten, vierten oder fünften Dezimalstellenwert ungleich 0 (null) vorhanden sind:

    Hinweis

    Wenn Ihre Währung für das Checkbook 2 Dezimalstellen aufweist, überprüft die "3" im Skript unten in jeder Zeile die 3. Position auf einen Bruchteil. Wenn Ihre Währung also drei Dezimalstellen aufweist, passen Sie das Skript auf "4" an usw.

    select 'CM20200' AS 'TABLE',DEX_ROW_ID,ClrdAmt,TRXAMNT,ORIGAMT,Checkbook_Amount,* from CM20200 where right(ClrdAmt,3)<>0
    or right(TRXAMNT,3)<>0
    or right(ORIGAMT,3)<>0
    or right(Checkbook_Amount,3)<>0
    select 'CM20400' AS 'TABLE',DEX_ROW_ID,DEBITAMT,CRDTAMNT,* from CM20400 where right(DEBITAMT,3)<>0
    or right(CRDTAMNT,3)<>0
    select 'CM20500' AS 'TABLE',DEX_ROW_ID,StmntBal,CUTOFFBAL,ClrePayAmt,ClrdDepAmt,Cleared_Difference,OUTPAYTOT,OUTDEPTOT,IINADJTOT,DECADJTOT,ASOFBAL, * from CM20500 where right(StmntBal,3)<>0
    or right(CUTOFFBAL,3)<>0
    or right(ClrePayAmt,3)<>0
    or right(ClrdDepAmt,3)<>0
    or right(Cleared_Difference,3)<>0
    or right(OUTPAYTOT,3)<>0
    or right(OUTDEPTOT,3)<>0
    or right(IINADJTOT,3)<>0
    or right(DECADJTOT,3)<>0
    or right(ASOFBAL,3)<>0
    select 'CM20501' AS 'TABLE', DEX_ROW_ID,TRXAMNT,* from CM20501 where right(TRXAMNT,3)<>0
    select 'CM20201' AS 'TABLE', DEX_ROW_ID, Orig_Credit_Card_Total,Originating_Cash_Total,Originating_Deposit_Amou,Originating_Checkbook_Am,* from CM20201 where right(ORCHKTTL,3)<>0
    or right(Orig_Credit_Card_Total,3)<>0
    or right(Originating_Cash_Total,3)<>0
    or right(Originating_Deposit_Amou,3)<>0
    or right(Originating_Checkbook_Am,3)<>0
    

    Wichtig

    Stellen Sie sicher, dass Sie zu allen zurückgegebenen Datensätzen scrollen, um alle "amount"-Spalten für alle zurückgegebenen Datensätze zu notieren.

  3. Führen Sie außerdem dieses Skript aus, um auch die Beträge in der Checkbook Master-Tabelle zu überprüfen:

    select CURRBLNC,* from CM00100 where CHEKBKID = 'xxx'
    --modify the xxx placeholder with your checkbook ID.
    
  4. Erstellen Sie eine aktuelle wiederherstellbare Sicherung der Unternehmensdatenbank, bevor Sie fortfahren, oder führen Sie dies zuerst in einer Testumgebung durch.

    Wichtig

    Überspringen Sie diesen Schritt nicht.

  5. Je nachdem, in welchen Tabellen/Feldern Sie den Bruch gefunden haben, lesen Sie die beiden folgenden Methoden, und verwenden Sie die entsprechende Methode, um das Problem zu beheben:

    Methode 1: Aktualisieren Sie jedes Feld einzeln direkt in SQL, um das Dezimaltrennzeichen zu entfernen.

    Sie können einfach die von den obigen Skripts gefundenen Beträge direkt in den SQL-Tabellen aktualisieren, indem Sie ein Skript verwenden, das dem folgenden Beispiel ähnelt. Nachdem Sie die Beträge zum Entfernen des unerwünschten Bruchteils aktualisiert haben, aktualisieren Sie das Fenster Banktransaktionen auswählen, um festzustellen, ob das Problem behoben ist.

    Hier sehen Sie ein Beispielskript zum Aktualisieren eines Felds nacheinander:

    UPDATE CMXXXXX SET YYYYY = '$.$$000' where DEX_ROW_ID = x
    
    --Before executing this script, update the placedholders as needed:
     -Modify the CMXXXXX placeholder with the correct table name; 
     -Modify the YYYYY placedholder with the correct field name in that table; 
     -Modify the $.$$000 with the correct amount with 2 decimal places,
     -Modify the x with the specific Dex Row ID for the record that you need to modify. 
    
    Repeat as many times as needed to update each field/table returned by the script in step 2
    and/or step 3 that has more than 2 decimal places.
    

    Hinweis

    Seien Sie konsistent. Wenn Sie einen oder mehrere Beträge in einer Tabelle aktualisieren, die das Skript in Schritt 2 für ein Checkbook_Amt Feld gefunden hat, müssen Sie möglicherweise auch den aktuellen Checkbook-Saldowert in der CM00100 Checkbook Master-Tabelle in die gleiche Richtung aktualisieren. Stellen Sie außerdem sicher, dass alle Benutzer Microsoft Dynamics GP nicht mehr nutzen, bevor Sie ein Updateskript für die Checkbook Master-Tabelle ausführen. Sie möchten nicht, dass jemand den Betrag des aktuellen Guthabens für das Scheckbuch genau zur gleichen Zeit, zu der Sie diese Wartung durchführen, buchen und ändern.

    Methode 2: Summieren Von Feldsummen, um zu ermitteln, ob alle Summen eine dezimale Dezimalzahl aufweisen.

    Führen Sie das folgende Skript aus, um die Feldsummen nach Typ zu überprüfen. Überprüfen Sie, ob mehr Dezimalzahlen als die von Ihnen verwendete Währungs-ID aufweisen. Wenn die Datensätze in oder aus einer Drittanbietersoftware importiert wurden, haben Sie möglicherweise in Mengen mit mehr Dezimalzahlen als in GP zulässig importiert. In diesem Fall müssen Sie die "Nettodifferenz" berechnen und einen einzelnen Datensatz für diese Differenz aktualisieren, sodass Sie genau auf 0,00000 US-Dollar ausbalancieren. Möglicherweise müssen Sie einen Supportfall erstellen, wenn Sie weitere Unterstützung benötigen. Wenn Sie dies selbst tun, stellen Sie sicher, dass Sie dies zuerst in einem Testunternehmen tun.

Im Folgenden finden Sie ein Beispielskript zum Summieren der einzelnen Mengenfelder für die CM20200 Tabelle nach Typ:

select Distinct(CMTRXTYPE)as 'Type',SUM(TRXAMNT)as 'TRXAMNT', SUM (ORIGAMT)as 'ORIGAMT', SUM(Checkbook_Amount)as 'Checkbook_Amount' from CM20200 where CHEKBKID='XXX' group by CMTRXTYPE
--update the XXX placeholder with the appropriate checkbook ID.

Transaktionstyp:

1 = Einzahlung
2 = Beleg
3 = Überprüfen
4 = Auszahlung
5 = Erhöhung der Anpassung
6 = Anpassung verringern
7 = Übertragung
101 = Zinserträge
102 = Sonstiges Einkommen
103 = Sonstige Ausgaben
104 = Servicegebühr

Hinweis

Notieren Sie sich alle Beträge, die Sie ändern, da Sie möglicherweise auch das CM00100 Checkbook-Guthaben in die gleiche Richtung aktualisieren müssen, um denselben Unterschied zu erzielen.

Weitere Informationen

Überprüfen Sie als letztes Mittel die SQL-Sortierung und SQL Server Sortierreihenfolge, um festzustellen, ob Sie sich in einer unterstützten Umgebung befinden. (SQL-Sortierung von Latin1-General und SQL Server Sortierreihenfolge von 50 oder 52 werden unterstützt. Die Abstimmung kann nicht unter einer nicht unterstützten Version ausgeführt werden, auch wenn der Unterschied 0,000000 USD beträgt.) Wenn eine nicht unterstützte SQL-Sortierung oder SQL Server Sortierreihenfolge verwendet wird, müssen Sie einen Supportvorfall beim SQL Server-Team öffnen, um zusätzliche Unterstützung beim Ändern der SQL-Sortierung/SQL-Sortierreihenfolge zu erhalten, bevor Sie fortfahren können. Führen Sie dieses Skript aus, um die SQL-Sortierung und SQL Server Sortierreihenfolge zu bestimmen:

sp_helpsort