Man erhält die konfigurierten Regeln bzgl. der Verwaltung von „OrderInformation“ (Informationen zu Aufträgen).
Diese sind pro Informations-Art („InformationTypeID“) konfigurierbar und sind zum einem vom Benutzer („UserID“), der die Änderung vornehmen möchte, abhängig, sowie von den Status („OrderStateID“s), in denen sich die Auftragspositionen eines Auftrags befinden.
Die Abhängigkeit vom Status ist so zu verstehen : Damit die Änderung (Anlegen/Aktualisieren/Löschen) durchgeführt werden darf, müssen sich ALLE Positionen des Auftrags in einem Status befinden, für den die Änderung erlaubt ist.
Hinweise zur Reihenfolge der Beachtung dieser Regeln :
1. Regeln zu einem bestimmten Benutzer („UserID“) werden immer „globalen“ Regeln „(„UserID = -1“) vorgezogen, und zwar unabhängig von „InformationTypeID“ und „OrderStateID“ !
2. Eine Regel zu einer gegebenen „InformationTypeID“ hat eine höhere Priorität als die „allgemeine“ ID mit dem Wert
“-32768„ - unabhängig von „OrderStateID“.
3. Eine Regel zu einer gegebenen „OrderStateID“ schließlich hat Vorrang vor dem „allgemeinen“ Status (Wert „255“).
4. Ist für eine „Benutzer-Informationsart-Status-Kombination“ (also zu einer gegebenen „UserID“, „InformationTypeID“ und „OrderStateID“) KEINE passende Regel vorhanden, bedeutet dies implizit, daß der Benutzer für diese Informationsart an einem Auftrag GAR KEINE Änderung vornehmen darf, wenn der Auftrag eine Position besitzt, die in diesem Status ist !
Anders formuliert : Keine passende Regel ist gleichbedeutend mit einer passenden Regel, bei der in der Rückgabemenge „ModificationAllowed = 0“ ist !
Anmerkungen zum Parameter „GetMyRulesForOrderID“ :
Um einem Benutzer bei einem bestimmten Auftrag anzeigen zu können, welche Informations-Arten noch geändert werden dürfen (und was geändert werden darf), kann man im Parameter „GetMyRulesForOrderID“ die ID des besagten Auftrags übergeben. Die anderen Parameter werden in diesem Fall ignoriert ! Hinweise zur Rückgabemenge in diesem Fall :
HTTP-Method | GET |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Ermittlung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | ab Version |
---|---|---|---|---|
UserID | NULL | Wird nur beachtet, wenn „GetMyRulesForOrderID = NULL“ ist ! ID eines „dStore“-Benutzers (s. mi_GetUserInfo_Ad). Wird dieser Parameter angegeben, werden nur Regeln ermittelt, die für diesen Benutzer (d.h. zu dieser ID) konfiguriert sind. | smallint | 5.1.2 |
InformationTypeID | NULL | Wird nur beachtet, wenn „GetMyRulesForOrderID = NULL“ ist ! ID eines Informations-Typs für Aufträge. Wenn angegeben, werden nur Regeln für diesen Informations-Typ zurückgegeben. | smallint | 5.1.2 |
OrderStateID | NULL | Wird nur beachtet, wenn „GetMyRulesForOrderID = NULL“ ist ! ID eines Auftrags-(Positions-)Status. Wenn angegeben, werden nur Regeln für diesen Status zurückgegeben. | tinyint | 5.1.2 |
GetMyRulesForOrderID | NULL | ID eines Auftrags. Falls angegeben, werden die Informations-Arten ermittelt, die der Benutzer, der diese Prozedur hier aufruft, noch (und wie) ändern darf. Alle anderen Parameter werden ignoriert. | integer | 5.1.2 |
Spaltenname | Beschreibung | SQL-Datentyp4) | ab Version |
---|---|---|---|
InformationTypeID | ID eines Typs von Informationen, die zu Aufträgen hinterlegt werden können (mögliche Werte : s. om_GetOrderInformationTypes_Ad) | smallint | 5.1.2 |
InformationType | Bezeichnung der „InformationTypeID“ | varchar(100) | 5.1.2 |
UserID | ID eines „dStore“-Benutzers. Dieser darf die durch „ModificationAllowed“ angegebenen Arten von Änderungen zu Informationen des Typs „InformationTypeID“ durchführen, wenn sich die Positionen des Auftrags im Status „OrderStateID“ befinden. | smallint | 5.1.2 |
UserName | Name des Benutzers „UserID“ | varchar(50) | 5.1.2 |
OrderStateID | ID eines Auftrags-(Positions-)Status. Der Benutzer „UserID“ darf die durch „ModificationAllowed“ angegebenen Arten von Änderungen zu Informationen des Typs „InformationTypeID“ durchführen, wenn sich die Positionen des Auftrags in diesem Status befinden. | tinyint | 5.1.2 |
OrderState | Bezeichnung des Status „OrderStateID“ | varchar(50) | 5.1.2 |
ModificationAllowed | „Summe“ der Arten von Änderungen, die durchgeführt werden dürfen : - „1“ : NEU hinzufügen - „2“ : ÄNDERN - „4“ : LÖSCHEN ⇒ „0“ bedeutet : KEINERLEI Änderungen | tinyint | 5.1.2 |
(parameterunabängige Sortierung)
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 5) |
---|---|---|
-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 | direkt und indirekt |
-500 | Falsche Parameter | direkt und 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.5.2 | 2013-02-26 | Fehler : Bei der Überprüfung, ob eine „varchar“-Variable „voll“ ist, muß die Funktion „datalength“ [nicht „char_length“] verwendet werden |
5.5.1 | 2008-07-29 | 1. Interne Umstellung bei der Belegung von Variablen, die eine Liste von Werten enthalten, damit die Prozedur auch für ASE 15.0.2 läuft 2. Quellcode-Änderungen gemäß aktuellem Standard |
5.1.2 | 2006-06-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 GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetOrderInformationRules_Ad'
Mit xmllint 6) formatierte Ausgabe:
curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/om_GetOrderInformationRules_Ad' | 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_GetOrderInformationRules_Ad', array( // 'UserID' => NULL, // 'InformationTypeID' => NULL, // 'OrderStateID' => NULL, // 'GetMyRulesForOrderID' => NULL ) ); $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_GetOrderInformationRules_Ad"> <Parameters> <!-- <Parameter Name="UserID">NULL</Parameter> --> <!-- <Parameter Name="InformationTypeID">NULL</Parameter> --> <!-- <Parameter Name="OrderStateID">NULL</Parameter> --> <!-- <Parameter Name="GetMyRulesForOrderID">NULL</Parameter> --> </Parameters> </Procedure> </Batch> </ListOfBatches>