业务异常与应用程序异常
选择正确的事务失败异常类型非常重要,因为此选择会影响 Orchestrator 是否选择重试队列项目的事务,如下所示:
-
应用程序异常描述了根源于技术问题的错误,例如应用程序无响应。
例如,某项目从员工数据库中提取电话号码,并为每个电话号码创建队列项目。然后这些队列项目会被处理并插入到财务应用程序中。如果在尝试处理事务时金融应用程序冻结,机器人找不到应在其中插入电话号码的字段,并最终引发错误。
应用程序可以解冻,因此仅通过重试事务即可解决此类问题。
-
业务异常描述了一个错误,该错误的根源在于自动化项目所依赖的某些数据不完整或丢失。
例如,项目从员工数据库中提取电话号码,并为每个电话号码创建队列项目。然后这些队列项目会被处理并插入到财务应用程序中。如果某个电话号码由于人为错误而缺少数字,则包含该电话号码的队列项目将变为无效。这将导致自动化引发异常,因为金融应用程序中的“电话号码”字段不接受包含不完整号码的队列项目。
重试事务无法解决问题,但还有其他更好的措施,例如通知人类用户此错误。
“设置事务状态”活动可用于通过多种方式封装此区别来塑造项目的逻辑:
- 如果“设置事务状态”活动由于应用程序异常而失败,而且创建队列时在“创建队列”页面中将“自动重试”选项设置为“是”,则系统将重试该队列项目。
- 默认情况下,Orchestrator 不会重试由于业务异常而失败的事务。发生这种情况是因为事务值和业务要求之间的不一致意味着创建队列项目时所基于的初始数据可能存在错误。要解决此类问题,可能需要采取其他措施,记录此类异常非常有用。
- 如果事务因某种类型的异常而失败,则“If 条件”或“流程决策”活动可用于采取不同的操作过程,例如使用“日志消息”活动记录自定义消息,或使用“消息框”活动显示包含有关事件的信息的窗口。
下面显示了此类项目的示例:
下面的屏幕截图显示了“设置事务状态”活动中的属性(左侧)与其在 Orchestrator 的“事务详细信息”窗口中的对应字段的映射。
“流程决策”活动的“True”分支将事务状态设置为“失败”(出现业务异常),而“False”分支将其设置为“失败”(出现应用程序异常)。