Skip to main content

Language Glossary

A cheat-sheet of the OpenDataDSL keywords and language syntax

abort​

Immediately stops the running of a script and outputs a supplied message to the console

abort "Aborted"

action​

Keyword when creating a workflow action - see Workflows and Processes

xml_url = action in "extractors"
...
end

and​

Used as a logic condition in the where clause of the find command

result = find ${object:"Person"} where first = "John" and Last = "Doe"

as​

As is used in the following commands:

byref​

Used in user definable functions to pass parameters 'by reference'

ceiling​

A rounding method - see Precision and Rounding

set rounding ceiling

check​

Used in an extractor to check a checkbox

clear​

Used in a transformer to clear variables during the transformation - see Data Transformation

create with TimeSeries clear start, quantity

click​

Used in an extractor to click a button

create​

Used in a transformer to create new variables - see Data Transformation

create with data

crs​

Used in a set command to set the current coordinate reference system, the options are:

set crs earth   // Use the Earth coordinate system
set crs planar // Use a planar coordinate system

debug​

A logging level used with the log command

log debug "This is a debug message"

default​

Used to set a default value for a property on a type command - see Data Modelling

name as String() default "test"

delay​

Used in a phase command to specify the amount of time to wait before retrying a failed phase - see Workflows and Processes

phase "EXTRACT" retries 1 delay 10 seconds then reschedule 1 hour

delete​

Used to delete a variable from an active variable service

delete ${object:"test"} "optional delete reason"

down​

A rounding method - see Precision and Rounding

set rounding down

else​

Else provides the default alternative code path if a condition isn’t met in a if statement

if test == true
// do something
else
// do something else
end

elseif​

Elseif provides a alternative code path within an if statement based on a condition

if test == 1
// do something with 1
elseif test == 2
// do something with 2
end

end​

End terminates the following structures:

exit​

Exit is used as an exit transition configuration in an action and as a modifier for the on exit command - see Workflows and Processes

extends​

Used when declaring a type to signify that it extends another existing type - see Data Modelling

test = type extends basetest
end

external​

Used to tag a phase in a workflow that will be executed externally to the workflow, such as loading data on-site - see Workflows and Processes

phase "LOAD" external
end

extract​

Used to create extractors for navigating a web site in order to extract data

fail​

Used in a workflow to force a failure in order for a workflow phase to go into a retry loop - see Workflows and Processes

fail "Failed"

false​

A negative boolean value

fatal​

A logging level used with the log command

log fatal "Fatal Error"

fill​

Used with an extractor to enter a value into an input field on a web form

find​

Used to find variables in an active variable service

result = find ${object:"Person"} where first = "John" and last = "Doe"

floor​

A rounding method - see Precision and Rounding

set rounding floor

function​

Declares a new user defined function

gateway​

Declares a new workflow gateway - see Workflows and Processes

half_down​

A rounding method - see Precision and Rounding

set rounding half_down

half_even​

A rounding method - see Precision and Rounding

set rounding half_even

half_up​

A rounding method - see Precision and Rounding

set rounding half_up

hour(s)​

Used as a time-unit when specifying a delay to a phase in a workflow - see Workflows and Processes

phase "EXTRACT" retries 1 delay 1 hour

if​

Checks a condition to see whether to perform a set of statements

if test == true
// do something
end

ignore​

Used as part of an option to ignore errors

on error ignore

import​

Used at the beginning of a script to import the user defined functions from another script.

import ${script:"#CurveScript"}

in​

Used in a for statement when iterating through a list

for item in list
print item
next

Also used in a workflow, workflow action and a gateway to configure an input variable - See Workflows and Processes

info​

A logging level used with the log command

log info "Information"

intersects​

Used in geo-spatial queries to to find intersecting polgons, e.g.

items = find ${object:"Places"} where location intersects london

into​

Used in a transformer and an extractor to indicate what to transform/extract data into - see Data Transformation

Used to create a 2-way relationship between 2 objects - see Data Modelling

link ${object:"Address/ABCNewcastle"} as address/residents of ${object:"Person/JaneDoe"}

log​

Used to output a message to the log file

log info "Hello World"

matches​

Used as a regex match expression when defining a property on a type in order to validate the input value for the property - see Data Modelling

minute(s)​

Used as a time-unit when specifying a delay to a phase in a workflow - see Workflows and Processes

phase "EXTRACT" retries 1 delay 10 minutes

missing​

Used with a set command to define how missing values are treated, especially when used with functions, e.g.

// Ignore missing values
set missing ignore

// Set missing values to 0
set missing 0

next​

Terminates a for loop statement

for i = 1 to 10
print i
next

object​

Used to create an object from a type - see Data Modelling

ABC = object as Company
name = "ABC Ltd"
end

Also used with the following commands:

of​

