流程綁定公文

 

  1. package test; 
  2.  
  3.  
  4. import org.hibernate.Session; 
  5. import org.hibernate.SessionFactory; 
  6. import org.hibernate.cfg.Configuration; 
  7. import org.jbpm.JbpmConfiguration; 
  8. import org.jbpm.JbpmContext; 
  9. import org.jbpm.graph.def.ProcessDefinition; 
  10. import org.jbpm.graph.exe.ProcessInstance; 
  11. import org.junit.BeforeClass; 
  12. import org.junit.Test; 
  13.  
  14. import po.Document; 
  15.  
  16. /** 
  17.  * 部署流程 
  18.  * @author Administrator 
  19.  * 
  20.  */ 
  21. public class DeployProcess { 
  22.     static JbpmConfiguration jbpmConfiguration = null
  23.     @BeforeClass 
  24.     public static void setUpBeforeClass() throws Exception { 
  25.         jbpmConfiguration = JbpmConfiguration.getInstance(); 
  26.     } 
  27.      
  28.     /** 
  29.      * 流程部署 
  30.      */ 
  31.     @Test 
  32.     public void deploy(){ 
  33.         ProcessDefinition  pd = ProcessDefinition.parseXmlResource("processdefinition_1.xml"); 
  34.         JbpmContext jbpmCtx = jbpmConfiguration.createJbpmContext(); 
  35.         jbpmCtx.deployProcessDefinition(pd); 
  36.         jbpmCtx.close(); 
  37.     } 
  38.      
  39.     /** 
  40.      * 公文綁定流程 流程對應公文 
  41.      */ 
  42.     @Test 
  43.     public void testBd(){ 
  44.         Configuration cfg = new Configuration().configure(); 
  45.         SessionFactory sf = cfg.buildSessionFactory(); 
  46.         Session session = sf.openSession(); 
  47.         JbpmContext jbpmCtx = jbpmConfiguration.createJbpmContext(); 
  48.         jbpmCtx.setSessionFactory(sf); 
  49.         //jbpmCtx.getSession().beginTransaction(); 
  50.         Document doc = new Document(); 
  51.         doc.setDay(5); 
  52.         doc.setReason("北風請假"); 
  53.         doc.setUname("北風"); 
  54.         jbpmCtx.getSession().save(doc); 
  55.          
  56.         //創建流程實例 
  57.         ProcessDefinition pd = jbpmCtx.getGraphSession().findLatestProcessDefinition("北風請假"); 
  58.         ProcessInstance pe = new ProcessInstance(pd); 
  59.          
  60.         jbpmCtx.save(pe); 
  61.          
  62.         //公文設置流程實例ID (公文綁定流程) 
  63.         doc.setProcessInstanceID(pe.getId()); 
  64.         //流程對應哪個公文? 
  65.         pe.getContextInstance().createVariable("document", doc.getDocID()); 
  66.          
  67.         jbpmCtx.close(); 
  68.          
  69.     } 
  70.      
  71.     /** 
  72.      *  
  73.      */ 
  74.     @Test 
  75.     public void testSubmit(){ 
  76.         JbpmContext context = jbpmConfiguration.createJbpmContext(); 
  77.         Configuration cfg = new Configuration().configure(); 
  78.         SessionFactory sf = cfg.buildSessionFactory(); 
  79.         context.setSessionFactory(sf); 
  80.         //取到公文 
  81.         Document doc = (Document)context.getSession().load(Document.class14); 
  82.         //得到公文對應的流程實例ID 
  83.         System.out.println(doc.getProcessInstanceID()); 
  84.         //得到流程實例 
  85.         ProcessInstance  processInstance  = context.getProcessInstance(doc.getProcessInstanceID()); 
  86.         //提交申請 
  87.         processInstance.getRootToken().signal(); 
  88.         context.close(); 
  89.     } 
  90.      
  91.     public void findCurrentNode(){ 
  92.          
  93.     } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章