Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_inserttempdb_additionalinfo

mi_InsertTempdb_AdditionalInfo

Dient dem Einfügen von Werten in die Tabelle „AdditionalInformation“ der Tabelle „tempdb“. (Wird z.B. für om_CreateNewBill_Ad benötigt.)

Anmerkung:
Grundsätzliche Vorgehensweise der mi_InsertTemp...-Prozeduren für Tabellen der Datenbank „tempdb“: In den „Listen-Parametern“ werden Werte (durch '¶' getrennt bzw. durch ein anderes Zeichen, wenn ein entsprechender Parameter vorhanden ist) übergeben, aus denen die jeweilige Prozedur einen Datensatz bildet und in die zugehörige Tabelle einfügt. Der erste Datensatz wird aus den jeweils ersten Elementen der „Listen-Parameter“ zusammengesetzt, der zweite Datensatz aus den jeweils zweiten Elementen usw. Das bedeutet insbesondere, daß alle „Listen-Parameter“ die GLEICHE Anzahl Elemente enthalten müssen, sonst gibt es einen Fehler („-500“).

Hintergrund:
Für stored procedures gibt es leider keine „array“-Parameter. Als work-around werden sogenannte permanente, temporäre Tabellen (in der speziellen Datenbank „tempdb“) verwendet. Da mehrere Prozesse diese Tabellen gleichzeitig verwenden können, gibt es in jeder dieser Tabellen eine Spalte „spid“, damit jeder Prozeß seine (eindeutige) „Server-Process-ID“ („SELECT spid“) zusammen mit den gewünschten Daten speichern kann. So wird verhindert, daß Prozesse (versehentlich oder absichtlich) auf Daten anderer Prozesse zugreifen können.

Hinweis:
Ist in „InformationList“ „Separator zweimal direkt hintereinander enthalten oder kommt „Separator“ ganz am Anfang oder ganz am Ende vor, dann enthält die Liste quasi ein „leeres Element“. Dies wird IMMER als '' interpretiert, weil die „Information“-Spalte von „tempdb.dbo.AdditionalInformation“ keine „NULL“-Werte erlaubt.

Anmerkung zum Parameter „CheckByteLengthForStrings“ :
Die Werte in „InformationList“ sind „string“-Werte und haben daher eine maximale Länge, nämlich 250 Bytes (nicht etwa Zeichen). Falls ein Element diese Grenze überschreitet, würde das Einfügen in „tempdb.dbo.AdditionalInformation“ zwar trotzdem gelingen, aber es würden unbemerkt Zeichen (am Ende) abgeschnitten und somit verloren gehen. Mit „CheckByteLengthForStrings“ kann daher gesteuert werden, ob dieses unbemerkte „truncate“n ok ist („0“) oder ob vorher geprüft und gegebenenfalls ein Fehler geworfen werden soll („1“).

HTTP-MethodPOST
HTTP-AuthOptional
Aliasmi_InsertTempdb_AdditionalInformation
Tags
Engine-Kategoriemiscellaneous
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.0 (2013-06-04)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
TableIDList Liste von IDs („tinyint“-Werte, durch <Separator> getrennt) - die angegebenen Werte werden in der Spalte „TableID“ gespeichert
varchar(16384)5.5.0
TableKeyIDList Liste von IDs („integer“-Werte, durch <Separator> getrennt) - die angegebenen Werte werden in der Spalte „TableKeyID“ gespeichert
varchar(16384)5.5.0
InformationTypeIDList Liste von IDs („smallint“-Werte, durch <Separator> getrennt) - die angegebenen Werte werden in der Spalte „InformationTypeID“ gespeichert
varchar(16384)5.5.0
InformationList Liste von (beliebigen) Werten (durch <Separator> getrennt), die aus maximal „250“ Zeichen bestehen - die angegebenen Werte werden in der Spalte „Information“ gespeichert
varchar(16384)5.5.0
Delete0 „0“ : Keine Daten vorher löschen
„1“ : Alle Datensätze zur „spid“ vorher löschen
bit5.5.0
Separator'¶' Gibt an, durch welche Zeichen die Werte in den „Listen-„Parametern (“…List“) getrennt sind
varchar(4)5.5.0
CheckByteLengthForStrings0 Gibt an, ob für die einzelnen Elemente in „InformationList“ geprüft werden soll, ob die maximale Anzahl Bytes überschritten ist („1“) oder nicht („0“)
bit7.0.0

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-500Falsche Parameternur direkt

XML-Schema

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

Historie

7.0.0 2013-06-041. Datentyp der “…List„-Parameter wurde jeweils erweitert [von „255“ auf „16384“]
2. Neuer Parameter „CheckByteLengthForStrings“
6.5.3 2013-03-181. „Separator“ wurde erweitert [von „1“ auf „4“]
2. Anpassungen an den aktuellen Quellcode-Standard
3. Etwas optimierte Abarbeitung
5.5.0 2008-01-07Erstmalig in dieser Version erstellt

Code-Snippets

Es handelt sich um eine Methode zum Füllen von Schnittstellentabelle wie in Hintergrundinformationen zu Engine-Prozeduren erläutert. Die Methode kann ausschließlich per engine/execute in einem gemeinsamen Batch mit komplementären Prozeduren verwendet werden.

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_InsertTempdb_AdditionalInfo">
			<Parameters/>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
engine/procedures/mi_inserttempdb_additionalinfo.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)