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.
Specification mode
Choose whether to accept any input or require input to match template variables specification.
  • 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.

Variable loading mode
Choose how to load the flow variables from the connected input.
  • 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.
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.
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).
Template Variables

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.

  • Variable Name: 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.
  • 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”.
  • 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.

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.