业务流程的异常处理方案

异常处理方案

假设正常流程如下:
在这里插入图片描述

如果步骤2出现异常,那么处理方案一般有以下两种:
1、撤销步骤1,当整个流程没有发生过;
在这里插入图片描述
2、提供补救步骤2.1,然后继续执行步骤3
在这里插入图片描述

加入补救步骤时,就要考虑如果补救步骤也发生异常时的处理情况。

举例

车队加油卡充值流程
在这里插入图片描述

场景1

假设银行卡支付成功后,加油卡的充值失败了。这就意味着客户付款了,但是自己的加油卡却没有充到钱。

这时候可以有以下两种处理方案。

方案1

撤销银行卡支付,当这次的充值流程没有发生过。
在这里插入图片描述

方案2

提供“补充值”步骤,补充值成功后继续打印票据。并且如果“补充值”失败了,允许重新发起“补充值”。
在这里插入图片描述

这种场景不推荐使用方案2,因为如果补充值一直失败没有成功过,那么客户往往会要求退款。这时就会撤销银行卡支付。所以不如直接使用方案1,一旦加油卡充值失败,直接撤销银行卡支付。

场景2

假设加油卡充值成功后,打印票据失败了。

这种时候也有两种处理方案。

方案1

撤销加油卡的充值和银行卡的支付,当这次的充值流程没有发生过。
在这里插入图片描述

方案2

提供“重打印”步骤。如果“重打印”失败了,允许重新发起“重打印”。
在这里插入图片描述
很显然,方案1不合适。因为客户真正关心的是加油卡充值是否成功,至于票据,有些客户可能就没那么关心了。所以应该采用方案2。

总结

如果异常发生在“与客户强相关”的步骤(如:充值)时,一般是撤销之前的步骤当作业务流程没有发生过。

如果异常发生在“与客户弱相关”的步骤(如:打印票据),或者“与客户无关”的步骤(如:交易流水上送,这是与商户相关的)时,一般是提供补救步骤,并且如果补救步骤也发生异常的话,允许重新执行补救步骤。

猜你喜欢

转载自blog.csdn.net/jiejingguo/article/details/122718242