In den Debitoren-Parametern gibt es ein Kennzeichen namens "Aufträge als ungültig markieren". Ist dieses Kennzeichen gesetzt, werden gelöschte Aufträge in den Tabellen SalesTableDelete und SalesTableLine gespeichert. Derartige Aufträge können unter Debitoren / Abfragen / Historie / Ungültige Aufträge eingesehen werden.
Leider gibt es standardmässig scheinbar keine Möglichkeit, solche Aufträge wiederherzustellen.
Mit Hilfe des nachstehenden Jobs sollte es aber möglich sein, den Auftrag zumindest grösstenteils wiederherzustellen. Dies ist aber stark abhängig davon, wie sehr Dynamics AX angepasst wurde und welche Daten erfasst wurden. Beispielsweise gehen Notizen/Anhänge aber auch Sonstige Zuschläge dabei verloren.
In AX 2009 heissen die Ungültigen Aufträge übrigens stornierte Aufträge.
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
In den Debitoren-Parametern gibt es ein Kennzeichen namens "Aufträge als ungültig markieren". Ist dieses Kennzeichen gesetzt, werden gelöschte Aufträge in den Tabellen SalesTableDelete und SalesTableLine gespeichert. Derartige Aufträge können unter Debitoren / Abfragen / Historie / Ungültige Aufträge eingesehen werden.
Leider gibt es standardmässig scheinbar keine Möglichkeit, solche Aufträge wiederherzustellen.
Mit Hilfe des nachstehenden Jobs sollte es aber möglich sein, den Auftrag zumindest grösstenteils wiederherzustellen. Dies ist aber stark abhängig davon, wie sehr Dynamics AX angepasst wurde und welche Daten erfasst wurden. Beispielsweise gehen Notizen/Anhänge aber auch Sonstige Zuschläge dabei verloren.
In AX 2009 heissen die Ungültigen Aufträge übrigens stornierte Aufträge.
{
SalesTableDelete salesTableDelete;
salesLineDelete salesLineDelete;
SalesTable salesTableTmp;
SalesLine salesLineTmp;
salesId restoreSalesId;
int lines;
salesLineDelete salesLineDeleteDelete;
;
restoreSalesId = 'A050239';
try
{
ttsbegin;
salesTableDelete = salesTableDelete::find(restoreSalesId, true);
salesTableTmp.clear();
salesTableTmp.overwriteSystemfields(true);
salesTableTmp.data(conpeek(salesTableDelete.SalesTable,1));
salesTableTmp.doInsert();
SalesLineDelete = SalesLineDelete::Find(salesTableDelete.SalesId);
while (salesLineDelete)
{
lines++;
salesLineTmp.clear();
salesLineTmp.overwriteSystemfields(true);
salesLineTmp.data(conpeek(salesLineDelete.SalesLine,1));
salesLineTmp.doInsert();
next salesLineDelete;
}
// Löschen des ungültigen Auftrages
salesTableDelete.delete();
SalesLineDelete.clear();
SalesLineDelete = SalesLineDelete::Find(restoreSalesId);
while (salesLineDelete)
{
salesLineDeleteDelete =
salesLineDelete::findRecId(salesLineDelete.RecId, true);
salesLineDeleteDelete.delete();
next salesLineDelete;
}
ttscommit;
info(strFmt("Auftrag '%1' inkl. %2 Positionen wiederhergestellt",
restoreSalesId,
int2str(lines)));
}
catch (Exception::Error)
{
throw error(strFmt("Wiederherstellung des Auftrages '%1' fehlgeschlagen", restoreSalesId));
}
}
Verwendung des Jobs auf eigene Gefahr! Ich kann nur abraten, einen solcherart wiederhergestellten Auftrag weiterzuverwenden.