Neu Permanentes Löschen der Kunden- und Verkaufsdaten

Tobi_G

Neues Mitglied
17. Dezember 2019
18
5
Hallo,
dies ist mein erster Beitrag hier in dem Forum, daher entschuldigt etwaige Fehler meinerseits.

Wie der Titel bereits sagt möchte ich in JTL alle Kunden und Verkaufsdaten permanent aus der Datenbank löschen. Wie ich in anderen Beiträgen bereits gelesen hatte, geht das nicht über die normalen Wawi Funktionen. Der Grund für meine Frage ist, dass ich ein Programm schreibe, welches alle Kundendaten von einer API neu einliest und das geht nicht solange die Kundennummer in der Datenbank noch vorhanden ist. Ein Löschen des gesamten Servers ist in sofern keine Option da ein Kollege bereits einige wichtige Konfigurationen vorgenommen hat.

Ein erster Versuch mit dem nachfolgenden SQL Skript hat scheinbar noch nicht den gewünschten Effekt gehabt und bevor ich das Rad neu erfinde wäre es schön wenn mir hier jemand helfen kann.


truncate table tbestellung;
truncate table tbestellpos;
truncate table tbestelleigenschaft;
update tpk set nummer=1 where cname='tbestellpos';
update tpk set nummer=1 where cname='tbestelleigenschaft';


Das System befindet sich auf einem Server von dem ein vollständiger Snapshot erstellt wurde, d.h. man muss keine Angst haben dass Daten verloren gehen, bei einem Fehler kann der Server schnell neu aufgesetzt werden.

Ich verstehe auch vollkommen alle Warnungen und Hinweise die ich mehrfach von Moderatoren hier gelesen habe, unwissende Nutzer sollten nicht an der Datenbank herumspielen. Daher kann ich auch gern anbieten diesen Beitrag wieder zu löschen sobald ich eine Lösung gefunden habe.

Grüße TG
 

Rico Giesler

Offizieller Servicepartner
SPBanner
10. Mai 2017
13.245
1.522
Grundsätzlich ist vom Löschen von Daten in der DB abzuraten, da hier einfach zu viele Dinge ineinanderspielen.
Sei es die Statsitiken, Historieneinträge, Kundendaten, Bestelldaten, Einkaufspreise,...
Daher ist es einfacher ein leeres System entweder neu zu konfigurieren oder per Ameise mit den gewünschten Daten zu füllen.
 

Tobi_G

Neues Mitglied
17. Dezember 2019
18
5
So, entschuldige die etwas längere Antwortzeit. Ich bin jetzt weitergekommen und hab eine Frage zu den stored procedures:

Die Funktion spBestellungLoeschen nimmt als parameter einen int. Den konnte ich problemlos übergeben und die Funktion ausführen.
Zusammen mit einer While Schleife und vorherhiger max(kBestellung) konnte ich daher alle Bestellungen löschen.

Das selbe funktioniert aber nicht bei Maintenance.spKundenDatenDelete oder sp.AdresseDelete. Diese beiden Funktionen benutzen einen user defined Type, einen eigenen Datentypen der eine Readonly Tabelle darstellt. Und da ist der Knackpunkt. Ich kann selbst einen Datentypen deklarieren und mit Werten füllen beim übergeben bekomme ich diesen Fehler:

"[S0001][2786] Der Datentyp des 1-Ersetzungsparameters stimmt nicht mit dem erwarteten Typ der Formatspezifikation überein."

Wie kann ich die Funktion ausführen? Kann ich den Datentypen irgendwie selbst auf readonly setzen?
 

Tobi_G

Neues Mitglied
17. Dezember 2019
18
5
War mein Fehler, ich hab gerade gemerkt, dass die sp_KundenDatenDelete gar keinen Fehler wirft. Ich war davon ausgegangen dass es das selbe Problem verursacht wie AdresseDelete.

