




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(Workflow工作流管理系统(WfMS,WorkflowManagementSystem)的主要功能是通过计算机技实现更好的业务过程控制,提高顾务质降低系统开发和成jBPMjavaBusinessProcessManagementjava的业务流程管理系统。jBPMActive模型。jBPM4.4使用了hibernate(3.3.1版jBPMrequiresaJDK(standardjava)version5or Toexecutetheantscripts,you'llneedapacheantversion1.7.0or2,Eclipse地址(EclipseIDEforJavaEEDevelopers(163MB),Version:3.5GPD(GraphicalProcessDesigner)Eclipse安装方法说明(jBPM4.4UserGuide2.11.2InstalltheGPDpluginintoeclipseHelp-->InstallNewClickIndialogAddSitedialog,clickClickingOKintheAddSitedialogwillbringyoubacktothedialogSelectthejPDL4GPDUpdateSitethathasappearedClickNext...andthenFinishApprovetheRestarteclipsewhenthatis查看是否成功安装了插件:Window→PreferenceJbossjBPMEclipsejPDL4.4SchematothecatalogClickWindow-->PreferencesSelectXML-->XMLCatalogClick'Add...'The'AddXMLCatalogEntry'dialogClickthebuttonwiththemap-iconnexttolocationandselect'FileofthejBPMinstallationroot.Click'Open'andcloseallthe所使用的数据库对应的驱动的jar(第2步所添加的jar包中已包含mysql的org.hibernate.dialect.MySQL5InnoDBDialect。sql语法错误。2jbpm.tx.hibernate.cfg.xml中的hibernate(指classpath的相对路径。2Hibernate的自动建表,在jbpm.hibernate.cfg.xml概念ProcessdefinitionprocessinstanceProcessProcess有运行阶段,其中最典型的属性就是当前节点的指针。不需要了解流程实例和执行之间功能的区别。因此,API里只有一个执行类型来流假设汇款和存档可以同时执行,那么主流程实例就包含了2个用来状态的子节点ProcessEngineServiceInctingwithjBPMoccursthroughservices.Theserviceinastaticmemberfield.ProcessEngineProcessEngineprocessEngine=newProcessEngineProcessEngineprocessEngine=ProcessEngineProcessEngineprocessEngine=newjBPMServiceRepositoryServiceRepositoryServicerepositoryService=ExecutionServiceexecutionService=TaskServicetaskService=HistoryServicehistoryService=ManagementServicemanagementService=历史管理(执行完的数据管理,主要是查询APIProcessDefinitionQueryprocessDefinitionQuery=(流程实例ProcessInstanceQueryprocessInstanceQuery=processEngine.getExecutionService()//TaskQuerytaskQuery=//(流程实例历史HistoryTaskQueryhistoryTaskQuery=processDefinitionQcessDefinitionKey(请假是指定查询taskQuery.assignee("")是指定办理人为””的任务调用调用xxQuery.page(firstResultxxQuery.uniqueResult();StringdeploymentId=示例代码2:一次添加多个流程定义有关文件(要先zip包)StringdeploymentId=1.addResourceFromClasspath(resource)2.addResourceFromInputStream(resourceNameinputStream)添加一个文件(InputStream)示例代码1:删除流程定义,如果有关联的流程实例示例代码2:删除流程定义,并删除关联的流程实例API1ProcessDefinitionQuerypdQuery=2longcount=List<ProcessDefinitionlistpdQuery.page(0100).list()分页:取//3,显示结果for(ProcessDefinitionpd:list){System.out.println("id="+pd.getId()//+",deploymentId="++",name="++",version="++",key="+pd.getKey());}//1,查询,按version升序排序,则最大版本排在最后面List<ProcessDefinitionallprocessEngine.getRepositoryService()////2,过滤出所有不同Key的版本(因为最大版本在最后面Map<String,ProcessDefinition>map=newHashMap<String,ProcessDefinition>()map的key是流程定义的key,map的vlaue是流程定义对象for(ProcessDefinitionpd:all){map.put(pd.getKey(),}Collection<ProcessDefinition>result=3for(ProcessDefinitionpd:result){System.out.println("deploymentId="+pd.getDeploymentId()//tid=pd.getId(流程定义的id,格式:{key}-+",\tname="++",\tkey="++",\tversion="+}jbpm4_lobNAME_StringdeploymentId="90001";StringresourceName="test.png";InputStreamin=StringprocessDefinitionId"test-1"流程定义的idStringactivityName="start1";//活动的名称ActivityCoordinatesc=System.out.println("x="++",y="++",width="++",height="+示例代码1:使用指定key的版本的流程定义启ProcessInstancepi=示例代码2:使用指定key的版本的流程定义启Map<StringObjectvariablesnewHashMap<StringObject>();variables.put("申请人","");variables.put("报销金额ProcessInstancepi= Map<StringObjectvariablesnewHashMap<StringObject>();variables.put("结果","同意"); e="toend1"; e="toMap<StringObjectvariablesnewHashMap<StringObject>();variables.put("结果","同意"); e,方式 方式2:List<Tasklistfor(Tasktask:taskList){System.out.println("id=task.getId()/任务的id",name=task.getName(",assignee=task.getAssignee(",createTime=task.getCreateTime(任务的创建(生成)}方式1方式2List<TasklistStringtaskId="420001"; StringtaskId=1,设置为false代表:办理完任务后不向后移动(默认为true)TaskImpltaskImpl=(TaskImpl)processEngine//2,办理完任务1TaskService.takeTask(taskIduserId),拾取组任务到个人任务列表中,如果assignee,则会抛异常。2processEngine.getTaskService().assignTask(taskIduserId),转交任务(null表示组任务没有人办理了)1executionIdExecutionService.setVariable(executionId,name,ObjectobjexecutionService.getVariable(executionId请假人2taskIdTaskService.setVariables(taskIdvariables)ObjectobjexecutionService.getVariable(executionId请假人流程变量所支持的值的类型(jBPMUserGuide,7.2.Variabletypes)7.2.VariablejBPMsupportsfollowingJavatypesasprocessbyte[](bytearray)char[](charhibernateentitywithalongidhibernateentitywithastringidForpersistenceofthesevariable,thetypeofthevariableischeckedisstored.StringprocessInstanceId="test.10001";是.jpdl.xmlnamekey10Transitionnull代表流程的开始边界,一个流程有且只能有一个Start活动。开始活动只能指定一个Transition的活动,流程就结束了。1actor=#{String型的变量2,AssignmentHandler ,需要在<task> 元素中写<assignment-handler1expression,如:expr="#{'tostate2'}"2HandlerDecisionHandler接口3expressionHandlerexpressionHandler1,在<custom>class2ExternalActivityBehaviour2,signal(ActivityExecution,StringMap),在当前节点等待时,外部发信号时的行为3execute()方法中,可以调用以下方法对流程进行控制2,ActivityExecution.takeDefaultTransition()Transition离开,当前节signal时会有类转换异常。1,在根元素中,或在节点元素中,使用<onevent="">元素指定,其中event属性代表EventListener接口3,类型在Start节点中只有end,在End节点中只有start在<transition>元素中直接写<event-listenerclass="">,就是配置(因为在这里只有一个,所以不用写on与类型)Spring集成(jBPM4.4DevelopersGuide,Chapter17.SpringIntegration)1,删除配置:<importresource="jbpm.tx.hibernate.cfg.xml2,增加配置:<importresource="jbpm.tx.spring.cfg.xml"/>ProcessEngine(jBPM4)jbpmCfgclasspathjbpm.cfg.xml<beanid="springHelper"<propertyname="jbpmCfg"<beanid="processEngine"factory-bean="springHelper"factory-method="createProcessEngine"/>@TestpublicvoidtestProcessEngine()ProcessEngineprocessEngine=(ProcessEngine)ac.getBean("processEngine");}序中就一定要使用Spring注入ProcessEngine,千万不能使用Configuration.getProcessEngine()ProcessEngine,因为这时内部的代码有以下逻辑:如果整合了Spring但没有ApplicationContext,就默认读取applicationContext.xml创建ApplicationContext实例并从中获取名 ”ProcessEngine”的 就会有无限循环,不停的创建ApplicationContext了!1让Jbpm使用SessionFactory.getCurrentSession:修改为<hibernate-sessioncurrent="true"/>2SessionFactory.getCurrentSession(),在jbpm.hibernate.cfg.xml中配置:<property3,要使用同一个SessionFactory,且都要使用SessionFactory.getCurrentSession()获取=BaseDaoImplgetSession(){returnHibernateUtils.getSessionFactory().getCurrentSession();getProcessEngine(returnorg.jbpm.api.Configuration.getProcessEngine(4OpenSessionInViewFilter控制事务。启动Tomcat后,JSP时(使用的是自带的Tomcat,是6.0),报错:Causedby:linkingjavax/el/ExpressionFactoryclassatorg.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)atorg.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新疆公职人员时事政治考试试题(附含答案)
- 2025年度黑龙江省七台河市专业技术人员继续教育公需科目试卷及答案
- 2025年度山东省青岛市专业技术人员继续教育公需科目试卷及答案
- 酒精安全教育培训课件
- 2025餐饮摊点租赁合同模板
- 2025汽车销售合同参考案例
- 齐齐哈尔安全培训中心课件
- 2025年茶叶采购合同范本
- 2025物流运输合同承运
- 毕业生自我鉴定报告
- 2025年河北唐山市芦台经济开发区公开招聘区属国有企业工作人员18人笔试模拟试题及答案解析
- 2024年新高考Ⅰ卷英语真题(原卷+答案)
- 2025山东东营公安招录辅警392人考试参考试题及答案解析
- 2025四川宜宾市退役军人事务局招聘临聘人员2人考试参考题库及答案解析
- 高考语文 热点04 现代文阅读II之理论与文本互证类题(解析版)
- 预制混凝土检查井采购合同模板
- 外贸会计自学课件
- 2025年中小学《国庆节、中秋节》放假通知及安全提示
- 致敬 9.3:一场阅兵一部民族精神史诗
- (完整版)室外散水专项方案
- 智能物流行业智能化运输装备应用前景研究报告
评论
0/150
提交评论