OnSearchScript
Ein Wirtschaftsprüfer soll nur Zugriff auf Belege zu einem fest definierten Zeitraum erhalten. In den globalen Einstellungen gibt es hierfür die Eigenschaft "OnSearchScript". Hierüber kann die Suche manipuliert werden.
Bei einem Kunden sollte die Volltextsuche deaktiviert werden und bei der erweiterten Suche soll bei Rechnungen soll das Belegdatum automatisch eingeschränkt werden.
Ein Beispiel-Skript kann wie folgt aufgebaut werden:
/** User exit on search.
* set: DlcGlobalOptions OnSearchScript
* @author DEXPRO MM
* @since 10.08.2022
**/
const user = context.getSystemUser();
var params = context.getQueryParams(); //DocQueryParams
util.out(context.scriptName + " -- " + context.event + " -- " + user.login);
util.out("requestType: " + params.requestType);
/* Nur bei Volltextsuche */
if( params.requestType===1 ){
const count = params.searchFieldCount;
if(count===1){
context.errorMessage = "Bitte verwenden Sie immer die erweiterte Suche mit Datumsfilter!";
context.returnValue = -1; // Hinweis
//return -142; // Fehler
}
var cnt = 0;
for( ; cnt<count; ++cnt ){
var searchField = params.getSearchField(cnt, false);
if( searchField.name==="InvoiceDate" ){
util.out("<Searchfield " + (cnt+1) + ">");
var filter = searchField.name + searchField.compOp + searchField.valueExpr;
util.out("Condition: " + filter);
util.out("fieldType = " + searchField.type);
util.out("label = " + searchField.label);
}
else{
//util.out("searchField.name:"+searchField.name);
}
}
}