webreport

博客园 首页 新随笔 联系 订阅 管理

2011年3月21日 #

摘要: 工作流软件系统,都会包含一个工作流引擎,流程设计器等。工作流引擎是工作流系统的微内核,是多种业务流程的抽象。工作流引擎设计的好坏,直接影响到流程的功能。 工作流引擎包含一些基本的节点,利用这些节点组合出各种各样的路由结构,利用这些路由结构来标识各式的业务流程,也就是说利用这些基本的节点能给业务流程建模,流程引擎能建立并解释这些节点,并利用用户输入,自动执行,定时执行,外部调用等等使得流程得以递进,达到流程的流转。所以要理解一套工作流软件系统产品,首先必须要理解流程引擎的这些基本节点,才能将大千世界中各式各样的业务流程表达出来,即给业务流程建模。 阅读全文
posted @ 2011-03-21 15:02 web报表 阅读(2915) 评论(4) 推荐(3) 编辑

2011年3月17日 #

摘要: 工作流软件中的定时器处理,一般分为两种: 应用服务启动就启动的定时器 这种类型和通常的web系统中的定时器处理一样。应用服务器启动后,定时器就启动了,然后按照定制的时间段轮询处理。当应用服务器关闭的时候,这种定时器才会关闭。这种定时器通常是对所有需要定时处理的记录来做的,在工作流软件中,就对应到所有的业务流程,所有的流程实例。 这种类型的定时器,在报表软件,报表产品中经常有用到,比如 每天晚上定时生成按日汇总表,每个月未生成月结汇总表。在工作流系统中,可以利用这种定时器按计划启动业务流程的流程实例。按计划扫描执行那些过期需要自动处理的任务等等。 由流程的流转来启动定时器 当流程示例流转到某个节点时,启动这个节点的定时器,按定时器设置的时间间隔轮询执行处理。当流程流转流程实例离开这个节点了,这个定时器就关闭了。这种类型的定时器,和流程的特定节点关联,每个流程实例都会经历定时器的 启动->执行->关闭 这样整个过程。 阅读全文
posted @ 2011-03-17 16:46 web报表 阅读(4134) 评论(5) 推荐(7) 编辑

2011年2月25日 #

摘要: 工作流系统的自由流实现了不按照流程预定义的轨迹流转,即需要在节点之间任意的跳转。上一篇自由流的实现主要说明了跳转规律,如果是单节点间的跳转,只要有当前的节点,以及跳转到的节点,就ok了。但是当当前节点和任意跳转到的节点之间有分支并发线路后,就不是简单的跳转了,当分支套分支,分支主干等之间的跳转就更复杂了。 阅读全文
posted @ 2011-02-25 18:06 web报表 阅读(2197) 评论(0) 推荐(2) 编辑

2011年2月22日 #

摘要: 如果我们把预定义的流程比喻成一条从起点到终点的公交线路,那么流程定义中的步骤,就表示车站。汽车到站后人员有上车下车等行为,这就可以认为是流程中的动作。流程定义完后,就按照预定义好的线路往下走,当然业务流程的规则是比公交线路更复杂。 业务流程的流转离不开人员的参与,工作流软件的定义就是:自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。 在工作流软件中,有步骤的所有者,动作的执行人,任务的参与者,工单的执行人等等很多关于人的概念。 下面一一解释工作流软件产品中的关于人的概念: 阅读全文
posted @ 2011-02-22 15:47 web报表 阅读(2929) 评论(3) 推荐(4) 编辑

2011年2月17日 #