Was ich aber gemerkt habe ist, dass die Einträge nicht komplett gelöscht werden sondern dass dann in den Zeilen einfach nur "deleted" steht.
Gibt es eine Möglichkeit das noch sauberer wegzulöschen? Also dass quasi bei einem "select * from tKunde" nichts mehr zurückgegeben wird?
 

Tobi_G

Neues Mitglied
17. Dezember 2019
18
5
Also das Ergebnis von 2 Tagen Recherche und SQL Arbeit sind folgende 2 SQL Skripte:

AlleKundenLoeschen.sql
AlleBestellungenLoeschen.sql

Siehe Anhang

Beide greifen auf bereits hinterlegte stored procedures zurück.
AlleKundenLoeschen -> Maintenance.spKundenDatenDelete
AlleBestellungenLoeschen -> spBestellungLoeschen

Diese werden ganz einfach in einer while schleife aufgerufen, beginnend vom max wert des jeweiligen primarykeys bis (einschließlich) 1.

Beim "select * from tBestellungen" ist bereits nichts mehr zu sehen, die Ausführung für AlleKundenLoeschen.sql läuft noch, da dies sehr langsam ist.
Auf unserem Setting ist es ca 3 Einträge pro Sekunde. Sollte aber auch in einer leeren Tabelle münden.

Hoffe ich konnte damit dem ein oder anderen helfen.

Natürlich alle Angaben ohne Gewähr und auf eigene Gefahr. Immer vorher ein Backup machen! Und nur dann wirklich ausführen wenn ihr euch sicher seid dass nichts passieren kann.
Bitte auch vorher ohne die WhileLoop und mit einzelnen Datensätzen testen!!

Viele Grüße
TG

PS: Das Forum erlaubt keine Dateianhänge mit Endung ".sql" daher hab ich kurz ein ".txt" angefügt.

PPS: Falls einer der Moderatoren oder Admins hier trotzdem noch Lust hat mir zu sagen ob meine Lösung so in Ordnung ist oder ob es einen besseren Weg gibt bin ich gern offen für Vorschläge. ;)
 

Anhänge

  • AlleBestellungenLoeschen.sql.txt
    233 Bytes · Aufrufe: 62
  • AlleKundenLoeschen.sql.txt
    426 Bytes · Aufrufe: 54

Tobi_G

Neues Mitglied
17. Dezember 2019
18
5
Achso noch eine Frage:

Kann es sein dass die Extern.dll nichts anderes macht als auf die storedprocedures zuzugreifen?
 
  • Gefällt mir
