UI-Seiten

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 6 Minuten Lesedauer
  • UI-Seiten können zum Erstellen und Anzeigen von Formularen, Dialogfeldern, Listen und anderen UI-Komponenten verwendet werden.

    Verwenden Sie UI-Seiten als Widgets in Dashboards. Um die UI-Seiten zu finden, navigieren Sie zu System-UI > UI-Seitenan.

    Diese Funktionalität erfordert Kenntnisse von HTML oder Jelly. Sie können auch einfache AngularJS-Anwendungen mithilfe von UI-Seiten erstellen.

    Das UI-Seitenformular enthält die folgenden Felder:
    Tabelle : 1. UI-Seite
    Feld Beschreibung
    Name Name, über den die Seite über eine URL aufgerufen wird (darf keine Leerzeichen enthalten).
    Anwendung Zeigt den aktuellen Anwendungsbereich an.
    Beschreibung Die Beschreibung der UI-Seite und wofür sie verwendet wird.
    Direkt Aktivieren Sie dieses Kontrollkästchen für eine direkte UI-Seite [sys_ui_page]. Eine direkte UI-Seite enthält nicht die allgemeinen HTML-, CSS- und Skripts. Diese Einstellung erfordert das Hinzufügen von anwenderdefiniertem CSS und JavaScript, die auf der Seite verwendet werden sollen.
    HTML Hauptkomponente der Seite, in der Sie definieren, was gerendert wird, wenn die Seite angezeigt wird. Es kann entweder statische XHTML-Datei, dynamisch generierte Inhalte, die als Jelly definiert sind, oder Skripteinbindungen und UI-Makros aufrufen.
    Hinweis:
    Wenn GlideRecord/GlideDBQuery Wird anstelle von verwendet GlideRecordSecure , Wird eine Sicherheitsempfehlungsnachricht angezeigt.
    Client-Skript Schließen Sie clientseitiges JavaScript ein, das im Browser ausgeführt wird, z. B. Funktionen, die von Schaltflächen aufgerufen werden. Es soll jede erforderliche clientseitige Verarbeitung verarbeiten, z. B. das Festlegen des Fokus auf ein Feld oder andere interaktive DHTML-Funktionen, nachdem eine Seite geladen wurde.

    Client-Skripts für die UI-Seite werden im Browser in bereitgestellt <script/>Tag, damit der Inhalt auf ähnliche Weise im HTML-Feld definiert werden kann. Das Feld Clientskript kann stattdessen verwendet werden, um diese Skripts präzise zu definieren, um die Jelly- und HTML-Verwaltbarkeit beizubehalten.

    Verarbeitungs-Skript Skript, das auf dem Server ausgeführt wird, wenn die Seite gesendet wird. Dies ist nützlich, wenn auf Ihrer Seite ein Formular mit < definiert ist G:ui_Form/ > oder < G:Formular/ > Tags.
    Hinweis:
    Wenn GlideRecord/GlideDBQuery Wird anstelle von verwendet GlideRecordSecure , Wird eine Sicherheitsempfehlungsnachricht angezeigt.
    Veraltete anwenderdefinierte Prozessoren
    Hinweis:
    Diese Funktion ist veraltet. Obwohl vorhandene anwenderdefinierte Prozessoren veraltet sind, werden vorhandene anwenderdefinierte Prozessoren weiterhin unterstützt, ist das Erstellen neuer anwenderdefinierter Prozessoren veraltet. Verwenden Sie stattdessen Scripted REST APIs.
    Zugehörige Listen in der Formularansicht:
    Zugriffssteuerungen Zeigen Sie Zugriffssteuerungen für die UI-Seite an, und konfigurieren Sie sie. Weitere Informationen finden Sie unter Verwenden Sie Zugriffssteuerungen auf UI-Seiten.
    Versionen Zeigt alle Versionen der UI-Seite an. Verwenden Sie diese Liste, um Versionen zu vergleichen oder eine vorherige Version wiederherzustellen.

    Zugriffssteuerung

    Sie können eine UI-Seite sichern, indem Sie eine ACL mit den folgenden Parametern erstellen:

    • Typ : ui_page
    • Vorgang : Lesen
    • Name : Name der zu schützenden UI-Seite
    • Rolle : Anwenderrolle, die auf den Datensatz zugreifen darf
    Beim Speichern einer neuen UI-Seite werden Sie aufgefordert, eine Rolle für die Zugriffssteuerung zuzuweisen.Rollenauswahl für die Zugriffssteuerung für eine neue UI-Seite.
    Hinweis:
    In der Tabelle „Zugriffssteuerung“ wird ein Eintrag mit demselben Namen wie die UI-Seite erstellt.
    Detaillierte Informationen zum Erstellen einer ACL-Regel finden Sie unter Eine ACL-Regel erstellen.

    UI-Seiten mit hohem Risiko

    UI-Seiten werden mit einem der folgenden Attribute als hoch eingestuft:
    • Verwendet GlideRecord Oder GlideDBQuery Anstelle von GlideRecordSecure .
      Hinweis:
      Dies gilt für HTML Und Wird Verarbeitet Skriptfelder und nicht Client Skripts.
    • Es ist keine entsprechende ACL konfiguriert.
    • Gibt an, dass es sich um eine öffentliche UI-Seite handelt, und wird in eingegeben sys_public Datensatz.
    • Zeigt eine Nachricht an, die auf die UI-Seite mit hohem Risiko hinweist.
    • Für Instanzen mit glide.installation.developer Ist auf festgelegt Wahr .
    • Wenn die Ressource anwenderdefinierter Inhalt für eine Kundeninstanz ist.

    Zugriff auf die UI-Seite

    Jede UI-Seite hat eine URL, die aus dem Anwendungsbereich, dem Seitennamen und der Dateierweiterung .do besteht.

    Um zum Beispiel die Seite „glidewindow_example“ auf dem Demo-System anzuzeigen, navigieren Sie zu https://<Instanzname>.service-now.com/glidewindow_example.do. Wenn die Seite Teil einer benutzerdefinierten Anwendung mit dem Namen „example_app“ ist, navigieren Sie stattdessen zu https://<Instanzname>.service-now.com/x_example_app_glidewindow_example.do.

    Sie können einer URL auch zusätzliche Parameter hinzufügen, auf die im HTML-Abschnitt einer Seite als Jelly-Variablen zugegriffen werden kann. Das heißt, Argumente werden wie folgt an die URL angehängt: /My_Test_page.do?sysparm_verbose=wahr Erstellt aufgerufene Jelly-Variablen verboseAuf die wie folgt zugegriffen werden kann:
    <j2:if test="$[!empty(sysparm_verbose)]"> <span>show extra stuff </span> </j2:if >

    Ein allgemeines praktisches Beispiel hierfür ist das Abrufen eines Datenbank-Datensatzes zur Anzeige. Um eine Liste der Rollen eines Benutzers zu erstellen, übergeben Sie einen Parameter mit der sys_id des Benutzers. Rufen Sie die folgende UI-Seite auf, um eine Liste mit Rollen für diesen Benutzer mit Jelly-Code anzuzeigen:

    role_select.do?sysparm_user=5137153cc611227c000bbd1bd8cd2007
    <j:set var = "jvar_user_id" value = "${sysparm_user}" />
     
      <g:evaluate> var userRoles = new GlideRecord('sys_user_has_role');
        userRoles.addQuery('user','${jvar_user_id}');
        userRoles.query(); 
      </g:evaluate>
     
      <select id='select_role'> 
          <j:while test = "${userRoles.next()}"> 
              <option value = "${userRoles.sys_id}"> ${userRoles.role.name} </option> 
          </j:while> 
      </select>

    Eine Ausnahme ist jedoch der reservierte Variablenname „sys_id“. Diese Variable enthält immer die ID der UI-Seite selbst, unabhängig davon, was in der URL angegeben ist. Ein gängiger Ersatzvariablenname ist „sysparm_id“.

    Verwenden Sie keine URL-Parameter zum Laden von Client-Skripts in UI-Seiten. Das System wertet Skripts, die über URL-Parameter übergeben werden, nicht mehr aus. Wenn Ihre Implementierung von diesem Verhalten abhängt, können Sie dies Fügen Sie die Systemeigenschaft hinzu [glide.security.disable_ui_pages_sysparm_client_script] und legen Sie sie auf fest Falsch Dient zum vorübergehenden Zulassen der Auswertung von URL-Parametern, die Skripts auf UI-Seiten übergeben.

    Verwenden Sie Zugriffssteuerungen auf UI-Seiten

    Sehen Sie sich Zugriffssteuerungen direkt über das Formular „UI-Seite“ an, und fügen Sie beim Erstellen oder Bearbeiten eines Datensatzes einer UI-Seite eine rollenbasierte Zugriffssteuerung hinzu.

    Vorbereitungen

    Zugriffssteuerungen, die einer vorhandenen UI-Seite hinzugefügt wurden, können aufgerufen und bearbeitet werden, indem der Datensatz der UI-Seite unter zugehörigen Links geöffnet wird.

    Erforderliche Rolle: Security_admin und admin

    Prozedur

    1. Erhöhen Sie die Höhe auf Security_admin Rolle.
      Weitere Informationen zur Rollenerhöhung finden Sie unter Auf eine privilegierte Rolle hochstufen .
    2. Navigieren zu Alle > System-UI > UI-Seitenan.
    3. Wählen Sie Neu.
    4. Füllen Sie das Formular aus.
      Siehe UI-Seiten Für zusätzliche Informationen zu UI-Feldbeschreibungen.
    5. Wählen Sie Absenden oder Speichern.
      Ein Modal wird angezeigt, das Sie auffordert, eine rollenbasierte Zugriffssteuerung für die UI-Seite zu erstellen.Zeigt das modale Element der rollenbasierten Zugriffssteuerung an.
    6. Wählen Sie eine Rolle aus.
    7. Wählen Sie Aus OK Um die Rolle zuzuweisen.
      Sie kehren zur Liste der UI-Seiten zurück.
    Zugriffssteuerungen für eine vorhandene UI-Seite hinzufügen, bearbeiten oder anzeigen:
    1. Öffnen Sie eine UI-Seite aus der Tabelle „UI-Seiten“.
    2. Zeigen Sie an Zugriffssteuerungen Unter den zugehörigen Listen.
    3. Wählen Sie Aus Neu Um eine neue Zugriffssteuerung zu erstellen oder einen vorhandenen Eintrag zur Bearbeitung auszuwählen.
      Das Formular „Zugriffssteuerung“ wird geladen. UI-Seitendetails werden angezeigt.
    4. Füllen Sie das Formular aus, und weisen Sie der UI-Seite eine Rolle zu.
      Weitere Informationen zur Zugriffssteuerung finden Sie unter Erstellen Sie eine ACL-Regel .
    5. Wählen Sie Aus Übermitteln Für eine neue Zugriffssteuerung oder Aktualisieren Für Bearbeitungen.
      Hinweis:
      Pro UI-Seite können mehrere Zugriffssteuerungen vorhanden sein.

    Sichere UI-Seiten

    Zugriffssteuerungen und zugehörige Sicherheitsnachrichten werden auf UI-Seiten mit hohem Risiko integriert, um die Sicherheit zu erhöhen.

    Auf UI-Seiten mit hohem Risiko wird eine Informationsmeldung angezeigt, um den Kunden zu informieren, der UI-Seite eine rollenbasierte Zugriffssteuerung hinzuzufügen.

    Nachrichten zur Sicherheitsempfehlung der UI-Seite.

    Die Meldung wird unter den folgenden Bedingungen angezeigt:
    • Wenn eine ACL (Zugriffssteuerungsliste) fehlt
    • Wenn GlideRecord/GlideDBQuery Wird anstelle von verwendet GlideRecordSecure Entweder in HTML Oder Skript wird verarbeitet Abschnitte HTML- und Verarbeitungsskriptbeispiele.
    • Wenn die UI-Seite in als öffentlich konfiguriert ist sys_public
      Hinweis:
      Öffentliche UI-Seiten, die öffentlich sind oder verwenden GlideRecord Keine fehlende ACL-Warnung anzeigen.
    Siehe UI-Seiten Für Details zu UI-Seiten mit hohem Risiko.

    Bedingungen, die die Sicherheitsempfehlungen-Nachricht anzeigen

    Die Meldung wird unter den folgenden Bedingungen angezeigt:

    • Alle internen Instanzen verbergen/IJ, wo glide.installation.developer = Wahr .
    • Alle bereichsbezogenen UI-Seitenressourcen des Kunden.
    • Jede anwenderdefinierte UI-Seite, wenn glide.script.ui_page.customer_scoped.security_msgs_enabledEigenschaft ist auf festgelegt Wahr . (Der Standardwert ist Wahr ).

    Bedingungen, die die Sicherheitsempfehlungen-Nachricht nicht anzeigen

    Die Nachricht wird unter den folgenden Bedingungen nicht angezeigt:

    • UI-Seite ist öffentlich.
    • UI-Seite befindet sich in Global Umfang.
    • Die glide.script.ui_page.customer_scoped.security_msgs_enabledIst auf festgelegt Falsch .
    Hinweis:
    Um die rollenbasierte ACL-Erstellung zu deaktivieren, legen Sie fest glide.ui_page.enable_acl_create_uxEigenschaft bis Falsch . Die Eigenschaft ist auf festgelegt Wahr Standardmäßig.

    Verarbeitungsskripts für UI-Seiten

    Wenn Ihre UI-Seite ein Formular enthält (mit dem Tag <g:form>) können Sie das Formular absenden und das Verarbeitungsskript ausführen lassen.

    Das Verarbeitungsskript kann naturgemäß auf Felder im Formular zugreifen. Beispiel: Ihr Formular enthält das Feld application_sys_id:

    <g:ui_form>
      <p>Click OK to run the processing script.</p>
      <g:dialog_buttons_ok_cancel ok="return true" />
      <input type="hidden" name="application_sys_id" value="499836460a0a0b1700003e7ad950b5da" />
    </g:ui_form>
    Sie können mit auf das Feld zugreifen Application_sys_ID :
    var application = new GlideRecord('hr_application');
     application.get(application_sys_id);
     application.status = "Rejected";
     application.update();
     var urlOnStack = GlideSession.get().getStack().bottom();
     response.sendRedirect(urlOnStack);
    Wichtig:
    Das vorangehende Skript ist nur mit globalen Anwendungen verwendbar.

    Wenn Sie die UI-Seite für ein Dialogfeld verwenden, können Sie mit dem obigen Code auch die aktuellste URL im Stack referenzieren und die Antwort an diesen Speicherort senden. Dies ist nützlich, wenn Sie möchten, dass das Verarbeitungsskript des Dialogfelds etwas aktualisiert, und dann der Bildschirm, der das Dialogfeld aufgerufen hat, erneut angezeigt werden soll.