Blog

TicketTyp mit Dynamischen Feld und GenericAgent setzen

27.05.2016 // Renée Bäcker

Bei einem Kunden ist die Anforderung aufgetaucht, dass man den Tickettyp auch direkt in den Antworten ändern können soll. Ein Standard-OTRS gibt das nicht her. Hier kann man nur bei Notizen und in einigen anderen Dialogen den Tickettyp ändern.

Eine Möglichkeit wäre natürlich den Code anzupassen und so das gewünschte Feature einzubauen. Ich möchte aber kurz zeigen, wie man das mit (fast) reinen Bordmitteln erledigen kann.

Die einzige Komponente, die es nicht standardmäßig im OTRS gibt ist die Erweiterung DynamicFieldRemoteDB von c.a.p.e IT. Die kann normal über den Paketmanager von OTRS installiert werden.

Ist die Erweiterung installiert, geht es zum nächsten Schritt. Im Adminbereich muss für das Ticket ein Dynamisches Feld vom Type RemoteDB angelegt werden:

Als Namen vergeben wir einfach mal TicketType. Bei den RemoteDB-Einstellungen muss man die Informationen für die Datenbankverbindung hinterlegen. Für DSN, User und Passwort muss man einfach mal in die Kernel/Config.pm schauen.

Als Tabelle muss ticket_type gewählt werden, der Schlüssel ist die Spalte id und als Spalte für den Wert - wir können ja nichts mit den numerischen IDs in der Oberfläche anfange - wählen wir name.

Anschließend muss das Feld noch für die Antworten-Ansicht freigeschaltet werden. Dazu in der SysConfig die Gruppe Ticket und die Untergruppe Frontend::Agent::Ticket::ViewCompose auswählen. Dort gibt es die Option Ticket::Frontend::AgentTicketCompose###DynamicField, in der wir das neue Feld eintragen:

Wenn wir jetzt den Antworten-Dialog öffnen, sehen wir ziemlich weit unten das Dropdown mit den Tickettypen:

Jetzt müssen wir nur dafür sorgen, dass sich auch der Tickettyp-Wert ändert wenn wir in dem Dropdown etwas auswählen und die Mail abschicken. Dazu benutzen wir den GenericAgent. Dieser ist auch über den Adminbereich zu finden. Da wir nicht regelmäßig die Tickets nach irgendwelchen Werten durchsuchen, sondern auf Änderungen des Dynamischen Feldes reagieren wollen, müssen wir einen Eventgesteuerten GenericAgent erstellen.

Als Event wählen wir

Der letzte Teil hängt von dem Namen ab, den Sie beim Erstellen des Dynamischen Feldes gewählt haben.

Etwas aufwändig ist das Ganze, weil für jeden Tickettyp muss ein GenericAgent erstellt werden. Hat mal drei Tickettypen in der Datenbank, müssen drei GenericAgents erstellt werden. Das bedeutet auch, dass GenericAgents erstellt werden müssen, wenn Tickettypen in der Datenbank hinzukommen (z.B. durch Installation des ITSMChangeManagement-Moduls).

Im Ticketfilter müssen wir den neuen Wert des Dynamischen Feldes wählen - hier z.B. Incident. Damit sagen wir: Der GenericAgent soll ausgeführt werden wenn sich das Dynamische Feld TicketType ändern und zwar auf Incident. Im Bereich der zu ändernden Attribut müssen wir dann bei Neuer Typ ebenfalls Incident wählen. Damit wird der tatsächliche Tickettyp geändert.

Jetzt noch abspeichern und ab dann steht das neue Feature zur Verfügung.

Permalink:

Archiv