Overview
The CodeEditor allows to write scripts in the following languages:
- VB.NET
- C#
- Python
This editor User Interface is also used on Displays, to edit the CodeBehind (.Net and JavaScript), by the Datasets Module to edit SQL query statements, and by the Reports Module to edit JSON, XML and HTML5 documents.
On this page:
Editing Code
To edit code, follow the steps below:
- Access Scripts → Code Editor. The Code Editor environment displays the contents of the last selected Script Task or Script Class.
- Select the task or class you want to edit from the drop-down list in the main toolbar. See the Script Tasks or Script Classes pages for more details on creating tasks or classes.
- Select the Language in the toolbar. If you change your language selection in the code editor, between VB.NET and C#. the system automatically converts existing code to the selected language. For other languages or document formats, this ComboBox is read-only.
- Edit the code. You can also format your code for readability by clicking Auto Format.
- Click the Save icon on the toolbar to save the changes.
The ability to switch between VB.Net and C# is a powerful feature that allows developers to leverage the strengths of both languages, but due differences on the languages, it is possible a VB.NET code when changed to C# will present errors, as C# is more restrictive on type conversion.
The image below illustrates the process described above.
Productivity Tools
The Scripts Modules offers tools to enhance your productivity when creating and editing scripts. The are as follow:
IntelliSense: This is a code-completion aid that features listing the available properties and methods for the objects and auto-completing their names. In addition to the Properties and Methods of the .NET Framework, it supports all project entities, like tags and displays. Type a dot (.) after an element to show its available properties.
Toolkit Namespace: The platform exposes many .NET libraries to the solution, but there are a few methods that are frequently required, such as type conversion, copying tags to DataTables and .NET objects, or dynamically changing the communication settings. Those methods are included in a library toolkit, to use then insert TK in the code editor, IntelliSense will respond with a list of all available methods and provide a summary documentation for any method you select. See the example below:
double x = TK.ConvertTo<double>("123");
Access the namespace T.Toolkit.TK class at the Namespaces API to see the list of all methods available.
CodeEditor user Interface
Main ToolBar
CodeEditor ToolBar | ||
---|---|---|
Icon | Command | Description |
Compile | Compile the code. This operation is also executed automatically when saving the document. | |
Namespace Declarations | Verify or add the namespaces added to this code. This editor don't allow to include C# 'using' or VB.Net 'Import' statements directly. For more information go to Scripts References. | |
Outdent | Insert a tab formatting to the selected lines. | |
Indent | Remove a tab from the selecting lines. | |
Comment Out | Comment the selected lines. | |
Uncomment | Remove the comment from the selected lines. | |
Format Document | Format the entire document. | |
Formant Selection | Format the selected lines. | |
Debugger | The remaining icons are using when debugging the code. (C# and VB.Net only.) |
Scripts Compilation
Scripts Compilation uses incremental compilation, meaning scripts are automatically compiled in the background as they are created or modified — no user action required.
Only affected scripts are recompiled, improving performance and reducing build times.
When you edit a script, the system detects changes and compiles only the necessary scripts, avoiding the overhead of recompiling the entire solution.
While the code editor continuously compiles scripts in the background, we recommend performing a full Build operation before deploying a project to production.
Building ensures all scripts are fully up-to-date and minimizes the risk of runtime errors. For details, see the Build and Publish page.
Debugging and Error Handling
The platform has an integrated .NET code debugger. In order to use it, the local computer must have a cache with the necessary files to run the debugger. The steps to enable the debugger are:
Enable the Debug Information on Runtime → Build and Publish.
As necessary, save the source code you want to debug. This will create the debug information. This step is only necessary the first time you open the project on the computer. Afterwards, the background compiling generates the necessary debugging information to enable the use of breakpoints and step execution.
Attaching the .NET debugger
In order to have a .NET debugging session, the engineering environment must be connected to the runtime and the .NET debugger must be attached to server or client process. Follow these steps.
When Running the solution, go to Runtime → Startup and enable the connect check box.
If the solution is already running, go to Runtime → Startup, according to the runtime you want to attach, and connect to the runtime system by pressing the connect button on those pages.
Open any script that has debugging information and press the Attach .NET debugger button. A message on the bottom of the engineering workspace will show that a debugging session is active with the server components or the client components of the running project.
When the .NET debugger is attached, the system will stop on the defined breakpoints and will stop automatically when any .NET Exception occurs.
Breakpoints, Steps, and Watch
In order to setup a breakpoint, open the desired code, select the line, and press Insert Breakpoint on the toolbar.
When the system stops on a breakpoint, you can perform step by step execution or click the continue button.
In order to inspect local .NET variables, tags, or project objects, select the text in the script editor. When the execution is stopped on a breakpoint, the toolkit will show the current value of the variable.
You can also add .NET variables or project objects to the Watch window. When adding tags or project objects, you need to use the at symbols @, like @tag.tag1
. This will allow the system to know it is a project object and not a local .NET variable. Keep in mind that the Watch display is only updated when execution is stopped. If you want to have real-time values for tags and objects, open the PropertyWatch diagnostics tool.
In this section...