In diesem Javascript-Objekt werden die Möglichkeiten für eine Skriptsteuerung von Serverjobs (für KDE, JDE, krn.RunScript) bereitgestellt. Es enthält außerdem Funktionen für den Zugriff auf wichtige Eigenschaften von enaio®.
rc.apps
ist ein COM-Objekt (IV8Apps
), dessen TypInfo
bei Bedarf mit rc.com.typeInfo(rc.apps) analysiert werden kann.
rc.apps
hat folgende Propertys, die zum Teil in eigenen Artikeln beschrieben werden:
Name | Typ | get | put |
---|---|---|---|
| + | ||
| + | ||
| + | ||
| + | ||
| + | ||
| + | ||
| + | ||
| + | ||
| array of string | + | + |
| array of string | + | + |
| LONG | + | + |
| string | + | + |
Code
rc.console.log(JSON.stringify(rc.apps,null,3)); |
|
misc
Siehe IV8AppsMisc. Hier werden verschiedene Funktionen zum Arbeiten mit enaio® vorgehalten.
logger
Siehe IV8AppsLogger. Hier werden Funktionen zum Schreiben von Protokolleinträgen aus Skripten zur Verfügung gestellt.
server
Siehe IV8AppsServer. Dieser Bereich beinhaltet Funktionen zum Auslesen von zentralen Servereigenschaften.
session
Siehe IV8AppsSession. Dieser Bereich beinhaltet Funktionen zum Auslesen der Eigenschaften der aktuellen Benutzersession.
registry
Siehe IV8AppsRegistry. Hier werden Funktionen zum Lesen und Ändern der Serverregistry zur Verfügung gestellt.
jobs
Siehe IV8AppsJobs. Hier werden Funktionen für den skriptseitigen Aufruf weiterer Serverjobs vorgehalten.
inputParams
Siehe IV8AppsParameterList. Der Inhalt der Liste hängt davon ab, in welchem Kontext das Skript aufgerufen wird.
KDE-Before-Skripte: Eingabeparameter des Jobs. Nachdem das Skript ausgeführt wurde und ggf. diese Parameterliste manipuliert wurde, wird die Liste als Eingangsparameter für die Ausführung des eigentlichen Jobs verwendet.
KDE-After-Skripte: Eingabeparameter des Jobs. Diese Liste ist schreibgeschützt. Da die Jobausführung bereits beendet ist, lassen sich in diesem Skript keine Eingangsparameter wirksam manipulieren.
JDE-Skripte: In diesem Fall wird diese Liste pro JDE unterschiedlich befüllt, s. Dokumentation zu enaio® server-api.
krn.RunScript: Hier ist auch möglich, inputParams zu definieren, s. Dokumentation zu enaio® server-api (in der Beschreibung von krn.RunScript).
outputParams
Siehe IV8AppsParameterList. Der Inhalt der Liste hängt davon ab, in welchem Kontext das Skript aufgerufen wird.
KDE-Before Skripte: Da der Job zur Laufzeit des Skripts noch nicht ausgeführt wurde, ist diese Liste leer. Über eine Manipulation dieser Liste im Skript ist es möglich zusätzliche Ausgabeparamater zu erzeugen, die nach der Ausführung des Jobs an den Aufrufer übergeben werden. Werden in diesem Skript bekannte Ausgabeparamter des Jobs manipuliert, so werden diese bei der Ausführung des Jobs wieder überschrieben.
KDE-After Skripte: Hier stellt der Parameter die Ausgabeparameter des Jobs dar. Das Skript kann diese Liste manipulieren. Entweder können im Skript weitere Ausgabeparameter ergänzt oder vorhandene geändert werden. Es ist aber nicht möglich, vorhandene Ausgabeparameter zu löschen.
JDE Skripte: In diesem Fall wird diese Liste pro JDE unterschiedlich behandelt, s. Dokumentation zu enaio® server-api.
krn.RunScript: Hier stellt der Parameter eine Liste der Ausgabeparameter des Jobs dar. Das Skript kann diese Liste manipulieren. Entweder im Skript weitere Ausgabeparameter ergänzt oder vorhandene geändert werden. Es ist aber nicht möglich, vorhandene Ausgabeparameter zu löschen.
|
|
inputFiles
Der Inhalt der Liste hängt davon ab, in welchem Kontext das Skript aufgerufen wird.
KDE-Before Skripte: Hier stellt der Parameter eine Liste von Eingabedateien des Jobs dar. Sollen diese manipuliert werden, kann das Skript dies über outputFiles
tun.
KDE-After Skripte: Hier stellt der Parameter eine Liste von Ausgabedateien des Jobs dar. Sollen diese manipuliert werden, kann das Skript dies über outputFiles
tun.
JDE Skripte: In diesem Fall wird diese Liste pro JDE unterschiedlich behandelt, s. Dokumentation zu enaio® server-api.
krn.RunScript: Hier stellt der Parameter eine Liste von Eingabedateien des Jobs dar.
outputFiles
Der Inhalt der Liste hängt davon ab, in welchem Kontext das Skript aufgerufen wird.
KDE-Before Skripte: Hier stellt der Parameter eine Liste von Eingabedateien des Jobs dar. Diese Liste ist per Default leer, was bedeutet, dass die Eingabedateien des Jobs nicht durch das Skript geändert werden. Soll diese Liste geändert werden, müssen die Eingabedateien ggf. aus den InputFiles
in die OutputFiles
übertragen werden. Es ist weiterhin möglich, zusätzliche Dateien per Skript zu ergänzen. Soll die Liste der Eingabedateien des Jobs explizit geleert werden, dann muss im Skript in die Liste outputFiles
ein einziges Element eintragen werden: *NO*FILES*.
KDE-After Skripte: Hier stellt der Parameter eine Liste von Ausgabedateien des Jobs dar. Diese Liste ist per Default leer, was bedeutet, dass die Ausgabedateien des Jobs nicht durch das Skript geändert werden. Soll diese Liste geändert werden, so müssen die Ausgangsdateien ggf. aus den InputFiles
in die OutputFiles
übertragen werden. Es ist weiterhin möglich, zusätzliche Dateien per Skript zu ergänzen. Soll die Liste der Ausgabedateien des Jobs explizit geleert werden, dann muss im Skript in die Liste outputFiles
ein einziges Element eintragen werden: *NO*FILES*.
JDE Skripte: In diesem Fall wird diese Liste pro JDE unterschiedlich behandelt, s. Dokumentation zu enaio® server-api.
krn.RunScript: Hier stellt der Parameter eine Liste von Ausgabedateien des Jobs dar. Sollen von einem RunSkript-Aufruf Dateien an den Aufrufer zurückgegeben werden, so muss diese Liste an dieser Stelle per Skript gefüllt werden.
Wichtig: |
krn.RunScript
löscht die Eingabedateien (falls sie vom Skript nicht bereits gelöscht wurden). Allerdings kann mit dem Parameter Flags=1
dieses Löschen ausgeschaltet werden.
Eingabedateien eines Jobs (von enaio® server per TCP empfangen) werden im Verzeichnis Ausgabedateien eines Jobs können "echte" Dateien sein (z. B. Dateien aus den Verzeichnissen Auch wenn das Skript intern einen Job aufruft, kann dieser Job temporäre Dateien erzeugen. In diesem Fall muss das Skript analog zum Kernel (nach dem Jobaufruf) handeln. Die temporären Dateien müssen gelöscht werden, falls sie nur für das Skript relevant sind und nicht an enaio® client gesendet werden sollen. |
Codebeispiel (krn.runScript mit einer Datei und Flags = 0
const FSO = new rc.com.ActiveXObject("Scripting.FileSystemObject") const outputFiles = []; for (const fileName of rc.apps.inputFiles) { rc.console.log("Input file: " + fileName); const arr = fileName.split('.') const newFileName = arr.join('.') + '.renamed.' + arr[arr.length - 1]; FSO.MoveFile(fileName,newFileName); outputFiles.push('?' + newFileName); } rc.apps.outputFiles = outputFiles; true; // ansonsten kommt ein Fehler, weil ein Array nach job_param nicht konvertierbar ist |
|
responseResult
KDE-Before Skripte: Wenn das Skript diesen Wert ungleich 0 setzt, wird der Job nicht weiter ausgeführt.
KDE-After Skripte: In diesem Fall steht hier der logische Rückgabewert des Jobs (ein Fehler-Code oder 0 bei erfolgreich ausgeführtem Job). Nachdem das Skript ausgeführt wurde, kopiert enaio® server diesen Wert in dwResponseResult
des Jobs. Damit der erfolgreiche Job als fehlerhaft (für den Aufrufer) markiert wird (bzw. ein fehlerhafter Job als fehlerfrei). Der Job selbst ist an dieser Stelle aber bereits ausgeführt und seine Logik wird damit nachträglich nicht beeinflusst.
JDE Skripte: In diesem Fall wird dieser Wert pro JDE unterschiedlich behandelt, s. Dokumentation zu enaio® server-api.
krn.RunScript: wertet rc.apps.responseResult
nicht aus
errorText
KDE-Before Skripte: Üblicherweise ist dieser Wert leer. Falls das Skript dort etwas einträgt, wird der Text in die ErrorList
des Jobs kopiert.
KDE-After Skripte: Üblicherweise ist dieser Wert leer. Falls das Skript dort etwas einträgt, wird der Text in die ErrorList
des Jobs kopiert.
JDE Skripte: In diesem Fall wird dieser Wert pro JDE unterschiedlich behandelt, s. Dokumentation zu enaio® server-api.
krn.RunScript: wertet rc.apps.errorText
nicht aus.