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:
- action
- extract
- function
- if
- object declaration
- phase
- transform
- type
- while
- workflow
- WF_ACTION
- WF_EVENT
- WF_GATEWAY
- WF_WORKFLOW
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
link
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:
- for next loop
- a part of a time constraint in a link
- an optional queue name in the send command - see Message Queues
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