Freigeben über


"Sie können Belastungen für XXXX nicht übertragen, wenn es ausstehende Belastungsbeträge für ein früheres Geschäftsjahr gibt. Der Fehler wird im Microsoft Dynamics GP (Blog) angezeigt."

Dieser Artikel enthält eine Lösung für einen Fehler, der in Microsoft Dynamics GP auftritt.

Gilt für: Microsoft Dynamics GP
Ursprüngliche KB-Nummer: 4567109

Problem

Der Blogartikel finden Sie hier.

Das Fenster "Jahresendverpflichtungsübertragung" wird verwendet, um Verpflichtungssalden für offene Bestellungen (POs) vom aktuellen Jahr auf das nächste Jahr zu übertragen. Der Übertragungsprozess liquidiert automatisch belastete Beträge im aktuellen Jahr und aktualisiert offene Bestellungen mit den verbleibenden Beträgen, die im nächsten Jahr geliefert werden.

Das Encumbrance Year End Transfer-Fenster befindet sich unter " Einkaufsroutinen >> Year End Encumbrance Transfer".
Beim Ausführen dieses Vorgangs erhalten Sie möglicherweise die folgende Fehlermeldung:

Sie können Belastungen für XXXX nicht übertragen, wenn es offene Belastungsbeträge für ein früheres Geschäftsjahr gibt.

Ursache

Es gibt viele Gründe für das Auftreten des Fehlers.

  1. Manchmal rückdatieren Benutzer eine Transaktion, die innerhalb eines bereits übertragenen Jahres liegt. In diesem Fall müssen Sie einfach zu diesem Jahr der Transaktion zurückkehren und diese alten Transaktionswerte weiterleiten. In anderen Zeiten ist es nicht so einfach.
  2. Es gibt viele Drittanbieter, Integrationen und Anpassungen, die in die Auftragsverarbeitung integriert sind, und manchmal befinden sich die Daten möglicherweise nicht in einem Zustand, den Microsoft Dynamics GP erwartet, wodurch der Fehler verursacht wird.
  3. Wenn bei der Veröffentlichung Unterbrechungen aufgetreten sind, sind die Daten möglicherweise beschädigt, die den Fehler verursachen könnten. In diesen Fällen kann das Problem mit der ENC10111 Tabelle bestehen, da es möglicherweise nicht alle Ins und Outs für die Transaktion enthält. Es ist auch möglich, dass die Bestelldaten im Allgemeinen beschädigt sind, was dazu führt, dass die Bestellung nicht übertragen wird.

Beschluss

Es gibt einige Optionen, um diesen Fehler zu beheben. Ich empfehle immer, eine Kopie Ihrer LIVE-Daten in ein TEST-Unternehmen zu verschieben. In diesem Blog wird davon ausgegangen, dass der Benutzer, der diese Schritte ausführt, mit den Daten "Encumbrance" und "Purchase Order" vertraut ist und wie die Tabellen im Back-End aussehen sollen. Wenn Sie nicht vertraut sind, müssen Sie sich möglicherweise an Ihren Partner wenden oder einen Supportfall für Unterstützung erstellen. In einem Supportfall können wir Ihnen bei einem oder zwei Problemaufträgen helfen und Anleitungen geben, aber wenn Sie Probleme mit mehr als ein paar Aufträgen haben, müssen Sie möglicherweise separate Fälle für jeden Auftrag erstellen, da jeder eine andere Bedingung hat, die jeweils eine separate Datenanalyse erfordert.

OPTION 1: Führen Sie die Übertragung des Jahresabschlusses über alle vergangenen Jahre hinweg durch, um sicherzustellen, dass keine Bestellung erfasst/belastet wurde, die aus einem vorherigen Jahr übertragen werden muss.

