01.日志
系统日志
系统日志是指机器人、编辑器产生的执行日志,一般由云扩研发团队进行技术支持时使用。
- 编辑器,参考(需替换用户):
C:\Users{user}\AppData\Local\Encoo\Log - 机器人,在机器人安装目录下,参考:
C:\Program Files (x86)\Encoo Robot\Logs
业务日志
业务日志是指设计流程时根据业务的实际情况把一些有必要的信息作为日志来输出,用以后续业务核对或者流程中逻辑及流程运行情况的检查。
日志级别,共有三个选项:Debug, Info, Error,选择其中一项代表后续的编辑器、机器人、控制台能看到的日志信息:
- 选择 Debug 后,可查看最详细的日志信息
- 选择 Info 后,可查看 Info 和 Error 等级的日志信息
- 选择 Error 后,将只输出 Error 日志
如何定义日志级别?
流程的最开始建议调用【设置日志级别】组件,通过输入参数【日志级别】控制流程输出的日志信息,一般情况下,针对RPA开发者建议使用Debug级别。针对流程用户建议使用Info或Error级别。
那么什么情况下应该写业务日志?
正常的业务记录日志建议使用Info,针对某些已知的问题(不需要抛出错误),例如没有数据时下载按钮不可见,可以写入日志,以方便后续业务核对。
异常的错误建议使用Error,针对某些未知的错误,例如Catches中的异常,可以把异常日志
exception.Message+exception.StackTrace进行输出。
日志输出位置
编辑器日志
方法1:流程运行后输出窗口可见日志,可根据界面上的错误、信息、调试进行筛选
方法2:开始 - 设置 - 项目,勾选【保存运行、调试日志】,打开目录下的日志文件夹
机器人日志
打开流程库 - 流程包 - 日志
点击日志打开文件夹:
- job-xxx.log:记录组件运行日志
- job-xxx-businesslog.log:记录业务日志
控制台日志
打开控制台-RPA中心-执行记录,查看日志,也可以在此页面的日志级别中筛选对应的级别,例如一般会筛选错误级别的日志,以方便查看流程报错情况。
02.通知
业务通知
一般情况下流程运行成功、失败、中间需要人工介入等情况,建议进行通知。
业务通知的方式有短信、邮件、钉钉、企业微信。选择什么样的通知方式取决于用户群体的使用习惯:
1)短信方式,目前较多用于银行和政府,相对比较正式,实时性强,而且即使在没有流量的时候依然可以顺利接收。
2)邮件方式,使用比较广泛,可以发送/抄送给不同的用户,还可携带附件,可以很好进行追溯。
3)钉钉方式,需要企业中使用钉钉作为沟通工具,实时性强,一般作为通知来使用,比如流程需要人工介入,需要及时在钉钉中进行反馈。或者流程运行成功或者失败,也可以及时通知到用户。
4)企业微信方式,需要企业中使用企业微信作为沟通工具,说明可参考钉钉方式。
通知方式
短信通知
短信通知主要是两种方式:
第一种是阿里或者其他平台提供的短信平台,直接调用相关的API接口即可发短信。
第二种是需要搭建一个短信平台服务,然后根据平台的接口去调用发送短信。
邮件通知
邮件通知需要配置邮件发送方的服务器、代理、端口、密码、地址,还需要配置接收方的邮箱、内容、附件。
由于邮件发送服务器或者接收方有可能不稳定,建议放入重试组件中,可以多重试几次,降低失败率。
钉钉/企业微信
安装消息推送组件
通过组件市场搜索【消息推送】并进行安装
重新加载项目后,在编辑器组件库消息推送中查看【钉钉消息推送】和【企业微信消息推送】
钉钉消息推送
简单来说,如果只需要进行消息推送,首先新建一个钉钉群机器人,配置关键词,再把WebHook拷贝到组件,文本里需要包含机器人关键词,这样就可以把对应的文本推送给钉钉群。
企业微信消息推送
与钉钉消息推送类似,企业微信也需要先新建一个群机器人,再把WebHook拷贝到组件,这样就可以把对应的文本推送给企业微信群。
03.错误处理
在不写Try Catch 的情况下,组件异常会直接中断流程(除非勾选了失败继续),Studio会在输出框打印日志,Robot会对整个屏幕截图,记录日志并中断流程。
是否应该全局Try Catch
需要根据实际情况使用Try Catch,使用全局Try Catch代表需要捕获整体流程的错误:
Try中放入整体流程,若Try中出现异常,则会进入Catch(可以多个Catch 同时存在),在此可以打印日志并通知提示用户出错了,打印消息可参考:exception.Message+exception.StackTrace
Finally可选,若需要可在Finally中释放资源
单独子流程应该Catch哪些exception, 应该抛出哪些exception
- 数据操作中,循环录入数据的模块中,如果数据之间是相互独立的,所以希望出现异常也继续运行流程,建议使用Try Catch组件用以捕获因异常数据导致的错误,并且将异常数据进行对应处理(通常会通知用户该数据有异常),同时将异常详情写入业务日志中。
- 页面操作中,最常见的情况是页面没有按预期跳转(未点击到或者网页开小差未响应),接下来的操作会因为未匹配到元素或者等待元素超时而抛出异常中断流程。这时候我们不希望中断流程,可以在Catch/Finally中设置线程休眠30秒,再重新刷新页面。
- 关闭可能出现的弹出窗,例如Chrome未正常关闭,下次打开时会有提示恢复页面弹出框,我们希望关闭这个页面。但是这个弹窗并不是一定出现,我们会尝试获取这个元素并点击关闭,这时候需要在外层套一个Try Catch防止抛异常(如弹窗未出现获取元素或点击元素会抛异常),这种情况也可以把组件设定成失败继续。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。