RE: [otrs-de] Re: Wie erkennt ORTS die korrekte Ticket Nummer?

Hallo Namensvetter,
"Ich leb' online" hat T-Online _mir_ geklaut! Aber Vorsicht: Robert Kehl und Robert heinzmann sind zwar beides Roberts, aber doch verschiedene :)
Yap, I took the blue pill :)
Heisst, die RegEx erwartet, dass nach dem TicketHook ein Doppelpunkt folgt, dann ein oder kein Zeichen, dann die Ticketnummer.
Währe es hier nich besser nach /$TicketHook:+\s{0,1}($SystemID\d{2,12})/i zu suchen ? Es kann ja sonst, je nach Gierigkeit des Perl RegEx'ers, zu Doppeldeutigkeiten kommen.
Das ist ime ein Bug im Code (genauer: vier in vier Modulen), der TicketDivider wird nicht abgefragt.
Workaround: Setz' den TicketDivider auf den Doppelpunkt oder auf ": " (ohne Quotes).
Das verwirrt mich jetzt. Nach "analyse" des Codes wird der TicketDivider doch gar nirgens ausgewertet oder seh ich das falsch ? Lauft der Aussage des Entfernen des "[" sollte dies doch aber auch nie ein neues Ticket erzeugen oder ? Robert Heinzmann

On Friday, June 11, 2004 1:28 PM
Heinzmann, Robert
Heisst, die RegEx erwartet, dass nach dem TicketHook ein Doppelpunkt folgt, dann ein oder kein Zeichen, dann die Ticketnummer.
Währe es hier nich besser nach /$TicketHook:+\s{0,1}($SystemID\d{2,12})/i zu suchen ? Es kann ja sonst, je nach Gierigkeit des Perl RegEx'ers, zu Doppeldeutigkeiten kommen.
Das hängt zuallererst davon ab, wie üblicherweise das Subject im OTRS zusammengebaut wird: $ grep -r "\$Subject = .*\$TicketHook" . ./Kernel/Modules/AgentEmail.pm: $Subject = "[$TicketHook: $Tn] $Subject"; ./Kernel/System/Ticket/Article.pm: $Subject = "[$TicketHook: $Article{TicketNumber}] $Subject"; ./Kernel/System/Ticket/SendAutoResponse.pm: $Subject = "[$TicketHook: $Param{TicketNumber}] $Subject"; Siehe da - der TicketDivider wird nicht benutzt, was uns aber auch dies sagt: Kernel/Config/Defaults.pm: # TicketDivider Kernel/Config/Defaults.pm: $Self->{TicketDivider} = ':'; Kernel/System/Ticket/Number/AutoIncrement.pm: my $TicketDivider = $Self->{ConfigObject}->Get('TicketDivider') || ': '; Ausschliesslich AutoIncrement liest den Divider, substituiert aber einen anderen Standardwert als die Default.pm vorschlägt (genau hinschauen!). Genutzt wird er dennoch nicht, wie gesehen. Zurück zu Deinem Vorschlag: Ich plädiere dafür, den TicketDivider auf ': ' zu setzen, also Doppelpunkt Space. Dann vereinfacht sich dieser Teil der RegEx wie folgt: Aus: $TicketHook:+.{0,1} machst Du: $TicketHook:+\s{0,1} Ich find' netter: $TicketHook$TicketDivider Die gesamte RegExp sähe dann für Random wie folgt aus: /$TicketHook$TicketDivider($SystemID\d{2,12})/i Vorher müsste natürlich $TicketDivider geboren werden: my $TicketDivider = $Self->{ConfigObject}->Get('TicketDivider') || ': ';
Das ist ime ein Bug im Code (genauer: vier in vier Modulen), der TicketDivider wird nicht abgefragt. Das verwirrt mich jetzt. Nach "analyse" des Codes wird der TicketDivider doch gar nirgens ausgewertet oder seh ich das falsch ?
In der Tat heisst es nun, dass $Self{TicketDivider} nicht nur nicht gelesen, sondern auch nicht geschrieben wird. Den Bug beheben wir dann wohl für's CVS. Der Workaround bleibt bestehen.
Lauft der Aussage des Entfernen des "[" sollte dies doch aber auch nie ein neues Ticket erzeugen oder ?
Das "[" ist vollkommen egal. Das "]" auch. Es grüßt fröhlich Robert Kehl -- ((otrs.de)) :: OTRS GmbH :: Norsk-Data-Str. 1 :: 61352 Bad Homburg http://www.otrs.de/ :: Tel. +49 (0)6172 4832388
participants (2)
-
Heinzmann, Robert
-
Robert Kehl