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

Вычисляемые события

Вычисляемые события - события, которые при изменении значения свойства (условия) на не NULL, изменяют значение одного свойства на другое. При этом, в отличии от простых событий, это изменение происходит, не в момент изменения условия, а вычисляется каждый раз при обращении к изменяемому свойству. Если в сессии уже есть изменение этого свойства, это изменение считается более приоритетным, чем изменение в вычисляемом событии.

Для каждого свойства может быть только одно вычисляемое событие, которое изменяет это свойство.

Язык

Для задания вычисляемых событий используется инструкция <- WHEN.

Примеры

// при добавлении клиента, по умолчанию, предоставить ему заданную скидку
defaultDiscount = DATA NUMERIC[6,2] ();
discount = DATA NUMERIC[6,2] (Customer);
discount(Customer c) <- defaultDiscount() WHEN SET(c IS Customer);

quantity = DATA NUMERIC[10,2] (OrderDetail);
price = DATA NUMERIC[10,2] (OrderDetail);
sum = DATA NUMERIC[10,2] (OrderDetail);

sum(OrderDetail d) <- quantity(d) * price(d) WHEN CHANGED(quantity(d)) OR CHANGED(price(d));