摘要: 工作流系统在给业务流程建模的时候,按照流程引擎的设计,将业务流程定义出来。这个业务流程的每个流程实例,就按照流程建模时定义好的线路流转。 自由流是指流程实例在运行时,不按照预先定义好的线路流转,而是自由的跳转,由流程实例的操作人员来选择下一个到达的节点。通常这种都是不正常的流转,和回退流一样,破坏了流程的正常定义。但是自由流又很有“特色”,符合一定的业务需求。例如,当一份申请单提交审核后,需要部门经理,总经理,都审核过,才能流转到业务部门来处理,但总经理出差在外,申请单又急需处理,部门经理在线下已经征得总经理的同意后,就可以选择跳过总经理的审核,直接送到业务部门。 阅读全文
posted @ 2011-02-17 16:24 web报表 阅读(5687) 评论(6) 推荐(4) 编辑

2011年2月14日 #

摘要: 工作流引擎或工作流系统,应该致力于工作流引擎模型的设计,业务流程的抽象,以及业务流程的流转,这些是工作流系统的重要部分,把这些设计好了,一套工作流系统也就具备雏形了。 但是业务流程的流转往往是需要有特定的人,特定的角色等的参与的。在业务流程建模,流程实例的流转,都是离不开应用系统中的用户系统。可以说用户系统是工作流系统的不可缺少的部分,因此工作流系统也必需要涉及到用户系统的设计与实现。 工作流系统作为开发部件,集成到用户的应用系统中。有些模块可以直接被应用系统调用,同时流程引擎又封装了很多api函数,开发人员也可以通过类库,api函数等的来集成流程引擎的功能。 一般来说,应用系统均会包含有用户系统,组织机构等的维护模块,有独立的设计和实现。 阅读全文
posted @ 2011-02-14 10:13 web报表 阅读(3632) 评论(0) 推荐(4) 编辑

2011年2月10日 #

摘要: 工作流系统的回退流,是指流程实例运行到一定阶段后,可以主动的选择回退到曾经运行过的任意轨迹上。回退流的发起方是当前步骤的任务执行人,选择主动的回退,上面有一篇 回退流的实现,主要说明了回退流的实现过程。 工作流系统的撤回,是指流程实例运行了一定的轨迹后,上一步的任务执行人,选择撤回刚刚提交的任务,使得流程再次流转到此步骤。撤回的发起方是当前步骤的上一步任务的执行人,选择主动撤回。 阅读全文
posted @ 2011-02-10 10:11 web报表 阅读(6680) 评论(4) 推荐(4) 编辑

2011年1月24日 #

摘要: GoF四人组一共介绍了23种面向对象的设置模式,为每一种特定的实现取了一个名字,根据模式的应用目的不同,将他们分为3类,创建型、结构性和行为型。 面向对象设计三原则: 优先使用组合 针对接口编程 为变化而设计 设计模式不是万能的,熟悉了这些模式,灵活运用它,并且不局限于设计模式,构架出适合自己的设计才是最重要的。 在工作流系统的开发中,后台的类是纯面向对象的方式实现的,因此少不了设计模式的运用: 阅读全文
posted @ 2011-01-24 17:58 web报表 阅读(5471) 评论(2) 推荐(3) 编辑

2011年1月19日 #

摘要: 在流程建模的时候,定义好了返回的线路,这种严格来说,不是回退流。例如,审核不通过,则返回重新填写,这种只是条件路由。 工作流的回退流,是流程实例在流转的过程中,可以回退到运行轨迹的任意步骤,同时还可以辅助一些业务补偿方法,使得回退时候的环境和原来执行时候的环境一样。 所以回退流,和流程引擎支持的正常的路由方式是不一样的,甚至是反流程建模的方式,流程建模就是把业务流程的各业务处理过程按一定的流转方式建立起关联。而回退流,是没有规律的,当流转到一定的步骤后,可以回退到任意的步骤。 当流程的流转方式为顺序流的时候,处理回退很简单: 阅读全文
posted @ 2011-01-19 17:18 web报表 阅读(7721) 评论(3) 推荐(3) 编辑

