Voraussetzungen
Ein System, das in der Simplifier-Version läuft >= 6.0 Hotfix 141
Allgemeine Informationen
- Ein Filter für ungültige Wörter wird angewendet, um SQL-Injection zu vermeiden.
Das bedeutet, dass Ihre SQL-Anweisung abgelehnt wird, wenn sie bestimmte reservierte Wörter wie ‘INSERT’, ‘UPDATE’ in der WHERE-Klausel enthält (die vollständige Liste der Wörter finden Sie im entsprechenden Abschnitt dieses Artikels).
Daher wird beim Ausführen dieses Connector-Aufrufs eine Fehlermeldung zurückgegeben. - Konnektor Aufrufe, die dynamische WHERE-Klauseln verwenden oder auf den Modus ‘wiederholbare Anweisung’ gesetzt sind, können nur aus einem serverseitigen Business Objekt heraus oder über die Testfunktion im Simplifier UI ausgeführt werden.
- Die dynamische WHERE-Klausel kann nur in den Modi simple, query & execute verwendet werden.
Dynamische WHERE-Klausel
Sehen wir uns an, wie wir unseren Connector-Aufruf konfigurieren müssen, um diese Funktion zu nutzen.
Hier können Sie sehen, dass Sie nur Ihre reguläre SQL-Anweisung ohne die WHERE-Klausel danach auf der Registerkarte “SQL” des Connector-Aufrufs schreiben müssen.
In der Eingabezuordnung müssen wir einen neuen Parameter namens ‘where’ angeben, der als Platzhalter für Ihre WHERE-Klausel fungiert, die Sie an die SQL-Anweisung anhängen möchten.
So sieht unser Ergebnis aus, wenn wir unterschiedliche Werte für den Parameter “where” verwenden und den Connector-Aufruf in der Simplifier-Benutzeroberfläche testen:
Und dies ist eine Demonstration des oben erwähnten Filters für schlechte Wörter, wenn Sie versuchen, reservierte Wörter aus der Liste (siehe unten) an den Parameter ‘where’ zu übergeben.
Es gibt mehrere Schimpfwörter, die zu einer Ablehnung des Anrufs führen:
- ÄNDERN
- SCHAFFEN
- LÖSCHEN
- TROPFEN
- EXEC(UTE)
- EINFÜGEN (IN)
- VERSCHMELZEN
- AUSWÄHLEN
- AKTUALISIEREN
- UNION (ALLE)
Modus für wiederholbare Anweisungen
Wir haben einen neuen Modus für SQL-Connectoraufrufe eingeführt, der als “wiederholbare Anweisung” bezeichnet wird. Sie können es einfach aus dem Dropdown-Menü auswählen, wie Sie es von anderen Modi wie “Ausführen”, “Abfrage” usw. gewohnt sind.
Nachdem Sie diesen Modus ausgewählt haben, können Sie eine beliebige SELECT-, INSERT- oder UPDATE-Anweisung schreiben, die Sie für jeden Eintrag in einer Sammlung ausführen möchten, die über einen neuen Parameter namens ‘parameterCollection’ an den Connector-Aufruf übergeben wird.
Sie können ihn als Eingabeparameter in Ihrem Aufruf angeben und dann den entsprechenden Sammlungsdatentyp dafür auswählen.
Wiederholbare Aussage in Kombination mit Transaktionen
Seit der Simplifier-Version 6.5.201 kann der Modus für wiederholbare Anweisungen mit mehreren SQL-Anweisungen (ähnlich dem Transaktionsmodus) verwendet werden, die durch ein Trennzeichen getrennt sind.
Alle definierten Anweisungen werden für alle Objekte in der Eingabeparametersammlung in einer Transaktion ausgeführt.
Im Beispiel im obigen Screenshot werden zwei SQL-Anweisungen im SQL-Editor definiert.
Beide Anweisungen werden für jedes Objekt ausgeführt, das sich in der Eingabeparameterauflistung befindet.