艺赛旗 RPA 商城开发者(二)——曹捷先生专访

艺赛旗 RPA 商城开发者(二)——曹捷先生专访

艺赛旗 RPA 商城开发者(二)——曹捷先生专访

艺赛旗 RPA 商城开发者(二)——曹捷先生专访

艺赛旗 RPA 商城开发者(二)——曹捷先生专访

交流一、曹先生在商城开发的机器人成果展示

l 读取 EXCEL 快速生成对照表机器人

l Excel 的多个 SHEET 拆分成一个个独立文件的机器人,

l 将多个 EXCEL-SHEET 合并到一个文件的机器人,

l 将一个个独立的文件以邮件附件的形式进行分发的机器人,

l 适用于用友单一账套多科目按月合并的机器人

l 适用于用友多账套同一科目按月合并的机器人

适用于用友的单一账套辅助科目余额按月合并的机器人

交流二:曹先生开发的初衷:

作为一名程序员,当面试官问你,面向对象三个基本特征。我会回答:“封装、继承、多态”。这不是我创造的,这是每本面向对象的程序设计教科书上专业的描述。其实,在我认为,面向对象的背后是高可复用性。同时,它也意味着低维护投入,直白一点说,“是可以偷懒了”。

我一直认为,人是有偷懒的心性,正因为有这个心性,才会有程序员,才会有 RPA 来解决重复的工作。(注意:我这里没有说用 RPA 流程来解决简单的工作),其实,现在的 RPA 流程,可以做得更复杂、更智能。

举个例子:现在手机的 APP 做得很丰富,有些 APP 给用户感觉很智能,很好用,做出这些良好的体验,开发设计人员是下了工夫的,他们考虑到了各种用户的需求可能,并将其适当地放在的这个应用中,所以,最终用户用起来,感觉体验很好,很智能。

所以,现在有各种技术,如人工智能等,我认为一方面是技术的发展,但深层次的我认为是为之开发的程序员的付出。归根结底,技术也是由人开发出来的。所以,应用的智能不智能,好用不用好,与采用的开发技术有关,更与开发人员的知识和水平有关。最关键的是人,一个应用,开发设计人员可以做得简单,但可能没有考虑周全,所以,给用户的体验不好,也可以做得复杂,把这个应用的各种情形都考虑到,这样给用户的体验就好。【可能我长期从事财务工作,可能我对计算机的科学技术认识不够,有认识不正确的地方,大家可以指正。】这是我想说明流程做得简单和做得复杂的一方面原因。另一方面,RPA 结合现在的其他技术如 OCR、验证码识别、语义分析等,可以把流程做得很智能,很复杂。这是第二层意思,所以,我不用“简单”来形容 RPA 适应的场景或工作。

所以,RPA 的处理工作可以是简单的,也可以是不简单的,但必须是有规律可循重复的工作,如果只认为 RPA 是一个鼠标键盘精灵的话,那可能真的要更新一下对于 RPA 的认知了。

“RPA 的高可复用性,会显著低维护成本,更符合了人想偷懒的人性。”

再举个例子,如果有 A,B,C,D,E 五个流程,每个流程中,都有相类似的功能 f1,这个 f1 要拖 8 个组件来完成特定的功能,在 A,B,C,D,E 中,只是参数不一样,但都是一样的顺序的 8 个组件。那么,有两种做法,一种是分别在 A,B,C,D,E 中把这 8 个组件一模一样的拖一遍,每个流程中改改对应的参数,另一种做法就是把这 8 个组件做一个封装,做成一个可以调用的小流程,然后,A,B,C,D,E 分别传入自己的参数做一个调用,然后,获取对应的返回值。相对于来,可能第一种方法,难度系数低一点,但重复的时间成本高,而后一种做法,难度系数高一点,一开始设计开发的时间多一些,但在上面五个流程是不用再拖 8 次,我相信总体的用时就少,且具有可扩展性,如果有新的流程有相似的功能,也只是调用一下而已,而不用再拖 8 个组件出来,而第一种方法,需要再拖 8 个组件放在这个流程中。

