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

Отмена изменений (CANCEL)

Оператор отмены изменений полностью очищает текущую сессию изменений.

Очистка сессии возвращает все накопленные в ней изменения: значения свойств данных (в том числе локальных) возвращаются к тем, что были в начале сессии, созданные в сессии объекты исчезают, изменения классов у существующих объектов откатываются.

Как и для других операторов управления сессиями, для оператора отмены изменений можно явно указать вложенные локальные свойства.

warning

Этот оператор работает по-другому, если выполняется во время транзакции применения — например, внутри применяемого действия или внутри обработчика глобального синхронного события. В этом случае он не очищает сессию, а отменяет идущее в данный момент применение.

Язык

Для объявления действия, реализующего отмену изменений, используется оператор CANCEL.

Примеры

CLASS Sku;
in = DATA LOCAL BOOLEAN (Sku);

// сбрасываем всё, что накоплено в текущей сессии
dropChanges() { CANCEL; }

// отменяем изменения, сохраняя локальное свойство `in[Sku]`
dropChangesKeepIn() {
CANCEL NESTED (in[Sku]);
}