Open Source im professionellen Einsatz
Linux-Magazin 03/2009
840

Übergabe per Variable

Nachdem die URL zum Ändern des Besitzers auf OTRS-Root bekannt ist, muss sie noch in der Oberfläche untergebracht werden. Dafür bietet sich die Ticket-Ansicht an. Sinnvollerweise tragen die beteiligten Perl-Module und die Templates zur Oberfläche die gleichen Namen, hier »AgentTicketZoom« und »AgentTicketZoom.dtl«. Das Ergebnis ist in Abbildung 4 zu sehen, der in der Datei »AgentTicketZoom.dtl« hinterlegte DTL-Code in Listing 5. Es geht tatsächlich nur darum, die Zeile 3 einzufügen, Perl-Code zu ändern ist nicht erforderlich.

Abbildung 4: Listing 5 erweitert die Weboberfläche um den Link »Frei«.

DTL-Dateien in OTRS besitzen die Möglichkeit, auf relevante Informationen zum Ticket über Variablen zuzugreifen. Listing 5 nutzt beispielsweise zum Zugriff auf die Ticketdaten die Ticket-ID (»$LQData{"TicketID"}«) und für den aktuellen Agenten dessen Kennung (»$QData{"UserLogin"}«). Es legt auch eine interne Notiz (»ArticleTypeID=9«) für diesen Vorgang an.

Die Anpassung erfolgt für alle angezeigten Tickets unabhängig von derem Inhalt. Zum Implementieren reichen meist die vorhandenen Quellen als Beispiel und Vorlage. Wenn nicht, dann hilft die detaillierte Beschreibung der Templates und der Variablen in der umfangreichen Dokumentation unter [3].

Listing 5: DTL-Code zum
Einfügen eines Links

01 $QData{"UserLogin","18"} ($Quote{"$Data{"UserFirstname"} $Data{"UserLastname"}","18"})
02 <!-- custom unibwm -->
03 <a href=/otrs/index.pl?Action=AgentTicketOwner&Subaction=Store&TicketID=$LQData{"TicketID"}&NewOwnerID=1&Subject=Freigabe%20Besitzer&ArticleTypeID=9&Body=Besitzer%20zurueckgesetzt%20von%20$QData{"UserLogin"}%20auf%20root>Frei</a>

Zugriff auf den Ticketinhalt

Alle bisherigen Anpassungen waren für jedes Tickets nutzbar, unabhängig vom Inhalt. Eine sehr beliebte Möglichkeit Ticketinhalt-abhängige Funktionen zu implementieren, führt zu OTRS-Freitextfeldern. Damit lassen sich lokale Besonderheiten berücksichtigen und eigene Erweiterungen entwickeln.

Das Rechenzentrum benutzt diese Möglichkeit beispielsweise bei sicherheitsrelevanten Vorfällen im Datennetz, wo die IP-Adresse des potenziellen Verursachers bekannt ist. Der Aufruf eines externen Perl-Skripts fragt eine Datenbank ab, in welcher die Zuständigkeiten für Netzbereiche hinterlegt sind. Dadurch erweitert sich das Ticket automatisch um die Daten des zuständigen Netzbetreuers.

Abbildung 5: Der Aufruf eines externen Perl-Testskripts liefert prompt das zugehörige Ergebnis »Test-Resultat«.

Das folgende Beispiel zeigt das Prinzip des Aufrufs eines eigenen, externen Perl-Skripts. Das Skript ist nur dann aufrufbar, wenn das erste Freitextfeld eines Tickets den Schlüssel »IP« aufweist (Abbildung 5). Der entsprechende Link zum Skript wird in »AgentTicketZoom« eingebaut, indem man den bereits für Freitextfelder vorhandenen Code anpasst (Listing 6). Generierung und Rückgabe des Resultats übernimmt das eigene Skript »test.pl«, das sein Ergebnis als »GET«-Request formuliert und nach Bestätigung des Nutzers zurückliefert (Listing 7).

