九、提交公文

    //将公文提交到第一个环节
    @Test
    public void createJbpmTabTest(){
       
        JbpmContext context = null;
       
         try {
             
            //默认从classpath中查找名为hibernate.cfg.xml的配置文件
            JbpmConfiguration configuration = JbpmConfiguration.getInstance();
           
            //JbpmContext是对hibernate session的封装,提供了对JBPM相关对象的持久化功能
            context = configuration.createJbpmContext();
           
            //已知公文Id=16
            Document document = (Document) context.getSession().load(Document.class, 16l);
            //得到公文对应的流程实例
            long processInstanceId = document.getProcessInstanceId();
            ProcessInstance instance = context.getProcessInstance(processInstanceId);
           
           /*将公文提交到下一个环节,只有在流程处于开始节点的时候使用,
            当流程流转到某个任务节点时,不能使用该方法,因为使用该法只
            能使流程流转到下一个节点,而不能保证该任务节点的任务已经完成,
            使任务处于关闭状态*/

            instance.signal();//对于一个公文只能执行一次
           
        } catch (RuntimeException e) {
            e.printStackTrace();
        }finally{
            context.close();
        }
       
    }

 

公文提交到第一个环节后,会执行第一个环节的execute()方法,由于第一个环节是任务节点,所以execute()方法就是分配任务,即是根据任务定义,生成任务实例


九、提交公文_第1张图片

数据库情况如下:


你可能感兴趣的:(提交)