JavaScript im i-net HelpDesk

JavaScripte im i-net HelpDesk müssen die Funktion function checkData(table, out) {} implementieren, die als Einsprungpunkt dient. Für den Status-Wechsel-Trigger muss eine weitere Funktion function getStatus() {} geschrieben werden.

In diesen beiden Funktionen kann die Hauptlogik des Scripts untergebracht werden. Natürlich ist es möglich, dass weitere Funktionen für eine saubere Strukturierung implementiert und verwendet werden. Die beiden vorgenannten Funktionen sind jedoch als Einsprungpunkte wichtig. Dies wird in einigen Beispielen skizziert.

Die Methode checkData bekommt zwei Parameter übergeben:

Hinweis: Werte, die in die Variable table zurückgeschrieben werden, müssen als String im Format "<Wert>" oder '<Wert>' geschrieben werden.

/**
 * Einsprungpunkt in das JavaScript um Logik auszufuehren.
 * Es gibt einen Parameter und keinen Return-Wert
 * 
 * @param table java.util.Hashtable<String, String> Tabelle mit Feldwerten,
 *        die gelesen und/oder gesetzt werden koennen.
 *        Wichtig: in der der `table` gibt es keine Eintraege mit `null` Werten
 * @param out java.io.PrintStream Log-Stream auf den geschrieben werden kann
 */
function checkData(table, out) {
    table.get("<Feld>"); // Lesen eines Wertes
    table.put("<Feld>", "<Wert>"); // Schreiben eines Wertes
    out.println("<Meldung im Server Log>");
}
 
/**
 * Einsprungpunkt fuer 'Status im Auftrag wechselt'. Liefert eine Liste der Status zurueck,
 * bei denen der Trigger ausgefuehrt werden soll. 
 *
 * @return Array mit einem Zahlwert, gleichbedeutend mit dem Tickt Status
 */
function getStatus() {
    // Trigger wird nur bei Aenderung auf diesen Wert angewendet
    return [<Status>];
 
    // Liste an Status-Werten ist moeglich
    // return [<Status 1>, <Status 2>, <Status 3>];
}

Kontrolle auf Verfügbarkeit von Feldern

Zur Überprüfung der gesetzten Werte in der Variablen table kann wie folgt vorgegangen werden:

/**
 * Einsprungpunkt in das JavaScript um Logik auszufuehren.
 * 
 * @param table java.util.Hashtable<String, String> Tabelle mit Feldwerten,
 *        die gelesen und/oder gesetzt werden koennen.
 * @param out java.io.PrintStream Log-Stream auf den geschrieben werden kann
 */
function checkData(table, out) {
    // ...
    // Hier steht weitere oder bereits bestehende Logik
    // ...
 
    // Zusaetzliche Funktion um die aktuellen Felder auszugeben
    print_Parameters(table, out);
}
 
/**
 * Funktion zur Ausgabe aller Werte in der Tabelle.
 * Die Werte werden alphabetisch nach Schluessel sortiert ausgegeben.
 * 
 * @param table java.util.Hashtable<String, String> Tabelle mit Feldwerten,
 *        die gelesen und/oder gesetzt werden koennen.
 * @param out java.io.PrintStream Log-Stream auf den geschrieben werden kann
 */
function print_Parameters(table, out){
    var tableKeys = java.util.Collections.list(table.keys());
    java.util.Collections.sort(tableKeys); // alphabetische Ausgabe
    var it = tableKeys.iterator();
 
    while( it.hasNext() ){
        var key = it.next();
        out.println("'" + key + "' -> '" + table.get(key) + "'");
    }
}