Wechseln Sie zu Einkaufsroutinen >> Jahresend-Belastungsübertragung.
Beginnen Sie mit dem aktuellen Jahr und gehen Sie dann Jahr für Jahr rückwärts, um zu ermitteln, ob es eine Bestellung gibt, die übertragen werden muss. Wenn es einen Bestellauftrag gibt, der "hängen bleibt" und auch nach der Übertragung weiterhin im Bericht bleibt, muss dieser Bestellauftrag durch Ausführen des Skripts "ALL PO and Receipt" (Link weiter unten in diesem Blog aufgeführt) gründlich untersucht werden, um herauszufinden, was mit dem Bestellauftrag nicht stimmt. Oft befindet sich die ENC10111 nicht im richtigen Zustand, was dazu führt, dass der Kaufauftrag nicht in das nächste Jahr übergeht. Wenn dies der Fall ist, können Sie möglicherweise Option 4 ausführen, um den Einkaufsauftrag zu übertragen.

OPTION 2: Entfernen Sie abgeschlossene POs und löschen Sie den Verlauf.

Verwenden Sie diese Option, wenn Sie über eine bestimmte Datenbedingung verfügen, bei der ein Bestellauftrag im Übertragungsbericht nicht verschoben werden kann UND als "Geschlossen" oder "Abgebrochen" markiert ist. Es könnte sein, dass die Bestellung beschädigt ist und nur aus GP gelöscht werden muss. Wenn Sie mit dieser Option einverstanden sind, führen Sie die folgenden Schritte aus.

  1. Navigieren Sie zu Einkaufstools > Einkaufsverlauf entfernen>. Damit können Sie die Bestell-, Beleg-, Kontoverteilungs- und Journalhistorien für den beschädigten Bestellauftrag löschen. Ich weiß, es mag drastisch erscheinen, aber an diesem Punkt ist die Bestellung beschädigt und geschlossen oder storniert, es gibt nichts, das mit ihnen in Zukunft getan werden kann, außer dass sie einzeln behoben werden können. Das Entfernen könnte also die beste Option sein, die ausprobiert werden sollte.

    • Notiz

      Wenn Ihre Bestellung nicht im Verlauf angezeigt wird, um entfernt zu werden, verwenden Sie die Routine "Abgeschlossene Bestellung entfernen", um die Bestellung in die Verlaufsdatei zu verschieben. Navigieren Sie zu "Einkaufsroutinen >> ", um abgeschlossene Bestellungen zu entfernen.

    • Der Bericht über das Entfernen der abgeschlossenen Bestellungen wird gedruckt, nachdem der Vorgang abgeschlossen ist. Wenn eine Bestellung nicht entfernt wird (z. B. wenn sie verwendet wird oder beschädigte Daten hat), wird eine Meldung im Bericht zum Entfernen abgeschlossener Bestellungen gedruckt, der angibt, dass die Bestellung nicht entfernt wurde. In diesem Fall müssen Sie die Ergebnisse des Skripts "ALL PO" und "Beleg" überprüfen, um zu bestimmen, was falsch ist, und sie über das Back-End zu beheben oder zu löschen. Wenn dies in den Verlauf verschoben wird, fahren Sie mit dem nächsten Schritt fort.
    • Sie können jetzt das Fenster "Einkaufsverlauf entfernen" verwenden, um den Bestellverlauf zu löschen.
  2. Führen Sie als Nächstes das Tool aus, um die ENC-Daten zu reparieren. (Microsoft Dynamics GP-Menü > Wartung > Belastungsmanagement > Routinewartung) Sie sollten die Details basierend auf der Bestellung verwenden und dann die Zusammenfassung basierend auf den Details.

  3. Versuchen Sie, das Jahr erneut zu übertragen, wenn der Fehler weiterhin angezeigt wird, fahren Sie mit den Schritten zur Datenüberprüfung fort, die OPTION 3 ist.

OPTION 3: Skript "Datenüberprüfung"

