Seite 1 von 1

Condition in Listview greift in 8.1 nicht mehr

Verfasst: Do 9. Jan 2020, 12:52
von rhorbas
In einer 8.0.3 funktioniert noch folgende Listview über Dokumente mit einem Feld, das das Datum in 2020 hat:

Code: Alles auswählen

<we:condition name="heuer">
    <we:conditionAdd field="date_start" value="1577833200" compare="&gt;"/>
    <we:conditionAnd/>
    <we:conditionAdd field="date_start" value="1609455599" compare="&lt;"/>
</we:condition>

<we:listview type="document" doctype=Fortbildung" order="date_start" desc="false" condition="$heuer">
<we:repeat>
(...)
</we:repeat>
</we:listview>
In einer Testinstallation habe ich eine Kopie des Systems auf 8.1 (Ahlberg) gehoben. Nun wird nichts mehr ausgegeben.
Dabei habe ich z.B. ein Dokument mit
date_start: 1604751420

Ein SQL Fehler wird nicht geworfen. Ich habe es auch mit

Code: Alles auswählen

<?php
$heuer = '((date_start > "1577833200") AND (date_start < "1609455599") )';
?>
und

Code: Alles auswählen

<?php
$heuer = '((date_start > "1577833200") )';
?>
versucht, oder mit

Code: Alles auswählen

<?php
$heuer = '((date_foo > "1577833200")  )';
?>
um SQL-Fehler zu provozieren. Es kommen aber keine.

Ein

Code: Alles auswählen

<?php p_r($GLOBALS['lv']); ?>
ergibt:
[condition:protected] => ((date_start > "1577833200") AND (date_start < "1609455599") )
Sogar wenn ich die Condition so vereinfache:

Code: Alles auswählen

<we:condition name="heuer">
    <we:conditionAdd field="plz" compare="=" value="35392" />
</we:condition>
kommen keine Ergebnisse.

Lasse ich die Condition hingegen weg, dann werden mir alle Dokumente angezeigt.
Ist das ein Bug, oder übersehe ich etwas?

Re: Condition in Listview greift in 8.1 nicht mehr

Verfasst: Fr 10. Jan 2020, 01:51
von mokraemer

Re: Condition in Listview greift in 8.1 nicht mehr

Verfasst: Fr 10. Jan 2020, 10:56
von rhorbas
mokraemer hat geschrieben: Fr 10. Jan 2020, 01:51 vermutlich trifft dich https://qa.webedition.org/tracker/view.php?id=12440
Meinst du? Ich hatte den gesehen, aber da es eine Dokumenten-Listview ist und ich keine SQL-Errors erhalte, für mich ausgeschlossen.

Wie gehe ich da jetzt am besten vor? Soll ich ins Testsystem die Nightly einspielen und dann ggf. mit dem Update des Live-Systems warten, bis 8.1.1 raus ist?

Re: Condition in Listview greift in 8.1 nicht mehr

Verfasst: Fr 10. Jan 2020, 12:36
von mokraemer
ah, sorry. Bei den Dokumenten greift der Bug def. nicht.
kannst du dazu mal einen Bug aufmachen, dann können wir da einfacher schreiben. Ich hätte da eine Vermutung.
Hilfreich wäre die Ausgabe von (##ID## durch die Dok-ID bei der du sicher bist das es rauskommen sollte eintragen)
1) var_dump(getHash('SELECT Type,Name,BDID,Dat,HEX(nHash) FROM '.CONTENT_TABLE.' WHERE DocumentTable="tblFile" AND Name="date_start" AND DID=##ID##'));
2) folgendes vor die LV schreiben <?php $GLOBALS['DB_WE']->t_e_query(5); ?> und dann im error log die Ausgabe der letzten max. 5 Einträge - das sollten dann alles SQL-Queries sein.

Meine Vermutung wäre das entweder bei 1) nHash nicht gesetzt ist, oder das Dat nicht NULL ist; wenn das so ist, brauche ich 2) nicht.

Re: Condition in Listview greift in 8.1 nicht mehr

Verfasst: Fr 10. Jan 2020, 13:15
von rhorbas

Re: Condition in Listview greift in 8.1 nicht mehr

Verfasst: Mo 13. Jan 2020, 13:23
von rhorbas
Ist gelöst:
der Hash-Wert in der DB stimmt nicht.
Ursache bisher unbekannt, könnte beim Einspielen des Backups passiert sein (Quell-WE war 8.0.3, Ziel-WE 8.1.1)

Dieser Eingriff in die DB hat geholfen:

Code: Alles auswählen

 update tblContent SET nHash=unhex(md5(Name))