系统功能
在开发一个前端工作流设计器,尤其是基于BPMN(业务流程建模与标注)或类似于钉钉的设计器时,主要需求可以总结为以下几个关键点:
1. 流程节点与边的设计
- 节点类型多样化:支持基础节点(如开始、结束、任务节点、网关节点等)和自定义节点。
- 节点可配置性:每个节点需要可以配置,例如设置名称、角色、条件等属性。
- 节点拖拽:支持拖拽式操作,将节点从工具栏拖到画布上。
- 连线设计:支持连线操作,能够连接各个节点以形成流程图,连接线可以设置条件、标签、样式等。
- BPMN标准兼容性:如果采用BPMN,需要符合BPMN 2.0标准。
2. 流程图的编辑和操作
- 放大缩小:支持画布的放大和缩小,便于用户查看和编辑复杂流程。
- 对齐和网格吸附:辅助对齐工具、网格吸附功能,提升流程节点的排列整齐度。
- 撤销与重做:支持撤销和重做操作,方便用户进行容错操作。
- 键盘快捷键:支持常用的快捷键操作,如删除、复制粘贴等。
- 分组与子流程:支持节点的分组管理和嵌套子流程的设计。
3. 节点属性设置面板
- 动态配置面板:根据选择的节点或连线类型,展示不同的属性设置选项。
- 自定义属性支持:允许用户为节点或连线添加自定义属性。
- 表单字段配置:如任务节点,可以允许用户配置表单字段和校验规则等。
- 条件与规则配置:在连线上设置条件或在网关上配置规则,方便流程控制。
4. 数据保存与导入导出
- 实时保存:支持实时保存流程图数据,或提供保存按钮。
- 数据导出与导入:支持将流程图数据导出为JSON、XML等格式;支持BPMN格式的XML导入。
- 版本控制:可以考虑为流程设计器添加版本控制功能,以便回溯到历史版本。
5. 模拟与验证
- 流程模拟:允许用户在设计器中模拟执行流程,以检查流程的逻辑。
- 校验与提示:在保存或发布前进行流程校验,确保流程逻辑无误(如无孤立节点,连线正确等),并给予提示。
保存时,后端校验,是否配置开始节点,是否正确配置表单
6. UI/UX设计
- 直观的用户界面:设计需要简洁、直观,尽量避免复杂操作步骤。
- 模块化设计:方便后续功能扩展,例如添加新的节点类型、事件监听等。
- 响应式布局:适配不同分辨率和屏幕,支持在大屏和小屏设备上均能正常使用。
7. 权限与协作
- 权限管理:支持不同用户角色对流程设计的权限控制。
- 多人协作:支持多人协作编辑、留言与注释,方便多人共同设计流程(类似于钉钉的协作编辑模式)。
8. API接口与集成
- API接口:提供API接口以便与其他系统集成,如导出流程图数据、获取表单数据等。
表单设计与绑定
表单设计:Form Generator
表单绑定:将表单与具体流程任务向绑定
如提交请假申请可能还要提供证明文件,此时就要一个文件上传表单。
- 第三方服务集成:支持将工作流与其他系统进行集成,如审批、通知等业务流程操作。
流程状态管理
审批设置
常见的审批节点设置包括 通过、回退、抄送,会签以及其他常用的审批操作
1. 通过(Approve/通过)
- 功能:流程进入审批节点时,审批人可以选择“通过”操作,表示此流程节点的内容符合要求,流程可继续往下一个节点流转。
- 设置选项:
- 审批人:指定谁有权批准,可以是某个具体用户、角色、用户组或是动态指定(例如由上一级提交人指定)。
- 通过条件:可以设置自动通过条件(如金额低于某个数值时自动通过)。
- 通知:流程通过后是否向相关人发送通知,以告知流程状态变化。
- 审批意见:是否要求审批人在通过时填写审批意见或备注。
2. 回退(Reject/退回)
- 功能:当审批人认为申请不符合要求或信息不完整时,可以选择“回退”操作,将流程退回到之前的节点或发起人以修改内容。
- 设置选项:
- 回退目标:回退到指定节点,通常是前一节点或直接退回发起人,可以是单步回退或多步回退。
- 回退条件:设置特定条件满足时回退(如申请材料不全或金额超限)。
- 回退理由:回退时要求审批人填写理由,以便后续节点人员知道回退原因。
- 通知方式:通知退回相关人员(如申请人、上一级审批人)并标明退回原因。
3. 抄送(CC/抄送)
- 功能:抄送功能是将流程信息同步发送给相关知情人员,抄送人可以查看流程进展,但通常不具有审批权限。
- 设置选项:
- 抄送人指定:可以指定为固定用户、动态用户组(如财务部、某个项目组)或流程中途产生的角色。
- 抄送节点:可以在流程的某个节点或整流程结束时抄送,视情况而定。
- 通知模式:设置抄送通知的触发方式,可以是即时通知、邮件通知、消息提醒等。
- 查看权限:可以控制抄送人是否能查看流程的全部内容,或仅能查看部分关键信息。
4. 加签(Add Approver/加签)
- 功能:在审批过程中,审批人可以根据需要,添加其他审批人参与当前节点的审批。此功能适用于需要多人共同审核的场景。
- 设置选项:
- 加签人选择:可以选择固定加签人或自由选择(如根据具体情况添加财务、法务等审批人)。
- 加签顺序:设置加签的顺序,可以是串行(按顺序逐个审批)或并行(同时审批)。
- 加签条件:满足特定条件时自动触发加签(如金额超过一定额度)。
- 审批要求:加签人是否必须通过才能进入下一个流程节点。
5. 转办(Reassign/转办)
- 功能:在审批过程中,当前审批人将审批任务转交给其他合适的人员,适用于审批人无法处理任务的情况(如出差、请假等)。
- 设置选项:
- 转办权限:是否允许审批人自由选择转办人员,或只能在指定的候选人中选择。
- 转办通知:向被转办人和相关人员发送通知。
- 转办日志记录:记录转办过程,方便后续审查和追踪。
6. 条件分支(Condition Branch/条件分支)
- 功能:在业务流程中,审批结果或业务数据满足特定条件时,可以自动选择不同的流转路径。适用于复杂的审批场景。
- 设置选项:
- 条件配置:基于字段或审批结果设置条件分支,如金额超过10万时走总经理审批,否则走财务审批。
- 路径选择:配置多个条件路径,满足条件的路径将被自动选择。
- 默认路径:若条件都不满足,可指定默认路径,确保流程不被卡住。
7. 并行审批(Parallel Approval)
- 功能:多个审批人可以在同一个节点并行审批,适用于多个部门或人员同时审核的场景,例如重大事项需要法务、财务、行政共同审批。
- 设置选项:
- 审批人设置:指定多个并行审批人,可以是不同部门或角色。
- 审批通过规则:设置通过标准,可以是“任一人通过即通过”或“所有人通过才算通过”。
- 并行路径处理:并行审批路径通常合并到下一个节点,以便流程继续。
8. 会签(Countersign/会签)
- 功能:会签要求多个审批人共同审核同一流程节点,并且需要达到一定的审批比例或通过率才能进入下一步。适用于重要决策或集体评审。
- 设置选项:
- 会签人员:选择需要参与会签的人员或角色。
- 通过比例:设置通过比例,例如至少60%会签人同意才能进入下一步。
- 会签规则:设定会签流程的规则,如“一票否决”或“少数服从多数”。
- 会签意见:可以要求会签人提供书面意见,以备决策参考。
9. 自动审批(Auto-Approval)
- 功能:满足预设条件时自动审批通过,适用于简化小额或标准化审批流程,减少人工操作。
- 设置选项:
- 自动条件:设置自动审批的触发条件,如金额在1,000元以内的报销申请自动通过。
- 日志记录:自动审批也需要记录审批日志,以便后续查询。
- 审批结果:可自定义自动审批的结果,例如“自动通过”或“系统审核通过”。
10. 终止流程(Terminate/终止)
- 功能:在特定条件下,终止流程的继续流转,适用于流程中遇到严重问题或业务取消的场景。
- 设置选项:
- 终止条件:指定触发终止的条件(如审批过程中发现严重问题或申请人取消流程)。
- 终止原因:允许填写终止原因并通知相关人员。
- 记录保存:终止流程后需保留记录,以便后续查询或审查。
以上是设计一个BPMN或仿钉钉的前端工作流设计器的主要需求,通过满足这些需求,用户将可以更高效地设计和管理业务流程,提高工作效率和团队协作水平。
需求功能
在一个前端工作流设计器中,结合具体的业务流程需求时,核心点可以归纳为以下几个方面:
1. 节点的业务定义与类型支持
- 业务节点映射:每个流程节点应能关联具体的业务操作,例如审批、抄送、任务分配、自动任务等。根据业务需求定义节点类型,以便灵活适应业务逻辑。
- 审批节点:支持设置审批人、审批条件和审批规则,适用于审批流程。
- 任务节点:可用于自动化任务或手动任务,可以配置任务执行者、任务截止时间等。
- 通知节点:将业务流程中的消息或通知触发与节点绑定,在流程到达特定节点时自动发送消息或通知。
- 子流程节点:支持引用和复用子流程,以便处理重复的业务流程片段。
2. 节点属性与动态配置
- 业务字段映射:流程节点中的字段应该能与实际业务数据字段进行映射,例如申请人信息、部门、金额等,以便在运行时动态获取或更新这些数据。
- 表单配置:允许为节点配置表单字段,用于填写业务所需的数据。表单字段可以设置为必填、选填等,还可以添加验证规则。
- 动态规则与条件:根据业务逻辑设定条件分支(如金额大于某个值时走审批,低于某个值自动通过),支持动态条件的设置,能够适应复杂的业务流程场景。
3. 权限控制
- 角色与用户分配:在每个节点中关联用户或用户组(如部门经理、财务等),确保每个流程节点的审批或操作权限符合业务需求。
- 多级审批权限:对于多级审批业务流程,支持在不同节点分配不同的权限。每一级审批人只能看到和处理自己权限内的内容。
- 数据权限:根据业务需求控制流程中的数据权限,保证敏感信息的安全性。
4. 数据传递与状态管理
- 数据流转:在流程各节点之间,能够传递业务数据(如申请表信息、审批结果等),确保流程中的数据始终保持一致。
- 状态跟踪与反馈:节点需要有状态(待处理、处理中、已完成等)及状态的自动更新机制,帮助业务人员掌控流程进度。
- 操作日志:每个节点的操作记录及流程进展日志要详细记录,方便事后追溯和审核。
5. 流程监控与预警
- 实时监控:实时监控业务流程的状态,确保流程顺畅进行。一旦流程卡在某个节点,应能及时发出预警。
- 异常处理:支持异常分支配置,如当流程长时间未处理时自动转交给上一级负责人,或发送提醒。
- 定时触发:允许在特定时间触发流程节点,适用于定期审批或自动化任务,满足定时的业务需求。
6. 外部数据与系统集成
- 与业务系统的数据交互:在流程节点中集成外部业务系统的数据,如ERP系统、CRM系统等,使得流程能够读取和更新这些系统的数据。
- API触发与回调:流程节点支持调用外部API,以便在节点执行时可以触发外部系统的动作,或接收外部系统的回调,进一步完善业务操作。
- 单点登录(SSO)与用户同步:将工作流设计器的用户权限与业务系统同步,以便简化用户操作体验和权限控制。
7. 报表与分析
- 流程统计:支持生成业务流程的统计报表,包括流程耗时、处理人数、通过率等,便于业务优化。
- 瓶颈分析:对流程中的停滞节点进行统计分析,找出业务流程中的瓶颈和改进点。
- 异常流程分析:分析被驳回、重复提交、异常中止的流程,帮助业务部门优化流程,提高效率。
8. 流程模板和版本管理
- 流程模板化:支持根据业务需求定义多个流程模板,以便在不同业务场景下快速复用。
- 版本控制与切换:在流程设计发生变更时,支持新旧版本的切换或过渡,确保业务流程不中断。
- 历史版本查看:允许查看流程的历史版本,方便在业务需求变化时进行调整。
9. 流程执行与结果关联
- 业务结果关联:将流程的执行结果与实际业务数据进行关联,例如审批通过后更新订单状态、生成报告等,确保流程执行后能够对业务产生实际影响。
- 自动化操作:对于标准化业务流程,支持自动化操作配置(如自动生成通知、自动数据填充),减少人工干预,提高执行效率。
10. 自定义扩展
- 插件式扩展:支持业务流程的自定义节点或插件扩展,以便后续在业务流程中灵活增加新的业务功能。
- 规则引擎集成:可以结合规则引擎,以便支持更复杂的业务规则配置和动态调整,适应多样化的业务需求。
以上这些核心点是将业务流程与工作流设计器紧密关联的基础,满足这些需求可以让工作流设计器不仅仅是绘制流程图的工具,更成为支持实际业务运转和管理的中枢平台。