====== Expression Generator ======
===== About =====
A ''expression generator'' is a [[column|column data generator]] that can [[generator|generate]] data created from:
* other columns (known as ''parent columns'')
* by giving an ''expression (or formula)''.
===== Howto =====
===== Syntax =====
columns:
- name: columnName
DataGenerator:
type: expression
ColumnParents:
- columnParentName1 # variable x
- columnParentName2 # variable y
- ...... # variable "z", "a", "b", "c", "d","e","f"
expression: "javascriptExpression" # See below for example
^ Mandatory Key ^ Description ^
| ''ColumnParents'' | The column generator used in the expression |
| ''expression'' | The expression in javascript where the parents columns maps by order to the following variables "x", "y", "z", "a", "b", "c", "d","e", "f" |
===== How to hide intermediate columns ?=====
When creating an expression generator, you may want to create columns that should not appear in the data generated.
For this purpose, you can use the ''hidden'' property.
Example:
- name: columnToHide
Hidden: true # The column will not be added to the output.
Description: An hidden column
DataGenerator:
type: entity
===== Snippet of expression =====
This section is showing snippet of expression (Javascript).
==== Time ====
* Month where ''x'' represents the ''date'' value of the first parent columns
x.getMonth()+1 // Month
* Month names. The below snippet use a ''date'' column as parent and lookup an array to get the month name.
var monthNames = ['Jan', 'Feb', 'Maa', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];
monthNames[x.getMonth()]
* Year number
x.getFullYear()
==== Email ====
Email String concatenation where:
* ''x'' would be a name from the first parent column
* ''y'' would be a company name from the second parent column
* ''z'' would be a TLD domain extension (''.com'', ...)
x+'@'+y+'.'+z
===== Data Type =====
The below data type are supported:
^ Data Type ^
| Integer |
| Float |
| Double |
| Numeric |
| Decimal |
| Date |
| Timestamp |
| Varchar |