Схема обработки исключений
Предположим, что нормальный поток выглядит следующим образом:
Если на шаге 2 возникло исключение, обычно есть два решения:
1. Отменить шаг 1, если весь процесс не был выполнен;
2. Предоставить исправление на шаге 2.1, а затем перейти к шагу 3.
При добавлении шага исправления необходимо подумать, что делать, если шаг исправления также создает исключение.
пример
Процесс пополнения топливной карты автопарка
Сцена 1
Предположим, что после успешной оплаты банковской картой пополнение газовой карты не удается. Это означает, что клиент заплатил, но средства с его газовой карты не были списаны.
На данный момент есть два возможных решения.
план 1
Отмените оплату банковской картой, если в этот раз процесс пополнения не произошел.
Сценарий 2
Укажите шаг «пополнения стоимости» и продолжайте печатать квитанцию после успешного пополнения суммы. И если «стоимость пополнения» не удалась, разрешается повторно инициировать «стоимость пополнения».
Вариант 2 не рекомендуется для этого сценария, поскольку клиенты часто запрашивают возврат средств, если пополнение суммы не удалось выполнить. В это время оплата картой будет отменена. Поэтому лучше напрямую использовать вариант 1. Если пополнение газовой карты не удастся, оплата банковской картой будет отменена напрямую.
сцена 2
Предположим, что после успешного пополнения топливной карты чек не удается распечатать.
На данный момент есть два решения.
план 1
Отмените пополнение газовой карты и оплату банковской картой, если в этот раз процесс пополнения не произошел.
Сценарий 2
Обеспечивает шаг «перепечатки». Если «перепечатка» не удалась, разрешается повторно инициировать «перепечатку».
Очевидно, что вариант 1 не подходит. Потому что, что действительно волнует клиентов, так это успешность пополнения газовой карты, а что касается счетов, то некоторых клиентов это может не волновать так сильно. Поэтому следует использовать вариант 2.
Подведем итог
Если исключение возникает на этапе, который « сильно связан с клиентом » (например, пополнение счета), обычно предыдущие шаги необходимо отменить, как если бы бизнес-процесс не происходил.
Если исключение возникает на этапе, который « слабо связан с клиентом » (например, печать билета) или на шаге, который « не имеет отношения к клиенту » (например, отправка потока транзакций, связанного с продавцом) ), как правило, обеспечивают действия по исправлению ситуации. И если на этапе исправления возникает исключение, разрешается повторно выполнить шаг исправления.