Инструкция AFTER
Инструкция AFTER - вызов действия после вызова другого действия.
Синтаксис
AFTER action(param1, ..., paramN) DO aspectAction;
Описание
Инструкция AFTER задает действие (будем называть его аспектом), которое будет вызываться после вызова указанного действия.
Аспект получает те же значения параметров, что и основное действие, и выполняется после его тела, в том числе когда тело завершилось оператором RETURN. Если вызов отменен аспектом инструкции BEFORE или прерван ошибкой, аспект не выполняется. Выход из самого аспекта завершает только его. Несколько аспектов одного действия выполняются в порядке объявления.
Параметры
-
actionИдентификатор действия, после которого будет вызываться аспект.
-
param1, ..., paramNСписок имен параметров действия. Каждое имя задается простым идентификатором. К этим параметрам можно обращаться при задании аспекта.
-
aspectActionКонтекстно-зависимый оператор-действие, описывающий аспект.
Примеры
changePrice(Sku s, DATE d, NUMERIC[10,2] price) { price(s, d) <- price; }
// Сообщение будет показано после каждого вызова changePrice
AFTER changePrice(Sku s, DATE d, NUMERIC[10,2] price) DO MESSAGE 'Price was changed';