摘要: 业务流程的流转过程中,经常会有需要并发处理的过程,即流程流转到下一步,同时产生多个当前需要处理的过程,这些过程不分先后处理顺序,只要都处理完成了,最后汇聚到一起,再接着主流程运行,就可以了。例如:一份报销单,填写完成后,同时启动财务部门审核和本部门的审核,这两部分的审核不分先后顺序,只要都完成后,再将结果返回给报销单填写人,继续下面的流转。这种的并行处理的过程,就需要流程引擎支持分支和聚合。 分支又分为 静态的分支 和动态的分支。 阅读全文
posted @ 2011-01-19 12:00 web报表 阅读(5031) 评论(2) 推荐(4) 编辑

2010年12月9日 #

摘要: 通常在利用流程设计器给业务流程建模之后,会生成一个流程描述的xml文件,业务流程的每个环节步骤,需要执行的操作,自动的,手动的等等信息,都被描述在这个流程建模的xml文件中。xml文件的内容,是一些规则的预先定义的抽象的节点信息,流程引擎负责这些节点的定义,创建,解释,定位等等,业务流程利用这些节点建模。建模完成的业务流程,挂接上业务表单后,就可以直接运行业务流程了。 业务流程的运行,从启动流程实例开始,启动一个流程实例即代表开始了一次业务流程处理。每例业务流程的处理过程,都包含从创建,到激活,到处理,到结束(当然中间也可以人为的直接终止,或挂起,再恢复),这样一个过程。流程实例创建后,就按照流程建模的xml文件,按照定义的节点路由顺序一步一步的流转,相应业务也在相应的步骤中处理。 阅读全文
posted @ 2010-12-09 17:22 web报表 阅读(5776) 评论(1) 推荐(2) 编辑

2010年11月9日 #

摘要: 有了工作流引擎,工作流设计器,工作流管理平台,自定义表单,然后业务流程确定之后,就可以快速的做好能运行的流程了。 首先业务要确定,包括业务细节部分。以一个 问题跟踪流程为例,实战演练一下,如何快速的搭建一个可以运行的业务流程。 业务需求: 用户在使用 我们公司的产品时,经常会遇到一些问题,有的是不会使用的问题,有的是误解,有的是bug,也有的是对产品的建议等等。 我们拟收集这些用户遇到的问题以及处理过程,所以设计如下流程: 流程如上面过程,具体的细节要求: 1、相关人员审核问题,通过则发送到技术人员解决问题,拒绝,则表示问题描述不够,打回原填写人继续填写。 2、原填写人收到打回的问题,可以继续完善,再次发送给审核,也可以直接作废问题,结束这次问题描述。 3、技术人员解决问题,有个锁定问题的过程,即谁先锁定了问题,就由谁解决。 4、解决的问题反馈给用户,用户查看处理结果,无异议则结束流程,也可以继续提出疑问,和技术人员继续沟通解决。 阅读全文
posted @ 2010-11-09 16:09 web报表 阅读(4402) 评论(1) 推荐(4) 编辑

2010年10月8日 #

摘要: 工作流系统一般都包含工作流引擎,工作流引擎是对业务流程的抽象,是实现流程自动化的微内核,利用工作流引擎的基本元素能搭建出各种各样的流程,但仅限于流程,不涉及到业务实现。 流程的每个节点上可以挂接需要处理的业务模块,例如一个简单的报销流程,如下图:在填写报销单的流程节点上,就可以挂接上 填写报销单 这样一个业务模块;到审批的节点上,挂接 审批报销单模块。 工作流引擎是不负责这些具体业务模块的实现的,否则就不是对业务流程的抽象了。 这些具体业务模块的实现,可以是开发人员做好的一些业务模块,也可以是用一些表单工具做的自定义业务表单。 无论是定制的业务模块,还是利用表单工具做的自定义表单,都需要在这些模块中集成流程。 阅读全文
posted @ 2010-10-08 16:40 web报表 阅读(9774) 评论(7) 推荐(8) 编辑

2010年9月16日 #

