Sortierung gesperrter Tickets

Hilfe zu Znuny Problemen aller Art
Locked
tdeklein
Znuny newbie
Posts: 33
Joined: 06 Sep 2010, 10:09
Znuny Version: 3.0.6

Sortierung gesperrter Tickets

Post by tdeklein »

Hallo,

ich würde gerne in der "gesperrte Ticktes"-Ansicht der Agents die Tickets nach verbleibender Zeit bis Eskalation/verbleibender Wartezeit sortieren. Sinn ist, dass der Agent auf einen Blick sieht wieviel Zeit noch verbleibt, bis er sich um das jeweilige Ticket wieder kümmern muß.

Gruß
Thomas
OTRS 3.0.8
Debian 6.0
MySQL
KundenDB aus postgres angebunden.
ServiceDesk
Znuny newbie
Posts: 19
Joined: 02 Mar 2011, 16:42
Znuny Version: 3.3.12
Real Name: René
Company: Sachsen DV Betriebs‐ und Servicegesellschaft mbH
Contact:

Re: Sortierung gesperrter Tickets

Post by ServiceDesk »

Hallo

Unter Admin In der Sysconf
Konfigurationseinstellungen bearbeiten in Ticket -> Frontend::Agent::Ticket::ViewEscalation

dort kann man seine sortierung ein wenig anpassen.
Sichtbar ist es dann im Menü Ticket Eskalationsansicht wenn du dies aktiviert hast unter
Konfigurationseinstellungen bearbeiten in Ticket -> Frontend::Agent::ModuleRegistration dort den Punkt Frontend::Module###AgentTicketEscalationView bearbeiten


Service Desk
Sachsen DV Betriebs‐ und Servicegesellschaft mbH
Täubchenweg 26
04317 Leipzig
www.sachsendv.de
www.backstor.de
tdeklein
Znuny newbie
Posts: 33
Joined: 06 Sep 2010, 10:09
Znuny Version: 3.0.6

Re: Sortierung gesperrter Tickets

Post by tdeklein »

Hallo,

ja die Eskalationsansicht benutzen wir und die Ansicht dort entspricht fast dem, was ich unter Locked Tickets sehen möchte. Mir geht es darum, dass der einzelne Agent in seiner Locked Tickets Ansicht direkt sieht, um welches von seinen Tickets er sich als nächstes kümmern muß (weil es in x Minuten Eskaliert, oder nur noch y Minuten wartet). Diese beiden Informationen (Eskaliert in x Minuten, Wartet noch y Minuten) möchte ich auch gerne im Dashboard angezeigt bekommen. Die Eskalationsansicht ist IMO eher für den Ticketdispatcher geeignet. Ich bin nun gerade dabei ein eigenes Theme mit entsprechenden Anpassungen in den dtl Files anzulegen.

Ich würde mich freuen mal von Euch anderen zu hören, wie Ihr das löst: Wie sehen Eure Agents, um welches Ticket sie sich wann kümmern müssen? Wir arbeiten viel mit pending states und auch da ist es schon schwer einfach auf einen Blick eine Aussage wie "Ticket 201453 benötigt erst übermorgen wieder meine Aufmerksamkeit, Ticket 201522 ist aber in 40 Minuten dran" zu treffen.

Gruß
Thomas
OTRS 3.0.8
Debian 6.0
MySQL
KundenDB aus postgres angebunden.
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Sortierung gesperrter Tickets

Post by jojo »

Im Dahboard gib tes die "Upcomming events" Diese zeigen Tickets an die bald eskalieren oder erinnern
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
tdeklein
Znuny newbie
Posts: 33
Joined: 06 Sep 2010, 10:09
Znuny Version: 3.0.6

Re: Sortierung gesperrter Tickets

Post by tdeklein »

Hi,

damit behelfen wir uns im Augenblick. Aber auch das ist nicht was ich suche. Zum einen ist das ein sehr kleiner Ausschnitt und da der Owner dort nicht angezeigt wird, sieht der einzelne Agent nicht, ob das eines seienr Tickets betrifft. Was ich suche ist quasi ein Mischung aus Eskalationsansicht und anstehende Ereignisse, allerdings nur für die eigenen, gesperrten Tickets.

Gruß
Thomas
OTRS 3.0.8
Debian 6.0
MySQL
KundenDB aus postgres angebunden.
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Sortierung gesperrter Tickets

