Clientseitige Skriptanwendungsfälle
Anwendungsfälle für clientseitige Skripts umfassen das Anzeigen von Feldnachrichten, Ändern der Formularfarben, Hinzufügen von Feldern und Erstellen von UI-Weiterleitungsaktionen.
Feld zum Servicekatalog-Checkout hinzufügen
Dies ist ein Beispiel für das Hinzufügen von Unternehmen Feld zum Bezahlen unter dem Angefordert für Feld mit nicht-Einkaufswagen-Layout-Makros, d. h. glide.sc.use_cart_layoutsIst Falsch .
Vorbereitungen
Erforderliche Rolle: admin
Warum und wann dieser Vorgang ausgeführt wird
Dieses Feld übergibt einen angegebenen Wert an Unternehmen Feld der Servicekatalog-Anforderung.
In diesem Beispiel werden die folgenden Annahmen getroffen:
- Die Instanz, die den zweistufigen Checkout verwendet. Wenn der zweistufige Checkout nicht aktiviert ist, aktivieren Sie ihn, bevor Sie beginnen. Weitere Informationen finden Sie unter Service Catalog checkout models.
- Dieses Beispiel füllt das Feld Unternehmen im Formular einer Servicekatalog-Anforderung. Wenn das Feld nicht im Formular angezeigt wird, konfigurieren Sie das Formular, bevor Sie beginnen. Anweisungen dazu finden Sie unter Personalize a form.
Prozedur
Ergebnisse
Funktionalität für automatisches Ausfüllen hinzufügen
Die Funktionalität für automatisches Ausfüllen wird auch als Incident-Vorlage, automatische Zuweisung, Schnellanruf, Anrufskript oder automatische Auffüllung bezeichnet.
- Erstellen Sie eine Suchtabelle.
- Füllen Sie das Schlüsselfeld aus, Unterkategorie .
- Füllen Sie das automatisch ausgefüllte Feld aus. Kurzbeschreibung .
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading) { return; }
var newrec = gel('sys_row');
//Check if new record
if (newrec.value == -1) {
var lookup = new GlideRecord('u_short_desc_lookup');
lookup.addQuery('u_subcategory', g_form.getValue('subcategory'));
lookup.query();
var temp; //temp var - reusable
if (lookup.next()) {
temp = lookup.u_short_description;
if (null != temp) { //Set the form value from lookup if there is a lookup value
g_form.setValue('short_description', temp); }
else {
g_form.setValue('short_description', "" ); } }
else {
//If a lookup record does not exist based on lookup.addQuery
//Then set to UNDEFINED or NULL depending on type
g_form.setValue('short_description', ""); } }
}Sie können viele Felder ausfüllen oder Anrufskriptfragen in abrufen Kommentare Feld, damit Callcenter-Mitarbeiter gute Informationen sammeln und sie an einen Techniker weitergeben können.
- Festlegen eines Felds auf Passwortzurücksetzung
-
Die Suchtabelle enthält einen Datensatz mit den folgenden Einstellungen für Schlüssel und automatisches Ausfüllen:
- Unterkategorie = Passwort
- Kurzbeschreibung = Passwortzurücksetzung
Formularfarbe bei Statusänderung ändern
Ändert die Farbe eines Formularfelds bei einer Statusänderung. Das Skript kann leicht geändert werden, um alle Eigenschaften beliebiger Objekte auf der Seite anzupassen, auf die über das HTML-DOM zugegriffen werden kann.
Name: Formularfarbe bei Statusänderung ändern
Typ : Client-Skript
Beschreibung: Ändert die Farbe eines Formularfelds bei einer Statusänderung. Das Skript kann leicht geändert werden, um alle Eigenschaften beliebiger Objekte auf der Seite anzupassen, auf die über das HTML-DOM zugegriffen werden kann.
function onChange(control, oldValue, newValue, isLoading) {
var elementID = gel("incident.priority");
switch(newValue) {
case "1": elementID.style.backgroundColor = "red"; break;
case "2": elementID.style.backgroundColor = "tomato"; break;
case "3": elementID.style.backgroundColor = "orange"; break;
case "4": elementID.style.backgroundColor = "yellow"; break;
case "5": elementID.style.backgroundColor = "green"; break;
default: elementID.style.backgroundColor = "white"; break; } }UI-Weiterleitungsaktion erstellen
Mit dieser Lösung können Sie einen Datensatz beim Service Desk erstellen, ohne zu wissen, ob es sich um einen Incident oder ein Anforderungselement handelt. Der Service Desk kann den Datensatz dann an die entsprechende Tabelle weiterleiten.
Vorbereitungen
Erforderliche Rolle: Administrator
Prozedur
Feldmeldungen anzeigen
Anstatt die JavaScript-Methode alert() zu verwenden, können Sie einen Fehler im Formular selbst anzeigen, was übersichtlicher ist. Die Methoden showFieldMsg() und hideFieldMsg() können verwendet werden, um eine Meldung direkt unter dem Feld selbst anzuzeigen.
showFieldMsg und hideFieldMsg sind Methoden, die mit dem g_form-Objekt verwendet werden können.
Diese Methoden werden verwendet, um die Formularansicht von Datensätzen (Incident-, Problem- und Change-Formulare) zu ändern. Diese Methoden sind möglicherweise auch in anderen Client-Skripts verfügbar, müssen jedoch getestet werden, um festzustellen, ob sie wie erwartet funktionieren.
Wenn für ein Formular beim Laden eine Feldmeldung ausgegeben wird, wird ein Bildlauf im Formular durchgeführt, um sicherzustellen, dass die Feldmeldung sichtbar ist. So wird sichergestellt, dass Benutzer eine Feldmeldung nicht übersehen, weil sie außerhalb des Bildschirms war.
Die globale Eigenschaft glide.ui.scroll_to_message_field steuert den automatischen Bildlauf für Meldungen, wenn sich das Formularfeld außerhalb des Bildschirms befindet (im Formular wird ein Bildlauf zum Steuerelement oder Feld durchgeführt).
| Methodendetail | Parameter | Beispiel |
|---|---|---|
| showFieldMsg(imput, message, type, [scrollForm]) |
|
Fehlermeldung Informationsnachricht |
| hideFieldMsg(input) |
|
Meldungen entfernen
|
Legacy-Unterstützung
Die ShowErrorBox() Und AusblendenErrorBox() Methoden werden nicht empfohlen.
Client- und Servercode in einer UI-Aktion verwenden
Sie können ein Skript verwenden, um Eingaben zu validieren, wenn Sie auf der Client-Seite auf eine UI-Aktion klicken, bevor Sie den Datensatz auf der Serverseite aktualisieren. Der Anwender muss nicht zweimal auf die Schaltfläche klicken, um die erforderlichen Felder zu validieren und den Datensatz zu aktualisieren.
Das Skript ruft die Client-Funktion zur clientseitigen Validierung auf, und die UI-Aktion schließt die Aufgabe ab, wenn sie bestanden wird. Die Code, der ohne Klick ausgeführt wird Die Anweisung stellt sicher, dass die serverseitige Funktion erst ausgeführt wird, wenn die Clientfunktion nicht mehr ausgeführt wird. Wenn erfolgreich, wird die serverseitige Funktion ausgeführt und aktualisiert den Datensatz.
// Client-side onclick function
function resolveIncident() {
// Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
g_form.setValue('incident_state', 6);
g_form.setValue('state', 6);
g_form.setValue('resolved_by', g_user.userID);
// Call the UI action and skip the 'onclick' function
gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
}
// Code that runs without 'onclick'
// Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
serverResolve();
// Server-side function
function serverResolve() {
current.incident_state = IncidentState.RESOLVED;
current.state = IncidentState.RESOLVED;
current.resolved_by = gs.getUserID();
current.update();
}
GsftSubmit(Zeichenfolgensteuerung, Objektformular, Zeichenfolgenaktion_Name)
Sendet ein Formular, als ob der Anwender auf eine UI-Aktion geklickt hätte, nachdem er auf Pflichtfelder überprüft und ausgeführt wurde OnSubmit() Client-Skripts. Ermöglicht das Aufrufen von clientseitigem Code und serverseitigem Code in einer einzigen UI-Aktion.
| Name | Typ | Beschreibung |
|---|---|---|
| Kontrolle | Zeichenfolge | Name einer Formularschaltfläche, auf die Sie einen Anwenderklick simulieren möchten. Verwenden Null Andernfalls. |
| Formular | Objekt | Optional. Das Formularelement, das die übermittelte Eingabe enthält. Sie können diesen Wert abrufen, indem Sie aufrufen G_Form.getFormElement() Methode. |
| Action_Name | Zeichenfolge | Aktionsname. Dieser Wert wird im Datensatz angegeben, der in der Tabelle „UI-Aktionen“ [sys_ui_action] aufgeführt ist. Beispiel: |