摘要: 最近为用户做工作流实施时,都无一例外的提出工作流系统的扩展性问题。 事件一:eworkflow工作流系统预置了一些系统的条件,前置后置函数等。如果这些不能满足业务需要,用户需要定制自己的业务规则,业务过程,该如何做? 解决方案:eworkflow系统预置了很多系统的条件类,前置后置函数类。 如条件类的:判断用户是否有某个角色 cn.com.fcsoft.workflow.util.UserHasRoleCondition 判断是否是竞争型任务的签收人 cn.com.fcsoft.workflow.util.CompetitionTaskCondition .... 事件类:将指定步骤的执行人保存到mostRecentCaller变量中 cn.com.fcsoft.workflow.util.MostRecentCaller ... 打开我们的任意一个条件类 ,可以看到,条件类必须实现Condition接口,实现passe 阅读全文
posted @ 2010-09-16 11:36 web报表 阅读(4258) 评论(4) 推荐(3) 编辑

2010年8月22日 #

摘要: 公司的eworkflow自定义工作流系统,最初是开发了java版的。待java版的功能稳定后,就开始开发.net版的。 java版的eworkflow工作流系统,我们没有依赖于任何框架,如struts,spring等,也没有用hibernate,ibatis等orm映射工具。在支持web方面也有一套自己的mvc框架,都是纯java的代码。因为工作流系统,比较注重的是工作流引擎核心的实现,其他的表现形式,人机交互等都相对不是工作流系统的重要部分,并且业务模块的自定义表单采用的是eform自定义表单,所以在mvc的框架中,我们只需要注重M部分的流程引擎的开发。 阅读全文
posted @ 2010-08-22 09:18 web报表 阅读(13147) 评论(5) 推荐(3) 编辑

2010年8月13日 #

摘要: 主流数据库有,sqlserver,oralce,db2,mysql。 产品级的.net工作流系统必须要能支持这多种数据库,同时还需要能方便的扩展支持新的数据库。 在做数据库操作方面,java和.net的各不一样,java是利用jdbc的一套类库来做数据库的读写。但.net的就比较多了,微软提供的就有oledb,sqlclent,oracleClient,odbc等,还有一些第三方提供的访问类。 所以在做多数据库支持方面,.net工作流系统,就需要考虑这些方式都支持,并且能很容易的切换。 阅读全文
posted @ 2010-08-13 14:51 web报表 阅读(6510) 评论(4) 推荐(6) 编辑

2010年8月11日 #

摘要: 上一篇主要说明 dotnet工作流引擎的基本原理和引擎的基本元素。 这篇主要以图解的方式说明工作流引擎的运转模型,路由方式。 一个业务流程包含一序列的处理过程,以及他们的相互顺序关系,还包括过程的启动条件,过程循环,同时还会辅助一些相关的事件消息处理等。 工作流引擎负责创建,定义,解释和运行业务流程,首先需要将业务流程的处理过程转化为流程的基本元素、基本节点,然后将业务处理过程之间的顺序关系用流程引擎支持的路由方式表达出来,再设置好一些相关的事件消息处理等,业务流程就创建完成。然后再运行流程,启动流程实例,运行业务流程,流程引擎负责解释流程的各节点以及按路由方式运转业务流程。因此流程的运转模型,支持的路由方式也是工作流引擎的核心内容。 阅读全文
posted @ 2010-08-11 14:18 web报表 阅读(14311) 评论(7) 推荐(8) 编辑

2010年8月9日 #

