Skriptfähige Servicekatalog-Variablen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Sie können Skripting verwenden, um auf eine beliebige Anforderungselementvariable aus einer Tabelle in einer bereichsbezogenen und nicht bereichsbezogenen Umgebung zu verweisen.

    Es folgt ein Beispiel für eine Variablenreferenz.
    current.variables.<variable_name>
    Wobei „aktuell“ sich auf den aktuellen Datensatz bezieht, und <variable_name> Ist der Name Ihrer Variable.
    Hinweis:
    Um auf eine Variable aus JavaScript zu verweisen, muss sie einen Namen haben.

    Wenn eine Variable Teil eines Variablensatzes ist, können Sie sie als current.variables.<variable_name> oder current.variables.<variable_set_name>.<variable_name> referenzieren.

    Variablensatz ist auch ein Bürger erster Klasse im Servicekatalog. Wie Variablen verfügt ein Variablensatz über Lese-, Schreib- und Erstellungsrollen. Wenn Rollen für einen Variablensatz bereitgestellt werden, gelten die Rollen für die Variablen im Satz. Rollen einer einzelnen Variable werden von den Rollen des Variablensatzes überschrieben.

    Drucken Sie eine Variable

    var original = current.variables.original_number;
    gs.print(original);
    

    Legen Sie eine Variable fest

    current.variables.name = "Auto-Generated:" + current.variables.asset_tag;

    Erstellen Sie einen Bestandsartikel mit Feldern, die aus Variablen festgelegt sind

    doCreation(); 
    
    function doCreation ( ) { 
    var create = current.variables.create_item; 
    if (create == 'true') { // we want to create an asset 
      var computer = new GlideRecord('cmdb_ci_computer');
      computer.initialize();
      computer.asset_tag = current.variables.asset_tag;
      computer.serial_number = current.variables.serial_number;
      computer.name = current.variables.name;
      computer.manufacturer = current.variables.company;
      computer.insert(); } }

    GlideElementvariable von Variablen und Variablensätzen abrufen, die einem GlideRecord zugeordnet sind

    now_GR.variables

    Ruft das Namenwertpaar von Variablen ab, die einem GlideRecord zugeordnet sind

    now_GR.variables.getVariableValue();

    Ruft eine Liste von GlideElementVariable für Variablen in einem Aufgabendatensatz ab

    now_GR.variables.getElements();

    Ruft eine Liste von GlideElementVariable für Variablen (einschließlich mehrzeiliger Variablensätze) in einem Aufgabendatensatz ab

    now_GR.variables.getElements(true);
    Hinweis:
    Die GetElements() Die Methode gibt alle Variablen zurück, die im angegebenen Aufgabendatensatz vorhanden sind, mit Ausnahme der Formatierer-Variablen wie Bezeichnung, Pause, Containerende, Containeraufteilung usw.

    APIs für GlideElementVariable

    • Now_GR.variables.<var_name>.isMultiRow() : Geben Sie ab, ob die GlideElementVariable ein mehrzeiliger Variablensatz oder eine Variable ist.
    • Now_GR.variables.<var_name>.getQuestion() : Ruft das Fragenobjekt für eine Variable ab. Gilt nur für eine Variable ( IsMultiRow() Ist falsch) und nicht für einen mehrzeiligen Variablensatz.
    • Now_GR.variables.<var_name>.getLabel() : Ruft die Bezeichnung der GlideElementVariable ab. Für eine Variable wird die Bezeichnung der Variable zurückgegeben. Für mehrzeiligen Variablensatz wird der Titel des Variablensatzes zurückgegeben.
    • Now_GR.variables.<var_name>.canRead() : Geben Sie ab, ob der Anwender einen Variablen- oder mehrzeiligen Variablensatz anzeigen kann.
    • Now_GR.variables.<var_name>.canWrite() : Geben Sie ab, ob der Anwender einen Variablen- oder mehrzeiligen Variablensatz bearbeiten kann.
    • Now_GR.variables.<var_name>.getDecryptedValue() : Ruft den entschlüsselten Wert für eine maskierte Variable ab. Gilt nur für eine maskierte Variable.
    • Now_GR.variables.<var_name>.getRows() : Ruft die Liste der Zeilenobjekte für einen mehrzeiligen Variablensatz ab. Gilt nur für einen mehrzeiligen Variablensatz ( IsMultiRow() Ist „wahr“).
    • Now_GR.variables.<var_name>.getRowCount() : Ruft die Anzahl der Zeilen für den mehrzeiligen Variablensatz ab. Gilt nur für einen mehrzeiligen Variablensatz ( IsMultiRow() Ist „wahr“).

    Beispiel für den Zugriff auf Variablen von GlideRecord für die Aufgabentabelle

    var now_GR = new GlideRecord('sc_req_item'); 
    if (now_GR.get('635a1f5387320300e0ef0cf888cb0b73')) { 
        var variables = now_GR.variables.getElements(); 
        for (var i=0;i<variables.length;i++) { 
            var question = variables[i].getQuestion(); 
            gs.log(question.getLabel() + ":" + question.getValue()) 
        } 
    }

    Beispiel für den Zugriff auf einen mehrzeiligen Variablensatz von GlideRecord für die Aufgabentabelle

    var now_GR = new GlideRecord('sc_req_item');
    now_GR.get('02c38dcd87013300e0ef0cf888cb0bb2');
    
    var vars = now_GR.variables.getElements(true);
    
    for (var i=0; i<vars.length; i++) {
        var now_V = vars[i];
        if (now_V.isMultiRow()) {
            var rows = now_V.getRows();
            for (var j=0; j<now_V.getRowCount(); j++) {
                var row = rows[j];
                var cells = row.getCells();
                for (var k=0; k<cells.length; k++) {
                    var cell = cells[k];
                    gs.info(cell.getLabel() + ":" + cell.getCellDisplayValue())
                }
            }
        }
    }

    Mehrzeiliger Variablensatz

    Tabelle : 1. Mehrzeiliger Variablensatz
    Vorgang Nutzung
    Tabellenvorgänge
    JSON-Array-Wert als Zeichenfolge zurückgeben
    now_GR.variables.table_var
    Legen Sie den Wert eines mehrzeiligen Variablensatzes fest
    now_GR.variables.table_var = <val>
    Hinweis:
    Ein Array von geordneten Paaren (Schlüssel, Wert) ist auch als Eingabe anwendbar.
    Ruft den Wert der Spalte var1 eines mehrzeiligen Variablensatzes ab
    now_GR.variables.table_var.var1
    Legen Sie den Wert eines Variablensatzes var1 fest
    now_GR.variables.table_var.var1 = <val>
    Hinweis:
    Ein Array von geordneten Paaren (Schlüssel, Wert) ist auch als Eingabe anwendbar.
    Zeilenvorgänge
    Ruft die aktuelle Zeilenanzahl ab
    now_GR.variables.table_var.getRowCount()
    Gibt die durch die Variable „i“ angegebene Zeile zurück – getRow(<int> i)
    var row = now_GR.variables.table_var.getRow(<int> i);
    Ruft den Zellenwert für eine Fragenspalte ab, die <var_name> zugeordnet ist
    row.<var_name>
    Legen Sie den Zellenwert für eine Fragenspalte fest, die <var_name> zugeordnet ist
    row.setCellValue('<var_name>',value)
    Legen Sie den Zellenwert für eine Fragenspalte fest, die <var_name> zugeordnet ist
    row.<var_name> = value
    Fügen Sie eine leere Zeile am Ende der Tabelle hinzu, und geben Sie ein skriptfähiges Objekt zurück
    var row = now_GR.variables.table_var.addRow()
    Löschen Sie eine Zeile
    row.deleteRow()

    Hinweise und Einschränkungen

    • //einzelne Spalte von table_Var
    • Now_GR.variables.table_var.var1
    • Now_GR.variables.table_var.var1 = <val>
    1. Sie können nur Festgelegt Eine Variable in einem Vor Business-Regel. Variablen in festgelegt Danach Regel wird nicht in die Datenbank geschrieben.
    2. Es ist nichts vorhanden, um eine Namespace-Kollision mit Variablen zu verhindern. Das Erstellen von zwei Variablen mit dem Namen Computer_Speed würde dazu führen, dass nur eine davon angezeigt wird. Die zweite überschreibt die erste.
    3. Datums-/Uhrzeitvariablen verwenden dieselben Zeitzonenformatierungs- und Speicherregeln wie alle anderen Datumsangaben im System. Sie werden intern in GMT gespeichert, aber zur Anzeige in die lokale Zeitzone und das Format des Anwenders übersetzt.