(实)03:完整案例

1. 需求

1.1. RPA执行元素

项目
要求

流程作业时间

上午8:00执行一次

流程作业频次

当前工作日执行一次

作业量

全年200+/每个交易日1次

单次全流程耗时

2-5分钟

1.2. RPA执行业务流程

  1. 登录启动小站双向通信系统,检查系统运行状态是否正常

  2. 清空“主站通信服务器列表”(列表逐个删除,无批量全选,批量删除功能)

  3. 读取“小站系统配置文件.ini”文件内容,增加到“主站通信服务器”

  4. 关闭小站双向通信系统,检查系统是否正常关闭

  5. 邮件通知负责人

1.3. 业务流程图

1.4. 组件设计和风险点

1.4.1. 登录

1.4.2. 清空服务器列表

1.4.3. 增加服务器列表

1.4.4. 关闭

1.4.5. 邮件通知参数更新

2. 全局参数

  1. 在脚本管理中选择:全局参数 -> 全局参数

  2. 先创建三个分组:

    • 浪小站案例

    • 浪小站案例/小站通信参数

    • 浪小站案例/小站通信参数/Server列表维护_小站通信

    由于教程中的目录会出现重名,所以需要使用自己的目录来存放,服务器列表改成了Server列表才会不重复,如果是按本教程做,和我在同一个环境的话,还需要重命名(不重复)。

  3. 创建四个参数,其值如下表格:

    参数

    小站通信参数_小站通信_程序路径

    C:\KRPA\Demo\金智维小站双向通信系统旧.exe

    小站通信参数_小站通信_密码

    121121

    小站通信参数_小站通信_证书名称

    软加密

    小站通信参数_小站通信_配置文件路径

    C:\KRPA\Demo\小站系统配置文件.ini

  4. 组件开发中的分组和初始化组件如下:


3. 组件开发

