Navigations-Handler

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Ein Navigations-Handler ist eine geskriptete Ansichtsregel und wird jedes Mal ausgeführt, wenn Daten aus der angegebenen Tabelle in der Formularansicht angefordert werden.

    Erstellen Sie einen Navigations-Handler

    Die Tabelle „Navigations-Handler“ [sys_navigator] enthält die Navigations-Handler in Ihrer Instanz. Greifen Sie auf diese Tabelle zu, indem Sie im Filternavigator sys_navigator.list eingeben. Navigations-Handler-Datensätze enthalten ein Tabellenfeld, um anzugeben, für welche Tabelle der Navigations-Handler gilt, und ein Skript -Feld, das die Regel für die geskriptete Ansicht enthält.

    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.

    Führen Sie die folgenden Schritte aus, um zu erzwingen, dass das Navigations-Handler-Skript im vorherigen Beispiel die Ansichtsregeln berücksichtigt:
    1. Erstellen Sie die Systemeigenschaft glide.ui.view_rule.check_after_nav_handler.
    2. Legen Sie den Wert der Eigenschaft auf true fest.
    3. Aktualisieren Sie das Navigations-Handler-Skript so, dass nur dann eine Antwort zurückgegeben wird, wenn die Ansicht geändert oder erzwungen werden muss.

    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');  
         }  
    }