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

Управление сессиями

Управление сессиями — это операторы, работающие с сессией изменений: применение или отмена её накопленных изменений, выполнение действия в другой сессии, обращение к этим изменениям:

к сведению

Отметим, что последние два оператора создают свойства, а не действия.

Вложенные локальные свойства

При применении или отмене изменений, а также при создании новой сессии, значения всех локальных свойств по умолчанию сбрасываются в NULL — применение и отмена очищают текущую сессию, а создание новой сессии начинается с пустой. (Создание вложенной сессии устроено иначе: оно копирует текущую сессию в создаваемую вложенную, поэтому значения локальных свойств видны в ней с самого начала.) Это не всегда удобно, и, кроме того, часто бывает необходимо передать данные между разными сессиями / "циклами жизни" одной сессии. Для этого в платформе можно отдельные локальные свойства помечать как вложенные. В этом случае:

  1. При создании новой сессии - все значения локального свойства скопируются в создаваемую сессию, а при ее закрытии скопируются назад.
  2. При применении изменений - после завершения транзакции все значения локального свойства сохранятся (по умолчанию, после применения изменений, сессия очищается вместе со значениями всех локальных свойств).
  3. При отмене изменений - все значения локального свойства сохранятся такими же какими были перед отменой изменений.

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