学员投稿。
前言
今年年初被学谦老师带入office365大门,跟着谦老师陆陆续续接触了很多“黑科技”,但都学艺不精,任重而道远。这次结合自身业务向大家分享一个自动化应用案例,其实并没有什么创新,只是结合自己身业务的一个自动化实践小案例,因此叫作业分享可能更合适。
首先来看一段平平无奇的演示视频:
http://mpvideo.qpic.cn/0bc3xaaaiaaaziadxsnizfrfbogdas4aabaa.f10002.mp4?dis_k=b12201eeac4ea743a98d75d3ece214ff&dis_t=1667093865&vid=wxv_2442782565851136001&format_id=10002&support_redirect=0&mmversion=false
以上视频为通过微软RPA工具,模拟人工逐条录入招标委托号到业务系统上,查询进度状态,并根据不同的状态,在相应的页面中提取所需要的信息写入到个人台账(本地Excel)中。
实际业务问题
一、需求分析
当前公司物资采购业务中其中一个环节是需要办理委托招标手续,业务流程大致如图:
其中招标管理人员每天共需要编制近百项招标委托书并进行实时进度跟踪,目前通过人工逐项在网页上点选查询的方式效率低,及时性得不到保障,重复性的低价值劳动量大,还容易出错,急需要一种自动化辅助工具来提高工作效率和准确性。
二、实现思路
利用微软RPA(Power Automate Desktop)工具以零成本方式采用自动化方式对整个招标进度状态查询管理,模拟日常工作中由人工在业务系统上的查询点击操作,实现招标委托编号的进度状态批量查询与提醒并同步完成相关台账建立可提高工作效率,大幅度减少重复劳动,还能达到避免操作差错的目的。
三、实现过程
自动化过程与实际业务操作过程相同,即启动(或附加)浏览器,启动(或附加)到本地Excel台账,设置活动工作表,选择从第几行开始检查记录,然后逐条录入ID到业务系统上进行后续判断处理,整体流程如下图。
考虑到台账中的字段较多,且需要被多次写入,总是记不到位置,于是单独创建了一个子流,将字段名逐个设为对应变量,附上位置值(简单粗暴,不知道大佬们还有什么好办法没)。
填充编号后点确认搜索,然后是获取当前状态值,这里直接取的是整个表单,然后判断是否出现“某状态(1)”,如是则给状态变量赋值。
然后就是针对各种状态值进行相应的处理,抓取网页上对应的表单值,然后写入本地Excel,大同小异截一个图就好:
只是有些状态数据藏的比较深,需要开打多级子网页才能获取到,耐心点就好。
这里需要单独分享的一个地方是对一个表单的排序处理,当状态为已评标时,需要提取所有投标人的报价情况,但页面上显示的各投标人并不是按大小顺序进行列示,因此如何从小到大取前三名写入本地Excel就是个问题,开始自己琢磨用各种IF来处理,作为编程小白几下就迷糊了,因此卡了好几天,后来在学习群里大佬的提点下,改用了SQL方式,主要太小白也是从零开始,虽然就几行也折腾了很久。
在此,完美解决取前三名排序问题也解决了。
四、总结
通过这个案例实现了信息的获取,但获取了数据并不是终点,而是下一个流程的起点,如何利用自动创建的台账数据进行业务应用才是重点,比如后面还做了根据台账自动创建委托书、审批表、然后微信提醒等功能延伸。
这个案例中用了很多粗暴的办法并不优雅,希望同学们帮提改进意见。另外,桌面流只是云端流的延伸或者叫暂时妥协,后面还得跟大佬们多学习PA还有BI,争取早日实现取数到报表全流程自动化!