Reaktionen: OuR
Ähnliche Themen
Titel Forum Antworten Datum
Plattformabgleich Shop löschen - Wo ist das in der MySQL DB? JTL-Wawi 2.0 4
Lieferschein löschen führt zum Absturz JTL-Wawi 2.0 2
Inaktive Verkaufskanäle lassen sich nicht löschen – erscheinen nach Löschen und Speichern erneut JTL-Wawi 1.11 0
Neu Alte, fehlerhafte Picklisten löschen. Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 4
Neu Bildimport meldet trotz "vor dem Import löschen" vorhandene Bilder JTL-Ameise - Fehler und Bugs 7
Neu Pickliste nach Teillieferung automatisch löschen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Anzeige der Variantenartikel JTL-Wawi 1.11 0
Neu Workflows speichern z.B. Rechnungen nicht mehr seid der 2.01 User helfen Usern - Fragen zu JTL-Wawi 1
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 59
Neu Komma aus Produktbezeichnung soll als Bindestrich in der URL sein Allgemeine Fragen zu JTL-Shop 1
Retouren - Bearbeitung der Adressdaten JTL-Wawi 2.0 0
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu Lieferadresse in PayPal-Transaktion weicht von der in der Wawi ab Plugins für JTL-Shop 0
Häufiges Aufhängen - vermutlich Probleme mit der Datenbank JTL-Wawi 2.0 9
Neu Wichtige Info: Abkündigung der DHL-Schnittstelle zum 31.05.2026 News, Events und Umfragen 0
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
2.0.0: Aufruf der Plattform - Logbücher führt zu Crash der Wawi JTL-Wawi 2.0 0
Neu Falsche Berechnung der Kassen im Kundencenter - Multikasse noch aktiv Smalltalk 0
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12
Neu Platz der Sidebar nutzen JTL-Shop - Ideen, Lob und Kritik 0
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Tabelle tfirma in der Shop-Datenbank ist leer Einrichtung JTL-Shop5 3
Neu Seit Update auf JTL-WaWi 2.0.0.0 keine Abholung der Kundendaten bei MediaSaturn-Bestellungen JTL-Wawi - Fehler und Bugs 7
Neu Anbindung der POS funktioniert nicht unter WAWI2.0.0 mit EcomData Hosting JTL-Wawi 2.0 7
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu 1000te Zugriffe aus der ganzen welt auf applepay.php Allgemeine Fragen zu JTL-Shop 2
Neu Fehlermeldung nach der Umstellung von DHL Versenden 4.0 JTL-Track&Trace - Fehler und Bugs 7
Neu Anzeigen der Zahlungsart, die bei der Zahlung gesetzt wird Eigene Übersichten in der JTL-Wawi 10
Gelöst Bekannte Störung: Fehler "Der Inhaltstyp text/html stimmt nicht mit text/xml überein" bei der Labelerstellung Gelöste Themen in diesem Bereich 1
Neu Praktiker: Ende der Beta-Phase User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTW Wawi hängt beim Bearbeiten der Druckvorlage für Mahnungen User helfen Usern - Fragen zu JTL-Wawi 0
Lieferadresse entspricht der Rechnungsadresse - vorausgewählt Checkout Einrichtung JTL-Shop5 2
Neu Anzeige Kategorie Pfad in der Übersicht User helfen Usern - Fragen zu JTL-Wawi 1
Neu Reihenfolge der Länder (bei der Versandkostenberechnung) Betrieb / Pflege von JTL-Shop 2
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Prüfung der UST-ID-Prüfung schlägt fehl. (Innergemeinschaftliche Lieferung) JTL-Wawi 1.8 2
Neu Name der Versandart im Shop anzeigen Allgemeine Fragen zu JTL-Shop 36
Neu Amazon Abgleich - seit heute 12:26Uhr keine Übernahme der Bestellungen über Worker Amazon-Anbindung - Fehler und Bugs 9
Artikelbezeichnung auf der Rechnung anpassen von "Artikelname" in "Kurzbeschreibung" JTL-Wawi 1.10 4
Neu Fehler 35 XLM entspricht nicht der Konvention Plugins für JTL-Shop 4
Neu Schelle Peisänderung in der Tabellenansicht möglich? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Update der Version 1.2.2.2 auf eine aktuelle Installation von JTL-Wawi 11
Neu Abbruch auf der Plattform löscht nicht mehr den Auftrag Arbeitsabläufe in JTL-Wawi 3
Neu Anzeige / Summe der Aufträge zu den Auftragspaketen in der Rechnung ?! User helfen Usern - Fragen zu JTL-Wawi 8
Neu QR Code Ausdruck der TSE Einrichtung / Updates von JTL-POS 0
Automatische Berechnung der Artikelmenge wenn Verkaufseinheit qm ist JTL-Wawi 1.10 4
Neu Der Auftrag wird nicht ausgeliefert. Der Auftrag befindet sich bereits auf einer anderen Pickliste. User helfen Usern - Fragen zu JTL-Wawi 2
Neu Bankverbindung in der Wawi ändern - Bankwechsel Installation von JTL-Wawi 2
Neu Fehler mit der Kartenzahlung Einrichtung / Updates von JTL-POS 9

Ähnliche Themen