Script payload transform
Stack
Use the script payload transform to execute a script that modifies the current payload in the watch execution context. This transform enables you to extract specific fields, calculate derived values, or restructure data before actions are executed.
{
"transform" : {
"script" : "return [ 'time' : ctx.trigger.scheduled_time ]"
}
}
- A simple
painlessscript that creates a new payload with a singletimefield holding the scheduled time.
The executed script may either return a valid model that is the equivalent of a Java™ Map or a JSON object (you will need to consult the documentation of the specific scripting language to find out what this construct is). Any other value that is returned will be assigned and accessible to/via the _value variable.
The script attribute may hold a string value in which case it will be treated as an inline script and the default Elasticsearch script languages will be assumed (as described in Scripting). You can use the other scripting languages supported by Elasticsearch. For this, you need to set the script field to an object describing the script and its language. The following table lists the possible settings that can be configured:
| Name | Required | Default | Description |
|---|---|---|---|
inline |
yes | - | When using an inline script, this field holds the script itself. |
id |
yes | - | When referring to a stored script, this field holds the id of the script. |
lang |
no | painless |
The script language |
params |
no | - | Additional parameters/variables that are accessible by the script |
When using the object notation of the script, one (and only one) of inline, or id fields must be defined.
In addition to the provided params, the scripts also have access to the standard watch execution context parameters.