Project variables
Please read the Terms of Use for Materials on ZennoLab
Table of contents
Description
Variables window is used to create, delete, rename project variables and edit their values. In fact, this window is a table with the ability to edit and sort variables.
This window is useful for debugging.
During project execution, you can change the values of variables using the Variables processing action
What is it used for?
Various manipulations with variables.
Tracking changes occurring to variables in the process of debugging a project.
How to open a window?
One of the ways to open the "Project variables" is to click on the corresponding button in the static blocks panel.
If you do not see the panel of static blocks, then right-click on an empty space of the working window and set the "Display static blocks" checkbox in the context menu.
The second way is through the Window => Variables menu.
Control elements
Let's consider each element of the variable window:
Variable types
In fact, this is a tab that switches the display of the selected type of variables. Has six options:
Custom
These are variables that the user himself creates in the process of writing a template. Variables must be in English. Spaces and characters other than the underscore _
character are not allowed. Numbers are allowed in the name of a variable, but not at the beginning of a word.
Auto
Auto-variables are generated automatically in the project recording mode, as well as when adding some cubes, for example, when automatically adding a Cube Getting value. Autogenerated variables have approximately the following names - Variable1, RecognitionResult0,
however, you can always move auto-variables to Custom and give them any name you want there.
How to move an automatically created variable to custom?
To do this, go to the Auto tab, select the variable and click the "Move to the Own" button:
Environment
This tab displays the project environment variables: various parameters of the instance page (URL, DOM, text, domain, notification and alert text, etc.), time and date variables, project variables (name, folder, proxy rules, id of the last error etc.), numerous profile variables (mail, gender, name, user agent, etc.)
Global
Ordinary variables are visible only within one project thread (if the project works in multi-threaded mode, then each thread will have its own local, independent variable)
Global variables are available for all projects and their threads in ZennoPoster.
To avoid confusion, global variables have an additional property - Namespace.
Json
These variables are also generated automatically, but during the JSON parsing process. In the "Parsing" mode of the "Processing JSON / XML" action, you can immediately decompose values from JSON text into automatically created variables with corresponding nodes.
Further in the project, you can use these variables through the prefix {-Json… .-},
or in C# through the project.Json
object; Read more: Processing JSON and XML
Xml
XML variables are automatically created in the appropriate tab after parsing the XML document. In the "Parsing" mode of the "JSON / XML Processing" action, we parse XML, which, in turn, can also be in a variable.
As well as JSON variables XML variables can be used via the prefix {-XML… .-}
, or in C# via the properties of the project.XML
object ;
More details: Processing JSON/XML
Filter
Opens and closes the filter field
Filtration field
If the project has a large number of variables, then finding the desired variable can take a long time. Therefore, multifunctional filtering is provided in the variable window. Each column can be filtered differently in one of 12 ways.
Remove sorting
Resets sorted variables (p. 8)
Add
Opens a dialog box in which you can enter the name of the variable being created.
Remove
Deletes the highlighted variable, after displaying a confirmation window. To select a variable, just click on any place in the line of this variable.
Rename
Display a dialog box with the ability to edit the variable name.
Cleanup unused variables
Variables are often created in large projects that later do not participate in the template. In order not to take up memory space and visually not take up valuable work space, it is recommended to periodically delete such variables. ZennoPoster will find all unused variables and list them with a suggestion to delete them. Each cleanup must be done for each type of variable.
Manual sorting of variables (Drag & Drop)
You can arrange the variables as you like using the “Up” and “Down” buttons, or using the mouse (Drag & Drop). Custom order works when sorting by columns is disabled (to do this, click on the "Clear sorting" button).
Column headings
At the same time they serve both for filtering variables and for sorting. It is enough to click on the column heading and sorting will take place both in ascending order of the variable name and in descending order, as in ascending value of the variable, and in descending order. A second click changes the sorting direction.
By right-clicking on the header of any column, a menu will appear in which you can select the displayed columns.
Column "Name"
The names of the variables used in the project are displayed here
Column "Value"
Displays the current values of variables. By clicking on the value of the selected variable, you can edit the data directly in the input field.
Column "Default value"
If you want the variable to have some value at the start of the project (at the start of the project, all variables are empty), then you must enter the desired value in this field.
Column "Note"
This column is hidden by default.
Can be used for annotating variables (here you can specify for what purpose this variable is used)
Copy macro to clipboard
A quick way to copy a macro like {-Variable.value-}
is to click on such an icon in the variable line.
Context menu
By right-clicking in front of the variable, a context menu will appear.
Custom, Global Tabs
Auto tab
Copying variables from project to project
It is often necessary to create a new project using variables from the old template. Copying variables one at a time is extremely inefficient. Therefore, you can copy all the variables of one project at once and paste them into another.
Open your old project.
Right-click on the Project Variables button in the Static Blocks Panel and click Copy Variables.
Then open a new project and again right-click on the “Project Variables” button in the “Static Blocks Panel” and click on “Paste Variables”.
In the window that appears, select the type of variables you want to insert into the project with checkboxes and confirm the insertion of variables. Variables are copied along with their default values.
Working with variables
Variable macros
In ProjectMaker, you can use variables through macros that look like {-Variable.myVariable-}
- this macro will pass the value of the myVariable
variable when the project is running. It is enough to insert a macro of a variable into any field of the properties of an action (where possible) and when the action is executed, the value of the corresponding variable will be substituted in the field.
For global variables, you need to specify the scope in the macro -{-GlobalVariable.someNamespace.text-}
Variable naming guidelines
Try to give the variables names by which the task and scope of the variable becomes immediately clear. No need to name variables with short and meaningless names -f1
, qwerty
- this makes it much more difficult to fix and maintain the project both for yourself and for other developers who will have access to the template. If a variable is often used in a project, then it is advisable to name it shortly, but clearly - counter
, username
, proxy
.
For names based on two or more words, try to separate them either with a capital letter (secondPassword
), or an underscore character (page_html
).
These are common practices that will dramatically improve the readability and efficiency of your project.
Assigning a value
The simplest example of using variables is to combine static text, custom variables, and environment variables using the Variables processing action.
In this example, the name is taken from the environment variable {-Profile.Name-}
, day of week from {-TimeNow.DayOfWeek-}
, and age from its variable count
. After starting the cube, the result is stored in a variable result
.
Arithmetic operations on numbers
Using the syntax of the JavaScript language and the corresponding cube, you can perform various mathematical operations on numbers.
In this case, in the variables value1
and value2
there are integers that need to be added and then multiplied by 10. The result of calculations goes into a variable result
.
Using Variables
Try to use variables instead of hard-coded text in places where the value might change at some point.
An example is file paths - there is one path on your computer, but a different path for the client. If the required file is located in the same directory with the project (or in one of its subdirectories), then a good solution would be to use the {-Project.Directory-}
macro - the path to the directory where the template is saved. This is how the path might look like - {-Project.Directory-} file.txt
Useful links