Chris Melas [
http://community.jboss.org/people/melc] created the discussion
"Re: Query the workflow process definition"
To view the discussion, visit:
http://community.jboss.org/message/630192#630192
--------------------------------------------------------------
Hello,
You can get any node you like
i.e.
WorkflowProcess workFlowProcess = ((WorkflowProcess)
knowledgeBase.getProcess("yourProcessId"));
nodes = workFlowProcess.getNodes();
then you can loop and cast to whatever node you want look at the types in package
org.jbpm.workflow.core.node i.e. there is a HumanTaskNode etc
i.e. finding the start node
Node startNode = null;
for (Node node : nodes) {
if (node instanceof StartNode) {
startNode = node;
}
}
you can even traverse your process
i.e. call the following method as traverseProcessForHumanTaskNodes(startNode, new
ArrayList<Node>()); then it will return a collection with all the human task nodes
public static Collection traverseProcessForHumanTaskNodes(Node startNode,
Collection<Node> nodes) {
/*you can choose on of your outgoing connections based on some logic*/
Node nextNode =
startNode.getOutgoingConnections("DROOLS_DEFAULT").get(0).getTo();
if (nextNode instanceof HumanTaskNode) {
nodes.add(nextNode);
} else if (nextNode instanceof EndNode) {
return nodes;
}
return traverseProcessForHumanTaskNodes(nextNode, nodes);
}
This is just to get you starting.... with a little debugging you will see that everything
is connected and you can easily retrieve it.
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/630192#630192]
Start a new discussion in jBPM at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]