然后,再讲讲后期维护,如果这 8 个组件中间在运行的过程中有一个组件的参数是可以优化的,对于第一种方法,A,B,C,D,E 每一个流程都要拿出来改一遍,而第二种方法只要改一次,然后做一下代码同步就行。这两种操作相比,第二种是简单不易出错的方法。所以,从其的价值来说,我肯定选择第二种方法。

所以,我的对 RPA 机器人的设计开发思路是在有限的情况下,尽可能地考虑可复用性的,是可以提高开发人员和使用人员效率的。

关于:读取 EXCEL 快速生成对照表机器人 这个机器人我所任职公司相当多的流程都用到,而且有很多流程中是多次调用,它具有相当高的可复用性。

因为 RPA10.0 新版本有商城功能,我也反复琢磨,到底我现在做的流程中有哪些可以拿出来供大家复用的,第一个就想到了这个。其实每家公司做的 RPA 流程越是定制化开发,其拿出来供大家使用的可复用性就越弱,越难抽取成共用的方法来。所以,我能向商城提供的方法,基本上都是经过深思熟虑,层层筛选,抽取出可供用的核心部分给大家,然后,大家可以拿这些方法的返回再做定制化的开发,从而提供流程设计人员的效率。

然后再讲讲 EXCEL-SHEET 拆分和分发邮件这两个功能。其实,只要稍加一点代码,这两个流程是可以连起来的。它的功用就更明显了。

这里我举两个例子,一个就是费用确认,对于上线深层次的网络报销功能,采用员工出行的费用不用员工垫资,都是使用集团月结支付:机票、酒店、打车等这种费用的企业,在进行月结支付时,肯定会发一份确认单,告知各业务部门,在过去的一个月,各部门使用了多少费用。对于这个流程,我先想到有一张大表,有各部门的数据,需要拆分到各部门,然后对每个部门的对口人进行邮件分发,只发该部门的数据,要求其核对,确认发生额。

这时,可能你会问我,对于一张大表,你怎么没有做一个共用的机器人流程来给大家共享一下,我给你的回复是不太好做,因为它的格式可能不一样,我不知道要第几列才是部门,数据又是从第几行开始,有没有表尾,表尾有几行,是否还有其它的数据需要特别处理。由于有这么多的不确定因素,我认为可以共用化的可能性比较低,个性化的程度高。所以,我果断放弃从这个流程的一开始就切入做这个事情。

我从第二步开始,只要有流程设计人员把前面一张大表拆成每一个部门一个 SHEET,(第一步就交给现场的实施和开发处理了),那么,就可以调用第二个流程把对应的 SHEET 拆成一个个文件。然后把文件的路径写入配置表,直接调起第三个流程,完成数据的分发。

另一个应用场景,我相信也有,就是每年年头上,发布预算批复数这种工作,数据从系统里批量导出,可能需要拆分,然后一个一个邮件进行分发。这两个功能其实就是实现每个部门都看见自己的数据,别人的数据是看不见的。这个有点像商城里另一位做的一个工资条,只是我不清楚有没有带附件的功能。

多 EXCEL 合并,只是拆分的逆操作,我认为应该有可能会用到这个功能,既然有拆分,我就顺手把合并的功能给做了。功能有正有逆,正好做测试也简单。之后,有三个与用友相关的功能。它们分别是单一账套多科目多月数据合并功能,多账套同一科目多月数据合并功能,单一账套同一科目多辅助多月数据合并功能。这些流程是要有一些财务概念可能才做得出来,它们的基本指向是为分析服务的,之后我还会再做另外三个专向的分析流程。

交流三: RPA 给予大家工作的实际意义,您能简单聊聊吗?

