Versteckte User-Exits
Einige Skripte enthalten User-Exit Funktionen und viele dieser Funktionen sind in den verschiedenen "UserExit"-Bibliotheken enthalten. Wenn neue Funktionen hinzukommen müssten diese Bibliotheken allerdings immer manuell um diese Funktionen erweitert werden. Daher werden neue hinzugefügte UserExit Funktionen nur aufgerufen, wenn Sie als Funktion existieren.
Die Funktionen können bei Bedarf zur "DEXPRO__UserExit_CustomLib" hinzugefügt werden.
/** Über dieses UserExit kann der Name der Log-Datei angepasst werden.
* @param {string} logName Aktueller Dateiname
* @param {string} fileId Aktuelle Mappen-ID
* @param {string} fileTemplate Mappentyp der aktuellen Mappe
* @since Invoice 0.95
* @returns {string} Neuer Name für die Log-Datei
**/
function ue_ChangeRulesLogName(logName, fileId, fileTemplate){
return logName + "_" + fileId + "_" + fileTemplate;
}
/** Über dieses UserExit kann der Log-Pfad zur Log-Datei angepasst werden.
* Achtung! Diese Funktion kann ggf. über den später ausgeführten UserExit ue_ChangeLogPath() nochmals überschrieben werden!
* @param {string} logFolder Aktueller Datei-Pfad
* @param {string} fileId Aktuelle Mappen-ID
* @param {string} fileTemplate Mappentyp der aktuellen Mappe
* @since Invoice 0.95
* @returns {string} Neuer Log-Pfad
**/
function ue_ChangeRulesLogFolder(logFolder, fileId, fileTemplate){
return logFolder + cFS + "WfRules"; // cFS ist bei Linux "/" und bei Windows "\\"
}
/** Über dieses UserExit kann der Zusatz zum Log-Dateinamen angepasst werden.
* In der Regel wird ein täglicher oder monatlicher Zeitstempel angefügt, damit die einzelnen Logdateien nicht zu groß werden.
* Der zurückgegebene String wird einfach zum Dateinamen angefügt, falls es nicht einer dieser speziellen Rückgabewerte ist:
* "year"/"yyyy"/"y" fügt das Aktuelle Jahr hinzu
* "month"/"mm"/"m" fügt Jahr und Monat hinzu
* "date"/"day"/"dd"/"d" fügt Jahr, Monat und Tag hinzu
* "timestamp"/"ts" fügt Jahr, Monat, Tag und Uhrzeit hinzu
* @param {string} logName Incoming log-name
* @param {string} fileId Aktuelle Mappen-ID
* @param {string} fileTemplate Mappentyp der aktuellen Mappe
* @since Invoice 0.95
* @returns {string} new log add
**/
function ue_ChangeRulesLogAdd(logName, fileId, fileTemplate){
return "";
}
/** Über dieses UserExit kann der Log-Pfad generell für alle internen Logs umgestellt werden!
* @param {string} path Aktueller Pfad.
* @since Invoice 0.95
* @return {string} Angepasster Pfad.
*/
function ue_ChangeLogPath(path){
if( context.scriptName==="abc" ){
return "E:\\Logs";
}
return path;
}
/** Das UserExit wird vor der Bearbeitung einer Mappe direkt zu Beginn im Skript "Invoice_DF_BeforeEdit" aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @since Invoice 0.94
* @return {boolean} true / false.
*/
function ue_BeforeEdit_Start(){
return true;
}
/** Das UserExit wird vor der Bearbeitung einer Mappe am Ende des Skripts "Invoice_DF_BeforeEdit" aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @since Invoice 0.94
* @return {boolean} true / false.
*/
function ue_BeforeEdit_End(){
return true;
}
/** Das UserExit wird vor der Weiterleitung aufgerufen.
* Das aufrufende Skript bei der Weiterleitung an einen Benutzer ist "DEXPRO_Action_ForwardUser" und
* das aufrufende Skript bei der Weiterleitung an eine Gruppe lautet "DEXPRO_Action_ForwardAP".
* das aufrufende Skript bei der Weiterleitung an eine Gruppe lautet "DEXPRO_Action_ForwardAP".
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @param {string} loginOrAccessProfile Login eines Benutzers bzw. Name des Zugriffsprofils (je nach aufrufendem Skript).
* @since Invoice 0.94
* @return {boolean} true / false.
*/
function ue_BeforeForwardFile(loginOrAccessProfile){
if( context.scriptName==="DEXPRO_Action_ForwardAP" ){
// ...
}
else if( context.scriptName==="DEXPRO_Action_ForwardUser" ){
// ...
}
return true;
}
/
** Das UserExit wird vor dem Zurücksenden im Skript "DEXPRO_Action_SendBack" aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @param {string} workflowAction Enthält die ausgewählte Workflow-Aktion.
* @since Invoice 0.94
* @return {boolean} true / false.
*/
function ue_BeforeSendBack(workflowAction){
return true;
}
/** Das UserExit wird beim Zurücksenden auf den ausgehenden Kontrollflüssen
* über das Skript "DEXPRO_WF_CheckSendBack" aufgerufen (ab Workflow-Version "WorkflowRules-3").
* Die Funktion greift demnach auch bei projektspezifischen UDA, welche diese Kontrollflüsse verwenden.
* über das Skript "DEXPRO_WF_CheckSendBack" aufgerufen (ab Workflow-Version "WorkflowRules-3").
* Die Funktion greift demnach auch bei projektspezifischen UDA, welche diese Kontrollflüsse verwenden.
* Bei einem Fehler muss die Fehlermeldung zurückgegeben werden - andernfalls ein Leerstring!
* @since Invoice 1.0.001
* @return {string} ""/ error-message.
*/
function ue_OnSendBack(){
return "";
}
/** Das UserExit wird bei Übernahme einer Mappe aus einem Gruppenkorb aufgerufen.
* Der Aufruf erfolgt über das Skript "DEXPRO_WF_CheckDataForwardUser".
* In dem Skript wird zuvor lediglich der aktuelle Benutzer in das Feld "ActionUser" geschrieben.
* In dem Skript wird zuvor lediglich der aktuelle Benutzer in das Feld "ActionUser" geschrieben.
* Bei einem Fehler muss die Fehlermeldung zurückgegeben werden - andernfalls ein Leerstring!
* @since Invoice 1.0.010
* @return {string} ""/ error-message.
*/
function ue_CheckDataForwardUser(){
return "";
}
/** Das UserExit wird beim Zurücklegen in den Gruppenkorb aufgerufen.
* Der Aufruf erfolgt über das Skript "DEXPRO_WF_CheckDataBackAccessProfile".
* Bei einem Fehler muss die Fehlermeldung zurückgegeben werden - andernfalls ein Leerstring!
* @since Invoice 1.0.010
* @return {string} ""/ error-message.
*/
function ue_CheckDataBackAccessProfile(){
return "";
}
/** Das UserExit wird beim Zurücklegen in den Gruppenkorb aufgerufen.
* Der Aufruf erfolgt über das Skript "DEXPRO_WF_CheckDataBackAccessProfile".
* Bei einem Fehler muss die Fehlermeldung zurückgegeben werden - andernfalls ein Leerstring!
* @since Invoice 1.0.010
* @return {string} ""/ error-message.
*/
NavigationReturnObject.prototype.ue_NavigationManipulation = function(){
this.Log += "[INFO] function ue_NavigationManipulation()\n";
if( this.SystemUser instanceof SystemUser ){
this.Log += "[INFO] valid system user\n";
var lastUsedFolder = this.SystemUser.getPrivateFolder("lastused");
if( lastUsedFolder ){
/* Dieses Beispiel öffnet den privaten Ordner 'Zuletzt benutzt' und zeigt die aktuelle Mappe an. */
this.ReturnType = "multipleAction";
this.ReturnVal = JSON.stringify( [
{ returnType : 'showFolder', returnValue : lastUsedFolder.id },
{ returnType : 'showFile', returnValue : this.DocFile.getid() }
] );
}
else{
this.Log += "[ERROR] invalid private folder(lastused)\n";
}
}
else{
this.Log += "[ERROR] invalid system user\n";
}
util.log(this.Log);
}