工作流指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。
工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
今天手把手教大家迅速完成一个自定义的工作流流程,在这里也感谢亿信ABI的全程赞助,感兴趣的小伙伴也可以在在亿信ABI的免费试用版中一起操作。
1、业务场景
某公司的请假申请审批流程需要由公司员工填写请假申请任务,再通过公司部门经理的一级审批和公司经理的二级审批。各级审批不通过时需要将请假申请单退回给申请人修改,修改后回到退回环节继续审批。当所有审批都通过时需要发通知给申请人通知请假已经允许。
2、场景分析
1. 申请人需要填写工作流中的第一个活动-表单活动,在员工请假审批单分析表中填写请假单的相关数据然后发起员工请假工作流;
2. 根据申请人找到对应的公司部门经理,部门经理需要审批填报的员工请假审批单,公司部门经理可以选择通过或退回;
3. 如果公司部门经理审批通过则由公司经理进行审批,否则退回到步骤1;
4. 如果公司经理退回则退回到步骤1,否则请假流程结束。
3、 组织机构
对组织机构负责人进行设置,在此场景示例中,申请人为潘虹,公司部门经理为何罗成,公司经理为金正平。
![1139674c51e1335d8c0fb8710bdfaa9f.png](https://img-blog.csdnimg.cn/img_convert/1139674c51e1335d8c0fb8710bdfaa9f.png)
主题表结构
![5d17dcbf9acdfc0ab0808bfbff1d44f0.png](https://img-blog.csdnimg.cn/img_convert/5d17dcbf9acdfc0ab0808bfbff1d44f0.png)
表单设计
用于填报的分析表需要包含表单容器,在表单容器中拖入表单组件设计员工请假申请表的结构。
![fb8a8e8e681542278fa9aa03e4fe9d84.png](https://img-blog.csdnimg.cn/img_convert/fb8a8e8e681542278fa9aa03e4fe9d84.png)
表单属性设置
组件主要需要设置基础属性中的代号和表达式,回填属性等
![c1855aa60f7c92b958e6cd5bd7af2f27.png](https://img-blog.csdnimg.cn/img_convert/c1855aa60f7c92b958e6cd5bd7af2f27.png)
![d8727a627c0227db5f6d08784b19159b.png](https://img-blog.csdnimg.cn/img_convert/d8727a627c0227db5f6d08784b19159b.png)
下图方框中的组件都是隐藏起来的,因为这些组件的值都是自动获取的,比如姓名组件的回填属性的默认值为login.name代表当前用户的名称。
最特殊的是wfuuid,它是数据库表的主键,需要具有唯一性,因此采用嵌套函数表达式ASSTR(NOW()),表达式含义为服务器当前时间的字符串。
![69e63465727eab15cef9de724db6f18e.png](https://img-blog.csdnimg.cn/img_convert/69e63465727eab15cef9de724db6f18e.png)
回填规则设置
员工填写的信息需要存储到回填主题表中,因此需要为表单容器设置回填规则。
![f66136a788720664cd6a338a1c1a93b4.png](https://img-blog.csdnimg.cn/img_convert/f66136a788720664cd6a338a1c1a93b4.png)
![1d29945f4c995687dc5bc5027ccad39a.png](https://img-blog.csdnimg.cn/img_convert/1d29945f4c995687dc5bc5027ccad39a.png)
![8b9f36c3654c0113dcc276e713ec7b4a.png](https://img-blog.csdnimg.cn/img_convert/8b9f36c3654c0113dcc276e713ec7b4a.png)
以请假原因为例,组件代号为ereason,表达式为YGQJSPD.REASON_。
组件代号指该表单组件-多行输入框的代号,表达式则由数据库表.字段名组成。
![0aee756a1fa92c2a06f7218529dc3b85.png](https://img-blog.csdnimg.cn/img_convert/0aee756a1fa92c2a06f7218529dc3b85.png)
![bacc0fd6fd1bb5c7a898c441254e282e.png](https://img-blog.csdnimg.cn/img_convert/bacc0fd6fd1bb5c7a898c441254e282e.png)
流程图
按照场景规则绘制工作流流程图
![0e0e55aa01fec4e271c7dc90f7423994.png](https://img-blog.csdnimg.cn/img_convert/0e0e55aa01fec4e271c7dc90f7423994.png)
表单活动指定分析表
根据【活动对象】的不同选择,分析表有四种指定方式:
1、继承上个活动
2、使用全局设置
3、自定义
4、运行时自定义
本场景中可以在分析表中发起表单活动,因此在【活动对象】中选择运行时自定义。
![81eee3fb27f470af1403b580c419176c.png](https://img-blog.csdnimg.cn/img_convert/81eee3fb27f470af1403b580c419176c.png)
全局变量设置
点击下图箭头处可弹出如下弹窗,将流程中需要动态使用的参数,定义为全局变量,参数需要带上@,如:
@wfuuid 请假审批单数据的主键--即在员工请假审批单分析表中的数据主键id
@up1 上级1--即在组织机构中申请人的公司部门经理
@up2 上级2--即在组织机构中申请人的公司经理
@userid 申请人--即申请人的id
在弹窗中点击添加按钮可以添加流程变量定义,双击已添加的流程变量定义可以修改。
![3d09efec3b5511b118a4af50b7f4089d.png](https://img-blog.csdnimg.cn/img_convert/3d09efec3b5511b118a4af50b7f4089d.png)
办理人设置
选中活动节点,点击【办理人】弹出办理人设置弹窗。
办理方式:单人办理,即单用户办理该活动;
多人办理分两类:单人签收模式,即多人办理活动只要其中一人签收该活动则该活动结束;多人会签模式,即每个人都要进行签收该活动才算结束。
办理人选择有下图的四种方式进行选择。
本场景下表单活动的办理人选择流程启动者。
![4940d5217d8cf5ed638075243c9d88d5.png](https://img-blog.csdnimg.cn/img_convert/4940d5217d8cf5ed638075243c9d88d5.png)
审批活动的办理人则使用表达式进行设置user.userid=@up1,办理人等于分析表中计算的@up1的值,另一审批活动同理设置。
![3787f1acfa23f620baca5f6b523edf98.png](https://img-blog.csdnimg.cn/img_convert/3787f1acfa23f620baca5f6b523edf98.png)
表单数据过滤条件
![b4fe1e889e8af6f442bbcd2ee544f693.png](https://img-blog.csdnimg.cn/img_convert/b4fe1e889e8af6f442bbcd2ee544f693.png)
绑定变量
从表单活动的分析表中的组件值,赋值给工作流中的变量;
表单活动的参数变量绑定,以第一个变量为例,指从员工请假审批表分析表组件HHH2.up1中获取申请人xxx的部门负责人即领导@up1
![dd15c34fe4fdf748f8c6c3d8da72630d.png](https://img-blog.csdnimg.cn/img_convert/dd15c34fe4fdf748f8c6c3d8da72630d.png)
注意:本例中数据库表字段wfuuid为主键,因此需要在表单属性-基础属性-表单主键中进行主键管理的设置。
![2f86a55d3dd4a2bb89d427a6fe0c3961.png](https://img-blog.csdnimg.cn/img_convert/2f86a55d3dd4a2bb89d427a6fe0c3961.png)
![aedf742b93777c7d4f4b10f58a1e3325.png](https://img-blog.csdnimg.cn/img_convert/aedf742b93777c7d4f4b10f58a1e3325.png)
参数回填
将工作流的内置变量,变量,或者常量值,回写到当前活动显示的分析表中。
工作流内置变量有如下:
@I_APPROVEL_INFO:流程的审批信息(如:等待xxx办理xxx活动);
@I_APPROVEL_FLAG:流程的审批状态标记空:没有进入审批;1:审批中;2:审批完成;
@I_SID:流程实例id
@I_AID:获取当前活动实例id;
@I_TID:获取当前活动定义id;
@I_WID:当前流程定义id
@I_VERSION:获取流程定义版本;
@I_ASSIGNEE:获取当前活动办理人;
@I_CREATETIME:当前活动开始时间
@I_LASTCOMM:上一环节的意见
@I_FLOWTO:上一环节审批操作标记:"1"表示审批通过;"2"表示退回重审;"3"表示数据退回;"4"表示层层退回
在填写表单后,将工作流一些信息(如办理时间,办理状态等),回填到分析表中。
在表单活动-参数-参数回填中进行组件赋值的设置。
![a1ed1912925d4abb7631945a67222331.png](https://img-blog.csdnimg.cn/img_convert/a1ed1912925d4abb7631945a67222331.png)
点击组件赋值弹窗右上角问号按钮可以查看详细的工作流内置变量的使用方法。
![b2414b6c0fe8eea85ec8eeabb482e238.png](https://img-blog.csdnimg.cn/img_convert/b2414b6c0fe8eea85ec8eeabb482e238.png)
本场景中不涉及数据回填到分析表,因此展示其他包含参数回填例子的组件赋值示例。
![7230fbce4dedb034c0d8d83a9876707a.png](https://img-blog.csdnimg.cn/img_convert/7230fbce4dedb034c0d8d83a9876707a.png)
发布工作流
用户可以在工作流设计界面发布该工作流,也可以在工作流列表界面发布该工作流。
![7e000ceace786b4c70e8dc7e533f0958.png](https://img-blog.csdnimg.cn/img_convert/7e000ceace786b4c70e8dc7e533f0958.png)
![322d8bda1dd43e909593d2534e8e992a.png](https://img-blog.csdnimg.cn/img_convert/322d8bda1dd43e909593d2534e8e992a.png)
分析表中设置工作流
拖动一个参数组件-按钮组件到分析表中,修改名称为【提交申请】,点击提交申请按钮,在基础属性中的【工作流设置】中选择发起类型,发起类型选择提交当前表单并发起,选择工作流为之前制作的工作流,此种情况针对的是工作流中表单活动的活动对象为运行时自定义的情形。
![bf8bf0ed65d1d91e113480a2542b6e4f.png](https://img-blog.csdnimg.cn/img_convert/bf8bf0ed65d1d91e113480a2542b6e4f.png)
还可以选择工作流设置中的办理,查看,万能式来作为按钮的事件,办理:办理工作流,查看:查看工作流程的运行情况,万能式:用脚本的方式写一些可以用的事件。
4、实际效果
填报发起工作流
申请人打开分析表填写员工请假审批单,然后点击提交申请按钮则可以提交当前表单并发起该工作流。
![b04ad13fbec35516c89e0abc78c88644.png](https://img-blog.csdnimg.cn/img_convert/b04ad13fbec35516c89e0abc78c88644.png)
审批流程
员工请假单填报活动提交完成后,公司部门经理就会在工作流-我的流程-代办事项中看到该工作流。
![34879515427329a8fffd836e0c1a4348.png](https://img-blog.csdnimg.cn/img_convert/34879515427329a8fffd836e0c1a4348.png)
公司部门经理点击办理按钮后就会进入办理界面,左侧显示是员工填写的请假申请表信息,此时左侧的请假申请表信息是无法更改的,公司部门经理只能在右侧功能栏进行操作。
操作分为审批通过和退回重审。
此时若选择审批通过,则请假审批单交由公司经理进行审批,若退回重审则再次由申请人填写表单活动。
![8702f17194664dc7a296f05a6e3cb890.png](https://img-blog.csdnimg.cn/img_convert/8702f17194664dc7a296f05a6e3cb890.png)
当公司部门经理审批通过时,公司经理就能在代办事项下看到该工作流流程。
![27a6d742d3195a5f58e8038ebcb279c8.png](https://img-blog.csdnimg.cn/img_convert/27a6d742d3195a5f58e8038ebcb279c8.png)