摘要: 工作流管理系统为实现流程的自动化,必须包含一个工作流引擎,工作流引擎负责流程的定义,解释和运转。流程引擎是对业务流程的一个抽象,因此工作流引擎的设计模型是决定流程功能的重中之重,将直接影像流程的各个环节。 一套工作流管理系统还包含很多个必须要实现的部分,如:事件处理,任务处理,组织机构的适配,自定义表单等等。以及很多中国式的“动态会签,回退,自由流”等等变态需求。但抛开这些,只关注每个流程的最基本的部分,即解决一个过程运转的问题,从一个环节到另一个环节,使得流程能够运转起来。这应该就是流程引擎要实现要关注的基本问题,即流程引擎的抽象。 阅读全文
posted @ 2010-08-09 18:12 web报表 阅读(12309) 评论(9) 推荐(6) 编辑

2010年6月7日 #

摘要: 在工作流系统中,业务流程按流程引擎定义的模型规则,定义成流程的一个一个节点。当流程实例运行时,流转到流程的各个节点,通过执行动作之类的操作提交关联的业务表单,导向流程的下一个节点,同时修改流程实例的状态,达到流程的流转。流程实例每流转一次,都会将当前节点的信息写入一个历史轨迹表,同时将下一节点的信息写入当前步骤表。当流程实例流转多次后,根据历史轨迹表的记录,就能追踪到此流程实例的实际运行轨迹。 阅读全文
posted @ 2010-06-07 17:19 web报表 阅读(3002) 评论(0) 推荐(2) 编辑

2010年5月30日 #

摘要: 在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程。 例如,当一个单据填写完成后,提交给审核部门,需要根据每张单据的情况,决定提交给几个部门审核,并且每个部门的审核是一系列流程化的操作,操作完成后,各个审核部门再汇集起来。这样就必须在流程实例运行时,根据预先定义好的单线流程,动态的生成多份分支,最后再汇集在一起,流转到主流程。 阅读全文
posted @ 2010-05-30 18:59 web报表 阅读(6997) 评论(3) 推荐(4) 编辑

2010年5月28日 #

摘要: 工作流系统的每个流程实例,从创建到结束,都有一个较长的过程。流程实例的执行过程可能立即执行,也可能较长时间的等候处理。当处理过程中出现异常或者故障时候,流程需要回滚,并保持流程和业务的同步回滚,不至于业务和流程不同步,或流程本身的轨迹发生紊乱。因此需要在工作流系统中引入事务处理机制。 阅读全文
posted @ 2010-05-28 17:24 web报表 阅读(2833) 评论(0) 推荐(6) 编辑

2010年4月26日 #

摘要: 在工作流系统中,单步会签,多部门会签,会签百分比,加签,减签等等这些是必备的功能。尤其在办公管理的审批流程中,经常会用到这些。 例如单步会签,在流程的某个环节需要多个人同时办理,不分先后次序的签署意见等。多部门会签,流程运行到某个环节需要多个部门的人同时办理,各部门不分先后次序的发表审批意见等。 会签百分比,流程运行到某个环节需要多个人协助同时处理,但是只需要80%的人处理过,就可以通过了。这个百分比就 是会签百分比,在流程定义的时候可以设置其值。 阅读全文
posted @ 2010-04-26 09:40 web报表 阅读(6717) 评论(7) 推荐(8) 编辑

2010年4月23日 #

摘要: 在很多办公管理系统的流程中,关于任务的分配和管理很复杂,下面列几种常见的任务管理方式: 阅读全文
posted @ 2010-04-23 17:33 web报表 阅读(3845) 评论(7) 推荐(1) 编辑

2010年3月20日 #

摘要: sqlserver2008的连接,用sqlserver2005的jar包sqljdbc.jar或者sqljdbc4.jar均可以,连接字符串与sqlserver2005的写法一样。 设置过程如下: 阅读全文
posted @ 2010-03-20 18:28 web报表 阅读(3567) 评论(0) 推荐(0) 编辑

2010年3月16日 #

