In Navision den Löschvorgang eines Datensatzes/Records abbrechen

Der Softwareentwickler Blog - NavisionNicht selten steht man als Navision-Programmierer vor der Aufgabe den Löschvorgang, den der Benutzer ausgelöst hat, zu überprüfen und dann gegebenenfalls abzubrechen. Wie bekommt man das hin?

Wie so vieles ist es ganz einfach, wenn man es weiß. Ihr geht in den OnDelete-Trigger der Navision-Tabelle, dessen Record-Löschung Ihr überprüfen wollt, und kontrolliert dort im C/AL-Code Eure Bedingung. Danach brecht Ihr dann den Löschvorgang ab.

Dies könnt Ihr mit der Exit-Funktion machen oder, wenn Ihr dem Benutzer mit einer Message-Box eine Nachricht zukommen wollt, mit der Error-Funktion.

Zum Veranschaulichen seht im Folgenden zwei Beispiele.

1. Sofortiges Abbrechen mit Verlassen der Löschroutine

Durch den C/AL-Befehl Exit wird nach Überprüfung der Bedingung sofort der OnDelete-Trigger verlassen und das Löschen abgebrochen.

IF NOT Bedingung THEN
  EXIT;

2. Abbrechen mit Hinweismeldung

Nach negativer Überprüfung wird zunächst durch die ERROR-Funktion eine Messagebox ausgegeben. Nach dem Bestätigen der Nachricht wird der OnDelete-Trigger ebenfalls ohne das Löschen abzuschließen verlassen. In diesem Fall wird ein RollBack durchgeführt, dass die Änderungen rückgängig macht (solange noch kein COMMIT durchgeführt wurde).

IF NOT Bedingung THEN
  ERROR('Dieser Datensatz darf nicht gelöscht werden!');

Weitere Informationen zu den Navision-Funktionen Exit, Error sowie einigen anderen Abbruch-Funktionen werden bald in einem gesonderten Artikel folgen.

Comments
  1. Björn
  2. Carsten Seifert