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. Um die UI-Seiten zu finden, navigieren Sie zu .
Diese Funktionalität erfordert Kenntnisse von HTML oder Jelly. Sie können auch einfache AngularJS-Anwendungen mit UI-Seiten erstellen.
| 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 gängigen HTML-, CSS- und Skripts. Diese Einstellung erfordert das Hinzufügen von anwenderdefiniertem CSS und JavaScript zur Verwendung auf der Seite. |
| HTML | Hauptkomponente der Seite, in der Sie definieren, was gerendert wird, wenn die Seite angezeigt wird. Sie kann entweder statische XHTML-Inhalte, dynamisch generierte Inhalte, die als Jelly-Inhalt definiert sind, oder Aufrufskripteinbindungen und UI-Makros enthalten. Hinweis: Wenn GlideRecord/GlideDBQuery anstelle von GlideRecordSecureverwendet wird, wird eine Sicherheitsempfehlungsmeldung angezeigt. |
| Client-Skript | Fügen Sie clientseitiges JavaScript hinzu, das im Browser ausgeführt wird, z. B. Funktionen, die von Schaltflächen aufgerufen werden. Es soll alle Client-seitigen Verarbeitungsvorgänge verarbeiten, z. B. das Setzen des Fokus auf ein Feld oder andere interaktive DHTML-Funktionen, nachdem eine Seite geladen wurde. Client-Skripts für die UI-Seite werden innerhalb eines <script/> -Tags im Browser bereitgestellt, sodass der Inhalt ebenfalls im HTML-Feld definiert werden kann. Das Feld „Client-Skript“ kann stattdessen verwendet werden, um diese Skripts genau zu definieren, um die Verwaltbarkeit von Jelly und HTML 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 den Tags <g:ui_form/> oder <g:form/> definiert ist. Hinweis: Wenn GlideRecord/GlideDBQuery anstelle von GlideRecordSecureverwendet wird, wird eine Sicherheitsempfehlungsmeldung angezeigt. |
| obsolete-custom-Prozessoren | Hinweis: Diese Funktion ist veraltet. Benutzerdefinierte Prozessoren in Vorgängerversionen werden zwar weiterhin unterstützt, das Erstellen neuer benutzerdefinierter Prozessoren ist jedoch 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 für 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 Verarbeitungsskriptfelder und nicht für Client -Skripts.
- Für ist keine entsprechende ACL konfiguriert.
- Gibt an, dass es sich um eine öffentliche UI-Seite handelt, und wird im Datensatz „sys_public“ eingegeben.
- Zeigt eine Meldung an, die auf die UI-Seite mit hohem Risiko hinweist.
- Für Instanzen, bei denen glide.installation.developer auf truefestgelegt ist.
- Gibt an, ob es sich bei der Ressource um angepassten Inhalt für eine Kundeninstanz handelt.
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.
<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 die Systemeigenschaft [glide.security.disable_ui_pages_sysparm_client_script] hinzufügen und auf „false“ festlegen, um vorübergehend die Auswertung von URL-Parametern zuzulassen, die Skripts in UI-Seiten übergeben.
Verwenden Sie Zugriffssteuerungen für UI-Seiten
Sehen Sie sich die Zugriffssteuerungen direkt im Formular „UI-Seite“ an, und fügen Sie eine rollenbasierte Zugriffssteuerung hinzu, wenn Sie einen UI-Seitendatensatz erstellen oder bearbeiten.
Vorbereitungen
Zugriffssteuerungen, die einer vorhandenen UI-Seite hinzugefügt wurden, können durch Öffnen des UI-Seitendatensatzes unter den zugehörigen Links aufgerufen und bearbeitet werden.
Erforderliche Rolle: security_admin und admin
Prozedur
Sichere UI-Seiten
Zugriffssteuerungen und zugehörige Sicherheitsmeldungen sind 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, dass er der UI-Seite eine rollenbasierte Zugriffssteuerung hinzufügen soll.
- Ob eine ACL (Zugriffssteuerungsliste) fehlt
- Wenn GlideRecord/GlideDBQuery anstelle von GlideRecordSecure entweder in den HTML- oder Verarbeitungsskriptabschnitten
- Wenn die UI-Seite in sys_publicals öffentlich konfiguriert ist Hinweis:Öffentliche UI-Seiten, die öffentlich sind oder GlideRecord verwenden, zeigen keine fehlende ACL-Warnung an.
Bedingungen, unter denen die Sicherheitsempfehlungsnachricht angezeigt wird
Die Nachricht wird unter den folgenden Bedingungen angezeigt:
- Alle internen Instanzen von eclise/IJ, bei denen glide.installation.developer=true ist.
- Alle bereichsbezogenen UI-Seitenressourcen des Kunden.
- Jede anwenderdefinierte UI-Seite, wenn die Eigenschaft glide.script.ui_page.customer_scoped.security_msgs_enabled auf „true“festgelegt ist. (Der Standardwert ist true).
Bedingungen, unter denen die Sicherheitsempfehlungsmeldung nicht angezeigt wird
Die Nachricht wird unter den folgenden Bedingungen nicht angezeigt:
- UI-Seite ist öffentlich.
- UI-Seite befindet sich im globalen Bereich.
- glide.script.ui_page.customer_scoped.security_msgs_enabled ist auf „false“festgelegt.
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>
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 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.