rbitdd
Returning Responder

Problem bei Datenquellen-Filter und today

Jump to solution

Hallo zusammen,

ich habe ein Problem bei meinem Datenquellenfilter.

Ich habe die Parameter "von" auf 01.01.2010 und "bis" auf 31.12.2010 gesetzt (mit Uhrzeit irgendwas. Ist hier uninteressant)

In den Datenquellen befindet sich ein Datensatz mit dem Datum von heute (11 Uhr irgendetwas), welcher jedoch nicht angezeigt wird.

Ich habe daraufhin den Filter nochmals überprüft, jedoch macht dies keinen Unterschied! Smiley Sad

<QUERY entityType="news">
    <FILTERPARAM parameter="bis" datatype="java.util.Date" value="1293806580000"/>
    <FILTERPARAM parameter="von" datatype="java.util.Date" value="1262357040000"/>
    <AND>
        <GTE attribute="date" parameter="von"/>
        <LTE attribute="date" parameter="bis"/>
        <LTE attribute="date" datatype="de.espirit.common.Today" value="1288738800000"/>
    </AND>
</QUERY>

any ideas?!?

Prüft today vllt. auf 0:00Uhr?!?

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

de.espirit.common.Today ist heute um Mitternacht, also im Moment 04.11.2010 00:00:00.000 Uhr.

Wenn der Datensatz das Datum veon heute und eine Uhrzeit größer als Mitternacht hat, wird er nicht angezeigt.

de.espirit.common.now hingegen gibt den aktuellen Zeitpunkt des Generierungsstarts an, also im Moment 10:43 Uhr

View solution in original post

0 Kudos
10 Replies
jan
I'm new here

wird es mit de.espirit.common.now besser ? Wir haben hier auch schon die Erfahrung gemacht, dass die Uhrzeit sehr wohl eine Rolle spielt, auch wenn man glaubt, man prüft nur den Tag. Eine richtige Lösung dafür haben wir bislang auch nicht gefunden.

hoebbel
Crownpeak employee

de.espirit.common.Today ist heute um Mitternacht, also im Moment 04.11.2010 00:00:00.000 Uhr.

Wenn der Datensatz das Datum veon heute und eine Uhrzeit größer als Mitternacht hat, wird er nicht angezeigt.

de.espirit.common.now hingegen gibt den aktuellen Zeitpunkt des Generierungsstarts an, also im Moment 10:43 Uhr

0 Kudos
rbitdd
Returning Responder

Na super, da erzähl ich meinen Redakteuren, sie müssten künftig nur noch auf den Tag und nicht mehr auf die Uhrzeit achten! Smiley Sad Und wenn ich die Eingabekomponente auf den mode "date" umstelle, funktioniert es dann? Ich will das jetzt ungern ausprobieren, da wir gestern live gegangen sind! 😕

0 Kudos
hoebbel
Crownpeak employee

Wenn Sie auf den mode="date" umstellen, dann wird die Uhrzeit als 00:00 Uhr gespeichert. Das gilt aber natürlich nur ab dem Zeitpunkt der Änderung.

ACHTUNG: Mit dem mode="date" kann nicht mehr in Spalten vom Typ Datum gespeichert werden, nur noch in Spalten vom Typ Editor oder Long!

0 Kudos
rbitdd
Returning Responder

Kann ich dann auch noch nach Datum sortieren?

Sprich wird dann in dem z.B. Long der Timestamp (z.B. 08.11.2010 00:00 Uhr) als Zahl abgespeichert?

0 Kudos

rbitdd schrieb:

Sprich wird dann in dem z.B. Long der Timestamp (z.B. 08.11.2010 00:00 Uhr) als Zahl abgespeichert?

Ja, wird er. Und zwar normalisiert zur GMT.

0 Kudos
rbitdd
Returning Responder

Lange ist's her, aber ich komme heute erst wieder dazu.

Also, ich habe jetzt in meinem DB-Schema das alte Feld "date" in "date_alt" umbenannt und ein neues Feld "date" vom Typen "long" (not null) definiert, die Eingabemaske um ein entsprechendes Feld erweitert (mode="date") und möchte jetzt die ganzen Daten nachpflegen.

Jetzt bekomme ich folgende Fehlermeldung:

Attribute news.date not synced!

Client Version: 4.2.219.38784

Java Version: 1.6.0_22 Sun Microsystems Inc.FSVersion=4.2.219.38784#1810;JDK=1.6.0_22 32bit Sun Microsystems Inc.;OS=Windows XP 5.1 x86;Date=01.12.2010 13:12:42
java.lang.IllegalStateException: Attribute news.date not synced!

    at de.espirit.or.impl.EntityImpl.getOldValue(EntityImpl.java:882)

    at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:774)

    at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:704)

    at de.espirit.or.impl.EntityImpl.setValue(EntityImpl.java:194)

    at de.espirit.firstspirit.store.access.contentstore.ContentUtil.setValue(ContentUtil.java:296)

    at de.espirit.firstspirit.store.access.contentstore.ContentUtil.storeData(ContentUtil.java:222)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.AbstractGuiXmlPanel.save(AbstractGuiXmlPanel.java:440)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.persist(ContentGuiXmlPanel.java:338)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel.save(ContentGuiXmlPanel.java:311)

    at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentGuiXmlPanel$GuiXmlToolbar$2.actionPerformed(ContentGuiXmlPanel.java:484)

    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

    at de.espirit.firstspirit.common.gui.StoreHoverButton.fireActionPerformed(StoreHoverButton.java:96)

    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

    at java.awt.Component.processMouseEvent(Unknown Source)

    at javax.swing.JComponent.processMouseEvent(Unknown Source)

    at java.awt.Component.processEvent(Unknown Source)

    at java.awt.Container.processEvent(Unknown Source)

    at java.awt.Component.dispatchEventImpl(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Window.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.EventQueue.dispatchEvent(Unknown Source)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:130)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:115)

    at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:108)

    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

    at java.awt.EventDispatchThread.run(Unknown Source)

Das es ein "oldValue" nicht gibt ist verständlich, aber wie kann ich diesen Fehler umgehen?

0 Kudos

Ist das Schema schon gespeichert? Diese Meldung sollte nur kommen, wenn das Schema nach der Umbennung noch nicht gespeichert ist und in der Datenbank noch keine entsprechende Spalte angelegt wurde.

Peter
0 Kudos

Gespeichert und entsperrt.

0 Kudos