Versteckte UserExits Mappe
An den Mappentypen sind Skripte für bestimmte Aktionen hinterlegt. Einige der Skripte werden komplett unverschlüsselt als User-Exit-Skripte herausgegeben. Die verschlüsselten Skripte enthalten dafür User-Exits. Die verschlüsselten Skripte importieren auch die spezifischen Modul-Libs sowie die Modul-Costom-Libs.
Es bietet sich an die UserExits in den spezifischen User-Exit-Libs für das entsprechende Modul hinzuzufügen. Für Invoice wäre dies zum Beispiel die "Invoice__UserExit_CustomLib".
BeforeEdit
/** Das UserExit wird vor der Bearbeitung einer Mappe direkt zu Beginn im Skript aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @return {boolean} true / false.
**/
function ue_BeforeEdit_Start(){
//context.errorMessage = "...";
return true;
}
/** Das UserExit wird vor der Bearbeitung einer Mappe am Ende des Skripts aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @return {boolean} true / false.
**/
function ue_BeforeEdit_End(){
//context.errorMessage = "...";
return true;
}
OnSave
/** Das UserExit wird beim Speichern einer Mappe direkt zu Beginn im Skript aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @return {boolean} true / false.
**/
function ue_OnSave_Start(){
//context.errorMessage = "...";
return true;
}
/** Das UserExit wird beim Speichern einer Mappe am Ende des Skripts aufgerufen.
* Bei einem Fehler muss "context.errorMessage" in der Funktion gesetzt werden!
* @return {boolean} true / false.
**/
function ue_OnSave_End(){
//context.errorMessage = "...";
return true;
}
/** Es gibt ein extra UserExit für Gentable-Operationen.
* Der Vorteil hiervon ist, dass das Gentable nicht noch einmal ausgelesen und geschrieben werden muss.
* Das erfolgt automatisch im Anschluss.
* Bei einem Fehler muss in "this.Error" die Fehlermeldung geschrieben werden und "this.Error" muss auf false gesetzt werden!
* @return Kein Rückgabewert erforderlich!
**/
Gentable.prototype.ue_InvoiceOnSave = function(){
this.Error = "";
this.Result = true;
}
Gentable.prototype.ue_ProcurementOnSave = function(){
this.Error = "";
this.Result = true;
}
DecreaseFieldRights
/** Im DecreaseFieldRightsOnFileView-Skript wird beim Durchlauf der Felder für jedes Feld dieses User Exit ausgeführt
* @param {string} fieldName Aktueller technischer Feldname
* @param {number} e Nummer für enumval
* @param {Log} log Optionales Logging-Objekt (nur wenn das Logging aktiv ist)
**/
function ue_ChangeFieldRights(fieldName, e, log){
enumval[e] = "-rw";
}
Aufzählungs-Skripte Invoice
Auf einigen Aufzählungs-Feldern liegen Aufzählungs-Skripte und diese enthalten ebenfalls User-Exit-Funktionen zur Manipulation der Werte.
/** Bei der Neu-Erstellung des PropCaches für den Mandant können die Daten manipuliert werden (propCache.InvoicePrincipal).
* @param {*} principalObject Eingehendes Objekt
* @param {string} template Modul (Invoice/Mailroom/Procurement)
* @param {Log} log Logging Objekt
* @returns {*} Manipuliertes Objekt
**/
function ue_AdjustEnumPrincipals(principalObject, template, log){
return principalObject;
}
function ue_AdjustEnumPrincipalsPropCache_Invoice(principalObject, log){
return principalObject;
}
/** Am Ende des Skripts kann das enumval für den Mandanten manipuliert werden.
* @param {*} enumval Eingehendes enumval
* @returns {*} Manipuliertes enumval
**/
function ue_Adjust_Invoice_Enum_Principals(enumval){
return enumval;
}
/** Bei der Neu-Erstellung des PropCaches für den Buchungskreis können die Daten manipuliert werden (propCache.InvoicePrincipal).
* @param {*} companyCodeObject Eingehendes Objekt
* @param {string} template Modul (Invoice/Mailroom/Procurement)
* @param {Log} log Logging Objekt
* @returns {*} Manipuliertes Objekt
**/
function ue_AdjustEnumCompanyCodes(companyCodeObject, template, log){
return companyCodeObject;
}
function ue_AdjustEnumPrincipalsPropCache_Invoice(companyCodeObject, log){
return companyCodeObject;
}
/** Am Ende des Skripts kann das enumval für den Buchungskreis manipuliert werden.
* @param {*} enumval Eingehendes enumval
* @returns {*} Manipuliertes enumval
**/
function ue_Adjust_Invoice_Enum_CompanyCodes(enumval){
return enumval;
}