Asp.Net Mvc2 OA 工作流设计思路[图]
回到老家,加入新公司,首个项目便是OA系统。尽管之前没有接触过OA,但由于涉及到工作流的设计与实施,我开始了相关的之旅。为此,我撰写了这篇博客,分享我的理解和心得。
我们身处的环境是MVC2架构搭配SQL2008数据库。工作流被划分为几个关键步骤:表单设计、与流程设计、合并。我们来谈谈表单。
由于没有采用图形化设计表单的方式,我们的策略是强制定义表单格式,并在后台进行。表单结构严谨,遵循特定的HTML结构,如table>tbody>tr>td。虽然这种方式不够灵活,但功能已经得到了实现。这个表单被成多个节点,包括申请人、申请日期、部门、假期类别等。
节点是通过特定id获取的,我们使用了HtmlAgilityPack这一工具进行。例如,通过代码:SelectNodes("//table/tbody/tr/td[@id='title']"),我们就可以定位到表单的所有节点。标题对应的选项则通过class来区分。特殊控件如时间控件,通过定义特定的class,再通过jquery动态绑定加载。
接下来是流程设计。流程与表单紧密关联。我们定义流程的步骤,并关联到具体的表单。这里的经办权限直接关联到用户,标识了哪些用户拥有某流程的办理权限。流程的步骤清晰明了,包括节点序号、节点名称、是否允许附件和会签等。通过这些设定,我们可以控制流程的流转方向。例如,一个请假流程包括了所有的步骤,而节点序号表示当前流程是第几步骤,节点名称标识当前步骤的名称。
我们进入工作流的流转环节。在这一步,我们模拟流程的运转,并新建流程。当定义好工作流的名称后,点击确认新建,直接进入流程页面,同时数据库中也存入了第一步流程的相关信息。随后,填写表单内容,选择下一步的经办人,流程就可以流转到下一步。在这个过程中,我们采用了将整个表单的HTML代码存入数据库的方式,当流程流转时,再存入填写好的表单内容。虽然这种方式较为笨拙,但通过jquery可以直接设置value值,从而成功将表单内容存入数据库。当涉及多人办理时,流程的设计还需要考虑到会签意见和表单的修改等问题。
尽管我的语言组织能力有限,只能以这种方式描述整个流程的实现过程。整个流程仍存在一定的缺陷,表单设计和流程设计都只能以文字形式进行,未来可能会考虑转向图形化设计。目前还不支持子流程的设计和实现。但我会继续完善、改进和学习,不断OA系统的可能性。未来的路上还有许多挑战等着我,比如如何优化表单设计、如何实现更灵活的流程设计、如何支持子流程等等。但正是这些挑战让我对工作流充满了热情与期待。
以上内容仅为个人理解与分享,希望对大家有所帮助和启发。未来我将继续深入和学习工作流的相关知识与技术。让我们一起期待更好的未来!
编程语言
- Asp.Net Mvc2 OA 工作流设计思路[图]
- 提高ASP页面执行效率的方法分析
- JavaScript中的substr()方法使用详解
- JSP输出HTML时产生的大量空格和换行的去除方法
- webpack 3.X学习之多页面打包的方法
- vscode如何安装汉化和Python智能感知
- 深入探究angular2 UI组件之primeNG用法
- 通过jquery的ajax请求本地的json文件方法
- Laravel中的where高级使用方法实例讲解
- 深入理解jQuery()方法的构建原理
- Treegrid的动态加载实例代码
- 详解yii2使用多个数据库的案例
- vue下history模式刷新后404错误解决方法
- ASP批量生成静态页面的写法(批量生成技巧iframe
- JSP 中文字符处理代码
- PHP自带方法验证邮箱、URL、IP是否合法的函数