Clientseitige Skriptanwendungsfälle
Anwendungsfälle für clientseitige Skripts umfassen das Anzeigen von Feldnachrichten, das Ändern von Formularfarben, das Hinzufügen von Feldern und das 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.
- 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
Fügen Sie die Funktion zum automatischen Ausfüllen hinzu
Die Funktion „automatisches Ausfüllen hinzufügen“ wird auch als Incident-Vorlage, automatische Zuweisungen, Schnellaufrufe, Anrufskript oder automatisches Ausfüllen 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 hat 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 des Formulars bei 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 : Clientskript
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
Feldnachrichten anzeigen
Anstatt JavaScript zu verwenden Warnung() , Für einen saubereren Look können Sie im Formular selbst einen Fehler anzeigen. Die Methoden ShowFieldMsg() Und HideFieldMsg() Kann verwendet werden, um eine Nachricht direkt unter dem Feld selbst anzuzeigen.
ShowFieldNachricht Und AusblendenFeldNachricht Sind Methoden, die mit verwendet werden können G_Form Objekt.
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 eine Feldnachricht beim Laden in einem Formular angezeigt wird, scrollt das Formular, um sicherzustellen, dass die Feldnachricht sichtbar ist. Stellen Sie sicher, dass Anwender keine Feldnachricht verpassen, da sie nicht auf dem Bildschirm angezeigt wurde.
Die globale Eigenschaft glide.ui.scroll_to_message_field Steuert das automatische Scrollen von Nachrichten, wenn sich das Formularfeld außerhalb des Bildschirms befindet (scrollt das Formular zum Steuerelement oder Feld).
| Methodendetail | Parameter | Beispiel |
|---|---|---|
| ShowFieldMsg(Eingabe, Nachricht, Typ, [scrollform]) |
|
Fehlermeldung Informationsmeldung |
| HideFieldMsg (Eingabe) |
|
Nachricht wird entfernt |
Legacy-Unterstützung
Die ShowErrorBox() Und HideErrorBox() 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 für die clientseitige 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 Client-Funktion 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)
Übermittelt ein Formular, als ob der Anwender nach der Überprüfung auf Pflichtfelder und der Ausführung auf eine UI-Aktion geklickt hätte OnSubmit() Client-Skripts. Aktiviert das Aufrufen von clientseitigem Code und serverseitigem Code in einer einzelnen 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. |
| Aktionsname | Zeichenfolge | Aktionsname. Dieser Wert wird im Datensatz angegeben, der in der Tabelle „UI-Aktionen“ [sys_ui_action] aufgeführt ist. Beispiel: |