Das Skript bekommt seine Parameter in der URL übergeben. Der Parameter »TicketID« ist erforderlich, damit das Skript seine Ergebnisse diesem Ticket wieder hinzufügen kann. Dazu dient das OTRS-Modul »AgentTicketFreeText«. Das Beispiel bettet das Ergebnis als neues Freitextfeld »Ergebnis« ein. Möglich wäre auch, einen neuen Artikel zum Ticket hinzuzufügen oder andere beliebig umfangreiche Skripte, die sich außerhalb von OTRS entwickeln und betreiben lassen.

Listing 6: Skript abhängig
vom Freitext-Schlüssel aufrufen

01 <dtl if ($Data{"TicketFreeKey1"} eq "IP") { $Data{"TicketFreeString1"} = "<tr valign="top"><td><b>$QData{"TicketFreeKey1","25"}:</b></td><td><div title="$QData{"TicketFreeText1"}">$QData{"TicketFreeText1"}<a href="/otrs/tools/test.pl?IP=$LQData{"TicketFreeText1"}&TicketID=$LQData{"TicketID"}"> (Skript)</a></div></td></tr>"; }>

Listing 7: Externes Perl-Skript
zur OTRS-Anbindung

01 #!/usr/bin/perl -w
02 
03 # Nutzung des Perl-CGI-Interfaces
04 use CGI qw/:standard/;
05 $query = new CGI;
06 
07 print   $query->header(),
08         $query->start_html(-title=>'Test-Skript zur OTRS-Anbindung');
09 
10 # Sicherheitsabfrage (Skript darf nur aus OTRS heraus aufgerufen werden)
11 if(!( $ENV{HTTP_REFERER} =~ /Action=AgentTicketZoom/))
12 {
13         print $query->h3("Aufruf des Skripts nicht gestattet!");
14         exit;
15 }
16 
17 # Parameter aus der URL
18 my $ip = $query->param('IP');
19 my $ticketID = $query->param('TicketID');
20 
21 my $result = "Test-Resultat";
22 
23 # Inhalt der Webseite
24 print   $query->h1("Testskript zu IP=$ip");
25 print p(
26         a({href=>$ENV{HTTP_REFERER}},"Zurück zum Ticket")
27         ,"--"
28         ,"Ergebnis: $result"
29         );
30 
31 if ($result)
32 {
33         # Rückgabe des Ergebnisses als Freitextfeld 4
34         print '<a href="/otrs/index.pl?Action=AgentTicketFreeText&Subaction=Store&TicketID='.$ticketID.'&TicketFreeKey4=Ergebnis&TicketFreeText4='.$result.'">Ergebnis übernehmen</a><br>';
35 }
36 
37 print $query->end_html();

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Ticketsysteme

    So genannte Trouble-Ticket-Systeme helfen dabei, die Anfragen von Kunden schnell und effizient zu beantworten. Die ausgereiften Open-Source-Lösungen Request Tracker und OTRS unterstützen beim professionellen Service und sind bei großen und kleinen Unternehmen im Einsatz.

  • Simple Defects

    Simple Defects macht für Bugs, was Git für Programmecode tut: Die Entwickler können sich eigene Kopien der Bugdatenbank ziehen, sie bearbeiten und mit anderen synchronisieren. Doch leider dümpelt die vielversprechende Software im Betastadium vor sich hin.

  • Hilfe mit System

    Ab einer gewissen Zahl von Supportanfragen sind Trouble-Ticket-Systeme unverzichtbar, um effizient zu bleiben. Das OTRS ist ein quelloffenes System, das die Arbeit am Helpdesk enorm erleichtert. Es hat sich bereits bei Firmen bewährt, bei denen täglich Zehntausende Fragen eintreffen.

  • Passgenau zugeteilt

    Wenn in einem Team Probleme auftauchen, ist es wichtig, die Vorgänge zu protokollieren und Lösungsschritte zu planen. Ticket-Systeme helfen den Überblick zu behalten und die Ressourcen effizient einzuteilen.

  • Erste Beta des Ticketsystems OTRS 4

    Der neuen Version 4 des Helpdesks OTRS haben die Entwickler unter anderem einen Facelift spendiert. Nun wurde die Beta 1 veröffentlicht.

comments powered by Disqus

Ausgabe 08/2016

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.