1 Reply Latest reply on Nov 23, 2012 6:42 AM by Laura delli Paoli

    Domain-specific process doesn't start

    Laura delli Paoli Master

      Hello everybody,

      I'm  using JBoss AS 7.1.1 and jBPM 5.4.

      I was trying to define my custom process "Run Action".

      1) I created my "MyProcessesDefinition.conf" file:

      import org.drools.process.core.datatype.impl.type.ObjectDataType;

      import org.drools.process.core.datatype.impl.type.StringDataType;

      import org.drools.process.core.datatype.impl.type.IntegerDataType;


        // my workItem


          "name" : "RunAction",

          "parameters" : [

            "Command" : new StringDataType(),

            "Parameters" : new ObjectDataType(),


          "results" : [

            "ExitValue" : new IntegerDataType(),


          "displayName" : "RunAction",

          "icon" : "icons/operation.ico"





      2) I created my "drools.rulebase.conf"

      drools.workDefinitions = MyProcessesDefinition.conf WorkDefinitions.conf

      3) I created the the RunAction handler


      public class RunActionHandler implements WorkItemHandler {




                public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {

                          // extract parameters

                    String command = (String) workItem.getParameter("Command");


                    HashMap parameters = (HashMap) workItem.getParameter("Parameters");



                    // run command


                    String command_with_params =command;

                    Runtime runtime = Runtime.getRuntime();

                    Process process = null;





                    Map<String, Object> result = new HashMap<String, Object>();


                     result.put("ExitValue", new Integer (0));


                    // notify manager that work item has been completed


                   manager.completeWorkItem(workItem.getId(), result);






                public void executeWorkItem(WorkItem arg0, WorkItemManager arg1) {

                          // Se invio un Ctrl+C interrompo il task????





      4)I created the process depicted in the attachement

      5) I wrote the following main:

      public class ProcessMain {


                public static final void main(String[] args) throws Exception {

                          // load up the knowledge base

                          KnowledgeBase kbase = readKnowledgeBase();

                          StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();


                          ksession.getWorkItemManager().registerWorkItemHandler("RunAction", new RunActionHandler());


                          Map<String, Object> params = new HashMap<String, Object>();

                          Object workflowName= new String ("C:\test.bat"), Properties = new String("");

                          params.put("Command", workflowName);

                          params.put("Parameters", Properties);


                          // start a new process instance

                          ksession.startProcess("wkfRepository.singleTaskWkf", params);

                          System.out.println("Process started ...");




                private static KnowledgeBase readKnowledgeBase() throws Exception {

                          KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

                          kbuilder.add(ResourceFactory.newClassPathResource("SingleTaskWkf.bpmn"), ResourceType.BPMN2);

                          return kbuilder.newKnowledgeBase();




      When I start the JBoss server, and run the the java application the process ends, but the custom process does not start (the "okkk" message is NOT printed).


      Can anyone help me?