Post by jojo »

Du kannst das auch in den linken Bereich bekommen, dann zeigt es mehr Daten an.

Dazu musst Du den Wert Block in ContentLarge ändern
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
tdeklein
Znuny newbie
Posts: 33
Joined: 06 Sep 2010, 10:09
Znuny Version: 3.0.6

Re: Sortierung gesperrter Tickets

Post by tdeklein »

Hallo,
jojo wrote:Du kannst das auch in den linken Bereich bekommen, dann zeigt es mehr Daten an.
Dazu musst Du den Wert Block in ContentLarge ändern
Okay. Ich habe mir das mal aus Ticket.xml kopiert und angepasst. Die ContentLarge Änderung war kein Problem und die breitere Ansicht ist ein Anfang. Ich bekomme allerdings nach wie vor nur sechs Einträge angezeigt. Ich hätte erwartet diese Anzahl mit Limit erhöhen zu können, aber da tut sich nichts.

Inzwischen bin ich aber auch mit dem Weg über ein eigenes Theme etwas weiter gekommen und prüfe TicketOverviewSmall.pm in ~/otrs/Custom und AgentTicketOverviewSmall.dtl in einem Theme anzupassen. Das entfernen von Elementen, die ich nicht angezeigt bekommen will funktioniert schon ganz hervorragend :-). Was noch nicht klappt, ist die Eskalationszeit immer anzuzeigen.

Mein erster Ansatz war einfach in TicketOverviewSmall.pm in
my @Col = (qw(TicketNumber Age State Lock Queue Owner CustomerID));
das wenige Zeilen später nur bedingt eingefügte "EscalationTime" mit aufzunehmen. Soweit so gut. Jetzt habe ich die Spalte, und gucke wie ich da Inhalt reinbekomme.

Gruß
Thomas
OTRS 3.0.8
Debian 6.0
MySQL
KundenDB aus postgres angebunden.
tdeklein
Znuny newbie
Posts: 33
Joined: 06 Sep 2010, 10:09
Znuny Version: 3.0.6

Re: Sortierung gesperrter Tickets / Anzeige von Restzeit

Post by tdeklein »

Hi,

ich bin inzwischen eine ganze Ecke weiter gekommen.
Zur Erinnerung: Ziel ist es dass man in den Ticketübersichten (gesperrte Tickets/Queueview) sieht wieviel Zeit noch übrig ist, bis ein Ticket eskaliert/seine Wartezeit abgelaufen ist, also quasi die Spalte "Eskalation in" aus der Eskalationsansicht immer angezeigt wird.

Ich habe zunächst ein neues Theme angelegt und AgentTicketOverviewSmall.dtl angepasst, so dass die anstelle der Spalte Ticketalter (die mich nicht interessiert) die Spalte Eskalation in angezeigt wird.

Ausserdem habe ich TicketOverviewSmall.pm nach ~otrs/Custom/Kernel/Output/HTML kopiert, und hier einige Modifikationen vorgenommen:

### MOD START
### Spalte EscalationTime immer anzeigen. Nicht nur in der Eskalationsansicht. Age entfernt
# Original
#my @Col = (qw(TicketNumber Age State Lock Queue Owner CustomerID));
# Ohne Age mit EscalationTime
my @Col = (qw(TicketNumber EscalationTime State Lock Queue Owner CustomerID));

# Da wir oben EscalationTime schon eingefügt haben, entfällt dieser Block
# show escalation
#if ( $Param{Escalation} ) {
# push @Col, 'EscalationTime';
#}

