Оператор EXEC
Оператор EXEC создает действие, выполняющее другое действие.
Синтаксис
[EXEC] actionId(expression1, ..., expressionN) [TO toProperty]
Описание
Оператор EXEC создает действие, которое выполняет другое действие, передавая ему значения выражений в качестве параметров. Если у выполняемого действия есть результат, его можно записать в свойство, указанное после TO.
Параметры
-
actionId -
expression1, ..., expressionNСписок выражений, значения которых будут передаваться выполняемому действию в качестве аргументов. Количество выражений должно соответствовать количеству параметров выполняемого действия.
-
toPropertyОпциональный идентификатор свойства. Если указан, значение, возвращаемое выполняемым действием, записывается в это свойство. Класс возвращаемого значения и сигнатура
toPropertyдолжны соответствовать классу результата и параметрам результата выполняемого действия.
Примеры
// объявление действия importData с двумя параметрами
importData(Sku sku, Order order) {
MESSAGE 'Run import for ' + id(sku) + ' ' + customer(order);
}
order = DATA Order (OrderDetail) NONULL DELETE;
// объявление действия runImport, которое будет вызывать importData
runImport(OrderDetail d) { importData(sku(d), order(d)); }
// вызов действия с результатом и запись результата через TO
getPrice (Item i) ABSTRACT NUMERIC[10,2];
currentPrice = DATA LOCAL NUMERIC[10,2] ();
showPrice (Item i) {
getPrice(i) TO currentPrice;
MESSAGE 'Price: ' + currentPrice();
}
// запись результата, зависящего от дополнительного параметра
captionByLanguage (Item i) ABSTRACT STRING[100] (Language);
caption = DATA LOCAL STRING[100] (Language);
fillCaption (Item i) {
captionByLanguage(i) TO caption;
}