一、工作流是什么?
1、生活中到处都是活生生的“流”:在单位请假、从网上购物都可以看到工作流的影子。
2、工作流最早起源于生产组织和办公自动化领域,它是针对平时工作中的业务流程活动而提出的一个概念,目的是根据将工作分解成定义良好的任务或角色,根据一定的原则和过程来实施这些任务并加以监控,从而达到提高效率、控制过程、提升客户服务、增强有效管理业务流程等目的。
二、在南瓜树上如何快速绘制审批流程?
以请假管理为例,介绍如何在南瓜数上开发审批流程,一起来看看吧~
详细可参考文档:
7.1 绘制流程图
以请假管理为例,介绍如何在南瓜数上开发审批流程
7.1.1 新增流程图
1.菜单路径:工作流管理》工作流模型》新增
点击新增按钮,进入到设计器页面
7.1.2 绘制流程图
开始节点
填写id和名称信息
发起申请节点
1.设置id和name
2.添加任务监听器
添加创建时的任务监听器
com.yabu
3.设置流出线的message
部门经理审批节点
1.设置id和name
2.添加任务监听器
com.yabu
3.设置流出线同意的message
4.设置流出线退回的message
考勤管理员审批节点
1.设置id和name
2.设置任务监听器
com.yabu
3.设置流出线同意message
由于只有一个流出线,所以可以不用设置message。勾选默认流转即可流转
结束节点
1.设置id和name
此处可以优化设置一个监听器,当任务结束时,修改业务状态
主流程名称
点击空白处,修改流程主题名称。
7.1.3 保存流程图设计
流程图设计完成后,点击左上角的保存按钮,输入流程名称。点击保存
7.2 流程图发布
7.2.1 流程图发布
流程图在7.1中绘制完成后,回到系统菜单:工作流管理》工作流模型
点击刷新,即可查看到刚刚创建的流程图,点击右侧的发布按钮,进行发布
7.2.2 生成审批配置节点
7.2.1 中对流程发布成功后,勾选刚发布的员工请假流程管理。点击生成审批配置节点按钮
7.2.2 审批节点配置
菜单路径:工作流管理》节点配置
输入实例ID,点击搜索,即可模糊搜索刚刚生成审批的节点信息
7.2.2.1 发起申请
发起申请节点,选择处理类型为:按申请人
7.2.2.2 部门经理审批
部门经理节点,处理类型选择:按角色,角色选择:部门经理
7.2.2.3 考勤管理员审批
处理类型选择:按角色,角色选择:考勤管理员
7.2.2.4 配置完成后的结果
节点处理人员配置完成后的结果如下
7.3 节点审批按钮配置
菜单路径:工作流管理》工作流模型》操作列》节点信息
点击节点信息,打开如下页面
发起申请
点击按钮信息,点击添加按钮,输入如下图信息,点击保存
部门经理审批
点击按钮信息,点击添加按钮,输入如下图信息,点击保存
考勤管理员审批
点击按钮信息,点击添加按钮,输入如下图信息,点击保存
到此完成了流程的发布配置
7.3 业务绑定流程
7.3.1 表单也业务列表的配置
按照快速入门的一到六中步骤完成请假表单的配置,详细参考一到六。下图只列出关键信息
1.表单设计
{
"widgetList": [
{
"type": "date-range",
"icon": "date-range-field",
"formItemFlag": true,
"options": {
"name": "daterange67074",
"label": "请假时间",
"labelAlign": "",
"type": "daterange",
"defaultValue": null,
"startplaceholder": "",
"endPlaceholder": "",
"columnWidth": "200px",
"size": "",
"labelWidth": null,
"labelHidden": false,
"readonly": false,
"disabled": false,
"hidden": false,
"clearable": true,
"editable": false,
"format": "yyyy-MM-dd",
"valueFormat": "yyyy-MM-dd",
"required": false,
"requiredHint": "",
"validation": "",
"validationHint": "",
"customClass": "",
"labelIconClass": null,
"labelIconPosition": "rear",
"labelTooltip": null,
"onCreated": "",
"onMounted": "",
"onChange": "",
"onFocus": "",
"onBlur": "",
"onValidate": ""
},
"id": "daterange67074"
},
{
"type": "select",
"icon": "select-field",
"formItemFlag": true,
"options": {
"name": "select91105",
"label": "请假类型",
"labelAlign": "",
"defaultValue": "事假",
"placeholder": "",
"columnWidth": "200px",
"size": "",
"labelWidth": null,
"labelHidden": false,
"disabled": false,
"hidden": false,
"clearable": true,
"filterable": false,
"allowCreate": false,
"remote": false,
"automaticDropdown": false,
"multiple": false,
"multipleLimit": 0,
"optionItems": [
{
"label": "事假",
"value": "事假"
},
{
"label": "病假",
"value": "病假"
},
{
"label": "年假",
"value": "年假"
}
],
"required": false,
"requiredHint": "",
"validation": "",
"validationHint": "",
"customClass": "",
"labelIconClass": null,
"labelIconPosition": "rear",
"labelTooltip": null,
"onCreated": "",
"onMounted": "",
"onRemoteQuery": "",
"onChange": "",
"onFocus": "",
"onBlur": "",
"onValidate": ""
},
"id": "select91105"
},
{
"type": "textarea",
"icon": "textarea-field",
"formItemFlag": true,
"options": {
"name": "textarea94128",
"label": "请假原因",
"labelAlign": "",
"rows": 8,
"defaultValue": "",
"placeholder": "",
"columnWidth": "200px",
"size": "",
"labelWidth": null,
"labelHidden": false,
"readonly": false,
"disabled": false,
"hidden": false,
"required": true,
"requiredHint": "",
"validation": "",
"validationHint": "",
"customClass": "",
"labelIconClass": null,
"labelIconPosition": "rear",
"labelTooltip": null,
"minLength": null,
"maxLength": null,
"showWordLimit": false,
"onCreated": "",
"onMounted": "",
"onInput": "",
"onChange": "",
"onFocus": "",
"onBlur": "",
"onValidate": ""
},
"id": "textarea94128"
}
],
"formConfig": {
"modelName": "formData",
"refName": "vForm",
"rulesName": "rules",
"labelWidth": 80,
"labelPosition": "left",
"size": "",
"labelAlign": "label-left-align",
"cssCode": "",
"customClass": "",
"functions": "",
"layoutType": "PC",
"onFormCreated": "",
"onFormMounted": "",
"onFormDataChange": ""
}
}
2.业务列表设计
[
{
key: '1',
label: '姓名',
prop: 'CREATED_BY',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假开始时间',
prop: 'date64089',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假结束时间',
prop: 'date16472',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假类型',
prop: 'select91105',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{
key: '2',
label: '请假原因',
prop: 'textarea94128',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
{key: '6',
label: '创建时间',
prop: 'CREATED_TIME',
width: '150',
headerAlign: 'center',
align: 'center',
scope: false,
sortable: true
},
{
key: '7',
label: '状态',
prop: 'status48624',
width: '150',
headerAlign: 'center',
align: 'right',
scope: false,
sortable: true
},
]
3.菜单设计
7.4 发起流程
菜单路径:OA系统》请假管理
1. 发起请假申请
点击发起申请按钮
填写请假信息,点击提交
选择审批人,点击确定即可完成发起申请
2.部门经理审批
部门经理登录系统,在工作台中会收到审批待办
点击待办打开审批页面
点击同意选择下一步处理人,点击确定。完成审批
3.考勤管理员审批
考勤管理员登录系统,在工作台会收到一条待办
点击标题打开待办页面
点击同意,填写审批意见,点击确定完成审批
4、流程结束
至此完成了整个审批的流程
思考:代码都可以实现这些动作,为什么还需要工作流呢?
代码实现的缺点:
1.代码实现这些功能的话,每次流程推进都要去判断节点和流程的流向
2.代码硬编码的话,如果流程只需要增加或者删除一个节点,就需要改动代码
3.不利于维护和扩展
4.不利于代码的重用性
工作流实现的优点:
1.程序员不需要关心流程流转,节点等细节
2.减少了很多硬性编码,维护和扩展都很方便
3.工作流都有一套完善的API.调用api就可以实现功能,开发效率高
4.一套完善的工作流还提供用户随时修改流程的功能.减少了用户因为需求分析的变动带来的工作量.