人人都可以开发RPA自动化,但开发好用的自动化,这不是每个人能够做倒的。

所以这里分享一个RPA流程设计中的最佳实践,关于前端机器人的文件管理,方便大家快速构建,稳定、高质量的数字员工助手!

前端流程自动化,又叫有人值守自动化,是比无人值守自动化更规则多变的一种流程。它有变动的输入内容,变动的运行时间,由业务老师自主添加数据,触发流程,后续可以参与交互或者自主运行,可以说是一种半自动化的运行方式。

在设计前端流程之前,我们要规划好的交互方式用到的各类文件,比如配置文件、模板文件、历史任务记录和输出文件。为了方便方便管理和扩展,大家可以建立类似的文件夹结构,方便之后使用中的快速修改和查看。同时配合相应的设计框架,在设计中使用这些文件。

1.搭建统一的项目文件夹结构

1.在我的桌面建立“数字员工RPA“文件夹;
2.然后在其中为每个流程项目建立独立的文件夹,比如"XX数据获取自动化",“XX数据处理自动化”;
3.在项目文件夹中,建立"config"配置文件夹,用来存放的流程参数配置Excel文件,比如登录账户密码、产品列表等(方便修改新增);
4.在项目文件夹中,建立"input"输入文件夹,用来存放的原始的输入数据文件,
在文件内容被处理成功之后需要移动到output或history历史文件夹中,所以成功运行后此文件夹应该为空;
5.在项目文件夹中,建立"output"输出文件夹,用来存放的最终的输出文件;
6.在项目文件夹中,建立"temp"临时数据文件夹,用来存放的临时下载和保存的数据文件,它可以定期被清理;
7.在项目文件夹中,建立"template"模板文件夹,用来存放Excel\Word\PPT的输出模板,
这个文件不会在流程中间被修改,只会在流程初期被复制到output文件夹;
8.在项目文件夹中,建立"history"历史文件夹,用来存放历史的任务数据记录或者称为日志,用来跟踪处理的过程。
比如,每次获取数据之后,和历史表来对比哪些是新的,然后把这批新的条目加入到历史表,状态设为“新增”,
然后对“新增”状态的记录逐条做处理,处理完一条,本条状态改为“完成”。
历史表和状态控制的好处是:当流程出错中断了,下次运行仍然能够从断点继续执行,不会重复,不会遗漏。

2. 为不同的流程类型设计文件和流程框架

所以综上,针对前端自动化项目里最常见的两种类型,为他们设计一下流程主体的逻辑结构:

2.1 “批量文件处理”类型

本例中是多个输入文件中的内容提取汇总到一个输出文件中(如果是一进一出的文件,可以把模板复制放到循环里面)。业务老师需要先手工复制待处理文件到input文件夹中,然后启动流程。

在流程设计框架中,一般需要以下4个步骤

  1. 创建一个当日的”输出文件名”,比如“开户信息提取-年月日.xlsx”( 年月日可以编辑文本,插入笔记本中的date\YYYYMMMDD)
  2. 查看输出文件夹里有没有当日的输出文件。如果没有,就复制template文件夹下的word\Excel\ppt模板文件到output文件夹,并改文件名为输出文件名
  3. 打开这个输出文件,方便后面写入;
  4. 循环读取input文件夹下的文件(固定文件名,或者文件名筛选),打开文件,内容读取,复制到输出文件中,
  5. 处理完一个文件,移动文件到history历史文件夹归档;直到input文件夹为空
  6. 输出文件再做加工(合计,校对等);
  7. 需要发送邮件的,再添加邮件组件,添加上述附件

注意:
批量文件类型的自动化,因为每个文件本身就代表了任务,所以不需要再有一个任务表来记录。
处理完一个,移动一个,所以任务逐个被执行,越来越少;哪怕断电,下次再运行就会自动处理剩余的文件!

2.2 “批量任务执行”类型

针对大批量的自动化任务,我们设计时如果只考虑了理想状态,实际流程运行中会遇到各种问题,浏览器崩溃,Excel崩溃,人工干预鼠标键盘,都会造成流程中断;一旦中途出错了,流程就需要从头再来一遍,而且没有地方核对过去的记录。

本类型的自动化可以处理,数据获取,数据填表,数据报送,数据下载等的批量操作。同时为了任务中断后避免重复执行和遗漏,使用了一个历史任务表,来记录本次的计划和实际执行的进度,确保完整性和不重复,所以可重复执行(遇错重试)。

第一部分. 获取或更新任务列表

  1. 初始化:关闭excel,关闭浏览器/应用(保留手工登录的除外)
  2. 初始化:读取Config文件夹下的参数配置文件config.xlsx,读取账户密码,然后登录应用或网站
  3. 读取history任务表Excel
  4. 网站导航/应用导航,获取任务内容保存到临时文件
  5. 取到的数据在history表中查找,未找到的,新增到History任务表

第二部分.循环处理每条任务

  1. 读取History表,过滤状态“新增”的,然后逐条处理,比如文件报送上传下载。需要用到Word\Excel模板的,可以在这个步骤里复制模板文件到输出文件夹,然后按任务再加工(获取详情,填表,发邮件…);
  2. 处理完一条,校验结果(成功标志),本条状态改为“完成”,记录完成时间;
  3. 取下一条任务,继续处理;

第三部分.收尾

  1. 完部列表处理完毕后,统计输出一个本次处理的任务汇总表,Excel ,CSV都行;
  2. 发送弹窗通知,或者邮件通知,结束;

