Navigations-Handler
Ein Navigations-Handler ist eine geskriptete Ansichtsregel und wird jedes Mal ausgeführt, wenn Daten aus der angegebenen Tabelle in der Formularansicht angefordert werden.
Das folgende Skript stammt aus dem Navigations-Handler, der im Plugin „HR“ enthalten ist. Das Skript erzwingt, dass für Datensätze aus der Tabelle im Feld Tabelle die ESS-Ansicht für Benutzer ohne Rollen und die Standardansicht für alle anderen Benutzer verwendet wird.
var now_GR = new GlideRecord(hr.TABLE_CASE);
if (gr.get(g_uri.get('sys_id'))) {
if (!gs.getUser().hasRoles())
g_uri.set('sysparm_view', 'ess');
else
g_uri.set('sysparm_view', '');
}
answer = g_uri.toString('hr_case.do');
Führen Sie Navigations-Handler vor oder nach den Ansichtsregeln aus
Verwenden Sie die Systemeigenschaft glide.ui.view_rule.check_after_nav_handler, um die Reihenfolge zu steuern, in der Ansichtsregeln und Navigationshandler angewendet werden. Legen Sie den Eigenschaftswert auf true fest, um Ansichtsregeln nach Navigations-Handlern zu verarbeiten. Wenn die Systemeigenschaft in Ihrer Instanz nicht vorhanden ist, hat der Navigations-Handler immer Vorrang.
Die Systemeigenschaft überschreibt den Navigations-Handler nur, wenn die geskriptete Funktion des Navigations-Handlers keine Antwort zurückgibt. Im obigen Beispielskript hat die Eigenschaft keine Auswirkung. Dies liegt daran, dass dieser Navigations-Handler immer eine Antwort zurückgibt, da sich die Antwortzeile außerhalb der if- Anweisung befindet.
Dieses Beispiel ist eine geänderte Version des vorherigen Skripts. In diesem Fall wird die Antwortzeile nur angezeigt, wenn der Benutzer keine Rollen hat. Wenn der Benutzer über Rollen verfügt, wird die Antwort nie erreicht, und Ansichtsregeln in derselben Tabelle werden ggf. angewendet.
var now_GR = new GlideRecord(hr.TABLE_CASE);
if (gr.get(g_url.get('sys_id'))) {
if (!gs.getUser().hasRoles()) {
g_url.set('sysparm_view'),'ess');
answer = g_url.toString('hr_case.do');
}
}