Software error bei Verwendung von FAQ 1.5.3

Hilfe zu Znuny Problemen aller Art
Locked
fschweizer
Znuny newbie
Posts: 6
Joined: 09 Oct 2008, 14:15

Software error bei Verwendung von FAQ 1.5.3

Post by fschweizer »

Hallo,

habe über die Paketverwaltung das FAQ-Paket in Version 1.5.3 installiert.
Die Installation lief ohne Fehlermeldungen ab.

Wenn ich nun auf den neuen Menüpunkt FAQ gehe erhalte ich folgende Fehlermeldung:
Software error:
Can't call method "fetchrow_array" on an undefined value at /opt/otrs/bin/cgi-bin/../../Kernel/System/DB.pm line 624.
Wo liegt der Fehler?
OTRS 2.3.2 | ITSM 1.2 | Ubuntu 8.04 | Apache 2.2.8 | Oracle XE universal 10.2
fschweizer
Znuny newbie
Posts: 6
Joined: 09 Oct 2008, 14:15

Software error bei Verwendung von FAQ 1.5.3

Post by fschweizer »

Ursache des Fehlers ist ein fehlerhafter SELECT in /opt/otrs/Kernel/System/FAQ.pm in der Funktion FAQTop10Get

Zeile 2792: Die GROUP BY-Clause schließt zu wenige Felder ein...
Fragt sich jetzt nur, ob die Felder in der GROUP BY-Clause vergessen wurden, oder ob in Zeile 2766 zu viele Felder selektiert wurden.

Der fehlerhafte SELCT lautet

Code: Select all

SELECT item_id, count(item_id) f1, faq_state_type.name, approved
FROM faq_log, faq_item, faq_state, faq_state_type
WHERE  faq_log.item_id = faq_item.id
AND faq_item.state_id = faq_state.id
AND faq_state.type_id = faq_state_type.id
GROUP BY item_id ORDER BY 2 DESC
Wie sollte der korrekte SELECT lauten?
OTRS 2.3.2 | ITSM 1.2 | Ubuntu 8.04 | Apache 2.2.8 | Oracle XE universal 10.2
otwe
Znuny newbie
Posts: 1
Joined: 13 Nov 2008, 15:53

Software error bei Verwendung von FAQ 1.5.3

Post by otwe »

Hallo,

habe den select (group by clause) folgendermassen geändert und jetzt funktionierts bei mir.

Auszug aus der /opt/otrs/Kernel/System/FAQ.pm:

2764 # prepare SQL
2765 my @Bind;
2766 my $SQL = 'SELECT faq_log.item_id, count(faq_log.item_id), faq_state_type.name, faq_item.approved '
2767 . 'FROM faq_log, faq_item, faq_state, faq_state_type '
2768 . 'WHERE faq_log.item_id = faq_item.id '
2769 . 'AND faq_item.state_id = faq_state.id '
2770 . 'AND faq_state.type_id = faq_state_type.id ';
2771
2772 # filter results for public and customer interface
2773 if ( ( $Param{Interface} eq 'public' ) || ( $Param{Interface} eq 'external' ) ) {
2774
2775 $SQL .= "AND ( ( faq_state_type.name = 'public' ) ";
2776
2777 if ( $Param{Interface} eq 'external' ) {
2778 $SQL .= "OR ( faq_state_type.name = 'external' ) ";
2779 }
2780 $SQL .= ') ';
2781
2782 $SQL .= 'AND faq_item.approved = 1 ';
2783 }
2784
2785 # filter results for defined time period
2786 if ( $Param{StartDate} && $Param{EndDate} ) {
2787 $SQL .= 'AND faq_log.created >= ? AND faq_log.created <= ? ';
2788 push @Bind, ( \$Param{StartDate}, \$Param{EndDate} );
2789 }
2790
2791 # complete SQL statement
2792 $SQL .= 'GROUP BY faq_log.item_id, faq_state_type.name, faq_item.approved '
2793 . 'ORDER BY 2 DESC ';
2794
Locked