开源源码,项目下载地址https://gitee.com/lowcode2/ailowcode.git
任务流-组件案例
1. Email&循环&数据汇聚组件集成应用
在任务流管理页面中创建一个名称为“数据汇聚案例”的任务流,点击行尾的“设计器”按钮,打开相应的任务流设计器页面。选择任务流设计器工具栏案例下拉框中“Email-循环-数据汇聚”选项,设计区会自动创建Http-If逻辑流程案例,如下图所示。
该流程图的执行目的,是将标识1和标识2的“JDBC取数”组件执行的sql结果集,通过标识3“数据汇聚”组件进行合并,最后通过标识4“循环”组件,进行循环调用“Email”组件,实现循环发送email。
标识1和标识2是“JDBC取数”组件,在组件的属性栏中配置查询SQL语句,执行结果将分别以json数组结构存入变量dataList1和dataList2中。如下图所示。
标识3“数据汇聚”组件:数据汇聚方式目前支持追加、和笛卡尔积2种方式。追加方式是针对多个数据变量,字段结构一致的情况下,进行追加操作。笛卡尔积是针对数据字段不一致的情况,进行笛卡尔积合并操作。在本例中,因dataList1和dataList2数据结构一致,需要做追加合并,在组件的属性栏中配置汇聚方式:追加。需合并的数据变量,该项需要设置多个存入的数据变量,多个变量用逗号分隔,在本例中配置成:dataList1,dataList2。数据存入变量,设置成:dataList。如下图所示。
标识4“循环”组件。该组件属性栏中设置“读取数据列表变量”为dataList,表示是对dataList进行循环,循环体内子项对象变量设置成dataItem,循环体内组件将使用dataItem进行应用处理。相关配置如下图所示。
循环体里Email组件,将引用dataItem中的email地址及相关信息,进行邮件发送操作。其属性栏配置如下图所示。
2. 组件案例:路由组件应用
在任务流管理页面中创建一个名称为“路由案例”的任务流,点击行尾的“设计器”按钮,打开相应的任务流设计器页面。在设计器中通过拖拽路由、定义变量等组件,完成本案例的流程设计,如下图所示。
选中“定义变量”组件,右侧属性栏中,初始化一个变量map,初始化值设置成{‘num’:0},方便后续测试。如下图所示。
选中“路由”组件下面最左侧的“线”,右侧属性栏中设置路由条件,如下图所示。当变量map.num=0时,走最左侧路由。右侧另2条“线”做类似设置,路由条件分别设置成map.num=1, map.num=2。
选中最左侧的“通知内容”组件,写死变量值,如变量num0,对应的值是“当前是num0”,如下图所示。右侧另2个“通过内容”组件做类似配置。
选中最左侧的“日志输出”组件,在“读取数据变量值”项设置成num0,表示打印变量num0的值,如下图所示。
测试。将“定义变量”组件的初始化值分别设置成:{‘num’:0}、{‘num’:1}、{‘num’:2},点击“运行”按钮。执行日志中显示不同路由下,打印不同日志的测试效果。当num=0时,日志打印“当前是num0”的测试效果,如下图所示。
3. 无代码动态列表自动生成的任务流
通过菜单“无代码配置/模板管理”的无代码配置功能,创建一条模板记录,同时自动创建相应数据表的无代码菜单(创建方法见“无代码-动态列表”)。点击相应模板的“SQL数据集”按钮,打开SQL数据集对话框,点击表单设计器标签页面的“流程设计器”按钮打开任务流流程设计器对话框。下图所示,是由模板的无代码配置功能,自动创建的后端业务逻辑流程图。流程图通过路由参数route决策执行不同的功能;当route=page时,执行分页查询;当route=selectById时,根据Id查询表数据;当route=submit时,判断入参id是否为空,为空时执行插入sql,不为空时执行更新sql;当route=delete时,执行删除操作(逻辑删除)。流程图中各项配置,保存后实时生效,可根据实际情况,调整相应逻辑或sql脚本。如下图所示。
无代码生成的动态列表中,默认生成了增加编辑框的拖拽表单。表单中配置了调用任务流需要的路由参数(route),主要应用到相应的路由参数值有selectById、submit。selectById主要通过id查询表记录,用于编辑框的数据显示。submit主要用于保存数据,如id为空时,执行insert脚本如下。关于sql脚本中的${dataParam.name}结构说明,其中dataParam是入参信息保存的对象,整句的意思是从入参数中,取变量name的值。
- 1. insert into tmpt_auth_user(
- 2. loginname,
- 3. name,
- 4. tmpt_user_type,
- 5. tmpt_auth_position,
- 6. tmpt_auth_dept_post_id,
- 7. tmpt_auth_dept_id,
- 8. ctc_region_id,
- 9. idcardno,
- 10. email,
- 11. job_number,
- 12. phone,
- 13. telephone,
- 14. sex,
- 15. ......
- 16. )
- 17. values
- 18. (
- 19. ${dataParam.loginname},
- 20. ${dataParam.name},
- 21. ${dataParam.tmpt_user_type},
- 22. ${dataParam.tmpt_auth_position},
- 23. ${dataParam.tmpt_auth_dept_post_id},
- 24. ${dataParam.tmpt_auth_dept_id},
- 25. ${dataParam.ctc_region_id},
- 26. ${dataParam.idcardno},
- 27. ${dataParam.email},
- 28. ${dataParam.job_number},
- 29. ${dataParam.phone},
- 30. ${dataParam.telephone},
- 31. ${dataParam.sex},
- 32. ......
- 33. )
评论记录:
回复评论: