Remove Sales Order
Zuletzt geändert: 19.04.2026 03:03

Übersicht

Remove-SalesOrder #

ÜBERSICHT #

Entfernt einen Auftrag komplett aus der Datenbank. Falls der Auftrag gebucht ist, wird er zuvor via cn_AfStornoBuchung auf „Weitererfassen" zurückgesetzt; anschließend ruft die Funktion cn_AfDel um Kopf und Positionen physisch zu löschen.

SYNTAX #

Remove-SalesOrder [[-OrderId] <int>] [[-OrderNo] <int>] [[-Conn] <__ComObject>] [[-Udl] <string>]
    [[-ConnStr] <string>] [<CommonParameters>]

BESCHREIBUNG #

Der ERP-legale Lösch-Pfad für Aufträge in EULANDA geht über zwei SPs:

  1. cn_AfStornoBuchung @af_id, @NewStatus = -1 — Buchungszustand auflösen und Status auf „Weitererfassen" (intern = 1) setzen. Der explizite @NewStatus = -1 überspringt die Auswertung der konfigurierbaren Option konOptionen.AfEditNewStatus. Ein bereits unberechneter Auftrag wird von der SP toleriert (keine Status-Änderung nötig).
  2. cn_AfDel @af_id — physischer Delete (AuftragPos + Auftrag).

Ohne den ersten Schritt scheitert ein direkter DELETE am Trigger-Error-Handling (verdeckt hinter *** NO CALLER STACK ***) oder an FK-Constraints wie FK_AFP_AF (AuftragPos → Auftrag).

Es kann entweder die Auftrags-ID (OrderId) oder die Auftragsnummer (OrderNo) angegeben werden. Die Verbindung erfolgt über Conn, Udl oder ConnStr.

Der Lösch-Vorgang ist endgültig - der Auftrag ist danach physisch aus der DB entfernt. Wer nur den Status zurück auf „in Bearbeitung" setzen will, sollte direkt cn_AfStornoBuchung nutzen (kein Wrapper vorhanden, Storno- only wäre eine eigene Funktion).
Die Funktion räumt KEINE Folge-Belege (Lieferscheine, Rechnungen, die aus dem Auftrag entstanden) auf. Der Aufrufer muss solche Folge-Belege vorher selbst stornieren (Remove-DeliveryNote, entsprechende Storno-Funktionen für Rechnungen), sonst scheitert cn_AfDel wegen FK-Verletzungen.

PARAMETER #

-OrderId #

Type: int

Interne ID des Auftrags (Auftrag.Id). Wird bevorzugt, wenn gesetzt.

-OrderNo #

Type: int

Auftragsnummer (Auftrag.KopfNummer).

-Conn #

Type: __ComObject

Optional: Bereits geöffnete ADODB-Verbindung.

-Udl #

Type: string

Optional: UDL-Dateipfad zur Verbindung.

-ConnStr #

Type: string

Optional: Connection-String zur Verbindung.

BEISPIELE #

Remove-SalesOrder -OrderNo 20212869 -Udl 'C:\Mandant.udl'
# Mit vorhandener Connection, per Id
Remove-SalesOrder -OrderId 60 -Conn $conn