Prozedur zur Verwaltung der Auftrags-/Bestell-(Positions-)Status.
Anmerkung : Es sind nur „OrderStateID“s (→ „OrderStateID“) erlaubt, die kleiner als „250“ sind, da alle IDs ab „250“ für interne Zwecke reserviert sind !
Anmerkungen zum Parameter „ChangeOrderStateTriggerID“ :
1.) Im Standard wird ein „TRI-Trigger“ konfiguriert, und zwar mit der ID „-1“, der zur Ausführung der Prozedur „_ac_ChangeOrderState“ führt - daher der „default“-Wert.
2.) Der Status mit der ID „0“ ist ein Sonderfall, weil dies der Status bei Neu-Anlage eines Auftrags ist. Entsprechend gibt es hierfür auch einen „TRI-Trigger“ (mit der ID „-2“), der zur Ausführung der Prozedur „_ac_NewOrder“ führt. Falls also „OrderStateID = 0“ gilt, kommt es zu einem Fehler, sofern „ChangeOrderStateTriggerID“ mit dem default-Wert („-1“) übergeben wird, weil dieser Trigger NICHT für die Auftrags-Anlage gedacht ist (s. Rückgabespalte „TriggerTypeID“ von mi_GetTRITrigger_Ad) !
HTTP-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | configurations |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
OrderStateID | ID eines Auftrags-(Positions-)Status | tinyint | 3.5.7 | |
OrderState | Bezeichnung des Auftrags-(Positions-)Status | varchar(50) | 3.5.7 | |
PublicDescription | Beschreibung des Status „OrderStateID“ für den Kunden in der Standardsprache („Settings“-Eintrag zum Schlüssel „DefaultLanguageID“) | varchar(255) | 3.5.7 | |
InsertUpdateOrDelete | 0 | „0“ : Es wird ein neuer Status mit der ID „OrderStateID“ angelegt („OrderState“ und „PublicDescription“ dürfen beide „NULL“ sein) „1“ : „OrderState“ bzw. „PublicDescription“ zur „OrderStateID“ werden geändert „2“ : „OrderStateID“ wird gelöscht | tinyint | 3.5.7 |
Active | 1 | „0“ : Der Status „OrderStateID“ soll nicht mehr verwendet werden (kann aber nicht gelöscht werden, da er noch referenziert wird) „1“ : Der Status ist aktiv, d.h. er wird aktuell und in Zukunft verwendet | bit | 3.5.21 |
ChangeOrderStateTriggerID | -1 | ID eines „TRI-Trigger“, der beim Wechsel in den Status „OrderStateID“ bzw. bei Auftrags-Anlage, falls „OrderStateID = 0“ ist, ausgelöst werden soll (mögliche Werte : s. om_GetChangeOStateTrigger_Ad). | smallint | 7.0.3 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-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 |
-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 |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-347 | Ungültige „OrderStateID“ (da für interne Zwecke reserviert) | nur direkt |
-342 | Der Orderstatus kann nicht gelöscht werden, da es noch Auftragspositionen in diesem Status gibt | nur direkt |
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] |
7.0.3 | 2013-12-13 | Neuer Parameter „ChangeOrderStateTriggerID“ |
6.5.4 | 2013-04-29 | Anpassungen an aktuellen Code-Standard, u.a. wg. UTF8-Unterstützung |
5.1.2 | 2006-06-26 | Berücksichtigung, daß ab 5.1.2 die „OrderStateID“s größer „249“ für interne Zwecke reserviert sind |
4.0.14 | 2004-06-03 | 1. Aufruf der Prozeduren „_mi_StartProcedure“, „_mi_FinishProcedure“ und „_mi_ChooseParamValueSeperator“ 2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur 3. Konsequente Fehlerbehandlung |
3.5.22 | 2002-08-30 | |
3.5.21 | 2002-08-06 | |
3.5.7 | 2001-05-04 | 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/om_ModifyOrderStates_Ad?OrderStateID=<value>&OrderState=<value>&PublicDescription=<value>'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/om_ModifyOrderStates_Ad?OrderStateID=<value>&OrderState=<value>&PublicDescription=<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'), 'om_ModifyOrderStates_Ad', array( 'OrderStateID' => <value>, 'OrderState' => '<value>', 'PublicDescription' => '<value>', // 'InsertUpdateOrDelete' => 0, // 'Active' => 1, // 'ChangeOrderStateTriggerID' => -1 ) ); $service->execute($request); $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); $ResultSet = $xml_result->getRowsAsArray();
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="om_ModifyOrderStates_Ad"> <Parameters> <Parameter Name="OrderStateID"><!-- tinyint value --></Parameter> <Parameter Name="OrderState"><!-- varchar value --></Parameter> <Parameter Name="PublicDescription"><!-- varchar value --></Parameter> <!-- <Parameter Name="InsertUpdateOrDelete">0</Parameter> --> <!-- <Parameter Name="Active">1</Parameter> --> <!-- <Parameter Name="ChangeOrderStateTriggerID">-1</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>