Hallo zusammen,
ich füge unsere Kunden über eine LDAP Anbindung einem Ticket hinzu. In dem LDAP Datensatz sehe ich die Kundenabteilung (über MAP => [ 'Department', 'Abteilung', 'department', 1, 0, 'var', '', 1 ], usw. in der Config.pm).
Wie kann ich eine Statistik erstellen, in der ich sehen kann, wieviele Tickets aus den einzelnen Abteilungen z.B. im letzten Monat gekommen ist?
OS: Ubuntu 9.04
OTRS 2.3.2
ITSM 1.2.3
Vielen Dank für eure Antwort.
Gruß,
Micha
Statistik über Kunden Abteilungen
Statistik über Kunden Abteilungen
Hi,
das funktioniert über SQL-Abfragen.
Über das Statistik-Modul funktioniert es leider nicht.
mfg
das funktioniert über SQL-Abfragen.
Über das Statistik-Modul funktioniert es leider nicht.
mfg
Produktiv: OTRS 2.4.7, CiCS 3.1.5, Eigenentwicklungen
β-Testing/Mirror: OTRS 2.4.7, ITSM 2.0.2, CiCS(::ITSM) 3.1.5 (2.1.6), Eigenentwicklungen OS: Win2003, XAMPP, Apache2.2/MySQL 5, Trac/SVN
β-Testing/Mirror: OTRS 2.4.7, ITSM 2.0.2, CiCS(::ITSM) 3.1.5 (2.1.6), Eigenentwicklungen OS: Win2003, XAMPP, Apache2.2/MySQL 5, Trac/SVN
Statistik über Kunden Abteilungen
Hallo,
heißt das, ich muss zuerst die LDAP Daten in die lokale DB übertragen und anschließend via SQL Auswerten? Was passiert mit der LDAP Authentifizierung der Kunden (LDAP Kunde ungleich DB KUNDE!?). Sieht der Kunde nach dem Login via LDAP dann noch seine Tickets? Beim anlegen eines Tickets werden dem Agenten dann zwei Einträge pro Kunde angezeigt (LDAP und DB)?
... oder sind diese Daten (Abteilung) bereits in der DB (hab leider bisher noch nichts gefunden)?
Vielen Dank für Deine Antwort.
Gruß,
Micha
heißt das, ich muss zuerst die LDAP Daten in die lokale DB übertragen und anschließend via SQL Auswerten? Was passiert mit der LDAP Authentifizierung der Kunden (LDAP Kunde ungleich DB KUNDE!?). Sieht der Kunde nach dem Login via LDAP dann noch seine Tickets? Beim anlegen eines Tickets werden dem Agenten dann zwei Einträge pro Kunde angezeigt (LDAP und DB)?
... oder sind diese Daten (Abteilung) bereits in der DB (hab leider bisher noch nichts gefunden)?
Vielen Dank für Deine Antwort.
Gruß,
Micha
Statistik über Kunden Abteilungen
Du kannst eine solche Statistik im Endeffekt nur über die OTRS API "bauen". Du musst nämlich Kundendaten per LDAP abfragen um die Logins oder Customer_IDs zu erhalten und dann anschliessend die Tickets dafür herausfinden....
"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
"Testing": ((OTRS Community Edition)) and git Master
Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Statistik über Kunden Abteilungen
Hallo,
habe ich denn die Möglichkeit, die angezogene OU oder Abteilung des Kunden zu einem Ticket in die lokale DB zu schreiben? Wenn ja, wie sieht soetwas aus?
Wenn dass klappt, könnte ich dann ja mit SQL meine Statistik starten.
Ein 'Workaround', als Alternative zur API Entwicklung könnte so aussehen: Statistik über alles Tickets eines Zeitraums mit eingeschalteter Stats::CustomerIDAsMultiSelect: Option über alle Kunden. Anschl. import der AD in Excel oder Access. Matchen der beiden DBs und summen bilden. Nicht schön aber sicher möglich. Hier ist nur das Problem, dass hierfür eine 'Weitergabefähige' Auswertung über einzelne Benutzer durchgeführt würde. Der BR läßt grüßen
Ist denn die Anforderung, nach Abteilungen zu quantifizieren soooo ungewöhnlich. M.E. ist das doch eine Statistik die jedes Unternehmen fordert - oder?
Gruß,
Micha
habe ich denn die Möglichkeit, die angezogene OU oder Abteilung des Kunden zu einem Ticket in die lokale DB zu schreiben? Wenn ja, wie sieht soetwas aus?
Wenn dass klappt, könnte ich dann ja mit SQL meine Statistik starten.
Ein 'Workaround', als Alternative zur API Entwicklung könnte so aussehen: Statistik über alles Tickets eines Zeitraums mit eingeschalteter Stats::CustomerIDAsMultiSelect: Option über alle Kunden. Anschl. import der AD in Excel oder Access. Matchen der beiden DBs und summen bilden. Nicht schön aber sicher möglich. Hier ist nur das Problem, dass hierfür eine 'Weitergabefähige' Auswertung über einzelne Benutzer durchgeführt würde. Der BR läßt grüßen

