[jboss-user] [jBPM] - Re: fail to fire a rule task~~ frustrated

Guo-Guang Chiou do-not-reply at jboss.com
Thu Oct 13 04:37:15 EDT 2011


Guo-Guang Chiou [http://community.jboss.org/people/taitung.wilbert] created the discussion

"Re: fail to fire a rule task~~ frustrated"

To view the discussion, visit: http://community.jboss.org/message/631520#631520

--------------------------------------------------------------
hi, Francesco.

thanks for your reply.

Finally, I found a way to run rule task on jbpm-console.

here is my process definition..
=================================================================================
<?xml version="1.0" encoding="UTF-8"?> 
<definitions id="Definition"
             targetNamespace=" http://www.jboss.org/drools http://www.jboss.org/drools"
             typeLanguage=" http://www.java.com/javaTypes http://www.java.com/javaTypes"
             expressionLanguage=" http://www.mvel.org/2.0 http://www.mvel.org/2.0"
             xmlns=" http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/20100524/MODEL"
             xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation=" http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
             xmlns:g=" http://www.jboss.org/drools/flow/gpd http://www.jboss.org/drools/flow/gpd"
             xmlns:bpmndi=" http://www.omg.org/spec/BPMN/20100524/DI http://www.omg.org/spec/BPMN/20100524/DI"
             xmlns:dc=" http://www.omg.org/spec/DD/20100524/DC http://www.omg.org/spec/DD/20100524/DC"
             xmlns:di=" http://www.omg.org/spec/DD/20100524/DI http://www.omg.org/spec/DD/20100524/DI"
             xmlns:tns=" http://www.jboss.org/drools http://www.jboss.org/drools">


  <process processType="Private" isExecutable="true" id="testrule" name="TestRule" tns:packageName="defaultPackage" tns:version="16" >


    <extensionElements>
     <tns:import name="org.drools.event.*" />
    </extensionElements>
    <!-- nodes -->
    <startEvent id="_1" name="StartProcess" />
    <scriptTask id="_2" name="Script" scriptFormat=" http://www.java.com/java http://www.java.com/java" >
      <script>System.out.println("Before rule\n");


//java.util.Iterator itr = kcontext.getKnowledgeRuntime().getKnowledgeBase().getStatefulKnowledgeSessions().iterator();
//boolean called = false;


  org.drools.event.AgendaEventListener lis = new org.drools.event.AgendaEventListener(){ 
                                        public void activationCancelled(org.drools.event.ActivationCancelledEvent arg0,
                                                            org.drools.WorkingMemory arg1) {
                                        }
                                        public void activationCreated(org.drools.event.ActivationCreatedEvent arg0,
                                                            org.drools.WorkingMemory arg1) { 
                                        }
                                        public void afterActivationFired(
                                                            org.drools.event.AfterActivationFiredEvent arg0, org.drools.WorkingMemory arg1) {
                                        }
                                        public void afterRuleFlowGroupActivated(
                                                            org.drools.event.RuleFlowGroupActivatedEvent arg0, org.drools.WorkingMemory arg1) {
                                                  System.out.println("firing all rules");
                                                  arg1.fireAllRules();
                                        }
                                        public void afterRuleFlowGroupDeactivated(
                                                            org.drools.event.RuleFlowGroupDeactivatedEvent arg0, org.drools.WorkingMemory arg1) {
                                        }
                                        public void agendaGroupPopped(org.drools.event.AgendaGroupPoppedEvent arg0,
                                                            org.drools.WorkingMemory arg1) {
                                        }
                                        public void agendaGroupPushed(org.drools.event.AgendaGroupPushedEvent arg0,
                                                            org.drools.WorkingMemory arg1) {
                                        }
                                        public void beforeActivationFired(
                                                            org.drools.event.BeforeActivationFiredEvent arg0, org.drools.WorkingMemory arg1) {
                                        }
                                        public void beforeRuleFlowGroupActivated(
                                                            org.drools.event.RuleFlowGroupActivatedEvent arg0, org.drools.WorkingMemory arg1) {
                                        }
                                        public void beforeRuleFlowGroupDeactivated(
                                                            org.drools.event.RuleFlowGroupDeactivatedEvent arg0, org.drools.WorkingMemory arg1) {
                                        }
                              };

//if(itr.hasNext())
//{
           System.out.println("casting..");
           org.drools.runtime.StatefulKnowledgeSession ksession = (org.drools.runtime.StatefulKnowledgeSession) kcontext.getKnowledgeRuntime();

            try{
           org.drools.impl.StatefulKnowledgeSessionImpl s = (org.drools.impl.StatefulKnowledgeSessionImpl)ksession;
           s.session.addEventListener(lis)  ;
           System.out.println("listener is added");
          //called = true;     
     }
     catch(Exception ex)
     {
             System.out.println("================================================================================================================");
               System.out.println(ex.getMessage());     
                       System.out.println("================================================================================================================");
     }
//}
//if(called==false)
//{
//          System.out.println("no session found");   
//}</script>
    </scriptTask>
    <businessRuleTask id="_3" name="Rule" g:ruleFlowGroup="validate" >
    </businessRuleTask>
    <endEvent id="_4" name="End" >
        <terminateEventDefinition/>
    </endEvent>
    <scriptTask id="_5" name="Script" scriptFormat=" http://www.java.com/java http://www.java.com/java" >
      <script> 
System.out.println("Rule Task is done"); </script>
    </scriptTask>


    <!-- connections -->
    <sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />
    <sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
    <sequenceFlow id="_5-_4" sourceRef="_5" targetRef="_4" />
    <sequenceFlow id="_3-_5" sourceRef="_3" targetRef="_5" />


  </process>


  <bpmndi:BPMNDiagram>
    <bpmndi:BPMNPlane bpmnElement="testrule" >
      <bpmndi:BPMNShape bpmnElement="_1" >
        <dc:Bounds x="16" y="16" width="48" height="48" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="_2" >
        <dc:Bounds x="96" y="16" width="80" height="48" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="_3" >
        <dc:Bounds x="208" y="16" width="80" height="48" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="_4" >
        <dc:Bounds x="432" y="16" width="48" height="48" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="_5" >
        <dc:Bounds x="320" y="16" width="80" height="48" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="_1-_2" >
        <di:waypoint x="40" y="40" />
        <di:waypoint x="136" y="40" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="_2-_3" >
        <di:waypoint x="136" y="40" />
        <di:waypoint x="248" y="40" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="_5-_4" >
        <di:waypoint x="360" y="40" />
        <di:waypoint x="456" y="40" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="_3-_5" >
        <di:waypoint x="248" y="40" />
        <di:waypoint x="360" y="40" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>


</definitions>

=================================================================================
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/631520#631520]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20111013/caa127f0/attachment-0001.html 


More information about the jboss-user mailing list