run_script()
Führt ein Skript auf dem Server über krn.RunScript aus. Unterstützt sowohl VBScript
als auch JavaScript.
Der Skripttext wird in folgender Reihenfolge aufgelöst: script-Parameter,
script_file, Dateiliste. Wenn das Skript leer ist und nur Parameter übergeben
werden, werden nur serverseitige Before/After-Events ausgelöst.
1. Signatur
-
Sync
-
Async
ecm.system.run_script(
script: str = "",
*,
script_file: str | None = None,
javascript: bool = False,
evaluate: bool = False,
context_name: str = "",
main_function: str | None = None,
inspector_enabled: int | None = None,
script_name: str | None = None,
files: list[JobRequestFile] | None = None,
**params: JobValueTypes,
) -> JobResult
await ecm.system.run_script(
script: str = "",
*,
script_file: str | None = None,
javascript: bool = False,
evaluate: bool = False,
context_name: str = "",
main_function: str | None = None,
inspector_enabled: int | None = None,
script_name: str | None = None,
files: list[JobRequestFile] | None = None,
**params: JobValueTypes,
) -> JobResult
2. Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
|
|
|
Der auszuführende Skripttext. Im |
|
|
|
Name einer Skriptdatei im |
|
|
|
Wenn |
|
|
|
Wenn |
|
|
|
Name des Skriptkontexts. Ein leerer String verwendet den Standardkontext des Servers. |
|
|
|
Name der Einstiegsfunktion. Standardmäßig |
|
|
|
V8-Inspector-Steuerung für JavaScript-Debugging. |
|
|
|
Name des Skripts für Debugging-Zwecke. |
|
|
|
Optionale Liste von Eingabedateien, die an das Skript gesendet werden. |
|
|
— |
Zusätzliche Schlüsselwortargumente werden als Eingabeparameter an den Job gesendet und sind innerhalb des Skripts zugänglich. |
3. Rückgabewert
Ein JobResult-Objekt. Der Skript-Rückgabewert ist über result.get("$ScriptResult$", …)
zugänglich. Zusätzliche Ausgabeparameter über result.get(name, …) und zurückgegebene
Dateien über result.files.
4. Beispiele
4.1. Ausdruck auswerten (Eval-Modus)
-
Sync
-
Async
result = ecm.system.run_script("40 + 2", evaluate=True)
print(result.get("$ScriptResult$", str)) # "42"
result = await ecm.system.run_script("40 + 2", evaluate=True)
print(result.get("$ScriptResult$", str)) # "42"
4.2. JavaScript ausführen (Exec-Modus)
-
Sync
-
Async
script = """
function Main() {
return "Hello from JavaScript";
}
"""
result = ecm.system.run_script(script, javascript=True)
print(result.get("$ScriptResult$", str)) # "Hello from JavaScript"
script = """
function Main() {
return "Hello from JavaScript";
}
"""
result = await ecm.system.run_script(script, javascript=True)
print(result.get("$ScriptResult$", str)) # "Hello from JavaScript"
4.3. Parameter an das Skript übergeben
-
Sync
-
Async
script = """
function Main() {
return "Hallo " + GetEntry("UserName");
}
"""
result = ecm.system.run_script(script, javascript=True, UserName="Max")
print(result.get("$ScriptResult$", str)) # "Hallo Max"
script = """
function Main() {
return "Hallo " + GetEntry("UserName");
}
"""
result = await ecm.system.run_script(script, javascript=True, UserName="Max")
print(result.get("$ScriptResult$", str)) # "Hallo Max"
5. Siehe auch
-
empty_job() — Generischer No-Op-Job für serverseitige Events