The code which wraps the execution of this business process saves the process
instance both before the business process is executed and after. Here is the
code:
| JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
| try {
| log.debug("[solicit]: Getting graph session.");
| GraphSession graphSession = jbpmContext.getGraphSession();
| log.debug("[solicit]: Finding process definition: Solicit");
| ProcessDefinition processDefinition =
graphSession.findLatestProcessDefinition("Solicit");
| log.debug("[solicit]: Creating new process instance:Solicit");
| ProcessInstance processInstance = new ProcessInstance(processDefinition);
| // set variables
| log.debug("[solicit]: Creating new context instance.");
| ContextInstance ci = processInstance.getContextInstance();
| log.debug("[solicit]: Setting context instance variables.");
| ci.setVariable(PVAR_authenticationToken, securityToken);
| ci.setVariable(PVAR_request, request);
| ci.setVariable(PVAR_returnURL, returnURL);
| ci.setVariable(PVAR_bpparameters, parameters);
| log.debug("[solicit]: Saving process instance: Solicit");
| jbpmContext.save(processInstance);
| log.debug("[solicit]: Executing business process: Solicit");
| processInstance.signal();
| log.debug("[solicit]: Saving process instance: Solicit");
| jbpmContext.save(processInstance);
| String transactionId = (String)
processInstance.getContextInstance().getVariable(PVAR_queryResult);
| log.info("[solicit]: Returning transactionId=" + transactionId);
| return transactionId;
| } catch (Exception ex) {
| Throwable cause = ex.getCause();
| if (cause != null && cause instanceof NodeException) {
| throw (NodeException) cause;
| }
| log.error("[solicit]: Unknown error occurred while trying to execute
business process: Solicit", ex);
| throw new NodeException("Unknown error occurred while trying to execute
business process: Solicit", ex, ErrorCode.Code.E_UNKNOWN_ERROR);
| } finally {
| jbpmContext.close();
| log.debug("[solicit]: Exit.");
| }
|
So I save the process instance prior, the business process which creates the
timer and saves it to the scheduler is invoked, and the business process
completes, and the process instance is saved again. Shouldn't this save the
timer to the database?
Thanks,
Brad
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3962325#3962325
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3962325
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user