Перейти к основному содержимому
Версия: 5.x

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