Difference between revisions of "Examples: Advanced"
From OpenKM Documentation
Line 2: | Line 2: | ||
Download and test this process definition: [[File:Advanced.par]]. | Download and test this process definition: [[File:Advanced.par]]. | ||
+ | |||
+ | {{Note|The taks will be assigned to an user called "monkiki" so you need to create this user and log as him to see the task assignment. Also you can assing this task to another user from the process instance workflow administration.}} | ||
== Process image == | == Process image == |
Revision as of 10:14, 30 May 2011
Download and test this process definition: File:Advanced.par.
Process image
Process definition
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="advanced">
<start-state name="start">
<transition to="task-node"></transition>
</start-state>
<task-node name="task-node">
<task name="guess_a_number">
<assignment actor-id="monkiki"></assignment>
<event type="task-create">
<script>taskInstance.start();</script>
</event>
</task>
<transition to="decision"></transition>
</task-node>
<decision name="decision">
<handler class="com.openkm.VerifyNumber"></handler>
<transition to="task-node" name="no"></transition>
<transition to="end" name="yes"></transition>
</decision>
<end-state name="end"></end-state>
</process-definition>
Process handlers
package com.openkm;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.node.DecisionHandler;
public class VerifyNumber implements DecisionHandler {
private static final long serialVersionUID = 1L;
@Override
public String decide(ExecutionContext executionContext) throws Exception {
String numberStr = (String) executionContext.getContextInstance().getVariable("number");
String guessStr = (String) executionContext.getContextInstance().getVariable("guess");
Integer number;
if (numberStr != null) number = Integer.valueOf(numberStr); else number = 10;
Integer guess = Integer.valueOf(guessStr);
if (guess > number) {
System.out.println("Too high!");
return "no";
} else if (guess < number) {
System.out.println("Too low!");
return "no";
} else {
System.out.println("Great!");
return "yes";
}
}
}
Form definition
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE workflow-forms PUBLIC "-//OpenKM//DTD Workflow Forms 1.0//EN"
"http://www.openkm.com/dtd/workflow-forms-1.0.dtd">
<workflow-forms>
<workflow-form task="run_config">
<input label="Number to guess" name="number" />
<button label="Submit" />
</workflow-form>
<workflow-form task="guess_a_number">
<input label="Guess" name="guess" />
<button label="Submit" />
</workflow-form>
</workflow-forms>