Container Input (Variable)

This node receives flow variables from an external caller (i.e. the Call Workflow (Table Based) node or an external REST client) and makes them available to the workflow. A configured parameter makes the Container Input (Variable) visible from the external caller and enables the external caller to send the variables to the Container Input (Variable) node.

If no variables are send to this node and template variables are defined, their value will be exposed to the workflow.

Options

Parameter name
A name for the variable input parameter (preferably unique). This name is exposed in the REST interface.
Append unique ID to parameter name
If checked, the name set above will be amended by the node's ID to guarantee unique parameter names. Usually it's a good idea to have this box not checked and instead make sure to use meaningful and unique names in all container nodes present in a workflow.
Description
A description for the variable input parameter. The description is shown in the API specification of the REST interface.
Accept any input
Accepts any well formed input with an arbitrary amount of variables. The input has to be an object. Each property (key/value) pair represents a variable. The property key defines the variable name (which has to be a valid name; see Name). The property value defines the variable value. The type of the variable will be determined using the JSON type of the property value. For a list of all supported types see Type.
Require input to match template variables specification

Only accepts input with that matches the template variables specification. The input has to be an object or a value with a supported type (see Use simplified JSON format).

If an object is required, each property (key/value) has to match exactly one of the variables in the specification. The property key has to match the variable name and the JSON type of the property has to match the variable type.

If Use simplified JSON format is enabled, a value has to be used instead of an object. The type of the JSON value has to match the type defined by the only variable in the variable specification.

Template Variables

The template variables the external input is required to match. Defines the type, name and default value of the variables.

The template variables populate the “InputParameters” field of the generated API specification, which is presented to end users for documentation purposes.

Set input variables as template
Loads variables (that are not global constants) at the variable inports as the new template variables. Only supported types will be loaded. These are the same types as the ones listed in the Type section, i.e. String, Integer, Double and Boolean. There are two modes for loading the variables into the template:
  • replace: Replaces all variables that are already defined by the variables from the inports.
  • merge: Merges the variables from the inport and variables that are already defined in the template. If a name is not already defined, the variable will be appended to the end. Otherwise, the type and value of the matching variable will be updated to the ones of the loaded variable.
Use simplified JSON format
This option can only be used if exactly one variable is defined. As mentioned above this will allow the external input format to be simpler by using the value directly instead of an object that defines the variables as properties. E.g. if this option is enabled, the following format is expected in the “InputParameters”:
{
    ...
    "parameter-name": <value>,
    ...
}
instead of the object notation
{
    ...
    "parameter-name": {
        "variable-name": <value>
    },
    ...
}
Note: If this option is enabled, the variable will always have the same name as the parameter name without the unique ID appended (and thus the same naming restrictions).
Add
This button can be used to define a new template variable.
Type
This is the type of the template variable to create. Depending on the type the requirements for the variable value may change.
The following four basic data types are supported:
  • String: A string of characters. This is the default if a new template variable is created.
    The default value is an empty string.

    To use this type in an external variable you have to use a JSON string.

    Note: The node will inform about a string that is empty or does only contain spaces because this is probably unwanted.
  • Integer: An integer number with possible values from 2³¹-1 to -2³¹. The value must be a valid number (consisting only of an optional sign (“+”/“-”) and “0”-“9”) and be in the range above.
    If the size of your value exceeds the limits above, you can try to use a Double value instead.
    The default value is “0”.

    To use this type in an external variable you have to use a JSON number without a decimal point (e.g. “123” instead of “123.0”).
    Note: Using too many digits in the JSON causes the number to be interpreted as a Long instead which is not supported by this node.
  • Double: A floating point decimal number with possible values from around 4.9·10⁻³²⁴ to 1.8·10³⁰⁸ in both the positive and negative range.
    The value must be a valid number (consisting only of an optional sign (“+”/“-”) and “0”-“9”). You can specify an exponent by appending “e” followed by the exponent. Apart from a numeric value you can also specify one of the following three (case-sensitive) special values: Infinity for positive infinity, -Infinity for negative infinity and NaN for “Not a Number”.
    If the number is too big or too small, it may be converted into one of the these special values. (You will be warned if this happens).
    You should keep in mind that you may loose some precision for big values or values that are very close to zero.
    The default value is “0.0”.

    To use this type in an external variable you have to use a JSON number. Numbers with and without a decimal point are supported.
  • Boolean: A truth value that can be either “true” or “false”.
    The default value is “false”.

    To use this type in an external variable you have to use a JSON boolean.

    Note: Any other value will be interpreted as “false”.
Variable Name
This is the name of the template variable. You can use any characters to define your name. However, a name must not be empty or be used by other template variables you have already defined in the node (regardless of the variable type).
Value

The value of the template variable. It must comply with the type-requirements as described above.

Note: This value will be used as an output if no external value is present.

Move/Remove variable
To improve readability of your template variables (e.g. grouping all values of a specific type) you can change their order by using the arrow buttons at the end of the row.
If you wish to delete a template variable definition, you can use the button with the bin icon next to the move buttons.

Input Ports

Icon
An optional input that is directly forwarded to the output of the node, unless overwritten by supplying variables via the REST API.

Output Ports

Icon
The injected variables, default values of the template variables if no variables have been injected.

Popular Successors

Views

This node has no views

Workflows

Links

Developers

You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.