GlideScopedEvaluator – Scoped
Mit der GlideScopedEvaluator- API können Sie Skripts in einem GlideRecord-Feld sowohl aus bereichsbezogenen als auch aus globalen Serverskripts auswerten.
Diese API wertet Datensätze mit definierten Skriptfeldern aus. Der Bereich des Skripts wird durch den Bereich des Datensatzes definiert.
GlideScopedEvaluator – evaluateScript(GlideRecord grObj, String scriptField, Object variables)
Wertet ein Skript aus, das sich in einem GlideRecord-Feld befindet.
| Name | Typ | Beschreibung |
|---|---|---|
| grObj | GlideRecord | GlideRecord, der einen Skriptausdruck enthält. |
| scriptField | Zeichenfolge | Optional. Name des Felds, das den Skriptausdruck enthält. |
| variables | Objekt | Optional. Zuordnung von Variablen mit Name-Wert-Paaren. Diese Variablen stehen dem Skript während der Ausführung dieser Methode zur Verfügung. |
| Typ | Beschreibung |
|---|---|
| Objekt | Ergebnis der Skriptausführung. |
// Setting up a record that contains the script to be executed.
var now_GR = new GlideRecord('u_global_table');
now_GR.u_short_description = 'Calculate Addition';
now_GR.u_test_script = "result = x + y";
now_GR.insert();
var evaluator = new GlideScopedEvaluator();
evaluator.putVariable('x', 100);
evaluator.putVariable('y', 200);
evaluator.evaluateScript(now_GR, 'u_test_script', null);
gs.info(evaluator.getVariable('result'));
Ausgabe:
300
GlideScopedEvaluator – getVariable(String name)
Gibt eine angegebene Variable aus einem GlideScopedEvaluator-Objekt zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der zurückzugebenden Variablen. |
| Typ | Beschreibung |
|---|---|
| Objekt | Wert der angegebenen Variablen. |
Das folgende Beispiel zeigt, wie die Methode getVariable() aufgerufen wird, um den Wert der Antwortvariablen zu überprüfen.
(function executeRule(current, previous /*null when async*/) {
var grAG = current.assignment_group.getRefRecord(); // Get the GlideRecord of the assignment group
if (grAG.isValidRecord()) {
var ge = new GlideScopedEvaluator();
ge.putVariable("current", current); // Pass through the "current" variable as "current"
ge.putVariable("group", grAG); // Pass through the "grAG" variable as "group"
ge.putVariable("answer", true); // default "answer" to TRUE
ge.evaluateScript(grAG, "u_assignment_condition"); // Run the script
// Abort the transaction if the "answer" variable was set to FALSE explicitly (undefined doesn't count)
if (ge.getVariable("answer") === false) {
gs.addErrorMessage("Assignment rule did not pass");
current.setAbortAction(true);
}
}
})(current, previous);
GlideScopedEvaluator – GlideScopedEvaluator()
Instanziiert ein GlideScopedEvaluator-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
GlideScopedEvaluator – putVariable(String name, Object value)
Legt eine Variable im GlideScopedEvaluator-Objekt fest. Diese Variablen sind für das Skript verfügbar, das dieses GlideScopedEvaluator-Objekt ausführt.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name der Variable. |
| Wert | Objekt | Wert der Variablen |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie die Methode putVariable() aufgerufen wird, um die Antwortvariable auf true zu setzen.
(function executeRule(current, previous /*null when async*/) {
var grAG = current.assignment_group.getRefRecord(); // Get the GlideRecord of the assignment group
if (grAG.isValidRecord()) {
var ge = new GlideScopedEvaluator();
ge.putVariable("current", current); // Pass through the "current" variable as "current"
ge.putVariable("group", grAG); // Pass through the "grAG" variable as "group"
ge.putVariable("answer", true); // Set default "answer" to TRUE
ge.evaluateScript(grAG, "u_assignment_condition"); // Run the script
// Abort the transaction if the "answer" variable was set to FALSE explicitly (undefined doesn't count)
if (ge.getVariable("answer") === false) {
gs.addErrorMessage("Assignment rule did not pass");
current.setAbortAction(true);
}
}
})(current, previous);