### MOD STOP
...
### MOD START
### Original
# # escalation human times
# if ( $Article{EscalationTime} ) {
# $Article{EscalationTimeHuman} = $Self->{LayoutObject}->CustomerAgeInHours(
# Age => $Article{EscalationTime},
# Space => ' ',
# );
# $Article{EscalationTimeWorkingTime} = $Self->{LayoutObject}->CustomerAgeInHours(
# Age => $Article{EscalationTimeWorkingTime},
# Space => ' ',
# );
# }
# escalation human times
#if ( $Article{EscalationTime} ) {
$Article{EscalationTimeHuman} = $Self->{LayoutObject}->CustomerAgeInHours(
Age => $Article{EscalationTime},
Space => ' ',
);
$Article{EscalationTimeWorkingTime} = $Self->{LayoutObject}->CustomerAgeInHours(
Age => $Article{EscalationTimeWorkingTime},
Space => ' ',
);
#}
# Falls Eskalationszeit = 0 (weil z. B. Ticket pending), dann pending Zeit anzeigen
if ($Article{EscalationTimeHuman} == 0) {
$Article{EscalationTimeHuman} = $Self->{LayoutObject}->CustomerAgeInHours(
Age => $Article{UntilTime},
Space => ' ',
);
# Falls die verbleibende Wartezeit noch nicht negativ (also abgelaufen) ist
# die EscalationTime auf eine Wert setzen, der in einer Abfrage weiter unten
# dafür sorgt, dass die Zeit nicht rot eingefärbt wird.
# > 0 = Rot wenn Ablauf
# > 3600 = Rot eine Stunde vor Ablauf
if ($Article{UntilTime} > 3600) {
$Article{EscalationTime} = 60 * 60 * 1;
}

# Zeit bis Ablauf des Pending Status:
my $DestDate = $Self->{TimeObject}->SystemTime() + $Article{UntilTime};
my $TimeStamp = $Self->{TimeObject}->SystemTime2TimeStamp(SystemTime => $DestDate,);
# Sekunden Arbeitszeit bis Ablauf
my $WorkingTimeTillEscalation = $Self->{TimeObject}->WorkingTime(
StartTime => $Self->{TimeObject}->SystemTime(),
StopTime => $Self->{TimeObject}->SystemTime() + $Article{UntilTime},
);
#TODO: Daraus noch /x h y m/ mach. Scheinbar zeigt EscalationTimeWorkingTime auch einfach einen String an
# Jetzt wirds erstmal in der Ausgabe auf Stunden runtergeteilt

$Article{EscalationTimeWorkingTime} = $WorkingTimeTillEscalation/60/60 ." h"; # (seconds of working/service time till escalation, e. g. "1800")
$Article{EscalationDestinationDate} = $TimeStamp;
$Article{UpdateTimeDestinationDate} = $TimeStamp;
}
### MOD STOP
...
### MOD START
### Original
### # show escalation
### if ( $Param{Escalation} ) {
### if ( $Article{EscalationTime} < 60 * 60 * 1 ) {
### $Article{EscalationClass} = 'Warning';
### }
### $Self->{LayoutObject}->Block(
### Name => 'RecordEscalationTime',
### Data => { %Article, %UserInfo },
### );
### }
# show escalation
#if ( $Param{Escalation} ) {
if ( $Article{EscalationTime} < 60 * 60 * 1 ) {
$Article{EscalationClass} = 'Warning';
}
# Hier werden die Daten in den Layoutblock gepackt, der im Template angegeben ist.
$Self->{LayoutObject}->Block(
Name => 'RecordEscalationTime',
Data => { %Article, %UserInfo },
);
#}
### MOD STOP
...
### MOD START
### Original
### # show escalation
### if ( $Param{Escalation} ) {
### if ( $Article{EscalationTime} < 60 * 60 * 1 ) {
### $Article{EscalationClass} = 'Warning';
### }
### $Self->{LayoutObject}->Block(
### Name => 'RecordEscalationTime',
### Data => { %Article, %UserInfo },
### );
### }
# show escalation
#if ( $Param{Escalation} ) {
if ( $Article{EscalationTime} < 60 * 60 * 1 ) {
$Article{EscalationClass} = 'Warning';
}
# Hier werden die Daten in den Layoutblock gepackt, der im Template angegeben ist.
$Self->{LayoutObject}->Block(
Name => 'RecordEscalationTime',
Data => { %Article, %UserInfo },
);
#}
### MOD STOP

Was die Anzeige betrifft bin ich damit sehr zufrieden. Ich sehe jetzt in der SmallView-Ansicht wie lange und bis wann ein Ticket noch wartet oder abläuft (Reaktionszeit/Aktualisierungszeit). Nun hätte ich allerdings auch erwartet, die Ansicht durch Klick auf den Spaltenkopf sortieren zu können. Das funktioniert aber leider gar nicht. Die Tickets werden immer in einer AFAIK zufälligen Reihenfolge angezeigt. Hat jemand eine Idee wie ich jetzt noch die Sortierung hinbekommen?
OTRS 3.0.8
Debian 6.0
MySQL
KundenDB aus postgres angebunden.
Locked