-
1. Re: Starting a Process Through API
salaboy21 Oct 29, 2008 7:09 AM (in response to dhanushgopinath)You can create a newProcessInstance with the JbpmContext.newProcessInstance() method...
-
2. Re: Starting a Process Through API
dhanushgopinath Oct 29, 2008 8:18 AM (in response to dhanushgopinath)But it cannot receive any inputs right.
Suppose if my start activity is a , then how will I instantiate the input variable.
Is this actually possible?
Thanks
Dhanush -
3. Re: Starting a Process Through API
salaboy21 Oct 29, 2008 8:27 AM (in response to dhanushgopinath)Yes, it is possible.
When you create a new ProcessInstance object the process not begin inmediately..
You can put your variables and then signal it to start.
Something like this:ProcessInstance pi=JbpmContext.newProcessInstance("processname"); pi.getContextInstance().setVariable("var1", new Integer(1)); pi.signal(); -> this will start your process..
-
4. Re: Starting a Process Through API
dhanushgopinath Oct 30, 2008 8:39 AM (in response to dhanushgopinath)No luck .. I got this exception.. Any inputs
org.jbpm.JbpmException: token 'Token(/)' can't be signalled cause it is currently not positioned in a node -
5. Re: Starting a Process Through API
salaboy21 Oct 30, 2008 8:48 AM (in response to dhanushgopinath)Are you sure that you create a newProcessInstance???
Because look when this exception is thrown:if (node==null) { throw new JbpmException("token '" + this + "' can't be signalled cause it is currently not positioned in a node"); }
This means that your actual node is null when you call the signal method.
Can you show us your process??
and the code that you are using to start it? -
6. Re: Starting a Process Through API
dhanushgopinath Oct 30, 2008 8:59 AM (in response to dhanushgopinath)The process is this :
<?xml version="1.0" encoding="UTF-8"?> <process name="Workflow1" targetNamespace="http://www.altair.com/EPM/BPEL/Workflow1" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.altair.com/EPM/BPEL/Workflow1" xmlns:ns0="http://www.altair.com/EPM/Workflow1Dataschema" xmlns:ns1="http://www.altair.com/WF/Framework/HumanTaskDataSchema" xmlns:ns2="http://www.altair.com/WF/Framework/TaskSchema"> <import namespace="http://www.altair.com/EPM/Workflow1" location="Workflow1.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import namespace="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" location="Workflow1InvokeBatchMesh.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import namespace="http://www.altair.com/WF/Framework/HumanTaskDataSchema" location="HumanTaskDataSchema.xsd" importType="http://www.w3.org/2001/XMLSchema"/> <partnerLinks> <partnerLink name="BatchMeshPL" xmlns:tns="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" partnerLinkType="tns:Workflow1BatchMeshPLT" myRole="Workflow1ReceivePortTypeRole" partnerRole="Workflow1InvokeBatchMeshPortTypeRole"/> <partnerLink name="StartWorkflowPL" xmlns:tns="http://www.altair.com/EPM/Workflow1" partnerLinkType="tns:Workflow1PLT" myRole="Workflow1PortTypeRole"/> </partnerLinks> <variables> <variable name="humanTask" type="ns1:HumanTaskComplexType"/> <variable name="StartWorkflowOut" xmlns:tns="http://www.altair.com/EPM/Workflow1" messageType="tns:Workflow1ReplyResponse"/> <variable name="StartWorkflowIn" xmlns:tns="http://www.altair.com/EPM/Workflow1" messageType="tns:Workflow1StartRequest"/> <variable name="ReceiveMeshFileIn" xmlns:tns="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" messageType="tns:ReceiveBMS"/> <variable name="BatchMeshOut" xmlns:tns="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" messageType="tns:InvokeBMSResponse"/> <variable name="BatchMeshIn" xmlns:tns="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" messageType="tns:InvokeBMSRequest"/> </variables> <sequence> <receive name="StartWorkflow" createInstance="yes" partnerLink="StartWorkflowPL" operation="StartWorkflow" xmlns:tns="http://www.altair.com/EPM/Workflow1" portType="tns:Workflow1PortType" variable="StartWorkflowIn"/> <assign name="Assign1"> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns0:meshingData</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns0:meshingData</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns0:meshingData/ns0:partFile1</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns0:meshingData/ns0:partFile1</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns0:meshingData/ns0:partFile2</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns0:meshingData/ns0:partFile2</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns0:meshingData/ns0:meshSize</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns0:meshingData/ns0:meshSize</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskID</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskID</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPriority</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPriority</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskStatus</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskStatus</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskCreationTime</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskCreationTime</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskCompletionTime</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskCompletionTime</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:userID</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:userID</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:firstName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:firstName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:lastName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:lastName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:userEmail</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:userEmail</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:department</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:user/ns1:department</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:userID</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:userID</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:firstName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:firstName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:lastName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:lastName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:userEmail</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:userEmail</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:department</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskPotentialOwners/ns1:multipleUsers/ns1:User/ns1:department</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:userID</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:userID</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:firstName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:firstName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:lastName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:lastName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:userEmail</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:userEmail</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:department</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:user/ns1:department</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:userID</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:userID</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:firstName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:firstName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:lastName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:lastName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:userEmail</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:userEmail</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:department</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskExcludedOwners/ns1:multipleUsers/ns1:User/ns1:department</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedAt</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedAt</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:userID</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:userID</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:firstName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:firstName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:lastName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:lastName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:userEmail</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:userEmail</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:group/ns1:id</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:group/ns1:id</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:group/ns1:groupName</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:group/ns1:groupName</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:department</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:addedBy/ns1:department</to> </copy> <copy> <from>$StartWorkflowIn.Workflow1StartRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:text</from> <to>$BatchMeshIn.InvokeBMSRequestPart/ns1:humanTaskInfo/ns1:taskComments/ns1:text</to> </copy> </assign> <invoke name="BatchMeshHumanTask" partnerLink="BatchMeshPL" operation="BatchMesh" xmlns:tns="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" portType="tns:Workflow1InvokeBatchMeshPortType" inputVariable="BatchMeshIn" outputVariable="BatchMeshOut"/> <receive name="ReceiveMeshFile" createInstance="no" partnerLink="BatchMeshPL" operation="ReceiveMeshFile" xmlns:tns="http://www.altair.com/EPM/Workflow1InvokeBatchMesh" portType="tns:Workflow1ReceivePortType" variable="ReceiveMeshFileIn"/> <assign name="Assign2"> <copy> <from>$ReceiveMeshFileIn.ReceiveBMSPart/ns0:task/ns2:taskIsHuman</from> <to>$StartWorkflowOut.Workflow1ReplyResponsePart/ns0:done</to> </copy> </assign> <reply name="Reply1" partnerLink="StartWorkflowPL" operation="StartWorkflow" xmlns:tns="http://www.altair.com/EPM/Workflow1" portType="tns:Workflow1PortType" variable="StartWorkflowOut"/> </sequence> </process>
And the code is this :JbpmConfiguration jbpmConfiguration = JbpmConfiguration .getInstance(); JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); BpelGraphSession graphSession = BpelGraphSession .getContextInstance(jbpmContext); BpelProcessDefinition bpelProcDef = graphSession .findLatestProcessDefinition("ProcessDefinitionName","ProcessDefintiion Target URI"; ProcessInstance procInstance = jbpmContext.newProcessInstance("ProcessDefintionName"); procInstance.signal(); jbpmContext.close();
I am not currently setting any input variables, just wanted to see if its starts. I inspected the root token of the procInstance variable and found that its node is null. -
7. Re: Starting a Process Through API
salaboy21 Oct 30, 2008 9:10 AM (in response to dhanushgopinath)I have no previously experience with jbpm-bpel, but first of all
you need to deploy your process first in order to do:ProcessInstance procInstance = JbpmContext.newProcessInstance("ProcessDefintionName");
did you try with JbpmContext.deploy(BpelProcessDefinition)? -
8. Re: Starting a Process Through API
dhanushgopinath Oct 30, 2008 9:30 AM (in response to dhanushgopinath)The process is all deployed. The only thing in the code above is that i am trying to find the process def by the name and i do get it.
but start doesnt work -
9. Re: Starting a Process Through API
dhanushgopinath Oct 31, 2008 9:59 AM (in response to dhanushgopinath)Any updates? I would also like to know how to call a normal receive task through API's.
Thanks in Advance.
Dhanush -
10. Re: Starting a Process Through API
salaboy21 Oct 31, 2008 10:04 AM (in response to dhanushgopinath)try to remove the following lines:
BpelGraphSession graphSession = BpelGraphSession .getContextInstance(jbpmContext); BpelProcessDefinition bpelProcDef = graphSession .findLatestProcessDefinition("ProcessDefinitionName","ProcessDefintiion Target URI";
if you have the process definition deployed the newProcessInstance method find your process definition and then you can signal it.
Also, are you sure that your process definition is correctly deployed?
-
11. Re: Starting a Process Through API
dhanushgopinath Oct 31, 2008 10:47 AM (in response to dhanushgopinath)That also gives the same error. And the process def is for sure deployed. Other wise it wont create an instance of process def
I was looking into some stuff of code like this.BpelGraphSession graphSession = BpelGraphSession .getContextInstance(jbpmContext); BpelProcessDefinition bpelProcDef = graphSession .findLatestProcessDefinition(procDEfPOJO.getProcessName(), procDEfPOJO.getProcessTargetNamespace().getUri()); // // ProcessInstance procInstance = bpelProcDef.createProcessInstance(); // Token startToken = procInstance.getRootToken(); // startToken.signal(); List listNodes = bpelProcDef.getNodes(); Map mapNodes = bpelProcDef.getNodesMap(); Set mapKey = mapNodes.keySet(); Iterator keyIterator = mapKey.iterator(); while(keyIterator.hasNext()) { Object key = keyIterator.next(); Scope obj = (Scope) mapNodes.get(key); List listNodes2 = obj.getNodes(); for(int i=0;i<listNodes2.size();i++) { org.jbpm.graph.def.Node node2 = (org.jbpm.graph.def.Node) listNodes2.get(i); System.out.println(((Activity)node2).isInitial()); - PRINTS TRUE HERE if(node2 instanceof Receive) { Receive recieve = (Receive) node2; System.out.println(recieve.getName()); } } }
And thenProcessInstance procInstance = jbpmContext.newProcessInstance("Workflow1"); procInstance.getRootToken().setNode(node2); procInstance.signal();
But the object node2 I am getting is a type of Sequence.
My Receive Task is inside a Sequence.
This much i am able to do.. so i think if i can get the receive activity Node and then set it on the root token it should work. This is just a guess though.