Day14. Blue Prism拯救贫穷大作战第二弹-BP新增一个读取Excel的『Objects』

由於疫情的关系有几周的人员分流上班的机会,
我与小朋友在家远端连线Google Meeting与小朋友的老师上线上课程,
正好奇老师竟然请同样是教师退休的老婆代课一、两堂。
就於下课之际,我私下与老师一谈,才知道老师考卷还没改完,
即便改完了,还要分等级写评语,在确认一切无误後交付学校;
这让我想起以前家父也是教师,常常因为上课忙到餐餐误时,
就於此时,我那扶弱济倾的正义性格被挑起了,
拍拍胸脯,告诉老师,我有办法!!

有感受到吗?每一弹的拯救贫穷,接下来就是几日连续的实作分享喔!
既然之前能以日常情境用几个铁人赛工作天,
帮助前同事表哥把店家/套餐价目表有如魔术般的自动处理,
当然在小孩的老师面前也不能示弱,
我跟他侃侃而谈目前科技的进步,
也一方面想要展示我与「科技哥」的多年好友关系,
因此,我请老师给我点时间展示一下我优雅自动化特助的战斗力。。。

顾虑到老师的饭碗恐因过忙而不保,
所以决定再次踏上拯救贫穷大作战的路,
以下我还是用几个铁人赛的工作天,
来简单说明如何实现「分数自动分级交付学校」的神蹟。。。

 本集预告

BP新增一个读取Excel的『Objects』
目的: 建立一个读取Excel的Object让其他流程重复使用。

(基於小朋友个资,只能以简单案例来诠释)
1. 作业前准备:制作一个学生名录/分数表
https://ithelp.ithome.com.tw/upload/images/20210914/20141198dLpDnfrMN8.png


2. 开启Blue Prism,於Objects分支下建立一个群组(Create group): ExcelTest
https://ithelp.ithome.com.tw/upload/images/20210914/20141198ubNW78vjX9.png
3. 於群组资料夹下建立一个物件(Object): ReadExcelTest
https://ithelp.ithome.com.tw/upload/images/20210914/20141198oF4Snv7g5e.png

(1). 输入Object的名称,并按下Next
https://ithelp.ithome.com.tw/upload/images/20210914/20141198lN4kcDB8NB.png

(2). 可暂不填写,按下Finish
https://ithelp.ithome.com.tw/upload/images/20210914/20141198DaI9KRgsrW.png
(3). 完成後,点击该物件,即开启编辑画面
https://ithelp.ithome.com.tw/upload/images/20210914/20141198u77CbMk4Ka.png

4. Create Instance创建实例Action
(1). 点击编辑画面中Action页签,将看到Start、End的起始与结束图示。
(2). 於Start之下新增一个Action,名称为:Create Instance
A. 於左边流程图示工具区拖曳一个Action到Start之下
https://ithelp.ithome.com.tw/upload/images/20210914/2014119892ps7zBkw7.png
B. 开启Action的设定画面:两下点击Action1,将出现Action Properties的属性设定画面。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198qwHRusyCdh.png

C. 设定属性资讯(依照如下属性设定)
Name:Create Instance
Business Object: MS Excel VBO
Action: Create Instance
https://ithelp.ithome.com.tw/upload/images/20210914/20141198yK1pqTMZDR.png
D. 设定该Action的输入(Input): 此部分可暂不设定。
E. 设定该Action的输出(Output):
handle的Store In 点击方块小图以使用预设handle(此时右边的资料类型於number中增加一个handle的分支)
https://ithelp.ithome.com.tw/upload/images/20210914/20141198fSm8yvTgIn.png
F. 设定该Action的条件(Conditions): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198Ww5mMJBfmn.png

G. 按下OK,新增完成该Create Instance 的Action:
旁边有刚刚点击预设产生的资料暂存(DataItem): handle。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198qVwLxFxU8T.png

5. Open Workbook开启工作簿 Action
(1). 於Create Instance 的Action之下复制一个Action,名称为: Create Instance
A. 点选Create Instance的Action,Ctrl+c , Ctrl+v产生一个相同名称的Action到Create Instance之下
https://ithelp.ithome.com.tw/upload/images/20210914/20141198DUtXSO1jKf.png
B. 开启下方的Action的设定画面:两下点击下方的Action,将出现Action Properties的属性设定画面。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198hnece4QQCh.png

C. 设定属性资讯(依照如下属性设定)
Name:Open Workbook
Business Object: MS Excel VBO
Action: Open Workbook
https://ithelp.ithome.com.tw/upload/images/20210914/20141198K92a3pq5vs.png
D. 设定该Action的输入(Input):
Handle属性:拖曳右方的handle到Value中。
File Name属性:复制前面准备好的Excle档所在路径(含档名)。Shift + Right click > 复制路径
https://ithelp.ithome.com.tw/upload/images/20210914/20141198AqpbZNaxXe.png

https://ithelp.ithome.com.tw/upload/images/20210914/20141198iUwAZJ5Rap.png
E. 设定该Action的输出(Output):
Workbook Name的Store In 点击方块小图以使用预设Workbook Name(此时右边的资料类型於Text中增加一个Workbook Name的分支)
https://ithelp.ithome.com.tw/upload/images/20210914/20141198l0ezsO2hpy.png
F. 设定该Action的条件(Conditions): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198Hm7iWI0dUg.png

G. 按下OK,新增完成该Open Workbook的Action:
该Action旁边有刚刚点击预设产生的资料暂存(DataItem): Workbook Name。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198nYfkgxm7tV.png

6. Read An Excel读取Excel的 Action
(1). 於Open Workbook 的Action之下复制一个Action,名称为: Open Workbook
A. 点选Open Workbook的Action,Ctrl+c , Ctrl+v产生一个相同名称的Action到Open Workbook之下
https://ithelp.ithome.com.tw/upload/images/20210914/201411983YyuqoRWMy.png
B. 开启下方的Action的设定画面:两下点击下方的Action,将出现Action Properties的属性设定画面。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198ZDKFgj0jAg.png

C. 设定属性资讯(依照如下属性设定)
Name: Read An Excel
Business Object: MS Excel VBO
Action: Get Worksheet as Collection
https://ithelp.ithome.com.tw/upload/images/20210914/20141198epAMtdx01X.png
D. 设定该Action的输入(Input):
Handle属性:沿用之前的设定[handle]
Workbook Name属性:从右方资类型Text的分支Workbook Name拖曳到Value中。
WorkSheet Name属性:输入Excel中资料页签的名称。前後要加双引号。本次为”工作表1”。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198qtKZAvb8Ez.png
E. 设定该Action的输出(Output):
Data的Store In 点击方块小图以使用预设Data (此时右边的资料类型於Collection中增加一个Data的分支)
https://ithelp.ithome.com.tw/upload/images/20210914/201411987g0YGHvSHo.png
F. 设定该Action的条件(Conditions): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198T73xGjaESV.png

G. 按下OK,新增完成该Get Worksheet as Collection的Action:
该Action旁边有刚刚点击预设产生的资料暂存(Collection): Data。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198bNWAl7EX80.png

7. Close Workbook关闭工作簿的 Action
(1). 於Read An Excel的Action之下复制一个Action,名称为: Read An Excel
A. 点选Read An Excel的Action,Ctrl+c , Ctrl+v产生一个相同名称的Action到Read An Excel之下
https://ithelp.ithome.com.tw/upload/images/20210914/20141198idGvB9sxoP.png

B. 开启下方的Action的设定画面:两下点击下方的Action,将出现Action Properties的属性设定画面。
https://ithelp.ithome.com.tw/upload/images/20210914/201411989cKbGTR8SI.png

C. 设定属性资讯(依照如下属性设定)
Name: Close Workbook
Business Object: MS Excel VBO
Action: Close Workbook
https://ithelp.ithome.com.tw/upload/images/20210914/20141198JXx3933QGa.png
D. 设定该Action的输入(Input):
Handle属性:沿用之前的设定[handle]
Workbook Name属性: 沿用之前的设定[Workbook Name]。
Save Data属性:可暂不输入。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198YIOPG3pjpc.png
E. 设定该Action的输出(Output): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198BQuvIbah8m.png
F. 设定该Action的条件(Conditions): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198mtIlulMpIx.png

G. 按下OK,新增完成该Close Workbook的Action:结果如下。
https://ithelp.ithome.com.tw/upload/images/20210914/2014119869S41aEbhZ.png


