Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_modifyregisteredprocs_ad

mi_ModifyRegisteredProcs_Ad

Mit dieser Prozedur kann man für registrierte Prozeduren die Aufruf-Protokollierung und den Check von Ausführungsrechten anhand von Parameter-Bedingungen konfigurieren bzw. „customized“-Prozeduren neu registrieren.

Anmerkungen zu den Parametern „CheckForExecutionRestrictions“ und „LogExecutions“ :

Einschränkung bei Prozeduren, die NICHT „customized“ sind : Ist der bestehende Wert für „CheckForExecutionRestrictions“ bzw. „LogExecutions“ bereits „0“, kann dieser nicht mehr geändert werden, und von Werten ungleich „0“ kann nicht auf „0“ gewechselt werden !
Bei der Registrierung von Prozeduren, die mit „_ac_“ beginnen, werden die Parameter „CheckForExecutionRestrictions“ und „LogExecutions“ ignoriert - es wird für beide korrespondierenden Werte immer „0“ verwendet ! Insbesondere kann man diese Art registrierter Prozedur NICHT ändern (wohl aber löschen natürlich) !

Mögliche Werte für „CheckForExecutionRestrictions“ :

  • „0“ : Überprüfung grundsätzlich nicht möglich
  • „1“ : überprüfung grundsätzlich möglich
  • „2“ : Überprüfung aktiviert

Mögliche Werte für „LogExecutions“ :

  • „0“ : Protokollierung grundsätzlich nicht möglich
  • „1“ : Protokollierung grundsätzlich möglich
  • „2“ : Einfache Protokollierung aktiviert
  • „6“ : Einfache Protokollierung inkl. der Parameter-Werte aktiviert
  • „10“ : Einfache Protokollierung mit zus. Werten aus „master..sysprocesses“ aktiviert
  • „14“ : Komplette Protokollierung aktiviert, d.h. sowohl inkl. der Parameter-Werte als auch bestimmter Werte aus „master..sysprocesses“

Ist die Protokollierung inkl. der Parameter-Werte aktiviert, werden auch Daten, die durch eine oder mehrere der „tempdb-Schnittstellen-Tabellen“ übergeben wurden, protokolliert : Pro Datensatz in einer der entsprechenden Tabellen in der „tempdb“ wird für jede Spalte der Wert gespeichert, und zwar zu einem Pseudo-Parameter-Namen, der so aussieht :

„<Eine Abkürzung des Tabellen-Namens mit maximal 10 Buchstaben>_<Spalten-Name>_<Datensatznummer>„

Derzeit werden nicht alle Tabelle der „tempdb“ unterstützt, sondern nur die folgenden (die Abkürzung des Tabellen-Namens, die für den „Pseudo-Parameternamen“ benötigt wird, entspricht dem Tabellen-Namen sofern nicht anders angegeben) :

  • AnyValues
  • CharacteristicConditions (Abkürzung des Tabellen-Namens : „CharacCond“)
  • CharacteristicValues (Abkürzung des Tabellen-Namens : „CharacVals“)
  • ImageData
  • OneID
  • TextData
  • ThreeIDs
  • TwoIDs

Werte aus Spalten vom Typ „text“ (wie z.B. in „TextData“) können natürlich nicht komplett gespeichert werden - es werden nur die ersten 255 Zeichen übernommen.
Analoges gilt für den Typ „Image“ (wie z.B. in „ImageData“) : hier wird zunächst eine Konvertierung nach „varbinary(255)“ vorgenommen, der dann als „string“ interpretiert (das ergibt nichts Sinnvolles) und gespeichert wird…

