Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
engine:procedures:mi_getprocedureexecutionlog_ad [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== mi_GetProcedureExecutionLog_Ad ===== | ||
+ | |||
+ | Gibt die protokollierten Ausführungen einer registrierten Prozedur innerhalb eines Zeitraums aus.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zu den Rückgabespalten "ParameterName" und "ParameterValue" :\\ | ||
+ | |||
+ | Falls die (durch "ProcedureID" angegebene) Prozedur neben Parameter-Werten zusätzlich oder alternativ Daten über eine Tabelle übergeben bekommen kann, werden diese "manchmal" geloggt - je nachdem, ob die "Input"-Tabelle unterstützt wird oder nicht. Derzeit werden nur Daten von Tabellen der Datenbank "tempdb" beachtet, in einer zukünftigen Version kann dies aber durchaus auf manche Tabellen der "dstoreifin"-Datenbank erweitert werden. Wenn also solche Daten ebenfalls beim Aufruf protokolliert wurden, dann zu "dummy"- oder auch Pseudo-Parametern. Diese haben folgenden Aufbau :\\ | ||
+ | |||
+ | "<Eine Abkürzung des Tabellen-Namens mit maximal 10 Buchstaben>_<Spalten-Name>_<Datensatznummer>"\\ | ||
+ | |||
+ | Ein Beispiel :\\ | ||
+ | |||
+ | In der Rückgabemenge dieser Prozedur gibt es folgenden Datensätze : | ||
+ | * "ParameterName" : 'OneID_ID1_1' und "ParameterValue" : '3' | ||
+ | * "ParameterName" : 'OneID_ID1_2' und "ParameterValue" : '5' | ||
+ | |||
+ | |||
+ | Dies bedeutet, daß beim Prozedur-Aufruf zwei Datensätze via "tempdb.dbo.OneID" übergeben wurden, und zwar ein Datensatz mit "ID1 = 3" und ein Datensatz mit "ID1 = 5".\\ | ||
+ | |HTTP-Method|GET | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[mi Get Procedure Execution Log Ad]}}| | ||
+ | |Engine-Kategorie|system administration | | ||
+ | |Engine-Typ|Daten-Ermittlung | | ||
+ | |Letzte Aktualisierung|7.0.7 (2015-01-29)| | ||
+ | |||
+ | ==== Parameter ==== | ||
+ | |||
+ | ^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:engine_parameterconventions|Parameter-Konventionen engine/<Prozedur-Name>]])) ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |__ProcedureID__| |ID einer registrierten Prozedur (mögliche Werte : siehe [[dstoreproc>mi_GetRegisteredProcedures_Ad]])\\ |smallint|4.0.8| | ||
+ | |__FromDate__| |Es werden nur Ausführungen berücksichtigt, die zu diesem oder einem späteren Zeitpunkt protokolliert wurden (Parameter muß angegeben werden !)\\ |datetime|4.0.8| | ||
+ | |__ToDate__| |Es werden nur Ausführungen berücksichtigt, die zu diesem oder einem früheren Zeitpunkt protokolliert wurden (Parameter muß angegeben werden !)\\ |datetime|4.0.8| | ||
+ | |ExecutedByUserID|NULL |ID eines "dStore"-Benutzers, der in "UserInfo" registriert ist (siehe [[dstoreproc>mi_GetUserInfo_Ad]]). Falls angegeben, werden nur protokollierte Aufrufe der Prozedur beachtet, die von diesem Benutzer getätigt wurden.\\ |smallint|4.0.8| | ||
+ | |ExecutedOnNestingLevel_From|NULL |Optionaler Filter : Nur die Ausführungen auf diesem oder einem höheren "NestingLevel" ("NestingLevel = 1" : direkter Aufruf der Prozedur, "NestingLevel = 2" : Aufruf innerhalb einer anderen Prozedur, usw.) beachten\\ |tinyint|4.0.8| | ||
+ | |ExecutedOnNestingLevel_To|NULL |Optionaler Filter : Nur die Ausführungen auf diesem oder einem niedrigeren "NestingLevel" ("NestingLevel = 1" : direkter Aufruf der Prozedur, "NestingLevel = 2" : Aufruf innerhalb einer anderen Prozedur, usw.) beachten\\ |tinyint|4.0.8| | ||
+ | |HostName|NULL |Optionaler Filter : Es sollen nur protokollierte Aufrufe der Prozedur beachtet werden, die von diesem "Host" erfolgten\\ |varchar(50)|4.0.8| | ||
+ | |ProgramName|NULL |Optionaler Filter : Es sollen nur protokollierte Aufrufe der Prozedur beachtet werden, die aus diesem Programm heraus erfolgten\\ |varchar(50)|4.0.8| | ||
+ | |ExecutionTime_ms_From|NULL |Optionaler Filter : Falls angegeben, werden nur Ausführungen berücksichtigt, die diese oder eine größere Anzahl von Millisekunden benötigten\\ |integer|4.0.8| | ||
+ | |ExecutionTime_ms_To|NULL |Optionaler Filter : Falls angegeben, werden nur Ausführungen berücksichtigt, die diese oder eine kleinere Anzahl von Millisekunden benötigten\\ |integer|4.0.8| | ||
+ | |ReturnCode_From|NULL |Optionaler Filter : Ist hier ein Wert angegeben, sind in der Ausgabe nur Aufrufe enthalten, bei denen die Prozedur diesen oder einen größeren "Return-Code" zurückgegeben hat\\ |integer|4.0.8| | ||
+ | |ReturnCode_To|NULL |Optionaler Filter : Ist hier ein Wert angegeben, sind in der Ausgabe nur Aufrufe enthalten, bei denen die Prozedur diesen oder einen niedrigeren "Return-Code" zurückgegeben hat\\ |integer|4.0.8| | ||
+ | |IncludeLoggedParamValues|0 |"1" angeben, um zusätzliche Rückgabespalten zu erhalten, denen man die einzelnen Parameter und ihre Werte beim jeweiligen Prozedur-Aufruf entnehmen kann\\ |bit|6.0.3| | ||
+ | ==== Rückgabe ==== | ||
+ | |||
+ | === wenn IncludeLoggedParamValues = 0 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |ExecutionDateAndTime|Zeitpunkt des Aufrufs der Prozedur\\ |datetime|4.0.8 | | ||
+ | |ExecutionDateAndTime_char|"ExecutionDateAndTime" als "string" im Format "17.08.2001 17:45:10:510"\\ |varchar(23)|4.0.8 | | ||
+ | |UniqueValue|Ein Wert, der den protokollierten Datensatz in der Tabelle "ProcedureExecutionLog" eindeutig macht (hat also keine weitere Bedeutung; er wird benötigt, um z.B. die Parameter zu diesem Aufruf in "ProcedureExecutionParameters" speichern zu können)\\ |char|4.0.8 | | ||
+ | |ExecutedByUserID|ID eines im "dStore" registrierten Benutzers (aus der Tabelle "UserInfo"), der die Prozedur ausgeführt hat\\ |smallint|4.0.8 | | ||
+ | |ExecutedByUserName|Name des Benutzers "ExecutedByUserID"\\ |varchar(50)|4.0.8 | | ||
+ | |ExecutedOnNestingLevel|Auf welchem "NestingLevel" wurde die Prozedur ausgeführt ("NestingLevel = 1" : direkter Aufruf der Prozedur, "NestingLevel = 2" : Aufruf innerhalb einer anderen Prozedur, usw.)\\ |tinyint|4.0.8 | | ||
+ | |ServerProcessID|Die Server-Prozeß-ID, unter der der Aufruf ausgeführt wurde\\ |integer|4.0.8 | | ||
+ | |EngineNumber|Auf welcher intern vom ASE verwalteten "Engine" lief der Prozeß "ServerProcessID"\\ |integer|4.0.8 | | ||
+ | |HostName|Der Aufruf erfolgte von diesem "Host"\\ |varchar(50)|4.0.8 | | ||
+ | |ProgramName|Die Prozedur wurde von diesem Programm aufgerufen\\ |varchar(50)|4.0.8 | | ||
+ | |ExecutionTime_ms|Ausführungsdauer des Aufrufs in Millisekunden\\ |integer|4.0.8 | | ||
+ | |ReturnCode|Welchen "Return-Code" der Aufruf lieferte (z.B. "0" für "erfolgreich")\\ |integer|4.0.8 | | ||
+ | |||
+ | == Sortierung der Rückgabe == | ||
+ | |||
+ | (parameterunabängige Sortierung) | ||
+ | * ExecutionDateAndTime (aufsteigend) | ||
+ | * UniqueValue (aufsteigend) | ||
+ | |||
+ | === wenn IncludeLoggedParamValues = 1 === | ||
+ | |||
+ | ^Spaltenname ^Beschreibung ^SQL-Datentyp((siehe [[:webservice:engine_datatypes|Datentypen im Bereich "engine"]])) ^ab Version ^ | ||
+ | |ExecutionDateAndTime|Zeitpunkt des Aufrufs der Prozedur\\ |datetime|6.0.3 | | ||
+ | |ExecutionDateAndTime_char|"ExecutionDateAndTime" als "string" im Format "17.08.2001 17:45:10:510"\\ |varchar(23)|6.0.3 | | ||
+ | |UniqueValue|Ein Wert, der den protokollierten Datensatz in der Tabelle "ProcedureExecutionLog" eindeutig macht (hat also keine weitere Bedeutung; er wird benötigt, um z.B. die Parameter zu diesem Aufruf in "ProcedureExecutionParameters" speichern zu können)\\ |char|6.0.3 | | ||
+ | |ExecutedByUserID|ID eines im "dStore" registrierten Benutzers (aus der Tabelle "UserInfo"), der die Prozedur ausgeführt hat\\ |smallint|6.0.3 | | ||
+ | |ExecutedByUserName|Name des Benutzers "ExecutedByUserID"\\ |varchar(50)|6.0.3 | | ||
+ | |ExecutedOnNestingLevel|Auf welchem "NestingLevel" wurde die Prozedur ausgeführt ("NestingLevel = 1" : direkter Aufruf der Prozedur, "NestingLevel = 2" : Aufruf innerhalb einer anderen Prozedur, usw.)\\ |tinyint|6.0.3 | | ||
+ | |ServerProcessID|Die Server-Prozeß-ID, unter der der Aufruf ausgeführt wurde\\ |integer|6.0.3 | | ||
+ | |EngineNumber|Auf welcher intern vom ASE verwalteten "Engine" lief der Prozeß "ServerProcessID"\\ |integer|6.0.3 | | ||
+ | |HostName|Der Aufruf erfolgte von diesem "Host"\\ |varchar(50)|6.0.3 | | ||
+ | |ProgramName|Die Prozedur wurde von diesem Programm aufgerufen\\ |varchar(50)|6.0.3 | | ||
+ | |ExecutionTime_ms|Ausführungsdauer des Aufrufs in Millisekunden\\ |integer|6.0.3 | | ||
+ | |ReturnCode|Welchen "Return-Code" der Aufruf lieferte (z.B. "0" für "erfolgreich")\\ |integer|6.0.3 | | ||
+ | |ParameterName|Parameter der durch "ProcedureID" angegebenen Prozedur ("NULL", wenn es keine geloggten Parameter zum Prozeduraufruf gibt) oder ein Pseudo-Parameter ("<Abkürzung einer Tabelle, in der Daten übergeben werden können>_<Spalten-Name>_<Datensatznummer>")\\ |varchar(50)|6.0.3 | | ||
+ | |ParameterValue|Wert, der in "ParameterName" zum Aufrufzeitpunkt angegeben war. Bei einem "Pseudo-Parameter" steht hier der Wert einer Spalte eines Datensatzes der Tabelle, in der zusätzliche Daten übergeben wurden (s. Beschreibung).\\ |varchar(1850)|6.0.3 | | ||
+ | |||
+ | == Sortierung der Rückgabe == | ||
+ | |||
+ | (parameterunabängige Sortierung) | ||
+ | * ExecutionDateAndTime (aufsteigend) | ||
+ | * UniqueValue (aufsteigend) | ||
+ | * ParameterName (aufsteigend) | ||
+ | |||
+ | ==== Output-Parameter ==== | ||
+ | |||
+ | Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ==== | ||
+ | |||
+ | ^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber" und indirekt meint "von intern aufgerufenen Unterprozeduren")) ^ | ||
+ | |-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| | ||
+ | ==== XML-Schema ==== | ||
+ | |||
+ | Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://resources.dstore.de/xsd/webservice_SmartGate/Response/EngineProcedure_v1_0.xsd|Response/EngineProcedure_v1_0.xsd]] validiert. | ||
+ | ==== Historie ==== | ||
+ | |||
+ | |7.0.7 |2015-01-29|Interne Änderung : Datentyp-Erweiterung des "ReferenceKey" [für "_mi_StartProcedure"-Aufruf]\\ | | ||
+ | |6.5.3 |2013-03-18|Interne Anpassungen wg. UTF8-Unterstützung\\ | | ||
+ | |6.0.6 |2012-03-01|Rückgabespalte "ParameterValue" erweitert [von "255" auf "1850"]\\ | | ||
+ | |6.0.3 |2011-09-07|1. Neuer Parameter "IncludeLoggedParamValues"\\ 2. Quellcode-Anpassungen an den aktuellen Standard\\ | | ||
+ | |5.1.5 |2006-08-29|Explizites "ORDER BY" eingefügt, um die Sortierung der Rückgabemenge zu garantieren\\ | | ||
+ | |4.0.9 |2004-03-03|1. 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-20|Erstmalig 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: | ||
+ | * [[http://playground.dstore.de/index.php?proc=mi_GetProcedureExecutionLog_Ad|mi_GetProcedureExecutionLog_Ad im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetProcedureExecutionLog_Ad?ProcedureID=<value>&FromDate=<value>&ToDate=<value>'</code>Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org)) formatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X GET 'http://<partner>-<project>.dstore.de/default/engine/mi_GetProcedureExecutionLog_Ad?ProcedureID=<value>&FromDate=<value>&ToDate=<value>' | xmllint --format -</code>== dStore_php == | ||
+ | <code 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_GetProcedureExecutionLog_Ad', | ||
+ | array( | ||
+ | 'ProcedureID' => <value>, | ||
+ | 'FromDate' => <value>, | ||
+ | 'ToDate' => <value>, | ||
+ | // 'ExecutedByUserID' => NULL, | ||
+ | // 'ExecutedOnNestingLevel_From' => NULL, | ||
+ | // 'ExecutedOnNestingLevel_To' => NULL, | ||
+ | // 'HostName' => NULL, | ||
+ | // 'ProgramName' => NULL, | ||
+ | // 'ExecutionTime_ms_From' => NULL, | ||
+ | // 'ExecutionTime_ms_To' => NULL, | ||
+ | // 'ReturnCode_From' => NULL, | ||
+ | // 'ReturnCode_To' => NULL, | ||
+ | // 'IncludeLoggedParamValues' => 0 | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $service->execute($request); | ||
+ | |||
+ | $xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument(); | ||
+ | $ResultSet = $xml_result->getRowsAsArray(); | ||
+ | |||
+ | </code> | ||
+ | == engine/execute == | ||
+ | XML zur Ausführung mit der Methode [[:webservice:engine:execute|engine/execute]], z.B. per | ||
+ | curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>' | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <ListOfBatches> | ||
+ | <Batch No="0"> | ||
+ | <Procedure Name="mi_GetProcedureExecutionLog_Ad"> | ||
+ | <Parameters> | ||
+ | <Parameter Name="ProcedureID"><!-- smallint value --></Parameter> | ||
+ | <Parameter Name="FromDate"><!-- datetime value --></Parameter> | ||
+ | <Parameter Name="ToDate"><!-- datetime value --></Parameter> | ||
+ | <!-- <Parameter Name="ExecutedByUserID">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ExecutedOnNestingLevel_From">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ExecutedOnNestingLevel_To">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="HostName">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ProgramName">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ExecutionTime_ms_From">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ExecutionTime_ms_To">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ReturnCode_From">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="ReturnCode_To">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="IncludeLoggedParamValues">0</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||