# Eskalation Funktionsbibliothek und User-Exits In diesem Kapitel wird der Aufbau und die generelle technische Abarbeitung der Eskalationen beschrieben. # "Escalation()"-Objekt Für die Eskalation werden unter anderem die folgenden Portal-Skript-Bibliotheken benötigt: - **DEXPRO\_\_EscalationLib** - **DEXPRO\_\_UserExit\_Escalation // Invoice** - **DEXPRO\_\_UserExit\_Escalation\_Mailroom** - **DEXPRO\_\_UserExit\_Escalation\_Procurement** Für den eigentlichen Eskalations-Aufruf wird ein Portal-Skript als Job eingeplant. Im Job-Skript wird ein "Escalation()" Objekt erstellt. Dem Objekt muss der Mappentyp-Name als erster Parameter mitgegeben werden. Als zweiter Parameter wird der Eskalations-Typ mitgegeben. Im Standard sind die Typen "Deadline", "Action" und "PPC" definiert - es können aber beliebige Typen projektspezifisch definiert werden. Das folgende Skript zeigt ein Beispiel für einen "Deadline"-Eskalations-Job. ```JavaScript // #import "Invoice__ImportLib" var esc = new Escalation("Invoice", "Deadline"); if( esc.Result===true ){ // Arbeits-Ordner "aufräumen" esc.cleanUpFilePath(); // Alle Rechnungs-Mappen iterieren und Zugriffsberechtigungen ignorieren context.setSuperMode(true); var frs = new FileResultset("Invoice", "", ""); for( var docFile=frs.first(); docFile; docFile=frs.next() ){ // Eskalations-Dateien pro Benutzer erstellen // -> esc.invoice_checkEscalation(docFile) // -> esc.invoice_getEscalationUserArray(docFile) // -> esc.invoice_addBodyContent // -> esc.invoice_createTableHead(); // -> esc.invoice_createTableEntry(); esc.escalate(docFile); } // Versenden der Eskalations-Mails // -> esc.invoice_closeTable(su) // -> esc.invoice_sendMail(su, html) esc.closeFilesAndSendMails(); esc.Log.stop(); context.setSuperMode(false); if( esc.Result===true ){ return 1; } } return esc.Error; ``` Das "**Escalation**"-Objekt erhält 2 Parameter und diverse Property.
**@param** | **{string}** | **template** | **Name des aufrufenden Mappentypen ("Invoice", "Mailroom")** |
**@param** | **{string}** | **escType** | **Eskalations-Typ (Standard: "Deadline", "Action", "PPC")** |
**@property** | **{string}** | **Error** | **Fehlermeldung** |
**@property** | **{boolean}** | **Result** | **Ergebnis (true/false)** |
**@property** | **{string}** | **Template** | **Name des aufrufenden Mappentypen ("Invoice", "Mailroom")** |
**@property** | **{string}** | **EscalationType** | **Eskalations-Typ (Standard: "Deadline", "Action", "PPC")** |
**@property** | **{string}** | **LogPath** | **Pfad für die Ablage der Logdatei** |
**@property** | **{string}** | **Path** | **Arbeits-Pfad, in dem pro Benutzer eine Datei mit den Informationen der eMail abgelegt wird.** |
**@property** | **{string}** | **LogInt** | **Intervall für den Zeitpunkt, zu dem eine neue Logdatei erstellt wird ("timestamp", "date" (Standard), "month", "year").** |
**@property** | **{Log}** | **Log** | **new Log(context.scriptName, this.LogPath, this.LogInt)** |