注意: 如果流程中个别任务条目反复有异常,哪怕重试也无法解决的,那可能是数据错误、或者处理逻辑不适用、或其他原因。可以手工在历史任务表中标记状态为“数据异常”,作为例外项目,不参与自动化。

综上所述,我们的创建文件结构,使用设计框架,最终的目的是快速搭建高质量的自动化流程:

1. 它需要日以继夜,百折不挠的稳定运行;
2. 这次运行不会受上一次的成功或失败的影响;
3. 有系统异常,断电,崩溃,重启,可以反复重试
4. 只有正确的数据会提交
5. 数据不会重复提交

前端机器人流程设计的最佳实践:输入输出文件结构和逻辑框架相关推荐

  1. 搜索引擎优化网页设计:最佳实践

    作为一名网页设计师.网页的设计是我们一个最直观的辨认.我们如今的生活依赖于网络,依赖于这个高速让我们互知和沟通的工 具.它早已不不过一个静态的页面,而是一个有思想有文化无国界的一个内容涵盖量丰富的还有 ...

  2. Prometheus Metrics 设计的最佳实践和应用实例,看这篇够了!

    Prometheus 是一个开源的监控解决方案,部署简单易使用,难点在于如何设计符合特定需求的 Metrics 去全面高效地反映系统实时状态,以助力故障问题的发现与定位.本文即基于最佳实践的 Metr ...

  3. 卡片式设计的最佳实践分享

    2017-02-17 三达不留点gpj CocoaChina 卡片本质上是一个简单的信息容器,信息量有限,但设计干净整洁.现如今,在保证界面具有优秀可用性的同时,卡片式的设计甚至成为了平衡界面美学的默 ...

  4. mysql数据库设计实践_MYSQL教程分享20个数据库设计的最佳实践

    <MYSQL教程分享20个数据库设计的最佳实践>要点: 本文介绍了MYSQL教程分享20个数据库设计的最佳实践,希望对您有用.如果有疑问,可以联系我们. MYSQL教程数据库设计是整个程序 ...

  5. 业务单据进行领域驱动设计的最佳实践

    作者:少岚 阿里同城履约物流技术团队 本文以电商购物场景为例,介绍了领域驱动设计的应用实践.你会发现,DDD的核心目标就是通过各种实用性的方法和技巧提炼出具有体现问题实质的领域模型,协作解决领域问题, ...

  6. 22条API设计的最佳实践

    译者:刘志超,软件工程师.DevOpsDays.HDZ深圳核心组织者,目前供职于华为,从事云计算工作,专注于K8s.微服务领域. 来源:dockone.io/article/2434604 原文:ht ...

  7. 20个数据库设计的最佳实践

    数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程. ...

  8. 10个有关RESTful API良好设计的最佳实践

    Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的. 通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GE ...

  9. 阿里、京东基于DDD的架构设计与最佳实践

    咱们技术圈,每过几年基本上就会出现一两个难得的趋势性理念或者工具.要说近几年比较热并且真正在落地实践上得到检验的非DDD莫属. 怎么判断一项革新是否真的对实际开发工作有帮助呢?我认为基本上质量.效率. ...

  10. 15年双11手淘前端技术巡演 - H5性能最佳实践(转载,好文)

    转载:原文链接 前言 2015年是全面『无线化』的一年,在BAT(财报)几家公司都已经超过50%的流量来自移动端,这次 双11 更是占到了68.67%无线交易 (天猫微博). 手淘中大量的业务采用H5 ...

最新文章

  1. 为什么是红旗EV?一文拆解中国第一款Robotaxi量产车型
  2. linux shell seq 序列生成命令 可用于for循环 简介
  3. 7.Hadoop的学习(Hadoop的配置(伪分布式的搭建)-3(启动守护进程))
  4. POJ - 1734 Sightseeing trip(最小环+输出路径)
  5. python修改指定行,python读取文件的指定行并修改
  6. 对方服务器未响应,重新投递中 postfix手心,我配置的Postfix邮件服务器邮件发不出去,在mail.log里显示如下~请求帮助...
  7. java day45【JQuery 高级:动画,遍历,事件绑定,案例,插件】
  8. aforge 相机标定_c# – Aforge.net相机捕获并将图像保存到目录
  9. 正交设计 python算法_SPSS统计分析案例:无空白列重复正交试验设计方差分析
  10. 分类与聚类的区别以及聚类的方法分类
  11. 刷手机二维码轻松登机(仅限移动用户)
  12. forward与sendRedirect区别
  13. html圆形头像简易实现
  14. 药剂学(专)-形考作业(一)答案
  15. 查表法求sin和cos
  16. 计算机组成原理 十套,计算机组成原理十套卷答案白中英(74页)-原创力文档...
  17. Linux-Day2笔记
  18. html向下的三角符号怎么打,哪些字符可用于上/下三角形(无茎的箭头)以HTML显示?...
  19. 服务器和电脑主机的区别
  20. 常见模拟电路设计 三(含仿真) :文氏桥正弦波发生电路

热门文章

  1. 文件二维码:在线直接扫一扫二维码查看下载资料
  2. 关于 nektar 连接电脑使用的一些问题说明, nektar Impact GX61/GX49/SE25
  3. 中望CAD工具栏消失不见的解决方案
  4. soui 设置边框_UI神器-SOUI
  5. UbuntuHadoop集群搭建过程
  6. java最长公共子串_最长公共子串(java)
  7. Linux系统编程——进程间的通信(三)消息队列原理以及用法
  8. C++ Vector初始化(一维,多维)
  9. RS485总线传输协议
  10. java打印菱形图案_如何使用java打印出菱形图案