我的领导一直在强调财务要转型,财务要转向战略财务,要转向业务财务,要了解业务,要跟进业务,但我们财务人员毕竟是后台,不可能直接面对业务上的客户,但我们有大量的财务数据,如果数据只是放在那里,你不去做分析,那它还是数据,可能一点价值也没有,但如果你能把数据全部按一定的维度罗列在一起,那么,你可能会找到一些蛛丝马迹,可能会想一些更深层次的问题。

但这个工作的的确确累人,因为光罗列 1-12 个月的数据,可能就半天的时间耗在上面了,真的要做一些分析可能兴致都没有了,而且,有些分析手段真的不是一招鲜,吃遍天的。就像炒股一样,大家都知道 KDJ 和 MACD,但用久了,KDJ 和 MACD 就不灵了,要换一种指标去看了一样道理。业务会计、管理会计又何尝不是这样呢?所以,我做了一些通用的功能,可以把已查询出来的数据合并在一起,然后就可以供财务直接做分析用了。(等时间成熟,我会把用友 NC5 系列的一些通用查询的方法也陆续提供出来),这样的话,从数据的获取,数据的整合都是 RPA 做的,财务只要分析数据写分析报告就可以了。

而写报告这一块工作,至少目前来说,RPA 是没有办法做得到的,所以,这个也是我们经常强调的 RPA 的应用提升了员工的价值,提升了企业的价值。我提供的这三个方法不要以为它仅仅取 1-12 月每个月的发生数,累计数也是可以取的。关键的原始数据的查询条件上,这个懂会计的都知道。

交流四、您是怎么学习并熟练掌握 RPA 技术并成为大咖的?

大咖有点过了,我还没有到这个水平吧。这个应该是从我的志向、专业、学习、工作经历和对艺赛旗的产品说起。

我从小学 6 年级就立志相当一名程序员。那时上海的计算机也刚刚起步,6 年级的时候还是 286/386 的机器,当时还学海龟做画。初中就学 FOXBASE 编程,高中学 PASCAL 编程,到了大学,我一年级是化学化工学院高分子材料与工程系的学习,大学二年级校内插班到电子电气学院计算机科学与技术专业。

毕业后,在中日合资的软件公司里干了 6 年,VB.NET,C#.NET,ASP.NET,JAVA,DELPHI,PHP 各种常用开发语言都开发过项目。工作之余,我又去考了会计上岗证,考了会计初级职业资格证书。由于金融危机的原因,对日的开发普遍不好,同时也希望到财务软件公司去做一个开发,但最后还是到了用友当了两年的实施顾问,服务于非银金融行业。工作期间,又考了 5 门证券行业的从业资格,也考取了期货行业从业资格,之后又转到现在单位做了 7 年的会计工作,考了财务中级资格证书。

在我的学习和工作中,跨界是比较明显的,而且,我自认为我比较善于用程序设计的思维去考虑问题,解决问题,所以在很多财务工作中,我都是自己开发数据库应用,开发 VBA 小程序来帮助我和我的同事解决实际工作中的问题。我的程序开发设计能力应该来说,并没有完全荒废,但可能熟练程序不如现在年轻的程序员,但我相信丰富的跨界知识和经验可以帮助到我。我自认为在我们公司的会计人员中,我程序是写得最好的。而在公司的程序员中,我会计知识最丰富。

交流五、您是怎么了解到我们的?

第一次接触艺赛旗还是到 18 年 5 月。当时,艺赛旗来我们公司宣传,一开始会议也没有叫我参加,我想如果领导同意开展这个项目的话,应该也是我同事会去管这个项目,我旁听就可以了。

