Skriptfähige Servicekatalog-Variablen
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
| Vorgang | Nutzung |
|---|---|
| Tabellenvorgänge | |
| JSON-Array-Wert als Zeichenfolge zurückgeben | |
| Legen Sie den Wert eines mehrzeiligen Variablensatzes fest |
Hinweis: Ein Array von geordneten Paaren (Schlüssel, Wert) ist auch als Eingabe anwendbar. |
| Ruft den Wert der Spalte var1 eines mehrzeiligen Variablensatzes ab | |
| Legen Sie den Wert eines Variablensatzes var1 fest |
Hinweis: Ein Array von geordneten Paaren (Schlüssel, Wert) ist auch als Eingabe anwendbar. |
| Zeilenvorgänge | |
| Ruft die aktuelle Zeilenanzahl ab | |
| Gibt die durch die Variable „i“ angegebene Zeile zurück – getRow(<int> i) | |
| Ruft den Zellenwert für eine Fragenspalte ab, die <var_name> zugeordnet ist | |
| Legen Sie den Zellenwert für eine Fragenspalte fest, die <var_name> zugeordnet ist | |
| Legen Sie den Zellenwert für eine Fragenspalte fest, die <var_name> zugeordnet ist | |
| Fügen Sie eine leere Zeile am Ende der Tabelle hinzu, und geben Sie ein skriptfähiges Objekt zurück | |
| Löschen Sie eine Zeile | |
Hinweise und Einschränkungen
- //einzelne Spalte von table_Var
- Now_GR.variables.table_var.var1
- Now_GR.variables.table_var.var1 = <val>
- Sie können nur Festgelegt Eine Variable in einem Vor Business-Regel. Variablen in festgelegt Danach Regel wird nicht in die Datenbank geschrieben.
- 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.
- 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.