run_script()
Executes a script on the server via krn.RunScript. Supports both VBScript and
JavaScript.
The script text is resolved in the following order: script parameter,
script_file, file list. If the script is empty and only parameters are passed,
only server-side Before/After events are triggered.
1. Signature
-
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. Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
|
|
|
The script text to execute. In |
|
|
|
Name of a script file in the server’s |
|
|
|
If |
|
|
|
If |
|
|
|
Name of the script context. An empty string uses the server’s default context. |
|
|
|
Name of the entry-point function. Defaults to |
|
|
|
V8 inspector control for JavaScript debugging. |
|
|
|
Name of the script for debugging purposes. |
|
|
|
Optional list of input files to send to the script. |
|
|
— |
Additional keyword arguments are sent as input parameters to the job and are accessible from within the script. |
3. Return value
A JobResult object. The script return value is accessible via
result.get("$ScriptResult$", …). Additional output parameters via
result.get(name, …) and returned files via result.files.
4. Examples
4.1. Evaluate an expression (eval mode)
-
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. Execute JavaScript (exec mode)
-
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. Pass parameters to the script
-
Sync
-
Async
script = """
function Main() {
return "Hello " + GetEntry("UserName");
}
"""
result = ecm.system.run_script(script, javascript=True, UserName="Max")
print(result.get("$ScriptResult$", str)) # "Hello Max"
script = """
function Main() {
return "Hello " + GetEntry("UserName");
}
"""
result = await ecm.system.run_script(script, javascript=True, UserName="Max")
print(result.get("$ScriptResult$", str)) # "Hello Max"
5. See also
-
empty_job() — Generic no-op job for server-side events