Skip to main content

Automatische Mailbenachrichtigung bei Fehlern in Aufträgen

Comments

11 comments

  • Zendesk API User
    Author: Peter_Jodeleit - 7/28/2010 14:06

    Zu "Leider ist es m.W. aktuell nicht möglich in diesem Schritt dynamisch den Betreff zu verändern.":

    Ich habe es selber noch nicht probiert, aber das Interface MailTask hat die Methode setSubject(String) mit der das möglich sein sollte:

                   $CMS_SET(#context.task.subject, "Mail for project " +  #context.project.name)$

    0
  • Zendesk API User
    Author: thomas_walter - 8/3/2010 6:19

    Vielen Dank für die Info. Das funktioniert so - ich habe das oben ergänzt

    0
  • Zendesk API User
    Author: mark_weigelt - 12/13/2010 14:03

    Ist es möglich, die ersten Warnings und Errors direkt in der E-Mail als Text auszugeben, so wie es bei FirstSpirit 3.1 der Fall war?

    Leider habe ich in der API nichts dazu gefunden.

    Das Entpacken der angefügten Zip-Dateien ist manchmal etwas mühsam ...

    0
  • Zendesk API User
    Author: hoebbel - 12/14/2010 8:52

    Ja, ist es.

    Mit diesem Skript (welches davon ausgeht, dass die Generierungsaktion die erste Aktion im Auftrag ist)

    **********************************************************

    import java.io.InputStreamReader;

    import java.io.BufferedReader;

    logfile = "";

    knoten = "";

    truncate = true;

    task = context.getTask();

    inputStream = task.getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getLogfile();

    context.logInfo("Groesse des Logfiles = " + inputStream.available());

    br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));

    for(i=0;i<200;) {

      zeile = br.readLine();

      if(zeile==null) {

        i = 200;

        truncate = false;

      } else if((zeile.length()>5) && (zeile.substring(0,5).equals("ERROR") || (zeile.substring(0,5).equals("WARN ")))) {

      i = i+1;

      logfile = logfile + zeile + "\n" + Knoten + "\n\n";

      } else if((zeile.length()>5) && (zeile.substring(0,5).equals("INFO ") && (zeile.contains("generating page reference")))) {

      Knoten = "Seitenreferenz: " + zeile.substring(zeile.indexOf("generating page reference")+26,zeile.length()) + "\n";

      }

    }

    if(truncate) {

      logfile = logfile + "\nLogfile was truncated after 200 lines";

    }

    context.setProperty("logfile", logfile);

    **********************************************************

    und dieser Mailaktion:

    **********************************************************

    Generierung startete um $CMS_VALUE(#context.task.scheduleEntry.runningEntries.get(0).startTime.format("H:mm:ss"))$ und dauerte $CMS_SET(duration,#context.task.scheduleEntry.runningEntries.get(0).state.taskResults.get(0).finishTime.milliseconds - #context.task.scheduleEntry.runningEntries.get(0).state.taskResults.get(0).startTime.milliseconds)$$CMS_IF(duration/3600000 > 0)$$CMS_VALUE(duration/3600000)$ h: $CMS_END_IF$$CMS_VALUE((duration%3600000)/60000)$ min: $CMS_VALUE(((duration%3600000)%60000)/1000)$ s: $CMS_VALUE(((duration%3600000)%60000)%1000)$ ms

    Es wurden insgesamt $CMS_VALUE(#context.getTask().getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getTaskInfoBean().getPageIndex())$ Seiten erzeugt.

    Hierbei kam es zu

    $CMS_VALUE(#context.getTask().getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getFatalErrorCount())$ FATAL,

    $CMS_VALUE(#context.getTask().getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getErrorCount() )$ ERROR,

    $CMS_VALUE(#context.getTask().getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getWarningCount() )$ WARN

    Meldungen.

    $CMS_IF(#context.getTask().getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getState().toString() == "SUCCESS")$

    Generierung erfolgreich

    $CMS_ELSE$

    Bei der Generierung gab es folgende Fehler:

    $CMS_VALUE(#context.getProperty("logfile"))$

    $CMS_END_IF$

    **********************************************************

    wird eine ähnliche Mail verschickt wie unter 3.1er Zeiten.

    0
  • Zendesk API User
    Author: mark_weigelt - 12/16/2010 13:09

    Vielen Dank. Das Skript funktioniert super.

    Eine kleine Korrektur. In der Mailaktion fehlte ein toString() bei der Überprüfung auf "SUCCESS":

    $CMS_IF(#context.getTask().getScheduleEntry().getRunningEntries().get(0).getState().getTaskResults().get(0).getState().toString() == "SUCCESS")$
    0
  • Zendesk API User
    Author: hoebbel - 12/23/2010 9:28

    Hab ich (ungeprüft :smileywink:) korrigiert.

    0
  • Zendesk API User
    Author: kraemer - 7/24/2013 14:02

    Das Skript ist super, danke. Ein Problem in meinem Fall ist aber, dass ich gerne noch das komplette Log der ersten Action an die Mail hängen würde. Dafür nutze ich die Funktion "Attach log files". Die hängt dann leider auch ein (nahezu leeres) Log des Skripts an.

    Gibts auch eine Möglichkeit, nur das Logfile der ersten Action anzuhängen?

    Danke & Gruss

    Michel

    0
  • Zendesk API User
    Author: Bettina - 12/12/2013 14:09

    Hallo zusammen,

    das klingt alles sehr verlockend gut und wäre für mich bestimmt auch sehr hilfreich. Mein Problem liegt nur darin, daß ich mich leider mit PHP zu wenig auskenne und obendrein ein FirstSpirit Newbie bin, so daß ich gar nicht weiß, wie und wo ich es einbinden könnte.

    Gibt es dazu auch eine Anleitung?

    Grüße

    Bettina

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 12/13/2013 9:57

    Das ist kein PHP, sondern Beanshell-Code. Beanshell ist ziemlich ähnlich zu Java. Da Java eine der verbreitetsten Programmiersprachen ist, finden sich im Netz auch Unmengen an Informationen dazu.

    0
  • Zendesk API User
    Author: TimoMeister - 5/27/2014 10:47

    Gibt es irgendwie die Möglichkeit die Email nur im Fehlerfall zu versenden?

    0
  • Zendesk API User
    Author: hoebbel - 5/27/2014 10:52

    Ja, einfach die Aktion, die die Mail verschicken soll, auf inaktiv setzen.

    Beispiel (dieser Skriptcode setzt alle folgenden Aktionen auf inaktiv. Sollte so angepasst werden, dass nur die Mail Aktion inaktiv wird :smileywink:)

    idx = context.taskIndex;

    tasks = context.tasks;

    for (int i = idx + 1; i < tasks.size(); i++) {

        tasks.get(i).setActive(false);

    }

    0

Please sign in to leave a comment.