Оператор CANCEL
Оператор CANCEL - создание действия, отменяющего изменения в текущей сессии.
Синтаксис
CANCEL [NESTED [nestedPropertySelector] [CLASSES]]
где nestedPropertySelector имеет один из следующих вариантов:
LOCAL
(propertyId1, ..., propertyIdN)
Описание
Оператор CANCEL создает действие, которое отменяет изменения в текущей сессии. С помощью указания ключевого слова NESTED можно указать локальные свойства, изменения которых не сбросятся при отмене изменений.
Параметры
-
NESTEDОпциональное ключевое слово, после которого можно указать, какие локальные свойства сохранят свои изменения после выполнения оператора
CANCEL. Само по себе, безLOCALи без списка свойств, на поведение оператора не влияет. -
LOCALКлючевое слово. Если указывается после
NESTED, то все локальные свойства сохранят свои изменения после выполнения оператораCANCEL. -
propertyId1, ..., propertyIdNНепустой список локальных свойств, указываемый после
NESTEDв круглых скобках. Каждый элемент списка является идентификатором свойства. Указанные в списке локальные свойства сохранят свои изменения после выполнения оператора. -
CLASSESКлючевое слово. Может быть указано, но на поведение оператора
CANCELне влияет.
Примеры
CLASS Sku;
in = DATA LOCAL BOOLEAN (Sku);
// одиночный CANCEL — сбрасывает все накопленные в текущей сессии изменения
dropChanges() { CANCEL; }
// отмена с сохранением конкретного локального свойства
dropChangesKeepIn() {
CANCEL NESTED (in[Sku]); // отменяем все изменения, кроме свойства `in[Sku]`
}
// отмена с сохранением всех локальных свойств
dropChangesKeepAll() { CANCEL NESTED LOCAL; }