Operations
An operation is a high level component of an Action, which determines the primary function of the Action.
Operation | Description |
---|---|
Assignment |
Assigns a new value to an existing value. Only temporary values and dynamic values can be assigned a new value. Typically, the value to be assigned is the result of a built-in function or a temporary value holding the result of a more complex calculation. For example, assign a new geometry or attribute to a feature. This is used widely to fix or integrate or transform data by updating it. |
Break |
When used inside of a loop this will cause the loop to terminate. Otherwise the current action will be terminated. |
Built-in Operation |
Performs a specific task on the data, determined by the built-in function that is selected. If the function requires parameters, these must be added as child values. See Built-in Operations. |
Create Object |
Creates a new object in the class specified. This is used widely to create reporting features representing the exact locations of problems or when inferring new data or creating an enhanced copy of the data. Note: If these new objects will be exported to the Oracle database, the appropriate columns must be created prior to running the action. |
Delete Object |
Deletes an existing object. You can specify the class of object to be deleted and its name, if it has been given one. Note: Usually you should aim to delete the primary object that the rule is iterating over to avoid later iterating over a feature that has been deleted. |
If...Then...Else |
As opposed to the IF...THEN...ELSE condition, which decides which condition to check, this operation is used to decide which operation to perform. The first part is the condition to check, the second part is the operation to perform if the condition is true and the (optional) third part is the operation to perform if the condition is false. |
Loop Over Objects |
Step over a specified set of objects in the cache and perform an operation on each one. There should be two child elements: a test condition and an operation. The operation will be performed for each object that satisfies the test condition. A limit(n) may be specified. If a positive limit n is entered, then only the first n objects will be traversed. If n is 0 or negative, then all matching objects will be traversed. |
Loop Over Nearest Objects |
Loop over nearest n objects, executing an operation on each. Specify the following parameters:
There should be three child elements:
The operation will be performed for the nearest n objects that satisfy the test condition, in order of increasing distance from the source geometry. Only the first n objects that pass the first test condition have the operation applied to them |
Loop Over a Collection or Geometry |
Step over a specified geometry or collection and perform an operation on each part. Collections are often created as attribute values by specific bespoke datastores to represent things like multi-cardinality lists. Note: Geometries can be treated like collections and stepping over each part allows each part of a single or multi-part geometry to be processed individually. The loop will run for each part of a geometry - once for a single part geometry and multiple times for a multi-part geometry. There should be two child elements: a value (a collection or geometry) and an operation. The operation is performed for each object or element in the collection, or each part in the geometry.
|
Report on Values |
Outputs specified value(s) for the current object in the XML results for this task. Each report element should be given a unique label that will identify it in the report produced. The values may be reported once for each object processed, or once for the entire run, after the last object is processed. |
Sequence |
Used to perform a number of operations one after the other in the specified order. There should be at least two child operations which will be executed in order. For example, this can be used to execute several operations in an IF...THEN...ELSE operation like BEGIN..END or {} in programming languages. |
While Loop |
Performs an operation (often a sequence) zero or more times.
Note: You must be careful to avoid infinite loops by ensuring that the condition will eventually be met. |