Wir haben unten ein Skript, das Sie verwenden können, um zu versuchen, die verantwortlichen PO(s) zu identifizieren, die einen Fehler bei der Übertragung verursachen. Viele POs können in der zurückgegebenen Liste enthalten sein, konzentrieren sich jedoch auf die erste zurückgegebene, die aufgelistet ist. Nicht alle aufgelisteten POs sind notwendigerweise schlecht. Er stoppt einfach, nachdem er die erste beschädigte Bestellung identifiziert und den Rest danach auflistet. Wenn wir die erste beschädigte Bestellung beheben, hoffen wir, dass der Rest der Bestellungen aus der Liste entfernt wird und die Übertragung ohne Probleme erfolgt. Wenn nicht, müssen Sie den Vorgang wiederholen, bis die Liste gelöscht wird.

Die Maßnahme zur Option 3 insgesamt wird sein:

  1. Führen Sie das skript unten aus,
  2. Führen Sie das Skript "ALL PO" und "Empfang" auf der ersten Bestellung in der Liste aus.
  3. Korrigieren Sie die Daten der ersten Auftragsliste in der Liste,
  4. Versuchen Sie die Übertragung erneut.

Sie müssen zuerst ein Jahr finden, das keine betroffenen POs hat. Dazu müssen Sie zwei Dinge identifizieren.

  • Ermitteln Sie, ob Sie ein Geschäfts- oder Kalenderjahr sind. Das ist wichtig! Navigieren Sie zu Verwaltung >> Einrichtung >> Unternehmen >> Geschäftszeiträume; notieren Sie sich die Anfangs- und Endtermine der Jahre.
  • In welchem Jahr tritt der Fehler auf, wenn Sie die Jahresendübertragung ausführen? Wenn Sie beispielsweise 2017 auf 2018 übertragen, beachten Sie folgendes.

Sobald Sie #1 und #2 kennen, können Sie jetzt das folgende Skript ausführen, um die Problem-PO(n) zu finden. Um das Skript auszuführen, müssen Sie es für einen Datumsbereich ausführen, der Ihren Geschäfts-/Kalenderjahren plus 1 zusätzlichem Tag entspricht.

Verwenden Sie das folgende Skript. Der Schlüssel gibt die richtigen Datumsangaben ein.

Angenommen, es ginge um Kalenderjahre, dann wären Sie vom 1.1.2017 bis zum 1.1.2018. Nehmen wir an, Sie sind für ein Geschäftsjahr ab dem 1. Mai eingerichtet, daher mein Beispiel unten.

Wenn meine erste Periode am 1. Mai 2017 begann und das Jahr am 30. April 2018 endete, würde mein Skript wie folgt aussehen:

declare @FROM varchar(10) set @FROM ='05/01/2017'
declare @TO varchar(10) set @TO ='05/01/2018'
declare @FROMDATE DATETIME set @FROMDATE = CONVERT(DATETIME, @FROM, 101)
declare @TODATE DATETIME set @TODATE = CONVERT(DATETIME, @TO, 101)
select *
from ( select ENC10110.PONUMBER, ENC10110.POLNENUM,
ENC10110.ENCBSTAT, ENC10110.INVINDX,
ENC10110.REQDATE,
(SUM(ENC10111.ENCMBAMT) - ISNULL(
(
select SUM(LIQUDAMT)
from ENC10500
where (GLPOSTDT>=@FROMDATE and GLPOSTDT<@TODATE) AND
ENC10110.PONUMBER = ENC10500.PONUMBER AND
ENC10110.POLNENUM = ENC10500.POLNENUM),0)
) AS REMAMT
from ENC10111
inner join ENC10110
ON ENC10111.PONUMBER = ENC10110.PONUMBER AND
ENC10111.POLNENUM = ENC10110.POLNENUM
where (ENC10111.TRXDATE>=@FROMDATE and ENC10111.TRXDATE<@TODATE) AND
ENC10110.ENCBSTAT<>3
  GROUP by  ENC10110.PONUMBER, ENC10110.POLNENUM,
      ENC10110.ENCBSTAT, ENC10110.INVINDX,
      ENC10110.REQDATE
) AS ENC
where REMAMT<>0

