ampersand83
I'm new here

Dynamische Befüllung eines Querys über eine Regel

Hallo,

ist es auf irgendeine Weise möglich analog zum Beispiel "Dynamische Werte mithilfe einer Datenbank-Abfrage setzen (Query)" mit einer Regel die Werte eines Queries in einer FS-List zu setzen?

Konkreter Anwendungsfall ist folgender. Einer Entität Typ können beliebig viele Kategorie Entitäten zugeordnet werden. Einer dritten Entität Point of Interest kann wiederum jeweils ein bestimmter Typ und mehrere Kategorien zugeordnet werden.

Im Formular der Entität Point of Interest kann nun über eine FS-Dataset Komponente ein Typ ausgewählt werden. Mit Hilfe einer FS-List können mehrere Kategorien zugeordnet werden. Über eine Regel wie im Beispiel "Stellvertreter ermitteln (Regeln und Datenbank-Abfragen)" mit einer Combobox gezeigt wollte ich jetzt dem Redakteur abhängig vom gewählten Typ nur erlauben bestimmte Kategorien zuzuordnen.

<ON_EVENT>  
   <IF>      
   <PROPERTY source="cs_poi_categories" name="FOCUS"/>  
   </IF>  
   <WITH>      
   <PROPERTY source="cs_poi_type" name="VALUE"/>  
   </WITH>  
   <DO>      
   <PROPERTY source="cs_poi_categories" name="query.type_id"/>  
   </DO>   

    </ON_EVENT>   

</RULES>

cs_poi_categories ist dabei die FS_LIST Komponente und cs_poi_type die FS_DATASET Komponente.

Ich hoffe mein Anliegen ist halbwegs verständlich und es kann mir jemand helfen.

Gruß,

Stefan

17 Replies
ampersand83
I'm new here

Hatte denn noch keiner etwas ähnliches umsetzen wollen?

0 Kudos

Hi,

die FS_LIST Komponente unterstützt aktuell keine Query-Manipulation.

Vielleicht eine Feature-Anfrage wert.

Gruß

Stefan

0 Kudos

Hi,

ich habe ein ähnliches Problem. Allerdings verwende ich in dem Formular zwei Comboboxen wie im "Supplier"-Beispiel.

Ich habe zwei Datenquellen (Ober- und Unterkategorien - > N:M Beziehung über FS_LIST), welche ich dynamisch darstellen möchte.

Allerdings werden Unterkategorien (meine untere Combobox) immer leer dargestellt.

Comboboxen:

  <CMS_INPUT_COMBOBOX name="meta_research_topic">

            <CMS_INCLUDE_OPTIONS type="database">

              <LABELS>

                <LABEL lang="*">#item.topic</LABEL>

              </LABELS>

              <TABLE>research_topic</TABLE>

            </CMS_INCLUDE_OPTIONS>

            <LANGINFOS>

              <LANGINFO lang="*" label="Research Topic"/>

              <LANGINFO lang="DE" label="Thema"/>

            </LANGINFOS>

          </CMS_INPUT_COMBOBOX>

          <CMS_INPUT_COMBOBOX name="meta_research_subtopic">

            <CMS_INCLUDE_OPTIONS type="database">

              <LABELS>

                <LABEL lang="*">#item.subtopic</LABEL>

              </LABELS>

              <QUERY name="research_subtopics_by_topic"/>

              <TABLE>research_subtopic</TABLE>

            </CMS_INCLUDE_OPTIONS>

            <LANGINFOS>

              <LANGINFO lang="*" label="Research Subtopic"/>

              <LANGINFO lang="DE" label="Unterthema"/>

            </LANGINFOS>

          </CMS_INPUT_COMBOBOX>

Die Regel dazu:

<ON_EVENT>

                    <IF>

                              <PROPERTY source="meta_research_subtopic" name="FOCUS"/>

                    </IF>

                    <WITH>

                              <PROPERTY source="meta_research_topic" name="VALUE"/>

                    </WITH>

                    <DO>

                              <PROPERTY source="meta_research_subtopic" name="query.topic_id"/>

                    </DO>

          </ON_EVENT>

Query:

<QUERY entityType="research_subtopic">

          <FILTERPARAM parameter="topic_id" datatype="java.lang.Integer" value="-1"/>

          <EQ attribute="research_topicList.fs_id" parameter="topic_id"/>

</QUERY>

Hab ihr eine Idee?

Grüße

Lukas

0 Kudos

Hi Lukas,

mit ein Grund wird sein, dass folgender Code

  <PROPERTY source="meta_research_topic" name="VALUE"/>

keine ID liefert, sondern ein Option-Objekt. Über diesen Weg ist keine Suche nach der fs_id möglich.

Abhilfe könnte eventuell die Eigenschaft ENTRY statt VALUE bringen, die den Schlüsselwert ausliefert (was jedoch nicht unbedingt mit der fs_id übereinstimmen muss, je nach Include-Definition).

Gruß

Stefan

0 Kudos

Das ist eine wichtige Information, denn ich breche mir hier schon lange einen an der unklaren Dokumentation ab, wo es lapidar heißt:

"Der ermittelte Wert aus der Combobox „st_supplier“ dient dabei als Schlüssel."

Wie diese Combobox angelegt wurde bleibt im Dunkeln ...

Könnten Sie hier bitte nochmal detailierter beschreiben, wie man dynamische Forms mit Queries verwendet, und wie die Eingabekomponenten konfiguriert sein müssen, damit es funktioniert?

Danke

Übrigens weicht die Doku zwischen DE und EN ab:

EN

<RULES>

<ON_EVENT>

        <IF>

            <PROPERTY source="st_dish" name="FOCUS"/>

        </IF>

        <WITH>

            <PROPERTY source="st_supplier" name="VALUE"/>

        </WITH>

        <DO>

            <PROPERTY source="st_dish" name="supplier_id"/>

        </DO>

    </ON_EVENT>

</RULES>

DE

<RULES>

<ON_EVENT>

        <IF>

            <PROPERTY source="st_dish" name="FOCUS"/>

        </IF>

        <WITH>

            <PROPERTY source="st_supplier" name="VALUE"/>

        </WITH>

        <DO>

            <PROPERTY source="st_dish" name="query.supplier_id"/>

        </DO>

    </ON_EVENT>

</RULES>

0 Kudos

Hallo?

0 Kudos

Hallo ... Smiley Happy

Da gab es wohl keine Benachrichtigung zum Beitrag. Smiley Sad

In der Dokumentation ist ein Beispielprojekt hinterlegt, mit Hilfe dessen man sich verschiedene Szenarien am lebenden Beispiel anschauen kann. Grundsätzlich muss für obiges Szenario die Combobox über die Include-Option an eine Query angebunden werden (siehe oben), deren Variablen man dann wie oben gezeigt beeinflussen kann. Im Übrigen ist die deutschsprachige Variante mit Präfix query korrekt.

Beste Grüße

Stefan

0 Kudos

Danke. Wo finde ich das Beispielprojekt? Oder meinen Sie Mitras Energy? Dort habe ich keine solche Regel gefunden.

0 Kudos

Das Beispielprojekt ist auf der Einführungsseite zum Thema Regeln unten verlinkt.

http://www.e-spirit.com/odfs50/de/vorlagenentwicklung/regeln/einfuehrung.html?community

Beste Grüße

Stefan

0 Kudos