Die Methoden des Helper-Objektes
Um die Erstellung der Skripte zu vereinfachen, gibt es ein Hilfsobjekt, dass sich im Kontext aller Skripte befindet. Dieses Hilfsobjekt hat in allen Skripten den Namen „helper“.
Alle hier aufgeführten Funktionen können Exceptions werfen, d.h. auf Fehlersituationen angemessen reagieren. Der Administrator kann entscheiden, bei welchem Funktionsaufruf er die potenziellen Exceptions fangen möchte.
Bearbeiten von Formularen
Die folgenden Funktionen dienen der Bearbeitung von Formularen in todo4teams.
Mit dieser Funktion kann können an den aktuellen Job Formulare angehängt werden. Will man z.B. beim Eintreffen von E-Mails in einem Postfach automatisch ein Formular anfügen, so wird diese Funktion benutzt.
Der Rückgabewert ist das an das Ticket angehängte Formular. Beispiel:
Dies ist eine „Convenience“-Funktion, die die obige Funktion aufruft. Zuvor ermittelt sie die zu verwendende Id über den Namen des Formulars. Ist der Name nicht eindeutig, so wird die Id des ersten ermittelten Formulars genommen.
Der Rückgabewert ist das an den Job angehängte Formular. Beispiel:
Mit dieser Funktion können die Werte in einem Formular gesetzt werden. Der erste Parameter md ist das jeweilige Formular. Der zweite Parameter name ist der Name des Feldes und der dritte Parameter value ist der zu setzende Wert. Diese Funktion ist z.B. hilfreich, wenn aus einem PDF-Formular einer E-Mail automatisch Werte in ein Formular übernommen werden sollen.
Liefert alle Formulare des aktuellen Tickets zurück, Beispiel:
Verändern des Routings
Mit den in diesem Abschnitt beschriebenen Funktionen kann die Adressierung von Tickets in todo4teams verändert werden. So könnte man z.B. eintreffende E-Mails oder SMS in Abhängigkeit von der Tageszeit entweder an Teams X oder an Team Y adressieren.
Diese Funktion kann dazu benutzt werden das aktuelle Ticket an ein beliebiges Team zu adressieren. Der Übergabeparameter ist die eindeutige Id des Teams. Das Ticket wird als 'neu' an das adressierte Team gesendet. Eine Kopie des Tickets mit dem aktuellen Bearbeiter wird in der Datenbank abgelegt und der Historie des weitergeleiteten Tickets zugeordnet. Beispiel:
Die Funktion
ist eine „Convenience“-Funktion, die die obige Funktion aufruft. Zuvor ermittelt sie die zu verwendende Id über den Namen des Teams. Ist der Name nicht eindeutig, so wird die Id des ersten ermittelten Teams verwendet. Beispiel:
Mit der Funktion
kann das aktuelle Ticket fest an einen Benutzer adressiert werden. Der Übergabeparameter ist die eindeutige Id des Benutzers. Die Funktion sollte sparsam eingesetzt werden, da sie dem Marktplatzprinzip von todo4teams widerspricht. Beispiel:
Auch die Funktion
ist eine „Convenience“-Funktion, die die obige Funktion aufruft. Zuvor ermittelt sie die zu verwendende Id über den Benutzernamen. Ist der Name nicht eindeutig, so wird die Id der ersten ermittelten Benutzers verwendet. Beachten Sie, dass hier der Benutzername (d.h. die Anmeldekennung) einzutragen ist – nicht der reale Name.
Mit der Funktion
kann der Besitzer eines Tickets gewählt werden. Der Übergabeparameter ist die eindeutige Id des Besitzers. Beispiel:
Auch für diese Funktion ist wiederum
eine „Convenience“-Funktion, die die obige Funktion aufruft. Zuvor ermittelt sie die zu verwendende Id über den Benutzernamen. Ist der Name nicht eindeutig, so wird die Id der ersten ermittelten Benutzers verwendet.
Verändern der Zielzeit
Die folgenden Funktionen dienen dazu, die Zielzeit des aktuellen Tickets zu verändern.
Mit dieser Funktion werden „seconds“ Sekunden zur Zielzeit hinzuaddiert. Beispiel:
Mit der Funktion
void setDateForScheduledEndDate(int year, int month, int day, int hour, int minute, int second)
wird das durch die Übergabeparameter bestimmte Datum und die Tageszeit als Zielzeit für das aktuelle Ticket eingestellt. Beispiel:
Zugriff auf Benutzer und Teams
Diese Funktion gibt alle im System registrierten Benutzer zurück. Beispiel:
var i;
for(i=0; i<users.length; i++){
println(users[i].username);
}
Diese Funktion gibt alle im System registrierten Teams zurück. Beispiel:
var i
for(i=0; i<groups.length; i++){
println(groups[i].name);
}
Bearbeiten von Anhängen
Mit den folgenden Funktionen können die Anhänge von Tickets bearbeitet werden.
Diese Funktion liefert alle in Anhänge des aktuellen Tickets zurück.
Beispiel für die Suche nach einem Dateianhang mit dem Namen Formular.pdf.:
var attachment = helper.attachments[ai];
println("Name: "+attachment.attachmentName);
if(attachment.attachmentName=="Formular.pdf"){
//...
}
}
Die Funktion
entfernt alle Anhänge des aktuellen Tickets.
Beispiel für die Entfernung aller Dateianhänge von einer eingehenden E-Mail:
Diese Funktion löscht alle Anhänge mit dem Namen „attachmentname“ des aktuellen Todo-Jobs:
Beispiel für die Entfernung des Dateianhangs mit dem Namen Formular.pdf:
Bearbeiten von Strings
Diese Funktion liefert die mutmaßliche Sprache als Rückgabewert auf Basis des übergebenen Strings „input“. Im E-Mail-Eingang wird zur vereinfachten Analyse der Sprache noch die Umgebungsvariable coretext bereitgestellt. Sie wird idealerweise verwendet um die Sprache einer E-Mail zu erkennen.
Beispiel für Abfrage der Sprache einer eingehenden E-Mail. Die variable coretext ist mit dem Textinhalt der E-Mail belegt.
if(lang==“german“){
// …
} else ...
Extrahiert aus dem String „input“ über den regulären Ausdruck „rexExp“ die Trefferliste. Der Parameter multiMatch gibt an, ob er alle Treffer tief auswerten soll.
In diesem Beipiel wird ein HTML-Dateianhang als String eingelesen und mit einem regulären Ausdruck zerlegt. Der HTML-Code enthält eine Tabelle, in der in der ersten Spalte Namen und in der zweiten Spalte Werte stehen. Die Variablen label und value nehmen in der Schleife die jeweiligen Werte an.
var content = new
java.lang.String(attachment.attachmentContent, "UTF-8");
var fields =
helper.extractByRegExp(content,
"<tr><td>(.+?)</td><td><b>(.+?)</b></td></tr>",
true);
for(j=0;j<fields.length;j++){
try{
var label = fields[j][0];
var value = fields[j][1];
// ...
}
Diese Funktion erstellt aus der Bytefolge „bytes“ einen String. Über den Parameter „charSetName“ wird der Zeichensatz des zu erstellenden Strings festgelegt.
Beispiel: Umwandlung eines Byte-Arrays in einen String
Bearbeiten von PDF-Anhängen
Mit diesen Funktionen können PDF-Anhänge am aktuellen Job bearbeitetet werden. Eine hier benutzte Hilfsklasse ist die Klasse PdfFormField. Beschreibt das Triple aus Feldname, Feldwert und Feldtyp zu einem Feld eines PDF-Formulars.
String name;
String value;
String ftype;
}
PdfFormField[] getPdfFormFields(TodoAttachment pdfAttachment)
Diese Funktion liefert zum übergebenen PDF-Anhang noch die Liste aller Formularfelder .
Beispiel: Auslesen der PDF-Formularfelder aus einer PDF-Datei
var attachment = helper.attachments[ai];
println("Name: "+attachment.attachmentName);
if(attachment.attachmentName=="Formular.pdf"){
var fields = helper.getPdfFormFields(attachment);
}
}
Funktion zur automatische Formulargenerierung von Todo-Formularen. Hiermit kann automatisch das zu einem PDF-Formular korrespondierende Todo-Formular erzeugt werden.
Beispiel: Automatische Erzeugung eines Todo-Formulars aus einem PDF-Formular
var attachment = helper.attachments[ai];
println("Name: "+attachment.attachmentName);
if(attachment.attachmentName=="Formular.pdf"){
helper.createFormFromPdfAttachment(attachment);
}
}
Erzeugen neuer Todos
verfügbar für
☑ SMS-Skripte
☑ E-Mail-Skripte
☑ Start-Aktion
☑ End-Aktion
Die Funktion
int addressedGroupId,
String title,
String description,
int minutes,
int ownerId,
Map<Long, Map<String, Object>> forms,
List<ToDoAttachment> attachments)
ermöglicht die Erzeugung neuer Jobs innerhalb einer Skriptausführung. Die ID des erzeugten Jobs wird als Ergebnis zurückgegeben.
Im folgenden Beispiel wird ein Job mit angehäntem Formular und Dateianhang an die Gruppe mit der ID 17 gesendet.
java.util.HashMap();
var values = new
java.util.HashMap();
values.put(new
java.lang.String("Name_t"), new
java.lang.String("Bergener"));
values.put(new
java.lang.String("Vorname_t"), new
java.lang.String("Thomas"));
forms.put(new
java.lang.Long(41), values);
var attachments = new
java.util.ArrayList();
var att1 = new
com.proxemo.todo.bom.ToDoAttachment();
att1.setAttachmentName("test1.txt");
att1.setAttachmentContent(new
java.lang.String("some file content").getBytes());
attachments.add(att1);
var minutes = 20;
var toGroup = 17;
var owner = 0;
var id = helper.createTask(toGroup, "Create!","Just do it!", minutes, owner, forms,attachments);
Anzeige von Nachrichten
verfügbar für
☑ Absenden-Aktion
☑ Übernahme-Aktion
☑ Erledigen-Aktion
Die Funktionen dieses Abschnitts dienen der Anzeige von Nachrichten aus einem Skript heraus. Dies ist insbesondere für die Erledigen-Skripte von Formularen hilfreich. Über diese Skripte können in todo4teams vor dem Abschluss eines Jobs Konsistenzprüfungen ausgeführt werden. Schlagen diese z.B. fehl, so kann dies mit diesen Funktionen signalisiert werden.
Beispiel: Anzeige einer Fehlernachricht.
Beispiel: Anzeige einer Warnung
Anzeige einer Informationsnachricht.
Beispiel: Anzeigen einer Nachricht
Status der Durchführung
Dies ist eine „Convenience“-Funktion, die Auskunft darüber gibt, ob ein Skript erfolgreich ausgeführt wurde.