Aufbau Job-Skript
Zu Beginn des Skripts werden alle Standard-Skript-Bibliotheken importiert. Hierdurch kann das Skript auf alle Standard-Objekte und User-Exits zugreifen. Im unteren Beispiel wird von einem Invoice-Modul ausgegangen.
Im Anschluss wird ein Eskalations-Objekt erzeugt. Dem Objekt werden der Mappentyp und der Eskalations-Typ als Parameter mitgegeben. Über das Objekt wird automatisch eine Log-Datei unter "...\\Documents6\\DEXPRO\\Escalation\\..." erstellt.
Pro Modul und Eskalationstyp werden automatisch Unterordner erzeugt und für jeden Benutzer, an dem eine Eskalationsmail versendet werden soll, wird eine html-Datei angelegt. Damit die Anwender möglichst wenige Emails erhalten, werden die Eskalations-Informationen zunächst gesammelt. Via "FileResultset()" werden alle Rechnungen auf eine Eskalation geprüft.
Wie erwähnt wird pro ermittelten Anwender eine HTML-Datei auf dem Server erstellt. In jeder Datei wird initial der Kopf-Text geschrieben - gefolgt von einer tabellarischen Übersicht der eskalierten Belege. Am Ende wird nur eine Mail pro Benutzer und Eskalations-Typ versendet. Die Dateien bleiben nach der Verarbeitung liegen, damit die Verarbeitung für den Support nachvollziehbar bleibt. Die alten Dateien werden zu Beginn eines neuen Job-Laufs gelöscht.
Erst wenn alle Vorgänge im FileResultset geprüft wurden, werden die Eskalations-Mails generiert und versendet.
Beispiel:
/* Job-Beispiel für Eskalationen */
// #import "Invoice__ImportLib";
var filetype = "Invoice";
var esc = new Escalation(filetype, "MeinEskalationsTyp");
esc.cleanUpFilePath(); // alte Dateien löschen
context.setSuperMode(true);
var frs = new FileResultset(filetype, "", "");
for( var docFile=frs.first(); docFile; docFile=frs.next() ){
/* Die escalate()-Funktion ruft die folgenden UserExits auf:
* - Escalation.invoice_CheckEscalation()
* - Escalation.invoice_GetEscalationUserArray()
* - Escalation.invoice_CreateTableHead()
* - Escalation.invoice_CreateTableEntry()
*/
esc.escalate( docFile ); // Eskalation prüfen und Email-Html generieren
}
/* Beim Abschluss der Funktion wird das UserExit Escalation.invoice_CloseTable() aufgerufen.
* Im Anschluss werden die Mailsversendet.
*/
esc.closeFilesAndSendMails(); // HTML abschließen und Mails versenden
esc.Log.stop(); // Logging beenden
context.setSuperMode(false);
context.returnValue = esc.Error;
No Comments