Der Schlüssel besteht darin, zu verstehen, welche Datumsangaben Sie ausführen sollten. Wenn Sie die richtigen Datumseinschränkungen nicht verwenden, könnten Sie Ergebnisse erhalten, die Sie für falsch halten, aber tatsächlich sind sie richtig und werden nur aufgrund der Art und Weise angezeigt, wie Sie die Datumseinschränkungen ausgeführt haben. Ich empfehle immer, dass Sie mit dem Jahr beginnen, das Sie übertragen möchten, und dann jahr für Jahr zurückwechseln, bis Sie keine Ergebnisse erhalten. Wenn Sie das letzte Beispielsetup verwenden, beginnen Sie mit:

declare @FROM varchar(10) set @FROM ='05/01/2017'
declare @TO varchar(10) set @TO ='05/01/2018'

Dann dies:

declare @FROM varchar(10) set @FROM ='05/01/2016'
declare @TO varchar(10) set @TO ='05/01/2017'

Dann dies:

declare @FROM varchar(10) set @FROM ='05/01/2015'
declare @TO varchar(10) set @TO ='05/01/2016'

Und so weiter, bis die Ergebnisse null sind. Wenn ich keine Ergebnisse für 2015 bis 2016 erhalten habe, würde ich das vorherige Skript für 2016 bis 2017 ausführen und an dieser Stelle würde ich mit der Problembehandlung beginnen. Der Zweck der Übung besteht darin, zu finden, wo das Problem begonnen hat. In der Regel würden Sie dann die Ergebnisse aus den Skripts "ALL PO" und "Receipt" für die ERSTE Bestellung in der Liste abrufen und die Daten überprüfen, um zu bestimmen, was falsch ist. Nachdem Sie das Problem ermittelt und die Daten behoben haben, sollten Sie in der Lage sein, die Encumbrance Routine Maintenance erneut durchzuführen und dann das Jahr zu übertragen.

ES IST IMPERATIVE, dass alle Encumbrance-Benutzer eine Version von GP verwenden, die gleich oder größer als 11.00.1799 ist.

Notiz

Der Support kann bei einem oder zwei Problem-PO(n) helfen und die Daten durchsehen, um Ratschläge zur Behebung zu geben, aber wenn Sie VIELE POs haben, müssen Sie mit Ihrem Partner zusammenarbeiten, um die Daten zu beheben oder separate Fälle zu erstellen, um die Analyse der Datenprobleme zu unterstützen. Jeder Po verfügt über VIELE Tabellen, um zu analysieren, sodass ein oder zwei Bestellungen in einem Supportfall akzeptabel sind, aber danach ist der Fall mehr Beratung und benötigt die Unterstützung Ihres Partners, um durchzuarbeiten.

Anweisungen zum Sammeln des Skripts "ALL PO" und "Receipts".

Skript gefunden in hier

Führen Sie ihn in Text mithilfe der nachstehenden Anweisungen aus.

Ziel dieser Erklärung ist es, ALLE Daten im Zusammenhang mit einer bestimmten Bestellung zu überprüfen. Es ist nur eine SELECT-Anweisung. Es werden keine Daten aktualisiert/gelöscht.

declare @PONUMBER char(20)
select @PONUMBER = 'POXXXX'
  1. Geben Sie Ihre Bestellnummer anstelle von POXXXX in das Skript ein.
  2. Drücken Sie (STRG+T), oder wählen Sie die Schaltfläche "Ergebnisse an Text " auf der Menüleiste aus, bevor Sie die Ergebnisse an "Text" senden.
  3. Führen Sie die Ergebnisse für Ihre Unternehmensdatenbank aus.
  4. Klicken Sie mit der rechten Maustaste auf die Ergebnisse, und speichern unter .rpt.

