??xml version="1.0" encoding="utf-8" standalone="yes"?>
程设计界面
左边下拉框放至了我所有允许定义流E的业务对象cd,可通过底部?新增"\"修改"\"删除"{操作进行维?点击已定义的程可以查看对应的流E设|?br />
新增程界面
新增时可程讄相关启用条g,优先U别及审Ҏ骤等
审批人的待办工作?可以q里l一处理各类待办业务:
待办业务的查看界?
审批{界面(以通过Z)
]]>
其中:
程cd、流E、活动、流转条件、外部应用ؓ设计时对象,用于描述程规则
程实例、活动实例、活动记录ؓq行时对象,用于记录实际发生的流E运行状?br />
需要解决的问题是,如何我们的应用与此工作引擎进行结合?我的解决Ҏ是:
1、流E类型约定业务对象类型(x程可以与哪U业务对象关联)
2、业务对象中的属性或其组合可以定义ؓ{条gQ即实现业务对象信息影响工作流转)
3、活动执行者可以选择业务pȝ的组l机构、角艌Ӏh员定义(我是通过接口方式q行U定QIOC注入Q?br />
4、活动可调用已定义的应用Q可多个Q?br />
5、业务对象可以通过报批动作启动工作实例,之后由工作流按照设计信息与业务信息进行自动流转或全程提供表单与审Ҏ钮支持?br />
׃此工作流pȝ是出于简化的目的q行设计的,设计时与q行时信息我都用数据库信息来表C,设计器也未提供拖拉界面来q行设计Q而是采用序定义的方式来操作。在实际q作q程中,我觉得它可以满一般规模不大(文职人员100人左叻I的企业的OA应用?br />
本h原创文章Q欢q{载,转蝲h明出处!
]]>
也许你可以尝试自己做一个工作流lgQ听h好象有点儉KQ但其实q不是一件很恐怖的工作。让我们先从通常会用到工作引擎的情景分析下我们需要什么?
情景Q某公司需要对员工请假q行理Q员工请假需q行pȝ填写甌Q如果请假天?lt;=1天,可以部门ȝ批准。如果请假天?gt;1天,需由部门主?>副ȝ理进行再行批复。批准后的请假自动记入考勤pȝ?br />
从这个简单的业务需求,我们q行分析它的需求:
1、工作流E的选择是由业务信息Q请假单Q相兌的,工作独立存在是无意义的?br />
2、业务信息中的内容会军_程的选择与流向。如Q请假天敎ͼ或是ȝ的批复意?br />
3、工作流E的{与组l结构、角艌Ӏ员工相兟?br />
4、工作流E通常会调用相关业务应用(记入考勤Q来完成多应用系l之间的协作?br />
l合以上需求,我们定义出工作流pȝ所需功能与数据:
1、流E定义工P负责生成工作引擎能明白的流E控制信息)Q对应于XPDL
2、工作流控制变量定义Q即用于控制程{的控刉Q如请假天数与各U审Ҏ见,可由pȝҎ程实体信息自动注入臛_作流引擎Q?br />
3、工作流相关数据Q即与业务过E相关的数据Q如Q业务表单、组l结构、角艌Ӏ员工等
4、工作流引擎Q负责解释流E定义,创徏q程实例q控制其执行Qƈ可能提供相关的监控界面以保障工作的正确q{?br />
5、外部应用,可由工作引擎进行调用完成多个业务系l的程衔接。这通常是工作流引擎的最大亮炏V?br />
未完待箋>>
本h原创文章Q欢q{载,转蝲h明出处!
Shark与JaWE是EnhydraZLGPL授权协议下提供的一l开源工作流软g。打个比方就cM于JasperReport与iReport的两者的关系。Shark提供完整的工作流引擎QJaWE是一个工作流E设计器与调试环境?/p>
以我使用的经验来_Shark是一个严格遵守WFMC标准的,使用XPDL语言q行描述的引擎。Shark可以应用在多UJ2EE容器下支持会话Bean与Corba方式调用及WEB服务调用?/p>
初学者很Ҏ被这些开源项目中大量的概念与术语吓住Q基本上都是dW一步上的,无法入手。以我的l验来说Q先了解WFMC标准与XPDL语言标签的含义,你有个基本的概念头认识后Q然后用JaWE模仿CZ做几个你常用的小程Q调试跑hQ你立即׃被它吸引上而不断去试它博大精q内容?/p>
当然Q很多h又会跛_来说Shark不好Q它是基于自q框架开发的Qƈ未用struts/spring+hibernateq些更大众化的框架来做,它有自己的DODS{技术,学习曲线与成本很高。好象OFBiz不被大家接收也是q个原因Q它有自qOR技术与FrameworkQ关于这Ҏ的看法是Q如果你是应付一些简单项目业务需求,是无需套用象OFBiz或Sharkq些面向企业业务应用的框Ӟq叫用高炮打蚊子。简单的信息CRUD自己随便找个框架或是原来的代码拷贝修改一下就可以了。不要天天比较说q个业务框架不好Q那个技术不够开放。要知道q些目都是q些开源组l多q持l坚持不断积累的沉淀Q那时哪有这么多成熟的技术框架呀Q而且我觉得客h是作为技术负责h来说Q只有最适合的,没有说一定要什么技术框Ӟ啥叫LQ啥叫未来方向?扯E多过实际Q再q两三年现在所谓的L框架q真的是L吗?
shark在不同的人手中应该是可以有不同的用法Q我是把它独立做Z个组件来应用的,使用需要用到工作流E驱动的应用我会使用到它。通过JaWEҎ业务需求设计XPDL文g存放臌源库中,把流E结束点需触发的应用做成外部应用在工作程中加以定义(支持Beanshell/WebService多种方式Q,cM于JspClient的示例方式在你自q面中提供待办事宜、工作申报、审批等操作。当然最主要的集成工作就是组l结构与权限的融合。这样你的业务系l就可以同shark全面融合了。最的情况下就是多个业务系l通过shark的同一实例串接hQ实C同业务系l的工作衔接?/p>
说得有些_糙Q可能文W比较差Q也不知别h是否能明白。以后有Z再就某个主题来说吧?/p>
本h原创文章Q欢q{载,转蝲h明出处!