当时,RPA 的版本是 4.0,会议中间做了一些初步的演示,这个演示有点惊艳到我了。特别是关于抓屏幕的控件做对应的点击和输入的动作,这个功能我自己在 06 年的时候也开发过,当时是通过配置 XML 文件,定位屏幕上控件的 X,Y 坐标,然后,读取这个坐标,触发做相应连续一系列动作。这个应用是我闲暇之余用来打的网页游戏的。这时肯定有人要吐槽了,程序员打游戏,是这么玩的。与我当时写的程序相比,艺赛旗组件的方法要方便多了。就好像艺赛旗把最基本的轮子都做好了,你只要拼装起来就可以了。所以,当领导询问我的意见的时候,我就把我的真实的感受说了一下。

最后领导结合大家的意见最终决定上马这个项目,而我成了这个项目的主要人员。这个真的有点让我感觉有点,诚惶诚恐,之前从来没有以甲方的身份处理过与供应商项目。既然要接手这个项目,就要对产品有足够的了解,包括 PYTHON,包括艺赛旗机器人产品的组件,以确定产品对于我们常用的应用的适配程度,保证公司花的每一分钱是值得的,所以自己去书城买相关书来学习,网上也找找与 PYTHON 相关的资料。不管怎么说,书籍也好,网上资料也好,关于 PYTHON 的是相当丰富的,大数据、人工智能等概念中都有 PYTHON 的身影,所以,我一直认为,这是艺赛旗产品的一大特点。

由于我本身就是计算机专业毕业,也从事过软件开发工作,而且在软件公司,基本上当时常用的开发语言都会一点,所以,学习 PYTHON 也很快。我负责这个项目,就要管好这个项目,让双方达到最大的共赢,一方面我紧跟艺赛旗产品更新的步伐,用最新的产品来适配同事提出的需求,最大程度地满足需求,另一方面,我也跟据我这里的实际应用情况,对于产品的很多方面提了一些改进的建议。令人感到高兴的是每每在新版本中,很多改进的建议都得到了实现,我感到我的建议得到的采纳,很开心,所以也更愿意把我这里的应用和想法向艺赛旗提出,为产品发展贡献一点微薄的力量。在流程方面,我努力消化吸收,目前应用的流程都是我一个人在开发维护的。现在我开发的流程项目应该有 70-80 个,实际使用的有 30 个,70-80 拼装组合的。如果我不采用可复用的做法,可能流程数量还要再多一些。


交流六:您对 RPA 商城生态有什么意见和建议?您作为开发者,对 RPA 产品有哪些想法?请您畅所欲言。

我个人认为商城生态做得挺好。个人感觉商城的功能又进一步细化的 RPA 方面社会化分工,它有着深远的意义。通俗的讲不要再反复地造轮子。艺赛旗 RPA 提供了流程用的基础方法、组件;我们应用的开发者对其进行基础的封装,生成对应的应用,而用户就可以拿来做后续的开发或直接使用。比如你的车需要一个轮子,你可选择自己造,也可以选择在供应商那里买。商城里提供的应用可以现成的拿来用,这一点有效的改善了用户的体验,让用户进一步认识到 RPA 强大。

我认为应该可以有效的改为大家对 RPA 的认识。另外,我也点困惑的是:就像我刚才说的,越是个性化的开发,可能共性的流程越难抽取出来,但可能每个客户还是会需要个性化的流程,量身定制,这个时候,商城需要考虑如何满足这些客户的需求,或者,我们这些开发者是否能帮上忙?这个是不是商城的管理方有一些更好的想法和解决方案,可以解决用户实际的问题。还有一个就是加强宣传,加快对艺赛旗对 RPA 市场的占领,我相信这是一个多赢的局面。****

作为开发者,就是那个授权是按 7 天,15 天用 Y 币兑换的,这个能不能切成更小的片,比如天,比如小时这样子。因为对于我来说,这个时间真的很宝贵,我现在被安排了其他的工作,在单位中,我用于 RPA 开发的时间真的非常的有限,RPA 开发和运维,只占相当相当少的时间,有时几乎没有。而且公司里的 RPA 版本是 8.0,所以,现在我提供的 10.0 版的应用都是利用国庆长假、周六周日和平时的晚上做的开发。所以,定的 7 天,我真的可以利用的时间就是周六周日和平时晚上,7 天时间满打满算,实际真实使用应该在 48 小时吧。或者对于认证的开发者是不是可以有更长的使用时间办法。

