Questions & Answers

SOLVED
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

Type a product name