精华内容
下载资源
问答
  • jbpm

    2012-05-05 16:41:21
    jbpm
  • JBPM

    热门讨论 2017-02-22 18:50:41
    JBPM全称Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。 工作流引擎作用:给我们提供流程逻辑的定义方法...

    是什么?

    ·定义:

    JBPM全称Java Business ProcessManagement(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。

    ·Configuration和ProcessEngine

    Configuration是jbpm的配置文件管理对象及资源加载对象,负责加载jbpm的各种配置如数据库连接配置、事务配置、身份认证、jpdl等相关配置。

    ProcessEngine是一个服务工厂,有点类似hibernate的sessionFactory负责创建jbpm的每个服务。(ProcessEngine通过Configuration类构建,Configuration以单例模式获取ProcessEngine对象;ProcessEngine是线程安全的,所有的线程和请求都可以使用同一个ProcessEngine对象)

     

    ·ProcessEngine核心服务:

    RepositoryService

    流程资源服务接口。提供对流程定义的部署、查询、删除和流程图查看等操作。

    ExecutionService

    流程执行服务接口。提供启动流程实例、推进、删除等操作。

    TaskService

    人工任务服务接口。提供对任务的创建、提交、保存、删除等操作。

    HistoryService

    流程历史服务接口。提供对任务的管理操作。提供对流程历史库中历史流程实例、历史活动实例等记录的查询。

    ManagementService

    流程管理接口。通常用来管理Jop(异步服务)

    IdentityService

    身份认证服务接口。提供对流程用户、用户组管理。

     

    ·JBPM流程变量

    流程实例变量ProcessInstance>task(不同流程实例、不同任务的流程变量是不能互相访问)

    任务变量Task

    变量作用域,两种变量之间的关系

    *任务变量和流程实例变量

    *流程实例变量直接

    *任务变量和任务变量

     

    ·流程定义语言JPDL

    JPDL(JBossJBPM ProcessDefinition Language)是构建于JBPM矿建上的流行语言之一。在JPDL中提供服务tasks、待处理状态waitstates、计时器timers、自动处理automated actions 。。。等术语,并通过图形化的流程定义,很直观滴描述业务流程。

     

    ·JPDL常用活动(Activity)节点

    Start开始活动

    State状态活动

    Decision判断活动

    Fork-join分支活动

    End结束活动

    为什么?

    工作流引擎作用:给我们提供流程逻辑的定义方法,给我们提供根据流程逻辑来调度业务的功能。能是我们避免在代码中硬编码流程逻辑,因为硬编码的逻辑难于理解和服用,并且非常容易受到变化的影响,维护起来极度困难。

     

    怎么用?

    说明:使用eclipse+mysql+JPBM4.4进行小实例展示

    1、在eclipse中安装相关插件

    Help——>Install New Software


     

    2、添加相关提示约束

    Window——>preferences——>XML Catalog


     

    3、引入相关jar包(可以自己建立一个userliberty


    然后引入\jbpm-4.4\lib需要用到的jar以及jbpm.jar核心包。


    4、添加相关配置文件:jbpm.hibernate.cfg.xml、jbpm.cfg.xml

    ·jbpm.hibernate.cfg.xml(hibernate的配置信息,设置数据库连接属性等)

    <?xml version="1.0" encoding="utf-8"?>
    
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
      <session-factory>
      
         <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
         <property name="hibernate.connection.url">jdbc:mysql:///jbpm3</property>
         <property name="hibernate.connection.username">**</property>
         <property name="hibernate.connection.password">**</property>
         <property name="hibernate.hbm2ddl.auto">updates</property>//初次运行时需要写create
         <property name="hibernate.format_sql">true</property>
         
         <mapping resource="jbpm.repository.hbm.xml" />
         <mapping resource="jbpm.execution.hbm.xml" />
         <mapping resource="jbpm.history.hbm.xml" />
         <mapping resource="jbpm.task.hbm.xml" />
         <mapping resource="jbpm.identity.hbm.xml" />
         
      </session-factory>
    </hibernate-configuration>


    ·jbpm.cfg.xml(就用它example里面自带的模板就可以了)

    <?xml version="1.0" encoding="UTF-8"?>
    
    <jbpm-configuration>
    
    	<!-- 引入外部文件 -->
      <import resource="jbpm.default.cfg.xml" />
      <import resource="jbpm.businesscalendar.cfg.xml" />
      <import resource="jbpm.tx.hibernate.cfg.xml" />
      <import resource="jbpm.jpdl.cfg.xml" />
      <import resource="jbpm.bpmn.cfg.xml" />
      <import resource="jbpm.identity.cfg.xml" />
    
      <!-- Job executor is excluded for running the example test cases. -->
      <!-- To enable timers and messages in production use, this should be included. -->
      <!--
      <import resource="jbpm.jobexecutor.cfg.xml" />
      -->
    
    </jbpm-configuration>
    

    5、创建实例

    新建一个java project项目。NewJboss jBPM


     

    然后就会出现一个*.jpdl.xml文件,如下所示进行流程的绘制。



    流程绘制完成进行保存,会自动生成xml代码,同时还会保存成一份png图片:


     

    6、编写测试程序:

     6.1新建一个公共类JbpmTestCase,封装了服务和startup()、print()方法

    public class JbpmTestCase extends TestCase{
    	protected RepositoryService repositoryService;//流程资源服务
    	
    	protected ExecutionService executionService;//流程执行服务
    	
    	protected TaskService taskService;//人工任务服务
    	
    	protected HistoryService historyService;//流程历史服务
    	
    	protected ManagementService managementService;//流程管理服务
    	
    	protected IdentityService identityService;//身份认证服务
    	
    	protected void startup(){
    		ProcessEngine processEngine=Configuration.getProcessEngine();
    		repositoryService=processEngine.getRepositoryService();
    		executionService=processEngine.getExecutionService();
    		taskService=processEngine.getTaskService();
    		historyService=processEngine.getHistoryService();
    		managementService=processEngine.getManagementService();
    		identityService=processEngine.getIdentityService();
    		
    		
    	}
    	
    	public void print(String name,String value){
    		System.out.println(name+"====="+value);
    	}
    	
    	public void print(String name,int value){
    		System.out.println(name+"====="+value);
    	}
    }

    6.2 新建接口JbpmUtil,声明流程创建所需方法。

    public interface JbpmUntil {
    	
    	public void deploy();//部署流程
    	
    	public void createInstance();//创建流程
    	
    	public void getCurrectActivity();//获取流程实例
    	
    	public void getTask();//获取当前任务
    	
    	public void completeTask();//完成任务
    }
    6.3编写测试类Test.java实现JbpmUtil接口的方法。并集成公共类JbpmTestCase。

    6.3.1 deploy()部署流程

    @Override
    	public void deploy() {
    		super.startup();
    		repositoryService.createDeployment().addResourceFromClasspath(".../state.jpdl.xml").deploy();
    		
    	}

    6.3.2 createInstance()创建流程实例

    	@Override
    	public void createInstance() {
    		super.startup();
    		ProcessInstance processInstance=executionService.startProcessInstanceByKey("state");
    		print("流程实例ID",processInstance.getId());
    		
    	}


    6.3.3 getCurrectActivity() 获取当前节点名称

    	@Override
    	public void getCurrectActivity() {
    		super.startup();
    		String name=executionService.createProcessInstanceQuery().processInstanceId("***").uniqueResult().findActiveActivityNames().toString();
    		print("当前节点名称:",name);
    		
    	}

    6.3.4 getTask() 获取任务信息

    @Override
    	public void getTask() {
    		super.startup();
    		List<Task>tasks=taskService.findPersonalTasks("A");
    		print("任务数量",tasks.size());
    		print("任务名称",tasks.get(0).getActivityName());
    		print("任务ID",tasks.get(0).getId());
    		
    	}

    6.3.5 completeTask() 完成任务

    	@Override
    	public void completeTask() {
    		super.startup();
    		taskService.completeTask("");
    		
    	}

    然后,按顺序执行测试就ok啦。


    执行完deploy方法后,会在数据库中生成相应的表:


    下面小编简单介绍一下生成的这18张表都是干什么用的:

    jbpm4_deployment流程定义表。主要包括流程id、name、state

    jbpm4_deployprop流程定义属性表。主要包括流程id、objname、stringval(*.jpbl.xml文件的value)

    jbpm4_execution流程实例表。主要包括:流程id、activityname、state等

    jbpm4_property流程引擎表。主要包括:流程执行的verison等


    jbpm4_hist_actinst流程活动实例表,存放活动的历史记录

    jbpm4_hist_detail流程历史详细信息表。保存Variable的变更记录

    jbpm4_hist_procinst流程实例历史表,存放Process Instance的历史信息

    jbpm4_hist_task流程任务实例历史表 存放task的历史信息

    jbpm4_hist_var 流程变量历史表 存放历史的流程变量


    jbpm4_id_group用户组表

    jbpm4_id_membership用户关系表

    jbpm4_id_user用户表。存储用户信息

    jbpm4_job定时表,存放的是timer的定义

    jbpm4_lob存储表,新增记录

    jbpm4_participation 参与者表,存放参与者信息

    jbpm4_swimlane泳道表,通过泳道可以把多个任务分给同一个人执行

    jbpm4_task流程任务表,存放需要人来参与完成的Activity

    jbpm4_variable上下文表


    学习小结:

    通过这几天的jbpm的学习,对于工作流有了进一步的理解和学习。jbpm给我们提供了一个整套的流程逻辑,对于解决流程化的问题是一个非常不错的选择。

    展开全文
  • Jbpm

    千次阅读 2011-05-03 23:51:00
    import java.io.ByteArrayInputStream;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Map;...import org.jbpm.JbpmConfiguration;impor

    package cn.cslg.shally.manager.impl;

    import java.io.ByteArrayInputStream;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    import org.jbpm.JbpmConfiguration;
    import org.jbpm.JbpmContext;
    import org.jbpm.graph.def.ProcessDefinition;
    import org.jbpm.graph.def.Transition;
    import org.jbpm.graph.exe.ProcessInstance;
    import org.jbpm.taskmgmt.exe.TaskInstance;

    import cn.cslg.shally.manager.JbpmFacede;
    import cn.cslg.shally.model.Document;
    import cn.cslg.shally.utils.AbstractPageModel;
    import cn.cslg.shally.utils.SystemException;

    public class JbpmFacedeImpl  extends AbstractPageModel implements JbpmFacede{
     

     private JbpmConfiguration jbpmConfiguration;
     
     

     public JbpmConfiguration getJbpmConfiguration() {
      return jbpmConfiguration;
     }

     public void setJbpmConfiguration(JbpmConfiguration jbpmConfiguration) {
      this.jbpmConfiguration = jbpmConfiguration;
     }
    //添加流程实例
     //返回流程实例的ID
     @Override
     public long addProcessInstance(String processName, Document doc) throws SystemException {
      JbpmContext context=getJbpmContext();
     //获取流程的定义 
      ProcessDefinition pdf=context.getGraphSession().findLatestProcessDefinition(processName);
      //获取流程实例变量
      ProcessInstance instance=new ProcessInstance(pdf);
      //将公文ID提交到流程实例变量中
      instance.getContextInstance().setVariable("document", doc.getId());
      
      //将公文标题也提交到流程实例变量中,以便在E-Mail中能够提示这个公文的名称
      instance.getContextInstance().setVariable("docTitle", doc.getTitle());
      
      //将公文的相关属性设置进入流程实例变量
      Map props = doc.getProperties();
      if(props != null){
       Set entries = props.entrySet();
       for (Iterator iterator = entries.iterator(); iterator.hasNext();) {
        Map.Entry entry = (Map.Entry) iterator.next();
        String propertyName = (String)entry.getKey();
        Object obj = doc.getProperty(propertyName);
        //将变量放入流程实例变量
        instance.getContextInstance().setVariable(propertyName, obj);
       }
      }
      
      context.save(instance);
      
      return instance.getId();
      
     }
    //回退也就是不同意 暂时没看明白
     @Override
     public Object[] backStep(long processInstanceId, String actorId) {
    JbpmContext context = getJbpmContext();
      
      //根据流程实例标识查找流程实例
      ProcessInstance instance = context.getProcessInstance(processInstanceId);
      Object[] os = new Object[2];
      //搜索用户对应的所有的任务实例
      List taskInstances = context.getTaskMgmtSession().findTaskInstances(actorId);
      for (Iterator iterator = taskInstances.iterator(); iterator
        .hasNext();) {
       TaskInstance ti = (TaskInstance) iterator.next();
       if(ti.getProcessInstance().getId() == processInstanceId){
        
        //先判断是否是要回退到起点
        Set set = ti.getToken().getNode().getArrivingTransitions();
        for (Iterator iterator2 = set.iterator(); iterator2.hasNext();) {
         Transition t = (Transition) iterator2.next();
         //如果它需要回退到起点
         if(t.getFrom().equals(ti.getProcessInstance().getProcessDefinition().getStartState())){
          int docId = (Integer)ti.getProcessInstance().getContextInstance().getVariable("document");
          //结束当前的流程实例
          ti.getProcessInstance().end();
          //结束当前任务实例
          ti.end();
          
          //重新创建流程实例对象
          ProcessInstance pi = new ProcessInstance(ti.getProcessInstance().getProcessDefinition());
          pi.getContextInstance().setVariable("document", docId);
          //将流程实例对象重新持久化到数据库
          context.save(pi);
          
          os[0] = Document.STATUS_NEW;
          os[1] = pi.getId();
          
          return os;
         }
        }
        
        //如果不需要回退到起点
        ti.end(CreateTransitionAction.BACK_TRANSITION);
        break;
       }
      }
      
      os[0] = instance.getRootToken().getNode().getName();
      os[1] = processInstanceId;
      
      return os;
     }
    //删除流程定义  为了避免覆盖 导致其他没流完的流程无法继续进行下去 所以采用版本控制的方式避免覆盖 所以在删除时要循环的删除
     @Override
     public void delProcessDefinition(String processName) {
         JbpmContext context=getJbpmContext();
         List defs=context.getGraphSession().findAllProcessDefinitionVersions(processName);
         for (Iterator iterator = defs.iterator(); iterator.hasNext();) {
       ProcessDefinition def = (ProcessDefinition) iterator.next();
       context.getGraphSession().deleteProcessDefinition(def);
      }
     }
    //删除流程实例
     @Override
     public void delProcessInstance(long processInstanceId) {
      JbpmContext context = getJbpmContext();
      context.getGraphSession().deleteProcessInstance(processInstanceId);
     }
    //上传流程定义 返回流程定义的名字
     @Override
     public String deployProcessDefinition(byte[] processDef) {
    JbpmContext context = getJbpmContext();
      
      ProcessDefinition def = ProcessDefinition.parseXmlInputStream(
       new ByteArrayInputStream(processDef)
      );
      
      context.deployProcessDefinition(def);
      
      return def.getName();
     }
    //提交到下一个节点
     //返回下一个节点的名称
     @Override
     public String nextStep(long processInstanceId, String actorId,
       String transitionName) {

      JbpmContext context = getJbpmContext();
      //获取流程实例变量
      ProcessInstance instance = context.getProcessInstance(processInstanceId);
      
      //当前节点的名称
      String currentNodeName = instance.getRootToken().getNode().getName();
      
      //起点的名称
      String startNodeName = instance.getProcessDefinition().getStartState().getName();
        
      //如果是在起点
      if(startNodeName.equals(currentNodeName)){
       if(transitionName == null){
        instance.signal();
       }else{
        instance.signal(transitionName);
       }
      }else{
       //获取改用户的所有任务列表
       List taskInstances = context.getTaskMgmtSession().findTaskInstances(actorId);
       for (Iterator iterator = taskInstances.iterator(); iterator
         .hasNext();) {
        TaskInstance ti = (TaskInstance) iterator.next();
        //如果当前的流程实例==循环中的流程实例
        if(ti.getProcessInstance().getId() == processInstanceId){
         if(transitionName == null){
          ti.end();
         }else{
          ti.end(transitionName);
         }
         break;
        }
       }
       
       
       //查找所属组的任务实例
       List pooledTaskInstances = context.getTaskMgmtSession().findPooledTaskInstances(actorId);
       for (Iterator iterator = pooledTaskInstances.iterator(); iterator
         .hasNext();) {
        TaskInstance ti = (TaskInstance) iterator.next();
        if(ti.getProcessInstance().getId() == processInstanceId){
         if(transitionName == null){
          ti.end();
         }else{
          ti.end(transitionName);
         }
         break;
        }
       }
      }
      
      //返回转向之后的节点名称
      return instance.getRootToken().getNode().getName();
     }
    //搜索我的待审的公文的列表
     @Override
     public List searchMyTaskList(String actorId) {
      JbpmContext context = getJbpmContext();
      List docIds = new ArrayList();
      List taskInstances = context.getTaskMgmtSession().findTaskInstances(actorId);
      for (Iterator iterator = taskInstances.iterator(); iterator.hasNext();) {
       TaskInstance ti = (TaskInstance) iterator.next();
       Integer docId = (Integer)ti.getProcessInstance().getContextInstance().getVariable("document");
       docIds.add(docId);
      }
      
      //查找所属组的任务实例
      List pooledTaskInstances = context.getTaskMgmtSession().findPooledTaskInstances(actorId);
      for (Iterator iterator = pooledTaskInstances.iterator(); iterator
        .hasNext();) {
       TaskInstance ti = (TaskInstance) iterator.next();
       Integer docId = (Integer)ti.getProcessInstance().getContextInstance().getVariable("document");
       docIds.add(docId);
      }  
      
      return docIds;
     }
    //查护下往下走的可选的路径
     @Override
     public List searchNextTransitions(long processInstanceId, String actorId) {
      JbpmContext context = getJbpmContext();
      ProcessInstance instance = context.getProcessInstance(processInstanceId);
      
      //当前节点
      String currentNodeName = instance.getRootToken().getNode().getName();
      
      //起点的名称
      String startNodeName = instance.getProcessDefinition().getStartState().getName();
      
      Collection transitions = null;
      
      //如果是在起点
      if(startNodeName.equals(currentNodeName)){
       transitions = instance.getRootToken().getAvailableTransitions();
      }else{
       //如果是中间节点
       List taskInstances = context.getTaskMgmtSession().findTaskInstances(actorId);
       for (Iterator iterator = taskInstances.iterator(); iterator
         .hasNext();) {
        TaskInstance ti = (TaskInstance) iterator.next();
        if(ti.getProcessInstance().getId() == processInstanceId){
         transitions = ti.getAvailableTransitions();
         break;
        }
       }
       
       //查找所属组的任务实例
       List pooledTaskInstances = context.getTaskMgmtSession().findPooledTaskInstances(actorId);
       for (Iterator iterator = pooledTaskInstances.iterator(); iterator
         .hasNext();) {
        TaskInstance ti = (TaskInstance) iterator.next();
        if(ti.getProcessInstance().getId() == processInstanceId){
         transitions = ti.getAvailableTransitions();
        }
       }
      }
      
      List transitionNames = new ArrayList();
      
      if(transitions != null){
       //为了不把Transition对象直接暴露给OA系统,需要将其转换为名称列表
       for (Iterator iterator = transitions.iterator(); iterator.hasNext();) {
        Transition transition = (Transition) iterator.next();
        transitionNames.add(transition.getName());
       }
      }
      
      return transitionNames;
     }

     
     private JbpmContext getJbpmContext(){
      JbpmContext context = jbpmConfiguration.createJbpmContext();
      context.setSession(getSession());
      return context;
     }

    }

     

     

     

     

     

     

     

     

     

     

    <jbpm-configuration>

      <!--
        This configuration is used when there is no jbpm.cfg.xml file found in the
        root of the classpath.  It is a very basic configuration without persistence
        and message services.  Only the authorization service installed.
        You can parse and create processes, but when you try to use one of the
        unavailable services, you'll get an exception.
      -->
     
      <jbpm-context>
        <service name="persistence" factory="org.jbpm.persistence.db.DbPersistenceServiceFactory" />
        <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
        <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
        <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
        <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
        <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
      </jbpm-context>

      <!-- configuration property used by persistence service impl org.jbpm.persistence.db.DbPersistenceServiceFactory -->
      <string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />

      <!-- configuration resource files pointing to default configuration files in jbpm-{version}.jar -->
      <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties" />
      <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties" />
      <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties" />
      <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml" />
      <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml" />
      <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
      <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml" />
      <string name="resource.mail.templates" value="jbpm.mail.templates.xml" />

      <int    name="jbpm.byte.block.size" value="1024" singleton="true" />
      <string name="jbpm.mail.smtp.host" value="localhost" />
      <bean   name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" />
      <bean   name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
      <bean   name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
     
      <bean name="jbpm.job.executor" class="org.jbpm.job.executor.JobExecutor">
        <field name="jbpmConfiguration"><ref bean="jbpmConfiguration" /></field>
        <field name="name"><string value="JbpmJobExector" /></field>
        <field name="nbrOfThreads"><int value="1" /></field>
        <field name="idleInterval"><int value="5000" /></field>
        <field name="maxIdleInterval"><int value="3600000" /></field> <!-- 1 hour -->
        <field name="historyMaxSize"><int value="20" /></field>
        <field name="maxLockTime"><int value="600000" /></field> <!-- 10 minutes -->
        <field name="lockMonitorInterval"><int value="60000" /></field> <!-- 1 minute -->
        <field name="lockBufferTime"><int value="5000" /></field> <!-- 5 seconds -->
      </bean>

    </jbpm-configuration>

     

     

     

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
      <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/realoa</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.autocommit">true</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        <mapping resource="cn/cslg/shally/model/ACL.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/ApptoveInfo.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/Document.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/FieldInput.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/FieldType.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/FlowForm.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/FormField.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/Module.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/Organization.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/Person.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/Roles.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/User.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/UsersRoles.hbm.xml"/>
        <mapping resource="cn/cslg/shally/model/WorkFlow.hbm.xml"/>
         <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
        <mapping resource="org/jbpm/identity/User.hbm.xml"/>
        <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
        <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
        <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
        <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
        <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
        <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
        <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
        <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
        <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
        <mapping resource="org/jbpm/job/Job.hbm.xml"/>
        <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
        <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
        <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
        <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
        <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
        <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>

     

     

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:aop="http://www.springframework.org/schema/aop"
          xmlns:tx="http://www.springframework.org/schema/tx"
          xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
     <!-- 配置SessionFactory -->
     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="configLocation">
       <value>classpath:hibernate.cfg.xml</value>
      </property>
     </bean>
     
     <!-- 配置事务管理器 -->
     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory">
       <ref bean="sessionFactory"/>
      </property> 
     </bean>   
     
     <!-- 事务的传播特性 -->
     <tx:advice id="txAdvice" transaction-manager="transactionManager">
      <tx:attributes>
      
       <tx:method name="add*" propagation="REQUIRED"/>
       <tx:method name="del*" propagation="REQUIRED" />
       <tx:method name="update*" propagation="REQUIRED"/>
       <tx:method name="*"/>
       <!--
       <tx:method name="*" propagation="REQUIRED"/>
        -->
      </tx:attributes>
     </tx:advice>
     
     <!-- 那些类那些方法使用事务 -->
     <aop:config>
      <aop:pointcut id="allManagerMethod" expression="execution(* cn.clsg.shally.manager.*.*(..))"/>
      <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
     </aop:config>
    <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
      <property name="configuration" value="classpath:jbpm.cfg.xml"></property>
     </bean>
    </beans>

     

     

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
     <bean id="orgManager" class="cn.cslg.shally.manager.impl.OrgManagerImpl">
      <property name="sessionFactory" ref="sessionFactory" />
     </bean>
     <bean id="personManager" class="cn.cslg.shally.manager.impl.PersonManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>

     <bean id="userManager" class="cn.cslg.shally.manager.impl.UserManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>
     <bean id="roleManager" class="cn.cslg.shally.manager.impl.RoleManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>
     <bean id="moduleManager" class="cn.cslg.shally.manager.impl.ModuleManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>
     <bean id="initSystemDatas" class="cn.cslg.shally.utils.InitSystemDatasImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
      <property name="userManager" ref="userManager"></property>
      <property name="orgManager" ref="orgManager"></property>
     </bean>
     <bean id="aclManager" class="cn.cslg.shally.manager.impl.AclManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>
     <bean id="securityFunctions" class="cn.cslg.shally.utils.SecurityFunctions">
      <property name="aclManager" ref="aclManager"></property>
     </bean>
     <bean id="documentManager" class="cn.cslg.shally.manager.impl.DocumentManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
      <property name="jbpmFacede" ref="jbpmFacede"></property>
     </bean>
     <bean name="jbpmFacede" class="cn.cslg.shally.manager.impl.JbpmFacedeImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
      <property name="jbpmConfiguration" ref="jbpmConfiguration"></property>
     </bean>
     <bean name="formManager" class="cn.cslg.shally.manager.impl.FormManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>
     <bean name="workFlowManager" class="cn.cslg.shally.manager.impl.WorkFlowManagerImpl">
      <property name="sessionFactory" ref="sessionFactory"></property>
      <property name="jbpmFacede" ref="jbpmFacede"></property>
     </bean>
     <bean name="DynaFormFunction" class="cn.cslg.shally.utils.DynaFormFunction">
      <property name="formManager" ref="formManager"></property>
     </bean>
    </beans>

     

     

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
     <bean name="/org" class="cn.cslg.shally.web.actions.OrgAction"
      scope="prototype">
      <property name="orgManager" ref="orgManager"></property>
     </bean>
     <bean name="/person" class="cn.cslg.shally.web.actions.PersonAction">
      <property name="personManager" ref="personManager"></property>
     </bean>
     <bean name="/user" class="cn.cslg.shally.web.actions.UserAction">
      <property name="userManager" ref="userManager"></property>
      <property name="personManager" ref="personManager"></property>
      <property name="roleManager" ref="roleManager"></property>
     </bean>
     <bean name="/role" class="cn.cslg.shally.web.actions.RoleAction">
      <property name="roleManager" ref="roleManager"></property>
     </bean>
     <bean name="/module" class="cn.cslg.shally.web.actions.ModuleAction">
          <property name="moduleManager" ref="moduleManager"></property>
     </bean>
     <bean name="/acl" class="cn.cslg.shally.web.actions.AclAction">
       <property name="userManager" ref="userManager"></property>
       <property name="roleManager" ref="roleManager"></property>
       <property name="moduleManager" ref="moduleManager"></property>
     </bean>
     <bean name="/login" class="cn.cslg.shally.web.actions.LoginAction">
       <property name="userManager" ref="userManager"></property>
     </bean>
     <bean name="/index" class="cn.cslg.shally.web.actions.IndexAction">
          <property name="aclManager" ref="aclManager"></property>
     </bean>
     <bean name="/document" class="cn.cslg.shally.web.actions.DocumentAction">
      <property name="documentManager" ref="documentManager"></property>
      <property name="workFlowManager" ref="workFlowManager"></property>
     </bean>
     <bean name="/workflow" class="cn.cslg.shally.web.actions.WorkFlowAction">
      <property name="workFlowManager" ref="workFlowManager"></property>
     </bean>
     <bean name="/flowform" class="cn.cslg.shally.web.actions.FlowFormAction">
      <property name="workFlowManager" ref="workFlowManager"></property>
      <property name="formManager" ref="formManager"></property>
     </bean>
     
    </beans>

    展开全文
  • jBPM

    千次阅读 2004-11-06 19:14:00
    http://jbpm.org/What is Java Business Process Management JBoss jBPM is a flexible, extensible workflow management system. Business processes, expressed in a simple and powerfull language and pac
    http://jbpm.org/
    

    What is Java Business Process Management
    JBoss jBPM is a flexible, extensible workflow management system. Business processes, expressed in a simple and powerfull language and packaged in process archives, serve as input for the JBoss jBPM runtime server. JBoss jBPM bridges the gap between managers and developers by giving them a common language : the JBoss jBPM Process definition language (jPdl). This gives software project managers much more control on their software development efforts. After loading the process archive, users or systems perform single steps of the process. JBoss jBPM maintains the state, logs and performs all automated actions. JBoss jBPM combines easy development of workflow-applications with excellent enterprise application integration (EAI) capabilities. JBoss jBPM includes a web-application and a scheduler. JBoss jBPM can be used in the simplest environment like an ant task and scale up to a clustered J2EE application. For easy of evaluation, there is a download of a preconfigured JBoss application server. For more information about what JBoss jBPM is, refer to docs
    展开全文
  • jbpm

    2010-08-18 21:02:00
     <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>  <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>  ...

    1

    第一步

    将hibernate.cfg.xml 相关依赖加入

    缓存属性

    <property name="hibernate.cache.provider_class">
       org.hibernate.cache.HashtableCacheProvider
      </property>

    映射配置

     <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
        <mapping resource="org/jbpm/identity/User.hbm.xml"/>
        <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
        <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
        <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
        <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
        <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
        <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
        <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
        <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
        <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
        <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
        <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
        <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
        <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
        <mapping resource="org/jbpm/job/Job.hbm.xml"/>
        <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
        <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
        <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
        <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
        <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
        <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
        <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
        <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>

      }


    其中jbpm.cfg.xml内容传不上去,具体内容看

    http://gg19861207.javaeye.com/blog/485171

     

    <bean id="workFlowManager"
      class="com.bjsxt.oa.manager.impl.WorkFlowManagerImpl">
      <property name="sessionFactory" ref="sessionFactory" />
      <property name="jbpmConfiguration" ref="jbpmConfiguration" />
     </bean>

     

    将spring session 放入JbpmContext 中
     JbpmContext jbpmContext=jbpmConfiguration.createJbpmContext();
     jbpmContext.setSession(this.getSession());

    实际上是将spring hibernate jbpm 结合在一起

     

    展开全文
  • jbpm-源码

    2021-03-07 18:29:01
    jbpm
  • jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍jbpm介绍
  • jbpm 案例 jbpm jbpm

    2011-02-26 21:55:41
    jbpm使用案例,非常不错,大家都来看看吧。
  • jBPM来说,今年最大的事件莫过于jBPM的创建者TomBaeyens离开JBoss了。TomBaeyens离开的具体原因尚不清楚,但他的离开产生了两个结果:一是jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于DroolsFlow重头来...
  • jbpm:jbpm相关知识-源码

    2021-07-07 15:08:07
    jbpm jbpm相关知识
  • jbpm学习整理文档

    2017-08-21 09:43:57
    jbpm
  • jbpm4jbpm5

    2012-10-19 17:34:33
    jbpm应用开发指面(胡奇) jbpm4.3表结构和表字段说明 [jBPM开发指南].高杰.文字版 jBPM5_用户手册-中文版
  • jbpm_web jbpm spring tomcat 集成演示 jbpm6.1 这个项目演示了如何将 jbpm6.1 tomcat spring 集成到一个 web 应用程序中 起源来自项目 ,但比这简单 还演示了如何使用 CustomUserGroupCallback 将人工任务与您...
  • jbpm jbpm4 jbpm4.3 工作流

    2011-07-12 17:46:59
    jbpm jbpm4 jbpm4.3 工作流,是一本学校工作流非常好的书,希望能对大家有用!
  • jbpm 数据库jbpm 数据库

    2009-07-24 17:27:57
    jbpm 数据库jbpm 数据库jbpm 数据库jbpm 数据库jbpm 数据库
  • jbpm工作流框架

    2015-04-14 22:18:29
    jbpm
  • jbpm1 java

    2011-11-27 11:51:35
    jbpm
  • jbpm4源码jbpm4源码jbpm4源码
  • jBPM4工作流示例jbpmDemo

    2017-02-16 20:06:20
    本示例是jBPM4工作流示例jbpmDemo,详细演示了jBPM4工作流引擎的使用,对工作流采用Canvas动画形象演示,非常实用。也非常先进和有趣。 希望您喜欢。
  • jbpm工作流程

    2018-06-29 09:08:39
    jbpm工作流程jbpm工作流程jbpm工作流程jbpm工作流程jbpm工作流程

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,628
精华内容 8,251
关键字:

jBPM