交流 7:对于 RPA 机器人,您方便透露一下您的开发计划吗?您对 RPA 商城生态有什么意见和建议?您作为开发者,对 RPA 产品有哪些想法?

有的,应该来说有很多,比如用友 NC5 系列的查询,将来可能会考虑 NC6 系列的查询,当然这个要看有没有这个机会。分析的功能再深入挖掘一下。****

就看得见的目前而言,我个人认为 RPA 还是一个辅助性的工具,它可以有效地提高人的工作效率,这是大家对 RPA 的字面上的理解,或者说可能很多 RPA 公司对自己产品的一个通用的宣传。我认为远不止此,关键要看领导是怎么认识 RPA 的,是如何运用的,运用在哪里。从在我现在做的流程和实际的效果来看,我认为 RPA 部门或项目组可能是一个为公司业务变革,推动促进公司业务增长的重要部门,这它可能是为公司业务发展提供助力,是一个倍增器或都就像汽车里的涡轮增压装置。****

举个例子:业务及管理费表,利润表的整合输出。这个工作如果让人来做的话,可能要半天到一天的时间,我现在机器人就用 5-8 分钟就做好了。我为这个工作做的开发的时间在一个工作日(8 小时)左右。它的应用价值在哪?这流程的结果就可以每天出,我们一直讲财务是后台,另一层意思也是财务出东西慢,从一项业务的计划、筹备、开展、到最后总结分析评价效果等等,可能时间周期长,这样的话,这个业务到底是赚钱还是赔钱,赚多少还是赔多少可能到最后才知道,原因是数据的采集和分析是一个耗时且重复的工作。而如果现在用 RPA 呢?只要在账上发生,可能 5-8 分钟就可以反映出来,然后每天累计,数据合并,是不是这项业务的进展如何,盈利情况如何就可以变得更快速地反馈到决策者这里。这个项目如果是盈利的,就继续开展,甚至加大投入。如果这个项目是效益不好的,减少投入甚至及时停止。(以上 RPA 只是在后台财务场景中,如果是中前台的管理平台中,可能时效性上会更及时一点,不管是后台,还是中台前台,数据获取,整合的工作都是有的。而且肯定是重复的。)

交流 8:在你眼中 RPA 未来会是什么样子的?您是否有什么期待?对于国内 RPA 厂商,您又有哪些建议,也请畅所欲言。

至于未来,还是充满想象空间的,但要注意风险控制。关键是 RPA 一方面要深挖自身的可扩展性可移植性,另一方面可能会与相应的软硬件外围设备有一些结合,比如语音语义,通过语音语义分析去驱动相应的流程,这个好像会让人感觉又是一个黑科技,或者语音语义转换为流程的相关查询条件之类的,但这种可能在微信的应用上有一些,但就目前而言,这种可能噱头成份更多一点,毕竟有些情况下在便利的同时也要考虑风险的。

补充:关于流程的开发的评判(纯个人)

如何判断一个流程值不值得开发?人工处理的时间与机器处理的时间。该流程处理的频度。人工处理的时间与我开发估计的时间。

单次人工处理的时间 3 倍或 3 倍以上大于我的开发估计时间;项目的核心功能具有可复用性;新的场景可以拓展机器人的应用或者我没有接触过(如图像处理技术–验证码的识别)。以上三点任意一点我都愿意去尝试做一些 RPA 的应用。一般我做的流程我都力争做得更好,时间上,我会努力研究尽可能压榨机器人,基本上 3%-5% 的人工时间就完成原有的任务,所以在设计开发方面我也是潜心研究的的确确花费了不少的工夫,才有现在的一些成果。