Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:im_getlockednodecharacs_ad

im_GetLockedNodeCharacs_Ad

Gibt Einträge aus der Tabelle „LockedNodeCharacteristics“ aus. In dieser Tabelle ist festgehalten, welche Merkmale für welche Benutzer wie gesperrt sind.

Derzeit kann nach vier Berechtigungs-Arten unterschieden werden :

  • Neu-Anlage
  • Ändern
  • Löschen
  • Ermitteln

Grundsätzlich gilt : Eine „GLOBALE“ Konfiguration (intern zur „UserID = -1“) wird von einer DIREKTEN Konfiguration (für einen bestimmen Benutzer) überschrieben.

HINWEIS wie „Neu-Anlage“, „Ändern“ und „Löschen“ von Eigenschaften jeweils zu verstehen ist :

(1) Allgemeines :
Artikel-Elementen zugewiesene Eigenschaften sind IMMER nur in einem Zeitraum gültig - insbesondere ist „unendlich“ gültig so implementiert, daß das Ende des Zeitraums der größt-mögliche Datumswert (derzeit „31.12.9999 23:59:59:999“) ist. Außerdem ist es generell nicht möglich, Zeiträume mit einem Beginn in der Vergangenheit einzufügen.

(2) Definitionen der einzelnen Modifikations-Arten :
Sei der Beginn eines Gültigkeitszeitraums, in dem eine Eigenschaft zugewiesen werden soll, nun „FROM“, und das Ende „TO“ benannt. Wenn wir außerdem den Beginn eines bestehenden Gültigkeitszeitraums, in dem bereits eine Eigenschaft zugewiesen ist, „FROM_alt“, das Ende „TO_alt“ nennen, ergeben sich folgende Definitionen :

(i) Löschen :
Gibt es einen Zeitraum „FROM_alt“ bis „TO_alt“, der einen Teil enthält, in dem das betroffene Artikel-Element nach der Änderung KEINE Eigenschaft besitzt, handelt es sich um einen LÖSCH-Vorgang.

(ii) Neu-Anlage :
Hatte ein Element vor der Änderung in einem Teil des neuen Zeitraums „FROM“ bis „TO“ keine Eigenschaft zum Merkmal, handelt es sich um eine NEU-Anlage.

(iii) Ändern :
Gibt es einen Zeitraum „FROM_alt“ bis „TO_alt“, der sich mit dem neuen Zeitraum „FROM“ bis „TO“ überschneidet, wird eine Eigenschaft geÄNDERT.

⇒ Daher kann es durchaus vorkommen, daß mit einer Modifikation (durch im_ModifyNodeProperties_Ad z.B.) gleich ZWEI Fälle (z.B. Ändern und Hinzufügen) eintreten.

Hinweis zur Rückgabespalte „LockStatus“ :

Ist hier „0“ konfiguriert, bedeutet dies „Keine Sperrung“, d.h. Eigenschaften zum Merkmal dürfen sowohl gelesen als auch bearbeitet werden. Dies ist dann sinnvoll, wenn man für ALLE BENUTZER (d.h. zur „UserID = -1“) eine „Sperre“ konfiguriert hat, aber für einen bestimmten Benutzer diese Sperre wieder aufheben möchte.

HTTP-MethodGET
HTTP-AuthOptional
Aliasim_GetLockedNodeCharacteristics_Ad
Tags
Engine-Kategorieitem management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
UserIDNULL ID eines im „dStore“ registrierten Benutzers (aus der Tabelle „UserInfo“), nach dem das Ergebnis eingeschränkt werden soll
smallint3.5.20
NodeCharacteristicIDNULL ID eines Merkmals, nach der das Ergebnis eingeschränkt werden soll
smallint3.5.20
LockStatusNULL Falls angegeben, werden nur Datensätze mit einem solchen „LockStatus“ ausgegeben (s. a. Dokumentation der gleichnamige Rückgabespalte)
tinyint3.5.20

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
UserIDID eines im „dStore“ registrierten Benutzers (aus der Tabelle „UserInfo“), der nur lesenden oder gar keinen Zugriff auf das Merkmal „NodeCharacteristicID“ hat.
smallint3.5.20
UserNameName des Benutzers „UserID“
varchar(50)3.5.20
NodeCharacteristicIDID eines Merkmals auf das der Benutzer „UserID“ nur lesenden oder gar keinen Zugriff hat
smallint3.5.20
CharacteristicDescriptionBezeichnung des Merkmals „NodeCharacteristicID“ (in der Standardsprache)
varchar(100)3.5.20
LockStatusSumme folgender Optionen (s.a. Beschreibung !) :
- „1“ : Neu-Anlage von Eigenschaften ist nicht möglich
- „2“ : Ändern von Eigenschaften ist verboten
- „4“ : Löschen von Eigenschaften ist nicht erlaubt
- „8“ : Ermitteln von Eigenschaften ist verboten
tinyint3.5.20
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • UserName (aufsteigend)
  • CharacteristicDescription (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-500Falsche Parameternur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
5.1.5 2006-08-291. Der „LockStatus“ ist jetzt völlig anders aufgebaut - BRUCH DER ABWÄRTSKOMPATIBILITÄT !
2. Sortierung der Ergebnismenge
3. Falsche Index-Angabe in einem Fall
4. Fehlende „set forceplan“-Anweisung
5.1.1 2006-04-05Der „LockStatus = 2“ ist ersatzlos weggefallen, da es seit 5.1.0 grundsätzlich verboten ist, Eigenschaften in der Vergangenheit zu ändern !
4.0.11 2004-03-311. Aufruf der Prozeduren „_mi_StartProcedure“ und „_mi_FinishProcedure“
2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur
3. Fehlende Doku der Rückgabemenge
3.5.20 2002-07-22Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetLockedNodeCharacs_Ad'

Mit xmllint 6) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/im_GetLockedNodeCharacs_Ad' | xmllint --format -
dStore_php
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'),
	'im_GetLockedNodeCharacs_Ad',
		array(
			// 'UserID' => NULL,
			// 'NodeCharacteristicID' => NULL,
			// 'LockStatus' => NULL
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

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="im_GetLockedNodeCharacs_Ad">
			<Parameters>
				<!-- <Parameter Name="UserID">NULL</Parameter> -->
				<!-- <Parameter Name="NodeCharacteristicID">NULL</Parameter> -->
				<!-- <Parameter Name="LockStatus">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/im_getlockednodecharacs_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)