NEW operator
The NEW operator creates an action that creates objects of the specified class.
Syntax
NEW className [WHERE whereExpr] [TO propertyId(prm1, ..., prmN)]
Description
The NEW operator creates an action which creates objects of the specified class and writes them as the returned values of certain properties. This operator can add its local parameters when defining a condition in the WHERE block. These parameters correspond to the objects being iterated for which the object will be created and are not parameters of the created action.
The TO block is used to define the data property to which value the created object is written.
There is a special option with the same name (NEW) in the FOR operator for creating objects, and it is recommended to use it when possible.
Parameters
-
classNameName of the custom class for the created objects. Composite ID.
-
whereExprAn expression which value is the condition of the created action. In this expression you can both access already declared parameters and declare new local parameters.
-
propertyIdAn ID of the property to which value the created objects are written. If the property is not specified, then:
- if the condition is not defined, it is automatically set to
System.addedObject[] - if the condition is defined, the created objects are not written anywhere
- if the condition is not defined, it is automatically set to
-
prm1, ..., prmNA list of data property parameter names. You can use only the local parameters that were added in the
WHEREblock. The number of parameters in the list must be equal to the number of parameters of the data property.
Examples
newSku () {
LOCAL addedSkus = Sku (INTEGER);
NEW Sku WHERE iterate(i, 1, 3) TO addedSkus(i);
FOR Sku s = addedSkus(i) DO {
id(s) <- 425;
name(s) <- 'New Sku';
}
}