开发背景
开发环境 | Windows操作系统 |
---|---|
开发工具 | Visiual Studio 2019 |
开发人员 | 潘昌进 陈颖鸿 |
模块简介 | RPA微流模块旨在方便用户对常用的部分流程做模块化管理,更加方便客户使用 |
微流一次迭代功能点
微流创建,修改,删除,微流展示(包含容器化)等功能
微流一次迭代功能关键点
微流创建与存储关键点
- 微流创建时,可存储于本地配置文件中,也可存于数据库,本地微流数据与与数据库中微流数据必须对应,且唯一标识符保持一致。
- 微流中,如果有开始和结束节点,是否会和主流程冲突,应避免冲突,是否可以不要开始和结束节点?
微流修改关键点
- 微流修改时,应同时修改本地配置文件微流节点和数据库中对应微流数据。
- 微流修改时,若有主流程正在使用此微流,应该如何处理?目前主剧本的微流独立于原微流
微流删除关键点
- 微流删除时,应同时删除本地配置文件微流节点和数据库中对应微流数据。
- 微流删除时,若有主流程正在使用此微流,应该如何处理?目前主剧本的微流独立于原微流
微流展示关键点
- 微流容器化:需等待容器模块初步完成,微流与容器进行结合
- 用户可在主流程中选定已加入的微流进行编辑,编辑完成后可保存,存为新的微流模板
- 用户可在主流程中选取一部分流程,存储为微流模板
代码关键点
- 原则上,将微流模块独立处理,不可像之前的代码都写在MainForm中,MainForm理当只作为设计器和逻辑出入口
- 尽量提取逻辑公共处,做统一化处理,减少代码冗余
- 微流本地存储和数据库存储应提供统一入口,降低代码耦合性
微流一期优化点以及待定需求 (目前进度)
- 创建微流后不添加节点,理论上无法保存,但是此时打开剧本,那么微流会被保存为一个空的文件,而空微流无法被打开和修改 ok
- 剧本中编辑微流 面包屑显示错误 ok
- 微流的面包屑显示错误 微流名称对不上 ok
- 微流拖拽到剧本中,显示的name和说明对应不上 微流名称对不上 ok
- Helper文件夹移动到unit中 unit和Entity会产生依赖死循环 不好移动,会造成UNIT和Entity项目循环依赖 ng
- 微流的上移 下移等其他按钮不生效 具体梳理哪一些
- 微流不能另存为模板 会导致新建剧本使用模板失败
- 微流加背景色—-浅色 不要刺眼
- 微流事件添加的图片 要在剧本中可以看到
- 删除剧本test0001 结果删除了所有剧本
- 微流中不能存在开始和结束节点
- 微流中不能加入微流节点
- 微流按钮挪到新建按钮下
- 保存模板的时候,剧本的图片存储位置不正确
—待讨论的点
- 微流与KVM的问题,是否需要KVM(正常来说是需要的),微流KVM需要和剧本的KVM分开,
- 微流是否可以另存为新的微流?需要讨论 另存按钮
- 剧本中编辑过的微流 保存为新的微流
- 剧本中折叠的节点 是否可以保存为微流 (折叠中间有微流不允许保存,微流暂时为最小单位)
微流二次迭代功能点
- 微流数据存于数据库,需要和剧本的数据库结构一起设计
- 微流与折叠器联动,微流中是否可包含折叠器,折叠器中是否可包含微流
- 微流与容器化联动,容器化尚未立项
- 微流与缓存联动,ctrl + Z之类的操作,此项前提为1. 需要数据库的设计明朗化
if (curObject.GetType().Name.ToUpper() == "RPA_FOLDBEGIN" || curObject.GetType().Name.ToUpper() == "RPA_FOLDEND")
{
bool isCurFolding = Convert.ToBoolean(RPA_ReflectObj.GetPropertyValue(dragObj, "IsFold"));
if (isCurFolding)
{
string curMatchID = (string)RPA_ReflectObj.GetPropertyValue(curObject, "MatchID");
var curStartObj = Rpa_MS.Steps.Where(s => s.GetType().GetProperty("Id").GetValue(s).ToString() == curMatchID).FirstOrDefault();
curStart = (int)RPA_ReflectObj.GetPropertyValue(curStartObj, "Index") - 1; //区域开始 索引为curStart-1
curEnd = i;
targetObj = Rpa_MS.Steps[curStart - 1];
//折叠起来的节点 位于开始节点后 则不能位移
if (curStart <= 1)
{
break;
}
}
}