摘要: 在设计流程的时候,如果涉及到子流程,就会有主子流程间传递参数的过程。 例如,将主流程的执行人,传递给子流程,子流程根据主流程的执行人不同,会有不同的处理方式; 又例如,采购流程中,卖方备货处理时,发现缺货时,需要启动缺货处理子流程。那么在缺货处理子流程发起时,需要将缺货产品的id号发送给子流程,子流程的业务模块,根据传递来的产品id号,处理缺货的过程。 。。。。 阅读全文
posted @ 2010-03-16 17:13 web报表 阅读(3432) 评论(0) 推荐(1) 编辑

2010年2月23日 #

摘要: webprint打印参数设置小插件,主要实现打印纸张,边距,打印机等的设置。 主要功能: 设置页眉页脚属性 设置打印页面左右上下边距 设置打印方向,打印份数,打印指定页 打印模版和指定纸型绑定 设置自定义纸张信息 打印预览,所见及所得的打印 不出打印对话框直接打印 指定打印机打印指定模版 打印指定url 打印完成后返回的状态属性 打印完成后的回调事件函数 支持IE8页眉页脚设置 定制打印预览页的工具条按钮属性 获得客户端打印机名称列表 获得客户端默认打印机纸张信息列表 客户端的轻量级下载(约80k大小) 阅读全文
posted @ 2010-02-23 17:29 web报表 阅读(2975) 评论(0) 推荐(1) 编辑

2010年1月22日 #

摘要: 工作流系统和业务系统的结合,不仅仅是表之间的关联(即流程实例id和业务数据的关联),还有很多变量的关联。 变量的关联表现在很多方面,通常都是在流程定义时,需要引入这些变量,辅助流程的定义。 如,流程在运行时,需要获取具体业务数据某个关键字段的值。 阅读全文
posted @ 2010-01-22 12:46 web报表 阅读(3731) 评论(2) 推荐(3) 编辑

2010年1月13日 #

摘要: 在工作流管理系统中,可视化流程设计器是必须要实现的。 流程引擎可以是默默的运行,但流程设计器就必须要展现出来。所以界面的美观,操作简便易用,是必须要考虑的问题。 流程设计器,主要完成流程定义文件的建立和编辑,可视化的完成流程中各节点信息的增删改,并图形化的方式展现出一个业务流程。 阅读全文
posted @ 2010-01-13 09:26 web报表 阅读(6778) 评论(0) 推荐(3) 编辑

2010年1月2日 #

摘要: sqlserver2005数据库链接 上微软网站下载sqlserver2005 jdbc Driver 包 1、将Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\chs\sqljdbc.jar包 copy到发布系统 的 web-inf\lib目录中 2、将Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\chs\auth\x86\sqljdbc_auth.dll 文件copy到 windows\system32目录 阅读全文
posted @ 2010-01-02 15:08 web报表 阅读(1667) 评论(0) 推荐(0) 编辑

2009年12月27日 #

摘要: 一般工作流管理系统分为,流程引擎,电子表单系统(自定义表单),流程设计器,流程管理监控平台等主要模块。流程引擎和电子表单系统应该是弱耦合的,各自都能独立的完成功能。 同时流程引擎和电子表单都设计好接口事件等,便于相互集成或和其它系统的集成。 阅读全文
posted @ 2009-12-27 14:56 web报表 阅读(4933) 评论(2) 推荐(3) 编辑

2009年12月26日 #

摘要: 工作流系统和电子表单相结合,达到同一张表单在流程的各个节点中的权限不同。 例如一张表单包含,录入部分信息,审核部分信息; 当表单在录入的时候,需要将审核部分信息全部屏蔽; 当上级审核时,录入部分的信息需要只读,只能填写审核部分; 当审核完成后,所有的信息都变成只读,不能再修改了。 阅读全文
posted @ 2009-12-26 20:49 web报表 阅读(4476) 评论(1) 推荐(1) 编辑

2009年12月2日 #