Ist denn die Anforderung, nach Abteilungen zu quantifizieren soooo ungewöhnlich. M.E. ist das doch eine Statistik die jedes Unternehmen fordert - oder?
Gruß,
Micha
Statistik über Kunden Abteilungen
Hallo,
meine Lösung lautet wie folgt:
1. Erweiterung der DB (Tabelle 'ticket') um das Feld customer_department
2. Füllen/Kontrolle des Feldes 'Abteilung' in der ADS
3. Änderung der /usr/share/otrs/Kernel/System/Ticket.pm wie folgt:
4. Abfrage der DB aus z.B. Excel mit folgendem SQL Code:
Info: State 2 = geschlossen / State 10 = geschlossen mit Workaround
Das Zeitfenster muss natürlich entsprechend pro Abfrage geändert werden.
Hierbei handelt es sich m.E. um eine absolute Standardabfrage, welche sicherlich im Standard enthalten sein sollte.
Schade ist hier, dass dafür die Ticket.pm angepasst werden muss, so dass dieses immer wieder, bei jedem Update, durchgeführt werden muss.
Gruß,
MIcha
meine Lösung lautet wie folgt:
1. Erweiterung der DB (Tabelle 'ticket') um das Feld customer_department
2. Füllen/Kontrolle des Feldes 'Abteilung' in der ADS
3. Änderung der /usr/share/otrs/Kernel/System/Ticket.pm wie folgt:
Code: Select all
if ($Ok) {
$Param{History} .= "CustomerUser=$Param{User};";
}
+
+ my %CustomerUser = $Self->{CustomerUserObject}->CustomerUserDataGet(
+ User => $Param{User},
+ );
+ $Param{Department} = $CustomerUser{'Department'};
+
+ # db customer department update
+ if ( defined $Param{Department} ) {
+ my $Ok = $Self->{DBObject}->Do(
+ SQL => 'UPDATE ticket SET customer_department = ?, '
+ . 'change_time = current_timestamp, change_by = ? WHERE id = ?',
+ Bind => [ \$Param{Department}, \$Param{UserID}, \$Param{TicketID} ],
+ );
+ if ($Ok) {
+ $Param{History} .= "CustomerDepartment=$Param{Department};";
+ }
+ }
}
# if no change
Info: State 2 = geschlossen / State 10 = geschlossen mit Workaround
Das Zeitfenster muss natürlich entsprechend pro Abfrage geändert werden.
Code: Select all
SELECT Count( * ) AS Zeilen, ticket.customer_department
FROM ticket
WHERE (
ticket.change_time
BETWEEN '2009-02-01 00:00:00'
AND '2009-02-28 23:59:59'
AND ticket.ticket_state_id =2
)
OR (
ticket.ticket_state_id =10
)
GROUP BY ticket.customer_department
ORDER BY ticket.customer_department
Schade ist hier, dass dafür die Ticket.pm angepasst werden muss, so dass dieses immer wieder, bei jedem Update, durchgeführt werden muss.
Gruß,
MIcha