Das Tag <action> definiert eine Aktion, die der Jobserver ausführen soll. Die Aktionen werden in der Reihenfolge ihres Auftretens im Dokument ausgeführt. Für das Attribut arguments kann die Formelsprache angewendet werden.
Es können auch statische Methoden aufgerufen werden. Dazu wird die folgende Syntax angewendet:
<action name="<class name>:<static method name>" arguments="List{<argument1>, <argument2>}" />
Das Tag hat keine Unterelemente.
Attribut | Verwendung | Werte | Defaultwert | Beschreibung |
---|---|---|---|---|
name | benötigt | Absoluter Name der Aktion, bzw. des Commands, z.B. T_Ecad_Ui.UpdateExtensions. Zum Aufruf einer statischen Methode wird an den absoluten Namen der Klasse, getrennt durch einen Doppelpunkt der Name der statischen Methode gehängt. |
||
arguments | benötigt | Liste der Argumente, die an die Aktion, bzw. das Command übergeben werden. Für die Definition der Argumente wird impliziert, dass this auf das Jobobjekt zeigt, welches eine Triggereigenschaft kennt. Um ein Objekt als Argument zu ermitteln, kann die Formelsprache angewendet werden. Mit der Syntax trigger.<Triggereigenschaft> kann auf eine Eigenschaft des Triggers zugegriffen werden. Es wird zwischen Eigenschaften für File-Trigger, WebService-Trigger und sowohl File-Trigger als auch WebService-Trigger unterschieden. File-Trigger:
WebService Trigger:
File-Trigger und WebService Trigger:
|
<?xml version="1.1"?>
<jobdefinition name="='test'+ trigger.fileName" continueOnError="false" model="K:\customers\2.4\64869_JobServer\JobServer\model.eox" xmlns:xi="http://www.w3.org/2001/XInclude">
<fileTrigger>
<failedFolder value="K:\customers\2.4\64869_JobServer\JobServer\error" />
<incomingFolder value="K:\customers\2.4\64869_JobServer\JobServer\input" />
<outputFolder value="K:\customers\2.4\64869_JobServer\JobServer\output" />
<filter value="*.px" />
</fileTrigger>
<actions>
<action name="T_Mechatronic_ModularSystem.Action.ImportPXAction" arguments="List{trigger.filePath}" />
<action name="Engineering.ExportPXCommand" arguments="List{'TestProj',trigger.additionalResultsDir + 'proj.px',true}" />
<action name="T_Mechatronic_ModularSystem.Action.SendMailOnEndCommand" arguments="List{trigger.outputFolder,trigger.failedFolder,trigger.jobName}" />
</actions>
</jobdefinition>
Eine statische Methode wird folgendermaßen erstellt:
- Erstellen Sie eine mechatronische Komponente (z.B. StaticClass).
- Öffnen Sie den Editor Methoden.
- Fügen Sie mindestens eine Methode hinzu (z.B. setResultData).
- Markieren Sie das Kontrollkästchen Klassenmethode.
- Wählen Sie eine Sprache (z.B. Java).
- Fügen Sie mindestens ein Argument hinzu (z.B. data)
- Erstellen Sie im Codefenster den auszuführenden Code der Methode.
Diese Methode wird in der folgenden Jobdefinition aufgerufen:
<?xml version='1.0' encoding='UTF-8'?>
<jobdefinition name="Job Name"
model="/C:/jobserver/eox/basis.eox"
xmlns:xi='http://www.w3.org/2001/XInclude'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='C:/jobserver/xsd/jmx.xsd'>
<webserviceTrigger>
<failedFolder value="C:/jobserver/worker/error" />
<outputFolder value="C:/jobserver/worker/out" />
</webserviceTrigger>
<actions>
<action name="T_Mechatronic_ModularSystem.Actions.StaticClass:setResultData"
arguments="List{'testContent'}" />
</actions>
</jobdefinition>
Codebeispiel für eine Action, dessen Argument eine Formel enthält:
<?xml version="1.1"?>
<jobdefinition name="testJob" continueOnError="false" model="K:\JobServer\model.eox" xmlns:xi="http://www.w3.org/2001/XInclude">
<webserviceTrigger>
<failedFolder value="K:\JobServer\error" />
<outputFolder value="K:\JobServer\output" />
</webserviceTrigger>
<actions>
<action name="T_Mechatronic_ModularSystem.Action.ImportPXAction" arguments="List{trigger.params.value('file')}" />
<action name="Customizing_Engineering.SetResultDataToObjectNameAction" arguments="List{absRef('TestProj.Mechatronik.Feeder.Discard')}"/>
<action name="Engineering.ExportPXCommand" arguments="List{'TestProj',trigger.additionalResultsDir + 'proj.px',true}" />
</actions>
</jobdefinition>
Beschreibung:
Mit der ersten Action (ImportPXAction) werden Komponenten importiert und dem Projekt hinzugefügt. Die zweite Action (SetResultDataToObjectNameAction) bezieht den Namen der Komponente, die per Formel absRef('TestProj.Mechatronik.Feeder.Discard') ermittelt werden kann. Der Name der ermittelten Komponente wird für die Namensgebung der erzeugten Daten verwendet.
Codebeispiel für eine Action, die eine Zieldatei zum Download in der Bedienoberfläche anbietet:
<?xml version="1.1"?>
<jobdefinition name="testJob" continueOnError="false" model="\\share\models\model.eox" xmlns:xi="http://www.w3.org/2001/XInclude">
<webserviceTrigger>
<failedFolder value="failed" />
<outputFolder value="output" />
</webserviceTrigger>
<actions>
<action name="T_Mechatronic_ModularSystem.Action.ImportPXAction" arguments="List{trigger.params.value('file')}" />
<action name="Customizing_Engineering.SetResultDataToObjectNameAction" arguments="List{absRef('TestProj.Mechatronik.Feeder.Discard')}"/>
<action name="Engineering.ExportPXCommand" arguments="List{'TestProj',trigger.additionalResultsDir + 'proj.px',true}" />
<action name="T_Mechatronic_ModularSystem.Commands.MarkFileForDownloadCommand" arguments="List{trigger.outputFolder + 'results\\proj1.px'}"/>
</actions>
</jobdefinition>
Beschreibung:
Das Command MarkFileForDownloadCommand erzeugt einen Link auf die Zieldatei des Jobs.
Der Link zur Zieldatei wird als Symbol in der Bedienoberfläche angezeigt:
Hinweis:
Die im Beispiel dargestellte Action nutzt ein Command , dessen Implementierung mit Scripting selbst zu erstellen ist.
Das Skript nutzt die Methode markFileForDownload aus der Klasse IJobAPI. Die Methode erwartet als Parameter den Pfad zur Zieldatei.
Beispiel für die Implementierung:
import com.mind8.mechatronic.skill.api.IJobAPI;
IJobAPI.DEFAULT.markFileForDownload(pathToFile);
<?xml version="1.1"?><jobdefinition name="Job8" continueOnError="true" model="EOX\Tutorial_JobServer.eox" xmlns:xi="http://www.w3.org/2001/XInclude">
<fileTrigger>
<failedFolder value="error" />
<incomingFolder value="input" />
<outputFolder value="output" />
<filter value="*.imx" />
</fileTrigger>
<actions>
<action name="Engineering.ImportIMXCommand" arguments="=List{trigger.filePath}" />
<action name="Engineering.SaveObjectCommand" arguments="=List{absRef('NewFeeder.Mechatronic.Feeder')}" />
<action name="Engineering.ExportEOXCommand" arguments="=List{trigger.outputFolder + 'results\\Model.eox',List{'NewFeeder'}}" />
<action name="JobServer.MarkFileForDownloadCommand" arguments="=List{trigger.outputFolder + 'results\\Model.eox'}" />
</actions>
</jobdefinition>
Beschreibung:
Durch das Command Engineering.SaveObjectCommand werden zunächst alle Modelländerungen gesichert. Anschließend werden die Modelldaten durch das Command Engineering.ExportEOXCommand in eine EOX-Datei geschrieben.
Das Command MarkFileForDownloadCommand erzeugt einen Link auf die EOX-Datei.
Um mehrere Dateien zum Download anzubieten ist für jede einzelne Datei das Command JobServer.MarkFileForDownloadCommand auszuführen.
Hinweis:
Zum Herunterladen von Zieldateien muss der Browser so eingestellt sein, dass Pop-up-Fenster für diese Anwendung erlaubt sind.