摘要: 通常工作流系统在设计之初,都会明确的区分流程数据和业务数据。工作流引擎只关心流程数据,为实现工作流的流转,会为工作流引擎设计一套工作流的表结构,来辅助流程引擎的实现。 业务数据是千变万化的,为实现各自的业务,会设计一系列业务表。业务表,工作流系统是不关心的。 但是工作流数据和业务数据又是交互的关联的。 阅读全文
posted @ 2009-12-02 14:39 web报表 阅读(5229) 评论(1) 推荐(2) 编辑

2009年11月24日 #

摘要: 为了方便设置数据库连接和事务的一致,将所有数据库连接信息统一设置在fcconfig.xml文件中; 阅读全文
posted @ 2009-11-24 15:03 web报表 阅读(4408) 评论(1) 推荐(2) 编辑

摘要: tomcat的各版本 在设置jndi数据源的时候会有些不同,没配置好,经常会出现 Cannot create JDBC driver of class '' for connect URL 'null' 或找不到驱动等等错误 阅读全文
posted @ 2009-11-24 10:15 web报表 阅读(3760) 评论(0) 推荐(1) 编辑

2009年11月17日 #

摘要: web工作流管理系统,eworkflow自定义流程最新版本下载 阅读全文
posted @ 2009-11-17 09:45 web报表 阅读(5857) 评论(7) 推荐(1) 编辑

2009年10月16日 #

摘要: 前言: osworkflow的任务管理很简单,没有专门的任务表,也没有待办,已办,发出,处理任务等等。 只有很简单的查询用户可处理的动作和已经处理过的历史步骤。(注意这里只是可处理的动作和已经处理过的历史步骤,都不是任务) 这显然距任务管理差很多很多。 阅读全文
posted @ 2009-10-16 11:11 web报表 阅读(14261) 评论(1) 推荐(2) 编辑

2009年10月13日 #

摘要: eworkflow自定义工作流系统,流程定义文件,采用的是xml格式,在设计之初,使用了dtd文件来约束xml文档的内容。 开发的时候,采用的是resin3来发布,对dtd格式的校验不是很严格。 阅读全文
posted @ 2009-10-13 11:17 web报表 阅读(6364) 评论(0) 推荐(1) 编辑

2009年9月21日 #

摘要: 在设计工作流系统的时候,常常会碰到这样的情况: 同一张表单需要在流程的多个环节中处理,且各环节的处理情况不一致,有的节点可写,有的节点之可读。 例如,同一张报销单:员工填写报销单时,只能填写报销单主体信息和明细部分,其它信息不可见; 经理审批时,只能填写审核结果和审核意见,报销单主体和明细部分只能查看; 财务审批时,报销单主体明细和经理审核信息都只能查看,只能设是否置领取费用的相关信息 阅读全文
posted @ 2009-09-21 18:08 web报表 阅读(12554) 评论(8) 推荐(1) 编辑

2009年9月16日 #

摘要: 前言: osworkflow是个开源的工作流引擎,采用的是有限状态机的模型。内置有osuser这个用户系统,来处理用户权限相关的部分。但是功能很弱,只有用户表,用户组表,即简单的将用户划分给用户组。在定义流程的时候,可以将权限处理给一个具体的用户,也可以给一个用户组。 缺点: 功能太过简单,不利于扩展,也不利于和用户系统集成,还没有开源的源代码。 阅读全文
posted @ 2009-09-16 11:28 web报表 阅读(16922) 评论(6) 推荐(2) 编辑

2009年9月10日 #

摘要: 任务描述: 某图书网站按条件查询得出一页20条记录,每条记录有书目的简要信息和url链接到书的详细信息。 需要抓取网站图书的详细信息,保存到本地数据库中。 任务分析: 用httpclient模拟执行url将网站的信息取回,再用jericho包,分析页面元素,将需要的信息取出,保存到数据库中。 因为数据量比较大,还是采用多线程的方式来执行抓取详细页面,分析获得数据。 阅读全文
posted @ 2009-09-10 10:41 web报表 阅读(4180) 评论(8) 推荐(1) 编辑