Отмена изменений (CANCEL)
Оператор отмены изменений полностью очищает текущую сессию изменений.
Очистка сессии возвращает все накопленные в ней изменения: значения свойств данных (в том числе локальных) возвращаются к тем, что были в начале сессии, созданные в сессии объекты исчезают, изменения классов у существующих объектов откатываются.
Как и для других операторов управления сессиями, для оператора отмены изменений можно явно указать вложенные локальные свойства.
Этот оператор работает по-другому, если выполняется во время транзакции применения — например, внутри применяемого действия или внутри обработчика глобального синхронного события. В этом случае он не очищает сессию, а отменяет идущее в данный момент применение.
Язык
Для объявления действия, реализующего отмену изменений, используется оператор CANCEL.
Примеры
CLASS Sku;
in = DATA LOCAL BOOLEAN (Sku);
dropChanges() {
CANCEL NESTED (in[Sku]); // отменяем все изменения, кроме свойства `in[Sku]`
}