2014-12-03 28 views

回答

1
public void readBPMNFileMetaInfo() throws Exception { 
       KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); 
       ((PackageBuilderConfiguration) conf).initSemanticModules(); 
       ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNSemanticModule()); 
       ((PackageBuilderConfiguration) conf).addSemanticModule(new BPMNDISemanticModule()); 
       XmlProcessReader processReader = new XmlProcessReader(
          ((PackageBuilderConfiguration) conf).getSemanticModules(), getClass().getClassLoader()); 
       List<Process> process = processReader.read(ResourceFactory.newClassPathResource("OrderCheck.bpmn").getInputStream()); 
       //String asXml = XmlBPMNProcessDumper.INSTANCE.dump((WorkflowProcess) process, XmlBPMNProcessDumper.NO_META_DATA); 
       for(Process p : process){ 
        RuleFlowProcess rp=(RuleFlowProcess)p; 
        Node[] nodes=rp.getNodes(); 

         for(Node n : nodes) { 
          System.out.println(n.getId()); 
          System.out.println(n.getName()); 
          System.out.println(n.getIncomingConnections()); 
          System.out.println(n.getOutgoingConnections()); 
        } 
        System.out.println("Done"); 
       } 
     }    
1

加載該文件由:

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 
kbuilder.add(ResourceFactory.newClassPathResource("MyProcess.bpmn"), ResourceType.BPMN2); 
KnowledgeBase kbase = kbuilder.newKnowledgeBase(); 
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); 
ProcessInstance processInstance = ksession.startProcess("com.sample.MyProcess");