runScript
Run a Python script that contains a function on each row of the parent table.
Operator Usage in Easy Mode
Click + on the parent node.
Enter the Run Script operator in the search field and select the operator from the Results to open the operator form.
In the Input Table drop-down, enter or select a table containing the data to run this operator on.
In the Choose Script drop-down, enter or select the name of the script in which function exists.
In the Choose Action drop-down, enter or select an action that will be executed for each row.
In the Explode Fields, choose to explode the output fields by clicking on True or False options.
Click Run to view the result.
Click Save to add the operator to the playbook.
Click Cancel to discard the operator form.
Usage Details
LQL Command
runScript(inputTable, scriptName, entryFunction, explodeFields)
Input:
inputTable
: Table containing the data to run this operator on.
scriptName
: Name of the Python script that contains the function.
entryFunction
: The function to be executed for each row. Use parent column names as function arguments.
explodeFields
: Whether to explode the output fields (true) or not (false).
output:
entryFunction
runs on each row of the parent table.
if explodeFields
is false, the results of entryFunction
appear in a result
column.
if explodeFields
is true, entryFunction
returns a dictionary. The keys of dictionary become columns of the output table.
if explodeFields
is true and entryFunction
returns something other than the dictionary, the result is shown in the other_field
column.
Examples
script
operationScript.py
from lhub_integ import action
# Functions annotated with @action can be called in runScript automation
# Try using the actions defined below by mapping columns to the parameters and hit Run
@action
def sum_and_product(column1, column2):
# Return a dictionary to create multiple columns in the output table with explode set true
# If explode is set to false, you will get the dictionary as json in `result` column
return { "sum" : column1 + column2, "product" : column1 * column2 };
@action
def double(column1):
# Return a non-dictionary type to get the value in an `other_field` column
return column1 * 2;
input
val1 | val2 |
---|---|
3 | 5 |
Example 1
command
LQL Command
runScript(inputTable, 'operationScript.py', 'sum_and_product(val1, val2)', 'true')
output
sum | product | other_field | exit_code |
---|---|---|---|
8 | 15 | Â | 0 |
Example 2
command
LQL Command
output
result | exit_code |
---|---|
{"sum": 8, "product": 15} | 0 |
Example 3
command
LQL Command
output
other_field | exit_code |
---|---|
6 | 0 |
Example 4
command
LQL Command
output
result | exit_code |
---|---|
6 | 0 |