Used as an optional keyword when creating a link between 2 objects - see Data Modelling

link ${object:"Address/ABCNewcastle"} as address/residents of ${object:"Person/JaneDoe"}

on error​

Used to define what to do in case an error is thrown

on error ignore
on error exit

optional​

Used in a workflow, workflow action and a gateway to flag that an input variable is optional - See Workflows and Processes

or​

Used as a logic condition in the where clause of the find command

result = find ${object:"Person"} where first = "John" or first = "Jane"

out​

Used in a workflow, workflow action and a gateway to configure an output variable - See Workflows and Processes

param​

Used in an extactor

pause​

Pause execution of a script

pause 10 seconds

phase​

Used to split a workflow into meaningful functional sections for individual monitoring - see Workflows and Processes

phase "EXTRACT" retries 1 delay 10 seconds then reschedule 1 hour
WF_ACTION getxml ai
"ok" -> transformxml
"failed" -> stopfailed
ai.url = input.url
result = xml_url.run(ai, output)
end
end

precision​

Used to configure the number of decimal places used when displaying numbers - see Precision and Rounding

print​

Used to output a message to the console

print "Hello World"

private​

Used as a classifier when searching for data using the find command

results = find ${object:private/"Person"}

profile​

A profile is a generic name for a data object and is used in find command with the object and certain other services such as currency, to return data entities rather than object entities. The example below returns the FX Spot time-series data:

// Fetch all data for all ECB_FX currencies
data = find profile SPOT from ${currency:public} where source == "ECB_FX"

public​

Used as a classifier when searching for data using the find command

results = find ${object:public/"Person"}

rename​

Used to change the id of a resource in the database - see rename

rename ${calendar:"MYCAL"} as UK_PEAK

reschedule​

Used as a parameter with the phase command to reschedule a workflow for a period of time later - see Workflows and Processes

phase "EXTRACT" retries 1 delay 10 seconds then reschedule 1 hour

retries​

Used as a parameter with the phase command to reschedule a workflow for a period of time later - see Workflows and Processes

phase "EXTRACT" retries 1 delay 10 seconds then reschedule 1 hour

return​

Used to return a value, usually used within actions to specify the transition to follow - see Workflows and Processes

return "ok"

rounding​

Used to configure the rounding method used when displaying numbers - see Precision and Rounding

rows​

Used as an output type of a transformer to specify that the output should be a list of row variables - see Data Transformation

ECB_FX = transform XML into rows as fx
end

save​

Used to persist a variable to the OpenDataDSL services

save test log "optional save reason"

second(s)​

Used as a time-unit when specifying a delay to a phase in a workflow - see Workflows and Processes

phase "EXTRACT" retries 1 delay 30 seconds

select​

Used in an extractor

send​

Used to send a variable to a message queue - see Message Queues

set​

Used to set an option in a script - see Precision and Rounding

step​

Used in a for loop to define how much to increment the loop index by on each pass

for i = 1 to 10 step 2
print i
next

tag​

Used to add a named tag on a version of an element - see Data Versioning

then​

Used as a keyword in the phase command to reschedule a workflow for a period of time later - see Workflows and Processes

phase "EXTRACT" retries 1 delay 10 seconds then reschedule 1 hour

throw​

Used to throw a custom exception

to​

Used in the following statements:

transform​

Used to create a transformer to map data from a variable to another variable usually as part of an ETL process - see Data Transformation

true​

A positive boolean value

type​

Used to create a new data type - see Data Modelling

uncheck​

Used in an extractor to uncheck a checkbox

unique​

Used in a transformer to configure the expression that defines uniqueness when building up the output object list - see Data Transformation

up​

A rounding method - see Precision and Rounding

set rounding up

use​

Used to switch to a different data environment

versioned​

Used as a modifier when creating types to signal that the objects created on this type should be versioned - see Data Versioning

warn​

A logging level used with the log command

log warn "Warning"

where​

Used in a find command to filter the results

results = find ${object:Person} where first = "John"

while​

Used to loop around some code whilst a condition is true - see Getting Started With ODSL

a = 0
while a < 10
a = a + 1
end

with​

Used as a join keyword with the following statements:

within​

Used in geo-spatial queries to find polygons or points within another polygon, e.g.

items = find ${object:"Places"} where location within london

workflow​

Used to create a workflow - see Workflows and Processes

WF_ACTION​

Used as a keyword to configure an action in a workflow - see Workflows and Processes

WF_EVENT​

Used as a keyword to configure an event in a workflow - see Workflows and Processes

WF_START​

Used as a keyword to configure the start of a workflow - see Workflows and Processes

WF_GATEWAY​

Used as a keyword to configure a gateway in a workflow - see Workflows and Processes

WF_WORKFLOW​

Used as a keyword to configure a sub-workflow in a workflow - see Workflows and Processes