Freigabe-Status ignorieren
Beim Ändern von Belegzeilen prüft Dynamics NAV das Feld Status aus dem dazugehörigen Belegkopf. Sofern dies auf Freigegeben steht, sind Änderungen in den Zeilen nicht möglich. Erst ein Zurücksetzen dessen lässt Änderungen zu. Müssen per C/AL-Code Änderungen durchgeführt werden, gibt es einen kleinen Trick.
Die Vorgehensweise um die Zeilen eines auf „Freigegeben“ stehenden Beleges zu ändern, wäre wahrscheinlich die folgende:
- Status des Kopfes zurücksetzen auf „Offen“
- Änderungen der Zeilen durchführen
- Status des Kopfes setzen auf „Freigegeben“
Es existiert eine weitere Möglichkeit und zudem eine, die einen Statuswechsel nicht erfordert. Wir nutzen dazu eine Funktion aus der Zeilentabelle.
SalesLine.RESET;
SalesLine.SuspendStatusCheck(TRUE);
SalesLine.SETRANGE(Type, SalesLine.Type::Order);
SalesLine.SETRANGE("Document No", '1000');
SalesLine.MODIFYALL(Quantity, 0);
Wichtig an diesem Code ist die zweite Zeile. Mit dem Aufruf der Funktion „SuspendStatusCheck“ und dem „TRUE“ erreichen wir, dass Dynamcis NAV den Status des Beleges ignoriert.
Die Funktion „SuspendStatusCheck“ ist in allen gängigen Zeilentabellen wie Sales Line, Purchase Line, etc. vorhanden.
Zurück zur Übersicht der Trickkiste.