8. Close Instance关闭实例的 Action
(1). 於Close Workbook的Action之下复制一个Action,名称为: Close Workbook
A. 点选Close Workbook的Action,Ctrl+c , Ctrl+v产生一个相同名称的Action到Close Workbook之下
https://ithelp.ithome.com.tw/upload/images/20210914/20141198JdliFRTYI5.png

B. 开启下方的Action的设定画面:两下点击下方的Action,将出现Action Properties的属性设定画面。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198mboC1hztUB.png

C. 设定属性资讯(依照如下属性设定)
Name: Close Instance
Business Object: MS Excel VBO
Action: Close Instance
https://ithelp.ithome.com.tw/upload/images/20210914/20141198OnTOrQ1LIf.png
D. 设定该Action的输入(Input):
Handle属性:沿用之前的设定[handle]
Save Data属性:可暂不输入。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198rVUOWtDenJ.png
E. 设定该Action的输出(Output): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198etdidENgQw.png
F. 设定该Action的条件(Conditions): 此部分可暂不设定。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198ix89QALW5b.png

G. 按下OK,新增完成该Close Instance的Action:结果如下。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198QlaX74thlq.png


9. 将流程串起并执行,看结果。
(1). 串起流程:
於左边流程图示工具区点击一个Link,并将Start开始、接续的Action与End结束用Link串起来。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198MoYyS2a9Pb.png

(2). 执行流程:
点击左上角的三角形执行图示,即开始执行流程。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198xkmecplNRr.png


(3). 检视结果:
由於Excel的页签读取到Data的Collection中,因此点击该Collection,即可看到读取到的Excel 指定页签内的所有内容。
https://ithelp.ithome.com.tw/upload/images/20210914/201411982IIo3bxSMf.png

有没有一点面熟,
当然,几天前拯救贫穷大作战才见过类似的作法读取Excel档喔!

有注意到吗?
之前是用Process来设计流程,
这次从Object中设计流程,
产生新的Action的方式可以是重新拖曳重新产生,
也可以是复制上面的Action直接改写,
是不是既方便又省时。

虽然是首次使用Object来设计流程,
也算是小小的复习流程。
但,只有复习总让人意犹未尽、流连忘返,
总有人的好胜与好学心激励想要学新的,这边从来没让人失望过。
由於我们常常会因为想要在别的主机上重现神蹟。。。
(例如:上课的程序,希望下课後能在家电脑重现,并能更加精进)
因此汇出(Export)流程的好机制就在所难免会被普罗大众急切拜求。
以刚刚的例子来看,可以如下做法:
File > Export >This Business Object
https://ithelp.ithome.com.tw/upload/images/20210914/20141198oyTVM25Jne.png
此时系统就会要求输入*.bpobject的档案名称。
https://ithelp.ithome.com.tw/upload/images/20210914/20141198Mu8HnRzLri.png

产生汇出档後,到指定路径去找就可看到。
为何BP在流程设计上需要区分Process与Object呢?
Object顾名思义是让其他流程可引用(或称 重复使用)。

软件重复使用

(Software Reuse)
是指在建置新的软件系统过程中,对已存在的软件产品(设计结构、原代码、文档等)重复使用的技术。

节录自MBA智库百科

夜色已深,容我卖个关子,後面有机会再来谈重现设计(汇入Import)的部分。


<<:  系统建模语言 SysML

>>:  [30天 Vue学好学满 DAY14] prop & emit-1

D16/ 所以到底为什麽 remember 是 composable function? - @Composable 是什麽 part 2

今天大概会聊到的范围 compose runtime compose compiler 今天会更深...

CSS垂直置中

absolute + top/left + tranform 利用top/left将子元素的左上角对...

Day15:刀枪与弓箭

初学写程序的时候,常常会用到阵列(array)的概念,当我们想储存一堆有顺序性的值或变数时,就会把它...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (18) :结构化资料(其他)

在结构化资料中,有几种情形: 在 Schema.org 中有写的,这部份是除了 Google 自己加...

Day 15 - Asynchronous 非同步进化顺序 - Callback 与 Promise

前言 在上一篇文章中,我们深入了解 Javascript 非同步的核心,到底在背景做了哪些事,才构成...