3.1. 组件开发:登录

  • Server列表维护_小站通信_登录

  1. 左侧:控制/活动范围,创建初始化参数的活动范围,在该范围中创建三个:活动/服务器/参数/获取全局参数

    参数名
    设定变量值

    小站通信参数_小站通信_程序路径

    Str_程序路径

    小站通信参数_小站通信_密码

    Str_密码

    小站通信参数_小站通信_证书名称

    Str_证书名称

  2. 参数设置时,参数名称[*]可以使用选择方式,选择前边创建好的全局参数

  3. 完整手工步骤:注意--判断条件是很重要的中间拦截环节,每次做一步需要针对基础窗口执行各种判断以确认这一步成功完成,并且在执行完成时打印执行成功的相关信息(后续步骤将实现完整手工操作):

    • 启动程序,根据第一个界面的刷新列表判断界面是否启动(按下刷新列表)

    • 判断列表项目软加密(全局参数证书名称),并点击软加密,然后点确定,根据标题栏验证密码判断是否出现了登录窗口

    • 录入密码(全局参数密码),并点击确定,检查是否出现参数配置按钮

  4. 左侧:活动/系统/应用程序/启动进程,在文件名中设置变量Str_程序路径

  5. 左侧:活动/用户界面自动化/元素/查找/存在元素,创建变量Bool_启动Flag

    指明在屏幕上选择

  6. 左侧:控制/IF条件,设置条件Bool_启动Flag,并追加日志信息成功和失败

  7. 启动成功后,检查证书是否存在,先用软加密,后边会根据参数执行更改,左侧:活动/用户界面自动化/元素/查找/存在元素,选择软加密,构造变量Bool_证书Flag

    指明在屏幕上选择

  8. 创建第二逻辑分支,如果证书存在,则执行两个步骤,最终输出Bool_密码Flag

    • 选择软加密项(活动/用户界面自动化/文本/鼠标/单击文本

    • 点击确定按钮(活动/用户界面自动化/文本/鼠标/单击文本

    指明在屏幕上选择(第二步确定)

    最终选择验证密码标题栏

  9. 创建第三逻辑分支,检查Bool_密码Flag,并执行步骤

    • 录入密码(从全局参数中读取)(活动/用户界面自动化/元素/键盘/输入信息

    • 点击确定按钮(活动/用户界面自动化/文本/鼠标/单击文本

    指明在屏幕选择

    单击确定按钮

  10. 由于前边步骤是选择的软加密,而我们全局参数中设置了Str_证书名称,所以在选择证书过程中,需要将选择的软加密部分全部调整为Str_证书名称

    将软加密改成变量模式(所有软加密部分都要如此改动)

  11. 创建最后一个逻辑分支,判断是否存在参数配置按钮,创建变量Bool_参数配置Flag,如果存在,则启动成功打印消息,如果失败则启动失败打印消息。

    终止的位置:控制/终止

  12. 退出小站应用程序,然后编译运行,看最终运行结果是否如下(进入主界面)

  13. 最终完善还需要在步骤中追加结果截图(成功失败都需要设置):活动/服务器/截图/结果截图


3.2. 组件开发:清空列表

  • 小站通信_清空服务器列表

关键点:

  • 列表元素需要删除最后一个元素

  • 模拟单击时会引起弹窗,必须判断并加以关闭,否则无法产生选中效果

该步骤的起点截图:

  1. 左侧:活动/用户界面自动化/元素/鼠标/单击,选择参数配置按钮

    指明在屏幕上

  2. 左侧:活动/用户界面自动化/元素/查找/存在元素,判断选项卡是否存在,创建变量Bool_系统设置Flag

    指明在屏幕上

  3. 左侧:控制/IF条件,判断选项卡是否存在,存在打印成功

  4. 左侧:活动/用户界面自动化/元素/鼠标/单击,选择选项卡通信设置(模拟单击)

    指明在屏幕上

  5. 左侧:活动/用户界面自动化/元素/查找/存在元素,通过判断增加按钮确认选项卡点击成功,创建变量Bool_增加Flag

    指明在屏幕上

  6. 左侧:控制/IF条件,判断选项卡是否打开,如果打开则创建屏幕截图(操作前,活动/服务器/截图/结果截图

  7. 左侧:活动/用户界面自动化/元素/查找/查找子元素,选中列表,其类型为TListView,在属性子项中创建变量TUIElementList_服务器列表

    指明在屏幕上

    编辑选取器

  8. 左侧:控制/遍历循环,追加获取属性(活动/用户界面自动化/元素/属性/获取属性),创建变量TUIElement_服务器,为每个属性创建变量Str_小站号,并打印

    获取属性

  9. 此处打印消息如下,由于标头控件是多余信息,所以需要修改额外步骤删除掉最后一个元素(动态删除)

  10. 在查找子元素之后追加获取服务器数量(活动/编程/列表/获取列表数量),创建变量Int_服务器数量

  11. 左侧:活动/编程/列表/删除列表项,索引为Int_服务器数量 - 1,删除完成后重新获取列表项并打印数量,最终如:

    再次获取

  12. 再次打印时就不存在最后一个标头控件信息了

  13. 左侧:活动/用户界面自动化/元素/鼠标/单击(模拟单击),此处会有一个小问题,直接单击会无法选中列表项,而模拟单单击会弹出编辑窗口,所以需判断窗口是否出现并点击取消,此时才会是选中的状态,然后再点击删除按钮

    指明在屏幕上

  14. 使用模拟单击后,会弹出编辑窗口,所以此处需判断是否存在编辑窗口,创建Bool_编辑Flag,如果存在再点击取消。

    指明在屏幕上

  15. 左侧:控制/IF条件,判断存在则单击取消

    指明在屏幕上

  16. 左侧:活动/用户界面自动化/元素/鼠标/单击删除(判断条件之外)

    指明在屏幕上

  17. 目前的删除步骤只会删除Num01的记录,接下来需要把遍历循环中的选中修改成动态

    弹出窗口中,验证发现该元素已经不存在,所以需要将Str_小站号作为变量传入

  18. 但是存在一个问题,此处会发现遍历过程中List本身是一直在变化的,教程中给的方案是Num匹配的基本算法,我这里测试过,还可以每次选择时只选择第一个元素来实现依次删除

    此处1,3,5,7,9被删了,偶数全部保留下来了

  19. 教程模式:编辑选取器,设置aaname为Num*

    这种模式的打印信息如下

    这种模式下,只有服务器小站号名称为Num*前缀的会被删除掉,而其他选项不会被删除(测试过,所以最好是使用另外的模式,该模式后续讨论,暂时以题目中的Num为准)

  20. 追加操作后的结果截图

  21. 终止之前点击确定

  22. 编译和运行


3.3. 组件开发:增加服务器

菜单在左侧的位置只给出前边没出现过的,前边已经出现过的本章节步骤不再给出。

该步骤的起点截图:

前边步骤和清空服务器一样:

  1. 以防万一,先激活窗口,保证该窗口位于最前边

    指明在屏幕上

  2. 最前边追加活动范围初始化全局参数,并创建变量Str_数据文件

  3. 拷贝前一个场景的前10步基本步骤,到服务器列表读取界面。

  4. 判断变量Int_服务器数量是否为0,为0则执行添加,不为0证明前一步骤没清空完成

  5. 检查数据文件路径是否存在(活动/系统/文件/路径存在),创建变量Bool_数据文件Flag

  6. 路径存在时继续执行,先处理操作之前的截图,然后读取文本文件(活动/系统/文件/路径存在)到变量Str_文件内容

  7. 由于配置文件整体为一个字符串,且格式如下:

    所以读取到的内容需按换行符进行分割

  8. 追加分割(活动/编程/字符串/分割),切割Str_文件内容TList_文件内容,分隔符调用基础库函数GetEnterStr()

  9. 获取列表数量并打印,此处会多出[Server]行,以及末尾可能会存在空白行,直接在遍历文件行的时执行过滤,遍历时创建TList_条目变量

  10. 针对TList_条目执行第二次分割(按=号),这样分割后,只有Num?=?格式的行会被分割成长度为2的列表TList_条目KV(key=value)。

  11. 按=分割之后,只有长度为2的列表是合法的

  12. 直接构造小站号和小站IP,从列表中获取(活动/编程/列表/字符串/获取字符串列表项

    • 索引为0是小站号,Str_条目小站号

    • 索引为1是小站IP,Str_条目小站IP

  13. 注意下边的IP输入窗口,根据测试结果可以知道

    • 如果录入的是三位数字,光标会自动移动到第二位置

    • 如果录入的是两位数字,光标会停留在当前数字的输入位置,只有录入.才会跳转到下一个为止

    而配置文件中的IP地址是标准IP地址,所以需要针对IP地址执行重算,执行上述规则的转换

  14. 在底部手工创建最终计算IP变量Str_条目小站IP_输入处理

  15. .对IP地址进行分割,然后计算分割后的每一位置的数值

  16. 处理完成后的两个输入,点击添加按钮

    • 小站号:Str_条目小站号

    • 服务器地址:Str_条目小站IP_输入处理

    指明在屏幕上

  17. 设置弹出框的录入,并再点击确认按钮

    指明在屏幕上

  18. 遍历循环结束后,此处再执行参数配置窗口的关闭动作

  19. 编译运行,您可以看到如下结果


3.4. 组件开发:关闭

该步骤的起点截图:

  1. 直接点击退出系统按钮

    指明在屏幕上

  2. 在弹出框中再点击一次确定

    指明在屏幕上


4. 流程设计

4.1. 组件审核

  1. 组件开发完成后,组件会显示蓝色(未审核),需要针对组件先执行审核

  2. 打开组件,点击审核按钮

  3. 在审核备注中填写:初版

  4. 审核后的组件就可以使用了

4.2. 流程设计

  1. 点击流程管理中:流程设计/流程设计

  2. 创建流程设计中的基础内容

    • 分组:虞浪

    • 分组:虞浪/浪小站案例

    • 流程图:小站系统参数修改流程

  3. 修改流程图,追加三个节点(合计四个节点),流程图修改后先保存

    • 登录

    • 清空列表

    • 增加服务器

    • 关闭

    连接线选择时使用Ctrl键可直接复制相关内容,复制完成后点击上边工具 -> 自动调整则流程图就会自动对齐成想要的样子。

  4. 去掉连接线复选框,然后双击第一个节点(注意不是开始

  5. 左侧选择登录组件,右侧点击所在代理(保证自己的代理已经连接到服务器上,并且可以看到资源池信息)

  6. 最后修改一下流程节点的名称

  7. 剩余三个节点重复步骤4 ~ 6,设置好全部内容后点击保存

  8. 如此,流程基本设置已经全部稳妥,接着执行失败后重试,选择节点之后的线条

  9. 选中流程场景,勾上:过程、截图、检查节点

  10. 去掉设计的选择框,然后点击执行按钮,执行完后全部是绿色

  11. 点击右侧截图可以看到整个过程中的所有截图和结果截图,然后点击:流程管理 -> 流程审核

  12. 审核完成后流程才生效

最后更新于