Auftragsparameter aus E-Mail
Der i-net HelpDesk kann von Extern durch eingelesene E-Mails, die Parameter enthalten, gesteuert werden. Erforderlich sind das Festlegen einer Start-Zeichenfolge und einer Ende-Zeichenfolge. Der HelpDesk-Server ermittelt dann aus dem dazwischen stehenden Text das zu ändernde Feld und den zu setzenden neuen Wert.
Folgende Felder lassen sich in einem Ticket des i-net HelpDesk von außen beeinflussen:
Feldbezeichnung | Parametername | Format / Beispiel |
---|---|---|
Auftragsnummer | aufid |
|
Auftrags-Freifelder 1-4, 6, 7 | auftragfreiX |
|
Kategorie | betreff |
Laser\Drucker |
Deadline | deadlinezeit |
15.03.21, 07:23 , 3/15/21, 7:23 AM , 15/03/2021, 07:23 |
ITIL | itilbezeichnung |
|
Kennung | kennung |
|
Klassifizierung | klassifizierung |
|
Priorität | pribezeichnung und priid[Zahlenwert] |
|
Ressource | resbezeichnung |
Main Resource\Sub Resource |
E-Mail des Absenders | sender |
|
Status | statusbezeichnung und status[Zahlenwert] (nur für existierende Tickets) |
|
Betreff | subject |
|
Wiedervorlage-Zeit | wvzeit |
Hinweis: Nicht unterstützte Parameter werden nicht eingelesen (seit Version 21.4)
Wenn Start- und Ende-Tag gesetzt sind, dann wird der Text (Body) einer eingelesenen E-Mail nach eventuell vorhandenen Zeichenfolgen gescannt.
Syntax:
StartTagZeichenfolge ParameterName = ParameterWert EndTagZeichenfolge
Wichtig: Nur Start- und Ende-Tag sind Groß-/Kleinschreibung unterschieden, der Parametername sowie Parameterwert sind nicht Groß-/Kleinschreibung unterschieden. Ob sich vor oder hinter dem Gleichheitszeichen ein Leerzeichen befindet, ist unerheblich. Schließen Sie keine Sonderzeichen (z.B. Zeilenumbrüche) ein!
Deadline
Die Deadline wird entsprechend dem folgenden Java-Code bestimmt:
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.GERMAN).parseObject(str); DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.US).parseObject(str); DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.UK).parseObject(str); DateFormat.getDateTimeInstance().parse( str );
Beispiele
Beispiel 1
Das nachfolgende Beispiel setzt den Status eines vorhandenen Tickets auf "in Arbeit" (jeder Status wird durch eine Zahl repräsentiert, hier 200) sowie die Priorität auf "hoch".
#Start# Status = 200 #Ende# #Start# pribezeichnung = hoch #Ende#
Hinweis: Die Werte von Feldern existierender Tickets können nicht auf ihre jeweiligen Default-Werte zurückgesetzt werden. Beispiel: Default-Ressource ist "First level", das Ticket ist in der Ressource "Second level". Per Parameter lässt sich die Ressource nicht auf "First level" ändern. Dies ist technisch bedingt.
Beispiel 2
Ein neues Ticket soll erzeugt und automatisch dispatcht (an Ressource autorisiert) werden:
#Start# Status = 100 #Ende# #Start# pribezeichnung = hoch #Ende# "#Start# resbezeichnung = First Level #Ende#"
Hinweis: Nach dem Einlesen der E-Mail in den i-net HelpDesk werden Start- und Ende-Tag nicht mehr angezeigt. Aus der Zeichenfolge im E-Mail #Start# Status = 200 #Ende#
wird so im i-net HelpDesk Status = 200
. Dadurch besteht erstens eine Kontrolle bezüglich der übermittelten Parameter und zweitens wird gewährleistet, dass, bei mehrfachem Mail-"Ping-Pong" zwischen Absender und Empfänger, nur eine gültige Parameter-Folge existiert.
Setzen der Ticket-Zuordnung in der E-Mail
Der i-net HelpDesk-Server sucht bei einer eingehenden E-Mail im Betreff (subject) nach dem Schlüsselwort "TicketID". Danach wird eine Zahl mit einer anschließenden Buchstabenfolge erwartet.
Beispiel:: "AW: Druckerstörung TicketID 824RPH".
Im Beispiel muss also die eingehende E-Mail im Betreff die Zeichenfolge 'TicketID 824RPH' besitzen, damit diese E-Mail als weiterer Schritt zu Auftrag-Nr.: 824 hinzugefügt werden kann.
Nachfolgend der Java-Code, der die TicketID generiert. Sie müssen den Code entsprechend für Ihre Sprache adaptieren:
public String getTicketID(String aufId){ String ticketIdString = "TicketID "; char values[] = aufId.toCharArray(); char key[] = new char[values.length*2]; System.arraycopy(values,0,key,0,values.length); for(int i = 0; i<values.length; i++) { if (i==0) key[values.length] = (char)(values[i]+26); else key[values.length+i] = (char)(values[i-1] - values[i] + 74); } return ticketIdString + new String(key); }