Оператор 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';
}
}