You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Introduction

Variables are assigned constant values and expressions. This applies to:

Expressions are a means to dynamically calculate values for variables. Consider that names of variables are case-sensitive.

Example:

  • true
  • 1
  • "some string"
  • $variable
  • $returnCode <= 3
  • $number + 1

Data Types

Boolean

The following constant values are supported: true, false

Example:

Expressiontrue
JSON"var": true
Expressionfalse
JSON"var": false

String

Strings are written in double quotes. The control characters \t (tab), \r (CR) and \n (NL) are literally written. To suppress its special meaning the $ character is written \$. No other characters are allowed to follow the \ escape character.

Example:

Expression
"some value"
JSON"var": "\"some value\""
Expression
"\t means the TAB control character"
JSON"var": "\"\\t means the TAB control character\""
Expression
"\r means the CR control character"
JSON"var": "\"\\r means the CR control character\""
Expression
"\n means the LF control character"
JSON"var": "\"\\n means the LF control character\""
Expression
"\$ means the literal character"
JSON"var": "\"\\$ means the literal character\""

Number

Numeric constants are implemented as Java  BigDecimal values and allow integer and long values to be specified.

Example:

Expression
1
JSON"var": 1

Operators

Comparison Operators

The operators <, <=, ==, !=, >=, > are supported.

The result of a comparison is the Boolean data type. Comparisons are available for strings and numbers. Both sides of a comparison have to use the same data type.

Should this rule not be considered and should e.g. a number be compared to a string then an Order will fail.

Example:

Expression
$var >= 199
JSON"isGreater": "$var >= 199"

Arithmetic Operators

Addition and Subtraction of two numbers with: +, -

Example:

Expression
1 + 1
JSON"var": 1 + 1
Expression
100 - 210
JSON"var": 100 - 210

String Operators

Concatenation of two strings with the ++ operator. Should operands of type Boolean or Number be used then they are converted to String.

Example:

Expression
"abc" ++ "def"
JSON"var": "\"abc\" ++ \"def\""

Conversion

Convert to Number

If a value of a variable with String data type represents a number then it can be converted. Otherwise an error is raised and the affected order fails.

Example:

Expression
"123".toNumber
JSON"var": "\"123\".toNumber"

Convert to String

Values of the Number data type can be converted to String.

Example:

Expression
123.toString
JSON"var": "123.toString"

Reading Variables

Referencing Variables

The syntax $VARIABLE, $`VARIABLE`, ${VARIABLE} or ${`VARIABLE`} is used to read the value of a variable.

  • Similar to a number of Unix shells a variable can be recalled with $ or with ${}.
  • Variable names can include dots, however, not at the beginning and not at the end of the variable name and not as a sequence of dots.
  • Variable names with dots have to be referenced like this: $`mail.smtp.host`, ${`mail.smtp.host`}

If the variable is unknown then an error is raised and the affected Order will fail.

Variable Function

Variables can be retrieved using the function 

variable( NAME, label=LABEL, job=JOB, default=DEFAULT )

    • NAME is a string expression for the name of the variable.
    • label=LABEL (optional) is the label of an instruction for which the variable is recalled. Consider that the label is not quoted. Example: label=A.
    • job=JOB (optional) is the name of a job for which the variable is recalled. Consider that the job name is not quoted. Example: job=MYJOB.
    • default=DEFAULT (optional) specifies a default value should the variable not exist.

Consider that a call to the variable function will fail if the variable is unknown and no default value is specified.

Example:

Expression
variable( "my_var", job=my_job )
JSON"\"variable( \\\"my_var\\\", job=my_job )\""
CommentThe value of the variable my_var is returned as available with the job my_job in a workflow. If the variable is unknown then the function fails.
Expression
variable( "my_var", label=my_label, default="some value" )
JSON"\"variable( \\\"my_var\\\", label=my_label, default=\\\"some value\\\" )\""
CommentThe value of the variable my_var is returned as available with the job identified by the label my_label in a workflow. If the variable is unknown then the default value some value is returned.

Built-in Variables

Built-in variables are available at the following scopes:

Workflow

  • $js7WorkflowPath
    • The unique name of a workflow. Consider that the name does not include the folder location of a workflow.
  • $js7WorkflowPosition
    • The position of an order in the workflow.
  • $js7Label
    • The label of the current instruction for which an order is executed.
  • $js7OrderId
    • The order identifier.
  • $js7ControllerId
    • The Controller's identifier.

Job

  • $js7JobName
    • The name of the current job for which an order is executed.
  • $epochMilli
    • The number of milliseconds since January 1st 1970 UTC.
  • $returnCode
    • The numeric exit code of the current job for which an order is executed.

Build-in Functions

  • env( "environment-variable", "default" )
    • The function reads the value of an existing OS environment variable. The name has to be specified in correct uppercase/lowercase spelling.
    • If the environment variable does not exist then an error is raised and the Order fails. Alternatively a default value can be specified.
    • Examples:

      Expression
      env( ('JS7_AGENT_CONFIG_DIR')
      JSON"env( 'JS7_AGENT_CONFIG_DIR' )"
      Sample Value/var/sos-berlin.com/js7/agent/var_4445/config
      Expression
      env( 'JAVA_HOME', '/usr/lib/jvm/java-1.8-openjdk' )
      JSON"env( 'JAVA_HOME', '/usr/lib/jvm/java-1.8-openjdk' )"
      Sample Value/usr/lib/jvm/java-1.8-openjdk
      Expression
      env( 'HOSTNAME', env( 'COMPUTERNAME' ) )
      JSON"env( 'HOSTNAME', env( 'COMPUTERNAME' ) )"
      Sample Value2021-05-03 07:30:42
  • now( format='yyyy-MM-dd hh:mm:ss', timezone='Europe/Berlin' )
    • The job start date. This date can be formatted using Java date qualifiers. Optionally a time zone can be specified, by default the UTC time zone is used.
    • Examples:

      Expression
      now( format='yyyy-MM-dd' )
      JSON"now( format='yyyy-MM-dd' )"
      Sample Value2021-05-03
      Expression
      now( format='yyyy-MM-dd hh:mm:ss' )
      JSON"now( format='yyyy-MM-dd hh:mm:ss' )"
      Sample Value2021-05-03 07:30:42
      Expression
      now( format='yyyy-MM-dd  hh:mm:ssZ', timezone="Europe/Berlin" )
      JSON"now( format='yyyy-MM-dd hh:mm:ssZ', timezone=\"Europe/Berlin\" )"
      Sample Value2021-05-03 09:30:42+02:00
  • scheduledOrEmpty( format='yyyy-MM-dd hh:mm:ss', timezone='Europe/Berlin' )
    • The date for which an orders is scheduled.
    • The date formatting options are the same as explained with the now() function.

Further Resources




  • No labels