Seitenhistorie
...
Wird ein Valuelistprovider angegeben, so erscheint dem Benutzer eine Auswahlliste in einem Dropdown, mit den vom VLP gelieferten Werten. Über den angezeigten Textwert kann ganz Normal per ’$parametername’ zugegriffen werden. Die ID des ausgewählten Wertes erhält man mittels ’$parameternameId’. Achtung, diese Funktion funktioniert erst ab 4.8.3 wieder!
Ab 4.19: Interne Parameter Typen Text Liste, Integer Liste und SQL
Parameter diesen Typs werden den Benutzer nicht zur Angabe angeboten, sie dienen der internen Verwendung in Regeln.
Codeblock | ||||
---|---|---|---|---|
| ||||
SELECT
T1.INTID "<primaryKey>",
T1.INTARTICLENUMBER "articleNumber",
T1.STRNAME "name"
FROM
V594_ARTICLE T1
WHERE
$pSql
OR
T1.INTARTICLENUMBER in $pListOfInteger
OR
T1.STRNAME in $pListOfText |
Codeblock | ||||
---|---|---|---|---|
| ||||
List<Number> listOfInteger = new ArrayList<>();
listOfInteger.add(4711L); // Test with Long
List<String> listOfStrings = new ArrayList<>();
listOfStrings.add("4711");
Map<String, Object> params = new HashMap<>();
params.put("pListOfInteger", listOfInteger);
params.put("pListOfText", listOfStrings);
params.put("pSql", "T1.INTARTICLENUMBER > 4000");
DatasourceProvider.run(TestDS.class, params); |
Besonderheit des SQL Typs
Parameter vom Typ SQL müssen einen VLP definieren, der die erlaubten SQL "Erweiterungen" zurückliefert (Whitelist). Der Nuclos Server wird einen Wert gegen diese Liste prüfen und bei einer Verletzung einen Fehler werfen. Zur Validierung der Datenquelle setzt Nuclos für solch einen Parameter einfach den Wert "false" ein. Ist das für die Verwendung ungünstig, kann über einen kleinen Trick ein eigener Validierungsausdruck hinterlegt werden: Geben Sie im Anzeigenamen den gewünschten Ausdruck ein. Da diese Art von Parametern einem Benutzer nicht zur Eingabe angeboten werden, kann ein beliebiger Ausdruck verwendet werden.
Beispiele für Bedingungen in Datenquellen
...