dhd
I'm new here

FS_DATASET Auswahl als Parameter in COMBOBOX

Hallo zusammen,

kurz vorab. Die nachfolgenden Daten sind nur beispielhaft und entsprechen nicht den echten Inhalten.

Ich habe eine FS_DATASET Komponente über die ich einen Kontakt aus der entsprechenden Datenquelle auswähle. Anschließen soll die Combobox für Telefonnummern anhand des ausgewählten Kontakts vorgefiltert werden, so das nur noch dem Kontakt zugewiesene Telefonnummern auswählbar sind.

Hier der entsprechende Code für Formular, Rules und Query

<FS_DATASET name="st_contact" mode="sheet">

    <LANGINFOS>

      <LANGINFO lang="*" label="Kontakt"/>

    </LANGINFOS>

    <SOURCES>

      <CONTENT name="contact"/>

    </SOURCES>

  </FS_DATASET>

  <CMS_INPUT_COMBOBOX name="st_phone" allowEmpty="yes" hFill="no" useLanguages="no">

    <CMS_INCLUDE_OPTIONS type="database">

      <LABELS>

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

      </LABELS>

      <QUERY name="LocalDB.phone_by_contact"/>

      <TABLE>LocalDB.telefon</TABLE>

    </CMS_INCLUDE_OPTIONS>

    <LANGINFOS>

      <LANGINFO lang="*" label="Telefon"/>

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

<RULES>

    <RULE>

        <IF>

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

        </IF>

        <WITH>

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

        </WITH>

        <DO>

            <PROPERTY name="query.contactId" source="st_telefon"/>

        </DO>

    </RULE>

</RULES>

<QUERY entityType="telefon">

    <FILTERPARAM parameter="contactId" datatype="java.lang.Integer" value="0"/>

    <EQ attribute="contactList.fs_id" parameter="contactId"/>

    <ORDERCRITERIA attribute="number" descending="1"/>

</QUERY>

Nun zu meinem Problem. Damit das Ganze Funktioniert müsste ich der Query die FS_ID des Kontakts als Paramter "contactId" übergeben. Leider bekomme ich ja vom FS_DATASET als Value nur ein "de.espirit.firstspirit.client.access.editor.DatasetEditorValueImpl$DatasetContainerImpl" Objekt zurück. Ich hatte es auch schon über <PROPERTY name="VALUE" source="st_contact.fs_id"/> und ähnlichem probiert, leider ohne Erfolg.

Nun die Frage gibt es hier ein Weg an die FS_ID des ausgewählten Datensatzes zu kommen, damit ich diesen in der Query setzten kann?

P.S.: Dass es mit zwei Comboxen funktionieren würde ist mir klar. Ist aber bei einer Auswahl aus über 300 Kontakten nicht praktikabel. Smiley Wink Ebenso hab ich bereits probiert den Value in einen Service als property zu übergeben.

<RULE>

        <IF>

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

        </IF>

        <SCHEDULE delay="500" id="testID" service="ContactFilterService">

            <PARAM name="contact">

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

            </PARAM>

        </SCHEDULE>

        <DO>

            <PROPERTY name="query.contactId" source="st_phone"/>

        </DO>

    </RULE>

Das geht jedoch auch nicht aus folgenden Gründen:

WARN (de.espirit.firstspirit.forms.rules.FactService): Fact for parameter 'contact' is not serializable: de.espirit.firstspirit.client.access.editor.DatasetEditorValueImpl$DatasetContainerImpl@cd227b16

Schöne Grüße

Dominik

0 Kudos
4 Replies
marza
I'm new here

Hallo Dominik,

hast Du diesen Beitrag gelesen? Vielleicht hilft Dir das weiter.

Grüße Marian

0 Kudos

Hallo Marian,

ja hatte ich aber hilft mir nicht wirklich. Wie gesagt das es mit zwei Comboboxen geht ist mir bewusst und die Eigenschaft ENTRY ist ja auch nur bei Comboboxen und  Radiobuttons möglich da dort mit Options gearbeitet wird. (Ich hatte es natürlich trotzdem mal ausprobiert, jedoch ohne Erfolg aus den genannten Gründen).

Da ich ansonsten noch keine Antwort bekommen habe, muss ich wohl davon ausgehen das es FS seitig nicht möglich ist das gewünschte Verhalten umzusetzen.

Gruß

Dominik

0 Kudos

Hallo Dominik,

entschuldige, dass du noch keine weitere Antwort bekommen hast - wir haben das Thema intern weitergegeben und warten selbst noch auf eine Rückmeldung.

Grüße,

Hannes

0 Kudos
mikula
Crownpeak employee

Hallo Dominik,

es sieht derzeit so aus, als wäre die Funktionalität, die du benötigst derzeit einfach nicht umgesetzt oder verfügbar. Ich würde dir empfehlen ein entsprechendes feature request zu stellen.

Viele Grüße

Martin

0 Kudos