时间:2021-05-26
回老家上班的新公司,第一个项目:OA。以前没有做过OA,因为设计到工作流这一块的东西,所以自己去进行了相关的了解,于是有了这篇博客(以下文字只是个人理解,高手漂过)。环境:MVC2+SQL2008
工作流分为几个步骤:表单(设计、解析)、流程(设计)、合并就是一个完整的工作流。先上个一个图:
第一步:表单因为没有使用图形化设计表单,所以我们的思路是强制定义表单格式,后台解析。如图:
上图的HTML是强制定义的,像table>tbody>tr>td必须按照这个格式定义,虽然不灵活,但是功能也算实现了。说说思路:这个表单将解析成11个节点(申请人、申请日期、部门、假期类别、请假时间、扣薪形式、请假理由、审批人、审批日期、审批结果、审批意见)
如上图所示,解析节点是通过[爱好]中的id获取的,采用HtmlAgilityPack来解析,具体代码:
SelectNodes("//table/tbody/tr/td[@id='title']")这样就可以知道表单的所有节点,而标题所对应的选项则用class来对应,从上图也可以看出来(用来控制表单节点是否可以填写项,下面会介绍)。
特殊控件处理:譬如时间的话也是通过定义class='time'而后,通过jquery动态绑定加载。
第二步:流程,同样通过文字形式来制定流程步骤定义流程与表单关联
这里的经办权限是直接跟用户关联的,用来标识哪些人拥有该流程的办理权限。
接下来就是定义流程的步骤了。
上图是一个请假流程的全部步骤,下面介绍怎么制定这些步骤。
节点序号:用来表示当前流程为第几步,节点名称用来标识当前步骤名称,是否允许附件、会签,用来控制附件与会签区的显示和隐藏。下一步标识当前步骤可以流转到哪些步骤,左边是已经选择好了的(可以是多个步骤,这里考虑的是,不同的职位使用相同的流程会有特殊情况发生,譬如正常的流程是需要四步[员工填写》经理审批》总监审批》人事备案],但是当总监请假的时候就不需要这么多步骤[填写表单》人事备案]),右边是拉取当前流程下的所有步骤。不可写字段标识,当前步骤时,表单有哪些节点为不可以填写,譬如:员工填写请假申请单,流转到经理时,那么经理看到的表单就有员工姓名、部门等信息不能填写,只能填写审批意见等节点信息。这样流程与表单就关联好了,接下来就是工作流流转了。
第三步:工作流流转,模拟流程流转,新建流程定义工作流的名称
点击确认新建是,直接跳转到流程页面,并且在数据库存入第一步流程的相关信息。
然后填写表单内容,选择下一个步骤及经办人就可以流转至下一步。说明:表单内容我是把整个表单的HTML代码全部存入数据库,然后流程流转时再把填写好的表单内容存入下一步,这样流程到下一步时,看到的表单就是最新的了。这是一个很笨的办法,因为使用$("#表单tableID")是获取不到表单的value值的,所有需要进行处理,获取表单内容通过jquery直接attr(value,文本值)上去,这样就可以把表单内容存入数据库。
这里还涉及到多人办理的情况,当经办人选择为多人时,除非是最后一个人,否则流程不允许流转至下一步,但是可以填写会签意见及修改表单,修改的表单将覆盖当前步骤表单,至最后一个转交至下一步,如此重复就可以实现流程流转了。
语言组织能不强,所有只能说成这个样子,整个流程还是有缺陷的,表单设计和流程设计都只能使用文字的形式,可能以后会考虑更换成图形化,还有就是不支持子流程。今天就写这么多了,也是最近才接触自定义工作流,也看过很多非常强大的工作流,所以以后还继续完成、改进和学习。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、ASP.NETMVC的本地化支持ASP.NETMVC的是基于ASP.NET运行,所以由ASP.NET提供的所有功能,都可以在MVC里使用,例如缓存,会话状态
工作流模块是OA办公自动化软件的精华所在,也是最重要的模块。在设计工作流程的时候,转入转出条件是必用的一个功能。那么,OA中如何使用转入转出条件呢?1、按照下图
使用OA办公软件的企业可能遇到过这种情况:设计了一个工作流程,在工作流程中的某一步设置了自动选人规则,但到工作流实际转交操作中无法自动带出需要转交的人。这是什么
在ASP.NET包含文件的方法有:1.2.3.StreamReader对象将包含文件写到HTTP内容流中//me:网上说asp.net中用include也可以的
在学习ASP.NETMVC之前,需要先了解“什么是MVC?”。也许这对某些ASP/ASP.NET开发人员来说非常陌生,MVC不是一种程序语言,严格说起来也不