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);
}