TimoMeister
Returning Responder

ValueService beim Speichern nicht berücksichtigt

Jump to solution

Hallo Community,

habe hier ein kleines Problem, wobei ich nicht genau weiß, ob das ein Bug ist oder so gewollt ist.

In einer Tabellenvorlage gibt es eine Eingabekomponente FS_INDEX welches auf eine Spalte in einer referenzierten Tabelle zeigt: news_targetsList

      <FS_INDEX name="cs_targetmapping" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Defined Targets"/>

          <LANGINFO lang="DE" label="Zugewiesene Ziele"/>

        </LANGINFOS>

        <SOURCE name="DatasetDataAccessPlugin">

          <QUERY name="Database.news_targets_by_username">

            <PARAM name="username">dynamicUsername</PARAM>

          </QUERY>

          <TEMPLATE uid="Database.news_targets"/>

        </SOURCE>

      </FS_INDEX>

Die Liste wird gefiltert nach Username. Der Username wird dynamisch durch einen Value-Service gesetzt.

<RULE>

     <SCHEDULE delay="50" id="username" service="UserNameService"/>

     <DO>

          <PROPERTY name="query.username" source="cs_targetmapping"/>

     </DO>

</RULE>

Nun versuche ich einen Datensatz anzulegen und in der FS_INDEX einen Wert auszuwählen. Das funktioniert wunderbar.

Beim Speichern bekomme ich aber einen Fehler.

FSVersion=5.2.1911.76988#3535;JDK=1.8.0_161 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=27.03.2018 10:39:16

java.util.NoSuchElementException: {"schema":"Database","gid":"ad916d95-7082-3b12-8de7-ab7a9571242d","table":"news_targets"}

Ohne den QUERY-Parameter funktioniert das Auswählen und Speichern ohne Fehler.

Meine Vermutung ist nun, dass beim Speichern der dynamische Parameter username nicht ausgewertet wird und die QUERY dann den Datensatz nicht findet.

Versucht habe ich auch das QUERY ohne Parameter. Hilft leider auch nicht.

        <SOURCE name="DatasetDataAccessPlugin">

          <QUERY name="Database.news_targets_by_username"/>

          <TEMPLATE uid="Database.news_targets"/>

        </SOURCE>

Ist das nun ein Fehler? Oder muss das anders gelöst werden?

Viele Grüße

Timo

0 Kudos
1 Solution

Accepted Solutions
StefanSchulz
I'm new here

Hallo Timo,

beim Speichern oder auch anderen, nicht-UI-getriebenen Validierungsschritten (z. B. Workflows) werden ValueServices nicht unterstützt. Die definierte Query sollte also entsprechend stabil ausgewählte Datensätze liefern können, auch wenn kein Parameter gesetzt ist. Liefert die Query ohne Parameter eine Menge zurück, in der ein ausgwählter Datensatz nicht enthalten ist, kommt es zur beobachteten Fehlermeldung.

Beste Grüße

Stefan

View solution in original post

0 Kudos
3 Replies
StefanSchulz
I'm new here

Hallo Timo,

beim Speichern oder auch anderen, nicht-UI-getriebenen Validierungsschritten (z. B. Workflows) werden ValueServices nicht unterstützt. Die definierte Query sollte also entsprechend stabil ausgewählte Datensätze liefern können, auch wenn kein Parameter gesetzt ist. Liefert die Query ohne Parameter eine Menge zurück, in der ein ausgwählter Datensatz nicht enthalten ist, kommt es zur beobachteten Fehlermeldung.

Beste Grüße

Stefan

0 Kudos

Hallo Stefan,

Danke für Deine schnelle & hilfreiche Antwort. Ist es angedacht, dass ValueServices beim Speichern irgendwann unterstützt werden?

Viele Grüße

Timo

0 Kudos

Hi Timo,

Nein, eine solche Unterstützung ist technisch nicht möglich, weil an den diversen Stellen der Service nicht zur Verfügung steht (mangels passender Umgebung).

Beste Grüße

Stefan

0 Kudos