Skip to main content

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 in einer UserExit-Bibliothek (zum Beispiel "DEXPRO__UserExit_CustomLib") hinzugefügt werden.

 

Workflow User-Exits

xxxxxxxxxx
 
xxxxxxxxxx
 
xxxxxxxxxx
 
xxxxxxxxxx
 

 

 

Workflow-Regel User-Exits

xxxxxxxxxx
 
xxxxxxxxxx
 

Logging

 

xxxxxxxxxx
 
 /* @return * Das User-Exit wird bei den Workflow-Regeln beim Auslesen des Gentable aufgerufen.
 * Über die Funktion können Sonderzeichen in String-Werten ersetzt werden.
 * Die Funktion wird ausschließlich für String-Werte aufgerufen.
 * @param {string} fieldValue Feldwert
 * @since Invoice 1.0.300
 * @returns {string} Angepasster Pfad.
String-Wert
function
ue_FieldConfParseGentableStringValues(fieldValue){ "").replace(/\u001c/g,
1
 
/** Das UserExit wird am Ende des Skripts "DEXPRO_WF_Rules_BeforeUserAction" aufgerufen.  
* In dem Skript werden vor allem Zugriffsberechtigungen für die ermittelte Gruppe bzw. für den ermittelten Benutzer gesetzt. 
* Über die Workflow-Regeln wurde bereits der Benutzer bzw. die Gruppe zugeordnet. 
* Es handelt sich in dem Workflow-Schritt weder um eine technische Aktion noch wird die Aktion übersprungen! 
* Bei einem Split wird das Skript für jede einzelne Split-Mappe ausgeführt.
* Bei einem Fehler (return false) wird die Gruppe 'WorkflowError' angesteuert. 
* @since Invoice 0.94
* @returns {boolean} true / false. */
function ue_BeforeUserAction(){
return true;
}
/** Am Workflow-Ende kann eine Mappe gelöscht ("delete") oder versiegelt ("seal") werden
 * oder es passiert nichts mit dem Beleg ("" bzw. jeder beliebige andere String).
 * Die Information wird in der WEB-Konfiguration zur Workflow ID angegeben
 * und kann über dieses UserExit manipuliert werden.
 * @param {string} wfEndType Ermittelte Angabe über die WEB-Konfiguration.
 * @since Invoice 0.94
 * @return {string} "delete" / "seal" / "".
 */
function ue_ManipulateWorkflowEndType(wfEndType){
    return wfEndType;
}
/** 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 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.
 * 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.
 * 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 direkt nach der Ermittlung der Workflow-Regeln aufgerufen.
 * Der Aufruf erfolgt über das Skript "DEXPRO_WF_Rules_DeterminationUser".
* Über die Funktion können die ermittelten Regeln manipuliert werden. * Der String-Wert 'rulesJSONStr' wird im Anschluss in das Feld 'RulesJSON' geschrieben.
 * @param {string} rulesJSONStr Das Ergebnis der Workflow-Regeln als String.
 * @param {string}workflowid Aktuelle Workflow ID.
 * @param {string} actionid Aktuelle Aktion ID.
 * @param {string} techAction Angabe, ob es sich um eine technische Aktion handelt.
 * @since Invoice 0.94
 * @return {string} Angepasste Workflow-Regeln als JSON-string.
 **/
function ue_CheckWorkflowRules(rulesJSONStr, workflowid, actionid, techAction){
    var rulesObj = JSON.parse(rulesJSONStr);
    /** An dieser Stelle kann das Objekt manipuliert werden.... **/
    return JSON.stringify(rulesObj);
}
/** Nach einer Weiterleitung über eine benutzerdefinierte Aktion muss die Anzeige nach der Weiterleitung über das Skript erfolgen.
 * Die Standard-Navigationen wie "Mappe beibehalten" oder "Nächste Mappe" oder "Zum Eingangsordner" wurden über das
 * Objekt "NavigationReturnObjekt" umgesetzt. Die Ergebnisse können im Nachgang manipuliert werden.
 * Hierzu kann das Objekt via 'prototype' um die nachfolgende Funktion erweitert werden.
 * Am Objekt können die Werte "ReturnType" und "ReturnVal" wie im unteren Beispiel neu ermittelt werden.
 * @property {string}ReturnType Wird als context.returnType gesetzt
 * @property {*}ReturnType Wird als return-Wert verwendet
 * @property {SystemUser}SystemUser Der ausführende Benutzer als SystemUser-Objekt
 * @property {DocFile}DocFile Die aktuelle Mappe
 * @property {string}Navigation Enthält die Navigation ("keepfile" / "next" / ...)
 * @property {string}ActionID Enthält die Aktions ID der Mappe (vor der Weiterleitung)
 * @property {string}WorkflowID Enthält die Workflow ID der Mappe (vor der Weiterleitung)
 * @property {string}ForwardAction Info zur Weiterleitung ("FinishAction" / "SendBack" / "Forward" / ...)
 * @since Invoice 1.0.010
 */
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);
}