UI-Seiten
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. Navigieren Sie zu, um die UI-Seiten zu finden an.
Diese Funktionalität erfordert HTML- oder Jelly-Kenntnisse. Sie können auch einfache AngularJS-Anwendungen mithilfe von UI-Seiten erstellen.
| Feld | Beschreibung |
|---|---|
| Name | Name, der zum Aufrufen der Seite über eine URL verwendet 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 anwenderdefinierter CSS und JavaScript zur Verwendung auf der Seite. |
| 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 Aufrufskripteinbindungen und UI-Makros enthalten. 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 innerhalb von bereitgestellt <script/>Tag, damit der Inhalt ähnlich 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 übermittelt 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 veraltet, 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
UI-Seiten mit hohem Risiko
- Verwendet GlideRecord Oder GlideDBQuery Anstelle von GlideRecordSecure .Hinweis:Dies gilt für HTML Und Wird Verarbeitet Skriptfelder und nicht Client Skripts.
- Hat 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.
UI-Seitenzugriff
Jede UI-Seite hat eine URL, die aus dem Anwendungsbereich, dem Seitennamen und berechnet wird .Tun Dateierweiterung.
Um beispielsweise die Seite „glidewindow_example“ auf dem Demosystem anzuzeigen, navigieren Sie zu https://<instance name>.service-now.com/glidewindow_example.do . Wenn die Seite Teil einer anwenderdefinierten Anwendung namens example_App war, navigieren Sie stattdessen zu https://<instance name>.service-now.com/x_example_app_glidewindow_example.do .
<j2:if test="$[!empty(sysparm_verbose)]"> <span>show extra stuff </span> </j2:if >Ein häufiges praktisches Beispiel hierfür könnte das Abrufen eines Datenbankdatensatzes zur Anzeige sein. Um eine Liste der Rollen eines Anwenders zu erstellen, übergeben Sie einen Parameter mit der sys_ID des Anwenders Rufen Sie die folgende UI-Seite auf, um eine Liste der Rollen für diesen Anwender 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, auf die Sie achten sollten, ist 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 allgemeiner Ersatzvariablenname ist „sysparm_ID“
Verwenden Sie keine URL-Parameter, um Client-Skripts auf UI-Seiten zu laden. Das System wertet Skripts nicht mehr aus, die vom URL-Parameter übergeben werden. 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 UI-Seitenformular an, und fügen Sie beim Erstellen oder Bearbeiten eines UI-Seitendatensatzes 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
Sichere UI-Seiten
Zugriffssteuerungen und zugehörige Sicherheitsnachrichten sind auf UI-Seiten mit hohem Risiko integriert, um die Sicherheit zu erhöhen.
Auf UI-Seiten mit hohem Risiko wird eine Informationsnachricht angezeigt, um den Kunden zu informieren, der UI-Seite eine rollenbasierte Zugriffssteuerung hinzuzufügen.
- Wenn eine ACL (Zugriffssteuerungsliste) fehlt
- Wenn GlideRecord/GlideDBQuery Wird anstelle von verwendet GlideRecordSecure Entweder in HTML Oder Skript wird verarbeitet Abschnitte
- Wenn die UI-Seite als öffentlich in konfiguriert ist sys_public Hinweis:Öffentliche UI-Seiten, die öffentlich sind oder verwenden GlideRecord Keine fehlende ACL-Warnung anzeigen.
Bedingungen, die die Nachricht für Sicherheitsempfehlungen anzeigen
Die Nachricht wird unter den folgenden Bedingungen angezeigt:
- Alle internen Instanzen Eclipse/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 .
UI-Seiten-Prozessskripts
Wenn Ihre UI-Seite ein Formular enthält (verwendet <g:form> Tag) können Sie das Formular übermitteln und das Prozessskript ausführen lassen.
Das Verarbeitungsskript kann natürlich auf Felder im Formular zugreifen. Beispiel: Wenn Ihr Formular enthielt Application_sys_ID Feld:
<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>
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);Wenn Sie die UI-Seite für ein Dialogfeld verwenden, können Sie auch mit dem obigen Code auf die neueste URL im Stapel verweisen und die Antwort dann an diesen Speicherort senden. Dies ist nützlich, wenn Sie möchten, dass das Verarbeitungsskript des Dialogfelds etwas aktualisiert und dann den Bildschirm erneut angezeigt wird, der das Dialogfeld aufgerufen hat.