Когда возбуждается
отказ уровня ошибки, пользовательский интерфейс автоматически должен
переходить на страницу неисправности (см.
Виды отказов,
Уровни серьёзности отказов,
Автоматический переход на страницу неисправности).
Однако в некоторых случаях
переход на страницу неисправности может быть отменён - возникает т.н. отложенный отказ (состояние отложенного отказа).
В текущей версии
NDemia CashMatic KioskBrowser возможны следующие случаи отложенного отказа:
Обратите внимание: не каждый отказ считается
ошибкой (см.
Уровни серьёзности отказов). Если отказ не считается
ошибкой, то он не требует
перехода на страницу неисправности и не запрещает переходов на любые URL-адреса. Если отказ считается
ошибкой, то он требует
перехода на страницу неисправности, переход выполняется либо
автоматически, либо, если отказ отложен по некоторым условиям, то переход должен быть выполнен
прикладным скриптом или
компонентом расширения при снятии этих условий.
Если отказ был отложен по причине ненулевой суммы
принятых денег, то условия изменятся после сброса
платёжного сеанса (сумма
принятых денег станет нулевой).
Прикладной скрипт должен проверить, не требуется ли
переход на страницу неисправности, и при необходимости выполнить этот переход (переходы на все остальные адреса будут запрещены до снятия отказа).
Пример:
CashMatic.Session.Reset(); //сброс платежного сеанса
if(CashMatic.Terminal.Failure) //истина, если в программе зафиксирован отказ,
//требующий перехода на страницу неисправности
//при ошибках переходим на страницу неисправности
navigate("CashMatic:failure");
Прикладной программист имеет возможность некоторым образом изменять
контроль и
автоматизацию переходов - см.
Дополнительные условия обработки отказов.
Обработка отложенных отказов имеет следующую особенность: если восстановилось нормальное состояние
терминала (все ошибки устранились), а
переход на
страницу неисправности (
"CashMatic:failure") к этому моменту так и не произошёл, то не произойдёт и
автоматический переход на
стартовую страницу (
"CashMatic:start"), поскольку уже нет смысла сбрасывать контекст платежа (см.
Автоматический переход на страницу неисправности,
Специальные URL,
Модель обработки отказов).
Автоматический переход на
страницу неисправности выполняется только в момент возбуждения
отказа уровня ошибки, если других действующих ошибок нет. Если по какой-либо причине
переход в этот момент не произошёл, то автоматически он не произойдёт и в дальнейшем, даже если возникнут новые ошибки - пока все ошибки не будут сняты.