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:
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 OptionkonOptionen.AfEditNewStatus. Ein bereits unberechneter Auftrag wird von der SP toleriert (keine Status-Änderung nötig).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 scheitertcn_AfDelwegen 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