Feldskript-Anwendungsfälle

  • Freigeben Version: Australia
  • Aktualisiert 12. März 2026
  • 4 Minuten Lesedauer
  • Allgemeine Anwendungsfälle für Feldanpassungsskripts.

    Warnung:
    Die hier beschriebene Anpassung wurde für die Verwendung in bestimmten Instanzen entwickelt und wird von nicht unterstützt Now Support. Diese Methode wird unverändert bereitgestellt und sollte vor der Implementierung gründlich getestet werden. Veröffentlichen Sie alle Fragen und Kommentare zu dieser Anpassung in unserer Community Forum .

    Weitere Informationen finden Sie unter Server-API-Referenz.

    Füllen Sie automatisch ein Feld aus

    Das folgende Beispiel zeigt, wie ein Client-Skript zum automatischen Ausfüllen von verwendet wird Kurzbeschreibung Basierend auf dem ausgewählten Unterkategorie .

    In diesem Fall, wenn die Tabelle einen Datensatz mit enthält Unterkategorie = Passwort und Kurzbeschreibung = Passwortzurücksetzung. Wenn der Anwender auswählt Unterkategorie Von Passwort Im Formular „Incident“ sucht ein Client-Skript den übereinstimmenden Datensatz und Sätze Kurzbeschreibung Entspricht der Passwortzurücksetzung.

    Client-Skripteinstellungen:
    • Type = onChange
    • Table name = Incident
    • Field name = Unterkategorie
    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',"");
                  }
         }
    }

    Deaktivieren Sie HTML-Tags in Beschreibungen

    Dieser Code deaktiviert HTML-Tags in Beschreibung Und Kurzbeschreibung Felder durch Ersetzen der Tags durch nicht ausführende Versionen.
    doit();
     
    function doit(){ 
     var desc = current.description.toString();
     var shdesc = current.short_description.toString();
     if(desc.indexOf('script>')>-1|| shdesc.indexOf('script>')>-1){
       desc = desc.replace(/<script>/g,"(script)");
       current.description = desc.replace(/<\/script>/g,"(\/script)");
       shdesc = shdesc.replace(/<script>/g,"(script)");
       current.short_description = shdesc.replace(/<\/script>/g,"(\/script)");}
    }

    Eliminieren Sie führende und nachfolgende Leerzeichen in Feldern

    In diesem Beispiel des Skripts werden nachfolgende und führende Leerzeichen in gekürzt FirstNameUnd LastNameFelder des sys_user.
    doit();
     
    function doit(){ 
      var now_GR =new GlideRecord('sys_user');
      gr.query();
      while(gr.next()){
        if((gr.first_name.toString().length!= gr.first_name.toString().trim().length)||(gr.last_name.toString().length!= gr.last_name.toString().trim().length)){
         gr.first_name= gr.first_name.toString().trim();
         gr.last_name= gr.last_name.toString().trim();
         gr.autoSysFields(false);
         gr.update();}}
    }

    Aktivieren Sie eine Feldbezeichnung

    Das folgende Client-Skriptbeispiel gilt für das Nummernfeld für Incident. Die Bezeichnung blinkt zwei Sekunden lang.
    g_form.flash("incident.number","#FFFACD",0);
    Die Argumente für die Flash-Methode lauten wie folgt:
    • tablename.fieldname
    • RGB-Farbe oder zulässige CSS-Farbe wie „Blau“ oder „Tomate“
    • Ganzzahl, die bestimmt, wie lange die Bezeichnung blinkt:
      • 2 für einen 1-Sekunden-Blitz
      • 0 für einen 2-Sekunden-Blitz
      • -2 für einen 3-Sekunden-Blitz
      • -4 für einen 4-Sekunden-Blitz
    Hinweis:
    Geben Sie dieses Argument nicht an, wenn die Feldbezeichnung mit der angegebenen Farbe gefärbt werden soll.

    Legen Sie eine Feldbezeichnung fett fest

    Dieses Clientskript macht die Bezeichnung eines bestimmten Felds fett. In diesem Fall ist das Feld das Kurzbeschreibung Auf Incident-Tabelle .
    function onLoad(){
      var l = g_form.getLabel('incident.short_description');
      l.style.fontWeight = 'bold';}

    Felder als schreibgeschützt festlegen

    Dieses onLoad-Client-Skript macht die folgenden Felder in der Tabelle „Incident [Incident]“ schreibgeschützt:
    • Incident-Status
    • Auswirkung
    • Dringlichkeit
    • Priorität
    • Konfigurationselement
    • Zugewiesen an
    Das Skript entfernt auch die Lupe für die schreibgeschützten Referenzfelder ( Konfigurationselement Und Zugewiesen an ).
    function onLoad(){
    var incidentState = g_form.getValue('incident_state');
    if( incidentState == '6'|| incidentState == '7'){
       g_form.setReadonly('incident_state',true);
       g_form.setReadonly('impact',true);
       g_form.setReadonly('urgency',true);
       g_form.setReadonly('priority',true);
       g_form.setReadonly('cmdb_ci',true);
       g_form.setReadonly('assigned_to',true);}}

    Legen Sie das aktuelle Datum/die aktuelle Uhrzeit im Feld fest

    Sie können Datums- und Uhrzeitwerte in Client-Skripts und Skripteinbindungen festlegen.

    Clientskript
    Sie können die folgenden zwei Zeilen verwenden, um das aktuelle Datum und die aktuelle Uhrzeit in einem Datums-/Uhrzeitfeld festzulegen. Dieser Ansatz umgeht das Problem, den Wert im richtigen Format und in der richtigen Zeitzone zu erhalten.
    var ajax = new GlideAjax('MyDateTimeAjax');
      ajax.addParam('sysparm_name','nowDateTime');
      ajax.getXML(function(){
        g_form.setValue('put your field name here', ajax.getAnswer());});
    Weitere Informationen zum Ausführen serverseitiger Skripts mit dem Client finden Sie unter GlideAjax .
    Systemskripteinbindung
    // Be sure the Glide AJAX enabled option is checked
     
    var MyDateTimeAjax = Class.create();
    MyDateTimeAjax.prototype = Object.extendsObject(AbstractAjaxProcessor,{
      nowDateTime:function(){
        return gs.nowDateTime();}});

    Schaltet das Timer-Feld nach Feldname um

    Das folgende Clientskript schaltet das Timer-Feld basierend auf einem bestimmten Feldnamen um.
    function toggleTimerByFieldName(fieldName){
     //Step 1: Find the timer object
     //timeObjectName: the timer objects name as it would normally be referenced
     //timeObjectHidden: the hidden input node in the field td
     //timeObjectParent: the parent td node containing the field and it's constituent nodes
     //timeObjectFields: anchor tag with onclick to stop timer
     
     var timeObjectName = fieldName;
     var timeObjectHidden = gel(timeObjectName);
     
     //Step 2: simulate click stop button
     var timeObjectParent;
     var timeObjectFields;
     
     //verify that we got the correct object
     if(timeObjectHidden.type=="hidden"){
     
        //Get Parent td node
        timeObjectParent = timeObjectHidden.parentNode;
     
        //Get input fields
        timeObjectFields = timeObjectParent.getElementsByTagName("input");
     
        //simulate click of stop button
        var timerTestString ="paused";
        var timerImg;
     
        //loop through input objects looking for the pause timer object
        for(var elIt=0; elIt < timeObjectFields.length; elIt++){
          if(timeObjectFields[elIt].id.match(timerTestString)){
            if(timeObjectFields[elIt].value=="false"){
              timeObjectFields[elIt].value="true";
              timerImg = timeObjectParent.getElementsByTagName("img")[0];
              timerImg.src="images/timer_start.gifx";}
          elseif(timeObjectFields[elIt].value=="true"){
              timeObjectFields[elIt].value="false";
              timerImg = timeObjectParent.getElementsByTagName("img")[0];
              timerImg.src="images/timer_stop.gifx";}}}}}

    Ändern Sie die Feldwerte „GlideDateTime“

    Das folgende serverseitige Skriptbeispiel zeigt, wie Werte mit geändert werden GlideDateTime API. Dasselbe Konzept gilt auch für GlideDate Objekt.
    Hinweis:
    Das folgende Skript ist nur für globale Anwendungen vorgesehen.
    //You first need a GlideDateTime object
    //this can be from instantiating a new object "var gdt = new GlideDateTime()"
    //or getting the object from a GlideDateTime field
    //getting the field value (for example: var gdt = current.start_date) only returns the string value, not the object
    //to get the object use var gdt = current.start_date.getGlideObject(); (GlideElement)
    //now gdt is a GlideDateTime object
    var gdt = current.start_date.getGlideObject();
     
    //All methods can use negative values to subtract intervals
     
    //add 1 hour (60 mins * 60 secs)
    gdt.addSeconds(3600);
     
    //add 1 day
    gdt.addDaysLocalTime(1);
     
    //subtract 1 day
    gdt.addDaysLocalTime(-1);
     
    //add 3 weeks
    gdt.addWeeksLocalTime(3);
     
    //subtract 6 months
    gdt.addMonthsLocalTime(-6);
     
    //add 1 year, representing the date and time using the UTC timezone instead of the local user's timezone.
    gdt.addYearsUTC(1);
     
    //set the value of the GlideDateTime object to the current session timezone/format
    GlideSession.get().setTimeZoneName('US/Eastern');
    gdt.setDisplayValue('2018-2-28 00:00:00');
    gs.info('In ' + GlideSession.get().getTimeZoneName() + ": " + gdt.getDisplayValue());
    Siehe auch: