Löscht alle Personen eines des Typs.
Hinweis :
Es ist NICHT möglich, das Löschen aller Personen eines Typs in einer Transaktion durchzuführen, d.h. es kann passieren, daß bei Auftreten eines Fehlers bereits ein Teil der Personen gelöscht wurde, aber eben nicht alle ! Führt ein solcher Fehler nicht zu einem Abbruch der Ausführung, fahren wir in jedem Fall fort, machen aber durch eine „print“-Ausgabe darauf aufmerksam.
Bestimmte Fehler haben mit der Tatsache zu tun, daß wir intern pm_DeletePerson_Ad verwenden (wir gehen in einer Schleife alle Personen des angegeben Typs durch und führen dann pro „PersonID“ die besagte Prozedur aus), die das Löschen einer Person unter bestimmten Umständen verhindert.
⇒ Insbesondere sollte daher die Dokumentation von pm_DeletePerson_Ad beachtet werden !
HTTP-Method | POST |
HTTP-Auth | Optional |
Alias | pm_DeleteAllPersonsOfPersonType_Ad |
Tags | |
Engine-Kategorie | person management |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
PersonTypeID | ID eines Personen-Typs, zu dem alle existierenden Personen gelöscht werden sollen. Nicht erlaubt sind jedoch die spezielle „PersonTypeID = 0“ und die ID, die in „Settings“ zum Schlüssel „PersonTypeID_dStoreUser“ konfiguriert ist ! | tinyint | 6.0.0 | |
ForceDelete | 0 | SUMME dieser Werte : Eine Person des Typs „PersonTypeID“ soll gelöscht werden, auch wenn sie… * „1“ : Auftraggeber eines Auftrags ist * „2“ : Lieferanschrift eines Auftrags ist * „4“ : Autor eines Forum-Beitrags ist, der nicht gelöscht werden darf | tinyint | 6.0.0 |
DelayAfterXPersons | 50 | Nachdem die hier angegebenen Anzahl („> 0“ !) an Personen verarbeitet wurde (egal ob gelöscht werden konnte oder nicht), warten wir die durch „DelayTimeInSeconds“ angegebene Anzahl Sekunden, da das Löschen von Personen-Daten i.d.R. „I/O“-intensiv ist | smallint | 6.0.0 |
DelayTimeInSeconds | 10 | Anzahl Sekunden, die wir bis zur Fortführung des Löschvorgangs warten (da das Löschen von Personen-Daten i.d.R. „I/O“-intensiv ist), nachdem die durch „DelayAfterXPersons“ angegebene Anzahl an Personen verarbeitet wurde | tinyint | 6.0.0 |
Die Prozedur hat keine Rückgaben.
NumberOfDeletedPersons | Ausgabeparameter, dem entnommen werden kann, wieviele Personen tatsächlich gelöscht wurden |
NumberOfNotDeletedPersons | Ausgabeparameter, dem entnommen werden kann, wieviele Personen NICHT gelöscht werden konnten. Anmerkung : via „print“ wurden entsprechende Meldungen, die über die Gründe Aufschluß geben, erzeugt. |
Code | Beschreibung | Quelle 4) |
---|---|---|
-856 | Fehlerhafte Daten in „MainPostingSorting“ | nur indirekt |
-855 | Fehlerhafte Konfiguration des Sortier-Kriteriums | nur indirekt |
-850 | Sortier-Kriterium nicht definiert oder inaktiv oder nicht verwendbar | nur indirekt |
-840 | Posting kann nicht bearbeitet werden, weil es bereits von einem anderen Prozess bearbeitet wird | nur indirekt |
-677 | Die Person kann nicht gelöscht werden, da es mind. ein Posting gibt, das nicht gelöscht werden darf | nur indirekt |
-672 | Fehlende Berechtigung zum Löschen von Personen eines bestimmten Personentyps | nur indirekt |
-671 | Die Person kann nicht gelöscht werden, da mindestens ein Auftrag existiert | nur indirekt |
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-610 | Fehlende oder falsche Daten in PersonMetaInformation | nur indirekt |
-572 | Die Prozedur darf nur innerhalb einer Transaktion ausgeführt werden | nur indirekt |
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-561 | Prozedur kann nicht ausgeführt werden | nur indirekt |
-550 | Fehlender oder falscher Eintrag in Settings | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-220 | Es konnte keine Merkmal-ID für die Produktbezeichnung ermittelt werden | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf] |
6.0.0 | 2010-03-26 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/pm_DeleteAllPersonsOfPType_Ad?PersonTypeID=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/pm_DeleteAllPersonsOfPType_Ad?PersonTypeID=<value>' | xmllint --format -
use dStore_php\WebService; $service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80); $request = new WebService\Requests\Engine\Procedure\Request( new WebService\Requests\AccessData('default'), 'pm_DeleteAllPersonsOfPType_Ad', array( 'PersonTypeID' => <value>, // 'ForceDelete' => 0, // 'DelayAfterXPersons' => 50, // 'DelayTimeInSeconds' => 10 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray(); $OutputParams = $xml_result->getOutputParametersAsArray();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?> <ListOfBatches> <Batch No="0"> <Procedure Name="pm_DeleteAllPersonsOfPType_Ad"> <Parameters> <Parameter Name="PersonTypeID"><!-- tinyint value --></Parameter> <!-- <Parameter Name="ForceDelete">0</Parameter> --> <!-- <Parameter Name="DelayAfterXPersons">50</Parameter> --> <!-- <Parameter Name="DelayTimeInSeconds">10</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>