SterBase
Операции

Проведение и отмена проведения

Семантика команд

DocumentManager::post отправляет команду post через object runtime. unpost отправляет отдельную команду unpost. Отмена не подменяется обычным сохранением.

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

Предусловия

Менеджер проверяет типизированную ссылку, сохранённый и загруженный объект, ненулевую ревизию, aggregate_complete, доступный runtime и контекст изменения.

Ситуация Статус
Не сохранён/не загружен document-post-loaded-document-required
Загружена часть строк document-post-complete-aggregate-required
Нет контекста изменения mutation-context-unavailable

У отмены аналогичные статусы с префиксом document-unpost-.

Параметры проведения

DocumentPostingInvocation содержит mode и необязательный procedure_argument. Он существует в пределах команды и не является полем хранения или глобальным состоянием сеанса. Допустимые режимы и их интерпретация должны подтверждаться контрактом вызова; здесь они не выдумываются.

Проверка сценария

  1. Прочитать сохранённый документ целиком.
  2. Выполнить post, проверить результат и прочитать состояние заново.
  3. Выполнить unpost, снова проверить результат и чтение.
  4. Проверить движения и итоги в пределах нужного сценария.

Смена одного флага не доказывает правильность бухгалтерского результата. Публичная матрица поддержанных конфигураций и видов проведения пока не опубликована.