Skip to main content

Versteckte User-Exits 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).
 * Feld: Principal
 * @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.
 * Feld: Principal
 * @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).
 * Feld: CompanyCode
 * @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.
 * Feld: CompanyCode
 * @param {*} enumval Eingehendes enumval
 * @returns {*} Manipuliertes enumval
**/
function ue_Adjust_Invoice_Enum_CompanyCodes(enumval){
	return enumval;
}

/** Über die Funktion können neben Rechnung und Gutschrift weitere Rechnungstypen definiert werden.
 * Feld: InvoiceCreditVoucher
 * Hierfür kann direkt auf das enumal zugegriffen werden.
 * @returns {*} Kein Rückgabewert!
**/
function ue_AddInvoiceTypes(){
	enumval.push("myinvtype;pf:MyInvoiceType");
}

/** Über die Funktion können zusätzliche Zahlstatus definiert werden.
 * Feld: PaymentStatus
 * Hierfür kann direkt auf das enumal zugegriffen werden.
 * @returns {*} Kein Rückgabewert!
**/
function ue_AddPaymentStatus(){
	enumval.push("mypaytype;pf:MyPaymentType");
}

Beim Aussteuern

/** Das User-Exit wird direkt zu Beginn im Skript "DEXPRO_Action_Disqualify" ausgeführt.
 * @param {Log} log Logging-Objekt
 * @param {string} comment Pflicht-Kommentar des Benutzers
 * @returns {boolean} true / false (Ausgabe Fehlermeldung)
**/
function ue_Disqualify_Start(log, comment){
    // context.errorMessage = "";
	return true;
}

/** Das User-Exit archiviert den Vorgang.
 * @param {string} type Bei ausgesteuerten Belegen immer "Disqualify"
 * @param {DocFile} docFile Auszusteuerndes DocFile-Objekt
 * @param {Log} log Logging-Objekt
 * @returns {boolean} true (Archiviert) / false (Ausgabe Fehlermeldung)
**/
function ue_Archiving(type, docFile, log){
    // context.errorMessage = "";
	return true;
}

/** Das User-Exit wird nach erfolgreicher Archivierung ausgeführt.
 * @param {Log} log Logging-Objekt
 * @param {string} comment Pflicht-Kommentar des Benutzers
 * @returns {boolean} true / false (Ausgabe Fehlermeldung)
**/
function ue_Disqualify_AfterArchiving(log, comment){
    // context.errorMessage = "";
	return true;
}

/** Das User-Exit wird nach erfolgreichem Löschen der Mappe ausgeführt.
 * @param {Log} log Logging-Objekt
 * @param {string} comment Pflicht-Kommentar des Benutzers
 * @returns {boolean} true / false (Ausgabe Fehlermeldung)
**/
function ue_Disqualify_AfterDelete(log, comment){
    // context.errorMessage = "";
	return true;
}