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 "...\\Documents5\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 wird eine Text-HTML-Datei auf dem Server erstellt. In dieserjeder Datei werdenwird dieinitial Informationender zunächstKopf-Text gesammelt,geschrieben damit- amgefolgt von einer tabellarischen Übersicht der eskalierten Belege. Am Ende wird nur eine Mail versendetpro wird.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 RechnungenVorgänge im FileResultset geprüft wurdenwurden, werden die Eskalations-Mails generiert und versendet.
Beispiel:
/* Job-Beispiel für Eskalationen */
// #import "Invoice__ImportLib";
var filetype = "Invoice";
var esc = new Escalation("Invoice",filetype, "Action"MeinEskalationsTyp");
esc.cleanUpFilePath(); // alte Dateien löschen
context.setSuperMode(true);
// Zugriffsberechtigungen ignorieren
var frs = new FileResultset("Invoice",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;