Schedule and run script tasks.
Reference → Modules →Scripts → UI → Code Editor | Classes | Expressions | Monitor | References | Tasks
Scripts Tasks (Reference) are automated program units that execute in response to events or on scheduled intervals, providing the core automation logic for your FrameworX solution. ScriptTask is a self-contained code blocks that:
Unlike Script Classes, Tasks don't require method declarations - you write directly the code to be executed, similar to the contents of a method body.
Table of Contents maxLevel 2 minLevel 2 indent 10px exclude Steps style none
The Scripts Module allows the automation of various tasks through scripting. You can configure these tasks to run in response to specific events or on a scheduled basis, enhancing the application's efficiency and functionality. ScriptTasks can also call ScriptClasses or use external DLLs.
On this page:
Table of Contents | ||||
---|---|---|---|---|
|
Tip | ||
---|---|---|
| ||
Now, you can double-click the newly created row to access the Code Editor, where you can insert the code for the ScriptTask.
Property | Description |
---|---|
Name | Task identifier used in runtime references |
Code | Programming language (VB.NET, C#, Python) |
Domain | Execution location: Server (default) or Client |
Trigger | Event that initiates task execution |
Period | Time interval for periodic execution |
InitialState | Enabled (ready to run) or Disabled |
BuildStatus | ? Green = Success, ? Red = Errors |
BuildErrors | Compilation error count |
EditSecurity | Permission level required to modify |
Property | Description |
---|---|
ID | Unique task identifier |
VersionID | Modification version counter |
Lines | Code line count |
BuildMessage | Compilation messages |
Category | Task grouping category |
LockState | Edit lock status |
DateCreated | Creation timestamp |
DateModified | Last modification timestamp |
<ac:structured-macro ac:name="warning"> ac:rich-text-body Important: Script Tasks contain only the method body code - no function declarations or wrappers. The platform automatically handles method creation, exception protection, and thread management. </ac:rich-text-body> </ac:structured-macro>
csharp
// Direct code - NO method declaration
double temperature = @Tag.Temperature;
if (temperature > 100)
{
@Tag.AlarmActive = true;
@Alarm.Notify("High Temperature");
}
csharp
// ? WRONG - Do not include method wrapper
public void ProcessTemperature()
{
// Code here
}
All solutions include predefined tasks:
Tasks execute when specific events occur:
Configure periodic execution:
<ac:structured-macro ac:name="info"> ac:rich-text-body Default Configuration: Client-side tasks are disabled by default in Solution Settings because web clients don't support them yet. Most solutions use only server-side tasks. </ac:rich-text-body> </ac:structured-macro>
Server Domain (Default):
Client Domain (When Enabled):
Access task runtime information via @Script.Task
namespace:
csharp
// Access task properties
int count = @Script.Task.MyTask.ExecutionCount;
TimeSpan cpu = @Script.Task.MyTask.LastCPUTime;
bool enabled = @Script.Task.MyTask.Enabled;
// Control task execution
@Script.Task.MyTask.Run(); // Force execution
@Script.Task.MyTask.Enabled = false; // Disable task
Property | Type | Description |
---|---|---|
ExecutionCount | Integer | Number of executions |
LastCPUTime | TimeSpan | CPU time of last execution |
Enabled | Boolean | Task enable state |
IsRunning | Boolean | Currently executing |
LastError | String | Last execution error |
csharp
// Direct access to Script Classes
var result = @Script.Class.Calculations.Process(100);
csharp
// All namespaces available
@Tag.Temperature = 25;
@Alarm.Reset("Area1");
var data = @Dataset.Query("SELECT * FROM Production");
@Display.MainScreen.Open();
vbnet
' Use Exit Function to stop execution
If temperature > 100 Then
Exit Function
End If
csharp
// Use return to stop execution
if (temperature > 100)
{
return;
}
python
# Standard Python syntax
if temperature > 100:
return
Task not executing:
Performance issues:
Compilation errors:
Page Tree | ||
---|---|---|
|
Info |
---|
To edit a property of an existing ScriptTask, click the desired property to select it and click it again after a second to edit it. See a list of available properties in the next section. |
The image below illustrates the process described above.
All solutions include the following built-in ScriptTasks:
Note |
---|
"Exit Function" can be used in VB.NET script tasks to stop the code of the currently running task. |
The following is a table describing each available property field for ScriptTasks Configuration Table.
Info |
---|
If a property column is not visible on the grid, enable it by right-clicking the grid header and selecting it from the list. |
Property
Description
ID
Identifies the unique identifier of the ScriptTask object.
VersionID
Represents the modification version of the ScriptTask, which increments with each modification related to this object.
Name
Specifies the name assigned to the ScriptTask.
Code
Defines the programming language used for the ScriptTask.
Domain
Specifies where the script executes, either on the Client system locally or on the Server globally.
Trigger
Identifies the event that triggers the ScriptTask.
Period
Sets the interval for periodic execution of the task.
InitialState
Indicates if the task is initially Enabled (ready to run) or Disabled (not ready to run).
Lines
Displays the code lines for the ScriptTask.
EditSecurity
Controls the permissions for editing the ScriptTask.
BuildStatus
The task code's status results from the continuous compiling process.
Green check mark: The task runs without errors.
Red X:Thetask has warnings or errors, double-click to access the warning or error.Warnings are information only.
Errors will prevent the code from running for that specific task. The rest of the solution will run.
BuildErrors
Lists the number of errors encountered during the build process.
BuildMessage
Provides messages related to the build process.
Category
Groups the ScriptTask into a specific category.
LockState
Indicates if the ScriptTask is locked for editing.
LockOwner
Displays the user who owns the lock on the ScriptTask.
DateCreated
Records the date and time when the ScriptTask was created.
DateModified
Shows the date and time of the last modification to the ScriptTask.
Description
Describes the purpose and functionality of the ScriptTask.
In this section: