ACordes
I'm new here

ContentSelect und XML-Feld

Jump to solution

Hallo,

ich entschuldige mich im Voraus, falls die Frage extrem blöd ist. Aber nach über einer halben Stunde intensiven Herumprobierens und Suchens habe ich keine Lösung gefunden.

Ich habe folgendes Feld in einer Tabellenvorlage:

<CMS_INPUT_COMBOBOX name="carousel_display" singleLine="no">

    <ENTRIES>

      <ENTRY value="1">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

      <ENTRY value="0">

        <LANGINFOS>

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

        </LANGINFOS>

      </ENTRY>

    </ENTRIES>

    <LANGINFOS>

      <LANGINFO lang="*" label="Im Karussel anzeigen"/>

    </LANGINFOS>

  </CMS_INPUT_COMBOBOX>

Nun möchte ich via ContentSelect alle Einträge abfragen, die als value "1" haben. So etwas geht hier offenbar nicht:

<EQ attribute="carousel_display" datatype="java.lang.String" value="1" />

Das gleiche bei RADIOBUTTON und SELECT. Das Problem wird hier wohl der datatype sein? Was muss ich tun, um Werte anhand eines XML-Datenfeldes auszulesen?

Vielen Dank!

0 Kudos
14 Replies

Handelt es sich hier um eine von FirstSpirit verwaltete Datenquelle oder um eine externe Datenbank, die nur lesen angebunden ist?

Prüfen Sie bitte mal in der Datenbank welchen Typ die Spalte hat. Sofern es eine externe Datenbank ist, stimmt vielleicht der Typ in der Datenbankschema-XML noch nicht.

0 Kudos

Es handelt sich um zwei Datenbanken:

1. "further_content" ist eine interne Datenquelle von Firstspirit:

bild1.gif

XML-Schema der Tabelle "kompetenzen" zu der das betroffene GUI-Element (Combobox) gehört:

<xs:complexType dbName="KOMPETENZEN" name="kompetenzen">

            <xs:sequence>

                <xs:element dbName="CHANGED_BY" hidden="1" javaType="java.lang.Long" name="changed by" nullable="1" type="xs:long"/>

                <xs:element dbName="FK_KOMPETENZ" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="fk_kompetenz" nullable="1" type="xml"/>

                <xs:element dbName="FS_GID" hidden="1" javaType="java.util.UUID" length="16" name="FS_GID" nullable="1" readonly="1" type="xs:uuid"/>

                <xs:element dbName="FS_ID" hidden="1" javaType="java.lang.Integer" name="fs_id" type="xs:long"/>

                <xs:element dbName="LINK_DE" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="link_DE" nullable="1" type="xml"/>

                <xs:element dbName="LINK_EN" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="link_EN" nullable="1" type="xml"/>

                <xs:element dbName="NAME_DE0" javaType="java.lang.String" length="500" name="name_DE" nullable="1" type="xs:string"/>

                <xs:element dbName="NAME_EN" javaType="java.lang.String" length="500" name="name_EN" nullable="1" type="xs:string"/>

                <xs:element dbName="PICTURE" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="picture" nullable="1" type="xml"/>

                <xs:element dbName="RELEASED_BY" hidden="1" javaType="java.lang.Long" name="released by" nullable="1" type="xs:long"/>

                <xs:element dbName="TEXT_DE" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="text_DE" nullable="1" type="xml"/>

                <xs:element dbName="TEXT_EN" javaType="de.espirit.firstspirit.client.editorcomponent.EditorWrapper" length="65535" name="text_EN" nullable="1" type="xml"/>

                <xs:element dbName="WF_COL" hidden="1" javaType="java.awt.Color" name="wf col" nullable="1" type="xs:integer"/>

                <xs:element dbName="WF_ID" hidden="1" javaType="java.lang.Long" name="wf id" nullable="1" type="xs:long"/>

                <xs:element dbName="FS_RELEASE_TO" name="FS_RELEASE_TO" type="xs:long" visible="0"/>

                <xs:element dbName="FS_VALID_FROM" name="FS_VALID_FROM" type="xs:long" visible="0"/>

                <xs:element dbName="FS_VALID_TO" name="FS_VALID_TO" type="xs:long" visible="0"/>

            </xs:sequence>

        </xs:complexType>

2. extern angebundene mysql-Datenbank mit Tabelle "t_pdb_kompetenzen":

bild2.gif

XML-Code dazu:

<xs:complexType dbName="t_pdb_kompetenzen" name="TPdbKompetenzen" readonly="1">

            <xs:sequence>

                <xs:element dbName="name" javaType="java.lang.String" length="255" name="Name" type="xs:string"/>

                <xs:element dbName="sys_del" javaType="java.lang.String" length="2" name="SysDel" type="xs:string"/>

                <xs:element dbName="sys_dlm" javaType="java.util.Date" length="19" name="SysDlm" type="xs:date"/>

                <xs:element dbName="sys_doc" javaType="java.util.Date" length="19" name="SysDoc" type="xs:date"/>

                <xs:element dbName="sys_klm" javaType="java.lang.Integer" length="10" name="SysKlm" type="xs:integer"/>

                <xs:element dbName="sys_koc" javaType="java.lang.Integer" length="10" name="SysKoc" type="xs:integer"/>

                <xs:element dbName="sys_pk" javaType="java.lang.Integer" length="10" name="SysPk" type="xs:integer"/>

                <xs:element dbName="sys_state" javaType="java.lang.Integer" length="3" name="SysState" type="xs:integer"/>

            </xs:sequence>

        </xs:complexType>

        <xs:key autoIncrement="1" dbName="primary" name="PRIMARY">

            <xs:selector xpath="TPdbKompetenzen"/>

            <xs:attribute xpath="SysPk"/>

        </xs:key>

Die Abfrage, die ich ausführen möchte, betrifft die interne FirstSpirit Datenbank.

0 Kudos

Wieso FK_KOMPETENZ vom Typ de.espirit.firstspirit.client.editorcomponent.EditorWrapper?

Ich hätte jetzt java.lang.Integer erwartet, wenn es sich um einen Fremdschlüssel handelt.

EditorWrapper ist der Typ für Spalten die komplexe Eingabekomponenten enthalten. Also DOM-Editor, FS_LIST etc.

0 Kudos

Das Feld hat diesen Typ, da ich in der Auswahlliste nur bestimmte Einträge zur Verfügung habe, wenn ich in der internen Datenbank-Tabelle eine Spalte auswähle.

Wenn ich eine Combo-Box oder ein FS-LIST Element darauf mappen möchte, muss ich "FirstSpirit Editor" als Spaltentyp auswählen.

Ich habe nun das Feld "fk_kompetenz" in ein Integer-Feld geändert, aber kann nun keine FS-LIST oder Combo-Box mehr darauf mappen:

bild1.gif

bild2.gif

0 Kudos

Kann es sein das es sich hier um die selbst gebauten "Fremdschlüssel" handelt, die in anderen Threads hier behandelt wurden? Das sind ja nur fachliche Fremdschlüssel, die technisch nicht als Foreign-Keys in der Datenbank modelliert wurden.

Das könnten Sie lösen, indem sie sich alle ausgewählten Werte aus der Combobox auslesen und für diese Ids eine passende Abfrage zusammen bauen.

Also eine Abfrage mit EQ-Statements für jede ausgewählte Id.

<OR>

<EQ attribute="fk_kompetenz" parameter="1"/>

<EQ attribute="fk_kompetenz" parameter="123"/>

<OR>

Wie sie in einem Skript ein Select erzeugen können, ist unter contentSelect mit dynamischem entityType möglich? beschrieben.

0 Kudos