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 HR-Plugin 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 Anzeigeregeln aus
Verwenden Sie die Systemeigenschaft glide.ui.view_rule.check_after_nav_handler, um die Reihenfolge zu steuern, in der Ansichtsregeln und Navigations-Handler angewendet werden. Legen Sie den Eigenschaftswert auf True fest, um Ansichtsregeln nach Navigations-Handler 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 Auswirkungen. 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 es werden Anzeigeregeln in derselben Tabelle angewendet, falls vorhanden.
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');
}
}