OPTION 4: Entfernen Sie die Daten in der ENC10111 für bestimmte Bestellungen (oder alle ENC10111), die beschädigt sind, und führen Sie die Abstimmung bei den Verpflichtungen aus. Versuchen Sie die Übertragung dann erneut.

  1. Führen Sie das Tool zur Datenreparatur aus, um zu überprüfen, ob es eines der POs behebt. Überprüfen Sie dann, ob die Übertragung durchläuft. (Microsoft Dynamics GP Menü > Wartung > Belastungsmanagement > Routinewartung) Sie sollten die Option Detailbezogen auf die Bestellung verwenden und dann Zusammenfassung basierend auf Detail. Wenn nicht, fahren Sie mit Schritt 2 fort.

  2. Entfernen Sie die ENC10111 Tabelle, indem Sie den folgenden IN TEST ausführen. Ich möchte betonen, dass Sie Daten entfernen könnten, die in diesem Schritt in Ordnung sind, aber Sie haben immer noch die Integrität der PO-Tabellen, wenn die Recherche aus irgendeinem Grund durchgeführt werden muss. Der Grund, warum die Übertragung nicht abgeschlossen werden kann, besteht darin, dass es eine Diskrepanz zwischen den ENC-Tabellen gibt, sodass es die einfachste Möglichkeit ist, dies auszuschließen. GP ersetzt diese Tabelle durch Nettobeträge für jede Auftragsmenge.

    -----------------
     DELETE ENC10111
    -----------------
    

    Notiz

    Wenn Sie nur eine Bestellung haben, die nicht übertragen oder nicht aus dem Transferbericht gelöscht wird, können Sie die spezifische Bestellung zum Löschen angeben.

    DELETE ENC10111 WHERE PONUMBER = 'XXX'
    
  3. Nachdem die Daten in der Tabelle entfernt wurden, führen Sie das Hilfsprogramm aus, um die ENC10111 Tabelle neu zu füllen. (Microsoft Dynamics GP-Menü > Wartung > Encumbrance Management > Routine Wartung). Sie möchten das Detail basierend auf der Bestellung und dann "Zusammenfassung" basierend auf "Details " verwenden und die Übertragung für das Jahrende erneut versuchen.

  4. Wenn weiterhin Probleme mit der Übertragung auftreten, verwenden Sie das Check-Datenskript von OPTION 3, und überprüfen Sie, ob diese Auftragsliste aufgeführt ist. Fahren Sie dann mit den Schritten in dieser Option fort, um die Daten zu beheben.

Das ultimative Ziel besteht darin, das Skript in Option 3 auszuführen, jahr für Jahr auszuführen und keine Daten zurückzugeben, was bedeuten würde, dass der Prozess der Jahresendübertragung ohne Fehler verarbeitet werden kann.

OPTION 5: Deaktivieren und erneut aktivieren der Belastung

Wenn eine große Anzahl von Beschädigungen gefunden wird, kann die beste Option darin bestehen, die Encumbrance zu deaktivieren, alle geschlossenen/stornierten Bestellungen in den Verlauf zu verschieben und dann die Encumbrance erneut zu aktivieren.

Notiz

Um geschlossene/abgebrochene POs in den Verlauf zu verschieben, verwenden Sie die Routine "Abgeschlossene Bestellung entfernen", um den Auftragsauftrag in die Verlaufsdatei zu verschieben. Navigieren Sie zu "Einkaufsroutinen >> ", um abgeschlossene Bestellungen zu entfernen.

Sie verlieren keine Bestellverarbeitungsdaten, solange Sie für die Verwaltung des Verlaufs im POP-Setup eingerichtet sind. Sie verlieren nur einige der alten Belastungsdetails aus den Vorjahren für Pos, die in den historischen Aufzeichnungen enthalten sind. Sie werden weiterhin mit den noch ausstehenden Belastungen für die laufenden Jahre verbleiben, für die Sie offene Bestellungen haben.