Die Methoden des Helper-Objektes


Zurück zu Hilfsobjekte in todo4teams...

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.

TodoTaskExtendedMetaData addMetaData(long metaDataId)

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 den Job angehängte Formular. Beispiel:

var formular=helper.addMetaData(7);
TodoTaskExtendedMetaData addMetaDataByName(String metaDataName)

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:

var formular=helper.addMetaDataByName('Kundendaten');
void addValueForField(TodoTaskExtendedMetaData md, String name, Object value)

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.

TodoTaskExtendedMetaData[] getTaskMetaData()

Liefert alle Formulare des aktuellen Jobs zurück, Beispiel:

var alleFormulare=helper.getTaskMetaData();

Verändern des Routings

Mit den in diesem Abschnitt beschriebenen Funktionen kann die Adressierung von Jobs in todo4teams verändert werden. So könnte man z.B. eintreffende E-Mails oder SMS in Abhängigkeit von der Tageszeit entweder an Gruppe X oder an Gruppe Y adressieren.

void routeToGroup(long groupId)

Diese Funktion kann dazu benutzt werden den aktuellen Job an eine beliebige Gruppe/Skill zu adressieren. Der Übergabeparameter ist die eindeutige Id der Gruppe. Der Job wird als 'neu' in die adressierte Gruppe gesendet. Eine Kopie des Jobs mit dem aktuellen Bearbeiter wird in der Datenbank abgelegt und der Historie des weitergeleiteten Jobs zugeordnet. Beispiel:

helper.routeToGroup(23);
void routeToGroupByName(String groupName)

„Convenience“-Funktion, die die obige Funktion aufruft. Zuvor ermittelt sie die zu verwendende Id über den Namen der Gruppe. Ist der Name nicht eindeutig, so wird die Id der ersten ermittelten Gruppe verwendet. Beispiel:

helper.routeToGroupByName('Software-Service');
void routeToUser(long userId)

Mit dieser Funktion kann der aktuelle Job fest an einen Todo-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:

helper.routeToUser(99);
void routeToUserByUsername(String userName)

„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.

helper.routeToUserByUsername('max.muster');
void setOwner(long userId)

Mit dieser Funktion kann der Besitzer eines Jobs gewählt werden. Der Übergabeparameter ist die eindeutige Id des Besitzers. Beispiel:

helper.setOwner(27);
void setOwnerByUsername(String userName)

„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.

helper.setOwnerByUsername('max.muster');

Verändern der Zielzeit

Die folgenden Funktionen dienen dazu, die Zielzeit des aktuellen Jobs zu verändern.

void addSecondsToScheduledEndDate(int seconds)

Mit dieser Funktion werden „seconds“ Sekunden zur Zielzeit hinzuaddiert. Beispiel:

helper.addSecondsToScheduledEndDate(600);

void setDateForScheduledEndDate(int year, int month, int day, int hour, int minute, int second)

Mit dieser Funktion wird das durch die Übergabeparameter bestimmte Datum und die Tageszeit als Zielzeit für den aktuellen Job eingestellt. Beispiel:

helper.setDateForSchedukedEndDate(2010,12,31,10,0,0);

Zugriff auf Benutzer und Gruppen/Skills

TodoUser[] getUser()

Diese Funktion gibt alle im System registrierten Benutzer zurück. Beispiel:

var users = helper.getUser();
var i;
for(i=0; i<users.length; i++){
 println(users[i].username);   
}
TodoWorkGroup[] getWorkGroups()

Diese Funktion gibt alle im System registrierten Gruppen/Skills zurück. Beispiel:

var groups = helper.getWorkGroups();

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 Todo-Jobs bearbeitet werden.

TodoAttachment[] getAttachments()

Diese Funktion liefert alle in Anhänge des aktuellen Todo-Jobs zurück.

Beispiel für die Suche nach einem Dateianhang mit dem Namen Formular.pdf.:

for(ai=0;ai<helper.attachments.length;ai++){

var attachment = helper.attachments[ai];

println("Name: "+attachment.attachmentName);

if(attachment.attachmentName=="Formular.pdf"){

//...

}

}
void removeAllAttachments()

Diese Funktion entfernt alle Anhänge des aktuellen Todo-Jobs:

Beispiel für die Entfernung aller Dateianhänge von einer eingehenden E-Mail:

helper.removeAllAttachments();
 
void removeAttachment(String attachmentname)

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:

helper.removeAttachments(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.

String getLanguage(String input)
Beispiel für Abfrage der Sprache einer eingehenden E-Mail. Die variable coretext ist mit dem Textinhalt der E-Mail belegt.
var lang = helper.getLanguage(coretext)
if(lang==german){
//
} else ...
Object extractByRegExp(String input, String regExp, boolean multiMatch)

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];

// ...

}
String bytesToString(byte[] bytes, String charSetName)

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

Var s = helper.bytesToString(byteArray, UTF-8);

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.

class PdfFormField {

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

for(ai=0;ai<helper.attachments.length;ai++){

var attachment = helper.attachments[ai];

println("Name: "+attachment.attachmentName);

if(attachment.attachmentName=="Formular.pdf"){

var fields = helper.getPdfFormFields(attachment);

}

}
void createFormFromPdfAttachment(TodoAttachment pdfAttachment, String formName)

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

for(ai=0;ai<helper.attachments.length;ai++){

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

long createTask(
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.

var forms = new
 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.

void errorMessage(String message)

Beispiel: Anzeige einer Fehlernachricht.

helper.errorMessage(Es ist ein Fehler aufgetreten!);
void warningMessage(String message)

Beispiel: Anzeige einer Warnung

helper.warningMessage(Sie haben keinen Adressaten angegeben!);
void infoMessage(String message)

Anzeige einer Informationsnachricht.

Beispiel: Anzeigen einer Nachricht

helper.infoMessage (Vielen Dank!);

Status der Durchführung

static boolean executionWasSuccessfull(String result)

Dies ist eine „Convenience“-Funktion, die Auskunft darüber gibt, ob ein Skript erfolgreich ausgeführt wurde.

Weiter zu  Die Methoden des Message-Objektes...

     

Unterseiten