Оператор NEW
Оператор NEW
- создание действия, которое добавляет объекты заданного класса.
Синтаксис
NEW className [WHERE whereExpr] [TO propertyId(prm1, ..., prmN)]
Описание
Оператор NEW
создает действие, которое добавляет объекты заданного класса и записывает их в качестве возвращаемых значений некоторых свойств. Этот оператор может добавлять свои локальные параметры при задании условия в блоке WHERE
. Эти параметры соответствуют перебираемым объектам, для которых будет выполняться добавление объекта, и не являются параметрами создаваемого действия.
Для указания первичного свойства, в значение которого будет записываться создаваемый объект используется блок TO
.
Для добавления объектов также существует специальная опция с одноименным названием (NEW
) в операторе FOR
, и при возможности рекомендуется использовать именно ее.
Параметры
-
className
Имя пользовательского класса создаваемых объектов. Составной идентификатор.
-
whereExpr
Выражение, значение которого является условием создаваемого действия. В этом выражении можно обращаться как к уже объявленным параметрам, так и объявлять новые локальные параметры.
-
propertyId
Идентификатор свойства, в значение которого будут записаны создаваемые объекты. Если свойство не указано, то:
- если условие не задано, оно автоматически устанавливается равным
System.addedObject[]
- если условие задано, создаваемые объекты никуда не записываются
- если условие не задано, оно автоматически устанавливается равным
-
prm1, ..., prmN
Список имен параметров первичного свойства. Можно использовать только локальные параметры, которые были добавлены в блоке
WHERE
. Количество параметров в списке должно совпадать с количеством параметров первичного свойства.
Примеры
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';
}
}