[jboss-user] [jBPM] - Re: Invoke Human Task Flow - Using API
roxy1987
do-not-reply at jboss.com
Mon Mar 11 12:17:43 EDT 2013
roxy1987 [https://community.jboss.org/people/roxy1987] created the discussion
"Re: Invoke Human Task Flow - Using API"
To view the discussion, visit: https://community.jboss.org/message/801956#801956
--------------------------------------------------------------
To start a process
public static void startProc() throws Exception
{
try {
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "test", 1000);
ksession.startProcess("com.sample.demoProc");
if(humanTaskHandler.isConnected())
{
humanTaskHandler.dispose();
}
System.out.println("Process started ...");
logger.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("demoProc.bpmn"), ResourceType.BPMN2);
return kbuilder.newKnowledgeBase();
}
private static StatefulKnowledgeSession createKnowledgeSession(KnowledgeBase kbase) {
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
humanTaskHandler = new HornetQHTWorkItemHandler(ksession);
humanTaskHandler.setIpAddress("localhost");
humanTaskHandler.setPort(5153);
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
return ksession;
}
To complete a human task
public static void completeTask(long taskId, String userId) throws Exception
{
String name = "client 1"+UUID.randomUUID();
TaskClient client = new TaskClient(new HornetQTaskClientConnector(name, new HornetQTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
ContentData contentData = null;
client.connect(ipAddress, port);
try
{
client.start(taskId, userId, responseHandler);
responseHandler = new BlockingTaskOperationResponseHandler();
responseHandler.waitTillDone(5000);
client.complete(taskId, userId, contentData, responseHandler);
responseHandler.waitTillDone(5000);
BpmAPI.completeWorkItem(taskId);
}
catch(Exception e)
{
BpmExceptionHandler.handleException(e);
}
finally
{
if(client != null)
{
client.disconnect();
}
}
}
To Pause/Suspend
public static void completeTask(long taskId, String userId, Map<String, Object> map) throws Exception
{
String name = "client 1"+UUID.randomUUID();
TaskClient client = new TaskClient(new HornetQTaskClientConnector(name, new HornetQTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.connect(ipAddress, port);
try
{
client.suspend(taskId, userId, responseHandler);
responseHandler.waitTillDone(5000);
}
catch(Exception e)
{
BpmExceptionHandler.handleException(e);
}
finally
{
if(client != null)
{
client.disconnect();
}
}
}
I dont use Guvnor so cant say about that.
Regards.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/801956#801956]
Start a new discussion in jBPM at Community
[https://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/20130311/1fae494d/attachment.html
More information about the jboss-user
mailing list