7 Wf_Variables
nique_372 edited this page 2026-04-19 11:21:55 -05:00

System Variables

The following variables are automatically available in all workflows. They are injected at the start of execution and can be used with the ${{name}} syntax.

aidata and terminal variables

Variable Type Description
aidata.templates_folder string Path to the templates folder. Already includes \ at the end.
aidata.task_folder string Path to the tasks folder. Already includes \ at the end.
aidata.base_folder string Path to the base folder. Already includes \ at the end.
aidata.common_flag bool true if FILE_COMMON is used, false otherwise
aidata.common_flag_val string "FILE_COMMON" if applicable, empty string "" if not
terminal.data_path string ::TerminalInfoString(TERMINAL_DATA_PATH)
terminal.common_path string ::TerminalInfoString(TERMINAL_COMMONDATA_PATH)

Usage in yml

- name: "WriteInFile"
  module: "File"
  with:
    file_name: "${{aidata.base_folder}}results.csv"
    content: "hello world"

Note: Since the folders already include \ at the end, when concatenating with a file name you can write it directly without adding extra separators. This only applies to aidata.* variables — for terminal.* folder variables the full path must be constructed manually, e.g. for .data_path you need to append \\MQL5\\Files\\.

Environment variables "env"

Environment variables are defined by the user at the document root as an object, for example:

env:
 main_folder: "EasySbAi" 

And they are accessed via env.*, where * is the variable name, for example:

steps:
  - name: "LoadConfigInPlace"
    module: "AiDataTaskRunner"
    with:
      file_name: "${{aidata.task_folder}}Wf\\config.txt"  
      progress_csv: "temp.csv"
      main_folder: "${{env.main_folder}}\\"
      expert_path: "Shared Projects\\EasySbAi\\Ea.ex5"    
      file_name_json_config: "${{env.main_folder}}\\Config\\move_files.json"

Note: Environment variables are of string type, so if you use "true" or "null" they are cast to string.