HTTP-MethodPOST
HTTP-AuthOptional
Aliasmi_ModifyRegisteredProcedures_Ad
Tags
Engine-Kategorieconfigurations
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
ProcedureID „NULL“ angeben, um eine neue (nur „customized“ !) Prozedur registrieren zu lassen. Ist ein Wert angegeben, wird der entsprechende Datensatz je nach „DeleteProcedure“ geändert oder gelöscht.
smallint4.0.7
ProcedureName Wird nur beachtet, wenn „NULL“ für „ProcedureID“ angegeben wurde. In diesem Fall wird die Prozedur mit diesem Namen registriert, sofern sie „customized“ ist, d.h. der Name „_cu_“ enthält oder mit „_ac_“ beginnt. (“-500“, falls es die Prozedur nicht gibt)
varchar(50)4.0.7
DeleteProcedure0 Relevant, falls „ProcedureID“ angegeben ist.
„0“ : Der Datensatz zur „ProcedureID“ soll geändert werden
„1“ : Der Datensatz zur „ProcedureID“ soll gelöscht werden - nur möglich, wenn es sich um eine „customized“ Prozedur handelt !
bit4.0.7
CheckForExecutionRestrictions Sollen bei Ausführung der Prozedur Einschränkungen bzgl. der Parameter geprüft werden ? (s. a. Beschreibung !)
„0“ : grundsätzlich nicht möglich
„1“ : grundsätzlich möglich
„2“ : Überprüfung aktiviert
tinyint4.0.7
LogExecutions Soll jeder Aufruf der Prozedur protokolliert werden ? (s.a. Beschreibung !)
„0“ : nicht möglich
„1“ : möglich
„2“ : einfache Protokollierung
„6“ : mit Parameter-Werten
„10“ : mit Werten aus „master..sysprocesses“
„14“ : „6“ UND „10“
tinyint4.0.7

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-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
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und 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]
6.5.3 2013-03-18Anpassungen an den aktuellen Quellcode-Standard, u.a. wg. UTF8-Unterstützung
5.0.1 2005-03-29Möglichkeit, neben „cu“-Prozeduren auch „_ac_“-Prozeduren registrieren zu können [da diese ja quasi auch „customized“ sind] !
5.0.0 2004-12-21Beim Ändern von „CheckForExecutionRestrictions“ ist jetzt die Tatsache zu berücksichtigen, daß in dieser Spalte zusätzliche, intern verwendete Informationen gespeichert werden (z.B. ob es zur Prozedur Datensätze in „ProcedureExecRightsForUsers“ gibt)
4.0.9 2004-03-031. Verwendung von „_mi_ChooseParamValueSeperator“ als Vorbereitung von „_mi_StartProcedure“
2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur
4.0.8 2004-02-201. Fehlende Überprüfung der Parameter „CheckForExecutionRestrictions“ und „LogExecutions“ beim Registrieren von „cu“-Prozeduren
2. Aufruf der Prozeduren „_mi_StartProcedure“ und „_mi_FinishProcedure“
3. Diverse interne Änderungen
4.0.7 2004-01-16Erstmalig 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 POST  'http://<partner>-<project>.dstore.de/default/engine/mi_ModifyRegisteredProcs_Ad?ProcedureID=<value>&ProcedureName=<value>&CheckForExecutionRestrictions=<value>&LogExecutions=<value>'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/mi_ModifyRegisteredProcs_Ad?ProcedureID=<value>&ProcedureName=<value>&CheckForExecutionRestrictions=<value>&LogExecutions=<value>' | 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'),
	'mi_ModifyRegisteredProcs_Ad',
		array(
			'ProcedureID' => <value>,
			'ProcedureName' => '<value>',
			'CheckForExecutionRestrictions' => <value>,
			'LogExecutions' => <value>,
			// 'DeleteProcedure' => 0
		)
);
 
$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="mi_ModifyRegisteredProcs_Ad">
			<Parameters>
				<Parameter Name="ProcedureID"><!-- smallint value --></Parameter>
				<Parameter Name="ProcedureName"><!-- varchar value --></Parameter>
				<Parameter Name="CheckForExecutionRestrictions"><!-- tinyint value --></Parameter>
				<Parameter Name="LogExecutions"><!-- tinyint value --></Parameter>
				<!-- <Parameter Name="DeleteProcedure">0</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/mi_modifyregisteredprocs_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)