Search the FirstSpirit Knowledge Base
Hallo zusammen,
schreibe gerade eine Regel für einen ValueService. Dabei geht es darum, dass die Werte mehrerer Felder an einen ValueService übergeben werden sollen und der Service dann diese Werte entsprechend überprüft und auswertet. Dabei bin ich auf folgendes Problem gestoßen:
Es ist per <PARAM name="...">..</PARAM> möglich einen Feldwert zu übergeben. Allerdings habe ich keine Möglichkeit gefunden, mehrere Feldwerte in einem Array zu übergeben, wie z.B.:
<PARAMS name="paramList">
<PARAM>
<PROPERTY source="stField1" name="VALUE"/>
</PARAM>
<PARAM>
<PROPERTY source="stField2" name="VALUE"/>
</PARAM>
<PARAM>
<PROPERTY source="stField3" name="VALUE"/>
</PARAM>
</PARAMS>
Habe dabei überprüft mehrere <PROPERTY> Tags untereinander in einem PARAM anzugeben, als auch eine Gruppierung zu erstellen, aber jedes mal wurde eine Fehlermeldung beim Speichern der Vorlage angezeigt.
Könntet ihr mir bitte sagen, ob und wie es möglich ist eine solche Parameter Liste zu erstellen? Anderfalls würde ich dafür einen Feature Request erstellen, da dies meiner Meinung nach eine sinnvolle Erweiterung für die Regeln wäre.
Vielen Dank im Voraus und viele Grüße
Max
Hallo Max,
mir ist in deinem Anwendungsszenario leider nicht klar geworden, wieso du die Liste benötigst.
Mehrere Parameter kann man übergeben, in dem man sie einfach hintereinander weg einzeln definiert.
Vielleicht übersehe ich auch das konkrete Problem dabei
Beste Grüße
Stefan
Hallo Stefan,
das Problem bei dem Setzen von mehreren Parametern hintereinander ist, dass ich dabei jedes mal den Namen des Parameters angeben muss und diese dann auch alle im Service abfragen muss. Allerdings kann ich dann den Service nicht mehr ganz dynamisch einsetzen, wenn ich z.B. bei der einen Vorlage drei Felder übergebe und bei einer anderen vier Felder, außer ich würde eine feste Range vorgeben, was ich allerdings unschön finden würde. (stFieldParam1 - stFieldParam5)
Wenn man nun allerdings für einen Parameter unterschiedlich viele Werte übermitteln könnte, müsste ich bei dem Service nur durch die bei dem Parameter hinterlegte Liste iterieren und könnte zudem beliebig viele Feldwerte in der Vorlage angeben.
Gibt es die Möglichkeit mehrere Werte mit dem gleichen Parameternamen zu übergeben oder muss für jeden Wert ein neuer Name angegeben werden?
Derzeitige Lösung:
<PARAM name="paramField1">
<PROPERTY source="stField1" name="VALUE"/>
</PARAM>
<PARAM name="paramField2">
<PROPERTY source="stField2" name="VALUE"/>
</PARAM>
<PARAM name="paramField3">
<PROPERTY source="stField3" name="VALUE"/>
</PARAM>
Bessere Lösung:
<PARAMS name="paramList">
<PARAM>
<PROPERTY source="stField1" name="VALUE"/>
</PARAM>
<PARAM>
<PROPERTY source="stField2" name="VALUE"/>
</PARAM>
<PARAM>
<PROPERTY source="stField3" name="VALUE"/>
</PARAM>
</PARAMS>
Viele Grüße
Max
Hallo Max,
das mit der variablen Anzahl an Parametern leuchtet mir soweit ein, wobei der Service ja eine Map der Parameter bekommt und diese iterativ durchlaufen kann. Vermutlich ist dir aber die Reihenfolge der Parameter dabei wichtig?
Bei einer Liste von Werten hat der Service kein Wissen mehr darüber, woher die Werte stammen. Ich bin mir nicht sicher, wie verbreitet ein Anwendungsfall sein könnte, in dem die Werte ohne solches Wissen sinnvoll verarbeitet werden.
Aktuell muss jeder Parameter mit einem eigenen Namen versehen werden.
Natürlich steht dir der Weg offen, einen Feature-Wunsch einzustellen und Mitstreiter für entsprechende Anwendungsszenarien zu finden.
Beste Grüße
Stefan
Guten Morgen Stefan,
vielen Dank für die Erklärung und alternativen Lösungen. Werde einen Feature Request erstellen und vielleicht finden sich ja dann genügend Mitstreiter, die eine solche Erweiterung für sinnvoll erachten.
Viele Grüße
Max